promptfoo 0.94.6 → 0.96.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 (317) hide show
  1. package/README.md +2 -1
  2. package/dist/drizzle/0010_needy_bishop.sql +11 -0
  3. package/dist/drizzle/meta/0010_snapshot.json +691 -0
  4. package/dist/drizzle/meta/_journal.json +7 -0
  5. package/dist/package.json +25 -23
  6. package/dist/src/app/assets/index-Dwt7E2K_.js +769 -0
  7. package/dist/src/app/assets/{index.es-Cbd6bbAq.js → index.es-CooNf3HB.js} +1 -1
  8. package/dist/src/app/assets/{sync-CWmPcyeI.js → sync-Bj1WJrHQ.js} +1 -1
  9. package/dist/src/app/index.html +1 -1
  10. package/dist/src/assertions/bleu.d.ts +33 -0
  11. package/dist/src/assertions/bleu.d.ts.map +1 -0
  12. package/dist/src/assertions/bleu.js +116 -0
  13. package/dist/src/assertions/bleu.js.map +1 -0
  14. package/dist/src/assertions/index.d.ts +1 -12
  15. package/dist/src/assertions/index.d.ts.map +1 -1
  16. package/dist/src/assertions/index.js +20 -250
  17. package/dist/src/assertions/index.js.map +1 -1
  18. package/dist/src/assertions/json.d.ts +8 -0
  19. package/dist/src/assertions/json.d.ts.map +1 -0
  20. package/dist/src/assertions/json.js +121 -0
  21. package/dist/src/assertions/json.js.map +1 -0
  22. package/dist/src/assertions/perplexity.d.ts +4 -0
  23. package/dist/src/assertions/perplexity.d.ts.map +1 -0
  24. package/dist/src/assertions/perplexity.js +40 -0
  25. package/dist/src/assertions/perplexity.js.map +1 -0
  26. package/dist/src/assertions/sql.d.ts +4 -0
  27. package/dist/src/assertions/sql.d.ts.map +1 -0
  28. package/dist/src/assertions/sql.js +87 -0
  29. package/dist/src/assertions/sql.js.map +1 -0
  30. package/dist/src/assertions/xml.d.ts +9 -0
  31. package/dist/src/assertions/xml.d.ts.map +1 -0
  32. package/dist/src/assertions/xml.js +57 -0
  33. package/dist/src/assertions/xml.js.map +1 -0
  34. package/dist/src/cache.d.ts +1 -1
  35. package/dist/src/cache.d.ts.map +1 -1
  36. package/dist/src/cache.js +2 -1
  37. package/dist/src/cache.js.map +1 -1
  38. package/dist/src/commands/eval/filterTests.d.ts +1 -0
  39. package/dist/src/commands/eval/filterTests.d.ts.map +1 -1
  40. package/dist/src/commands/eval/filterTests.js +14 -1
  41. package/dist/src/commands/eval/filterTests.js.map +1 -1
  42. package/dist/src/commands/eval.d.ts.map +1 -1
  43. package/dist/src/commands/eval.js +49 -23
  44. package/dist/src/commands/eval.js.map +1 -1
  45. package/dist/src/commands/import.d.ts.map +1 -1
  46. package/dist/src/commands/import.js +1 -0
  47. package/dist/src/commands/import.js.map +1 -1
  48. package/dist/src/commands/list.d.ts.map +1 -1
  49. package/dist/src/commands/list.js +15 -0
  50. package/dist/src/commands/list.js.map +1 -1
  51. package/dist/src/csv.d.ts.map +1 -1
  52. package/dist/src/csv.js +9 -4
  53. package/dist/src/csv.js.map +1 -1
  54. package/dist/src/database/tables.d.ts +292 -1
  55. package/dist/src/database/tables.d.ts.map +1 -1
  56. package/dist/src/database/tables.js +17 -1
  57. package/dist/src/database/tables.js.map +1 -1
  58. package/dist/src/envars.d.ts +9 -0
  59. package/dist/src/envars.d.ts.map +1 -1
  60. package/dist/src/envars.js.map +1 -1
  61. package/dist/src/evaluator.d.ts.map +1 -1
  62. package/dist/src/evaluator.js +32 -10
  63. package/dist/src/evaluator.js.map +1 -1
  64. package/dist/src/evaluatorHelpers.d.ts.map +1 -1
  65. package/dist/src/evaluatorHelpers.js +4 -0
  66. package/dist/src/evaluatorHelpers.js.map +1 -1
  67. package/dist/src/globalConfig/accounts.d.ts +1 -0
  68. package/dist/src/globalConfig/accounts.d.ts.map +1 -1
  69. package/dist/src/globalConfig/accounts.js +24 -0
  70. package/dist/src/globalConfig/accounts.js.map +1 -1
  71. package/dist/src/index.d.ts +74 -68
  72. package/dist/src/index.d.ts.map +1 -1
  73. package/dist/src/models/eval.d.ts +2 -0
  74. package/dist/src/models/eval.d.ts.map +1 -1
  75. package/dist/src/models/eval.js +13 -1
  76. package/dist/src/models/eval.js.map +1 -1
  77. package/dist/src/models/evalResult.d.ts +6 -1
  78. package/dist/src/models/evalResult.d.ts.map +1 -1
  79. package/dist/src/models/evalResult.js +21 -2
  80. package/dist/src/models/evalResult.js.map +1 -1
  81. package/dist/src/onboarding.js +8 -8
  82. package/dist/src/onboarding.js.map +1 -1
  83. package/dist/src/prompts/grading.js +4 -4
  84. package/dist/src/providers/adaline.gateway.d.ts.map +1 -1
  85. package/dist/src/providers/adaline.gateway.js +4 -4
  86. package/dist/src/providers/adaline.gateway.js.map +1 -1
  87. package/dist/src/providers/anthropic.d.ts.map +1 -1
  88. package/dist/src/providers/anthropic.js +21 -0
  89. package/dist/src/providers/anthropic.js.map +1 -1
  90. package/dist/src/providers/{azureopenai.d.ts → azure.d.ts} +13 -13
  91. package/dist/src/providers/azure.d.ts.map +1 -0
  92. package/dist/src/providers/{azureopenai.js → azure.js} +64 -42
  93. package/dist/src/providers/azure.js.map +1 -0
  94. package/dist/src/providers/{azureopenaiUtil.d.ts → azureUtil.d.ts} +1 -1
  95. package/dist/src/providers/azureUtil.d.ts.map +1 -0
  96. package/dist/src/providers/{azureopenaiUtil.js → azureUtil.js} +3 -3
  97. package/dist/src/providers/azureUtil.js.map +1 -0
  98. package/dist/src/providers/bedrock.d.ts +5 -3
  99. package/dist/src/providers/bedrock.d.ts.map +1 -1
  100. package/dist/src/providers/bedrock.js +50 -12
  101. package/dist/src/providers/bedrock.js.map +1 -1
  102. package/dist/src/providers/defaults.d.ts.map +1 -1
  103. package/dist/src/providers/defaults.js +36 -0
  104. package/dist/src/providers/defaults.js.map +1 -1
  105. package/dist/src/providers/http.d.ts.map +1 -1
  106. package/dist/src/providers/http.js +1 -2
  107. package/dist/src/providers/http.js.map +1 -1
  108. package/dist/src/providers/portkey.d.ts +3 -2
  109. package/dist/src/providers/portkey.d.ts.map +1 -1
  110. package/dist/src/providers/portkey.js +17 -10
  111. package/dist/src/providers/portkey.js.map +1 -1
  112. package/dist/src/providers/promptfoo.d.ts +1 -1
  113. package/dist/src/providers/promptfoo.d.ts.map +1 -1
  114. package/dist/src/providers/promptfoo.js +2 -2
  115. package/dist/src/providers/promptfoo.js.map +1 -1
  116. package/dist/src/providers.d.ts +9 -5
  117. package/dist/src/providers.d.ts.map +1 -1
  118. package/dist/src/providers.js +28 -19
  119. package/dist/src/providers.js.map +1 -1
  120. package/dist/src/redteam/commands/generate.d.ts.map +1 -1
  121. package/dist/src/redteam/commands/generate.js +5 -1
  122. package/dist/src/redteam/commands/generate.js.map +1 -1
  123. package/dist/src/redteam/commands/init.d.ts +11 -0
  124. package/dist/src/redteam/commands/init.d.ts.map +1 -1
  125. package/dist/src/redteam/commands/init.js +47 -12
  126. package/dist/src/redteam/commands/init.js.map +1 -1
  127. package/dist/src/redteam/commands/poison.d.ts +3 -0
  128. package/dist/src/redteam/commands/poison.d.ts.map +1 -0
  129. package/dist/src/redteam/commands/poison.js +165 -0
  130. package/dist/src/redteam/commands/poison.js.map +1 -0
  131. package/dist/src/redteam/commands/run.d.ts.map +1 -1
  132. package/dist/src/redteam/commands/run.js +2 -0
  133. package/dist/src/redteam/commands/run.js.map +1 -1
  134. package/dist/src/redteam/constants.d.ts +4 -4
  135. package/dist/src/redteam/constants.d.ts.map +1 -1
  136. package/dist/src/redteam/constants.js +21 -7
  137. package/dist/src/redteam/constants.js.map +1 -1
  138. package/dist/src/redteam/extraction/util.js +1 -1
  139. package/dist/src/redteam/extraction/util.js.map +1 -1
  140. package/dist/src/redteam/graders.d.ts +34 -32
  141. package/dist/src/redteam/graders.d.ts.map +1 -1
  142. package/dist/src/redteam/graders.js +34 -33
  143. package/dist/src/redteam/graders.js.map +1 -1
  144. package/dist/src/redteam/index.d.ts.map +1 -1
  145. package/dist/src/redteam/index.js +10 -3
  146. package/dist/src/redteam/index.js.map +1 -1
  147. package/dist/src/redteam/plugins/bfla.d.ts.map +1 -1
  148. package/dist/src/redteam/plugins/bfla.js +18 -4
  149. package/dist/src/redteam/plugins/bfla.js.map +1 -1
  150. package/dist/src/redteam/plugins/bola.js +3 -3
  151. package/dist/src/redteam/plugins/competitors.d.ts.map +1 -1
  152. package/dist/src/redteam/plugins/competitors.js +2 -6
  153. package/dist/src/redteam/plugins/competitors.js.map +1 -1
  154. package/dist/src/redteam/plugins/debugAccess.d.ts.map +1 -1
  155. package/dist/src/redteam/plugins/debugAccess.js +20 -1
  156. package/dist/src/redteam/plugins/debugAccess.js.map +1 -1
  157. package/dist/src/redteam/plugins/index.d.ts.map +1 -1
  158. package/dist/src/redteam/plugins/index.js +3 -2
  159. package/dist/src/redteam/plugins/index.js.map +1 -1
  160. package/dist/src/redteam/plugins/intent.d.ts +22 -0
  161. package/dist/src/redteam/plugins/intent.d.ts.map +1 -0
  162. package/dist/src/redteam/plugins/intent.js +100 -0
  163. package/dist/src/redteam/plugins/intent.js.map +1 -0
  164. package/dist/src/redteam/plugins/pii.d.ts.map +1 -1
  165. package/dist/src/redteam/plugins/pii.js +42 -37
  166. package/dist/src/redteam/plugins/pii.js.map +1 -1
  167. package/dist/src/redteam/plugins/rbac.d.ts.map +1 -1
  168. package/dist/src/redteam/plugins/rbac.js +5 -4
  169. package/dist/src/redteam/plugins/rbac.js.map +1 -1
  170. package/dist/src/redteam/plugins/sqlInjection.d.ts.map +1 -1
  171. package/dist/src/redteam/plugins/sqlInjection.js +27 -1
  172. package/dist/src/redteam/plugins/sqlInjection.js.map +1 -1
  173. package/dist/src/redteam/providers/crescendo/index.d.ts.map +1 -1
  174. package/dist/src/redteam/providers/crescendo/index.js +6 -4
  175. package/dist/src/redteam/providers/crescendo/index.js.map +1 -1
  176. package/dist/src/redteam/providers/goat.d.ts +12 -0
  177. package/dist/src/redteam/providers/goat.d.ts.map +1 -0
  178. package/dist/src/redteam/providers/goat.js +70 -0
  179. package/dist/src/redteam/providers/goat.js.map +1 -0
  180. package/dist/src/redteam/providers/iterative.d.ts.map +1 -1
  181. package/dist/src/redteam/providers/iterative.js +4 -2
  182. package/dist/src/redteam/providers/iterative.js.map +1 -1
  183. package/dist/src/redteam/providers/iterativeImage.d.ts.map +1 -1
  184. package/dist/src/redteam/providers/iterativeImage.js +4 -2
  185. package/dist/src/redteam/providers/iterativeImage.js.map +1 -1
  186. package/dist/src/redteam/providers/iterativeTree.d.ts +3 -1
  187. package/dist/src/redteam/providers/iterativeTree.d.ts.map +1 -1
  188. package/dist/src/redteam/providers/iterativeTree.js +5 -3
  189. package/dist/src/redteam/providers/iterativeTree.js.map +1 -1
  190. package/dist/src/redteam/providers/shared.d.ts +2 -2
  191. package/dist/src/redteam/providers/shared.d.ts.map +1 -1
  192. package/dist/src/redteam/providers/shared.js +2 -2
  193. package/dist/src/redteam/providers/shared.js.map +1 -1
  194. package/dist/src/redteam/strategies/goat.d.ts +3 -0
  195. package/dist/src/redteam/strategies/goat.d.ts.map +1 -0
  196. package/dist/src/redteam/strategies/goat.js +24 -0
  197. package/dist/src/redteam/strategies/goat.js.map +1 -0
  198. package/dist/src/redteam/strategies/index.d.ts.map +1 -1
  199. package/dist/src/redteam/strategies/index.js +10 -0
  200. package/dist/src/redteam/strategies/index.js.map +1 -1
  201. package/dist/src/redteam/strategies/mathPrompt.js +1 -1
  202. package/dist/src/redteam/strategies/mathPrompt.js.map +1 -1
  203. package/dist/src/redteam/strategies/multilingual.js +1 -1
  204. package/dist/src/redteam/strategies/multilingual.js.map +1 -1
  205. package/dist/src/redteam/types.d.ts +1 -0
  206. package/dist/src/redteam/types.d.ts.map +1 -1
  207. package/dist/src/remoteGrading.js +1 -1
  208. package/dist/src/remoteGrading.js.map +1 -1
  209. package/dist/src/server/routes/configs.d.ts +2 -0
  210. package/dist/src/server/routes/configs.d.ts.map +1 -0
  211. package/dist/src/server/routes/configs.js +100 -0
  212. package/dist/src/server/routes/configs.js.map +1 -0
  213. package/dist/src/server/routes/eval.js +48 -0
  214. package/dist/src/server/routes/eval.js.map +1 -1
  215. package/dist/src/server/server.d.ts.map +1 -1
  216. package/dist/src/server/server.js +3 -0
  217. package/dist/src/server/server.js.map +1 -1
  218. package/dist/src/telemetry.d.ts +2 -2
  219. package/dist/src/types/index.d.ts +4632 -12
  220. package/dist/src/types/index.d.ts.map +1 -1
  221. package/dist/src/types/index.js +3 -1
  222. package/dist/src/types/index.js.map +1 -1
  223. package/dist/src/types/providers.d.ts +13 -0
  224. package/dist/src/types/providers.d.ts.map +1 -1
  225. package/dist/src/types/providers.js.map +1 -1
  226. package/dist/src/util/config/load.d.ts +1 -1
  227. package/dist/src/util/config/load.d.ts.map +1 -1
  228. package/dist/src/util/config/load.js +14 -2
  229. package/dist/src/util/config/load.js.map +1 -1
  230. package/dist/src/util/exportToFile/index.d.ts +43 -0
  231. package/dist/src/util/exportToFile/index.d.ts.map +1 -0
  232. package/dist/src/util/exportToFile/index.js +98 -0
  233. package/dist/src/util/exportToFile/index.js.map +1 -0
  234. package/dist/src/util/exportToFile/writeToFile.d.ts +8 -0
  235. package/dist/src/util/exportToFile/writeToFile.d.ts.map +1 -0
  236. package/dist/src/util/exportToFile/writeToFile.js +30 -0
  237. package/dist/src/util/exportToFile/writeToFile.js.map +1 -0
  238. package/dist/src/util/index.d.ts +34 -0
  239. package/dist/src/util/index.d.ts.map +1 -1
  240. package/dist/src/util/index.js +35 -9
  241. package/dist/src/util/index.js.map +1 -1
  242. package/dist/src/validators/providers.d.ts +391 -0
  243. package/dist/src/validators/providers.d.ts.map +1 -1
  244. package/dist/src/validators/providers.js +18 -0
  245. package/dist/src/validators/providers.js.map +1 -1
  246. package/dist/src/validators/redteam.d.ts +136 -0
  247. package/dist/src/validators/redteam.d.ts.map +1 -1
  248. package/dist/test/assertions/bleu.test.d.ts +2 -0
  249. package/dist/test/assertions/bleu.test.d.ts.map +1 -0
  250. package/dist/test/assertions/bleu.test.js +137 -0
  251. package/dist/test/assertions/bleu.test.js.map +1 -0
  252. package/dist/test/assertions/index.test.js +276 -297
  253. package/dist/test/assertions/index.test.js.map +1 -1
  254. package/dist/test/assertions/json.test.d.ts +2 -0
  255. package/dist/test/assertions/json.test.d.ts.map +1 -0
  256. package/dist/test/assertions/json.test.js +36 -0
  257. package/dist/test/assertions/json.test.js.map +1 -0
  258. package/dist/test/assertions/sql.test.d.ts +2 -0
  259. package/dist/test/assertions/sql.test.d.ts.map +1 -0
  260. package/dist/test/{is-sql-tests/node-sql-parser.test.js → assertions/sql.test.js} +13 -13
  261. package/dist/test/assertions/sql.test.js.map +1 -0
  262. package/dist/test/commands/eval/filterTests.test.js +30 -0
  263. package/dist/test/commands/eval/filterTests.test.js.map +1 -1
  264. package/dist/test/evaluator.test.js +14 -6
  265. package/dist/test/evaluator.test.js.map +1 -1
  266. package/dist/test/factories/evalFactory.d.ts +155 -1
  267. package/dist/test/factories/evalFactory.d.ts.map +1 -1
  268. package/dist/test/factories/evalFactory.js +26 -1
  269. package/dist/test/factories/evalFactory.js.map +1 -1
  270. package/dist/test/onboarding.test.js +126 -1
  271. package/dist/test/onboarding.test.js.map +1 -1
  272. package/dist/test/providers/anthropic.test.js +81 -0
  273. package/dist/test/providers/anthropic.test.js.map +1 -1
  274. package/dist/test/providers/azure.test.js +22 -25
  275. package/dist/test/providers/azure.test.js.map +1 -1
  276. package/dist/test/providers/bedrock.test.js +178 -55
  277. package/dist/test/providers/bedrock.test.js.map +1 -1
  278. package/dist/test/providers/http.test.js +1 -0
  279. package/dist/test/providers/http.test.js.map +1 -1
  280. package/dist/test/providers/index.test.js +15 -7
  281. package/dist/test/providers/index.test.js.map +1 -1
  282. package/dist/test/providers/portkey.test.d.ts +2 -0
  283. package/dist/test/providers/portkey.test.d.ts.map +1 -0
  284. package/dist/test/providers/portkey.test.js +46 -0
  285. package/dist/test/providers/portkey.test.js.map +1 -0
  286. package/dist/test/redteam/commands/init.test.d.ts +2 -0
  287. package/dist/test/redteam/commands/init.test.d.ts.map +1 -0
  288. package/dist/test/redteam/commands/init.test.js +109 -0
  289. package/dist/test/redteam/commands/init.test.js.map +1 -0
  290. package/dist/test/redteam/plugins/pluginDocumentation.test.js +4 -1
  291. package/dist/test/redteam/plugins/pluginDocumentation.test.js.map +1 -1
  292. package/dist/test/redteam/providers/goat.test.d.ts +2 -0
  293. package/dist/test/redteam/providers/goat.test.d.ts.map +1 -0
  294. package/dist/test/redteam/providers/goat.test.js +67 -0
  295. package/dist/test/redteam/providers/goat.test.js.map +1 -0
  296. package/dist/test/redteam/providers/iterativeTree.test.js +8 -3
  297. package/dist/test/redteam/providers/iterativeTree.test.js.map +1 -1
  298. package/dist/test/redteam/strategies/goat.test.d.ts +2 -0
  299. package/dist/test/redteam/strategies/goat.test.d.ts.map +1 -0
  300. package/dist/test/redteam/strategies/goat.test.js +47 -0
  301. package/dist/test/redteam/strategies/goat.test.js.map +1 -0
  302. package/dist/test/server/eval.test.d.ts +2 -0
  303. package/dist/test/server/eval.test.d.ts.map +1 -0
  304. package/dist/test/server/eval.test.js +155 -0
  305. package/dist/test/server/eval.test.js.map +1 -0
  306. package/dist/test/util/index.test.js +13 -0
  307. package/dist/test/util/index.test.js.map +1 -1
  308. package/dist/tsconfig.tsbuildinfo +1 -1
  309. package/package.json +25 -23
  310. package/dist/src/app/assets/index-9MDBORmg.js +0 -769
  311. package/dist/src/providers/azureopenai.d.ts.map +0 -1
  312. package/dist/src/providers/azureopenai.js.map +0 -1
  313. package/dist/src/providers/azureopenaiUtil.d.ts.map +0 -1
  314. package/dist/src/providers/azureopenaiUtil.js.map +0 -1
  315. package/dist/test/is-sql-tests/node-sql-parser.test.d.ts +0 -2
  316. package/dist/test/is-sql-tests/node-sql-parser.test.d.ts.map +0 -1
  317. package/dist/test/is-sql-tests/node-sql-parser.test.js.map +0 -1
@@ -27,12 +27,26 @@ export default class EvalFactory {
27
27
  AZURE_OPENAI_API_BASE_URL?: string | undefined;
28
28
  AZURE_OPENAI_API_HOST?: string | undefined;
29
29
  AZURE_OPENAI_API_KEY?: string | undefined;
30
+ AZURE_API_BASE_URL?: string | undefined;
31
+ AZURE_API_HOST?: string | undefined;
32
+ AZURE_API_KEY?: string | undefined;
33
+ AZURE_DEPLOYMENT_NAME?: string | undefined;
34
+ AZURE_EMBEDDING_DEPLOYMENT_NAME?: string | undefined;
30
35
  AZURE_OPENAI_BASE_URL?: string | undefined;
36
+ AZURE_OPENAI_DEPLOYMENT_NAME?: string | undefined;
37
+ AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME?: string | undefined;
38
+ AZURE_CLIENT_SECRET?: string | undefined;
39
+ AZURE_CLIENT_ID?: string | undefined;
40
+ AZURE_TENANT_ID?: string | undefined;
41
+ AZURE_AUTHORITY_HOST?: string | undefined;
42
+ AZURE_TOKEN_SCOPE?: string | undefined;
31
43
  BAM_API_HOST?: string | undefined;
32
44
  BAM_API_KEY?: string | undefined;
33
45
  CLOUDFLARE_ACCOUNT_ID?: string | undefined;
34
46
  CLOUDFLARE_API_KEY?: string | undefined;
47
+ PROMPTFOO_REMOTE_GENERATION_URL?: string | undefined;
35
48
  COHERE_API_KEY?: string | undefined;
49
+ FAL_KEY?: string | undefined;
36
50
  GOOGLE_API_HOST?: string | undefined;
37
51
  GOOGLE_API_KEY?: string | undefined;
38
52
  GROQ_API_KEY?: string | undefined;
@@ -54,6 +68,9 @@ export default class EvalFactory {
54
68
  VERTEX_PROJECT_ID?: string | undefined;
55
69
  VERTEX_PUBLISHER?: string | undefined;
56
70
  VERTEX_REGION?: string | undefined;
71
+ WATSONX_AI_APIKEY?: string | undefined;
72
+ WATSONX_AI_PROJECT_ID?: string | undefined;
73
+ WATSONX_AI_BEARER_TOKEN?: string | undefined;
57
74
  } | undefined;
58
75
  metadata?: Record<string, any> | undefined;
59
76
  description?: string | undefined;
@@ -94,12 +111,26 @@ export default class EvalFactory {
94
111
  AZURE_OPENAI_API_BASE_URL?: string | undefined;
95
112
  AZURE_OPENAI_API_HOST?: string | undefined;
96
113
  AZURE_OPENAI_API_KEY?: string | undefined;
114
+ AZURE_API_BASE_URL?: string | undefined;
115
+ AZURE_API_HOST?: string | undefined;
116
+ AZURE_API_KEY?: string | undefined;
117
+ AZURE_DEPLOYMENT_NAME?: string | undefined;
118
+ AZURE_EMBEDDING_DEPLOYMENT_NAME?: string | undefined;
97
119
  AZURE_OPENAI_BASE_URL?: string | undefined;
120
+ AZURE_OPENAI_DEPLOYMENT_NAME?: string | undefined;
121
+ AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME?: string | undefined;
122
+ AZURE_CLIENT_SECRET?: string | undefined;
123
+ AZURE_CLIENT_ID?: string | undefined;
124
+ AZURE_TENANT_ID?: string | undefined;
125
+ AZURE_AUTHORITY_HOST?: string | undefined;
126
+ AZURE_TOKEN_SCOPE?: string | undefined;
98
127
  BAM_API_HOST?: string | undefined;
99
128
  BAM_API_KEY?: string | undefined;
100
129
  CLOUDFLARE_ACCOUNT_ID?: string | undefined;
101
130
  CLOUDFLARE_API_KEY?: string | undefined;
131
+ PROMPTFOO_REMOTE_GENERATION_URL?: string | undefined;
102
132
  COHERE_API_KEY?: string | undefined;
133
+ FAL_KEY?: string | undefined;
103
134
  GOOGLE_API_HOST?: string | undefined;
104
135
  GOOGLE_API_KEY?: string | undefined;
105
136
  GROQ_API_KEY?: string | undefined;
@@ -121,6 +152,9 @@ export default class EvalFactory {
121
152
  VERTEX_PROJECT_ID?: string | undefined;
122
153
  VERTEX_PUBLISHER?: string | undefined;
123
154
  VERTEX_REGION?: string | undefined;
155
+ WATSONX_AI_APIKEY?: string | undefined;
156
+ WATSONX_AI_PROJECT_ID?: string | undefined;
157
+ WATSONX_AI_BEARER_TOKEN?: string | undefined;
124
158
  } | undefined;
125
159
  } | (((args_0: string, args_1: {
126
160
  vars: Record<string, string | {}>;
@@ -159,12 +193,26 @@ export default class EvalFactory {
159
193
  AZURE_OPENAI_API_BASE_URL?: string | undefined;
160
194
  AZURE_OPENAI_API_HOST?: string | undefined;
161
195
  AZURE_OPENAI_API_KEY?: string | undefined;
196
+ AZURE_API_BASE_URL?: string | undefined;
197
+ AZURE_API_HOST?: string | undefined;
198
+ AZURE_API_KEY?: string | undefined;
199
+ AZURE_DEPLOYMENT_NAME?: string | undefined;
200
+ AZURE_EMBEDDING_DEPLOYMENT_NAME?: string | undefined;
162
201
  AZURE_OPENAI_BASE_URL?: string | undefined;
202
+ AZURE_OPENAI_DEPLOYMENT_NAME?: string | undefined;
203
+ AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME?: string | undefined;
204
+ AZURE_CLIENT_SECRET?: string | undefined;
205
+ AZURE_CLIENT_ID?: string | undefined;
206
+ AZURE_TENANT_ID?: string | undefined;
207
+ AZURE_AUTHORITY_HOST?: string | undefined;
208
+ AZURE_TOKEN_SCOPE?: string | undefined;
163
209
  BAM_API_HOST?: string | undefined;
164
210
  BAM_API_KEY?: string | undefined;
165
211
  CLOUDFLARE_ACCOUNT_ID?: string | undefined;
166
212
  CLOUDFLARE_API_KEY?: string | undefined;
213
+ PROMPTFOO_REMOTE_GENERATION_URL?: string | undefined;
167
214
  COHERE_API_KEY?: string | undefined;
215
+ FAL_KEY?: string | undefined;
168
216
  GOOGLE_API_HOST?: string | undefined;
169
217
  GOOGLE_API_KEY?: string | undefined;
170
218
  GROQ_API_KEY?: string | undefined;
@@ -186,6 +234,9 @@ export default class EvalFactory {
186
234
  VERTEX_PROJECT_ID?: string | undefined;
187
235
  VERTEX_PUBLISHER?: string | undefined;
188
236
  VERTEX_REGION?: string | undefined;
237
+ WATSONX_AI_APIKEY?: string | undefined;
238
+ WATSONX_AI_PROJECT_ID?: string | undefined;
239
+ WATSONX_AI_BEARER_TOKEN?: string | undefined;
189
240
  } | undefined;
190
241
  }>)[] | undefined;
191
242
  tests?: string | (string | {
@@ -231,12 +282,26 @@ export default class EvalFactory {
231
282
  AZURE_OPENAI_API_BASE_URL?: string | undefined;
232
283
  AZURE_OPENAI_API_HOST?: string | undefined;
233
284
  AZURE_OPENAI_API_KEY?: string | undefined;
285
+ AZURE_API_BASE_URL?: string | undefined;
286
+ AZURE_API_HOST?: string | undefined;
287
+ AZURE_API_KEY?: string | undefined;
288
+ AZURE_DEPLOYMENT_NAME?: string | undefined;
289
+ AZURE_EMBEDDING_DEPLOYMENT_NAME?: string | undefined;
234
290
  AZURE_OPENAI_BASE_URL?: string | undefined;
291
+ AZURE_OPENAI_DEPLOYMENT_NAME?: string | undefined;
292
+ AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME?: string | undefined;
293
+ AZURE_CLIENT_SECRET?: string | undefined;
294
+ AZURE_CLIENT_ID?: string | undefined;
295
+ AZURE_TENANT_ID?: string | undefined;
296
+ AZURE_AUTHORITY_HOST?: string | undefined;
297
+ AZURE_TOKEN_SCOPE?: string | undefined;
235
298
  BAM_API_HOST?: string | undefined;
236
299
  BAM_API_KEY?: string | undefined;
237
300
  CLOUDFLARE_ACCOUNT_ID?: string | undefined;
238
301
  CLOUDFLARE_API_KEY?: string | undefined;
302
+ PROMPTFOO_REMOTE_GENERATION_URL?: string | undefined;
239
303
  COHERE_API_KEY?: string | undefined;
304
+ FAL_KEY?: string | undefined;
240
305
  GOOGLE_API_HOST?: string | undefined;
241
306
  GOOGLE_API_KEY?: string | undefined;
242
307
  GROQ_API_KEY?: string | undefined;
@@ -258,6 +323,9 @@ export default class EvalFactory {
258
323
  VERTEX_PROJECT_ID?: string | undefined;
259
324
  VERTEX_PUBLISHER?: string | undefined;
260
325
  VERTEX_REGION?: string | undefined;
326
+ WATSONX_AI_APIKEY?: string | undefined;
327
+ WATSONX_AI_PROJECT_ID?: string | undefined;
328
+ WATSONX_AI_BEARER_TOKEN?: string | undefined;
261
329
  } | undefined;
262
330
  } | {
263
331
  callApi: import("../../src").CallApiFunction;
@@ -353,12 +421,26 @@ export default class EvalFactory {
353
421
  AZURE_OPENAI_API_BASE_URL?: string | undefined;
354
422
  AZURE_OPENAI_API_HOST?: string | undefined;
355
423
  AZURE_OPENAI_API_KEY?: string | undefined;
424
+ AZURE_API_BASE_URL?: string | undefined;
425
+ AZURE_API_HOST?: string | undefined;
426
+ AZURE_API_KEY?: string | undefined;
427
+ AZURE_DEPLOYMENT_NAME?: string | undefined;
428
+ AZURE_EMBEDDING_DEPLOYMENT_NAME?: string | undefined;
356
429
  AZURE_OPENAI_BASE_URL?: string | undefined;
430
+ AZURE_OPENAI_DEPLOYMENT_NAME?: string | undefined;
431
+ AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME?: string | undefined;
432
+ AZURE_CLIENT_SECRET?: string | undefined;
433
+ AZURE_CLIENT_ID?: string | undefined;
434
+ AZURE_TENANT_ID?: string | undefined;
435
+ AZURE_AUTHORITY_HOST?: string | undefined;
436
+ AZURE_TOKEN_SCOPE?: string | undefined;
357
437
  BAM_API_HOST?: string | undefined;
358
438
  BAM_API_KEY?: string | undefined;
359
439
  CLOUDFLARE_ACCOUNT_ID?: string | undefined;
360
440
  CLOUDFLARE_API_KEY?: string | undefined;
441
+ PROMPTFOO_REMOTE_GENERATION_URL?: string | undefined;
361
442
  COHERE_API_KEY?: string | undefined;
443
+ FAL_KEY?: string | undefined;
362
444
  GOOGLE_API_HOST?: string | undefined;
363
445
  GOOGLE_API_KEY?: string | undefined;
364
446
  GROQ_API_KEY?: string | undefined;
@@ -380,6 +462,9 @@ export default class EvalFactory {
380
462
  VERTEX_PROJECT_ID?: string | undefined;
381
463
  VERTEX_PUBLISHER?: string | undefined;
382
464
  VERTEX_REGION?: string | undefined;
465
+ WATSONX_AI_APIKEY?: string | undefined;
466
+ WATSONX_AI_PROJECT_ID?: string | undefined;
467
+ WATSONX_AI_BEARER_TOKEN?: string | undefined;
383
468
  } | undefined;
384
469
  } | {
385
470
  callApi: import("../../src").CallApiFunction;
@@ -472,12 +557,26 @@ export default class EvalFactory {
472
557
  AZURE_OPENAI_API_BASE_URL?: string | undefined;
473
558
  AZURE_OPENAI_API_HOST?: string | undefined;
474
559
  AZURE_OPENAI_API_KEY?: string | undefined;
560
+ AZURE_API_BASE_URL?: string | undefined;
561
+ AZURE_API_HOST?: string | undefined;
562
+ AZURE_API_KEY?: string | undefined;
563
+ AZURE_DEPLOYMENT_NAME?: string | undefined;
564
+ AZURE_EMBEDDING_DEPLOYMENT_NAME?: string | undefined;
475
565
  AZURE_OPENAI_BASE_URL?: string | undefined;
566
+ AZURE_OPENAI_DEPLOYMENT_NAME?: string | undefined;
567
+ AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME?: string | undefined;
568
+ AZURE_CLIENT_SECRET?: string | undefined;
569
+ AZURE_CLIENT_ID?: string | undefined;
570
+ AZURE_TENANT_ID?: string | undefined;
571
+ AZURE_AUTHORITY_HOST?: string | undefined;
572
+ AZURE_TOKEN_SCOPE?: string | undefined;
476
573
  BAM_API_HOST?: string | undefined;
477
574
  BAM_API_KEY?: string | undefined;
478
575
  CLOUDFLARE_ACCOUNT_ID?: string | undefined;
479
576
  CLOUDFLARE_API_KEY?: string | undefined;
577
+ PROMPTFOO_REMOTE_GENERATION_URL?: string | undefined;
480
578
  COHERE_API_KEY?: string | undefined;
579
+ FAL_KEY?: string | undefined;
481
580
  GOOGLE_API_HOST?: string | undefined;
482
581
  GOOGLE_API_KEY?: string | undefined;
483
582
  GROQ_API_KEY?: string | undefined;
@@ -499,6 +598,9 @@ export default class EvalFactory {
499
598
  VERTEX_PROJECT_ID?: string | undefined;
500
599
  VERTEX_PUBLISHER?: string | undefined;
501
600
  VERTEX_REGION?: string | undefined;
601
+ WATSONX_AI_APIKEY?: string | undefined;
602
+ WATSONX_AI_PROJECT_ID?: string | undefined;
603
+ WATSONX_AI_BEARER_TOKEN?: string | undefined;
502
604
  } | undefined;
503
605
  } | {
504
606
  callApi: import("../../src").CallApiFunction;
@@ -593,12 +695,26 @@ export default class EvalFactory {
593
695
  AZURE_OPENAI_API_BASE_URL?: string | undefined;
594
696
  AZURE_OPENAI_API_HOST?: string | undefined;
595
697
  AZURE_OPENAI_API_KEY?: string | undefined;
698
+ AZURE_API_BASE_URL?: string | undefined;
699
+ AZURE_API_HOST?: string | undefined;
700
+ AZURE_API_KEY?: string | undefined;
701
+ AZURE_DEPLOYMENT_NAME?: string | undefined;
702
+ AZURE_EMBEDDING_DEPLOYMENT_NAME?: string | undefined;
596
703
  AZURE_OPENAI_BASE_URL?: string | undefined;
704
+ AZURE_OPENAI_DEPLOYMENT_NAME?: string | undefined;
705
+ AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME?: string | undefined;
706
+ AZURE_CLIENT_SECRET?: string | undefined;
707
+ AZURE_CLIENT_ID?: string | undefined;
708
+ AZURE_TENANT_ID?: string | undefined;
709
+ AZURE_AUTHORITY_HOST?: string | undefined;
710
+ AZURE_TOKEN_SCOPE?: string | undefined;
597
711
  BAM_API_HOST?: string | undefined;
598
712
  BAM_API_KEY?: string | undefined;
599
713
  CLOUDFLARE_ACCOUNT_ID?: string | undefined;
600
714
  CLOUDFLARE_API_KEY?: string | undefined;
715
+ PROMPTFOO_REMOTE_GENERATION_URL?: string | undefined;
601
716
  COHERE_API_KEY?: string | undefined;
717
+ FAL_KEY?: string | undefined;
602
718
  GOOGLE_API_HOST?: string | undefined;
603
719
  GOOGLE_API_KEY?: string | undefined;
604
720
  GROQ_API_KEY?: string | undefined;
@@ -620,6 +736,9 @@ export default class EvalFactory {
620
736
  VERTEX_PROJECT_ID?: string | undefined;
621
737
  VERTEX_PUBLISHER?: string | undefined;
622
738
  VERTEX_REGION?: string | undefined;
739
+ WATSONX_AI_APIKEY?: string | undefined;
740
+ WATSONX_AI_PROJECT_ID?: string | undefined;
741
+ WATSONX_AI_BEARER_TOKEN?: string | undefined;
623
742
  } | undefined;
624
743
  } | {
625
744
  callApi: import("../../src").CallApiFunction;
@@ -697,6 +816,7 @@ export default class EvalFactory {
697
816
  maxConcurrency?: number | undefined;
698
817
  output?: string[] | undefined;
699
818
  write?: boolean | undefined;
819
+ verbose?: boolean | undefined;
700
820
  vars?: string | undefined;
701
821
  prompts?: string[] | undefined;
702
822
  delay?: number | undefined;
@@ -706,7 +826,6 @@ export default class EvalFactory {
706
826
  tests?: string | undefined;
707
827
  assertions?: string | undefined;
708
828
  modelOutputs?: string | undefined;
709
- verbose?: boolean | undefined;
710
829
  grader?: string | undefined;
711
830
  tableCellMaxLength?: number | undefined;
712
831
  table?: boolean | undefined;
@@ -715,6 +834,7 @@ export default class EvalFactory {
715
834
  watch?: boolean | undefined;
716
835
  filterFailing?: string | undefined;
717
836
  filterFirstN?: number | undefined;
837
+ filterSample?: number | undefined;
718
838
  filterPattern?: string | undefined;
719
839
  filterProviders?: string | undefined;
720
840
  filterTargets?: string | undefined;
@@ -761,12 +881,26 @@ export default class EvalFactory {
761
881
  AZURE_OPENAI_API_BASE_URL?: string | undefined;
762
882
  AZURE_OPENAI_API_HOST?: string | undefined;
763
883
  AZURE_OPENAI_API_KEY?: string | undefined;
884
+ AZURE_API_BASE_URL?: string | undefined;
885
+ AZURE_API_HOST?: string | undefined;
886
+ AZURE_API_KEY?: string | undefined;
887
+ AZURE_DEPLOYMENT_NAME?: string | undefined;
888
+ AZURE_EMBEDDING_DEPLOYMENT_NAME?: string | undefined;
764
889
  AZURE_OPENAI_BASE_URL?: string | undefined;
890
+ AZURE_OPENAI_DEPLOYMENT_NAME?: string | undefined;
891
+ AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME?: string | undefined;
892
+ AZURE_CLIENT_SECRET?: string | undefined;
893
+ AZURE_CLIENT_ID?: string | undefined;
894
+ AZURE_TENANT_ID?: string | undefined;
895
+ AZURE_AUTHORITY_HOST?: string | undefined;
896
+ AZURE_TOKEN_SCOPE?: string | undefined;
765
897
  BAM_API_HOST?: string | undefined;
766
898
  BAM_API_KEY?: string | undefined;
767
899
  CLOUDFLARE_ACCOUNT_ID?: string | undefined;
768
900
  CLOUDFLARE_API_KEY?: string | undefined;
901
+ PROMPTFOO_REMOTE_GENERATION_URL?: string | undefined;
769
902
  COHERE_API_KEY?: string | undefined;
903
+ FAL_KEY?: string | undefined;
770
904
  GOOGLE_API_HOST?: string | undefined;
771
905
  GOOGLE_API_KEY?: string | undefined;
772
906
  GROQ_API_KEY?: string | undefined;
@@ -788,6 +922,9 @@ export default class EvalFactory {
788
922
  VERTEX_PROJECT_ID?: string | undefined;
789
923
  VERTEX_PUBLISHER?: string | undefined;
790
924
  VERTEX_REGION?: string | undefined;
925
+ WATSONX_AI_APIKEY?: string | undefined;
926
+ WATSONX_AI_PROJECT_ID?: string | undefined;
927
+ WATSONX_AI_BEARER_TOKEN?: string | undefined;
791
928
  } | undefined;
792
929
  } | (((args_0: string, args_1: {
793
930
  vars: Record<string, string | {}>;
@@ -826,12 +963,26 @@ export default class EvalFactory {
826
963
  AZURE_OPENAI_API_BASE_URL?: string | undefined;
827
964
  AZURE_OPENAI_API_HOST?: string | undefined;
828
965
  AZURE_OPENAI_API_KEY?: string | undefined;
966
+ AZURE_API_BASE_URL?: string | undefined;
967
+ AZURE_API_HOST?: string | undefined;
968
+ AZURE_API_KEY?: string | undefined;
969
+ AZURE_DEPLOYMENT_NAME?: string | undefined;
970
+ AZURE_EMBEDDING_DEPLOYMENT_NAME?: string | undefined;
829
971
  AZURE_OPENAI_BASE_URL?: string | undefined;
972
+ AZURE_OPENAI_DEPLOYMENT_NAME?: string | undefined;
973
+ AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME?: string | undefined;
974
+ AZURE_CLIENT_SECRET?: string | undefined;
975
+ AZURE_CLIENT_ID?: string | undefined;
976
+ AZURE_TENANT_ID?: string | undefined;
977
+ AZURE_AUTHORITY_HOST?: string | undefined;
978
+ AZURE_TOKEN_SCOPE?: string | undefined;
830
979
  BAM_API_HOST?: string | undefined;
831
980
  BAM_API_KEY?: string | undefined;
832
981
  CLOUDFLARE_ACCOUNT_ID?: string | undefined;
833
982
  CLOUDFLARE_API_KEY?: string | undefined;
983
+ PROMPTFOO_REMOTE_GENERATION_URL?: string | undefined;
834
984
  COHERE_API_KEY?: string | undefined;
985
+ FAL_KEY?: string | undefined;
835
986
  GOOGLE_API_HOST?: string | undefined;
836
987
  GOOGLE_API_KEY?: string | undefined;
837
988
  GROQ_API_KEY?: string | undefined;
@@ -853,6 +1004,9 @@ export default class EvalFactory {
853
1004
  VERTEX_PROJECT_ID?: string | undefined;
854
1005
  VERTEX_PUBLISHER?: string | undefined;
855
1006
  VERTEX_REGION?: string | undefined;
1007
+ WATSONX_AI_APIKEY?: string | undefined;
1008
+ WATSONX_AI_PROJECT_ID?: string | undefined;
1009
+ WATSONX_AI_BEARER_TOKEN?: string | undefined;
856
1010
  } | undefined;
857
1011
  }>)[] | undefined;
858
1012
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"evalFactory.d.ts","sourceRoot":"","sources":["../../../test/factories/evalFactory.ts"],"names":[],"mappings":"AAGA,OAAO,IAAI,MAAM,uBAAuB,CAAC;AAGzC,MAAM,CAAC,OAAO,OAAO,WAAW;WACjB,MAAM;WAuHN,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI7B"}
1
+ {"version":3,"file":"evalFactory.d.ts","sourceRoot":"","sources":["../../../test/factories/evalFactory.ts"],"names":[],"mappings":"AAGA,OAAO,IAAI,MAAM,uBAAuB,CAAC;AAGzC,MAAM,CAAC,OAAO,OAAO,WAAW;WACjB,MAAM;WAgJN,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAI7B"}
@@ -21,6 +21,31 @@ class EvalFactory {
21
21
  { raw: 'What is the capital of california?', label: 'What is the capital of {{state}}?' },
22
22
  { raw: 'What is the capital of colorado?', label: 'What is the capital of {{state}}?' },
23
23
  ], { id: (0, crypto_1.randomUUID)() });
24
+ await eval_.addPrompts([
25
+ {
26
+ raw: 'What is the capital of california?',
27
+ label: 'What is the capital of {{state}}?',
28
+ provider: 'test-provider',
29
+ metrics: {
30
+ score: 1,
31
+ testPassCount: 1,
32
+ testFailCount: 1,
33
+ assertPassCount: 1,
34
+ assertFailCount: 1,
35
+ totalLatencyMs: 200,
36
+ tokenUsage: { total: 20, prompt: 10, completion: 10, cached: 0 },
37
+ namedScores: {},
38
+ namedScoresCount: {},
39
+ redteam: {
40
+ pluginPassCount: {},
41
+ pluginFailCount: {},
42
+ strategyPassCount: {},
43
+ strategyFailCount: {},
44
+ },
45
+ cost: 0.007,
46
+ },
47
+ },
48
+ ]);
24
49
  await eval_.addResult({
25
50
  description: 'test-description',
26
51
  promptIdx: 0,
@@ -84,7 +109,7 @@ class EvalFactory {
84
109
  tokenUsage: { total: 10, prompt: 5, completion: 5, cached: 0 },
85
110
  },
86
111
  error: null,
87
- success: true,
112
+ success: false,
88
113
  score: 0,
89
114
  latencyMs: 100,
90
115
  gradingResult: {
@@ -1 +1 @@
1
- {"version":3,"file":"evalFactory.js","sourceRoot":"","sources":["../../../test/factories/evalFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evalFactory.js","sourceRoot":"","sources":["../../../test/factories/evalFactory.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,54 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const fs_1 = __importDefault(require("fs"));
7
+ const promises_1 = require("fs/promises");
8
+ const js_yaml_1 = __importDefault(require("js-yaml"));
9
+ const path_1 = __importDefault(require("path"));
3
10
  const onboarding_1 = require("../src/onboarding");
11
+ const onboarding_2 = require("../src/onboarding");
12
+ const types_1 = require("../src/types");
13
+ jest.mock('fs', () => ({
14
+ existsSync: jest.fn(),
15
+ writeFileSync: jest.fn(),
16
+ mkdirSync: jest.fn(),
17
+ }));
18
+ jest.mock('fs/promises', () => ({
19
+ mkdtemp: jest.fn(),
20
+ rm: jest.fn(),
21
+ }));
22
+ jest.mock('@inquirer/select', () => ({
23
+ __esModule: true,
24
+ default: jest.fn(),
25
+ }));
26
+ jest.mock('@inquirer/checkbox', () => ({
27
+ __esModule: true,
28
+ default: jest.fn(),
29
+ }));
30
+ jest.mock('@inquirer/confirm', () => ({
31
+ __esModule: true,
32
+ default: jest.fn(),
33
+ }));
34
+ jest.mock('../src/telemetry', () => ({
35
+ recordAndSend: jest.fn(),
36
+ }));
37
+ jest.mock('../src/fetch', () => ({
38
+ fetch: jest.fn(),
39
+ }));
40
+ jest.mock('../src/logger', () => ({
41
+ info: jest.fn(),
42
+ warn: jest.fn(),
43
+ error: jest.fn(),
44
+ }));
45
+ jest.mock('../src/redteam/commands/init', () => ({
46
+ redteamInit: jest.fn(),
47
+ }));
48
+ jest.mock('../src/envars', () => ({
49
+ getEnvString: jest.fn(),
50
+ getEnvBool: jest.fn(() => false),
51
+ }));
4
52
  describe('reportProviderAPIKeyWarnings', () => {
5
53
  const openaiID = 'openai:gpt-4o';
6
54
  const anthropicID = 'anthropic:messages:claude-3-5-sonnet-20241022';
@@ -38,11 +86,88 @@ describe('reportProviderAPIKeyWarnings', () => {
38
86
  ]));
39
87
  });
40
88
  it('should produce only warnings for applicable providers if the env keys are not set', () => {
41
- // Stub what would be the openai api key env variable.
42
89
  process.env.OPENAI_API_KEY = '<my-api-key>';
43
90
  expect((0, onboarding_1.reportProviderAPIKeyWarnings)([openaiID, anthropicID])).toEqual(expect.arrayContaining([
44
91
  expect.stringContaining('ANTHROPIC_API_KEY environment variable is not set'),
45
92
  ]));
46
93
  });
47
94
  });
95
+ describe('createDummyFiles', () => {
96
+ let tempDir;
97
+ const mockSelect = jest.requireMock('@inquirer/select').default;
98
+ const mockCheckbox = jest.requireMock('@inquirer/checkbox').default;
99
+ const mockConfirm = jest.requireMock('@inquirer/confirm').default;
100
+ const mockFs = jest.mocked(fs_1.default);
101
+ beforeEach(() => {
102
+ tempDir = '/fake/temp/dir';
103
+ jest.clearAllMocks();
104
+ mockConfirm.mockResolvedValue(true);
105
+ mockFs.existsSync.mockReturnValue(false);
106
+ mockFs.writeFileSync.mockImplementation(() => undefined);
107
+ });
108
+ afterEach(async () => {
109
+ await (0, promises_1.rm)(tempDir, { recursive: true, force: true });
110
+ });
111
+ it('should generate a valid YAML configuration file that matches TestSuiteConfigSchema', async () => {
112
+ await (0, onboarding_2.createDummyFiles)(tempDir, false);
113
+ expect(mockFs.writeFileSync).toHaveBeenCalledWith(path_1.default.join(tempDir, 'promptfooconfig.yaml'), expect.any(String));
114
+ expect(mockFs.writeFileSync).toHaveBeenCalledWith(path_1.default.join(tempDir, 'README.md'), expect.any(String));
115
+ const configCall = mockFs.writeFileSync.mock.calls.find((call) => call[0] === path_1.default.join(tempDir, 'promptfooconfig.yaml'));
116
+ const configContent = configCall?.[1];
117
+ expect(configContent).toBeDefined();
118
+ const parsedConfig = js_yaml_1.default.load(configContent);
119
+ const validationResult = types_1.TestSuiteConfigSchema.safeParse(parsedConfig);
120
+ expect(validationResult.success).toBe(true);
121
+ if (!validationResult.success) {
122
+ throw new Error('Validation failed');
123
+ }
124
+ const config = validationResult.data;
125
+ expect(config.prompts).toHaveLength(2);
126
+ expect(config.providers).toHaveLength(2);
127
+ expect(config.providers).toContain('openai:gpt-4o-mini');
128
+ expect(config.providers).toContain('openai:gpt-4o');
129
+ });
130
+ it('should generate valid YAML configuration for RAG setup', async () => {
131
+ mockSelect.mockResolvedValueOnce('rag').mockResolvedValueOnce('python');
132
+ mockCheckbox.mockResolvedValueOnce(['openai:gpt-4o']);
133
+ await (0, onboarding_2.createDummyFiles)(tempDir, true);
134
+ expect(mockFs.writeFileSync).toHaveBeenCalledWith(path_1.default.join(tempDir, 'promptfooconfig.yaml'), expect.any(String));
135
+ expect(mockFs.writeFileSync).toHaveBeenCalledWith(path_1.default.join(tempDir, 'context.py'), expect.any(String));
136
+ const configCall = mockFs.writeFileSync.mock.calls.find((call) => call[0] === path_1.default.join(tempDir, 'promptfooconfig.yaml'));
137
+ const configContent = configCall?.[1];
138
+ expect(configContent).toBeDefined();
139
+ const parsedConfig = js_yaml_1.default.load(configContent);
140
+ const validationResult = types_1.TestSuiteConfigSchema.safeParse(parsedConfig);
141
+ expect(validationResult.success).toBe(true);
142
+ if (!validationResult.success) {
143
+ throw new Error('Validation failed');
144
+ }
145
+ const config = validationResult.data;
146
+ expect(config.tests).toBeDefined();
147
+ expect(Array.isArray(config.tests)).toBe(true);
148
+ expect(config.tests?.length).toBeGreaterThan(0);
149
+ const firstTest = config.tests?.[0];
150
+ expect(firstTest).toBeTruthy();
151
+ expect(typeof firstTest).toBe('object');
152
+ expect(firstTest).toHaveProperty('vars');
153
+ const vars = firstTest.vars;
154
+ expect(typeof vars).toBe('object');
155
+ expect(vars).toHaveProperty('inquiry');
156
+ expect(vars).toHaveProperty('context');
157
+ expect(mockSelect).toHaveBeenCalledTimes(2);
158
+ expect(mockCheckbox).toHaveBeenCalledTimes(1);
159
+ expect(mockConfirm).toHaveBeenCalledTimes(0);
160
+ });
161
+ it('should prompt for confirmation when files exist', async () => {
162
+ mockFs.existsSync.mockImplementation((path) => path.toString().includes('promptfooconfig.yaml'));
163
+ mockConfirm.mockResolvedValueOnce(true);
164
+ mockSelect.mockResolvedValueOnce('compare');
165
+ mockCheckbox.mockResolvedValueOnce(['openai:gpt-4o']);
166
+ await (0, onboarding_2.createDummyFiles)(tempDir, true);
167
+ expect(mockConfirm).toHaveBeenCalledTimes(1);
168
+ expect(mockConfirm).toHaveBeenCalledWith(expect.objectContaining({
169
+ message: expect.stringContaining('already exist'),
170
+ }));
171
+ });
172
+ });
48
173
  //# sourceMappingURL=onboarding.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"onboarding.test.js","sourceRoot":"","sources":["../../test/onboarding.test.ts"],"names":[],"mappings":";;AAAA,kDAAiE;AAEjE,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,MAAM,QAAQ,GAAG,eAAe,CAAC;IACjC,MAAM,WAAW,GAAG,+CAA+C,CAAC;IACpE,IAAI,MAAM,GAAQ,EAAE,CAAC;IACrB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IACH,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,EAAE,CAAC;IACrC,CAAC,CAAC,CAAC;IACH,QAAQ,CAAC,GAAG,EAAE;QACZ,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,CAAC,IAAA,yCAA4B,EAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CACtD,MAAM,CAAC,eAAe,CAAC;YACrB,MAAM,CAAC,gBAAgB,CAAC,gDAAgD,CAAC;SAC1E,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,CAAC,IAAA,yCAA4B,EAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CACzD,MAAM,CAAC,eAAe,CAAC;YACrB,MAAM,CAAC,gBAAgB,CAAC,mDAAmD,CAAC;SAC7E,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,mFAAmF,EAAE,GAAG,EAAE;QAC3F,MAAM,CAAC,IAAA,yCAA4B,EAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CACnE,MAAM,CAAC,eAAe,CAAC;YACrB,MAAM,CAAC,gBAAgB,CAAC,gDAAgD,CAAC;YACzE,MAAM,CAAC,gBAAgB,CAAC,mDAAmD,CAAC;SAC7E,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,6EAA6E,EAAE,GAAG,EAAE;QACrF,MAAM,CAAC,IAAA,yCAA4B,EAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAC3E,MAAM,CAAC,eAAe,CAAC;YACrB,MAAM,CAAC,gBAAgB,CAAC,gDAAgD,CAAC;YACzE,MAAM,CAAC,gBAAgB,CAAC,mDAAmD,CAAC;SAC7E,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,mFAAmF,EAAE,GAAG,EAAE;QAC3F,sDAAsD;QACtD,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,cAAc,CAAC;QAC5C,MAAM,CAAC,IAAA,yCAA4B,EAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CACnE,MAAM,CAAC,eAAe,CAAC;YACrB,MAAM,CAAC,gBAAgB,CAAC,mDAAmD,CAAC;SAC7E,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"onboarding.test.js","sourceRoot":"","sources":["../../test/onboarding.test.ts"],"names":[],"mappings":"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"}