@qcobro/common 1.24.1 → 1.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/config.d.ts +2 -0
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js +12 -2
  4. package/dist/config.js.map +1 -1
  5. package/dist/schemas/agentEvaluations.d.ts +619 -0
  6. package/dist/schemas/agentEvaluations.d.ts.map +1 -0
  7. package/dist/schemas/agentEvaluations.js +124 -0
  8. package/dist/schemas/agentEvaluations.js.map +1 -0
  9. package/dist/schemas/index.d.ts +1 -0
  10. package/dist/schemas/index.d.ts.map +1 -1
  11. package/dist/schemas/index.js +1 -0
  12. package/dist/schemas/index.js.map +1 -1
  13. package/dist/schemas/workspaceSettings.d.ts +31 -1
  14. package/dist/schemas/workspaceSettings.d.ts.map +1 -1
  15. package/dist/schemas/workspaceSettings.js +30 -2
  16. package/dist/schemas/workspaceSettings.js.map +1 -1
  17. package/dist/types/agentEvaluations.d.ts +93 -0
  18. package/dist/types/agentEvaluations.d.ts.map +1 -0
  19. package/dist/types/agentEvaluations.js +2 -0
  20. package/dist/types/agentEvaluations.js.map +1 -0
  21. package/dist/types/index.d.ts +1 -0
  22. package/dist/types/index.d.ts.map +1 -1
  23. package/dist/types/index.js +1 -0
  24. package/dist/types/index.js.map +1 -1
  25. package/dist/types/voiceApplication.d.ts +65 -0
  26. package/dist/types/voiceApplication.d.ts.map +1 -1
  27. package/dist/types/workspaceSettings.d.ts +3 -1
  28. package/dist/types/workspaceSettings.d.ts.map +1 -1
  29. package/dist/utils/index.d.ts +1 -0
  30. package/dist/utils/index.d.ts.map +1 -1
  31. package/dist/utils/index.js +1 -0
  32. package/dist/utils/index.js.map +1 -1
  33. package/dist/utils/money.d.ts +23 -0
  34. package/dist/utils/money.d.ts.map +1 -0
  35. package/dist/utils/money.js +68 -0
  36. package/dist/utils/money.js.map +1 -0
  37. package/dist/utils/outreach.d.ts +2 -0
  38. package/dist/utils/outreach.d.ts.map +1 -1
  39. package/dist/utils/outreach.js +105 -28
  40. package/dist/utils/outreach.js.map +1 -1
  41. package/package.json +1 -1
@@ -0,0 +1,619 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * The account context an eval scenario runs against — author-facing fields only
4
+ * (no id/portfolioId/timestamps). The apiserver fills those bookkeeping fields with
5
+ * synthetic values before calling {@link buildOutreachContext}, so eval scenarios reuse
6
+ * the exact same render/context-building logic as a real dispatch, not a re-implementation.
7
+ */
8
+ export declare const evalAccountSchema: z.ZodObject<{
9
+ fullName: z.ZodString;
10
+ principalAmount: z.ZodDefault<z.ZodNumber>;
11
+ outstandingBalance: z.ZodDefault<z.ZodNumber>;
12
+ daysPastDue: z.ZodDefault<z.ZodNumber>;
13
+ termsAmount: z.ZodDefault<z.ZodNumber>;
14
+ termsFrequency: z.ZodOptional<z.ZodString>;
15
+ termsLength: z.ZodDefault<z.ZodNumber>;
16
+ missedInstallments: z.ZodDefault<z.ZodNumber>;
17
+ lastPaymentDate: z.ZodOptional<z.ZodString>;
18
+ lastPaymentAmount: z.ZodOptional<z.ZodNumber>;
19
+ preferredLanguage: z.ZodOptional<z.ZodString>;
20
+ customerSegment: z.ZodOptional<z.ZodString>;
21
+ bestTimeToCall: z.ZodOptional<z.ZodString>;
22
+ currency: z.ZodDefault<z.ZodString>;
23
+ }, z.core.$strip>;
24
+ export type EvalAccountInput = z.infer<typeof evalAccountSchema>;
25
+ /** VOICE_AI's text-match assertion, mirroring Fonoster's `EXACT`/`SIMILAR` expectation. */
26
+ export declare const evalExpectedTextSchema: z.ZodObject<{
27
+ type: z.ZodEnum<{
28
+ EXACT: "EXACT";
29
+ SIMILAR: "SIMILAR";
30
+ }>;
31
+ response: z.ZodString;
32
+ }, z.core.$strip>;
33
+ /** VOICE_AI's expected-tool-call assertion (e.g. `hangup`), mirroring Fonoster's report shape. */
34
+ export declare const evalExpectedToolSchema: z.ZodObject<{
35
+ tool: z.ZodString;
36
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
37
+ }, z.core.$strip>;
38
+ /**
39
+ * A single turn's optional expectation. `text`/`tools` are graded for `VOICE_AI` (relayed
40
+ * from Fonoster); `action`/`outcome` are graded for `EMAIL`/`WHATSAPP` (the behavioral analog
41
+ * of an expected tool call — see design.md). A turn with no `expected` still runs and streams
42
+ * a result, it just has nothing to grade — **except for VOICE_AI**: Fonoster's
43
+ * `evaluateIntelligence` requires `expected.text` on every conversation turn (confirmed
44
+ * against the live service, correcting an earlier assumption in design.md), so
45
+ * `resolveEvalTarget` rejects a VOICE_AI scenario with any turn missing it before ever
46
+ * calling Fonoster. This schema stays permissive (shared across all three channel types);
47
+ * the VOICE_AI-specific requirement is enforced at resolution time, not here.
48
+ */
49
+ export declare const evalExpectedSchema: z.ZodObject<{
50
+ text: z.ZodOptional<z.ZodObject<{
51
+ type: z.ZodEnum<{
52
+ EXACT: "EXACT";
53
+ SIMILAR: "SIMILAR";
54
+ }>;
55
+ response: z.ZodString;
56
+ }, z.core.$strip>>;
57
+ tools: z.ZodOptional<z.ZodArray<z.ZodObject<{
58
+ tool: z.ZodString;
59
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
60
+ }, z.core.$strip>>>;
61
+ action: z.ZodOptional<z.ZodEnum<{
62
+ reply: "reply";
63
+ ignore: "ignore";
64
+ resolve: "resolve";
65
+ escalate: "escalate";
66
+ }>>;
67
+ outcome: z.ZodOptional<z.ZodEnum<{
68
+ DELIVERED: "DELIVERED";
69
+ NOT_DELIVERED: "NOT_DELIVERED";
70
+ NO_ANSWER: "NO_ANSWER";
71
+ PAYMENT_PROMISE: "PAYMENT_PROMISE";
72
+ PARTIAL_PAYMENT_AGREED: "PARTIAL_PAYMENT_AGREED";
73
+ NEW_TERMS: "NEW_TERMS";
74
+ CALLBACK_REQUESTED: "CALLBACK_REQUESTED";
75
+ DISPUTE_RAISED: "DISPUTE_RAISED";
76
+ INFORMATION_REQUEST: "INFORMATION_REQUEST";
77
+ RESOLVED: "RESOLVED";
78
+ PAID: "PAID";
79
+ WRONG_NUMBER: "WRONG_NUMBER";
80
+ OPT_OUT: "OPT_OUT";
81
+ REFUSED: "REFUSED";
82
+ OTHER: "OTHER";
83
+ }>>;
84
+ }, z.core.$strip>;
85
+ export declare const evalTurnSchema: z.ZodObject<{
86
+ input: z.ZodString;
87
+ expected: z.ZodOptional<z.ZodObject<{
88
+ text: z.ZodOptional<z.ZodObject<{
89
+ type: z.ZodEnum<{
90
+ EXACT: "EXACT";
91
+ SIMILAR: "SIMILAR";
92
+ }>;
93
+ response: z.ZodString;
94
+ }, z.core.$strip>>;
95
+ tools: z.ZodOptional<z.ZodArray<z.ZodObject<{
96
+ tool: z.ZodString;
97
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
98
+ }, z.core.$strip>>>;
99
+ action: z.ZodOptional<z.ZodEnum<{
100
+ reply: "reply";
101
+ ignore: "ignore";
102
+ resolve: "resolve";
103
+ escalate: "escalate";
104
+ }>>;
105
+ outcome: z.ZodOptional<z.ZodEnum<{
106
+ DELIVERED: "DELIVERED";
107
+ NOT_DELIVERED: "NOT_DELIVERED";
108
+ NO_ANSWER: "NO_ANSWER";
109
+ PAYMENT_PROMISE: "PAYMENT_PROMISE";
110
+ PARTIAL_PAYMENT_AGREED: "PARTIAL_PAYMENT_AGREED";
111
+ NEW_TERMS: "NEW_TERMS";
112
+ CALLBACK_REQUESTED: "CALLBACK_REQUESTED";
113
+ DISPUTE_RAISED: "DISPUTE_RAISED";
114
+ INFORMATION_REQUEST: "INFORMATION_REQUEST";
115
+ RESOLVED: "RESOLVED";
116
+ PAID: "PAID";
117
+ WRONG_NUMBER: "WRONG_NUMBER";
118
+ OPT_OUT: "OPT_OUT";
119
+ REFUSED: "REFUSED";
120
+ OTHER: "OTHER";
121
+ }>>;
122
+ }, z.core.$strip>>;
123
+ }, z.core.$strip>;
124
+ export declare const evalScenarioSchema: z.ZodObject<{
125
+ ref: z.ZodString;
126
+ description: z.ZodOptional<z.ZodString>;
127
+ account: z.ZodObject<{
128
+ fullName: z.ZodString;
129
+ principalAmount: z.ZodDefault<z.ZodNumber>;
130
+ outstandingBalance: z.ZodDefault<z.ZodNumber>;
131
+ daysPastDue: z.ZodDefault<z.ZodNumber>;
132
+ termsAmount: z.ZodDefault<z.ZodNumber>;
133
+ termsFrequency: z.ZodOptional<z.ZodString>;
134
+ termsLength: z.ZodDefault<z.ZodNumber>;
135
+ missedInstallments: z.ZodDefault<z.ZodNumber>;
136
+ lastPaymentDate: z.ZodOptional<z.ZodString>;
137
+ lastPaymentAmount: z.ZodOptional<z.ZodNumber>;
138
+ preferredLanguage: z.ZodOptional<z.ZodString>;
139
+ customerSegment: z.ZodOptional<z.ZodString>;
140
+ bestTimeToCall: z.ZodOptional<z.ZodString>;
141
+ currency: z.ZodDefault<z.ZodString>;
142
+ }, z.core.$strip>;
143
+ turns: z.ZodArray<z.ZodObject<{
144
+ input: z.ZodString;
145
+ expected: z.ZodOptional<z.ZodObject<{
146
+ text: z.ZodOptional<z.ZodObject<{
147
+ type: z.ZodEnum<{
148
+ EXACT: "EXACT";
149
+ SIMILAR: "SIMILAR";
150
+ }>;
151
+ response: z.ZodString;
152
+ }, z.core.$strip>>;
153
+ tools: z.ZodOptional<z.ZodArray<z.ZodObject<{
154
+ tool: z.ZodString;
155
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
156
+ }, z.core.$strip>>>;
157
+ action: z.ZodOptional<z.ZodEnum<{
158
+ reply: "reply";
159
+ ignore: "ignore";
160
+ resolve: "resolve";
161
+ escalate: "escalate";
162
+ }>>;
163
+ outcome: z.ZodOptional<z.ZodEnum<{
164
+ DELIVERED: "DELIVERED";
165
+ NOT_DELIVERED: "NOT_DELIVERED";
166
+ NO_ANSWER: "NO_ANSWER";
167
+ PAYMENT_PROMISE: "PAYMENT_PROMISE";
168
+ PARTIAL_PAYMENT_AGREED: "PARTIAL_PAYMENT_AGREED";
169
+ NEW_TERMS: "NEW_TERMS";
170
+ CALLBACK_REQUESTED: "CALLBACK_REQUESTED";
171
+ DISPUTE_RAISED: "DISPUTE_RAISED";
172
+ INFORMATION_REQUEST: "INFORMATION_REQUEST";
173
+ RESOLVED: "RESOLVED";
174
+ PAID: "PAID";
175
+ WRONG_NUMBER: "WRONG_NUMBER";
176
+ OPT_OUT: "OPT_OUT";
177
+ REFUSED: "REFUSED";
178
+ OTHER: "OTHER";
179
+ }>>;
180
+ }, z.core.$strip>>;
181
+ }, z.core.$strip>>;
182
+ }, z.core.$strip>;
183
+ export type EvalScenario = z.infer<typeof evalScenarioSchema>;
184
+ export type EvalTurn = z.infer<typeof evalTurnSchema>;
185
+ /**
186
+ * An eval template: the same fields `createAgentTemplateSchema` validates for
187
+ * `agentTemplates.create`, plus a `scenarios` array — one document is both the agent
188
+ * definition and its tests (see design.md). Restricted to the three conversational
189
+ * channel types; `SMS`/`VOICE_PRERECORDED` have no scenarios to run (see
190
+ * `previewYamlAgentSchema` instead).
191
+ */
192
+ export declare const evalTemplateSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
193
+ type: z.ZodLiteral<"VOICE_AI">;
194
+ voice: z.ZodString;
195
+ systemPrompt: z.ZodString;
196
+ firstMessage: z.ZodOptional<z.ZodString>;
197
+ language: z.ZodString;
198
+ fonosterAppName: z.ZodOptional<z.ZodString>;
199
+ name: z.ZodString;
200
+ scenarios: z.ZodArray<z.ZodObject<{
201
+ ref: z.ZodString;
202
+ description: z.ZodOptional<z.ZodString>;
203
+ account: z.ZodObject<{
204
+ fullName: z.ZodString;
205
+ principalAmount: z.ZodDefault<z.ZodNumber>;
206
+ outstandingBalance: z.ZodDefault<z.ZodNumber>;
207
+ daysPastDue: z.ZodDefault<z.ZodNumber>;
208
+ termsAmount: z.ZodDefault<z.ZodNumber>;
209
+ termsFrequency: z.ZodOptional<z.ZodString>;
210
+ termsLength: z.ZodDefault<z.ZodNumber>;
211
+ missedInstallments: z.ZodDefault<z.ZodNumber>;
212
+ lastPaymentDate: z.ZodOptional<z.ZodString>;
213
+ lastPaymentAmount: z.ZodOptional<z.ZodNumber>;
214
+ preferredLanguage: z.ZodOptional<z.ZodString>;
215
+ customerSegment: z.ZodOptional<z.ZodString>;
216
+ bestTimeToCall: z.ZodOptional<z.ZodString>;
217
+ currency: z.ZodDefault<z.ZodString>;
218
+ }, z.core.$strip>;
219
+ turns: z.ZodArray<z.ZodObject<{
220
+ input: z.ZodString;
221
+ expected: z.ZodOptional<z.ZodObject<{
222
+ text: z.ZodOptional<z.ZodObject<{
223
+ type: z.ZodEnum<{
224
+ EXACT: "EXACT";
225
+ SIMILAR: "SIMILAR";
226
+ }>;
227
+ response: z.ZodString;
228
+ }, z.core.$strip>>;
229
+ tools: z.ZodOptional<z.ZodArray<z.ZodObject<{
230
+ tool: z.ZodString;
231
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
232
+ }, z.core.$strip>>>;
233
+ action: z.ZodOptional<z.ZodEnum<{
234
+ reply: "reply";
235
+ ignore: "ignore";
236
+ resolve: "resolve";
237
+ escalate: "escalate";
238
+ }>>;
239
+ outcome: z.ZodOptional<z.ZodEnum<{
240
+ DELIVERED: "DELIVERED";
241
+ NOT_DELIVERED: "NOT_DELIVERED";
242
+ NO_ANSWER: "NO_ANSWER";
243
+ PAYMENT_PROMISE: "PAYMENT_PROMISE";
244
+ PARTIAL_PAYMENT_AGREED: "PARTIAL_PAYMENT_AGREED";
245
+ NEW_TERMS: "NEW_TERMS";
246
+ CALLBACK_REQUESTED: "CALLBACK_REQUESTED";
247
+ DISPUTE_RAISED: "DISPUTE_RAISED";
248
+ INFORMATION_REQUEST: "INFORMATION_REQUEST";
249
+ RESOLVED: "RESOLVED";
250
+ PAID: "PAID";
251
+ WRONG_NUMBER: "WRONG_NUMBER";
252
+ OPT_OUT: "OPT_OUT";
253
+ REFUSED: "REFUSED";
254
+ OTHER: "OTHER";
255
+ }>>;
256
+ }, z.core.$strip>>;
257
+ }, z.core.$strip>>;
258
+ }, z.core.$strip>>;
259
+ }, z.core.$strip>, z.ZodObject<{
260
+ type: z.ZodLiteral<"EMAIL">;
261
+ subject: z.ZodString;
262
+ messageBody: z.ZodString;
263
+ systemPrompt: z.ZodString;
264
+ maxReplies: z.ZodOptional<z.ZodNumber>;
265
+ name: z.ZodString;
266
+ scenarios: z.ZodArray<z.ZodObject<{
267
+ ref: z.ZodString;
268
+ description: z.ZodOptional<z.ZodString>;
269
+ account: z.ZodObject<{
270
+ fullName: z.ZodString;
271
+ principalAmount: z.ZodDefault<z.ZodNumber>;
272
+ outstandingBalance: z.ZodDefault<z.ZodNumber>;
273
+ daysPastDue: z.ZodDefault<z.ZodNumber>;
274
+ termsAmount: z.ZodDefault<z.ZodNumber>;
275
+ termsFrequency: z.ZodOptional<z.ZodString>;
276
+ termsLength: z.ZodDefault<z.ZodNumber>;
277
+ missedInstallments: z.ZodDefault<z.ZodNumber>;
278
+ lastPaymentDate: z.ZodOptional<z.ZodString>;
279
+ lastPaymentAmount: z.ZodOptional<z.ZodNumber>;
280
+ preferredLanguage: z.ZodOptional<z.ZodString>;
281
+ customerSegment: z.ZodOptional<z.ZodString>;
282
+ bestTimeToCall: z.ZodOptional<z.ZodString>;
283
+ currency: z.ZodDefault<z.ZodString>;
284
+ }, z.core.$strip>;
285
+ turns: z.ZodArray<z.ZodObject<{
286
+ input: z.ZodString;
287
+ expected: z.ZodOptional<z.ZodObject<{
288
+ text: z.ZodOptional<z.ZodObject<{
289
+ type: z.ZodEnum<{
290
+ EXACT: "EXACT";
291
+ SIMILAR: "SIMILAR";
292
+ }>;
293
+ response: z.ZodString;
294
+ }, z.core.$strip>>;
295
+ tools: z.ZodOptional<z.ZodArray<z.ZodObject<{
296
+ tool: z.ZodString;
297
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
298
+ }, z.core.$strip>>>;
299
+ action: z.ZodOptional<z.ZodEnum<{
300
+ reply: "reply";
301
+ ignore: "ignore";
302
+ resolve: "resolve";
303
+ escalate: "escalate";
304
+ }>>;
305
+ outcome: z.ZodOptional<z.ZodEnum<{
306
+ DELIVERED: "DELIVERED";
307
+ NOT_DELIVERED: "NOT_DELIVERED";
308
+ NO_ANSWER: "NO_ANSWER";
309
+ PAYMENT_PROMISE: "PAYMENT_PROMISE";
310
+ PARTIAL_PAYMENT_AGREED: "PARTIAL_PAYMENT_AGREED";
311
+ NEW_TERMS: "NEW_TERMS";
312
+ CALLBACK_REQUESTED: "CALLBACK_REQUESTED";
313
+ DISPUTE_RAISED: "DISPUTE_RAISED";
314
+ INFORMATION_REQUEST: "INFORMATION_REQUEST";
315
+ RESOLVED: "RESOLVED";
316
+ PAID: "PAID";
317
+ WRONG_NUMBER: "WRONG_NUMBER";
318
+ OPT_OUT: "OPT_OUT";
319
+ REFUSED: "REFUSED";
320
+ OTHER: "OTHER";
321
+ }>>;
322
+ }, z.core.$strip>>;
323
+ }, z.core.$strip>>;
324
+ }, z.core.$strip>>;
325
+ }, z.core.$strip>, z.ZodObject<{
326
+ type: z.ZodLiteral<"WHATSAPP">;
327
+ templateName: z.ZodString;
328
+ messageBody: z.ZodString;
329
+ systemPrompt: z.ZodString;
330
+ maxReplies: z.ZodOptional<z.ZodNumber>;
331
+ name: z.ZodString;
332
+ scenarios: z.ZodArray<z.ZodObject<{
333
+ ref: z.ZodString;
334
+ description: z.ZodOptional<z.ZodString>;
335
+ account: z.ZodObject<{
336
+ fullName: z.ZodString;
337
+ principalAmount: z.ZodDefault<z.ZodNumber>;
338
+ outstandingBalance: z.ZodDefault<z.ZodNumber>;
339
+ daysPastDue: z.ZodDefault<z.ZodNumber>;
340
+ termsAmount: z.ZodDefault<z.ZodNumber>;
341
+ termsFrequency: z.ZodOptional<z.ZodString>;
342
+ termsLength: z.ZodDefault<z.ZodNumber>;
343
+ missedInstallments: z.ZodDefault<z.ZodNumber>;
344
+ lastPaymentDate: z.ZodOptional<z.ZodString>;
345
+ lastPaymentAmount: z.ZodOptional<z.ZodNumber>;
346
+ preferredLanguage: z.ZodOptional<z.ZodString>;
347
+ customerSegment: z.ZodOptional<z.ZodString>;
348
+ bestTimeToCall: z.ZodOptional<z.ZodString>;
349
+ currency: z.ZodDefault<z.ZodString>;
350
+ }, z.core.$strip>;
351
+ turns: z.ZodArray<z.ZodObject<{
352
+ input: z.ZodString;
353
+ expected: z.ZodOptional<z.ZodObject<{
354
+ text: z.ZodOptional<z.ZodObject<{
355
+ type: z.ZodEnum<{
356
+ EXACT: "EXACT";
357
+ SIMILAR: "SIMILAR";
358
+ }>;
359
+ response: z.ZodString;
360
+ }, z.core.$strip>>;
361
+ tools: z.ZodOptional<z.ZodArray<z.ZodObject<{
362
+ tool: z.ZodString;
363
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
364
+ }, z.core.$strip>>>;
365
+ action: z.ZodOptional<z.ZodEnum<{
366
+ reply: "reply";
367
+ ignore: "ignore";
368
+ resolve: "resolve";
369
+ escalate: "escalate";
370
+ }>>;
371
+ outcome: z.ZodOptional<z.ZodEnum<{
372
+ DELIVERED: "DELIVERED";
373
+ NOT_DELIVERED: "NOT_DELIVERED";
374
+ NO_ANSWER: "NO_ANSWER";
375
+ PAYMENT_PROMISE: "PAYMENT_PROMISE";
376
+ PARTIAL_PAYMENT_AGREED: "PARTIAL_PAYMENT_AGREED";
377
+ NEW_TERMS: "NEW_TERMS";
378
+ CALLBACK_REQUESTED: "CALLBACK_REQUESTED";
379
+ DISPUTE_RAISED: "DISPUTE_RAISED";
380
+ INFORMATION_REQUEST: "INFORMATION_REQUEST";
381
+ RESOLVED: "RESOLVED";
382
+ PAID: "PAID";
383
+ WRONG_NUMBER: "WRONG_NUMBER";
384
+ OPT_OUT: "OPT_OUT";
385
+ REFUSED: "REFUSED";
386
+ OTHER: "OTHER";
387
+ }>>;
388
+ }, z.core.$strip>>;
389
+ }, z.core.$strip>>;
390
+ }, z.core.$strip>>;
391
+ }, z.core.$strip>], "type">;
392
+ export type EvalTemplateInput = z.infer<typeof evalTemplateSchema>;
393
+ /** Evaluate an existing template: caller supplies scenarios, since a stored `AgentTemplate`
394
+ * row carries no test fixtures of its own. */
395
+ export declare const evaluateExistingTargetSchema: z.ZodObject<{
396
+ agentTemplateId: z.ZodString;
397
+ scenarios: z.ZodArray<z.ZodObject<{
398
+ ref: z.ZodString;
399
+ description: z.ZodOptional<z.ZodString>;
400
+ account: z.ZodObject<{
401
+ fullName: z.ZodString;
402
+ principalAmount: z.ZodDefault<z.ZodNumber>;
403
+ outstandingBalance: z.ZodDefault<z.ZodNumber>;
404
+ daysPastDue: z.ZodDefault<z.ZodNumber>;
405
+ termsAmount: z.ZodDefault<z.ZodNumber>;
406
+ termsFrequency: z.ZodOptional<z.ZodString>;
407
+ termsLength: z.ZodDefault<z.ZodNumber>;
408
+ missedInstallments: z.ZodDefault<z.ZodNumber>;
409
+ lastPaymentDate: z.ZodOptional<z.ZodString>;
410
+ lastPaymentAmount: z.ZodOptional<z.ZodNumber>;
411
+ preferredLanguage: z.ZodOptional<z.ZodString>;
412
+ customerSegment: z.ZodOptional<z.ZodString>;
413
+ bestTimeToCall: z.ZodOptional<z.ZodString>;
414
+ currency: z.ZodDefault<z.ZodString>;
415
+ }, z.core.$strip>;
416
+ turns: z.ZodArray<z.ZodObject<{
417
+ input: z.ZodString;
418
+ expected: z.ZodOptional<z.ZodObject<{
419
+ text: z.ZodOptional<z.ZodObject<{
420
+ type: z.ZodEnum<{
421
+ EXACT: "EXACT";
422
+ SIMILAR: "SIMILAR";
423
+ }>;
424
+ response: z.ZodString;
425
+ }, z.core.$strip>>;
426
+ tools: z.ZodOptional<z.ZodArray<z.ZodObject<{
427
+ tool: z.ZodString;
428
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
429
+ }, z.core.$strip>>>;
430
+ action: z.ZodOptional<z.ZodEnum<{
431
+ reply: "reply";
432
+ ignore: "ignore";
433
+ resolve: "resolve";
434
+ escalate: "escalate";
435
+ }>>;
436
+ outcome: z.ZodOptional<z.ZodEnum<{
437
+ DELIVERED: "DELIVERED";
438
+ NOT_DELIVERED: "NOT_DELIVERED";
439
+ NO_ANSWER: "NO_ANSWER";
440
+ PAYMENT_PROMISE: "PAYMENT_PROMISE";
441
+ PARTIAL_PAYMENT_AGREED: "PARTIAL_PAYMENT_AGREED";
442
+ NEW_TERMS: "NEW_TERMS";
443
+ CALLBACK_REQUESTED: "CALLBACK_REQUESTED";
444
+ DISPUTE_RAISED: "DISPUTE_RAISED";
445
+ INFORMATION_REQUEST: "INFORMATION_REQUEST";
446
+ RESOLVED: "RESOLVED";
447
+ PAID: "PAID";
448
+ WRONG_NUMBER: "WRONG_NUMBER";
449
+ OPT_OUT: "OPT_OUT";
450
+ REFUSED: "REFUSED";
451
+ OTHER: "OTHER";
452
+ }>>;
453
+ }, z.core.$strip>>;
454
+ }, z.core.$strip>>;
455
+ }, z.core.$strip>>;
456
+ }, z.core.$strip>;
457
+ /** Evaluate a not-yet-created agent: the YAML embeds both the agent fields and its scenarios. */
458
+ export declare const evaluateYamlTargetSchema: z.ZodObject<{
459
+ yaml: z.ZodString;
460
+ }, z.core.$strip>;
461
+ export declare const evaluateInputSchema: z.ZodUnion<readonly [z.ZodObject<{
462
+ agentTemplateId: z.ZodString;
463
+ scenarios: z.ZodArray<z.ZodObject<{
464
+ ref: z.ZodString;
465
+ description: z.ZodOptional<z.ZodString>;
466
+ account: z.ZodObject<{
467
+ fullName: z.ZodString;
468
+ principalAmount: z.ZodDefault<z.ZodNumber>;
469
+ outstandingBalance: z.ZodDefault<z.ZodNumber>;
470
+ daysPastDue: z.ZodDefault<z.ZodNumber>;
471
+ termsAmount: z.ZodDefault<z.ZodNumber>;
472
+ termsFrequency: z.ZodOptional<z.ZodString>;
473
+ termsLength: z.ZodDefault<z.ZodNumber>;
474
+ missedInstallments: z.ZodDefault<z.ZodNumber>;
475
+ lastPaymentDate: z.ZodOptional<z.ZodString>;
476
+ lastPaymentAmount: z.ZodOptional<z.ZodNumber>;
477
+ preferredLanguage: z.ZodOptional<z.ZodString>;
478
+ customerSegment: z.ZodOptional<z.ZodString>;
479
+ bestTimeToCall: z.ZodOptional<z.ZodString>;
480
+ currency: z.ZodDefault<z.ZodString>;
481
+ }, z.core.$strip>;
482
+ turns: z.ZodArray<z.ZodObject<{
483
+ input: z.ZodString;
484
+ expected: z.ZodOptional<z.ZodObject<{
485
+ text: z.ZodOptional<z.ZodObject<{
486
+ type: z.ZodEnum<{
487
+ EXACT: "EXACT";
488
+ SIMILAR: "SIMILAR";
489
+ }>;
490
+ response: z.ZodString;
491
+ }, z.core.$strip>>;
492
+ tools: z.ZodOptional<z.ZodArray<z.ZodObject<{
493
+ tool: z.ZodString;
494
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
495
+ }, z.core.$strip>>>;
496
+ action: z.ZodOptional<z.ZodEnum<{
497
+ reply: "reply";
498
+ ignore: "ignore";
499
+ resolve: "resolve";
500
+ escalate: "escalate";
501
+ }>>;
502
+ outcome: z.ZodOptional<z.ZodEnum<{
503
+ DELIVERED: "DELIVERED";
504
+ NOT_DELIVERED: "NOT_DELIVERED";
505
+ NO_ANSWER: "NO_ANSWER";
506
+ PAYMENT_PROMISE: "PAYMENT_PROMISE";
507
+ PARTIAL_PAYMENT_AGREED: "PARTIAL_PAYMENT_AGREED";
508
+ NEW_TERMS: "NEW_TERMS";
509
+ CALLBACK_REQUESTED: "CALLBACK_REQUESTED";
510
+ DISPUTE_RAISED: "DISPUTE_RAISED";
511
+ INFORMATION_REQUEST: "INFORMATION_REQUEST";
512
+ RESOLVED: "RESOLVED";
513
+ PAID: "PAID";
514
+ WRONG_NUMBER: "WRONG_NUMBER";
515
+ OPT_OUT: "OPT_OUT";
516
+ REFUSED: "REFUSED";
517
+ OTHER: "OTHER";
518
+ }>>;
519
+ }, z.core.$strip>>;
520
+ }, z.core.$strip>>;
521
+ }, z.core.$strip>>;
522
+ }, z.core.$strip>, z.ZodObject<{
523
+ yaml: z.ZodString;
524
+ }, z.core.$strip>]>;
525
+ export type EvaluateExistingInput = z.infer<typeof evaluateExistingTargetSchema>;
526
+ export type EvaluateYamlInput = z.infer<typeof evaluateYamlTargetSchema>;
527
+ export type EvaluateInput = z.infer<typeof evaluateInputSchema>;
528
+ /** A static (no-conversation) agent definition for `agentTemplates.preview`'s YAML target —
529
+ * `createAgentTemplateSchema`'s `SMS`/`VOICE_PRERECORDED` fields, no `scenarios`. */
530
+ export declare const previewYamlAgentSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
531
+ type: z.ZodLiteral<"SMS">;
532
+ messageBody: z.ZodString;
533
+ senderId: z.ZodOptional<z.ZodString>;
534
+ name: z.ZodString;
535
+ }, z.core.$strip>, z.ZodObject<{
536
+ type: z.ZodLiteral<"VOICE_PRERECORDED">;
537
+ voice: z.ZodString;
538
+ script: z.ZodString;
539
+ language: z.ZodString;
540
+ fonosterAppName: z.ZodOptional<z.ZodString>;
541
+ name: z.ZodString;
542
+ }, z.core.$strip>], "type">;
543
+ export declare const previewExistingTargetSchema: z.ZodObject<{
544
+ agentTemplateId: z.ZodString;
545
+ account: z.ZodObject<{
546
+ fullName: z.ZodString;
547
+ principalAmount: z.ZodDefault<z.ZodNumber>;
548
+ outstandingBalance: z.ZodDefault<z.ZodNumber>;
549
+ daysPastDue: z.ZodDefault<z.ZodNumber>;
550
+ termsAmount: z.ZodDefault<z.ZodNumber>;
551
+ termsFrequency: z.ZodOptional<z.ZodString>;
552
+ termsLength: z.ZodDefault<z.ZodNumber>;
553
+ missedInstallments: z.ZodDefault<z.ZodNumber>;
554
+ lastPaymentDate: z.ZodOptional<z.ZodString>;
555
+ lastPaymentAmount: z.ZodOptional<z.ZodNumber>;
556
+ preferredLanguage: z.ZodOptional<z.ZodString>;
557
+ customerSegment: z.ZodOptional<z.ZodString>;
558
+ bestTimeToCall: z.ZodOptional<z.ZodString>;
559
+ currency: z.ZodDefault<z.ZodString>;
560
+ }, z.core.$strip>;
561
+ }, z.core.$strip>;
562
+ export declare const previewYamlTargetSchema: z.ZodObject<{
563
+ yaml: z.ZodString;
564
+ account: z.ZodObject<{
565
+ fullName: z.ZodString;
566
+ principalAmount: z.ZodDefault<z.ZodNumber>;
567
+ outstandingBalance: z.ZodDefault<z.ZodNumber>;
568
+ daysPastDue: z.ZodDefault<z.ZodNumber>;
569
+ termsAmount: z.ZodDefault<z.ZodNumber>;
570
+ termsFrequency: z.ZodOptional<z.ZodString>;
571
+ termsLength: z.ZodDefault<z.ZodNumber>;
572
+ missedInstallments: z.ZodDefault<z.ZodNumber>;
573
+ lastPaymentDate: z.ZodOptional<z.ZodString>;
574
+ lastPaymentAmount: z.ZodOptional<z.ZodNumber>;
575
+ preferredLanguage: z.ZodOptional<z.ZodString>;
576
+ customerSegment: z.ZodOptional<z.ZodString>;
577
+ bestTimeToCall: z.ZodOptional<z.ZodString>;
578
+ currency: z.ZodDefault<z.ZodString>;
579
+ }, z.core.$strip>;
580
+ }, z.core.$strip>;
581
+ export declare const previewInputSchema: z.ZodUnion<readonly [z.ZodObject<{
582
+ agentTemplateId: z.ZodString;
583
+ account: z.ZodObject<{
584
+ fullName: z.ZodString;
585
+ principalAmount: z.ZodDefault<z.ZodNumber>;
586
+ outstandingBalance: z.ZodDefault<z.ZodNumber>;
587
+ daysPastDue: z.ZodDefault<z.ZodNumber>;
588
+ termsAmount: z.ZodDefault<z.ZodNumber>;
589
+ termsFrequency: z.ZodOptional<z.ZodString>;
590
+ termsLength: z.ZodDefault<z.ZodNumber>;
591
+ missedInstallments: z.ZodDefault<z.ZodNumber>;
592
+ lastPaymentDate: z.ZodOptional<z.ZodString>;
593
+ lastPaymentAmount: z.ZodOptional<z.ZodNumber>;
594
+ preferredLanguage: z.ZodOptional<z.ZodString>;
595
+ customerSegment: z.ZodOptional<z.ZodString>;
596
+ bestTimeToCall: z.ZodOptional<z.ZodString>;
597
+ currency: z.ZodDefault<z.ZodString>;
598
+ }, z.core.$strip>;
599
+ }, z.core.$strip>, z.ZodObject<{
600
+ yaml: z.ZodString;
601
+ account: z.ZodObject<{
602
+ fullName: z.ZodString;
603
+ principalAmount: z.ZodDefault<z.ZodNumber>;
604
+ outstandingBalance: z.ZodDefault<z.ZodNumber>;
605
+ daysPastDue: z.ZodDefault<z.ZodNumber>;
606
+ termsAmount: z.ZodDefault<z.ZodNumber>;
607
+ termsFrequency: z.ZodOptional<z.ZodString>;
608
+ termsLength: z.ZodDefault<z.ZodNumber>;
609
+ missedInstallments: z.ZodDefault<z.ZodNumber>;
610
+ lastPaymentDate: z.ZodOptional<z.ZodString>;
611
+ lastPaymentAmount: z.ZodOptional<z.ZodNumber>;
612
+ preferredLanguage: z.ZodOptional<z.ZodString>;
613
+ customerSegment: z.ZodOptional<z.ZodString>;
614
+ bestTimeToCall: z.ZodOptional<z.ZodString>;
615
+ currency: z.ZodDefault<z.ZodString>;
616
+ }, z.core.$strip>;
617
+ }, z.core.$strip>]>;
618
+ export type PreviewInput = z.infer<typeof previewInputSchema>;
619
+ //# sourceMappingURL=agentEvaluations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentEvaluations.d.ts","sourceRoot":"","sources":["../../src/schemas/agentEvaluations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;iBAe5B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEjE,2FAA2F;AAC3F,eAAO,MAAM,sBAAsB;;;;;;iBAGjC,CAAC;AAEH,kGAAkG;AAClG,eAAO,MAAM,sBAAsB;;;iBAGjC,CAAC;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAK7B,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGzB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAO7B,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AA0BtD;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAI7B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEnE;8CAC8C;AAC9C,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGvC,CAAC;AAEH,iGAAiG;AACjG,eAAO,MAAM,wBAAwB;;iBAEnC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAG9B,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AACjF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AACzE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;qFACqF;AACrF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;2BAGjC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;iBAGtC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;iBAGlC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAAkE,CAAC;AAClG,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}