promptfoo 0.96.1 → 0.97.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 (235) hide show
  1. package/dist/package.json +5 -5
  2. package/dist/src/app/assets/{index-CL29fyye.js → index-CbxDbiAR.js} +232 -232
  3. package/dist/src/app/assets/{index.es-CsYHA4xg.js → index.es-Cc9N3uII.js} +1 -1
  4. package/dist/src/app/assets/{sync-B9AjROwZ.js → sync-BoVzjiAe.js} +1 -1
  5. package/dist/src/app/index.html +1 -1
  6. package/dist/src/assertions/index.d.ts.map +1 -1
  7. package/dist/src/assertions/index.js +1 -2
  8. package/dist/src/assertions/index.js.map +1 -1
  9. package/dist/src/assertions/redteam.js +2 -2
  10. package/dist/src/assertions/redteam.js.map +1 -1
  11. package/dist/src/commands/eval.d.ts.map +1 -1
  12. package/dist/src/commands/eval.js +7 -2
  13. package/dist/src/commands/eval.js.map +1 -1
  14. package/dist/src/commands/init.d.ts.map +1 -1
  15. package/dist/src/commands/init.js +3 -0
  16. package/dist/src/commands/init.js.map +1 -1
  17. package/dist/src/database/tables.d.ts +25 -6
  18. package/dist/src/database/tables.d.ts.map +1 -1
  19. package/dist/src/evaluator.d.ts.map +1 -1
  20. package/dist/src/evaluator.js +7 -1
  21. package/dist/src/evaluator.js.map +1 -1
  22. package/dist/src/index.d.ts +2 -106
  23. package/dist/src/index.d.ts.map +1 -1
  24. package/dist/src/models/eval.d.ts +1 -0
  25. package/dist/src/models/eval.d.ts.map +1 -1
  26. package/dist/src/models/eval.js +2 -0
  27. package/dist/src/models/eval.js.map +1 -1
  28. package/dist/src/models/evalResult.d.ts +1 -1
  29. package/dist/src/models/evalResult.d.ts.map +1 -1
  30. package/dist/src/models/evalResult.js +1 -1
  31. package/dist/src/models/evalResult.js.map +1 -1
  32. package/dist/src/onboarding.d.ts +12 -0
  33. package/dist/src/onboarding.d.ts.map +1 -1
  34. package/dist/src/onboarding.js +83 -43
  35. package/dist/src/onboarding.js.map +1 -1
  36. package/dist/src/providers/adaline.gateway.js +2 -2
  37. package/dist/src/providers/adaline.gateway.js.map +1 -1
  38. package/dist/src/providers/azure.d.ts +10 -3
  39. package/dist/src/providers/azure.d.ts.map +1 -1
  40. package/dist/src/providers/azure.js +106 -62
  41. package/dist/src/providers/azure.js.map +1 -1
  42. package/dist/src/providers/bedrock.d.ts +4 -1
  43. package/dist/src/providers/bedrock.d.ts.map +1 -1
  44. package/dist/src/providers/bedrock.js +18 -2
  45. package/dist/src/providers/bedrock.js.map +1 -1
  46. package/dist/src/providers/promptfoo.d.ts +7 -3
  47. package/dist/src/providers/promptfoo.d.ts.map +1 -1
  48. package/dist/src/providers/promptfoo.js +7 -7
  49. package/dist/src/providers/promptfoo.js.map +1 -1
  50. package/dist/src/providers/simulatedUser.d.ts.map +1 -1
  51. package/dist/src/providers/simulatedUser.js +5 -0
  52. package/dist/src/providers/simulatedUser.js.map +1 -1
  53. package/dist/src/redteam/graders.d.ts +2 -77
  54. package/dist/src/redteam/graders.d.ts.map +1 -1
  55. package/dist/src/redteam/graders.js +25 -25
  56. package/dist/src/redteam/graders.js.map +1 -1
  57. package/dist/src/redteam/index.d.ts.map +1 -1
  58. package/dist/src/redteam/index.js +29 -11
  59. package/dist/src/redteam/index.js.map +1 -1
  60. package/dist/src/redteam/plugins/base.d.ts +12 -7
  61. package/dist/src/redteam/plugins/base.d.ts.map +1 -1
  62. package/dist/src/redteam/plugins/base.js +44 -29
  63. package/dist/src/redteam/plugins/base.js.map +1 -1
  64. package/dist/src/redteam/plugins/contracts.d.ts.map +1 -1
  65. package/dist/src/redteam/plugins/contracts.js +20 -9
  66. package/dist/src/redteam/plugins/contracts.js.map +1 -1
  67. package/dist/src/redteam/plugins/crossSessionLeak.d.ts.map +1 -1
  68. package/dist/src/redteam/plugins/crossSessionLeak.js +21 -10
  69. package/dist/src/redteam/plugins/crossSessionLeak.js.map +1 -1
  70. package/dist/src/redteam/plugins/debugAccess.d.ts.map +1 -1
  71. package/dist/src/redteam/plugins/debugAccess.js +20 -9
  72. package/dist/src/redteam/plugins/debugAccess.js.map +1 -1
  73. package/dist/src/redteam/plugins/excessiveAgency.d.ts.map +1 -1
  74. package/dist/src/redteam/plugins/excessiveAgency.js +18 -7
  75. package/dist/src/redteam/plugins/excessiveAgency.js.map +1 -1
  76. package/dist/src/redteam/plugins/hallucination.d.ts.map +1 -1
  77. package/dist/src/redteam/plugins/hallucination.js +18 -7
  78. package/dist/src/redteam/plugins/hallucination.js.map +1 -1
  79. package/dist/src/redteam/plugins/harmful/aligned.d.ts +13 -0
  80. package/dist/src/redteam/plugins/harmful/aligned.d.ts.map +1 -0
  81. package/dist/src/redteam/plugins/harmful/aligned.js +29 -0
  82. package/dist/src/redteam/plugins/harmful/aligned.js.map +1 -0
  83. package/dist/src/redteam/plugins/harmful/common.d.ts +5 -0
  84. package/dist/src/redteam/plugins/harmful/common.d.ts.map +1 -0
  85. package/dist/src/redteam/plugins/harmful/common.js +39 -0
  86. package/dist/src/redteam/plugins/harmful/common.js.map +1 -0
  87. package/dist/src/redteam/plugins/harmful/constants.d.ts +10 -0
  88. package/dist/src/redteam/plugins/harmful/constants.d.ts.map +1 -0
  89. package/dist/src/redteam/plugins/harmful/constants.js +142 -0
  90. package/dist/src/redteam/plugins/harmful/constants.js.map +1 -0
  91. package/dist/src/redteam/plugins/harmful/graders.d.ts +15 -0
  92. package/dist/src/redteam/plugins/harmful/graders.d.ts.map +1 -0
  93. package/dist/src/redteam/plugins/harmful/graders.js +94 -0
  94. package/dist/src/redteam/plugins/harmful/graders.js.map +1 -0
  95. package/dist/src/redteam/plugins/harmful/unaligned.d.ts +5 -0
  96. package/dist/src/redteam/plugins/harmful/unaligned.d.ts.map +1 -0
  97. package/dist/src/redteam/plugins/harmful/unaligned.js +29 -0
  98. package/dist/src/redteam/plugins/harmful/unaligned.js.map +1 -0
  99. package/dist/src/redteam/plugins/imitation.d.ts.map +1 -1
  100. package/dist/src/redteam/plugins/imitation.js +20 -9
  101. package/dist/src/redteam/plugins/imitation.js.map +1 -1
  102. package/dist/src/redteam/plugins/index.d.ts +2 -2
  103. package/dist/src/redteam/plugins/index.d.ts.map +1 -1
  104. package/dist/src/redteam/plugins/index.js +33 -30
  105. package/dist/src/redteam/plugins/index.js.map +1 -1
  106. package/dist/src/redteam/plugins/overreliance.d.ts.map +1 -1
  107. package/dist/src/redteam/plugins/overreliance.js +18 -7
  108. package/dist/src/redteam/plugins/overreliance.js.map +1 -1
  109. package/dist/src/redteam/plugins/pii.d.ts +2 -2
  110. package/dist/src/redteam/plugins/pii.d.ts.map +1 -1
  111. package/dist/src/redteam/plugins/pii.js +4 -4
  112. package/dist/src/redteam/plugins/pii.js.map +1 -1
  113. package/dist/src/redteam/plugins/politics.d.ts.map +1 -1
  114. package/dist/src/redteam/plugins/politics.js +20 -9
  115. package/dist/src/redteam/plugins/politics.js.map +1 -1
  116. package/dist/src/redteam/plugins/promptExtraction.d.ts.map +1 -1
  117. package/dist/src/redteam/plugins/promptExtraction.js +23 -12
  118. package/dist/src/redteam/plugins/promptExtraction.js.map +1 -1
  119. package/dist/src/redteam/plugins/rbac.d.ts.map +1 -1
  120. package/dist/src/redteam/plugins/rbac.js +20 -9
  121. package/dist/src/redteam/plugins/rbac.js.map +1 -1
  122. package/dist/src/redteam/plugins/shellInjection.d.ts.map +1 -1
  123. package/dist/src/redteam/plugins/shellInjection.js +20 -9
  124. package/dist/src/redteam/plugins/shellInjection.js.map +1 -1
  125. package/dist/src/redteam/plugins/sqlInjection.d.ts.map +1 -1
  126. package/dist/src/redteam/plugins/sqlInjection.js +18 -7
  127. package/dist/src/redteam/plugins/sqlInjection.js.map +1 -1
  128. package/dist/src/redteam/providers/crescendo/index.d.ts +6 -0
  129. package/dist/src/redteam/providers/crescendo/index.d.ts.map +1 -1
  130. package/dist/src/redteam/providers/crescendo/index.js +45 -17
  131. package/dist/src/redteam/providers/crescendo/index.js.map +1 -1
  132. package/dist/src/redteam/providers/goat.d.ts.map +1 -1
  133. package/dist/src/redteam/providers/goat.js +23 -1
  134. package/dist/src/redteam/providers/goat.js.map +1 -1
  135. package/dist/src/redteam/providers/iterative.d.ts +6 -0
  136. package/dist/src/redteam/providers/iterative.d.ts.map +1 -1
  137. package/dist/src/redteam/providers/iterative.js +48 -1
  138. package/dist/src/redteam/providers/iterative.js.map +1 -1
  139. package/dist/src/redteam/providers/iterativeImage.d.ts +6 -0
  140. package/dist/src/redteam/providers/iterativeImage.d.ts.map +1 -1
  141. package/dist/src/redteam/providers/iterativeImage.js +34 -10
  142. package/dist/src/redteam/providers/iterativeImage.js.map +1 -1
  143. package/dist/src/redteam/providers/iterativeTree.d.ts +7 -2
  144. package/dist/src/redteam/providers/iterativeTree.d.ts.map +1 -1
  145. package/dist/src/redteam/providers/iterativeTree.js +44 -6
  146. package/dist/src/redteam/providers/iterativeTree.js.map +1 -1
  147. package/dist/src/redteam/providers/shared.d.ts +5 -2
  148. package/dist/src/redteam/providers/shared.d.ts.map +1 -1
  149. package/dist/src/redteam/providers/shared.js +21 -5
  150. package/dist/src/redteam/providers/shared.js.map +1 -1
  151. package/dist/src/redteam/strategies/crescendo.d.ts +1 -1
  152. package/dist/src/redteam/strategies/crescendo.d.ts.map +1 -1
  153. package/dist/src/redteam/strategies/crescendo.js +2 -1
  154. package/dist/src/redteam/strategies/crescendo.js.map +1 -1
  155. package/dist/src/redteam/strategies/goat.d.ts.map +1 -1
  156. package/dist/src/redteam/strategies/goat.js +1 -0
  157. package/dist/src/redteam/strategies/goat.js.map +1 -1
  158. package/dist/src/redteam/strategies/index.js +8 -8
  159. package/dist/src/redteam/strategies/index.js.map +1 -1
  160. package/dist/src/redteam/strategies/iterative.d.ts +1 -1
  161. package/dist/src/redteam/strategies/iterative.d.ts.map +1 -1
  162. package/dist/src/redteam/strategies/iterative.js +2 -1
  163. package/dist/src/redteam/strategies/iterative.js.map +1 -1
  164. package/dist/src/redteam/strategies/multilingual.d.ts.map +1 -1
  165. package/dist/src/redteam/strategies/multilingual.js +1 -0
  166. package/dist/src/redteam/strategies/multilingual.js.map +1 -1
  167. package/dist/src/redteam/types.d.ts +17 -1
  168. package/dist/src/redteam/types.d.ts.map +1 -1
  169. package/dist/src/share.d.ts.map +1 -1
  170. package/dist/src/share.js +11 -0
  171. package/dist/src/share.js.map +1 -1
  172. package/dist/src/types/index.d.ts +590 -113
  173. package/dist/src/types/index.d.ts.map +1 -1
  174. package/dist/src/types/index.js +6 -1
  175. package/dist/src/types/index.js.map +1 -1
  176. package/dist/src/types/shared.d.ts +1 -0
  177. package/dist/src/types/shared.d.ts.map +1 -1
  178. package/dist/src/util/config/load.d.ts.map +1 -1
  179. package/dist/src/util/config/load.js +7 -2
  180. package/dist/src/util/config/load.js.map +1 -1
  181. package/dist/src/util/convertEvalResultsToTable.d.ts.map +1 -1
  182. package/dist/src/util/convertEvalResultsToTable.js +4 -8
  183. package/dist/src/util/convertEvalResultsToTable.js.map +1 -1
  184. package/dist/src/util/exportToFile/index.d.ts +1 -0
  185. package/dist/src/util/exportToFile/index.d.ts.map +1 -1
  186. package/dist/src/util/index.d.ts +10 -2
  187. package/dist/src/util/index.d.ts.map +1 -1
  188. package/dist/src/validators/providers.d.ts +15 -0
  189. package/dist/src/validators/providers.d.ts.map +1 -1
  190. package/dist/src/validators/redteam.d.ts.map +1 -1
  191. package/dist/src/validators/redteam.js +6 -5
  192. package/dist/src/validators/redteam.js.map +1 -1
  193. package/dist/src/validators/shared.d.ts +3 -0
  194. package/dist/src/validators/shared.d.ts.map +1 -1
  195. package/dist/src/validators/shared.js +1 -0
  196. package/dist/src/validators/shared.js.map +1 -1
  197. package/dist/test/commands/init.test.js +1 -1
  198. package/dist/test/evaluator.test.js +86 -32
  199. package/dist/test/evaluator.test.js.map +1 -1
  200. package/dist/test/factories/evalFactory.d.ts +17 -4
  201. package/dist/test/factories/evalFactory.d.ts.map +1 -1
  202. package/dist/test/onboarding.test.js +8 -7
  203. package/dist/test/onboarding.test.js.map +1 -1
  204. package/dist/test/providers/bedrock.test.js +1 -4
  205. package/dist/test/providers/bedrock.test.js.map +1 -1
  206. package/dist/test/redteam/plugins/base.test.js +61 -23
  207. package/dist/test/redteam/plugins/base.test.js.map +1 -1
  208. package/dist/test/redteam/plugins/harmful/aligned.test.d.ts +2 -0
  209. package/dist/test/redteam/plugins/harmful/aligned.test.d.ts.map +1 -0
  210. package/dist/test/redteam/plugins/harmful/aligned.test.js +123 -0
  211. package/dist/test/redteam/plugins/harmful/aligned.test.js.map +1 -0
  212. package/dist/test/redteam/plugins/harmful/common.test.d.ts +2 -0
  213. package/dist/test/redteam/plugins/harmful/common.test.d.ts.map +1 -0
  214. package/dist/test/redteam/plugins/harmful/common.test.js +105 -0
  215. package/dist/test/redteam/plugins/harmful/common.test.js.map +1 -0
  216. package/dist/test/redteam/plugins/harmful/unaligned.test.d.ts +2 -0
  217. package/dist/test/redteam/plugins/harmful/unaligned.test.d.ts.map +1 -0
  218. package/dist/test/redteam/plugins/harmful/unaligned.test.js +150 -0
  219. package/dist/test/redteam/plugins/harmful/unaligned.test.js.map +1 -0
  220. package/dist/test/redteam/plugins/index.test.d.ts +2 -0
  221. package/dist/test/redteam/plugins/index.test.d.ts.map +1 -0
  222. package/dist/test/redteam/plugins/index.test.js +172 -0
  223. package/dist/test/redteam/plugins/index.test.js.map +1 -0
  224. package/dist/test/redteam/providers/iterativeTree.test.js +4 -5
  225. package/dist/test/redteam/providers/iterativeTree.test.js.map +1 -1
  226. package/dist/test/share.test.js +45 -1
  227. package/dist/test/share.test.js.map +1 -1
  228. package/dist/test/util/config/load.test.js +3 -1
  229. package/dist/test/util/config/load.test.js.map +1 -1
  230. package/dist/tsconfig.tsbuildinfo +1 -1
  231. package/package.json +5 -5
  232. package/dist/src/redteam/plugins/harmful.d.ts +0 -18
  233. package/dist/src/redteam/plugins/harmful.d.ts.map +0 -1
  234. package/dist/src/redteam/plugins/harmful.js +0 -366
  235. package/dist/src/redteam/plugins/harmful.js.map +0 -1
@@ -576,16 +576,19 @@ export declare const ProviderResponseSchema: z.ZodObject<{
576
576
  completion: z.ZodOptional<z.ZodNumber>;
577
577
  prompt: z.ZodOptional<z.ZodNumber>;
578
578
  total: z.ZodOptional<z.ZodNumber>;
579
+ numRequests: z.ZodOptional<z.ZodNumber>;
579
580
  }, "strip", z.ZodTypeAny, {
580
581
  cached?: number | undefined;
581
582
  completion?: number | undefined;
582
583
  prompt?: number | undefined;
583
584
  total?: number | undefined;
585
+ numRequests?: number | undefined;
584
586
  }, {
585
587
  cached?: number | undefined;
586
588
  completion?: number | undefined;
587
589
  prompt?: number | undefined;
588
590
  total?: number | undefined;
591
+ numRequests?: number | undefined;
589
592
  }>>;
590
593
  }, "strip", z.ZodTypeAny, {
591
594
  output?: any;
@@ -601,6 +604,7 @@ export declare const ProviderResponseSchema: z.ZodObject<{
601
604
  completion?: number | undefined;
602
605
  prompt?: number | undefined;
603
606
  total?: number | undefined;
607
+ numRequests?: number | undefined;
604
608
  } | undefined;
605
609
  }, {
606
610
  output?: any;
@@ -616,6 +620,7 @@ export declare const ProviderResponseSchema: z.ZodObject<{
616
620
  completion?: number | undefined;
617
621
  prompt?: number | undefined;
618
622
  total?: number | undefined;
623
+ numRequests?: number | undefined;
619
624
  } | undefined;
620
625
  }>;
621
626
  export declare const ProviderEmbeddingResponseSchema: z.ZodObject<{
@@ -626,16 +631,19 @@ export declare const ProviderEmbeddingResponseSchema: z.ZodObject<{
626
631
  completion: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
627
632
  prompt: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
628
633
  total: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
634
+ numRequests: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
629
635
  }, "strip", z.ZodTypeAny, {
630
636
  cached?: number | undefined;
631
637
  completion?: number | undefined;
632
638
  prompt?: number | undefined;
633
639
  total?: number | undefined;
640
+ numRequests?: number | undefined;
634
641
  }, {
635
642
  cached?: number | undefined;
636
643
  completion?: number | undefined;
637
644
  prompt?: number | undefined;
638
645
  total?: number | undefined;
646
+ numRequests?: number | undefined;
639
647
  }>>;
640
648
  }, "strip", z.ZodTypeAny, {
641
649
  embedding?: number[] | undefined;
@@ -645,6 +653,7 @@ export declare const ProviderEmbeddingResponseSchema: z.ZodObject<{
645
653
  completion?: number | undefined;
646
654
  prompt?: number | undefined;
647
655
  total?: number | undefined;
656
+ numRequests?: number | undefined;
648
657
  } | undefined;
649
658
  }, {
650
659
  embedding?: number[] | undefined;
@@ -654,6 +663,7 @@ export declare const ProviderEmbeddingResponseSchema: z.ZodObject<{
654
663
  completion?: number | undefined;
655
664
  prompt?: number | undefined;
656
665
  total?: number | undefined;
666
+ numRequests?: number | undefined;
657
667
  } | undefined;
658
668
  }>;
659
669
  export declare const ProviderSimilarityResponseSchema: z.ZodObject<{
@@ -664,16 +674,19 @@ export declare const ProviderSimilarityResponseSchema: z.ZodObject<{
664
674
  completion: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
665
675
  prompt: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
666
676
  total: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
677
+ numRequests: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
667
678
  }, "strip", z.ZodTypeAny, {
668
679
  cached?: number | undefined;
669
680
  completion?: number | undefined;
670
681
  prompt?: number | undefined;
671
682
  total?: number | undefined;
683
+ numRequests?: number | undefined;
672
684
  }, {
673
685
  cached?: number | undefined;
674
686
  completion?: number | undefined;
675
687
  prompt?: number | undefined;
676
688
  total?: number | undefined;
689
+ numRequests?: number | undefined;
677
690
  }>>;
678
691
  }, "strip", z.ZodTypeAny, {
679
692
  error?: string | undefined;
@@ -682,6 +695,7 @@ export declare const ProviderSimilarityResponseSchema: z.ZodObject<{
682
695
  completion?: number | undefined;
683
696
  prompt?: number | undefined;
684
697
  total?: number | undefined;
698
+ numRequests?: number | undefined;
685
699
  } | undefined;
686
700
  similarity?: number | undefined;
687
701
  }, {
@@ -691,6 +705,7 @@ export declare const ProviderSimilarityResponseSchema: z.ZodObject<{
691
705
  completion?: number | undefined;
692
706
  prompt?: number | undefined;
693
707
  total?: number | undefined;
708
+ numRequests?: number | undefined;
694
709
  } | undefined;
695
710
  similarity?: number | undefined;
696
711
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../../src/validators/providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,8BAA8B,EAC9B,yBAAyB,EAIzB,gBAAgB,EAEjB,MAAM,oBAAoB,CAAC;AAK5B,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoDrC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUvB,CAAC;AAEZ,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQrC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;EAErC,CAAC;AAYH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiB5B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAajC,CAAC;AAEH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI1C,CAAC;AAEH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI3C,CAAC;AAEH,eAAO,MAAM,oCAAoC;;;;;;;;;EAG/C,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAW1B,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAkE,CAAC"}
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../../src/validators/providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,8BAA8B,EAC9B,yBAAyB,EAIzB,gBAAgB,EAEjB,MAAM,oBAAoB,CAAC;AAK5B,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoDrC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUvB,CAAC;AAEZ,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQrC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;EAErC,CAAC;AAYH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiB5B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAajC,CAAC;AAEH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI1C,CAAC;AAEH,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI3C,CAAC;AAEH,eAAO,MAAM,oCAAoC;;;;;;;;;EAG/C,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAW1B,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAkE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"redteam.d.ts","sourceRoot":"","sources":["../../../src/validators/redteam.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiBxB,OAAO,KAAK,EAAE,iBAAiB,EAAuB,MAAM,kBAAkB,CAAC;AAmB/E;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;IAU9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;IAMhC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCvC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoK5B,CAAC"}
1
+ {"version":3,"file":"redteam.d.ts","sourceRoot":"","sources":["../../../src/validators/redteam.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiBxB,OAAO,KAAK,EAAE,iBAAiB,EAAuB,MAAM,kBAAkB,CAAC;AAmB/E;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;IAU9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;IAMhC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCvC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqK5B,CAAC"}
@@ -219,12 +219,13 @@ exports.RedteamConfigSchema = zod_1.z
219
219
  if (strategy === 'basic') {
220
220
  return [];
221
221
  }
222
- return strategy === 'default' ? constants_1.DEFAULT_STRATEGIES.map((id) => id) : [strategy];
222
+ return strategy === 'default'
223
+ ? constants_1.DEFAULT_STRATEGIES.map((id) => ({ id }))
224
+ : [{ id: strategy }];
223
225
  }
224
- return [strategy.id];
225
- })))
226
- .map((id) => ({ id }))
227
- .sort((a, b) => a.id.localeCompare(b.id));
226
+ // Just return the original strategy object
227
+ return [strategy];
228
+ }))).sort((a, b) => a.id.localeCompare(b.id));
228
229
  return {
229
230
  numTests: data.numTests,
230
231
  plugins: uniquePlugins,
@@ -1 +1 @@
1
- {"version":3,"file":"redteam.js","sourceRoot":"","sources":["../../../src/validators/redteam.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redteam.js","sourceRoot":"","sources":["../../../src/validators/redteam.ts"],"names":[],"mappings":"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"}
@@ -4,16 +4,19 @@ export declare const TokenUsageSchema: z.ZodObject<{
4
4
  completion: z.ZodOptional<z.ZodNumber>;
5
5
  prompt: z.ZodOptional<z.ZodNumber>;
6
6
  total: z.ZodOptional<z.ZodNumber>;
7
+ numRequests: z.ZodOptional<z.ZodNumber>;
7
8
  }, "strip", z.ZodTypeAny, {
8
9
  cached?: number | undefined;
9
10
  completion?: number | undefined;
10
11
  prompt?: number | undefined;
11
12
  total?: number | undefined;
13
+ numRequests?: number | undefined;
12
14
  }, {
13
15
  cached?: number | undefined;
14
16
  completion?: number | undefined;
15
17
  prompt?: number | undefined;
16
18
  total?: number | undefined;
19
+ numRequests?: number | undefined;
17
20
  }>;
18
21
  export declare const NunjucksFilterMapSchema: z.ZodRecord<z.ZodString, z.ZodFunction<z.ZodTuple<[z.ZodAny], z.ZodAny>, z.ZodString>>;
19
22
  //# sourceMappingURL=shared.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/validators/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;EAK3B,CAAC;AAEH,eAAO,MAAM,uBAAuB,wFAGnC,CAAC"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/validators/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;EAM3B,CAAC;AAEH,eAAO,MAAM,uBAAuB,wFAGnC,CAAC"}
@@ -7,6 +7,7 @@ exports.TokenUsageSchema = zod_1.z.object({
7
7
  completion: zod_1.z.number().optional(),
8
8
  prompt: zod_1.z.number().optional(),
9
9
  total: zod_1.z.number().optional(),
10
+ numRequests: zod_1.z.number().optional(),
10
11
  });
11
12
  exports.NunjucksFilterMapSchema = zod_1.z.record(zod_1.z.string(), zod_1.z.function(zod_1.z.tuple([zod_1.z.any()]).rest(zod_1.z.any()), zod_1.z.string()));
12
13
  //# sourceMappingURL=shared.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/validators/shared.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC;IACvC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAEU,QAAA,uBAAuB,GAAG,OAAC,CAAC,MAAM,CAC7C,OAAC,CAAC,MAAM,EAAE,EACV,OAAC,CAAC,QAAQ,CAAC,OAAC,CAAC,KAAK,CAAC,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,CACzD,CAAC"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/validators/shared.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC;IACvC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAEU,QAAA,uBAAuB,GAAG,OAAC,CAAC,MAAM,CAC7C,OAAC,CAAC,MAAM,EAAE,EACV,OAAC,CAAC,QAAQ,CAAC,OAAC,CAAC,KAAK,CAAC,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,CACzD,CAAC"}
@@ -155,7 +155,7 @@ describe('init command', () => {
155
155
  const initCmd = program.commands.find((cmd) => cmd.name() === 'init');
156
156
  expect(initCmd).toBeDefined();
157
157
  expect(initCmd?.description()).toBe('Initialize project with dummy files or download an example');
158
- expect(initCmd?.options).toHaveLength(2);
158
+ expect(initCmd?.options).toHaveLength(3);
159
159
  });
160
160
  });
161
161
  });
@@ -25,28 +25,28 @@ const mockApiProvider = {
25
25
  id: jest.fn().mockReturnValue('test-provider'),
26
26
  callApi: jest.fn().mockResolvedValue({
27
27
  output: 'Test output',
28
- tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0 },
28
+ tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0, numRequests: 1 },
29
29
  }),
30
30
  };
31
31
  const mockApiProvider2 = {
32
32
  id: jest.fn().mockReturnValue('test-provider-2'),
33
33
  callApi: jest.fn().mockResolvedValue({
34
34
  output: 'Test output',
35
- tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0 },
35
+ tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0, numRequests: 1 },
36
36
  }),
37
37
  };
38
38
  const mockGradingApiProviderPasses = {
39
39
  id: jest.fn().mockReturnValue('test-grading-provider'),
40
40
  callApi: jest.fn().mockResolvedValue({
41
41
  output: JSON.stringify({ pass: true, reason: 'Test grading output' }),
42
- tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0 },
42
+ tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0, numRequests: 1 },
43
43
  }),
44
44
  };
45
45
  const mockGradingApiProviderFails = {
46
46
  id: jest.fn().mockReturnValue('test-grading-provider'),
47
47
  callApi: jest.fn().mockResolvedValue({
48
48
  output: JSON.stringify({ pass: false, reason: 'Grading failed reason' }),
49
- tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0 },
49
+ tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0, numRequests: 1 },
50
50
  }),
51
51
  };
52
52
  function toPrompt(text) {
@@ -78,7 +78,13 @@ describe('evaluator', () => {
78
78
  expect(mockApiProvider.callApi).toHaveBeenCalledTimes(1);
79
79
  expect(summary.stats.successes).toBe(1);
80
80
  expect(summary.stats.failures).toBe(0);
81
- expect(summary.stats.tokenUsage).toEqual({ total: 10, prompt: 5, completion: 5, cached: 0 });
81
+ expect(summary.stats.tokenUsage).toEqual({
82
+ total: 10,
83
+ prompt: 5,
84
+ completion: 5,
85
+ cached: 0,
86
+ numRequests: 1,
87
+ });
82
88
  expect(summary.results[0].prompt.raw).toBe('Test prompt value1 value2');
83
89
  expect(summary.results[0].prompt.label).toBe('Test prompt {{ var1 }} {{ var2 }}');
84
90
  expect(summary.results[0].response?.output).toBe('Test output');
@@ -99,7 +105,13 @@ describe('evaluator', () => {
99
105
  expect(mockApiProvider.callApi).toHaveBeenCalledTimes(1);
100
106
  expect(summary.stats.successes).toBe(1);
101
107
  expect(summary.stats.failures).toBe(0);
102
- expect(summary.stats.tokenUsage).toEqual({ total: 10, prompt: 5, completion: 5, cached: 0 });
108
+ expect(summary.stats.tokenUsage).toEqual({
109
+ total: 10,
110
+ prompt: 5,
111
+ completion: 5,
112
+ cached: 0,
113
+ numRequests: 1,
114
+ });
103
115
  expect(summary.results[0].prompt.raw).toBe('Test prompt 1 < 2 he said "hello world"...');
104
116
  expect(summary.results[0].prompt.label).toBe('Test prompt {{ var1 }} {{ var2 }}');
105
117
  expect(summary.results[0].response?.output).toBe('Test output');
@@ -120,7 +132,13 @@ describe('evaluator', () => {
120
132
  expect(mockApiProvider.callApi).toHaveBeenCalledTimes(1);
121
133
  expect(summary.stats.successes).toBe(1);
122
134
  expect(summary.stats.failures).toBe(0);
123
- expect(summary.stats.tokenUsage).toEqual({ total: 10, prompt: 5, completion: 5, cached: 0 });
135
+ expect(summary.stats.tokenUsage).toEqual({
136
+ total: 10,
137
+ prompt: 5,
138
+ completion: 5,
139
+ cached: 0,
140
+ numRequests: 1,
141
+ });
124
142
  expect(summary.results[0].prompt.raw).toBe('Test prompt value1 value2');
125
143
  expect(summary.results[0].prompt.label).toBe('Test prompt {{ var1.prop1 }} {{ var2 }}');
126
144
  expect(summary.results[0].response?.output).toBe('Test output');
@@ -141,7 +159,13 @@ describe('evaluator', () => {
141
159
  expect(mockApiProvider.callApi).toHaveBeenCalledTimes(1);
142
160
  expect(summary.stats.successes).toBe(1);
143
161
  expect(summary.stats.failures).toBe(0);
144
- expect(summary.stats.tokenUsage).toEqual({ total: 10, prompt: 5, completion: 5, cached: 0 });
162
+ expect(summary.stats.tokenUsage).toEqual({
163
+ total: 10,
164
+ prompt: 5,
165
+ completion: 5,
166
+ cached: 0,
167
+ numRequests: 1,
168
+ });
145
169
  expect(summary.results[0].prompt.raw).toBe('Test prompt value1 value2');
146
170
  expect(summary.results[0].prompt.label).toBe('test display name');
147
171
  expect(summary.results[0].response?.output).toBe('Test output');
@@ -162,7 +186,13 @@ describe('evaluator', () => {
162
186
  expect(mockApiProvider.callApi).toHaveBeenCalledTimes(4);
163
187
  expect(summary.stats.successes).toBe(4);
164
188
  expect(summary.stats.failures).toBe(0);
165
- expect(summary.stats.tokenUsage).toEqual({ total: 40, prompt: 20, completion: 20, cached: 0 });
189
+ expect(summary.stats.tokenUsage).toEqual({
190
+ total: 40,
191
+ prompt: 20,
192
+ completion: 20,
193
+ cached: 0,
194
+ numRequests: 4,
195
+ });
166
196
  expect(summary.results[0].prompt.raw).toBe('Test prompt value1 value2');
167
197
  expect(summary.results[0].prompt.label).toBe('Test prompt {{ var1 }} {{ var2 }}');
168
198
  expect(summary.results[0].response?.output).toBe('Test output');
@@ -183,7 +213,13 @@ describe('evaluator', () => {
183
213
  expect(mockApiProvider.callApi).toHaveBeenCalledTimes(2);
184
214
  expect(summary.stats.successes).toBe(2);
185
215
  expect(summary.stats.failures).toBe(0);
186
- expect(summary.stats.tokenUsage).toEqual({ total: 20, prompt: 10, completion: 10, cached: 0 });
216
+ expect(summary.stats.tokenUsage).toEqual({
217
+ total: 20,
218
+ prompt: 10,
219
+ completion: 10,
220
+ cached: 0,
221
+ numRequests: 2,
222
+ });
187
223
  expect(summary.results[0].prompt.raw).toBe('Test prompt value1 value2');
188
224
  expect(summary.results[0].prompt.label).toBe('Test prompt {{ var1 }} {{ var2 }}');
189
225
  expect(summary.results[0].response?.output).toBe('Test output');
@@ -199,7 +235,13 @@ describe('evaluator', () => {
199
235
  expect(mockApiProvider.callApi).toHaveBeenCalledTimes(1);
200
236
  expect(summary.stats.successes).toBe(1);
201
237
  expect(summary.stats.failures).toBe(0);
202
- expect(summary.stats.tokenUsage).toEqual({ total: 10, prompt: 5, completion: 5, cached: 0 });
238
+ expect(summary.stats.tokenUsage).toEqual({
239
+ total: 10,
240
+ prompt: 5,
241
+ completion: 5,
242
+ cached: 0,
243
+ numRequests: 1,
244
+ });
203
245
  expect(summary.results[0].prompt.raw).toBe('Test prompt');
204
246
  expect(summary.results[0].prompt.label).toBe('Test prompt');
205
247
  expect(summary.results[0].response?.output).toBe('Test output');
@@ -215,7 +257,13 @@ describe('evaluator', () => {
215
257
  expect(mockApiProvider.callApi).toHaveBeenCalledTimes(3);
216
258
  expect(summary.stats.successes).toBe(3);
217
259
  expect(summary.stats.failures).toBe(0);
218
- expect(summary.stats.tokenUsage).toEqual({ total: 30, prompt: 15, completion: 15, cached: 0 });
260
+ expect(summary.stats.tokenUsage).toEqual({
261
+ total: 30,
262
+ prompt: 15,
263
+ completion: 15,
264
+ cached: 0,
265
+ numRequests: 3,
266
+ });
219
267
  expect(summary.results[0].prompt.raw).toBe('Test prompt');
220
268
  expect(summary.results[0].prompt.label).toBe('Test prompt');
221
269
  expect(summary.results[0].response?.output).toBe('Test output');
@@ -423,7 +471,7 @@ describe('evaluator', () => {
423
471
  id: jest.fn().mockReturnValue('test-provider-json'),
424
472
  callApi: jest.fn().mockResolvedValue({
425
473
  output: '{"output": "testing", "value": 123}',
426
- tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0 },
474
+ tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0, numRequests: 1 },
427
475
  }),
428
476
  };
429
477
  const testSuite = {
@@ -456,7 +504,7 @@ describe('evaluator', () => {
456
504
  id: jest.fn().mockReturnValue('test-provider-transform'),
457
505
  callApi: jest.fn().mockResolvedValue({
458
506
  output: 'Original output',
459
- tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0 },
507
+ tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0, numRequests: 1 },
460
508
  }),
461
509
  transform: '`Transformed: ${output}`',
462
510
  };
@@ -544,7 +592,7 @@ describe('evaluator', () => {
544
592
  id: jest.fn().mockReturnValue('test-provider-transform'),
545
593
  callApi: jest.fn().mockResolvedValue({
546
594
  output: 'Original output',
547
- tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0 },
595
+ tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0, numRequests: 1 },
548
596
  }),
549
597
  transform: '`ProviderTransformed: ${output}`',
550
598
  };
@@ -608,7 +656,13 @@ describe('evaluator', () => {
608
656
  expect(mockApiProvider.callApi).toHaveBeenCalledTimes(1);
609
657
  expect(summary.stats.successes).toBe(1);
610
658
  expect(summary.stats.failures).toBe(0);
611
- expect(summary.stats.tokenUsage).toEqual({ total: 10, prompt: 5, completion: 5, cached: 0 });
659
+ expect(summary.stats.tokenUsage).toEqual({
660
+ total: 10,
661
+ prompt: 5,
662
+ completion: 5,
663
+ cached: 0,
664
+ numRequests: 1,
665
+ });
612
666
  expect(summary.results[0].prompt.raw).toBe('Test prompt 1');
613
667
  expect(summary.results[0].prompt.label).toBe('Test prompt 1');
614
668
  expect(summary.results[0].response?.output).toBe('Test output');
@@ -618,7 +672,7 @@ describe('evaluator', () => {
618
672
  id: jest.fn().mockReturnValue('test-provider'),
619
673
  callApi: jest.fn().mockResolvedValue({
620
674
  output: 'Test output',
621
- tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0 },
675
+ tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0, numRequests: 1 },
622
676
  }),
623
677
  };
624
678
  const testSuite = {
@@ -656,11 +710,11 @@ describe('evaluator', () => {
656
710
  .fn()
657
711
  .mockResolvedValueOnce({
658
712
  output: 'Hola mundo',
659
- tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0 },
713
+ tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0, numRequests: 1 },
660
714
  })
661
715
  .mockResolvedValueOnce({
662
716
  output: 'Bonjour le monde',
663
- tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0 },
717
+ tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0, numRequests: 1 },
664
718
  }),
665
719
  };
666
720
  const testSuite = {
@@ -711,19 +765,19 @@ describe('evaluator', () => {
711
765
  .fn()
712
766
  .mockResolvedValueOnce({
713
767
  output: 'Spanish Hola',
714
- tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0 },
768
+ tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0, numRequests: 1 },
715
769
  })
716
770
  .mockResolvedValueOnce({
717
771
  output: 'Spanish Bonjour',
718
- tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0 },
772
+ tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0, numRequests: 1 },
719
773
  })
720
774
  .mockResolvedValueOnce({
721
775
  output: 'French Hola',
722
- tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0 },
776
+ tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0, numRequests: 1 },
723
777
  })
724
778
  .mockResolvedValueOnce({
725
779
  output: 'French Bonjour',
726
- tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0 },
780
+ tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0, numRequests: 1 },
727
781
  }),
728
782
  };
729
783
  const testSuite = {
@@ -768,7 +822,7 @@ describe('evaluator', () => {
768
822
  id: jest.fn().mockReturnValue('test-provider'),
769
823
  callApi: jest.fn().mockResolvedValue({
770
824
  output: 'Hello, World',
771
- tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0 },
825
+ tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0, numRequests: 1 },
772
826
  }),
773
827
  };
774
828
  const testSuite = {
@@ -871,7 +925,7 @@ describe('evaluator', () => {
871
925
  callApi: jest.fn().mockImplementation((prompt) => {
872
926
  return Promise.resolve({
873
927
  output: prompt,
874
- tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0 },
928
+ tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0, numRequests: 1 },
875
929
  });
876
930
  }),
877
931
  };
@@ -902,14 +956,14 @@ describe('evaluator', () => {
902
956
  label: 'Labeled Provider',
903
957
  callApi: jest.fn().mockResolvedValue({
904
958
  output: 'Labeled Provider Output',
905
- tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0 },
959
+ tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0, numRequests: 1 },
906
960
  }),
907
961
  };
908
962
  const mockUnlabeledProvider = {
909
963
  id: () => 'unlabeled-provider-id',
910
964
  callApi: jest.fn().mockResolvedValue({
911
965
  output: 'Unlabeled Provider Output',
912
- tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0 },
966
+ tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0, numRequests: 1 },
913
967
  }),
914
968
  };
915
969
  const testSuite = {
@@ -1029,7 +1083,7 @@ describe('evaluator', () => {
1029
1083
  id: jest.fn().mockReturnValue('test-provider-transform'),
1030
1084
  callApi: jest.fn().mockResolvedValue({
1031
1085
  output: 'Original output',
1032
- tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0 },
1086
+ tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0, numRequests: 1 },
1033
1087
  }),
1034
1088
  transform: '`Provider: ${output}`',
1035
1089
  };
@@ -1067,7 +1121,7 @@ describe('evaluator', () => {
1067
1121
  id: jest.fn().mockReturnValue('test-provider-transform'),
1068
1122
  callApi: jest.fn().mockResolvedValue({
1069
1123
  output: 'Original output',
1070
- tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0 },
1124
+ tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0, numRequests: 1 },
1071
1125
  }),
1072
1126
  transform: '`Provider: ${output}`',
1073
1127
  };
@@ -1112,7 +1166,7 @@ describe('evaluator', () => {
1112
1166
  id: jest.fn().mockReturnValue('test-provider-no-output'),
1113
1167
  callApi: jest.fn().mockResolvedValue({
1114
1168
  output: null,
1115
- tokenUsage: { total: 5, prompt: 5, completion: 0, cached: 0 },
1169
+ tokenUsage: { total: 5, prompt: 5, completion: 0, cached: 0, numRequests: 1 },
1116
1170
  }),
1117
1171
  };
1118
1172
  const testSuite = {
@@ -1135,7 +1189,7 @@ describe('evaluator', () => {
1135
1189
  id: jest.fn().mockReturnValue('test-provider-no-output'),
1136
1190
  callApi: jest.fn().mockResolvedValue({
1137
1191
  output: false,
1138
- tokenUsage: { total: 5, prompt: 5, completion: 0, cached: 0 },
1192
+ tokenUsage: { total: 5, prompt: 5, completion: 0, cached: 0, numRequests: 1 },
1139
1193
  }),
1140
1194
  };
1141
1195
  const testSuite = {
@@ -1157,7 +1211,7 @@ describe('evaluator', () => {
1157
1211
  id: jest.fn().mockReturnValue('test-provider'),
1158
1212
  callApi: jest.fn().mockResolvedValue({
1159
1213
  output: 'Test response',
1160
- tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0 },
1214
+ tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0, numRequests: 1 },
1161
1215
  }),
1162
1216
  };
1163
1217
  const testSuite = {