@roarkanalytics/sdk 2.31.0 → 2.33.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.
- package/CHANGELOG.md +61 -0
- package/api-promise.d.mts +1 -0
- package/api-promise.d.mts.map +1 -1
- package/api-promise.d.ts +1 -0
- package/api-promise.d.ts.map +1 -1
- package/api-promise.mjs +1 -0
- package/api-promise.mjs.map +1 -1
- package/client.d.mts +17 -5
- package/client.d.mts.map +1 -1
- package/client.d.ts +17 -5
- package/client.d.ts.map +1 -1
- package/client.js +35 -4
- package/client.js.map +1 -1
- package/client.mjs +35 -4
- package/client.mjs.map +1 -1
- package/core/api-promise.d.mts.map +1 -1
- package/core/api-promise.d.ts.map +1 -1
- package/core/api-promise.mjs.map +1 -1
- package/core/error.mjs.map +1 -1
- package/core/resource.d.mts.map +1 -1
- package/core/resource.d.ts.map +1 -1
- package/core/uploads.d.mts.map +1 -1
- package/core/uploads.d.ts.map +1 -1
- package/core/uploads.mjs.map +1 -1
- package/error.d.mts +1 -0
- package/error.d.mts.map +1 -1
- package/error.d.ts +1 -0
- package/error.d.ts.map +1 -1
- package/error.mjs +1 -0
- package/error.mjs.map +1 -1
- package/index.d.mts.map +1 -1
- package/index.d.ts.map +1 -1
- package/index.mjs.map +1 -1
- package/internal/detect-platform.mjs.map +1 -1
- package/internal/headers.mjs.map +1 -1
- package/internal/parse.d.mts.map +1 -1
- package/internal/parse.d.ts.map +1 -1
- package/internal/parse.mjs.map +1 -1
- package/internal/qs/formats.d.mts.map +1 -1
- package/internal/qs/formats.d.ts.map +1 -1
- package/internal/qs/index.d.mts +2 -2
- package/internal/qs/index.d.mts.map +1 -1
- package/internal/qs/index.d.ts +2 -2
- package/internal/qs/index.d.ts.map +1 -1
- package/internal/qs/index.mjs.map +1 -1
- package/internal/qs/stringify.d.mts.map +1 -1
- package/internal/qs/stringify.d.ts.map +1 -1
- package/internal/qs/stringify.mjs.map +1 -1
- package/internal/qs/utils.d.mts.map +1 -1
- package/internal/qs/utils.d.ts.map +1 -1
- package/internal/qs/utils.mjs.map +1 -1
- package/internal/request-options.d.mts.map +1 -1
- package/internal/request-options.d.ts.map +1 -1
- package/internal/shims.d.mts +6 -0
- package/internal/shims.d.mts.map +1 -1
- package/internal/shims.d.ts +6 -0
- package/internal/shims.d.ts.map +1 -1
- package/internal/to-file.d.mts.map +1 -1
- package/internal/to-file.d.ts.map +1 -1
- package/internal/to-file.mjs.map +1 -1
- package/internal/types.d.mts +10 -10
- package/internal/types.d.mts.map +1 -1
- package/internal/types.d.ts +10 -10
- package/internal/types.d.ts.map +1 -1
- package/internal/uploads.d.mts.map +1 -1
- package/internal/uploads.d.ts.map +1 -1
- package/internal/uploads.mjs.map +1 -1
- package/internal/utils/base64.mjs.map +1 -1
- package/internal/utils/log.d.mts.map +1 -1
- package/internal/utils/log.d.ts.map +1 -1
- package/internal/utils/log.js +2 -0
- package/internal/utils/log.js.map +1 -1
- package/internal/utils/log.mjs +2 -0
- package/internal/utils/log.mjs.map +1 -1
- package/internal/utils/path.mjs.map +1 -1
- package/internal/utils/query.mjs.map +1 -1
- package/internal/utils/values.mjs.map +1 -1
- package/internal/utils.d.mts.map +1 -1
- package/internal/utils.d.ts.map +1 -1
- package/internal/utils.mjs.map +1 -1
- package/package.json +1 -1
- package/resource.d.mts +1 -0
- package/resource.d.mts.map +1 -1
- package/resource.d.ts +1 -0
- package/resource.d.ts.map +1 -1
- package/resource.mjs +1 -0
- package/resource.mjs.map +1 -1
- package/resources/agent-endpoint.d.mts +4 -4
- package/resources/agent-endpoint.d.mts.map +1 -1
- package/resources/agent-endpoint.d.ts +4 -4
- package/resources/agent-endpoint.d.ts.map +1 -1
- package/resources/agent-endpoint.mjs.map +1 -1
- package/resources/agent.d.mts.map +1 -1
- package/resources/agent.d.ts.map +1 -1
- package/resources/agent.mjs.map +1 -1
- package/resources/call.d.mts +303 -155
- package/resources/call.d.mts.map +1 -1
- package/resources/call.d.ts +303 -155
- package/resources/call.d.ts.map +1 -1
- package/resources/call.js +6 -7
- package/resources/call.js.map +1 -1
- package/resources/call.mjs +6 -7
- package/resources/call.mjs.map +1 -1
- package/resources/config.d.mts +535 -0
- package/resources/config.d.mts.map +1 -0
- package/resources/config.d.ts +535 -0
- package/resources/config.d.ts.map +1 -0
- package/resources/config.js +28 -0
- package/resources/config.js.map +1 -0
- package/resources/config.mjs +24 -0
- package/resources/config.mjs.map +1 -0
- package/resources/customer-flow-edge-case.d.mts +1742 -0
- package/resources/customer-flow-edge-case.d.mts.map +1 -0
- package/resources/customer-flow-edge-case.d.ts +1742 -0
- package/resources/customer-flow-edge-case.d.ts.map +1 -0
- package/resources/customer-flow-edge-case.js +50 -0
- package/resources/customer-flow-edge-case.js.map +1 -0
- package/resources/customer-flow-edge-case.mjs +46 -0
- package/resources/customer-flow-edge-case.mjs.map +1 -0
- package/resources/customer-flow.d.mts +7163 -0
- package/resources/customer-flow.d.mts.map +1 -0
- package/resources/customer-flow.d.ts +7163 -0
- package/resources/customer-flow.d.ts.map +1 -0
- package/resources/customer-flow.js +87 -0
- package/resources/customer-flow.js.map +1 -0
- package/resources/customer-flow.mjs +83 -0
- package/resources/customer-flow.mjs.map +1 -0
- package/resources/health.d.mts.map +1 -1
- package/resources/health.d.ts.map +1 -1
- package/resources/health.mjs.map +1 -1
- package/resources/http-request-definition.d.mts.map +1 -1
- package/resources/http-request-definition.d.ts.map +1 -1
- package/resources/http-request-definition.mjs.map +1 -1
- package/resources/index.d.mts +6 -2
- package/resources/index.d.mts.map +1 -1
- package/resources/index.d.ts +6 -2
- package/resources/index.d.ts.map +1 -1
- package/resources/index.js +11 -3
- package/resources/index.js.map +1 -1
- package/resources/index.mjs +5 -1
- package/resources/index.mjs.map +1 -1
- package/resources/metric-collection-job.d.mts +5 -3
- package/resources/metric-collection-job.d.mts.map +1 -1
- package/resources/metric-collection-job.d.ts +5 -3
- package/resources/metric-collection-job.d.ts.map +1 -1
- package/resources/metric-collection-job.mjs.map +1 -1
- package/resources/metric-policy.d.mts.map +1 -1
- package/resources/metric-policy.d.ts.map +1 -1
- package/resources/metric-policy.mjs.map +1 -1
- package/resources/metric.d.mts +804 -109
- package/resources/metric.d.mts.map +1 -1
- package/resources/metric.d.ts +804 -109
- package/resources/metric.d.ts.map +1 -1
- package/resources/metric.js +6 -7
- package/resources/metric.js.map +1 -1
- package/resources/metric.mjs +6 -7
- package/resources/metric.mjs.map +1 -1
- package/resources/simulation-environment.d.mts +95 -0
- package/resources/simulation-environment.d.mts.map +1 -0
- package/resources/simulation-environment.d.ts +95 -0
- package/resources/simulation-environment.d.ts.map +1 -0
- package/resources/simulation-environment.js +24 -0
- package/resources/simulation-environment.js.map +1 -0
- package/resources/simulation-environment.mjs +20 -0
- package/resources/simulation-environment.mjs.map +1 -0
- package/resources/simulation-job.d.mts +58 -10
- package/resources/simulation-job.d.mts.map +1 -1
- package/resources/simulation-job.d.ts +58 -10
- package/resources/simulation-job.d.ts.map +1 -1
- package/resources/simulation-job.mjs.map +1 -1
- package/resources/simulation-persona.d.mts +60 -24
- package/resources/simulation-persona.d.mts.map +1 -1
- package/resources/simulation-persona.d.ts +60 -24
- package/resources/simulation-persona.d.ts.map +1 -1
- package/resources/simulation-persona.mjs.map +1 -1
- package/resources/simulation-run-plan-job.d.mts +73 -32
- package/resources/simulation-run-plan-job.d.mts.map +1 -1
- package/resources/simulation-run-plan-job.d.ts +73 -32
- package/resources/simulation-run-plan-job.d.ts.map +1 -1
- package/resources/simulation-run-plan-job.js +7 -8
- package/resources/simulation-run-plan-job.js.map +1 -1
- package/resources/simulation-run-plan-job.mjs +7 -8
- package/resources/simulation-run-plan-job.mjs.map +1 -1
- package/resources/simulation-run-plan.d.mts +408 -39
- package/resources/simulation-run-plan.d.mts.map +1 -1
- package/resources/simulation-run-plan.d.ts +408 -39
- package/resources/simulation-run-plan.d.ts.map +1 -1
- package/resources/simulation-run-plan.js +6 -11
- package/resources/simulation-run-plan.js.map +1 -1
- package/resources/simulation-run-plan.mjs +6 -11
- package/resources/simulation-run-plan.mjs.map +1 -1
- package/resources/simulation.d.mts +379 -0
- package/resources/simulation.d.mts.map +1 -0
- package/resources/simulation.d.ts +379 -0
- package/resources/simulation.d.ts.map +1 -0
- package/resources/simulation.js +33 -0
- package/resources/simulation.js.map +1 -0
- package/resources/simulation.mjs +29 -0
- package/resources/simulation.mjs.map +1 -0
- package/resources/webhook.d.mts +4 -4
- package/resources/webhook.d.mts.map +1 -1
- package/resources/webhook.d.ts +4 -4
- package/resources/webhook.d.ts.map +1 -1
- package/resources/webhook.mjs.map +1 -1
- package/resources.d.mts.map +1 -1
- package/resources.d.ts.map +1 -1
- package/resources.mjs.map +1 -1
- package/src/client.ts +124 -28
- package/src/internal/types.ts +6 -8
- package/src/internal/utils/log.ts +2 -0
- package/src/resources/agent-endpoint.ts +36 -4
- package/src/resources/call.ts +326 -169
- package/src/resources/config.ts +1162 -0
- package/src/resources/customer-flow-edge-case.ts +2884 -0
- package/src/resources/customer-flow.ts +11713 -0
- package/src/resources/index.ts +42 -12
- package/src/resources/metric-collection-job.ts +5 -3
- package/src/resources/metric.ts +1057 -115
- package/src/resources/simulation-environment.ts +147 -0
- package/src/resources/simulation-job.ts +122 -10
- package/src/resources/simulation-persona.ts +192 -24
- package/src/resources/simulation-run-plan-job.ts +109 -27
- package/src/resources/simulation-run-plan.ts +445 -40
- package/src/resources/simulation.ts +444 -0
- package/src/resources/webhook.ts +8 -0
- package/src/version.ts +1 -1
- package/uploads.d.mts +1 -0
- package/uploads.d.mts.map +1 -1
- package/uploads.d.ts +1 -0
- package/uploads.d.ts.map +1 -1
- package/uploads.mjs +1 -0
- package/uploads.mjs.map +1 -1
- package/version.d.mts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
- package/resources/simulation-scenario.d.mts +0 -424
- package/resources/simulation-scenario.d.mts.map +0 -1
- package/resources/simulation-scenario.d.ts +0 -424
- package/resources/simulation-scenario.d.ts.map +0 -1
- package/resources/simulation-scenario.js +0 -40
- package/resources/simulation-scenario.js.map +0 -1
- package/resources/simulation-scenario.mjs +0 -36
- package/resources/simulation-scenario.mjs.map +0 -1
- package/src/resources/simulation-scenario.ts +0 -602
|
@@ -0,0 +1,2884 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { APIResource } from '../core/resource';
|
|
4
|
+
import * as CustomerFlowAPI from './customer-flow';
|
|
5
|
+
import { APIPromise } from '../core/api-promise';
|
|
6
|
+
import { RequestOptions } from '../internal/request-options';
|
|
7
|
+
import { path } from '../internal/utils/path';
|
|
8
|
+
|
|
9
|
+
export class CustomerFlowEdgeCase extends APIResource {
|
|
10
|
+
/**
|
|
11
|
+
* Updates an edge case's title, persona, environment, brief, preceded-by link or
|
|
12
|
+
* expectations. Omitted fields are left alone; `additionalExpectations` replaces
|
|
13
|
+
* the set wholesale rather than appending. Promoting it to the happy path is a
|
|
14
|
+
* separate call, since that also demotes the incumbent.
|
|
15
|
+
*/
|
|
16
|
+
update(
|
|
17
|
+
edgeCaseID: string,
|
|
18
|
+
params: CustomerFlowEdgeCaseUpdateParams,
|
|
19
|
+
options?: RequestOptions,
|
|
20
|
+
): APIPromise<CustomerFlowEdgeCaseUpdateResponse> {
|
|
21
|
+
const { flowId, ...body } = params;
|
|
22
|
+
return this._client.put(path`/v1/customer-flow/${flowId}/edge-case/${edgeCaseID}`, { body, ...options });
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Adds a variant to an IMPROV flow.
|
|
27
|
+
*
|
|
28
|
+
* A scripted flow's variants are owned by the path engine, one per path through
|
|
29
|
+
* the graph, so they are created by editing the graph through PUT
|
|
30
|
+
* /v1/customer-flow/{flowId}/graph rather than here.
|
|
31
|
+
*
|
|
32
|
+
* Leave personaOverrideId or environmentId unset to inherit the happy path's.
|
|
33
|
+
*/
|
|
34
|
+
add(
|
|
35
|
+
flowID: string,
|
|
36
|
+
body: CustomerFlowEdgeCaseAddParams,
|
|
37
|
+
options?: RequestOptions,
|
|
38
|
+
): APIPromise<CustomerFlowEdgeCaseAddResponse> {
|
|
39
|
+
return this._client.post(path`/v1/customer-flow/${flowID}/edge-case`, { body, ...options });
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Makes this edge case the flow's happy path, and the outgoing happy path an edge
|
|
44
|
+
* case. Its persona and environment are baked into it first, so edge cases that
|
|
45
|
+
* were inheriting keep the configuration they had.
|
|
46
|
+
*/
|
|
47
|
+
promote(
|
|
48
|
+
edgeCaseID: string,
|
|
49
|
+
params: CustomerFlowEdgeCasePromoteParams,
|
|
50
|
+
options?: RequestOptions,
|
|
51
|
+
): APIPromise<CustomerFlowEdgeCasePromoteResponse> {
|
|
52
|
+
const { flowId } = params;
|
|
53
|
+
return this._client.post(path`/v1/customer-flow/${flowId}/edge-case/${edgeCaseID}/promote`, options);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Soft-deletes a variant. On a scripted flow the path engine re-creates a variant
|
|
58
|
+
* for any path still in the graph, so remove the path through PUT /graph instead
|
|
59
|
+
* if that is what you meant.
|
|
60
|
+
*/
|
|
61
|
+
remove(
|
|
62
|
+
edgeCaseID: string,
|
|
63
|
+
params: CustomerFlowEdgeCaseRemoveParams,
|
|
64
|
+
options?: RequestOptions,
|
|
65
|
+
): APIPromise<CustomerFlowEdgeCaseRemoveResponse> {
|
|
66
|
+
const { flowId } = params;
|
|
67
|
+
return this._client.delete(path`/v1/customer-flow/${flowId}/edge-case/${edgeCaseID}`, options);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export interface CustomerFlowEdgeCaseUpdateResponse {
|
|
72
|
+
/**
|
|
73
|
+
* One way of running a customer flow.
|
|
74
|
+
*/
|
|
75
|
+
data:
|
|
76
|
+
| CustomerFlowEdgeCaseUpdateResponse.ScriptedFlowVariant
|
|
77
|
+
| CustomerFlowEdgeCaseUpdateResponse.ImprovFlowVariant
|
|
78
|
+
| CustomerFlowEdgeCaseUpdateResponse.VoicemailFlowVariant;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export namespace CustomerFlowEdgeCaseUpdateResponse {
|
|
82
|
+
/**
|
|
83
|
+
* One path through a scripted flow. The path engine owns which paths exist, so
|
|
84
|
+
* editing the graph is what creates and removes these.
|
|
85
|
+
*/
|
|
86
|
+
export interface ScriptedFlowVariant {
|
|
87
|
+
id: string;
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Graded on top of the flow's own expectations, for this variant only.
|
|
91
|
+
*/
|
|
92
|
+
additionalExpectations: Array<ScriptedFlowVariant.AdditionalExpectation>;
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Creation timestamp in ISO 8601 format
|
|
96
|
+
*/
|
|
97
|
+
createdAt: string;
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* A simulation environment: the ambient conditions a customer flow variant runs
|
|
101
|
+
* under. The list includes both your own and the ones Roark curates for every
|
|
102
|
+
* project.
|
|
103
|
+
*/
|
|
104
|
+
environment: ScriptedFlowVariant.Environment | null;
|
|
105
|
+
|
|
106
|
+
isGenerated: boolean;
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* The persona this runs as instead of the happy path's. Null means it inherits.
|
|
110
|
+
*/
|
|
111
|
+
personaOverride: ScriptedFlowVariant.PersonaOverride | null;
|
|
112
|
+
|
|
113
|
+
precededByCustomerFlowId: string | null;
|
|
114
|
+
|
|
115
|
+
precededByCustomerFlowVariantId: string | null;
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* The one path through the graph this variant runs, in order. Linear by
|
|
119
|
+
* construction, so these steps never nest.
|
|
120
|
+
*/
|
|
121
|
+
steps: Array<CustomerFlowAPI.FlowStep>;
|
|
122
|
+
|
|
123
|
+
title: string;
|
|
124
|
+
|
|
125
|
+
type: 'SCRIPTED';
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Last update timestamp in ISO 8601 format
|
|
129
|
+
*/
|
|
130
|
+
updatedAt: string;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
export namespace ScriptedFlowVariant {
|
|
134
|
+
/**
|
|
135
|
+
* One thing the agent under test is graded against.
|
|
136
|
+
*/
|
|
137
|
+
export interface AdditionalExpectation {
|
|
138
|
+
id: string;
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* What the agent under test is graded against.
|
|
142
|
+
*/
|
|
143
|
+
prompt: string;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* A simulation environment: the ambient conditions a customer flow variant runs
|
|
148
|
+
* under. The list includes both your own and the ones Roark curates for every
|
|
149
|
+
* project.
|
|
150
|
+
*/
|
|
151
|
+
export interface Environment {
|
|
152
|
+
id: string;
|
|
153
|
+
|
|
154
|
+
backgroundNoise:
|
|
155
|
+
| 'NONE'
|
|
156
|
+
| 'AIRPORT'
|
|
157
|
+
| 'CHILDREN_PLAYING'
|
|
158
|
+
| 'CITY'
|
|
159
|
+
| 'COFFEE_SHOP'
|
|
160
|
+
| 'DRIVING'
|
|
161
|
+
| 'OFFICE'
|
|
162
|
+
| 'THUNDERSTORM';
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* Creation timestamp in ISO 8601 format
|
|
166
|
+
*/
|
|
167
|
+
createdAt: string;
|
|
168
|
+
|
|
169
|
+
name: string;
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Last update timestamp in ISO 8601 format
|
|
173
|
+
*/
|
|
174
|
+
updatedAt: string;
|
|
175
|
+
|
|
176
|
+
description?: string | null;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* The persona this runs as instead of the happy path's. Null means it inherits.
|
|
181
|
+
*/
|
|
182
|
+
export interface PersonaOverride {
|
|
183
|
+
/**
|
|
184
|
+
* Unique identifier of the persona
|
|
185
|
+
*/
|
|
186
|
+
id: string;
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with
|
|
190
|
+
* optional variants
|
|
191
|
+
*/
|
|
192
|
+
accent:
|
|
193
|
+
| 'US'
|
|
194
|
+
| 'US_X_SOUTH'
|
|
195
|
+
| 'GB'
|
|
196
|
+
| 'ES'
|
|
197
|
+
| 'DE'
|
|
198
|
+
| 'IN'
|
|
199
|
+
| 'FR'
|
|
200
|
+
| 'NL'
|
|
201
|
+
| 'SA'
|
|
202
|
+
| 'GR'
|
|
203
|
+
| 'AU'
|
|
204
|
+
| 'IT'
|
|
205
|
+
| 'ID'
|
|
206
|
+
| 'TH'
|
|
207
|
+
| 'JP'
|
|
208
|
+
| 'NZ'
|
|
209
|
+
| 'PH'
|
|
210
|
+
| 'SG'
|
|
211
|
+
| 'MY'
|
|
212
|
+
| 'HK'
|
|
213
|
+
| 'TR'
|
|
214
|
+
| 'PT'
|
|
215
|
+
| 'IL';
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* Background noise setting
|
|
219
|
+
*/
|
|
220
|
+
backgroundNoise:
|
|
221
|
+
| 'NONE'
|
|
222
|
+
| 'AIRPORT'
|
|
223
|
+
| 'CHILDREN_PLAYING'
|
|
224
|
+
| 'CITY'
|
|
225
|
+
| 'COFFEE_SHOP'
|
|
226
|
+
| 'DRIVING'
|
|
227
|
+
| 'OFFICE'
|
|
228
|
+
| 'THUNDERSTORM';
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* Base emotional state of the persona
|
|
232
|
+
*/
|
|
233
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* How the persona confirms information
|
|
237
|
+
*/
|
|
238
|
+
confirmationStyle: 'EXPLICIT' | 'VAGUE';
|
|
239
|
+
|
|
240
|
+
/**
|
|
241
|
+
* Creation timestamp
|
|
242
|
+
*/
|
|
243
|
+
createdAt: string;
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* Gender of the persona
|
|
247
|
+
*/
|
|
248
|
+
gender: 'MALE' | 'FEMALE';
|
|
249
|
+
|
|
250
|
+
/**
|
|
251
|
+
* Whether the persona uses filler words like "um" and "uh"
|
|
252
|
+
*/
|
|
253
|
+
hasDisfluencies: boolean;
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Maximum number of idle messages the persona will send before giving up
|
|
257
|
+
*/
|
|
258
|
+
idleMessageMaxSpokenCount: number;
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* Whether the idle message counter resets when the agent speaks
|
|
262
|
+
*/
|
|
263
|
+
idleMessageResetCountOnUserSpeechEnabled: boolean;
|
|
264
|
+
|
|
265
|
+
/**
|
|
266
|
+
* Messages the persona will say when the agent goes silent during a call. null =
|
|
267
|
+
* "Automatic": language-appropriate defaults are used at call time.
|
|
268
|
+
*/
|
|
269
|
+
idleMessages: Array<string> | null;
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* Seconds of silence before the persona sends an idle message
|
|
273
|
+
*/
|
|
274
|
+
idleTimeoutSeconds: number;
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* How clearly the persona expresses their intentions
|
|
278
|
+
*/
|
|
279
|
+
intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE';
|
|
280
|
+
|
|
281
|
+
/**
|
|
282
|
+
* Primary language ISO 639-1 code for the persona
|
|
283
|
+
*/
|
|
284
|
+
language:
|
|
285
|
+
| 'EN'
|
|
286
|
+
| 'ES'
|
|
287
|
+
| 'DE'
|
|
288
|
+
| 'HI'
|
|
289
|
+
| 'FR'
|
|
290
|
+
| 'NL'
|
|
291
|
+
| 'AR'
|
|
292
|
+
| 'EL'
|
|
293
|
+
| 'IT'
|
|
294
|
+
| 'ID'
|
|
295
|
+
| 'TH'
|
|
296
|
+
| 'JA'
|
|
297
|
+
| 'TL'
|
|
298
|
+
| 'MS'
|
|
299
|
+
| 'ZH'
|
|
300
|
+
| 'TR'
|
|
301
|
+
| 'PT'
|
|
302
|
+
| 'HE';
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* How reliable the persona's memory is
|
|
306
|
+
*/
|
|
307
|
+
memoryReliability: 'HIGH' | 'LOW';
|
|
308
|
+
|
|
309
|
+
/**
|
|
310
|
+
* The name the agent will identify as during conversations
|
|
311
|
+
*/
|
|
312
|
+
name: string;
|
|
313
|
+
|
|
314
|
+
/**
|
|
315
|
+
* Additional custom properties about the persona
|
|
316
|
+
*/
|
|
317
|
+
properties: { [key: string]: unknown };
|
|
318
|
+
|
|
319
|
+
/**
|
|
320
|
+
* Controls how quickly the persona responds to pauses in conversation (QUICK,
|
|
321
|
+
* NORMAL, RELAXED)
|
|
322
|
+
*/
|
|
323
|
+
responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK';
|
|
324
|
+
|
|
325
|
+
/**
|
|
326
|
+
* Speech clarity of the persona
|
|
327
|
+
*/
|
|
328
|
+
speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING';
|
|
329
|
+
|
|
330
|
+
/**
|
|
331
|
+
* Speech pace of the persona
|
|
332
|
+
*/
|
|
333
|
+
speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST';
|
|
334
|
+
|
|
335
|
+
/**
|
|
336
|
+
* Languages the persona can understand. Multilingual combinations are limited by
|
|
337
|
+
* multilingual speech recognition support.
|
|
338
|
+
*/
|
|
339
|
+
understoodLanguages: Array<
|
|
340
|
+
| 'EN'
|
|
341
|
+
| 'ES'
|
|
342
|
+
| 'DE'
|
|
343
|
+
| 'HI'
|
|
344
|
+
| 'FR'
|
|
345
|
+
| 'NL'
|
|
346
|
+
| 'AR'
|
|
347
|
+
| 'EL'
|
|
348
|
+
| 'IT'
|
|
349
|
+
| 'ID'
|
|
350
|
+
| 'TH'
|
|
351
|
+
| 'JA'
|
|
352
|
+
| 'TL'
|
|
353
|
+
| 'MS'
|
|
354
|
+
| 'ZH'
|
|
355
|
+
| 'TR'
|
|
356
|
+
| 'PT'
|
|
357
|
+
| 'HE'
|
|
358
|
+
>;
|
|
359
|
+
|
|
360
|
+
/**
|
|
361
|
+
* Last update timestamp
|
|
362
|
+
*/
|
|
363
|
+
updatedAt: string;
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* Background story and behavioral patterns for the persona
|
|
367
|
+
*/
|
|
368
|
+
backstoryPrompt?: string | null;
|
|
369
|
+
|
|
370
|
+
/**
|
|
371
|
+
* Human-readable description of the persona
|
|
372
|
+
*/
|
|
373
|
+
description?: string | null;
|
|
374
|
+
|
|
375
|
+
/**
|
|
376
|
+
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
377
|
+
*/
|
|
378
|
+
secondaryLanguage?: 'EN' | null;
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
/**
|
|
383
|
+
* One brief to run an improv flow with.
|
|
384
|
+
*/
|
|
385
|
+
export interface ImprovFlowVariant {
|
|
386
|
+
id: string;
|
|
387
|
+
|
|
388
|
+
/**
|
|
389
|
+
* Graded on top of the flow's own expectations, for this variant only.
|
|
390
|
+
*/
|
|
391
|
+
additionalExpectations: Array<ImprovFlowVariant.AdditionalExpectation>;
|
|
392
|
+
|
|
393
|
+
/**
|
|
394
|
+
* Creation timestamp in ISO 8601 format
|
|
395
|
+
*/
|
|
396
|
+
createdAt: string;
|
|
397
|
+
|
|
398
|
+
/**
|
|
399
|
+
* A simulation environment: the ambient conditions a customer flow variant runs
|
|
400
|
+
* under. The list includes both your own and the ones Roark curates for every
|
|
401
|
+
* project.
|
|
402
|
+
*/
|
|
403
|
+
environment: ImprovFlowVariant.Environment | null;
|
|
404
|
+
|
|
405
|
+
isGenerated: boolean;
|
|
406
|
+
|
|
407
|
+
/**
|
|
408
|
+
* The persona this runs as instead of the happy path's. Null means it inherits.
|
|
409
|
+
*/
|
|
410
|
+
personaOverride: ImprovFlowVariant.PersonaOverride | null;
|
|
411
|
+
|
|
412
|
+
precededByCustomerFlowId: string | null;
|
|
413
|
+
|
|
414
|
+
precededByCustomerFlowVariantId: string | null;
|
|
415
|
+
|
|
416
|
+
title: string;
|
|
417
|
+
|
|
418
|
+
type: 'IMPROV';
|
|
419
|
+
|
|
420
|
+
/**
|
|
421
|
+
* Last update timestamp in ISO 8601 format
|
|
422
|
+
*/
|
|
423
|
+
updatedAt: string;
|
|
424
|
+
|
|
425
|
+
/**
|
|
426
|
+
* The brief the simulated customer improvises from.
|
|
427
|
+
*/
|
|
428
|
+
prompt?: string | null;
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
export namespace ImprovFlowVariant {
|
|
432
|
+
/**
|
|
433
|
+
* One thing the agent under test is graded against.
|
|
434
|
+
*/
|
|
435
|
+
export interface AdditionalExpectation {
|
|
436
|
+
id: string;
|
|
437
|
+
|
|
438
|
+
/**
|
|
439
|
+
* What the agent under test is graded against.
|
|
440
|
+
*/
|
|
441
|
+
prompt: string;
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
/**
|
|
445
|
+
* A simulation environment: the ambient conditions a customer flow variant runs
|
|
446
|
+
* under. The list includes both your own and the ones Roark curates for every
|
|
447
|
+
* project.
|
|
448
|
+
*/
|
|
449
|
+
export interface Environment {
|
|
450
|
+
id: string;
|
|
451
|
+
|
|
452
|
+
backgroundNoise:
|
|
453
|
+
| 'NONE'
|
|
454
|
+
| 'AIRPORT'
|
|
455
|
+
| 'CHILDREN_PLAYING'
|
|
456
|
+
| 'CITY'
|
|
457
|
+
| 'COFFEE_SHOP'
|
|
458
|
+
| 'DRIVING'
|
|
459
|
+
| 'OFFICE'
|
|
460
|
+
| 'THUNDERSTORM';
|
|
461
|
+
|
|
462
|
+
/**
|
|
463
|
+
* Creation timestamp in ISO 8601 format
|
|
464
|
+
*/
|
|
465
|
+
createdAt: string;
|
|
466
|
+
|
|
467
|
+
name: string;
|
|
468
|
+
|
|
469
|
+
/**
|
|
470
|
+
* Last update timestamp in ISO 8601 format
|
|
471
|
+
*/
|
|
472
|
+
updatedAt: string;
|
|
473
|
+
|
|
474
|
+
description?: string | null;
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
/**
|
|
478
|
+
* The persona this runs as instead of the happy path's. Null means it inherits.
|
|
479
|
+
*/
|
|
480
|
+
export interface PersonaOverride {
|
|
481
|
+
/**
|
|
482
|
+
* Unique identifier of the persona
|
|
483
|
+
*/
|
|
484
|
+
id: string;
|
|
485
|
+
|
|
486
|
+
/**
|
|
487
|
+
* Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with
|
|
488
|
+
* optional variants
|
|
489
|
+
*/
|
|
490
|
+
accent:
|
|
491
|
+
| 'US'
|
|
492
|
+
| 'US_X_SOUTH'
|
|
493
|
+
| 'GB'
|
|
494
|
+
| 'ES'
|
|
495
|
+
| 'DE'
|
|
496
|
+
| 'IN'
|
|
497
|
+
| 'FR'
|
|
498
|
+
| 'NL'
|
|
499
|
+
| 'SA'
|
|
500
|
+
| 'GR'
|
|
501
|
+
| 'AU'
|
|
502
|
+
| 'IT'
|
|
503
|
+
| 'ID'
|
|
504
|
+
| 'TH'
|
|
505
|
+
| 'JP'
|
|
506
|
+
| 'NZ'
|
|
507
|
+
| 'PH'
|
|
508
|
+
| 'SG'
|
|
509
|
+
| 'MY'
|
|
510
|
+
| 'HK'
|
|
511
|
+
| 'TR'
|
|
512
|
+
| 'PT'
|
|
513
|
+
| 'IL';
|
|
514
|
+
|
|
515
|
+
/**
|
|
516
|
+
* Background noise setting
|
|
517
|
+
*/
|
|
518
|
+
backgroundNoise:
|
|
519
|
+
| 'NONE'
|
|
520
|
+
| 'AIRPORT'
|
|
521
|
+
| 'CHILDREN_PLAYING'
|
|
522
|
+
| 'CITY'
|
|
523
|
+
| 'COFFEE_SHOP'
|
|
524
|
+
| 'DRIVING'
|
|
525
|
+
| 'OFFICE'
|
|
526
|
+
| 'THUNDERSTORM';
|
|
527
|
+
|
|
528
|
+
/**
|
|
529
|
+
* Base emotional state of the persona
|
|
530
|
+
*/
|
|
531
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
532
|
+
|
|
533
|
+
/**
|
|
534
|
+
* How the persona confirms information
|
|
535
|
+
*/
|
|
536
|
+
confirmationStyle: 'EXPLICIT' | 'VAGUE';
|
|
537
|
+
|
|
538
|
+
/**
|
|
539
|
+
* Creation timestamp
|
|
540
|
+
*/
|
|
541
|
+
createdAt: string;
|
|
542
|
+
|
|
543
|
+
/**
|
|
544
|
+
* Gender of the persona
|
|
545
|
+
*/
|
|
546
|
+
gender: 'MALE' | 'FEMALE';
|
|
547
|
+
|
|
548
|
+
/**
|
|
549
|
+
* Whether the persona uses filler words like "um" and "uh"
|
|
550
|
+
*/
|
|
551
|
+
hasDisfluencies: boolean;
|
|
552
|
+
|
|
553
|
+
/**
|
|
554
|
+
* Maximum number of idle messages the persona will send before giving up
|
|
555
|
+
*/
|
|
556
|
+
idleMessageMaxSpokenCount: number;
|
|
557
|
+
|
|
558
|
+
/**
|
|
559
|
+
* Whether the idle message counter resets when the agent speaks
|
|
560
|
+
*/
|
|
561
|
+
idleMessageResetCountOnUserSpeechEnabled: boolean;
|
|
562
|
+
|
|
563
|
+
/**
|
|
564
|
+
* Messages the persona will say when the agent goes silent during a call. null =
|
|
565
|
+
* "Automatic": language-appropriate defaults are used at call time.
|
|
566
|
+
*/
|
|
567
|
+
idleMessages: Array<string> | null;
|
|
568
|
+
|
|
569
|
+
/**
|
|
570
|
+
* Seconds of silence before the persona sends an idle message
|
|
571
|
+
*/
|
|
572
|
+
idleTimeoutSeconds: number;
|
|
573
|
+
|
|
574
|
+
/**
|
|
575
|
+
* How clearly the persona expresses their intentions
|
|
576
|
+
*/
|
|
577
|
+
intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE';
|
|
578
|
+
|
|
579
|
+
/**
|
|
580
|
+
* Primary language ISO 639-1 code for the persona
|
|
581
|
+
*/
|
|
582
|
+
language:
|
|
583
|
+
| 'EN'
|
|
584
|
+
| 'ES'
|
|
585
|
+
| 'DE'
|
|
586
|
+
| 'HI'
|
|
587
|
+
| 'FR'
|
|
588
|
+
| 'NL'
|
|
589
|
+
| 'AR'
|
|
590
|
+
| 'EL'
|
|
591
|
+
| 'IT'
|
|
592
|
+
| 'ID'
|
|
593
|
+
| 'TH'
|
|
594
|
+
| 'JA'
|
|
595
|
+
| 'TL'
|
|
596
|
+
| 'MS'
|
|
597
|
+
| 'ZH'
|
|
598
|
+
| 'TR'
|
|
599
|
+
| 'PT'
|
|
600
|
+
| 'HE';
|
|
601
|
+
|
|
602
|
+
/**
|
|
603
|
+
* How reliable the persona's memory is
|
|
604
|
+
*/
|
|
605
|
+
memoryReliability: 'HIGH' | 'LOW';
|
|
606
|
+
|
|
607
|
+
/**
|
|
608
|
+
* The name the agent will identify as during conversations
|
|
609
|
+
*/
|
|
610
|
+
name: string;
|
|
611
|
+
|
|
612
|
+
/**
|
|
613
|
+
* Additional custom properties about the persona
|
|
614
|
+
*/
|
|
615
|
+
properties: { [key: string]: unknown };
|
|
616
|
+
|
|
617
|
+
/**
|
|
618
|
+
* Controls how quickly the persona responds to pauses in conversation (QUICK,
|
|
619
|
+
* NORMAL, RELAXED)
|
|
620
|
+
*/
|
|
621
|
+
responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK';
|
|
622
|
+
|
|
623
|
+
/**
|
|
624
|
+
* Speech clarity of the persona
|
|
625
|
+
*/
|
|
626
|
+
speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING';
|
|
627
|
+
|
|
628
|
+
/**
|
|
629
|
+
* Speech pace of the persona
|
|
630
|
+
*/
|
|
631
|
+
speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST';
|
|
632
|
+
|
|
633
|
+
/**
|
|
634
|
+
* Languages the persona can understand. Multilingual combinations are limited by
|
|
635
|
+
* multilingual speech recognition support.
|
|
636
|
+
*/
|
|
637
|
+
understoodLanguages: Array<
|
|
638
|
+
| 'EN'
|
|
639
|
+
| 'ES'
|
|
640
|
+
| 'DE'
|
|
641
|
+
| 'HI'
|
|
642
|
+
| 'FR'
|
|
643
|
+
| 'NL'
|
|
644
|
+
| 'AR'
|
|
645
|
+
| 'EL'
|
|
646
|
+
| 'IT'
|
|
647
|
+
| 'ID'
|
|
648
|
+
| 'TH'
|
|
649
|
+
| 'JA'
|
|
650
|
+
| 'TL'
|
|
651
|
+
| 'MS'
|
|
652
|
+
| 'ZH'
|
|
653
|
+
| 'TR'
|
|
654
|
+
| 'PT'
|
|
655
|
+
| 'HE'
|
|
656
|
+
>;
|
|
657
|
+
|
|
658
|
+
/**
|
|
659
|
+
* Last update timestamp
|
|
660
|
+
*/
|
|
661
|
+
updatedAt: string;
|
|
662
|
+
|
|
663
|
+
/**
|
|
664
|
+
* Background story and behavioral patterns for the persona
|
|
665
|
+
*/
|
|
666
|
+
backstoryPrompt?: string | null;
|
|
667
|
+
|
|
668
|
+
/**
|
|
669
|
+
* Human-readable description of the persona
|
|
670
|
+
*/
|
|
671
|
+
description?: string | null;
|
|
672
|
+
|
|
673
|
+
/**
|
|
674
|
+
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
675
|
+
*/
|
|
676
|
+
secondaryLanguage?: 'EN' | null;
|
|
677
|
+
}
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
/**
|
|
681
|
+
* One voicemail greeting.
|
|
682
|
+
*/
|
|
683
|
+
export interface VoicemailFlowVariant {
|
|
684
|
+
id: string;
|
|
685
|
+
|
|
686
|
+
/**
|
|
687
|
+
* Graded on top of the flow's own expectations, for this variant only.
|
|
688
|
+
*/
|
|
689
|
+
additionalExpectations: Array<VoicemailFlowVariant.AdditionalExpectation>;
|
|
690
|
+
|
|
691
|
+
/**
|
|
692
|
+
* Creation timestamp in ISO 8601 format
|
|
693
|
+
*/
|
|
694
|
+
createdAt: string;
|
|
695
|
+
|
|
696
|
+
/**
|
|
697
|
+
* A simulation environment: the ambient conditions a customer flow variant runs
|
|
698
|
+
* under. The list includes both your own and the ones Roark curates for every
|
|
699
|
+
* project.
|
|
700
|
+
*/
|
|
701
|
+
environment: VoicemailFlowVariant.Environment | null;
|
|
702
|
+
|
|
703
|
+
isGenerated: boolean;
|
|
704
|
+
|
|
705
|
+
/**
|
|
706
|
+
* The persona this runs as instead of the happy path's. Null means it inherits.
|
|
707
|
+
*/
|
|
708
|
+
personaOverride: VoicemailFlowVariant.PersonaOverride | null;
|
|
709
|
+
|
|
710
|
+
precededByCustomerFlowId: string | null;
|
|
711
|
+
|
|
712
|
+
precededByCustomerFlowVariantId: string | null;
|
|
713
|
+
|
|
714
|
+
title: string;
|
|
715
|
+
|
|
716
|
+
type: 'VOICEMAIL';
|
|
717
|
+
|
|
718
|
+
/**
|
|
719
|
+
* Last update timestamp in ISO 8601 format
|
|
720
|
+
*/
|
|
721
|
+
updatedAt: string;
|
|
722
|
+
}
|
|
723
|
+
|
|
724
|
+
export namespace VoicemailFlowVariant {
|
|
725
|
+
/**
|
|
726
|
+
* One thing the agent under test is graded against.
|
|
727
|
+
*/
|
|
728
|
+
export interface AdditionalExpectation {
|
|
729
|
+
id: string;
|
|
730
|
+
|
|
731
|
+
/**
|
|
732
|
+
* What the agent under test is graded against.
|
|
733
|
+
*/
|
|
734
|
+
prompt: string;
|
|
735
|
+
}
|
|
736
|
+
|
|
737
|
+
/**
|
|
738
|
+
* A simulation environment: the ambient conditions a customer flow variant runs
|
|
739
|
+
* under. The list includes both your own and the ones Roark curates for every
|
|
740
|
+
* project.
|
|
741
|
+
*/
|
|
742
|
+
export interface Environment {
|
|
743
|
+
id: string;
|
|
744
|
+
|
|
745
|
+
backgroundNoise:
|
|
746
|
+
| 'NONE'
|
|
747
|
+
| 'AIRPORT'
|
|
748
|
+
| 'CHILDREN_PLAYING'
|
|
749
|
+
| 'CITY'
|
|
750
|
+
| 'COFFEE_SHOP'
|
|
751
|
+
| 'DRIVING'
|
|
752
|
+
| 'OFFICE'
|
|
753
|
+
| 'THUNDERSTORM';
|
|
754
|
+
|
|
755
|
+
/**
|
|
756
|
+
* Creation timestamp in ISO 8601 format
|
|
757
|
+
*/
|
|
758
|
+
createdAt: string;
|
|
759
|
+
|
|
760
|
+
name: string;
|
|
761
|
+
|
|
762
|
+
/**
|
|
763
|
+
* Last update timestamp in ISO 8601 format
|
|
764
|
+
*/
|
|
765
|
+
updatedAt: string;
|
|
766
|
+
|
|
767
|
+
description?: string | null;
|
|
768
|
+
}
|
|
769
|
+
|
|
770
|
+
/**
|
|
771
|
+
* The persona this runs as instead of the happy path's. Null means it inherits.
|
|
772
|
+
*/
|
|
773
|
+
export interface PersonaOverride {
|
|
774
|
+
/**
|
|
775
|
+
* Unique identifier of the persona
|
|
776
|
+
*/
|
|
777
|
+
id: string;
|
|
778
|
+
|
|
779
|
+
/**
|
|
780
|
+
* Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with
|
|
781
|
+
* optional variants
|
|
782
|
+
*/
|
|
783
|
+
accent:
|
|
784
|
+
| 'US'
|
|
785
|
+
| 'US_X_SOUTH'
|
|
786
|
+
| 'GB'
|
|
787
|
+
| 'ES'
|
|
788
|
+
| 'DE'
|
|
789
|
+
| 'IN'
|
|
790
|
+
| 'FR'
|
|
791
|
+
| 'NL'
|
|
792
|
+
| 'SA'
|
|
793
|
+
| 'GR'
|
|
794
|
+
| 'AU'
|
|
795
|
+
| 'IT'
|
|
796
|
+
| 'ID'
|
|
797
|
+
| 'TH'
|
|
798
|
+
| 'JP'
|
|
799
|
+
| 'NZ'
|
|
800
|
+
| 'PH'
|
|
801
|
+
| 'SG'
|
|
802
|
+
| 'MY'
|
|
803
|
+
| 'HK'
|
|
804
|
+
| 'TR'
|
|
805
|
+
| 'PT'
|
|
806
|
+
| 'IL';
|
|
807
|
+
|
|
808
|
+
/**
|
|
809
|
+
* Background noise setting
|
|
810
|
+
*/
|
|
811
|
+
backgroundNoise:
|
|
812
|
+
| 'NONE'
|
|
813
|
+
| 'AIRPORT'
|
|
814
|
+
| 'CHILDREN_PLAYING'
|
|
815
|
+
| 'CITY'
|
|
816
|
+
| 'COFFEE_SHOP'
|
|
817
|
+
| 'DRIVING'
|
|
818
|
+
| 'OFFICE'
|
|
819
|
+
| 'THUNDERSTORM';
|
|
820
|
+
|
|
821
|
+
/**
|
|
822
|
+
* Base emotional state of the persona
|
|
823
|
+
*/
|
|
824
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
825
|
+
|
|
826
|
+
/**
|
|
827
|
+
* How the persona confirms information
|
|
828
|
+
*/
|
|
829
|
+
confirmationStyle: 'EXPLICIT' | 'VAGUE';
|
|
830
|
+
|
|
831
|
+
/**
|
|
832
|
+
* Creation timestamp
|
|
833
|
+
*/
|
|
834
|
+
createdAt: string;
|
|
835
|
+
|
|
836
|
+
/**
|
|
837
|
+
* Gender of the persona
|
|
838
|
+
*/
|
|
839
|
+
gender: 'MALE' | 'FEMALE';
|
|
840
|
+
|
|
841
|
+
/**
|
|
842
|
+
* Whether the persona uses filler words like "um" and "uh"
|
|
843
|
+
*/
|
|
844
|
+
hasDisfluencies: boolean;
|
|
845
|
+
|
|
846
|
+
/**
|
|
847
|
+
* Maximum number of idle messages the persona will send before giving up
|
|
848
|
+
*/
|
|
849
|
+
idleMessageMaxSpokenCount: number;
|
|
850
|
+
|
|
851
|
+
/**
|
|
852
|
+
* Whether the idle message counter resets when the agent speaks
|
|
853
|
+
*/
|
|
854
|
+
idleMessageResetCountOnUserSpeechEnabled: boolean;
|
|
855
|
+
|
|
856
|
+
/**
|
|
857
|
+
* Messages the persona will say when the agent goes silent during a call. null =
|
|
858
|
+
* "Automatic": language-appropriate defaults are used at call time.
|
|
859
|
+
*/
|
|
860
|
+
idleMessages: Array<string> | null;
|
|
861
|
+
|
|
862
|
+
/**
|
|
863
|
+
* Seconds of silence before the persona sends an idle message
|
|
864
|
+
*/
|
|
865
|
+
idleTimeoutSeconds: number;
|
|
866
|
+
|
|
867
|
+
/**
|
|
868
|
+
* How clearly the persona expresses their intentions
|
|
869
|
+
*/
|
|
870
|
+
intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE';
|
|
871
|
+
|
|
872
|
+
/**
|
|
873
|
+
* Primary language ISO 639-1 code for the persona
|
|
874
|
+
*/
|
|
875
|
+
language:
|
|
876
|
+
| 'EN'
|
|
877
|
+
| 'ES'
|
|
878
|
+
| 'DE'
|
|
879
|
+
| 'HI'
|
|
880
|
+
| 'FR'
|
|
881
|
+
| 'NL'
|
|
882
|
+
| 'AR'
|
|
883
|
+
| 'EL'
|
|
884
|
+
| 'IT'
|
|
885
|
+
| 'ID'
|
|
886
|
+
| 'TH'
|
|
887
|
+
| 'JA'
|
|
888
|
+
| 'TL'
|
|
889
|
+
| 'MS'
|
|
890
|
+
| 'ZH'
|
|
891
|
+
| 'TR'
|
|
892
|
+
| 'PT'
|
|
893
|
+
| 'HE';
|
|
894
|
+
|
|
895
|
+
/**
|
|
896
|
+
* How reliable the persona's memory is
|
|
897
|
+
*/
|
|
898
|
+
memoryReliability: 'HIGH' | 'LOW';
|
|
899
|
+
|
|
900
|
+
/**
|
|
901
|
+
* The name the agent will identify as during conversations
|
|
902
|
+
*/
|
|
903
|
+
name: string;
|
|
904
|
+
|
|
905
|
+
/**
|
|
906
|
+
* Additional custom properties about the persona
|
|
907
|
+
*/
|
|
908
|
+
properties: { [key: string]: unknown };
|
|
909
|
+
|
|
910
|
+
/**
|
|
911
|
+
* Controls how quickly the persona responds to pauses in conversation (QUICK,
|
|
912
|
+
* NORMAL, RELAXED)
|
|
913
|
+
*/
|
|
914
|
+
responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK';
|
|
915
|
+
|
|
916
|
+
/**
|
|
917
|
+
* Speech clarity of the persona
|
|
918
|
+
*/
|
|
919
|
+
speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING';
|
|
920
|
+
|
|
921
|
+
/**
|
|
922
|
+
* Speech pace of the persona
|
|
923
|
+
*/
|
|
924
|
+
speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST';
|
|
925
|
+
|
|
926
|
+
/**
|
|
927
|
+
* Languages the persona can understand. Multilingual combinations are limited by
|
|
928
|
+
* multilingual speech recognition support.
|
|
929
|
+
*/
|
|
930
|
+
understoodLanguages: Array<
|
|
931
|
+
| 'EN'
|
|
932
|
+
| 'ES'
|
|
933
|
+
| 'DE'
|
|
934
|
+
| 'HI'
|
|
935
|
+
| 'FR'
|
|
936
|
+
| 'NL'
|
|
937
|
+
| 'AR'
|
|
938
|
+
| 'EL'
|
|
939
|
+
| 'IT'
|
|
940
|
+
| 'ID'
|
|
941
|
+
| 'TH'
|
|
942
|
+
| 'JA'
|
|
943
|
+
| 'TL'
|
|
944
|
+
| 'MS'
|
|
945
|
+
| 'ZH'
|
|
946
|
+
| 'TR'
|
|
947
|
+
| 'PT'
|
|
948
|
+
| 'HE'
|
|
949
|
+
>;
|
|
950
|
+
|
|
951
|
+
/**
|
|
952
|
+
* Last update timestamp
|
|
953
|
+
*/
|
|
954
|
+
updatedAt: string;
|
|
955
|
+
|
|
956
|
+
/**
|
|
957
|
+
* Background story and behavioral patterns for the persona
|
|
958
|
+
*/
|
|
959
|
+
backstoryPrompt?: string | null;
|
|
960
|
+
|
|
961
|
+
/**
|
|
962
|
+
* Human-readable description of the persona
|
|
963
|
+
*/
|
|
964
|
+
description?: string | null;
|
|
965
|
+
|
|
966
|
+
/**
|
|
967
|
+
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
968
|
+
*/
|
|
969
|
+
secondaryLanguage?: 'EN' | null;
|
|
970
|
+
}
|
|
971
|
+
}
|
|
972
|
+
}
|
|
973
|
+
|
|
974
|
+
export interface CustomerFlowEdgeCaseAddResponse {
|
|
975
|
+
/**
|
|
976
|
+
* One way of running a customer flow.
|
|
977
|
+
*/
|
|
978
|
+
data:
|
|
979
|
+
| CustomerFlowEdgeCaseAddResponse.ScriptedFlowVariant
|
|
980
|
+
| CustomerFlowEdgeCaseAddResponse.ImprovFlowVariant
|
|
981
|
+
| CustomerFlowEdgeCaseAddResponse.VoicemailFlowVariant;
|
|
982
|
+
}
|
|
983
|
+
|
|
984
|
+
export namespace CustomerFlowEdgeCaseAddResponse {
|
|
985
|
+
/**
|
|
986
|
+
* One path through a scripted flow. The path engine owns which paths exist, so
|
|
987
|
+
* editing the graph is what creates and removes these.
|
|
988
|
+
*/
|
|
989
|
+
export interface ScriptedFlowVariant {
|
|
990
|
+
id: string;
|
|
991
|
+
|
|
992
|
+
/**
|
|
993
|
+
* Graded on top of the flow's own expectations, for this variant only.
|
|
994
|
+
*/
|
|
995
|
+
additionalExpectations: Array<ScriptedFlowVariant.AdditionalExpectation>;
|
|
996
|
+
|
|
997
|
+
/**
|
|
998
|
+
* Creation timestamp in ISO 8601 format
|
|
999
|
+
*/
|
|
1000
|
+
createdAt: string;
|
|
1001
|
+
|
|
1002
|
+
/**
|
|
1003
|
+
* A simulation environment: the ambient conditions a customer flow variant runs
|
|
1004
|
+
* under. The list includes both your own and the ones Roark curates for every
|
|
1005
|
+
* project.
|
|
1006
|
+
*/
|
|
1007
|
+
environment: ScriptedFlowVariant.Environment | null;
|
|
1008
|
+
|
|
1009
|
+
isGenerated: boolean;
|
|
1010
|
+
|
|
1011
|
+
/**
|
|
1012
|
+
* The persona this runs as instead of the happy path's. Null means it inherits.
|
|
1013
|
+
*/
|
|
1014
|
+
personaOverride: ScriptedFlowVariant.PersonaOverride | null;
|
|
1015
|
+
|
|
1016
|
+
precededByCustomerFlowId: string | null;
|
|
1017
|
+
|
|
1018
|
+
precededByCustomerFlowVariantId: string | null;
|
|
1019
|
+
|
|
1020
|
+
/**
|
|
1021
|
+
* The one path through the graph this variant runs, in order. Linear by
|
|
1022
|
+
* construction, so these steps never nest.
|
|
1023
|
+
*/
|
|
1024
|
+
steps: Array<CustomerFlowAPI.FlowStep>;
|
|
1025
|
+
|
|
1026
|
+
title: string;
|
|
1027
|
+
|
|
1028
|
+
type: 'SCRIPTED';
|
|
1029
|
+
|
|
1030
|
+
/**
|
|
1031
|
+
* Last update timestamp in ISO 8601 format
|
|
1032
|
+
*/
|
|
1033
|
+
updatedAt: string;
|
|
1034
|
+
}
|
|
1035
|
+
|
|
1036
|
+
export namespace ScriptedFlowVariant {
|
|
1037
|
+
/**
|
|
1038
|
+
* One thing the agent under test is graded against.
|
|
1039
|
+
*/
|
|
1040
|
+
export interface AdditionalExpectation {
|
|
1041
|
+
id: string;
|
|
1042
|
+
|
|
1043
|
+
/**
|
|
1044
|
+
* What the agent under test is graded against.
|
|
1045
|
+
*/
|
|
1046
|
+
prompt: string;
|
|
1047
|
+
}
|
|
1048
|
+
|
|
1049
|
+
/**
|
|
1050
|
+
* A simulation environment: the ambient conditions a customer flow variant runs
|
|
1051
|
+
* under. The list includes both your own and the ones Roark curates for every
|
|
1052
|
+
* project.
|
|
1053
|
+
*/
|
|
1054
|
+
export interface Environment {
|
|
1055
|
+
id: string;
|
|
1056
|
+
|
|
1057
|
+
backgroundNoise:
|
|
1058
|
+
| 'NONE'
|
|
1059
|
+
| 'AIRPORT'
|
|
1060
|
+
| 'CHILDREN_PLAYING'
|
|
1061
|
+
| 'CITY'
|
|
1062
|
+
| 'COFFEE_SHOP'
|
|
1063
|
+
| 'DRIVING'
|
|
1064
|
+
| 'OFFICE'
|
|
1065
|
+
| 'THUNDERSTORM';
|
|
1066
|
+
|
|
1067
|
+
/**
|
|
1068
|
+
* Creation timestamp in ISO 8601 format
|
|
1069
|
+
*/
|
|
1070
|
+
createdAt: string;
|
|
1071
|
+
|
|
1072
|
+
name: string;
|
|
1073
|
+
|
|
1074
|
+
/**
|
|
1075
|
+
* Last update timestamp in ISO 8601 format
|
|
1076
|
+
*/
|
|
1077
|
+
updatedAt: string;
|
|
1078
|
+
|
|
1079
|
+
description?: string | null;
|
|
1080
|
+
}
|
|
1081
|
+
|
|
1082
|
+
/**
|
|
1083
|
+
* The persona this runs as instead of the happy path's. Null means it inherits.
|
|
1084
|
+
*/
|
|
1085
|
+
export interface PersonaOverride {
|
|
1086
|
+
/**
|
|
1087
|
+
* Unique identifier of the persona
|
|
1088
|
+
*/
|
|
1089
|
+
id: string;
|
|
1090
|
+
|
|
1091
|
+
/**
|
|
1092
|
+
* Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with
|
|
1093
|
+
* optional variants
|
|
1094
|
+
*/
|
|
1095
|
+
accent:
|
|
1096
|
+
| 'US'
|
|
1097
|
+
| 'US_X_SOUTH'
|
|
1098
|
+
| 'GB'
|
|
1099
|
+
| 'ES'
|
|
1100
|
+
| 'DE'
|
|
1101
|
+
| 'IN'
|
|
1102
|
+
| 'FR'
|
|
1103
|
+
| 'NL'
|
|
1104
|
+
| 'SA'
|
|
1105
|
+
| 'GR'
|
|
1106
|
+
| 'AU'
|
|
1107
|
+
| 'IT'
|
|
1108
|
+
| 'ID'
|
|
1109
|
+
| 'TH'
|
|
1110
|
+
| 'JP'
|
|
1111
|
+
| 'NZ'
|
|
1112
|
+
| 'PH'
|
|
1113
|
+
| 'SG'
|
|
1114
|
+
| 'MY'
|
|
1115
|
+
| 'HK'
|
|
1116
|
+
| 'TR'
|
|
1117
|
+
| 'PT'
|
|
1118
|
+
| 'IL';
|
|
1119
|
+
|
|
1120
|
+
/**
|
|
1121
|
+
* Background noise setting
|
|
1122
|
+
*/
|
|
1123
|
+
backgroundNoise:
|
|
1124
|
+
| 'NONE'
|
|
1125
|
+
| 'AIRPORT'
|
|
1126
|
+
| 'CHILDREN_PLAYING'
|
|
1127
|
+
| 'CITY'
|
|
1128
|
+
| 'COFFEE_SHOP'
|
|
1129
|
+
| 'DRIVING'
|
|
1130
|
+
| 'OFFICE'
|
|
1131
|
+
| 'THUNDERSTORM';
|
|
1132
|
+
|
|
1133
|
+
/**
|
|
1134
|
+
* Base emotional state of the persona
|
|
1135
|
+
*/
|
|
1136
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
1137
|
+
|
|
1138
|
+
/**
|
|
1139
|
+
* How the persona confirms information
|
|
1140
|
+
*/
|
|
1141
|
+
confirmationStyle: 'EXPLICIT' | 'VAGUE';
|
|
1142
|
+
|
|
1143
|
+
/**
|
|
1144
|
+
* Creation timestamp
|
|
1145
|
+
*/
|
|
1146
|
+
createdAt: string;
|
|
1147
|
+
|
|
1148
|
+
/**
|
|
1149
|
+
* Gender of the persona
|
|
1150
|
+
*/
|
|
1151
|
+
gender: 'MALE' | 'FEMALE';
|
|
1152
|
+
|
|
1153
|
+
/**
|
|
1154
|
+
* Whether the persona uses filler words like "um" and "uh"
|
|
1155
|
+
*/
|
|
1156
|
+
hasDisfluencies: boolean;
|
|
1157
|
+
|
|
1158
|
+
/**
|
|
1159
|
+
* Maximum number of idle messages the persona will send before giving up
|
|
1160
|
+
*/
|
|
1161
|
+
idleMessageMaxSpokenCount: number;
|
|
1162
|
+
|
|
1163
|
+
/**
|
|
1164
|
+
* Whether the idle message counter resets when the agent speaks
|
|
1165
|
+
*/
|
|
1166
|
+
idleMessageResetCountOnUserSpeechEnabled: boolean;
|
|
1167
|
+
|
|
1168
|
+
/**
|
|
1169
|
+
* Messages the persona will say when the agent goes silent during a call. null =
|
|
1170
|
+
* "Automatic": language-appropriate defaults are used at call time.
|
|
1171
|
+
*/
|
|
1172
|
+
idleMessages: Array<string> | null;
|
|
1173
|
+
|
|
1174
|
+
/**
|
|
1175
|
+
* Seconds of silence before the persona sends an idle message
|
|
1176
|
+
*/
|
|
1177
|
+
idleTimeoutSeconds: number;
|
|
1178
|
+
|
|
1179
|
+
/**
|
|
1180
|
+
* How clearly the persona expresses their intentions
|
|
1181
|
+
*/
|
|
1182
|
+
intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE';
|
|
1183
|
+
|
|
1184
|
+
/**
|
|
1185
|
+
* Primary language ISO 639-1 code for the persona
|
|
1186
|
+
*/
|
|
1187
|
+
language:
|
|
1188
|
+
| 'EN'
|
|
1189
|
+
| 'ES'
|
|
1190
|
+
| 'DE'
|
|
1191
|
+
| 'HI'
|
|
1192
|
+
| 'FR'
|
|
1193
|
+
| 'NL'
|
|
1194
|
+
| 'AR'
|
|
1195
|
+
| 'EL'
|
|
1196
|
+
| 'IT'
|
|
1197
|
+
| 'ID'
|
|
1198
|
+
| 'TH'
|
|
1199
|
+
| 'JA'
|
|
1200
|
+
| 'TL'
|
|
1201
|
+
| 'MS'
|
|
1202
|
+
| 'ZH'
|
|
1203
|
+
| 'TR'
|
|
1204
|
+
| 'PT'
|
|
1205
|
+
| 'HE';
|
|
1206
|
+
|
|
1207
|
+
/**
|
|
1208
|
+
* How reliable the persona's memory is
|
|
1209
|
+
*/
|
|
1210
|
+
memoryReliability: 'HIGH' | 'LOW';
|
|
1211
|
+
|
|
1212
|
+
/**
|
|
1213
|
+
* The name the agent will identify as during conversations
|
|
1214
|
+
*/
|
|
1215
|
+
name: string;
|
|
1216
|
+
|
|
1217
|
+
/**
|
|
1218
|
+
* Additional custom properties about the persona
|
|
1219
|
+
*/
|
|
1220
|
+
properties: { [key: string]: unknown };
|
|
1221
|
+
|
|
1222
|
+
/**
|
|
1223
|
+
* Controls how quickly the persona responds to pauses in conversation (QUICK,
|
|
1224
|
+
* NORMAL, RELAXED)
|
|
1225
|
+
*/
|
|
1226
|
+
responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK';
|
|
1227
|
+
|
|
1228
|
+
/**
|
|
1229
|
+
* Speech clarity of the persona
|
|
1230
|
+
*/
|
|
1231
|
+
speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING';
|
|
1232
|
+
|
|
1233
|
+
/**
|
|
1234
|
+
* Speech pace of the persona
|
|
1235
|
+
*/
|
|
1236
|
+
speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST';
|
|
1237
|
+
|
|
1238
|
+
/**
|
|
1239
|
+
* Languages the persona can understand. Multilingual combinations are limited by
|
|
1240
|
+
* multilingual speech recognition support.
|
|
1241
|
+
*/
|
|
1242
|
+
understoodLanguages: Array<
|
|
1243
|
+
| 'EN'
|
|
1244
|
+
| 'ES'
|
|
1245
|
+
| 'DE'
|
|
1246
|
+
| 'HI'
|
|
1247
|
+
| 'FR'
|
|
1248
|
+
| 'NL'
|
|
1249
|
+
| 'AR'
|
|
1250
|
+
| 'EL'
|
|
1251
|
+
| 'IT'
|
|
1252
|
+
| 'ID'
|
|
1253
|
+
| 'TH'
|
|
1254
|
+
| 'JA'
|
|
1255
|
+
| 'TL'
|
|
1256
|
+
| 'MS'
|
|
1257
|
+
| 'ZH'
|
|
1258
|
+
| 'TR'
|
|
1259
|
+
| 'PT'
|
|
1260
|
+
| 'HE'
|
|
1261
|
+
>;
|
|
1262
|
+
|
|
1263
|
+
/**
|
|
1264
|
+
* Last update timestamp
|
|
1265
|
+
*/
|
|
1266
|
+
updatedAt: string;
|
|
1267
|
+
|
|
1268
|
+
/**
|
|
1269
|
+
* Background story and behavioral patterns for the persona
|
|
1270
|
+
*/
|
|
1271
|
+
backstoryPrompt?: string | null;
|
|
1272
|
+
|
|
1273
|
+
/**
|
|
1274
|
+
* Human-readable description of the persona
|
|
1275
|
+
*/
|
|
1276
|
+
description?: string | null;
|
|
1277
|
+
|
|
1278
|
+
/**
|
|
1279
|
+
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
1280
|
+
*/
|
|
1281
|
+
secondaryLanguage?: 'EN' | null;
|
|
1282
|
+
}
|
|
1283
|
+
}
|
|
1284
|
+
|
|
1285
|
+
/**
|
|
1286
|
+
* One brief to run an improv flow with.
|
|
1287
|
+
*/
|
|
1288
|
+
export interface ImprovFlowVariant {
|
|
1289
|
+
id: string;
|
|
1290
|
+
|
|
1291
|
+
/**
|
|
1292
|
+
* Graded on top of the flow's own expectations, for this variant only.
|
|
1293
|
+
*/
|
|
1294
|
+
additionalExpectations: Array<ImprovFlowVariant.AdditionalExpectation>;
|
|
1295
|
+
|
|
1296
|
+
/**
|
|
1297
|
+
* Creation timestamp in ISO 8601 format
|
|
1298
|
+
*/
|
|
1299
|
+
createdAt: string;
|
|
1300
|
+
|
|
1301
|
+
/**
|
|
1302
|
+
* A simulation environment: the ambient conditions a customer flow variant runs
|
|
1303
|
+
* under. The list includes both your own and the ones Roark curates for every
|
|
1304
|
+
* project.
|
|
1305
|
+
*/
|
|
1306
|
+
environment: ImprovFlowVariant.Environment | null;
|
|
1307
|
+
|
|
1308
|
+
isGenerated: boolean;
|
|
1309
|
+
|
|
1310
|
+
/**
|
|
1311
|
+
* The persona this runs as instead of the happy path's. Null means it inherits.
|
|
1312
|
+
*/
|
|
1313
|
+
personaOverride: ImprovFlowVariant.PersonaOverride | null;
|
|
1314
|
+
|
|
1315
|
+
precededByCustomerFlowId: string | null;
|
|
1316
|
+
|
|
1317
|
+
precededByCustomerFlowVariantId: string | null;
|
|
1318
|
+
|
|
1319
|
+
title: string;
|
|
1320
|
+
|
|
1321
|
+
type: 'IMPROV';
|
|
1322
|
+
|
|
1323
|
+
/**
|
|
1324
|
+
* Last update timestamp in ISO 8601 format
|
|
1325
|
+
*/
|
|
1326
|
+
updatedAt: string;
|
|
1327
|
+
|
|
1328
|
+
/**
|
|
1329
|
+
* The brief the simulated customer improvises from.
|
|
1330
|
+
*/
|
|
1331
|
+
prompt?: string | null;
|
|
1332
|
+
}
|
|
1333
|
+
|
|
1334
|
+
export namespace ImprovFlowVariant {
|
|
1335
|
+
/**
|
|
1336
|
+
* One thing the agent under test is graded against.
|
|
1337
|
+
*/
|
|
1338
|
+
export interface AdditionalExpectation {
|
|
1339
|
+
id: string;
|
|
1340
|
+
|
|
1341
|
+
/**
|
|
1342
|
+
* What the agent under test is graded against.
|
|
1343
|
+
*/
|
|
1344
|
+
prompt: string;
|
|
1345
|
+
}
|
|
1346
|
+
|
|
1347
|
+
/**
|
|
1348
|
+
* A simulation environment: the ambient conditions a customer flow variant runs
|
|
1349
|
+
* under. The list includes both your own and the ones Roark curates for every
|
|
1350
|
+
* project.
|
|
1351
|
+
*/
|
|
1352
|
+
export interface Environment {
|
|
1353
|
+
id: string;
|
|
1354
|
+
|
|
1355
|
+
backgroundNoise:
|
|
1356
|
+
| 'NONE'
|
|
1357
|
+
| 'AIRPORT'
|
|
1358
|
+
| 'CHILDREN_PLAYING'
|
|
1359
|
+
| 'CITY'
|
|
1360
|
+
| 'COFFEE_SHOP'
|
|
1361
|
+
| 'DRIVING'
|
|
1362
|
+
| 'OFFICE'
|
|
1363
|
+
| 'THUNDERSTORM';
|
|
1364
|
+
|
|
1365
|
+
/**
|
|
1366
|
+
* Creation timestamp in ISO 8601 format
|
|
1367
|
+
*/
|
|
1368
|
+
createdAt: string;
|
|
1369
|
+
|
|
1370
|
+
name: string;
|
|
1371
|
+
|
|
1372
|
+
/**
|
|
1373
|
+
* Last update timestamp in ISO 8601 format
|
|
1374
|
+
*/
|
|
1375
|
+
updatedAt: string;
|
|
1376
|
+
|
|
1377
|
+
description?: string | null;
|
|
1378
|
+
}
|
|
1379
|
+
|
|
1380
|
+
/**
|
|
1381
|
+
* The persona this runs as instead of the happy path's. Null means it inherits.
|
|
1382
|
+
*/
|
|
1383
|
+
export interface PersonaOverride {
|
|
1384
|
+
/**
|
|
1385
|
+
* Unique identifier of the persona
|
|
1386
|
+
*/
|
|
1387
|
+
id: string;
|
|
1388
|
+
|
|
1389
|
+
/**
|
|
1390
|
+
* Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with
|
|
1391
|
+
* optional variants
|
|
1392
|
+
*/
|
|
1393
|
+
accent:
|
|
1394
|
+
| 'US'
|
|
1395
|
+
| 'US_X_SOUTH'
|
|
1396
|
+
| 'GB'
|
|
1397
|
+
| 'ES'
|
|
1398
|
+
| 'DE'
|
|
1399
|
+
| 'IN'
|
|
1400
|
+
| 'FR'
|
|
1401
|
+
| 'NL'
|
|
1402
|
+
| 'SA'
|
|
1403
|
+
| 'GR'
|
|
1404
|
+
| 'AU'
|
|
1405
|
+
| 'IT'
|
|
1406
|
+
| 'ID'
|
|
1407
|
+
| 'TH'
|
|
1408
|
+
| 'JP'
|
|
1409
|
+
| 'NZ'
|
|
1410
|
+
| 'PH'
|
|
1411
|
+
| 'SG'
|
|
1412
|
+
| 'MY'
|
|
1413
|
+
| 'HK'
|
|
1414
|
+
| 'TR'
|
|
1415
|
+
| 'PT'
|
|
1416
|
+
| 'IL';
|
|
1417
|
+
|
|
1418
|
+
/**
|
|
1419
|
+
* Background noise setting
|
|
1420
|
+
*/
|
|
1421
|
+
backgroundNoise:
|
|
1422
|
+
| 'NONE'
|
|
1423
|
+
| 'AIRPORT'
|
|
1424
|
+
| 'CHILDREN_PLAYING'
|
|
1425
|
+
| 'CITY'
|
|
1426
|
+
| 'COFFEE_SHOP'
|
|
1427
|
+
| 'DRIVING'
|
|
1428
|
+
| 'OFFICE'
|
|
1429
|
+
| 'THUNDERSTORM';
|
|
1430
|
+
|
|
1431
|
+
/**
|
|
1432
|
+
* Base emotional state of the persona
|
|
1433
|
+
*/
|
|
1434
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
1435
|
+
|
|
1436
|
+
/**
|
|
1437
|
+
* How the persona confirms information
|
|
1438
|
+
*/
|
|
1439
|
+
confirmationStyle: 'EXPLICIT' | 'VAGUE';
|
|
1440
|
+
|
|
1441
|
+
/**
|
|
1442
|
+
* Creation timestamp
|
|
1443
|
+
*/
|
|
1444
|
+
createdAt: string;
|
|
1445
|
+
|
|
1446
|
+
/**
|
|
1447
|
+
* Gender of the persona
|
|
1448
|
+
*/
|
|
1449
|
+
gender: 'MALE' | 'FEMALE';
|
|
1450
|
+
|
|
1451
|
+
/**
|
|
1452
|
+
* Whether the persona uses filler words like "um" and "uh"
|
|
1453
|
+
*/
|
|
1454
|
+
hasDisfluencies: boolean;
|
|
1455
|
+
|
|
1456
|
+
/**
|
|
1457
|
+
* Maximum number of idle messages the persona will send before giving up
|
|
1458
|
+
*/
|
|
1459
|
+
idleMessageMaxSpokenCount: number;
|
|
1460
|
+
|
|
1461
|
+
/**
|
|
1462
|
+
* Whether the idle message counter resets when the agent speaks
|
|
1463
|
+
*/
|
|
1464
|
+
idleMessageResetCountOnUserSpeechEnabled: boolean;
|
|
1465
|
+
|
|
1466
|
+
/**
|
|
1467
|
+
* Messages the persona will say when the agent goes silent during a call. null =
|
|
1468
|
+
* "Automatic": language-appropriate defaults are used at call time.
|
|
1469
|
+
*/
|
|
1470
|
+
idleMessages: Array<string> | null;
|
|
1471
|
+
|
|
1472
|
+
/**
|
|
1473
|
+
* Seconds of silence before the persona sends an idle message
|
|
1474
|
+
*/
|
|
1475
|
+
idleTimeoutSeconds: number;
|
|
1476
|
+
|
|
1477
|
+
/**
|
|
1478
|
+
* How clearly the persona expresses their intentions
|
|
1479
|
+
*/
|
|
1480
|
+
intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE';
|
|
1481
|
+
|
|
1482
|
+
/**
|
|
1483
|
+
* Primary language ISO 639-1 code for the persona
|
|
1484
|
+
*/
|
|
1485
|
+
language:
|
|
1486
|
+
| 'EN'
|
|
1487
|
+
| 'ES'
|
|
1488
|
+
| 'DE'
|
|
1489
|
+
| 'HI'
|
|
1490
|
+
| 'FR'
|
|
1491
|
+
| 'NL'
|
|
1492
|
+
| 'AR'
|
|
1493
|
+
| 'EL'
|
|
1494
|
+
| 'IT'
|
|
1495
|
+
| 'ID'
|
|
1496
|
+
| 'TH'
|
|
1497
|
+
| 'JA'
|
|
1498
|
+
| 'TL'
|
|
1499
|
+
| 'MS'
|
|
1500
|
+
| 'ZH'
|
|
1501
|
+
| 'TR'
|
|
1502
|
+
| 'PT'
|
|
1503
|
+
| 'HE';
|
|
1504
|
+
|
|
1505
|
+
/**
|
|
1506
|
+
* How reliable the persona's memory is
|
|
1507
|
+
*/
|
|
1508
|
+
memoryReliability: 'HIGH' | 'LOW';
|
|
1509
|
+
|
|
1510
|
+
/**
|
|
1511
|
+
* The name the agent will identify as during conversations
|
|
1512
|
+
*/
|
|
1513
|
+
name: string;
|
|
1514
|
+
|
|
1515
|
+
/**
|
|
1516
|
+
* Additional custom properties about the persona
|
|
1517
|
+
*/
|
|
1518
|
+
properties: { [key: string]: unknown };
|
|
1519
|
+
|
|
1520
|
+
/**
|
|
1521
|
+
* Controls how quickly the persona responds to pauses in conversation (QUICK,
|
|
1522
|
+
* NORMAL, RELAXED)
|
|
1523
|
+
*/
|
|
1524
|
+
responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK';
|
|
1525
|
+
|
|
1526
|
+
/**
|
|
1527
|
+
* Speech clarity of the persona
|
|
1528
|
+
*/
|
|
1529
|
+
speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING';
|
|
1530
|
+
|
|
1531
|
+
/**
|
|
1532
|
+
* Speech pace of the persona
|
|
1533
|
+
*/
|
|
1534
|
+
speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST';
|
|
1535
|
+
|
|
1536
|
+
/**
|
|
1537
|
+
* Languages the persona can understand. Multilingual combinations are limited by
|
|
1538
|
+
* multilingual speech recognition support.
|
|
1539
|
+
*/
|
|
1540
|
+
understoodLanguages: Array<
|
|
1541
|
+
| 'EN'
|
|
1542
|
+
| 'ES'
|
|
1543
|
+
| 'DE'
|
|
1544
|
+
| 'HI'
|
|
1545
|
+
| 'FR'
|
|
1546
|
+
| 'NL'
|
|
1547
|
+
| 'AR'
|
|
1548
|
+
| 'EL'
|
|
1549
|
+
| 'IT'
|
|
1550
|
+
| 'ID'
|
|
1551
|
+
| 'TH'
|
|
1552
|
+
| 'JA'
|
|
1553
|
+
| 'TL'
|
|
1554
|
+
| 'MS'
|
|
1555
|
+
| 'ZH'
|
|
1556
|
+
| 'TR'
|
|
1557
|
+
| 'PT'
|
|
1558
|
+
| 'HE'
|
|
1559
|
+
>;
|
|
1560
|
+
|
|
1561
|
+
/**
|
|
1562
|
+
* Last update timestamp
|
|
1563
|
+
*/
|
|
1564
|
+
updatedAt: string;
|
|
1565
|
+
|
|
1566
|
+
/**
|
|
1567
|
+
* Background story and behavioral patterns for the persona
|
|
1568
|
+
*/
|
|
1569
|
+
backstoryPrompt?: string | null;
|
|
1570
|
+
|
|
1571
|
+
/**
|
|
1572
|
+
* Human-readable description of the persona
|
|
1573
|
+
*/
|
|
1574
|
+
description?: string | null;
|
|
1575
|
+
|
|
1576
|
+
/**
|
|
1577
|
+
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
1578
|
+
*/
|
|
1579
|
+
secondaryLanguage?: 'EN' | null;
|
|
1580
|
+
}
|
|
1581
|
+
}
|
|
1582
|
+
|
|
1583
|
+
/**
|
|
1584
|
+
* One voicemail greeting.
|
|
1585
|
+
*/
|
|
1586
|
+
export interface VoicemailFlowVariant {
|
|
1587
|
+
id: string;
|
|
1588
|
+
|
|
1589
|
+
/**
|
|
1590
|
+
* Graded on top of the flow's own expectations, for this variant only.
|
|
1591
|
+
*/
|
|
1592
|
+
additionalExpectations: Array<VoicemailFlowVariant.AdditionalExpectation>;
|
|
1593
|
+
|
|
1594
|
+
/**
|
|
1595
|
+
* Creation timestamp in ISO 8601 format
|
|
1596
|
+
*/
|
|
1597
|
+
createdAt: string;
|
|
1598
|
+
|
|
1599
|
+
/**
|
|
1600
|
+
* A simulation environment: the ambient conditions a customer flow variant runs
|
|
1601
|
+
* under. The list includes both your own and the ones Roark curates for every
|
|
1602
|
+
* project.
|
|
1603
|
+
*/
|
|
1604
|
+
environment: VoicemailFlowVariant.Environment | null;
|
|
1605
|
+
|
|
1606
|
+
isGenerated: boolean;
|
|
1607
|
+
|
|
1608
|
+
/**
|
|
1609
|
+
* The persona this runs as instead of the happy path's. Null means it inherits.
|
|
1610
|
+
*/
|
|
1611
|
+
personaOverride: VoicemailFlowVariant.PersonaOverride | null;
|
|
1612
|
+
|
|
1613
|
+
precededByCustomerFlowId: string | null;
|
|
1614
|
+
|
|
1615
|
+
precededByCustomerFlowVariantId: string | null;
|
|
1616
|
+
|
|
1617
|
+
title: string;
|
|
1618
|
+
|
|
1619
|
+
type: 'VOICEMAIL';
|
|
1620
|
+
|
|
1621
|
+
/**
|
|
1622
|
+
* Last update timestamp in ISO 8601 format
|
|
1623
|
+
*/
|
|
1624
|
+
updatedAt: string;
|
|
1625
|
+
}
|
|
1626
|
+
|
|
1627
|
+
export namespace VoicemailFlowVariant {
|
|
1628
|
+
/**
|
|
1629
|
+
* One thing the agent under test is graded against.
|
|
1630
|
+
*/
|
|
1631
|
+
export interface AdditionalExpectation {
|
|
1632
|
+
id: string;
|
|
1633
|
+
|
|
1634
|
+
/**
|
|
1635
|
+
* What the agent under test is graded against.
|
|
1636
|
+
*/
|
|
1637
|
+
prompt: string;
|
|
1638
|
+
}
|
|
1639
|
+
|
|
1640
|
+
/**
|
|
1641
|
+
* A simulation environment: the ambient conditions a customer flow variant runs
|
|
1642
|
+
* under. The list includes both your own and the ones Roark curates for every
|
|
1643
|
+
* project.
|
|
1644
|
+
*/
|
|
1645
|
+
export interface Environment {
|
|
1646
|
+
id: string;
|
|
1647
|
+
|
|
1648
|
+
backgroundNoise:
|
|
1649
|
+
| 'NONE'
|
|
1650
|
+
| 'AIRPORT'
|
|
1651
|
+
| 'CHILDREN_PLAYING'
|
|
1652
|
+
| 'CITY'
|
|
1653
|
+
| 'COFFEE_SHOP'
|
|
1654
|
+
| 'DRIVING'
|
|
1655
|
+
| 'OFFICE'
|
|
1656
|
+
| 'THUNDERSTORM';
|
|
1657
|
+
|
|
1658
|
+
/**
|
|
1659
|
+
* Creation timestamp in ISO 8601 format
|
|
1660
|
+
*/
|
|
1661
|
+
createdAt: string;
|
|
1662
|
+
|
|
1663
|
+
name: string;
|
|
1664
|
+
|
|
1665
|
+
/**
|
|
1666
|
+
* Last update timestamp in ISO 8601 format
|
|
1667
|
+
*/
|
|
1668
|
+
updatedAt: string;
|
|
1669
|
+
|
|
1670
|
+
description?: string | null;
|
|
1671
|
+
}
|
|
1672
|
+
|
|
1673
|
+
/**
|
|
1674
|
+
* The persona this runs as instead of the happy path's. Null means it inherits.
|
|
1675
|
+
*/
|
|
1676
|
+
export interface PersonaOverride {
|
|
1677
|
+
/**
|
|
1678
|
+
* Unique identifier of the persona
|
|
1679
|
+
*/
|
|
1680
|
+
id: string;
|
|
1681
|
+
|
|
1682
|
+
/**
|
|
1683
|
+
* Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with
|
|
1684
|
+
* optional variants
|
|
1685
|
+
*/
|
|
1686
|
+
accent:
|
|
1687
|
+
| 'US'
|
|
1688
|
+
| 'US_X_SOUTH'
|
|
1689
|
+
| 'GB'
|
|
1690
|
+
| 'ES'
|
|
1691
|
+
| 'DE'
|
|
1692
|
+
| 'IN'
|
|
1693
|
+
| 'FR'
|
|
1694
|
+
| 'NL'
|
|
1695
|
+
| 'SA'
|
|
1696
|
+
| 'GR'
|
|
1697
|
+
| 'AU'
|
|
1698
|
+
| 'IT'
|
|
1699
|
+
| 'ID'
|
|
1700
|
+
| 'TH'
|
|
1701
|
+
| 'JP'
|
|
1702
|
+
| 'NZ'
|
|
1703
|
+
| 'PH'
|
|
1704
|
+
| 'SG'
|
|
1705
|
+
| 'MY'
|
|
1706
|
+
| 'HK'
|
|
1707
|
+
| 'TR'
|
|
1708
|
+
| 'PT'
|
|
1709
|
+
| 'IL';
|
|
1710
|
+
|
|
1711
|
+
/**
|
|
1712
|
+
* Background noise setting
|
|
1713
|
+
*/
|
|
1714
|
+
backgroundNoise:
|
|
1715
|
+
| 'NONE'
|
|
1716
|
+
| 'AIRPORT'
|
|
1717
|
+
| 'CHILDREN_PLAYING'
|
|
1718
|
+
| 'CITY'
|
|
1719
|
+
| 'COFFEE_SHOP'
|
|
1720
|
+
| 'DRIVING'
|
|
1721
|
+
| 'OFFICE'
|
|
1722
|
+
| 'THUNDERSTORM';
|
|
1723
|
+
|
|
1724
|
+
/**
|
|
1725
|
+
* Base emotional state of the persona
|
|
1726
|
+
*/
|
|
1727
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
1728
|
+
|
|
1729
|
+
/**
|
|
1730
|
+
* How the persona confirms information
|
|
1731
|
+
*/
|
|
1732
|
+
confirmationStyle: 'EXPLICIT' | 'VAGUE';
|
|
1733
|
+
|
|
1734
|
+
/**
|
|
1735
|
+
* Creation timestamp
|
|
1736
|
+
*/
|
|
1737
|
+
createdAt: string;
|
|
1738
|
+
|
|
1739
|
+
/**
|
|
1740
|
+
* Gender of the persona
|
|
1741
|
+
*/
|
|
1742
|
+
gender: 'MALE' | 'FEMALE';
|
|
1743
|
+
|
|
1744
|
+
/**
|
|
1745
|
+
* Whether the persona uses filler words like "um" and "uh"
|
|
1746
|
+
*/
|
|
1747
|
+
hasDisfluencies: boolean;
|
|
1748
|
+
|
|
1749
|
+
/**
|
|
1750
|
+
* Maximum number of idle messages the persona will send before giving up
|
|
1751
|
+
*/
|
|
1752
|
+
idleMessageMaxSpokenCount: number;
|
|
1753
|
+
|
|
1754
|
+
/**
|
|
1755
|
+
* Whether the idle message counter resets when the agent speaks
|
|
1756
|
+
*/
|
|
1757
|
+
idleMessageResetCountOnUserSpeechEnabled: boolean;
|
|
1758
|
+
|
|
1759
|
+
/**
|
|
1760
|
+
* Messages the persona will say when the agent goes silent during a call. null =
|
|
1761
|
+
* "Automatic": language-appropriate defaults are used at call time.
|
|
1762
|
+
*/
|
|
1763
|
+
idleMessages: Array<string> | null;
|
|
1764
|
+
|
|
1765
|
+
/**
|
|
1766
|
+
* Seconds of silence before the persona sends an idle message
|
|
1767
|
+
*/
|
|
1768
|
+
idleTimeoutSeconds: number;
|
|
1769
|
+
|
|
1770
|
+
/**
|
|
1771
|
+
* How clearly the persona expresses their intentions
|
|
1772
|
+
*/
|
|
1773
|
+
intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE';
|
|
1774
|
+
|
|
1775
|
+
/**
|
|
1776
|
+
* Primary language ISO 639-1 code for the persona
|
|
1777
|
+
*/
|
|
1778
|
+
language:
|
|
1779
|
+
| 'EN'
|
|
1780
|
+
| 'ES'
|
|
1781
|
+
| 'DE'
|
|
1782
|
+
| 'HI'
|
|
1783
|
+
| 'FR'
|
|
1784
|
+
| 'NL'
|
|
1785
|
+
| 'AR'
|
|
1786
|
+
| 'EL'
|
|
1787
|
+
| 'IT'
|
|
1788
|
+
| 'ID'
|
|
1789
|
+
| 'TH'
|
|
1790
|
+
| 'JA'
|
|
1791
|
+
| 'TL'
|
|
1792
|
+
| 'MS'
|
|
1793
|
+
| 'ZH'
|
|
1794
|
+
| 'TR'
|
|
1795
|
+
| 'PT'
|
|
1796
|
+
| 'HE';
|
|
1797
|
+
|
|
1798
|
+
/**
|
|
1799
|
+
* How reliable the persona's memory is
|
|
1800
|
+
*/
|
|
1801
|
+
memoryReliability: 'HIGH' | 'LOW';
|
|
1802
|
+
|
|
1803
|
+
/**
|
|
1804
|
+
* The name the agent will identify as during conversations
|
|
1805
|
+
*/
|
|
1806
|
+
name: string;
|
|
1807
|
+
|
|
1808
|
+
/**
|
|
1809
|
+
* Additional custom properties about the persona
|
|
1810
|
+
*/
|
|
1811
|
+
properties: { [key: string]: unknown };
|
|
1812
|
+
|
|
1813
|
+
/**
|
|
1814
|
+
* Controls how quickly the persona responds to pauses in conversation (QUICK,
|
|
1815
|
+
* NORMAL, RELAXED)
|
|
1816
|
+
*/
|
|
1817
|
+
responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK';
|
|
1818
|
+
|
|
1819
|
+
/**
|
|
1820
|
+
* Speech clarity of the persona
|
|
1821
|
+
*/
|
|
1822
|
+
speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING';
|
|
1823
|
+
|
|
1824
|
+
/**
|
|
1825
|
+
* Speech pace of the persona
|
|
1826
|
+
*/
|
|
1827
|
+
speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST';
|
|
1828
|
+
|
|
1829
|
+
/**
|
|
1830
|
+
* Languages the persona can understand. Multilingual combinations are limited by
|
|
1831
|
+
* multilingual speech recognition support.
|
|
1832
|
+
*/
|
|
1833
|
+
understoodLanguages: Array<
|
|
1834
|
+
| 'EN'
|
|
1835
|
+
| 'ES'
|
|
1836
|
+
| 'DE'
|
|
1837
|
+
| 'HI'
|
|
1838
|
+
| 'FR'
|
|
1839
|
+
| 'NL'
|
|
1840
|
+
| 'AR'
|
|
1841
|
+
| 'EL'
|
|
1842
|
+
| 'IT'
|
|
1843
|
+
| 'ID'
|
|
1844
|
+
| 'TH'
|
|
1845
|
+
| 'JA'
|
|
1846
|
+
| 'TL'
|
|
1847
|
+
| 'MS'
|
|
1848
|
+
| 'ZH'
|
|
1849
|
+
| 'TR'
|
|
1850
|
+
| 'PT'
|
|
1851
|
+
| 'HE'
|
|
1852
|
+
>;
|
|
1853
|
+
|
|
1854
|
+
/**
|
|
1855
|
+
* Last update timestamp
|
|
1856
|
+
*/
|
|
1857
|
+
updatedAt: string;
|
|
1858
|
+
|
|
1859
|
+
/**
|
|
1860
|
+
* Background story and behavioral patterns for the persona
|
|
1861
|
+
*/
|
|
1862
|
+
backstoryPrompt?: string | null;
|
|
1863
|
+
|
|
1864
|
+
/**
|
|
1865
|
+
* Human-readable description of the persona
|
|
1866
|
+
*/
|
|
1867
|
+
description?: string | null;
|
|
1868
|
+
|
|
1869
|
+
/**
|
|
1870
|
+
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
1871
|
+
*/
|
|
1872
|
+
secondaryLanguage?: 'EN' | null;
|
|
1873
|
+
}
|
|
1874
|
+
}
|
|
1875
|
+
}
|
|
1876
|
+
|
|
1877
|
+
export interface CustomerFlowEdgeCasePromoteResponse {
|
|
1878
|
+
/**
|
|
1879
|
+
* One way of running a customer flow.
|
|
1880
|
+
*/
|
|
1881
|
+
data:
|
|
1882
|
+
| CustomerFlowEdgeCasePromoteResponse.ScriptedFlowVariant
|
|
1883
|
+
| CustomerFlowEdgeCasePromoteResponse.ImprovFlowVariant
|
|
1884
|
+
| CustomerFlowEdgeCasePromoteResponse.VoicemailFlowVariant;
|
|
1885
|
+
}
|
|
1886
|
+
|
|
1887
|
+
export namespace CustomerFlowEdgeCasePromoteResponse {
|
|
1888
|
+
/**
|
|
1889
|
+
* One path through a scripted flow. The path engine owns which paths exist, so
|
|
1890
|
+
* editing the graph is what creates and removes these.
|
|
1891
|
+
*/
|
|
1892
|
+
export interface ScriptedFlowVariant {
|
|
1893
|
+
id: string;
|
|
1894
|
+
|
|
1895
|
+
/**
|
|
1896
|
+
* Graded on top of the flow's own expectations, for this variant only.
|
|
1897
|
+
*/
|
|
1898
|
+
additionalExpectations: Array<ScriptedFlowVariant.AdditionalExpectation>;
|
|
1899
|
+
|
|
1900
|
+
/**
|
|
1901
|
+
* Creation timestamp in ISO 8601 format
|
|
1902
|
+
*/
|
|
1903
|
+
createdAt: string;
|
|
1904
|
+
|
|
1905
|
+
/**
|
|
1906
|
+
* A simulation environment: the ambient conditions a customer flow variant runs
|
|
1907
|
+
* under. The list includes both your own and the ones Roark curates for every
|
|
1908
|
+
* project.
|
|
1909
|
+
*/
|
|
1910
|
+
environment: ScriptedFlowVariant.Environment | null;
|
|
1911
|
+
|
|
1912
|
+
isGenerated: boolean;
|
|
1913
|
+
|
|
1914
|
+
/**
|
|
1915
|
+
* The persona this runs as instead of the happy path's. Null means it inherits.
|
|
1916
|
+
*/
|
|
1917
|
+
personaOverride: ScriptedFlowVariant.PersonaOverride | null;
|
|
1918
|
+
|
|
1919
|
+
precededByCustomerFlowId: string | null;
|
|
1920
|
+
|
|
1921
|
+
precededByCustomerFlowVariantId: string | null;
|
|
1922
|
+
|
|
1923
|
+
/**
|
|
1924
|
+
* The one path through the graph this variant runs, in order. Linear by
|
|
1925
|
+
* construction, so these steps never nest.
|
|
1926
|
+
*/
|
|
1927
|
+
steps: Array<CustomerFlowAPI.FlowStep>;
|
|
1928
|
+
|
|
1929
|
+
title: string;
|
|
1930
|
+
|
|
1931
|
+
type: 'SCRIPTED';
|
|
1932
|
+
|
|
1933
|
+
/**
|
|
1934
|
+
* Last update timestamp in ISO 8601 format
|
|
1935
|
+
*/
|
|
1936
|
+
updatedAt: string;
|
|
1937
|
+
}
|
|
1938
|
+
|
|
1939
|
+
export namespace ScriptedFlowVariant {
|
|
1940
|
+
/**
|
|
1941
|
+
* One thing the agent under test is graded against.
|
|
1942
|
+
*/
|
|
1943
|
+
export interface AdditionalExpectation {
|
|
1944
|
+
id: string;
|
|
1945
|
+
|
|
1946
|
+
/**
|
|
1947
|
+
* What the agent under test is graded against.
|
|
1948
|
+
*/
|
|
1949
|
+
prompt: string;
|
|
1950
|
+
}
|
|
1951
|
+
|
|
1952
|
+
/**
|
|
1953
|
+
* A simulation environment: the ambient conditions a customer flow variant runs
|
|
1954
|
+
* under. The list includes both your own and the ones Roark curates for every
|
|
1955
|
+
* project.
|
|
1956
|
+
*/
|
|
1957
|
+
export interface Environment {
|
|
1958
|
+
id: string;
|
|
1959
|
+
|
|
1960
|
+
backgroundNoise:
|
|
1961
|
+
| 'NONE'
|
|
1962
|
+
| 'AIRPORT'
|
|
1963
|
+
| 'CHILDREN_PLAYING'
|
|
1964
|
+
| 'CITY'
|
|
1965
|
+
| 'COFFEE_SHOP'
|
|
1966
|
+
| 'DRIVING'
|
|
1967
|
+
| 'OFFICE'
|
|
1968
|
+
| 'THUNDERSTORM';
|
|
1969
|
+
|
|
1970
|
+
/**
|
|
1971
|
+
* Creation timestamp in ISO 8601 format
|
|
1972
|
+
*/
|
|
1973
|
+
createdAt: string;
|
|
1974
|
+
|
|
1975
|
+
name: string;
|
|
1976
|
+
|
|
1977
|
+
/**
|
|
1978
|
+
* Last update timestamp in ISO 8601 format
|
|
1979
|
+
*/
|
|
1980
|
+
updatedAt: string;
|
|
1981
|
+
|
|
1982
|
+
description?: string | null;
|
|
1983
|
+
}
|
|
1984
|
+
|
|
1985
|
+
/**
|
|
1986
|
+
* The persona this runs as instead of the happy path's. Null means it inherits.
|
|
1987
|
+
*/
|
|
1988
|
+
export interface PersonaOverride {
|
|
1989
|
+
/**
|
|
1990
|
+
* Unique identifier of the persona
|
|
1991
|
+
*/
|
|
1992
|
+
id: string;
|
|
1993
|
+
|
|
1994
|
+
/**
|
|
1995
|
+
* Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with
|
|
1996
|
+
* optional variants
|
|
1997
|
+
*/
|
|
1998
|
+
accent:
|
|
1999
|
+
| 'US'
|
|
2000
|
+
| 'US_X_SOUTH'
|
|
2001
|
+
| 'GB'
|
|
2002
|
+
| 'ES'
|
|
2003
|
+
| 'DE'
|
|
2004
|
+
| 'IN'
|
|
2005
|
+
| 'FR'
|
|
2006
|
+
| 'NL'
|
|
2007
|
+
| 'SA'
|
|
2008
|
+
| 'GR'
|
|
2009
|
+
| 'AU'
|
|
2010
|
+
| 'IT'
|
|
2011
|
+
| 'ID'
|
|
2012
|
+
| 'TH'
|
|
2013
|
+
| 'JP'
|
|
2014
|
+
| 'NZ'
|
|
2015
|
+
| 'PH'
|
|
2016
|
+
| 'SG'
|
|
2017
|
+
| 'MY'
|
|
2018
|
+
| 'HK'
|
|
2019
|
+
| 'TR'
|
|
2020
|
+
| 'PT'
|
|
2021
|
+
| 'IL';
|
|
2022
|
+
|
|
2023
|
+
/**
|
|
2024
|
+
* Background noise setting
|
|
2025
|
+
*/
|
|
2026
|
+
backgroundNoise:
|
|
2027
|
+
| 'NONE'
|
|
2028
|
+
| 'AIRPORT'
|
|
2029
|
+
| 'CHILDREN_PLAYING'
|
|
2030
|
+
| 'CITY'
|
|
2031
|
+
| 'COFFEE_SHOP'
|
|
2032
|
+
| 'DRIVING'
|
|
2033
|
+
| 'OFFICE'
|
|
2034
|
+
| 'THUNDERSTORM';
|
|
2035
|
+
|
|
2036
|
+
/**
|
|
2037
|
+
* Base emotional state of the persona
|
|
2038
|
+
*/
|
|
2039
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
2040
|
+
|
|
2041
|
+
/**
|
|
2042
|
+
* How the persona confirms information
|
|
2043
|
+
*/
|
|
2044
|
+
confirmationStyle: 'EXPLICIT' | 'VAGUE';
|
|
2045
|
+
|
|
2046
|
+
/**
|
|
2047
|
+
* Creation timestamp
|
|
2048
|
+
*/
|
|
2049
|
+
createdAt: string;
|
|
2050
|
+
|
|
2051
|
+
/**
|
|
2052
|
+
* Gender of the persona
|
|
2053
|
+
*/
|
|
2054
|
+
gender: 'MALE' | 'FEMALE';
|
|
2055
|
+
|
|
2056
|
+
/**
|
|
2057
|
+
* Whether the persona uses filler words like "um" and "uh"
|
|
2058
|
+
*/
|
|
2059
|
+
hasDisfluencies: boolean;
|
|
2060
|
+
|
|
2061
|
+
/**
|
|
2062
|
+
* Maximum number of idle messages the persona will send before giving up
|
|
2063
|
+
*/
|
|
2064
|
+
idleMessageMaxSpokenCount: number;
|
|
2065
|
+
|
|
2066
|
+
/**
|
|
2067
|
+
* Whether the idle message counter resets when the agent speaks
|
|
2068
|
+
*/
|
|
2069
|
+
idleMessageResetCountOnUserSpeechEnabled: boolean;
|
|
2070
|
+
|
|
2071
|
+
/**
|
|
2072
|
+
* Messages the persona will say when the agent goes silent during a call. null =
|
|
2073
|
+
* "Automatic": language-appropriate defaults are used at call time.
|
|
2074
|
+
*/
|
|
2075
|
+
idleMessages: Array<string> | null;
|
|
2076
|
+
|
|
2077
|
+
/**
|
|
2078
|
+
* Seconds of silence before the persona sends an idle message
|
|
2079
|
+
*/
|
|
2080
|
+
idleTimeoutSeconds: number;
|
|
2081
|
+
|
|
2082
|
+
/**
|
|
2083
|
+
* How clearly the persona expresses their intentions
|
|
2084
|
+
*/
|
|
2085
|
+
intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE';
|
|
2086
|
+
|
|
2087
|
+
/**
|
|
2088
|
+
* Primary language ISO 639-1 code for the persona
|
|
2089
|
+
*/
|
|
2090
|
+
language:
|
|
2091
|
+
| 'EN'
|
|
2092
|
+
| 'ES'
|
|
2093
|
+
| 'DE'
|
|
2094
|
+
| 'HI'
|
|
2095
|
+
| 'FR'
|
|
2096
|
+
| 'NL'
|
|
2097
|
+
| 'AR'
|
|
2098
|
+
| 'EL'
|
|
2099
|
+
| 'IT'
|
|
2100
|
+
| 'ID'
|
|
2101
|
+
| 'TH'
|
|
2102
|
+
| 'JA'
|
|
2103
|
+
| 'TL'
|
|
2104
|
+
| 'MS'
|
|
2105
|
+
| 'ZH'
|
|
2106
|
+
| 'TR'
|
|
2107
|
+
| 'PT'
|
|
2108
|
+
| 'HE';
|
|
2109
|
+
|
|
2110
|
+
/**
|
|
2111
|
+
* How reliable the persona's memory is
|
|
2112
|
+
*/
|
|
2113
|
+
memoryReliability: 'HIGH' | 'LOW';
|
|
2114
|
+
|
|
2115
|
+
/**
|
|
2116
|
+
* The name the agent will identify as during conversations
|
|
2117
|
+
*/
|
|
2118
|
+
name: string;
|
|
2119
|
+
|
|
2120
|
+
/**
|
|
2121
|
+
* Additional custom properties about the persona
|
|
2122
|
+
*/
|
|
2123
|
+
properties: { [key: string]: unknown };
|
|
2124
|
+
|
|
2125
|
+
/**
|
|
2126
|
+
* Controls how quickly the persona responds to pauses in conversation (QUICK,
|
|
2127
|
+
* NORMAL, RELAXED)
|
|
2128
|
+
*/
|
|
2129
|
+
responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK';
|
|
2130
|
+
|
|
2131
|
+
/**
|
|
2132
|
+
* Speech clarity of the persona
|
|
2133
|
+
*/
|
|
2134
|
+
speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING';
|
|
2135
|
+
|
|
2136
|
+
/**
|
|
2137
|
+
* Speech pace of the persona
|
|
2138
|
+
*/
|
|
2139
|
+
speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST';
|
|
2140
|
+
|
|
2141
|
+
/**
|
|
2142
|
+
* Languages the persona can understand. Multilingual combinations are limited by
|
|
2143
|
+
* multilingual speech recognition support.
|
|
2144
|
+
*/
|
|
2145
|
+
understoodLanguages: Array<
|
|
2146
|
+
| 'EN'
|
|
2147
|
+
| 'ES'
|
|
2148
|
+
| 'DE'
|
|
2149
|
+
| 'HI'
|
|
2150
|
+
| 'FR'
|
|
2151
|
+
| 'NL'
|
|
2152
|
+
| 'AR'
|
|
2153
|
+
| 'EL'
|
|
2154
|
+
| 'IT'
|
|
2155
|
+
| 'ID'
|
|
2156
|
+
| 'TH'
|
|
2157
|
+
| 'JA'
|
|
2158
|
+
| 'TL'
|
|
2159
|
+
| 'MS'
|
|
2160
|
+
| 'ZH'
|
|
2161
|
+
| 'TR'
|
|
2162
|
+
| 'PT'
|
|
2163
|
+
| 'HE'
|
|
2164
|
+
>;
|
|
2165
|
+
|
|
2166
|
+
/**
|
|
2167
|
+
* Last update timestamp
|
|
2168
|
+
*/
|
|
2169
|
+
updatedAt: string;
|
|
2170
|
+
|
|
2171
|
+
/**
|
|
2172
|
+
* Background story and behavioral patterns for the persona
|
|
2173
|
+
*/
|
|
2174
|
+
backstoryPrompt?: string | null;
|
|
2175
|
+
|
|
2176
|
+
/**
|
|
2177
|
+
* Human-readable description of the persona
|
|
2178
|
+
*/
|
|
2179
|
+
description?: string | null;
|
|
2180
|
+
|
|
2181
|
+
/**
|
|
2182
|
+
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
2183
|
+
*/
|
|
2184
|
+
secondaryLanguage?: 'EN' | null;
|
|
2185
|
+
}
|
|
2186
|
+
}
|
|
2187
|
+
|
|
2188
|
+
/**
|
|
2189
|
+
* One brief to run an improv flow with.
|
|
2190
|
+
*/
|
|
2191
|
+
export interface ImprovFlowVariant {
|
|
2192
|
+
id: string;
|
|
2193
|
+
|
|
2194
|
+
/**
|
|
2195
|
+
* Graded on top of the flow's own expectations, for this variant only.
|
|
2196
|
+
*/
|
|
2197
|
+
additionalExpectations: Array<ImprovFlowVariant.AdditionalExpectation>;
|
|
2198
|
+
|
|
2199
|
+
/**
|
|
2200
|
+
* Creation timestamp in ISO 8601 format
|
|
2201
|
+
*/
|
|
2202
|
+
createdAt: string;
|
|
2203
|
+
|
|
2204
|
+
/**
|
|
2205
|
+
* A simulation environment: the ambient conditions a customer flow variant runs
|
|
2206
|
+
* under. The list includes both your own and the ones Roark curates for every
|
|
2207
|
+
* project.
|
|
2208
|
+
*/
|
|
2209
|
+
environment: ImprovFlowVariant.Environment | null;
|
|
2210
|
+
|
|
2211
|
+
isGenerated: boolean;
|
|
2212
|
+
|
|
2213
|
+
/**
|
|
2214
|
+
* The persona this runs as instead of the happy path's. Null means it inherits.
|
|
2215
|
+
*/
|
|
2216
|
+
personaOverride: ImprovFlowVariant.PersonaOverride | null;
|
|
2217
|
+
|
|
2218
|
+
precededByCustomerFlowId: string | null;
|
|
2219
|
+
|
|
2220
|
+
precededByCustomerFlowVariantId: string | null;
|
|
2221
|
+
|
|
2222
|
+
title: string;
|
|
2223
|
+
|
|
2224
|
+
type: 'IMPROV';
|
|
2225
|
+
|
|
2226
|
+
/**
|
|
2227
|
+
* Last update timestamp in ISO 8601 format
|
|
2228
|
+
*/
|
|
2229
|
+
updatedAt: string;
|
|
2230
|
+
|
|
2231
|
+
/**
|
|
2232
|
+
* The brief the simulated customer improvises from.
|
|
2233
|
+
*/
|
|
2234
|
+
prompt?: string | null;
|
|
2235
|
+
}
|
|
2236
|
+
|
|
2237
|
+
export namespace ImprovFlowVariant {
|
|
2238
|
+
/**
|
|
2239
|
+
* One thing the agent under test is graded against.
|
|
2240
|
+
*/
|
|
2241
|
+
export interface AdditionalExpectation {
|
|
2242
|
+
id: string;
|
|
2243
|
+
|
|
2244
|
+
/**
|
|
2245
|
+
* What the agent under test is graded against.
|
|
2246
|
+
*/
|
|
2247
|
+
prompt: string;
|
|
2248
|
+
}
|
|
2249
|
+
|
|
2250
|
+
/**
|
|
2251
|
+
* A simulation environment: the ambient conditions a customer flow variant runs
|
|
2252
|
+
* under. The list includes both your own and the ones Roark curates for every
|
|
2253
|
+
* project.
|
|
2254
|
+
*/
|
|
2255
|
+
export interface Environment {
|
|
2256
|
+
id: string;
|
|
2257
|
+
|
|
2258
|
+
backgroundNoise:
|
|
2259
|
+
| 'NONE'
|
|
2260
|
+
| 'AIRPORT'
|
|
2261
|
+
| 'CHILDREN_PLAYING'
|
|
2262
|
+
| 'CITY'
|
|
2263
|
+
| 'COFFEE_SHOP'
|
|
2264
|
+
| 'DRIVING'
|
|
2265
|
+
| 'OFFICE'
|
|
2266
|
+
| 'THUNDERSTORM';
|
|
2267
|
+
|
|
2268
|
+
/**
|
|
2269
|
+
* Creation timestamp in ISO 8601 format
|
|
2270
|
+
*/
|
|
2271
|
+
createdAt: string;
|
|
2272
|
+
|
|
2273
|
+
name: string;
|
|
2274
|
+
|
|
2275
|
+
/**
|
|
2276
|
+
* Last update timestamp in ISO 8601 format
|
|
2277
|
+
*/
|
|
2278
|
+
updatedAt: string;
|
|
2279
|
+
|
|
2280
|
+
description?: string | null;
|
|
2281
|
+
}
|
|
2282
|
+
|
|
2283
|
+
/**
|
|
2284
|
+
* The persona this runs as instead of the happy path's. Null means it inherits.
|
|
2285
|
+
*/
|
|
2286
|
+
export interface PersonaOverride {
|
|
2287
|
+
/**
|
|
2288
|
+
* Unique identifier of the persona
|
|
2289
|
+
*/
|
|
2290
|
+
id: string;
|
|
2291
|
+
|
|
2292
|
+
/**
|
|
2293
|
+
* Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with
|
|
2294
|
+
* optional variants
|
|
2295
|
+
*/
|
|
2296
|
+
accent:
|
|
2297
|
+
| 'US'
|
|
2298
|
+
| 'US_X_SOUTH'
|
|
2299
|
+
| 'GB'
|
|
2300
|
+
| 'ES'
|
|
2301
|
+
| 'DE'
|
|
2302
|
+
| 'IN'
|
|
2303
|
+
| 'FR'
|
|
2304
|
+
| 'NL'
|
|
2305
|
+
| 'SA'
|
|
2306
|
+
| 'GR'
|
|
2307
|
+
| 'AU'
|
|
2308
|
+
| 'IT'
|
|
2309
|
+
| 'ID'
|
|
2310
|
+
| 'TH'
|
|
2311
|
+
| 'JP'
|
|
2312
|
+
| 'NZ'
|
|
2313
|
+
| 'PH'
|
|
2314
|
+
| 'SG'
|
|
2315
|
+
| 'MY'
|
|
2316
|
+
| 'HK'
|
|
2317
|
+
| 'TR'
|
|
2318
|
+
| 'PT'
|
|
2319
|
+
| 'IL';
|
|
2320
|
+
|
|
2321
|
+
/**
|
|
2322
|
+
* Background noise setting
|
|
2323
|
+
*/
|
|
2324
|
+
backgroundNoise:
|
|
2325
|
+
| 'NONE'
|
|
2326
|
+
| 'AIRPORT'
|
|
2327
|
+
| 'CHILDREN_PLAYING'
|
|
2328
|
+
| 'CITY'
|
|
2329
|
+
| 'COFFEE_SHOP'
|
|
2330
|
+
| 'DRIVING'
|
|
2331
|
+
| 'OFFICE'
|
|
2332
|
+
| 'THUNDERSTORM';
|
|
2333
|
+
|
|
2334
|
+
/**
|
|
2335
|
+
* Base emotional state of the persona
|
|
2336
|
+
*/
|
|
2337
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
2338
|
+
|
|
2339
|
+
/**
|
|
2340
|
+
* How the persona confirms information
|
|
2341
|
+
*/
|
|
2342
|
+
confirmationStyle: 'EXPLICIT' | 'VAGUE';
|
|
2343
|
+
|
|
2344
|
+
/**
|
|
2345
|
+
* Creation timestamp
|
|
2346
|
+
*/
|
|
2347
|
+
createdAt: string;
|
|
2348
|
+
|
|
2349
|
+
/**
|
|
2350
|
+
* Gender of the persona
|
|
2351
|
+
*/
|
|
2352
|
+
gender: 'MALE' | 'FEMALE';
|
|
2353
|
+
|
|
2354
|
+
/**
|
|
2355
|
+
* Whether the persona uses filler words like "um" and "uh"
|
|
2356
|
+
*/
|
|
2357
|
+
hasDisfluencies: boolean;
|
|
2358
|
+
|
|
2359
|
+
/**
|
|
2360
|
+
* Maximum number of idle messages the persona will send before giving up
|
|
2361
|
+
*/
|
|
2362
|
+
idleMessageMaxSpokenCount: number;
|
|
2363
|
+
|
|
2364
|
+
/**
|
|
2365
|
+
* Whether the idle message counter resets when the agent speaks
|
|
2366
|
+
*/
|
|
2367
|
+
idleMessageResetCountOnUserSpeechEnabled: boolean;
|
|
2368
|
+
|
|
2369
|
+
/**
|
|
2370
|
+
* Messages the persona will say when the agent goes silent during a call. null =
|
|
2371
|
+
* "Automatic": language-appropriate defaults are used at call time.
|
|
2372
|
+
*/
|
|
2373
|
+
idleMessages: Array<string> | null;
|
|
2374
|
+
|
|
2375
|
+
/**
|
|
2376
|
+
* Seconds of silence before the persona sends an idle message
|
|
2377
|
+
*/
|
|
2378
|
+
idleTimeoutSeconds: number;
|
|
2379
|
+
|
|
2380
|
+
/**
|
|
2381
|
+
* How clearly the persona expresses their intentions
|
|
2382
|
+
*/
|
|
2383
|
+
intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE';
|
|
2384
|
+
|
|
2385
|
+
/**
|
|
2386
|
+
* Primary language ISO 639-1 code for the persona
|
|
2387
|
+
*/
|
|
2388
|
+
language:
|
|
2389
|
+
| 'EN'
|
|
2390
|
+
| 'ES'
|
|
2391
|
+
| 'DE'
|
|
2392
|
+
| 'HI'
|
|
2393
|
+
| 'FR'
|
|
2394
|
+
| 'NL'
|
|
2395
|
+
| 'AR'
|
|
2396
|
+
| 'EL'
|
|
2397
|
+
| 'IT'
|
|
2398
|
+
| 'ID'
|
|
2399
|
+
| 'TH'
|
|
2400
|
+
| 'JA'
|
|
2401
|
+
| 'TL'
|
|
2402
|
+
| 'MS'
|
|
2403
|
+
| 'ZH'
|
|
2404
|
+
| 'TR'
|
|
2405
|
+
| 'PT'
|
|
2406
|
+
| 'HE';
|
|
2407
|
+
|
|
2408
|
+
/**
|
|
2409
|
+
* How reliable the persona's memory is
|
|
2410
|
+
*/
|
|
2411
|
+
memoryReliability: 'HIGH' | 'LOW';
|
|
2412
|
+
|
|
2413
|
+
/**
|
|
2414
|
+
* The name the agent will identify as during conversations
|
|
2415
|
+
*/
|
|
2416
|
+
name: string;
|
|
2417
|
+
|
|
2418
|
+
/**
|
|
2419
|
+
* Additional custom properties about the persona
|
|
2420
|
+
*/
|
|
2421
|
+
properties: { [key: string]: unknown };
|
|
2422
|
+
|
|
2423
|
+
/**
|
|
2424
|
+
* Controls how quickly the persona responds to pauses in conversation (QUICK,
|
|
2425
|
+
* NORMAL, RELAXED)
|
|
2426
|
+
*/
|
|
2427
|
+
responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK';
|
|
2428
|
+
|
|
2429
|
+
/**
|
|
2430
|
+
* Speech clarity of the persona
|
|
2431
|
+
*/
|
|
2432
|
+
speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING';
|
|
2433
|
+
|
|
2434
|
+
/**
|
|
2435
|
+
* Speech pace of the persona
|
|
2436
|
+
*/
|
|
2437
|
+
speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST';
|
|
2438
|
+
|
|
2439
|
+
/**
|
|
2440
|
+
* Languages the persona can understand. Multilingual combinations are limited by
|
|
2441
|
+
* multilingual speech recognition support.
|
|
2442
|
+
*/
|
|
2443
|
+
understoodLanguages: Array<
|
|
2444
|
+
| 'EN'
|
|
2445
|
+
| 'ES'
|
|
2446
|
+
| 'DE'
|
|
2447
|
+
| 'HI'
|
|
2448
|
+
| 'FR'
|
|
2449
|
+
| 'NL'
|
|
2450
|
+
| 'AR'
|
|
2451
|
+
| 'EL'
|
|
2452
|
+
| 'IT'
|
|
2453
|
+
| 'ID'
|
|
2454
|
+
| 'TH'
|
|
2455
|
+
| 'JA'
|
|
2456
|
+
| 'TL'
|
|
2457
|
+
| 'MS'
|
|
2458
|
+
| 'ZH'
|
|
2459
|
+
| 'TR'
|
|
2460
|
+
| 'PT'
|
|
2461
|
+
| 'HE'
|
|
2462
|
+
>;
|
|
2463
|
+
|
|
2464
|
+
/**
|
|
2465
|
+
* Last update timestamp
|
|
2466
|
+
*/
|
|
2467
|
+
updatedAt: string;
|
|
2468
|
+
|
|
2469
|
+
/**
|
|
2470
|
+
* Background story and behavioral patterns for the persona
|
|
2471
|
+
*/
|
|
2472
|
+
backstoryPrompt?: string | null;
|
|
2473
|
+
|
|
2474
|
+
/**
|
|
2475
|
+
* Human-readable description of the persona
|
|
2476
|
+
*/
|
|
2477
|
+
description?: string | null;
|
|
2478
|
+
|
|
2479
|
+
/**
|
|
2480
|
+
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
2481
|
+
*/
|
|
2482
|
+
secondaryLanguage?: 'EN' | null;
|
|
2483
|
+
}
|
|
2484
|
+
}
|
|
2485
|
+
|
|
2486
|
+
/**
|
|
2487
|
+
* One voicemail greeting.
|
|
2488
|
+
*/
|
|
2489
|
+
export interface VoicemailFlowVariant {
|
|
2490
|
+
id: string;
|
|
2491
|
+
|
|
2492
|
+
/**
|
|
2493
|
+
* Graded on top of the flow's own expectations, for this variant only.
|
|
2494
|
+
*/
|
|
2495
|
+
additionalExpectations: Array<VoicemailFlowVariant.AdditionalExpectation>;
|
|
2496
|
+
|
|
2497
|
+
/**
|
|
2498
|
+
* Creation timestamp in ISO 8601 format
|
|
2499
|
+
*/
|
|
2500
|
+
createdAt: string;
|
|
2501
|
+
|
|
2502
|
+
/**
|
|
2503
|
+
* A simulation environment: the ambient conditions a customer flow variant runs
|
|
2504
|
+
* under. The list includes both your own and the ones Roark curates for every
|
|
2505
|
+
* project.
|
|
2506
|
+
*/
|
|
2507
|
+
environment: VoicemailFlowVariant.Environment | null;
|
|
2508
|
+
|
|
2509
|
+
isGenerated: boolean;
|
|
2510
|
+
|
|
2511
|
+
/**
|
|
2512
|
+
* The persona this runs as instead of the happy path's. Null means it inherits.
|
|
2513
|
+
*/
|
|
2514
|
+
personaOverride: VoicemailFlowVariant.PersonaOverride | null;
|
|
2515
|
+
|
|
2516
|
+
precededByCustomerFlowId: string | null;
|
|
2517
|
+
|
|
2518
|
+
precededByCustomerFlowVariantId: string | null;
|
|
2519
|
+
|
|
2520
|
+
title: string;
|
|
2521
|
+
|
|
2522
|
+
type: 'VOICEMAIL';
|
|
2523
|
+
|
|
2524
|
+
/**
|
|
2525
|
+
* Last update timestamp in ISO 8601 format
|
|
2526
|
+
*/
|
|
2527
|
+
updatedAt: string;
|
|
2528
|
+
}
|
|
2529
|
+
|
|
2530
|
+
export namespace VoicemailFlowVariant {
|
|
2531
|
+
/**
|
|
2532
|
+
* One thing the agent under test is graded against.
|
|
2533
|
+
*/
|
|
2534
|
+
export interface AdditionalExpectation {
|
|
2535
|
+
id: string;
|
|
2536
|
+
|
|
2537
|
+
/**
|
|
2538
|
+
* What the agent under test is graded against.
|
|
2539
|
+
*/
|
|
2540
|
+
prompt: string;
|
|
2541
|
+
}
|
|
2542
|
+
|
|
2543
|
+
/**
|
|
2544
|
+
* A simulation environment: the ambient conditions a customer flow variant runs
|
|
2545
|
+
* under. The list includes both your own and the ones Roark curates for every
|
|
2546
|
+
* project.
|
|
2547
|
+
*/
|
|
2548
|
+
export interface Environment {
|
|
2549
|
+
id: string;
|
|
2550
|
+
|
|
2551
|
+
backgroundNoise:
|
|
2552
|
+
| 'NONE'
|
|
2553
|
+
| 'AIRPORT'
|
|
2554
|
+
| 'CHILDREN_PLAYING'
|
|
2555
|
+
| 'CITY'
|
|
2556
|
+
| 'COFFEE_SHOP'
|
|
2557
|
+
| 'DRIVING'
|
|
2558
|
+
| 'OFFICE'
|
|
2559
|
+
| 'THUNDERSTORM';
|
|
2560
|
+
|
|
2561
|
+
/**
|
|
2562
|
+
* Creation timestamp in ISO 8601 format
|
|
2563
|
+
*/
|
|
2564
|
+
createdAt: string;
|
|
2565
|
+
|
|
2566
|
+
name: string;
|
|
2567
|
+
|
|
2568
|
+
/**
|
|
2569
|
+
* Last update timestamp in ISO 8601 format
|
|
2570
|
+
*/
|
|
2571
|
+
updatedAt: string;
|
|
2572
|
+
|
|
2573
|
+
description?: string | null;
|
|
2574
|
+
}
|
|
2575
|
+
|
|
2576
|
+
/**
|
|
2577
|
+
* The persona this runs as instead of the happy path's. Null means it inherits.
|
|
2578
|
+
*/
|
|
2579
|
+
export interface PersonaOverride {
|
|
2580
|
+
/**
|
|
2581
|
+
* Unique identifier of the persona
|
|
2582
|
+
*/
|
|
2583
|
+
id: string;
|
|
2584
|
+
|
|
2585
|
+
/**
|
|
2586
|
+
* Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with
|
|
2587
|
+
* optional variants
|
|
2588
|
+
*/
|
|
2589
|
+
accent:
|
|
2590
|
+
| 'US'
|
|
2591
|
+
| 'US_X_SOUTH'
|
|
2592
|
+
| 'GB'
|
|
2593
|
+
| 'ES'
|
|
2594
|
+
| 'DE'
|
|
2595
|
+
| 'IN'
|
|
2596
|
+
| 'FR'
|
|
2597
|
+
| 'NL'
|
|
2598
|
+
| 'SA'
|
|
2599
|
+
| 'GR'
|
|
2600
|
+
| 'AU'
|
|
2601
|
+
| 'IT'
|
|
2602
|
+
| 'ID'
|
|
2603
|
+
| 'TH'
|
|
2604
|
+
| 'JP'
|
|
2605
|
+
| 'NZ'
|
|
2606
|
+
| 'PH'
|
|
2607
|
+
| 'SG'
|
|
2608
|
+
| 'MY'
|
|
2609
|
+
| 'HK'
|
|
2610
|
+
| 'TR'
|
|
2611
|
+
| 'PT'
|
|
2612
|
+
| 'IL';
|
|
2613
|
+
|
|
2614
|
+
/**
|
|
2615
|
+
* Background noise setting
|
|
2616
|
+
*/
|
|
2617
|
+
backgroundNoise:
|
|
2618
|
+
| 'NONE'
|
|
2619
|
+
| 'AIRPORT'
|
|
2620
|
+
| 'CHILDREN_PLAYING'
|
|
2621
|
+
| 'CITY'
|
|
2622
|
+
| 'COFFEE_SHOP'
|
|
2623
|
+
| 'DRIVING'
|
|
2624
|
+
| 'OFFICE'
|
|
2625
|
+
| 'THUNDERSTORM';
|
|
2626
|
+
|
|
2627
|
+
/**
|
|
2628
|
+
* Base emotional state of the persona
|
|
2629
|
+
*/
|
|
2630
|
+
baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';
|
|
2631
|
+
|
|
2632
|
+
/**
|
|
2633
|
+
* How the persona confirms information
|
|
2634
|
+
*/
|
|
2635
|
+
confirmationStyle: 'EXPLICIT' | 'VAGUE';
|
|
2636
|
+
|
|
2637
|
+
/**
|
|
2638
|
+
* Creation timestamp
|
|
2639
|
+
*/
|
|
2640
|
+
createdAt: string;
|
|
2641
|
+
|
|
2642
|
+
/**
|
|
2643
|
+
* Gender of the persona
|
|
2644
|
+
*/
|
|
2645
|
+
gender: 'MALE' | 'FEMALE';
|
|
2646
|
+
|
|
2647
|
+
/**
|
|
2648
|
+
* Whether the persona uses filler words like "um" and "uh"
|
|
2649
|
+
*/
|
|
2650
|
+
hasDisfluencies: boolean;
|
|
2651
|
+
|
|
2652
|
+
/**
|
|
2653
|
+
* Maximum number of idle messages the persona will send before giving up
|
|
2654
|
+
*/
|
|
2655
|
+
idleMessageMaxSpokenCount: number;
|
|
2656
|
+
|
|
2657
|
+
/**
|
|
2658
|
+
* Whether the idle message counter resets when the agent speaks
|
|
2659
|
+
*/
|
|
2660
|
+
idleMessageResetCountOnUserSpeechEnabled: boolean;
|
|
2661
|
+
|
|
2662
|
+
/**
|
|
2663
|
+
* Messages the persona will say when the agent goes silent during a call. null =
|
|
2664
|
+
* "Automatic": language-appropriate defaults are used at call time.
|
|
2665
|
+
*/
|
|
2666
|
+
idleMessages: Array<string> | null;
|
|
2667
|
+
|
|
2668
|
+
/**
|
|
2669
|
+
* Seconds of silence before the persona sends an idle message
|
|
2670
|
+
*/
|
|
2671
|
+
idleTimeoutSeconds: number;
|
|
2672
|
+
|
|
2673
|
+
/**
|
|
2674
|
+
* How clearly the persona expresses their intentions
|
|
2675
|
+
*/
|
|
2676
|
+
intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE';
|
|
2677
|
+
|
|
2678
|
+
/**
|
|
2679
|
+
* Primary language ISO 639-1 code for the persona
|
|
2680
|
+
*/
|
|
2681
|
+
language:
|
|
2682
|
+
| 'EN'
|
|
2683
|
+
| 'ES'
|
|
2684
|
+
| 'DE'
|
|
2685
|
+
| 'HI'
|
|
2686
|
+
| 'FR'
|
|
2687
|
+
| 'NL'
|
|
2688
|
+
| 'AR'
|
|
2689
|
+
| 'EL'
|
|
2690
|
+
| 'IT'
|
|
2691
|
+
| 'ID'
|
|
2692
|
+
| 'TH'
|
|
2693
|
+
| 'JA'
|
|
2694
|
+
| 'TL'
|
|
2695
|
+
| 'MS'
|
|
2696
|
+
| 'ZH'
|
|
2697
|
+
| 'TR'
|
|
2698
|
+
| 'PT'
|
|
2699
|
+
| 'HE';
|
|
2700
|
+
|
|
2701
|
+
/**
|
|
2702
|
+
* How reliable the persona's memory is
|
|
2703
|
+
*/
|
|
2704
|
+
memoryReliability: 'HIGH' | 'LOW';
|
|
2705
|
+
|
|
2706
|
+
/**
|
|
2707
|
+
* The name the agent will identify as during conversations
|
|
2708
|
+
*/
|
|
2709
|
+
name: string;
|
|
2710
|
+
|
|
2711
|
+
/**
|
|
2712
|
+
* Additional custom properties about the persona
|
|
2713
|
+
*/
|
|
2714
|
+
properties: { [key: string]: unknown };
|
|
2715
|
+
|
|
2716
|
+
/**
|
|
2717
|
+
* Controls how quickly the persona responds to pauses in conversation (QUICK,
|
|
2718
|
+
* NORMAL, RELAXED)
|
|
2719
|
+
*/
|
|
2720
|
+
responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK';
|
|
2721
|
+
|
|
2722
|
+
/**
|
|
2723
|
+
* Speech clarity of the persona
|
|
2724
|
+
*/
|
|
2725
|
+
speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING';
|
|
2726
|
+
|
|
2727
|
+
/**
|
|
2728
|
+
* Speech pace of the persona
|
|
2729
|
+
*/
|
|
2730
|
+
speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST';
|
|
2731
|
+
|
|
2732
|
+
/**
|
|
2733
|
+
* Languages the persona can understand. Multilingual combinations are limited by
|
|
2734
|
+
* multilingual speech recognition support.
|
|
2735
|
+
*/
|
|
2736
|
+
understoodLanguages: Array<
|
|
2737
|
+
| 'EN'
|
|
2738
|
+
| 'ES'
|
|
2739
|
+
| 'DE'
|
|
2740
|
+
| 'HI'
|
|
2741
|
+
| 'FR'
|
|
2742
|
+
| 'NL'
|
|
2743
|
+
| 'AR'
|
|
2744
|
+
| 'EL'
|
|
2745
|
+
| 'IT'
|
|
2746
|
+
| 'ID'
|
|
2747
|
+
| 'TH'
|
|
2748
|
+
| 'JA'
|
|
2749
|
+
| 'TL'
|
|
2750
|
+
| 'MS'
|
|
2751
|
+
| 'ZH'
|
|
2752
|
+
| 'TR'
|
|
2753
|
+
| 'PT'
|
|
2754
|
+
| 'HE'
|
|
2755
|
+
>;
|
|
2756
|
+
|
|
2757
|
+
/**
|
|
2758
|
+
* Last update timestamp
|
|
2759
|
+
*/
|
|
2760
|
+
updatedAt: string;
|
|
2761
|
+
|
|
2762
|
+
/**
|
|
2763
|
+
* Background story and behavioral patterns for the persona
|
|
2764
|
+
*/
|
|
2765
|
+
backstoryPrompt?: string | null;
|
|
2766
|
+
|
|
2767
|
+
/**
|
|
2768
|
+
* Human-readable description of the persona
|
|
2769
|
+
*/
|
|
2770
|
+
description?: string | null;
|
|
2771
|
+
|
|
2772
|
+
/**
|
|
2773
|
+
* Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
|
|
2774
|
+
*/
|
|
2775
|
+
secondaryLanguage?: 'EN' | null;
|
|
2776
|
+
}
|
|
2777
|
+
}
|
|
2778
|
+
}
|
|
2779
|
+
|
|
2780
|
+
export interface CustomerFlowEdgeCaseRemoveResponse {
|
|
2781
|
+
data: CustomerFlowEdgeCaseRemoveResponse.Data;
|
|
2782
|
+
}
|
|
2783
|
+
|
|
2784
|
+
export namespace CustomerFlowEdgeCaseRemoveResponse {
|
|
2785
|
+
export interface Data {
|
|
2786
|
+
/**
|
|
2787
|
+
* Whether the variant was deleted
|
|
2788
|
+
*/
|
|
2789
|
+
deleted: boolean;
|
|
2790
|
+
}
|
|
2791
|
+
}
|
|
2792
|
+
|
|
2793
|
+
export interface CustomerFlowEdgeCaseUpdateParams {
|
|
2794
|
+
/**
|
|
2795
|
+
* Path param
|
|
2796
|
+
*/
|
|
2797
|
+
flowId: string;
|
|
2798
|
+
|
|
2799
|
+
/**
|
|
2800
|
+
* Body param: Replaces the expectations that apply to this variant on top of the
|
|
2801
|
+
* flow's. Omit to leave them alone, send [] to clear. Improv flows only: a
|
|
2802
|
+
* scripted variant's expectations come from the agent turns on its path and are
|
|
2803
|
+
* rewritten on the next graph edit.
|
|
2804
|
+
*/
|
|
2805
|
+
additionalExpectations?: Array<CustomerFlowEdgeCaseUpdateParams.AdditionalExpectation>;
|
|
2806
|
+
|
|
2807
|
+
/**
|
|
2808
|
+
* Body param
|
|
2809
|
+
*/
|
|
2810
|
+
environmentId?: string | null;
|
|
2811
|
+
|
|
2812
|
+
/**
|
|
2813
|
+
* Body param: The persona this runs as. Null on an edge case inherits the happy
|
|
2814
|
+
* path's.
|
|
2815
|
+
*/
|
|
2816
|
+
personaOverrideId?: string | null;
|
|
2817
|
+
|
|
2818
|
+
/**
|
|
2819
|
+
* Body param
|
|
2820
|
+
*/
|
|
2821
|
+
precededByCustomerFlowId?: string | null;
|
|
2822
|
+
|
|
2823
|
+
/**
|
|
2824
|
+
* Body param
|
|
2825
|
+
*/
|
|
2826
|
+
precededByCustomerFlowVariantId?: string | null;
|
|
2827
|
+
|
|
2828
|
+
/**
|
|
2829
|
+
* Body param
|
|
2830
|
+
*/
|
|
2831
|
+
prompt?: string | null;
|
|
2832
|
+
|
|
2833
|
+
/**
|
|
2834
|
+
* Body param
|
|
2835
|
+
*/
|
|
2836
|
+
title?: string;
|
|
2837
|
+
}
|
|
2838
|
+
|
|
2839
|
+
export namespace CustomerFlowEdgeCaseUpdateParams {
|
|
2840
|
+
export interface AdditionalExpectation {
|
|
2841
|
+
/**
|
|
2842
|
+
* What the agent under test is graded against.
|
|
2843
|
+
*/
|
|
2844
|
+
prompt: string;
|
|
2845
|
+
}
|
|
2846
|
+
}
|
|
2847
|
+
|
|
2848
|
+
export interface CustomerFlowEdgeCaseAddParams {
|
|
2849
|
+
title: string;
|
|
2850
|
+
|
|
2851
|
+
environmentId?: string | null;
|
|
2852
|
+
|
|
2853
|
+
/**
|
|
2854
|
+
* The persona this runs as. Omit to inherit the happy path's.
|
|
2855
|
+
*/
|
|
2856
|
+
personaOverrideId?: string | null;
|
|
2857
|
+
|
|
2858
|
+
precededByCustomerFlowId?: string | null;
|
|
2859
|
+
|
|
2860
|
+
precededByCustomerFlowVariantId?: string | null;
|
|
2861
|
+
|
|
2862
|
+
prompt?: string | null;
|
|
2863
|
+
}
|
|
2864
|
+
|
|
2865
|
+
export interface CustomerFlowEdgeCasePromoteParams {
|
|
2866
|
+
flowId: string;
|
|
2867
|
+
}
|
|
2868
|
+
|
|
2869
|
+
export interface CustomerFlowEdgeCaseRemoveParams {
|
|
2870
|
+
flowId: string;
|
|
2871
|
+
}
|
|
2872
|
+
|
|
2873
|
+
export declare namespace CustomerFlowEdgeCase {
|
|
2874
|
+
export {
|
|
2875
|
+
type CustomerFlowEdgeCaseUpdateResponse as CustomerFlowEdgeCaseUpdateResponse,
|
|
2876
|
+
type CustomerFlowEdgeCaseAddResponse as CustomerFlowEdgeCaseAddResponse,
|
|
2877
|
+
type CustomerFlowEdgeCasePromoteResponse as CustomerFlowEdgeCasePromoteResponse,
|
|
2878
|
+
type CustomerFlowEdgeCaseRemoveResponse as CustomerFlowEdgeCaseRemoveResponse,
|
|
2879
|
+
type CustomerFlowEdgeCaseUpdateParams as CustomerFlowEdgeCaseUpdateParams,
|
|
2880
|
+
type CustomerFlowEdgeCaseAddParams as CustomerFlowEdgeCaseAddParams,
|
|
2881
|
+
type CustomerFlowEdgeCasePromoteParams as CustomerFlowEdgeCasePromoteParams,
|
|
2882
|
+
type CustomerFlowEdgeCaseRemoveParams as CustomerFlowEdgeCaseRemoveParams,
|
|
2883
|
+
};
|
|
2884
|
+
}
|