@roleplay-sh/cli 0.1.1

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.
@@ -0,0 +1,857 @@
1
+ import { z } from 'zod';
2
+
3
+ declare const reportSchema: z.ZodObject<{
4
+ runId: z.ZodEffects<z.ZodString, string, string>;
5
+ scenario: z.ZodEffects<z.ZodString, string, string>;
6
+ status: z.ZodEnum<["passed", "failed", "warning"]>;
7
+ score: z.ZodNumber;
8
+ summary: z.ZodEffects<z.ZodString, string, string>;
9
+ criteria: z.ZodArray<z.ZodObject<{
10
+ criterion: z.ZodEffects<z.ZodString, string, string>;
11
+ result: z.ZodEnum<["passed", "failed", "unclear"]>;
12
+ reason: z.ZodEffects<z.ZodString, string, string>;
13
+ }, "strict", z.ZodTypeAny, {
14
+ criterion: string;
15
+ result: "passed" | "failed" | "unclear";
16
+ reason: string;
17
+ }, {
18
+ criterion: string;
19
+ result: "passed" | "failed" | "unclear";
20
+ reason: string;
21
+ }>, "many">;
22
+ failures: z.ZodArray<z.ZodObject<{
23
+ type: z.ZodEffects<z.ZodString, string, string>;
24
+ severity: z.ZodEnum<["low", "medium", "high", "critical"]>;
25
+ message: z.ZodEffects<z.ZodString, string, string>;
26
+ }, "strict", z.ZodTypeAny, {
27
+ message: string;
28
+ type: string;
29
+ severity: "low" | "medium" | "high" | "critical";
30
+ }, {
31
+ message: string;
32
+ type: string;
33
+ severity: "low" | "medium" | "high" | "critical";
34
+ }>, "many">;
35
+ recommendations: z.ZodArray<z.ZodString, "many">;
36
+ startedAt: z.ZodEffects<z.ZodString, string, string>;
37
+ endedAt: z.ZodEffects<z.ZodString, string, string>;
38
+ rawJudgeOutput: z.ZodOptional<z.ZodUnknown>;
39
+ }, "strict", z.ZodTypeAny, {
40
+ status: "passed" | "warning" | "failed";
41
+ runId: string;
42
+ scenario: string;
43
+ score: number;
44
+ summary: string;
45
+ criteria: {
46
+ criterion: string;
47
+ result: "passed" | "failed" | "unclear";
48
+ reason: string;
49
+ }[];
50
+ failures: {
51
+ message: string;
52
+ type: string;
53
+ severity: "low" | "medium" | "high" | "critical";
54
+ }[];
55
+ recommendations: string[];
56
+ startedAt: string;
57
+ endedAt: string;
58
+ rawJudgeOutput?: unknown;
59
+ }, {
60
+ status: "passed" | "warning" | "failed";
61
+ runId: string;
62
+ scenario: string;
63
+ score: number;
64
+ summary: string;
65
+ criteria: {
66
+ criterion: string;
67
+ result: "passed" | "failed" | "unclear";
68
+ reason: string;
69
+ }[];
70
+ failures: {
71
+ message: string;
72
+ type: string;
73
+ severity: "low" | "medium" | "high" | "critical";
74
+ }[];
75
+ recommendations: string[];
76
+ startedAt: string;
77
+ endedAt: string;
78
+ rawJudgeOutput?: unknown;
79
+ }>;
80
+ type Report = z.infer<typeof reportSchema>;
81
+
82
+ declare const scenarioSchema: z.ZodObject<{
83
+ name: z.ZodString;
84
+ description: z.ZodDefault<z.ZodString>;
85
+ target: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
86
+ type: z.ZodLiteral<"http">;
87
+ url: z.ZodString;
88
+ method: z.ZodDefault<z.ZodEnum<["POST", "PUT", "PATCH"]>>;
89
+ headers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
90
+ input: z.ZodDefault<z.ZodObject<{
91
+ messageField: z.ZodDefault<z.ZodString>;
92
+ sessionField: z.ZodDefault<z.ZodString>;
93
+ }, "strip", z.ZodTypeAny, {
94
+ messageField: string;
95
+ sessionField: string;
96
+ }, {
97
+ messageField?: string | undefined;
98
+ sessionField?: string | undefined;
99
+ }>>;
100
+ output: z.ZodDefault<z.ZodObject<{
101
+ responseField: z.ZodDefault<z.ZodString>;
102
+ }, "strip", z.ZodTypeAny, {
103
+ responseField: string;
104
+ }, {
105
+ responseField?: string | undefined;
106
+ }>>;
107
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
108
+ }, "strip", z.ZodTypeAny, {
109
+ input: {
110
+ messageField: string;
111
+ sessionField: string;
112
+ };
113
+ type: "http";
114
+ url: string;
115
+ method: "POST" | "PUT" | "PATCH";
116
+ headers: Record<string, string>;
117
+ output: {
118
+ responseField: string;
119
+ };
120
+ timeoutMs: number;
121
+ }, {
122
+ type: "http";
123
+ url: string;
124
+ input?: {
125
+ messageField?: string | undefined;
126
+ sessionField?: string | undefined;
127
+ } | undefined;
128
+ method?: "POST" | "PUT" | "PATCH" | undefined;
129
+ headers?: Record<string, string> | undefined;
130
+ output?: {
131
+ responseField?: string | undefined;
132
+ } | undefined;
133
+ timeoutMs?: number | undefined;
134
+ }>, z.ZodObject<{
135
+ type: z.ZodLiteral<"cli">;
136
+ command: z.ZodString;
137
+ mode: z.ZodDefault<z.ZodEnum<["stdin", "arg"]>>;
138
+ shell: z.ZodDefault<z.ZodBoolean>;
139
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
140
+ }, "strip", z.ZodTypeAny, {
141
+ command: string;
142
+ type: "cli";
143
+ timeoutMs: number;
144
+ mode: "stdin" | "arg";
145
+ shell: boolean;
146
+ }, {
147
+ command: string;
148
+ type: "cli";
149
+ timeoutMs?: number | undefined;
150
+ mode?: "stdin" | "arg" | undefined;
151
+ shell?: boolean | undefined;
152
+ }>, z.ZodObject<{
153
+ type: z.ZodLiteral<"mock">;
154
+ behavior: z.ZodDefault<z.ZodEnum<["naive-refund-agent", "safe-support-agent", "prompt-injection-vulnerable"]>>;
155
+ }, "strip", z.ZodTypeAny, {
156
+ type: "mock";
157
+ behavior: "naive-refund-agent" | "safe-support-agent" | "prompt-injection-vulnerable";
158
+ }, {
159
+ type: "mock";
160
+ behavior?: "naive-refund-agent" | "safe-support-agent" | "prompt-injection-vulnerable" | undefined;
161
+ }>]>;
162
+ simulation: z.ZodDefault<z.ZodObject<{
163
+ maxTurns: z.ZodDefault<z.ZodNumber>;
164
+ temperature: z.ZodDefault<z.ZodNumber>;
165
+ }, "strip", z.ZodTypeAny, {
166
+ maxTurns: number;
167
+ temperature: number;
168
+ }, {
169
+ maxTurns?: number | undefined;
170
+ temperature?: number | undefined;
171
+ }>>;
172
+ roles: z.ZodObject<{
173
+ user: z.ZodObject<{
174
+ persona: z.ZodString;
175
+ goal: z.ZodString;
176
+ behavior: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
177
+ }, "strip", z.ZodTypeAny, {
178
+ behavior: string[];
179
+ persona: string;
180
+ goal: string;
181
+ }, {
182
+ persona: string;
183
+ goal: string;
184
+ behavior?: string[] | undefined;
185
+ }>;
186
+ }, "strip", z.ZodTypeAny, {
187
+ user: {
188
+ behavior: string[];
189
+ persona: string;
190
+ goal: string;
191
+ };
192
+ }, {
193
+ user: {
194
+ persona: string;
195
+ goal: string;
196
+ behavior?: string[] | undefined;
197
+ };
198
+ }>;
199
+ hiddenContext: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
200
+ successCriteria: z.ZodArray<z.ZodString, "many">;
201
+ failureCriteria: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
202
+ judge: z.ZodDefault<z.ZodObject<{
203
+ type: z.ZodDefault<z.ZodEnum<["mock"]>>;
204
+ rubric: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
205
+ }, "strip", z.ZodTypeAny, {
206
+ type: "mock";
207
+ rubric?: Record<string, number> | undefined;
208
+ }, {
209
+ type?: "mock" | undefined;
210
+ rubric?: Record<string, number> | undefined;
211
+ }>>;
212
+ output: z.ZodOptional<z.ZodObject<{
213
+ expectations: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
214
+ }, "strip", z.ZodTypeAny, {
215
+ expectations: string[];
216
+ }, {
217
+ expectations?: string[] | undefined;
218
+ }>>;
219
+ }, "strip", z.ZodTypeAny, {
220
+ name: string;
221
+ description: string;
222
+ target: {
223
+ input: {
224
+ messageField: string;
225
+ sessionField: string;
226
+ };
227
+ type: "http";
228
+ url: string;
229
+ method: "POST" | "PUT" | "PATCH";
230
+ headers: Record<string, string>;
231
+ output: {
232
+ responseField: string;
233
+ };
234
+ timeoutMs: number;
235
+ } | {
236
+ command: string;
237
+ type: "cli";
238
+ timeoutMs: number;
239
+ mode: "stdin" | "arg";
240
+ shell: boolean;
241
+ } | {
242
+ type: "mock";
243
+ behavior: "naive-refund-agent" | "safe-support-agent" | "prompt-injection-vulnerable";
244
+ };
245
+ simulation: {
246
+ maxTurns: number;
247
+ temperature: number;
248
+ };
249
+ roles: {
250
+ user: {
251
+ behavior: string[];
252
+ persona: string;
253
+ goal: string;
254
+ };
255
+ };
256
+ hiddenContext: string[];
257
+ successCriteria: string[];
258
+ failureCriteria: string[];
259
+ judge: {
260
+ type: "mock";
261
+ rubric?: Record<string, number> | undefined;
262
+ };
263
+ output?: {
264
+ expectations: string[];
265
+ } | undefined;
266
+ }, {
267
+ name: string;
268
+ target: {
269
+ type: "http";
270
+ url: string;
271
+ input?: {
272
+ messageField?: string | undefined;
273
+ sessionField?: string | undefined;
274
+ } | undefined;
275
+ method?: "POST" | "PUT" | "PATCH" | undefined;
276
+ headers?: Record<string, string> | undefined;
277
+ output?: {
278
+ responseField?: string | undefined;
279
+ } | undefined;
280
+ timeoutMs?: number | undefined;
281
+ } | {
282
+ command: string;
283
+ type: "cli";
284
+ timeoutMs?: number | undefined;
285
+ mode?: "stdin" | "arg" | undefined;
286
+ shell?: boolean | undefined;
287
+ } | {
288
+ type: "mock";
289
+ behavior?: "naive-refund-agent" | "safe-support-agent" | "prompt-injection-vulnerable" | undefined;
290
+ };
291
+ roles: {
292
+ user: {
293
+ persona: string;
294
+ goal: string;
295
+ behavior?: string[] | undefined;
296
+ };
297
+ };
298
+ successCriteria: string[];
299
+ description?: string | undefined;
300
+ output?: {
301
+ expectations?: string[] | undefined;
302
+ } | undefined;
303
+ simulation?: {
304
+ maxTurns?: number | undefined;
305
+ temperature?: number | undefined;
306
+ } | undefined;
307
+ hiddenContext?: string[] | undefined;
308
+ failureCriteria?: string[] | undefined;
309
+ judge?: {
310
+ type?: "mock" | undefined;
311
+ rubric?: Record<string, number> | undefined;
312
+ } | undefined;
313
+ }>;
314
+ type Scenario = z.infer<typeof scenarioSchema>;
315
+ declare function parseScenario(input: unknown, filePath?: string): Scenario;
316
+ declare function loadScenarioFile(path: string): Promise<Scenario>;
317
+
318
+ declare const transcriptSchema: z.ZodEffects<z.ZodObject<{
319
+ runId: z.ZodEffects<z.ZodString, string, string>;
320
+ scenarioName: z.ZodEffects<z.ZodString, string, string>;
321
+ startedAt: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
322
+ endedAt: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>>;
323
+ turns: z.ZodArray<z.ZodObject<{
324
+ turn: z.ZodNumber;
325
+ role: z.ZodEnum<["user", "agent"]>;
326
+ content: z.ZodEffects<z.ZodString, string, string>;
327
+ timestamp: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
328
+ raw: z.ZodOptional<z.ZodUnknown>;
329
+ }, "strict", z.ZodTypeAny, {
330
+ turn: number;
331
+ role: "user" | "agent";
332
+ content: string;
333
+ timestamp: string;
334
+ raw?: unknown;
335
+ }, {
336
+ turn: number;
337
+ role: "user" | "agent";
338
+ content: string;
339
+ timestamp: string;
340
+ raw?: unknown;
341
+ }>, "many">;
342
+ }, "strict", z.ZodTypeAny, {
343
+ runId: string;
344
+ startedAt: string;
345
+ scenarioName: string;
346
+ turns: {
347
+ turn: number;
348
+ role: "user" | "agent";
349
+ content: string;
350
+ timestamp: string;
351
+ raw?: unknown;
352
+ }[];
353
+ endedAt?: string | undefined;
354
+ }, {
355
+ runId: string;
356
+ startedAt: string;
357
+ scenarioName: string;
358
+ turns: {
359
+ turn: number;
360
+ role: "user" | "agent";
361
+ content: string;
362
+ timestamp: string;
363
+ raw?: unknown;
364
+ }[];
365
+ endedAt?: string | undefined;
366
+ }>, {
367
+ runId: string;
368
+ startedAt: string;
369
+ scenarioName: string;
370
+ turns: {
371
+ turn: number;
372
+ role: "user" | "agent";
373
+ content: string;
374
+ timestamp: string;
375
+ raw?: unknown;
376
+ }[];
377
+ endedAt?: string | undefined;
378
+ }, {
379
+ runId: string;
380
+ startedAt: string;
381
+ scenarioName: string;
382
+ turns: {
383
+ turn: number;
384
+ role: "user" | "agent";
385
+ content: string;
386
+ timestamp: string;
387
+ raw?: unknown;
388
+ }[];
389
+ endedAt?: string | undefined;
390
+ }>;
391
+ type Transcript = z.infer<typeof transcriptSchema>;
392
+
393
+ interface RunPaths {
394
+ runId: string;
395
+ runDir: string;
396
+ scenarioPath: string;
397
+ transcriptPath: string;
398
+ reportJsonPath: string;
399
+ reportMarkdownPath: string;
400
+ metadataPath: string;
401
+ }
402
+
403
+ interface RunOptions {
404
+ scenarioRef: string;
405
+ maxTurns?: number;
406
+ outDir?: string;
407
+ yes?: boolean;
408
+ metadata?: Record<string, unknown>;
409
+ }
410
+ interface RunResult {
411
+ runId: string;
412
+ scenario: Scenario;
413
+ transcript: Transcript;
414
+ report: Report;
415
+ paths: RunPaths;
416
+ }
417
+ declare function runScenario(options: RunOptions): Promise<RunResult>;
418
+
419
+ declare const cloudUploadSchema: z.ZodEffects<z.ZodObject<{
420
+ projectId: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
421
+ mode: z.ZodDefault<z.ZodEnum<["sanitized_findings", "full_transcript_opt_in"]>>;
422
+ source: z.ZodDefault<z.ZodEnum<["ci", "local", "scheduled"]>>;
423
+ branch: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>>;
424
+ commit: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>>;
425
+ buildUrl: z.ZodOptional<z.ZodPipeline<z.ZodEffects<z.ZodString, string, string>, z.ZodEffects<z.ZodString, string, string>>>;
426
+ environment: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>>;
427
+ targetAgent: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>>;
428
+ attackPackId: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>>;
429
+ attackPackScenario: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>>;
430
+ run: z.ZodObject<{
431
+ report: z.ZodObject<{
432
+ runId: z.ZodEffects<z.ZodString, string, string>;
433
+ scenario: z.ZodEffects<z.ZodString, string, string>;
434
+ status: z.ZodEnum<["passed", "failed", "warning"]>;
435
+ score: z.ZodNumber;
436
+ summary: z.ZodEffects<z.ZodString, string, string>;
437
+ criteria: z.ZodArray<z.ZodObject<{
438
+ criterion: z.ZodEffects<z.ZodString, string, string>;
439
+ result: z.ZodEnum<["passed", "failed", "unclear"]>;
440
+ reason: z.ZodEffects<z.ZodString, string, string>;
441
+ }, "strict", z.ZodTypeAny, {
442
+ criterion: string;
443
+ result: "passed" | "failed" | "unclear";
444
+ reason: string;
445
+ }, {
446
+ criterion: string;
447
+ result: "passed" | "failed" | "unclear";
448
+ reason: string;
449
+ }>, "many">;
450
+ failures: z.ZodArray<z.ZodObject<{
451
+ type: z.ZodEffects<z.ZodString, string, string>;
452
+ severity: z.ZodEnum<["low", "medium", "high", "critical"]>;
453
+ message: z.ZodEffects<z.ZodString, string, string>;
454
+ }, "strict", z.ZodTypeAny, {
455
+ message: string;
456
+ type: string;
457
+ severity: "low" | "medium" | "high" | "critical";
458
+ }, {
459
+ message: string;
460
+ type: string;
461
+ severity: "low" | "medium" | "high" | "critical";
462
+ }>, "many">;
463
+ recommendations: z.ZodArray<z.ZodString, "many">;
464
+ startedAt: z.ZodEffects<z.ZodString, string, string>;
465
+ endedAt: z.ZodEffects<z.ZodString, string, string>;
466
+ rawJudgeOutput: z.ZodOptional<z.ZodUnknown>;
467
+ }, "strict", z.ZodTypeAny, {
468
+ status: "passed" | "warning" | "failed";
469
+ runId: string;
470
+ scenario: string;
471
+ score: number;
472
+ summary: string;
473
+ criteria: {
474
+ criterion: string;
475
+ result: "passed" | "failed" | "unclear";
476
+ reason: string;
477
+ }[];
478
+ failures: {
479
+ message: string;
480
+ type: string;
481
+ severity: "low" | "medium" | "high" | "critical";
482
+ }[];
483
+ recommendations: string[];
484
+ startedAt: string;
485
+ endedAt: string;
486
+ rawJudgeOutput?: unknown;
487
+ }, {
488
+ status: "passed" | "warning" | "failed";
489
+ runId: string;
490
+ scenario: string;
491
+ score: number;
492
+ summary: string;
493
+ criteria: {
494
+ criterion: string;
495
+ result: "passed" | "failed" | "unclear";
496
+ reason: string;
497
+ }[];
498
+ failures: {
499
+ message: string;
500
+ type: string;
501
+ severity: "low" | "medium" | "high" | "critical";
502
+ }[];
503
+ recommendations: string[];
504
+ startedAt: string;
505
+ endedAt: string;
506
+ rawJudgeOutput?: unknown;
507
+ }>;
508
+ transcript: z.ZodOptional<z.ZodEffects<z.ZodObject<{
509
+ runId: z.ZodEffects<z.ZodString, string, string>;
510
+ scenarioName: z.ZodEffects<z.ZodString, string, string>;
511
+ startedAt: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
512
+ endedAt: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>>;
513
+ turns: z.ZodArray<z.ZodObject<{
514
+ turn: z.ZodNumber;
515
+ role: z.ZodEnum<["user", "agent"]>;
516
+ content: z.ZodEffects<z.ZodString, string, string>;
517
+ timestamp: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
518
+ raw: z.ZodOptional<z.ZodUnknown>;
519
+ }, "strict", z.ZodTypeAny, {
520
+ turn: number;
521
+ role: "user" | "agent";
522
+ content: string;
523
+ timestamp: string;
524
+ raw?: unknown;
525
+ }, {
526
+ turn: number;
527
+ role: "user" | "agent";
528
+ content: string;
529
+ timestamp: string;
530
+ raw?: unknown;
531
+ }>, "many">;
532
+ }, "strict", z.ZodTypeAny, {
533
+ runId: string;
534
+ startedAt: string;
535
+ scenarioName: string;
536
+ turns: {
537
+ turn: number;
538
+ role: "user" | "agent";
539
+ content: string;
540
+ timestamp: string;
541
+ raw?: unknown;
542
+ }[];
543
+ endedAt?: string | undefined;
544
+ }, {
545
+ runId: string;
546
+ startedAt: string;
547
+ scenarioName: string;
548
+ turns: {
549
+ turn: number;
550
+ role: "user" | "agent";
551
+ content: string;
552
+ timestamp: string;
553
+ raw?: unknown;
554
+ }[];
555
+ endedAt?: string | undefined;
556
+ }>, {
557
+ runId: string;
558
+ startedAt: string;
559
+ scenarioName: string;
560
+ turns: {
561
+ turn: number;
562
+ role: "user" | "agent";
563
+ content: string;
564
+ timestamp: string;
565
+ raw?: unknown;
566
+ }[];
567
+ endedAt?: string | undefined;
568
+ }, {
569
+ runId: string;
570
+ startedAt: string;
571
+ scenarioName: string;
572
+ turns: {
573
+ turn: number;
574
+ role: "user" | "agent";
575
+ content: string;
576
+ timestamp: string;
577
+ raw?: unknown;
578
+ }[];
579
+ endedAt?: string | undefined;
580
+ }>>;
581
+ scenarioYaml: z.ZodOptional<z.ZodString>;
582
+ metadata: z.ZodOptional<z.ZodUnknown>;
583
+ }, "strict", z.ZodTypeAny, {
584
+ report: {
585
+ status: "passed" | "warning" | "failed";
586
+ runId: string;
587
+ scenario: string;
588
+ score: number;
589
+ summary: string;
590
+ criteria: {
591
+ criterion: string;
592
+ result: "passed" | "failed" | "unclear";
593
+ reason: string;
594
+ }[];
595
+ failures: {
596
+ message: string;
597
+ type: string;
598
+ severity: "low" | "medium" | "high" | "critical";
599
+ }[];
600
+ recommendations: string[];
601
+ startedAt: string;
602
+ endedAt: string;
603
+ rawJudgeOutput?: unknown;
604
+ };
605
+ transcript?: {
606
+ runId: string;
607
+ startedAt: string;
608
+ scenarioName: string;
609
+ turns: {
610
+ turn: number;
611
+ role: "user" | "agent";
612
+ content: string;
613
+ timestamp: string;
614
+ raw?: unknown;
615
+ }[];
616
+ endedAt?: string | undefined;
617
+ } | undefined;
618
+ scenarioYaml?: string | undefined;
619
+ metadata?: unknown;
620
+ }, {
621
+ report: {
622
+ status: "passed" | "warning" | "failed";
623
+ runId: string;
624
+ scenario: string;
625
+ score: number;
626
+ summary: string;
627
+ criteria: {
628
+ criterion: string;
629
+ result: "passed" | "failed" | "unclear";
630
+ reason: string;
631
+ }[];
632
+ failures: {
633
+ message: string;
634
+ type: string;
635
+ severity: "low" | "medium" | "high" | "critical";
636
+ }[];
637
+ recommendations: string[];
638
+ startedAt: string;
639
+ endedAt: string;
640
+ rawJudgeOutput?: unknown;
641
+ };
642
+ transcript?: {
643
+ runId: string;
644
+ startedAt: string;
645
+ scenarioName: string;
646
+ turns: {
647
+ turn: number;
648
+ role: "user" | "agent";
649
+ content: string;
650
+ timestamp: string;
651
+ raw?: unknown;
652
+ }[];
653
+ endedAt?: string | undefined;
654
+ } | undefined;
655
+ scenarioYaml?: string | undefined;
656
+ metadata?: unknown;
657
+ }>;
658
+ }, "strict", z.ZodTypeAny, {
659
+ run: {
660
+ report: {
661
+ status: "passed" | "warning" | "failed";
662
+ runId: string;
663
+ scenario: string;
664
+ score: number;
665
+ summary: string;
666
+ criteria: {
667
+ criterion: string;
668
+ result: "passed" | "failed" | "unclear";
669
+ reason: string;
670
+ }[];
671
+ failures: {
672
+ message: string;
673
+ type: string;
674
+ severity: "low" | "medium" | "high" | "critical";
675
+ }[];
676
+ recommendations: string[];
677
+ startedAt: string;
678
+ endedAt: string;
679
+ rawJudgeOutput?: unknown;
680
+ };
681
+ transcript?: {
682
+ runId: string;
683
+ startedAt: string;
684
+ scenarioName: string;
685
+ turns: {
686
+ turn: number;
687
+ role: "user" | "agent";
688
+ content: string;
689
+ timestamp: string;
690
+ raw?: unknown;
691
+ }[];
692
+ endedAt?: string | undefined;
693
+ } | undefined;
694
+ scenarioYaml?: string | undefined;
695
+ metadata?: unknown;
696
+ };
697
+ mode: "sanitized_findings" | "full_transcript_opt_in";
698
+ projectId: string;
699
+ source: "ci" | "local" | "scheduled";
700
+ branch?: string | undefined;
701
+ commit?: string | undefined;
702
+ buildUrl?: string | undefined;
703
+ environment?: string | undefined;
704
+ targetAgent?: string | undefined;
705
+ attackPackId?: string | undefined;
706
+ attackPackScenario?: string | undefined;
707
+ }, {
708
+ run: {
709
+ report: {
710
+ status: "passed" | "warning" | "failed";
711
+ runId: string;
712
+ scenario: string;
713
+ score: number;
714
+ summary: string;
715
+ criteria: {
716
+ criterion: string;
717
+ result: "passed" | "failed" | "unclear";
718
+ reason: string;
719
+ }[];
720
+ failures: {
721
+ message: string;
722
+ type: string;
723
+ severity: "low" | "medium" | "high" | "critical";
724
+ }[];
725
+ recommendations: string[];
726
+ startedAt: string;
727
+ endedAt: string;
728
+ rawJudgeOutput?: unknown;
729
+ };
730
+ transcript?: {
731
+ runId: string;
732
+ startedAt: string;
733
+ scenarioName: string;
734
+ turns: {
735
+ turn: number;
736
+ role: "user" | "agent";
737
+ content: string;
738
+ timestamp: string;
739
+ raw?: unknown;
740
+ }[];
741
+ endedAt?: string | undefined;
742
+ } | undefined;
743
+ scenarioYaml?: string | undefined;
744
+ metadata?: unknown;
745
+ };
746
+ projectId: string;
747
+ mode?: "sanitized_findings" | "full_transcript_opt_in" | undefined;
748
+ source?: "ci" | "local" | "scheduled" | undefined;
749
+ branch?: string | undefined;
750
+ commit?: string | undefined;
751
+ buildUrl?: string | undefined;
752
+ environment?: string | undefined;
753
+ targetAgent?: string | undefined;
754
+ attackPackId?: string | undefined;
755
+ attackPackScenario?: string | undefined;
756
+ }>, {
757
+ run: {
758
+ report: {
759
+ status: "passed" | "warning" | "failed";
760
+ runId: string;
761
+ scenario: string;
762
+ score: number;
763
+ summary: string;
764
+ criteria: {
765
+ criterion: string;
766
+ result: "passed" | "failed" | "unclear";
767
+ reason: string;
768
+ }[];
769
+ failures: {
770
+ message: string;
771
+ type: string;
772
+ severity: "low" | "medium" | "high" | "critical";
773
+ }[];
774
+ recommendations: string[];
775
+ startedAt: string;
776
+ endedAt: string;
777
+ rawJudgeOutput?: unknown;
778
+ };
779
+ transcript?: {
780
+ runId: string;
781
+ startedAt: string;
782
+ scenarioName: string;
783
+ turns: {
784
+ turn: number;
785
+ role: "user" | "agent";
786
+ content: string;
787
+ timestamp: string;
788
+ raw?: unknown;
789
+ }[];
790
+ endedAt?: string | undefined;
791
+ } | undefined;
792
+ scenarioYaml?: string | undefined;
793
+ metadata?: unknown;
794
+ };
795
+ mode: "sanitized_findings" | "full_transcript_opt_in";
796
+ projectId: string;
797
+ source: "ci" | "local" | "scheduled";
798
+ branch?: string | undefined;
799
+ commit?: string | undefined;
800
+ buildUrl?: string | undefined;
801
+ environment?: string | undefined;
802
+ targetAgent?: string | undefined;
803
+ attackPackId?: string | undefined;
804
+ attackPackScenario?: string | undefined;
805
+ }, {
806
+ run: {
807
+ report: {
808
+ status: "passed" | "warning" | "failed";
809
+ runId: string;
810
+ scenario: string;
811
+ score: number;
812
+ summary: string;
813
+ criteria: {
814
+ criterion: string;
815
+ result: "passed" | "failed" | "unclear";
816
+ reason: string;
817
+ }[];
818
+ failures: {
819
+ message: string;
820
+ type: string;
821
+ severity: "low" | "medium" | "high" | "critical";
822
+ }[];
823
+ recommendations: string[];
824
+ startedAt: string;
825
+ endedAt: string;
826
+ rawJudgeOutput?: unknown;
827
+ };
828
+ transcript?: {
829
+ runId: string;
830
+ startedAt: string;
831
+ scenarioName: string;
832
+ turns: {
833
+ turn: number;
834
+ role: "user" | "agent";
835
+ content: string;
836
+ timestamp: string;
837
+ raw?: unknown;
838
+ }[];
839
+ endedAt?: string | undefined;
840
+ } | undefined;
841
+ scenarioYaml?: string | undefined;
842
+ metadata?: unknown;
843
+ };
844
+ projectId: string;
845
+ mode?: "sanitized_findings" | "full_transcript_opt_in" | undefined;
846
+ source?: "ci" | "local" | "scheduled" | undefined;
847
+ branch?: string | undefined;
848
+ commit?: string | undefined;
849
+ buildUrl?: string | undefined;
850
+ environment?: string | undefined;
851
+ targetAgent?: string | undefined;
852
+ attackPackId?: string | undefined;
853
+ attackPackScenario?: string | undefined;
854
+ }>;
855
+ type CloudUpload = z.infer<typeof cloudUploadSchema>;
856
+
857
+ export { type CloudUpload, type Report, type RunOptions, type RunResult, type Scenario, type Transcript, cloudUploadSchema, loadScenarioFile, parseScenario, reportSchema, runScenario, scenarioSchema, transcriptSchema };