promptfoo 0.68.3 → 0.69.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (285) hide show
  1. package/dist/drizzle/0002_tidy_juggernaut.sql +1 -0
  2. package/dist/drizzle/meta/0002_snapshot.json +244 -0
  3. package/dist/drizzle/meta/_journal.json +7 -0
  4. package/dist/package.json +18 -17
  5. package/dist/src/__mocks__/database.d.ts +0 -1
  6. package/dist/src/__mocks__/database.d.ts.map +1 -1
  7. package/dist/src/__mocks__/esm.js +2 -3
  8. package/dist/src/__mocks__/esm.js.map +1 -1
  9. package/dist/src/accounts.d.ts +2 -1
  10. package/dist/src/accounts.d.ts.map +1 -1
  11. package/dist/src/accounts.js +7 -4
  12. package/dist/src/accounts.js.map +1 -1
  13. package/dist/src/assertions/AssertionsResult.js +3 -3
  14. package/dist/src/assertions/AssertionsResult.js.map +1 -1
  15. package/dist/src/assertions/validateAssertions.js +2 -2
  16. package/dist/src/assertions/validateAssertions.js.map +1 -1
  17. package/dist/src/assertions.js +6 -6
  18. package/dist/src/assertions.js.map +1 -1
  19. package/dist/src/cache.d.ts.map +1 -1
  20. package/dist/src/cache.js +6 -7
  21. package/dist/src/cache.js.map +1 -1
  22. package/dist/src/commands/config.js +1 -2
  23. package/dist/src/commands/config.js.map +1 -1
  24. package/dist/src/commands/delete.js +1 -2
  25. package/dist/src/commands/delete.js.map +1 -1
  26. package/dist/src/commands/eval/filterFailingTests.js +1 -2
  27. package/dist/src/commands/eval/filterFailingTests.js.map +1 -1
  28. package/dist/src/commands/eval/filterProviders.d.ts +3 -0
  29. package/dist/src/commands/eval/filterProviders.d.ts.map +1 -0
  30. package/dist/src/commands/eval/filterProviders.js +15 -0
  31. package/dist/src/commands/eval/filterProviders.js.map +1 -0
  32. package/dist/src/commands/eval/filterTests.js +1 -2
  33. package/dist/src/commands/eval/filterTests.js.map +1 -1
  34. package/dist/src/commands/export.js +1 -2
  35. package/dist/src/commands/export.js.map +1 -1
  36. package/dist/src/commands/import.d.ts.map +1 -1
  37. package/dist/src/commands/import.js +2 -2
  38. package/dist/src/commands/import.js.map +1 -1
  39. package/dist/src/commands/list.js +1 -2
  40. package/dist/src/commands/list.js.map +1 -1
  41. package/dist/src/commands/show.js +3 -4
  42. package/dist/src/commands/show.js.map +1 -1
  43. package/dist/src/csv.js +2 -3
  44. package/dist/src/csv.js.map +1 -1
  45. package/dist/src/database.d.ts +12 -0
  46. package/dist/src/database.d.ts.map +1 -1
  47. package/dist/src/database.js +5 -4
  48. package/dist/src/database.js.map +1 -1
  49. package/dist/src/esm.js +2 -3
  50. package/dist/src/esm.js.map +1 -1
  51. package/dist/src/evaluator.d.ts.map +1 -1
  52. package/dist/src/evaluator.js +30 -17
  53. package/dist/src/evaluator.js.map +1 -1
  54. package/dist/src/feedback.js +2 -3
  55. package/dist/src/feedback.js.map +1 -1
  56. package/dist/src/fetch.d.ts +2 -3
  57. package/dist/src/fetch.d.ts.map +1 -1
  58. package/dist/src/fetch.js +7 -6
  59. package/dist/src/fetch.js.map +1 -1
  60. package/dist/src/globalConfig.js +5 -6
  61. package/dist/src/globalConfig.js.map +1 -1
  62. package/dist/src/googleSheets.js +4 -5
  63. package/dist/src/googleSheets.js.map +1 -1
  64. package/dist/src/index.js +2 -2
  65. package/dist/src/index.js.map +1 -1
  66. package/dist/src/integrations/langfuse.js +1 -2
  67. package/dist/src/integrations/langfuse.js.map +1 -1
  68. package/dist/src/integrations/portkey.js +1 -2
  69. package/dist/src/integrations/portkey.js.map +1 -1
  70. package/dist/src/logger.js +3 -3
  71. package/dist/src/logger.js.map +1 -1
  72. package/dist/src/main.js +23 -1
  73. package/dist/src/main.js.map +1 -1
  74. package/dist/src/matchers.d.ts.map +1 -1
  75. package/dist/src/matchers.js +16 -15
  76. package/dist/src/matchers.js.map +1 -1
  77. package/dist/src/migrate.js +1 -2
  78. package/dist/src/migrate.js.map +1 -1
  79. package/dist/src/onboarding.js +2 -2
  80. package/dist/src/onboarding.js.map +1 -1
  81. package/dist/src/prompts/grading.d.ts +1 -0
  82. package/dist/src/prompts/grading.d.ts.map +1 -1
  83. package/dist/src/prompts/grading.js +21 -1
  84. package/dist/src/prompts/grading.js.map +1 -1
  85. package/dist/src/prompts/index.js +3 -4
  86. package/dist/src/prompts/index.js.map +1 -1
  87. package/dist/src/prompts/processors/javascript.d.ts +5 -1
  88. package/dist/src/prompts/processors/javascript.d.ts.map +1 -1
  89. package/dist/src/prompts/processors/javascript.js +15 -3
  90. package/dist/src/prompts/processors/javascript.js.map +1 -1
  91. package/dist/src/prompts/processors/json.js +1 -2
  92. package/dist/src/prompts/processors/json.js.map +1 -1
  93. package/dist/src/prompts/processors/jsonl.js +1 -2
  94. package/dist/src/prompts/processors/jsonl.js.map +1 -1
  95. package/dist/src/prompts/processors/python.d.ts +1 -1
  96. package/dist/src/prompts/processors/python.d.ts.map +1 -1
  97. package/dist/src/prompts/processors/python.js +24 -18
  98. package/dist/src/prompts/processors/python.js.map +1 -1
  99. package/dist/src/prompts/processors/string.js +1 -2
  100. package/dist/src/prompts/processors/string.js.map +1 -1
  101. package/dist/src/prompts/processors/text.js +1 -2
  102. package/dist/src/prompts/processors/text.js.map +1 -1
  103. package/dist/src/prompts/processors/yaml.js +1 -2
  104. package/dist/src/prompts/processors/yaml.js.map +1 -1
  105. package/dist/src/prompts/utils.js +2 -3
  106. package/dist/src/prompts/utils.js.map +1 -1
  107. package/dist/src/providers/anthropic.d.ts +5 -0
  108. package/dist/src/providers/anthropic.d.ts.map +1 -1
  109. package/dist/src/providers/anthropic.js +58 -4
  110. package/dist/src/providers/anthropic.js.map +1 -1
  111. package/dist/src/providers/azureopenaiUtil.js +1 -2
  112. package/dist/src/providers/azureopenaiUtil.js.map +1 -1
  113. package/dist/src/providers/bedrock.d.ts +3 -3
  114. package/dist/src/providers/bedrock.d.ts.map +1 -1
  115. package/dist/src/providers/bedrock.js +3 -3
  116. package/dist/src/providers/bedrock.js.map +1 -1
  117. package/dist/src/providers/defaults.d.ts +3 -0
  118. package/dist/src/providers/defaults.d.ts.map +1 -1
  119. package/dist/src/providers/defaults.js +2 -2
  120. package/dist/src/providers/defaults.js.map +1 -1
  121. package/dist/src/providers/openai.d.ts.map +1 -1
  122. package/dist/src/providers/openai.js +1 -0
  123. package/dist/src/providers/openai.js.map +1 -1
  124. package/dist/src/providers/openaiUtil.js +1 -2
  125. package/dist/src/providers/openaiUtil.js.map +1 -1
  126. package/dist/src/providers/pythonCompletion.d.ts.map +1 -1
  127. package/dist/src/providers/scriptCompletion.d.ts.map +1 -1
  128. package/dist/src/providers/shared.js +3 -3
  129. package/dist/src/providers/shared.js.map +1 -1
  130. package/dist/src/providers/vertexUtil.js +3 -4
  131. package/dist/src/providers/vertexUtil.js.map +1 -1
  132. package/dist/src/providers.d.ts.map +1 -1
  133. package/dist/src/providers.js +5 -7
  134. package/dist/src/providers.js.map +1 -1
  135. package/dist/src/python/wrapper.d.ts +1 -1
  136. package/dist/src/python/wrapper.d.ts.map +1 -1
  137. package/dist/src/python/wrapper.js +2 -3
  138. package/dist/src/python/wrapper.js.map +1 -1
  139. package/dist/src/python/wrapper.py +9 -10
  140. package/dist/src/redteam/getCompetitorTests.js +1 -2
  141. package/dist/src/redteam/getCompetitorTests.js.map +1 -1
  142. package/dist/src/redteam/getHallucinationTests.js +1 -2
  143. package/dist/src/redteam/getHallucinationTests.js.map +1 -1
  144. package/dist/src/redteam/getHarmfulTests.d.ts +16 -16
  145. package/dist/src/redteam/getHarmfulTests.d.ts.map +1 -1
  146. package/dist/src/redteam/getHarmfulTests.js +6 -6
  147. package/dist/src/redteam/getHarmfulTests.js.map +1 -1
  148. package/dist/src/redteam/getHijackingTests.js +1 -2
  149. package/dist/src/redteam/getHijackingTests.js.map +1 -1
  150. package/dist/src/redteam/getOverconfidenceTests.js +1 -2
  151. package/dist/src/redteam/getOverconfidenceTests.js.map +1 -1
  152. package/dist/src/redteam/getPiiTests.js +1 -2
  153. package/dist/src/redteam/getPiiTests.js.map +1 -1
  154. package/dist/src/redteam/getPoliticalStatementsTests.js +1 -2
  155. package/dist/src/redteam/getPoliticalStatementsTests.js.map +1 -1
  156. package/dist/src/redteam/getUnderconfidenceTests.js +2 -3
  157. package/dist/src/redteam/getUnderconfidenceTests.js.map +1 -1
  158. package/dist/src/redteam/getUnintendedContractTests.js +1 -2
  159. package/dist/src/redteam/getUnintendedContractTests.js.map +1 -1
  160. package/dist/src/redteam/index.d.ts.map +1 -1
  161. package/dist/src/redteam/index.js +28 -9
  162. package/dist/src/redteam/index.js.map +1 -1
  163. package/dist/src/redteam/iterative.d.ts.map +1 -1
  164. package/dist/src/redteam/iterative.js +15 -2
  165. package/dist/src/redteam/iterative.js.map +1 -1
  166. package/dist/src/share.d.ts.map +1 -1
  167. package/dist/src/share.js +4 -3
  168. package/dist/src/share.js.map +1 -1
  169. package/dist/src/suggestions.js +1 -2
  170. package/dist/src/suggestions.js.map +1 -1
  171. package/dist/src/table.js +2 -3
  172. package/dist/src/table.js.map +1 -1
  173. package/dist/src/testCases.js +6 -7
  174. package/dist/src/testCases.js.map +1 -1
  175. package/dist/src/types.d.ts +951 -137
  176. package/dist/src/types.d.ts.map +1 -1
  177. package/dist/src/types.js +196 -4
  178. package/dist/src/types.js.map +1 -1
  179. package/dist/src/updates.js +2 -3
  180. package/dist/src/updates.js.map +1 -1
  181. package/dist/src/util.d.ts.map +1 -1
  182. package/dist/src/util.js +67 -56
  183. package/dist/src/util.js.map +1 -1
  184. package/dist/src/web/nextui/404/index.html +1 -1
  185. package/dist/src/web/nextui/404.html +1 -1
  186. package/dist/src/web/nextui/_next/static/chunks/2-671ad31c05d2c976.js +1 -0
  187. package/dist/src/web/nextui/_next/static/chunks/{540-378a20144435cec6.js → 540-c94eb8fa0d9db136.js} +1 -1
  188. package/dist/src/web/nextui/_next/static/chunks/{166-157bfb431b68d949.js → 858-5d3a3678769b7e36.js} +1 -1
  189. package/dist/src/web/nextui/_next/static/chunks/{897-1955b232a2148365.js → 998-d370cd9f4473ff31.js} +4 -4
  190. package/dist/src/web/nextui/_next/static/chunks/app/eval/[id]/{page-0a71ecaf651124c2.js → page-3c5a944373865122.js} +1 -1
  191. package/dist/src/web/nextui/_next/static/chunks/app/eval/{page-bf3968ed106645c6.js → page-73e894c39cc191f1.js} +1 -1
  192. package/dist/src/web/nextui/_next/static/chunks/app/{layout-b7b366d291dbc9db.js → layout-2038906de6c19565.js} +1 -1
  193. package/dist/src/web/nextui/_next/static/chunks/app/progress/page-73442c531d579c51.js +1 -0
  194. package/dist/src/web/nextui/_next/static/chunks/app/prompts/page-50e27c24c9e255bd.js +1 -0
  195. package/dist/src/web/nextui/_next/static/chunks/app/setup/{page-71b3060b06865254.js → page-26cb5d2478fdbd34.js} +1 -1
  196. package/dist/src/web/nextui/_next/static/chunks/webpack-8a9bc9ee0defb756.js +1 -0
  197. package/dist/src/web/nextui/_next/static/css/106779eb64615639.css +1 -0
  198. package/dist/src/web/nextui/_next/static/css/35ab7ce8025438b0.css +1 -0
  199. package/dist/src/web/nextui/_next/static/css/94b771e23fc5d5f5.css +1 -0
  200. package/dist/src/web/nextui/_next/static/media/05a31a2ca4975f99-s.woff2 +0 -0
  201. package/dist/src/web/nextui/_next/static/media/513657b02c5c193f-s.woff2 +0 -0
  202. package/dist/src/web/nextui/_next/static/media/51ed15f9841b9f9d-s.woff2 +0 -0
  203. package/dist/src/web/nextui/_next/static/media/c9a5bc6a7c948fb0-s.p.woff2 +0 -0
  204. package/dist/src/web/nextui/_next/static/media/d6b16ce4a6175f26-s.woff2 +0 -0
  205. package/dist/src/web/nextui/_next/static/media/ec159349637c90ad-s.woff2 +0 -0
  206. package/dist/src/web/nextui/_next/static/media/fd4db3eb5472fc27-s.woff2 +0 -0
  207. package/dist/src/web/nextui/auth/login/index.html +1 -1
  208. package/dist/src/web/nextui/auth/login/index.txt +10 -15
  209. package/dist/src/web/nextui/auth/signup/index.html +1 -1
  210. package/dist/src/web/nextui/auth/signup/index.txt +10 -15
  211. package/dist/src/web/nextui/datasets/index.html +1 -1
  212. package/dist/src/web/nextui/datasets/index.txt +10 -15
  213. package/dist/src/web/nextui/eval/index.html +1 -1
  214. package/dist/src/web/nextui/eval/index.txt +12 -17
  215. package/dist/src/web/nextui/index.html +1 -1
  216. package/dist/src/web/nextui/index.txt +11 -16
  217. package/dist/src/web/nextui/progress/index.html +1 -1
  218. package/dist/src/web/nextui/progress/index.txt +10 -15
  219. package/dist/src/web/nextui/prompts/index.html +1 -1
  220. package/dist/src/web/nextui/prompts/index.txt +10 -15
  221. package/dist/src/web/nextui/report/index.html +1 -1
  222. package/dist/src/web/nextui/report/index.txt +12 -17
  223. package/dist/src/web/nextui/setup/index.html +2 -2
  224. package/dist/src/web/nextui/setup/index.txt +12 -17
  225. package/dist/src/web/server.js +2 -2
  226. package/dist/src/web/server.js.map +1 -1
  227. package/package.json +18 -17
  228. package/dist/src/web/nextui/_next/static/chunks/2-d534f7b3af3e0505.js +0 -1
  229. package/dist/src/web/nextui/_next/static/chunks/app/progress/page-52079a97d0c2e2ea.js +0 -1
  230. package/dist/src/web/nextui/_next/static/chunks/app/prompts/page-7da4796409bc2636.js +0 -1
  231. package/dist/src/web/nextui/_next/static/chunks/webpack-ac7a3125017b92ed.js +0 -1
  232. package/dist/src/web/nextui/_next/static/css/036bf4af64e53e86.css +0 -1
  233. package/dist/src/web/nextui/_next/static/css/b76f1739b5a14901.css +0 -1
  234. package/dist/src/web/nextui/_next/static/css/e141e895af3747c6.css +0 -1
  235. package/dist/src/web/nextui/_next/static/media/03b685511c0eaac3-s.woff2 +0 -0
  236. package/dist/src/web/nextui/_next/static/media/04fe87c30c4f76ea-s.woff2 +0 -0
  237. package/dist/src/web/nextui/_next/static/media/0e4fe491bf84089c-s.p.woff2 +0 -0
  238. package/dist/src/web/nextui/_next/static/media/101c7b68f2d8b610-s.woff2 +0 -0
  239. package/dist/src/web/nextui/_next/static/media/13259ce60de2aa3e-s.woff2 +0 -0
  240. package/dist/src/web/nextui/_next/static/media/1c57ca6f5208a29b-s.woff2 +0 -0
  241. package/dist/src/web/nextui/_next/static/media/1e8103c5d17beb1d-s.woff2 +0 -0
  242. package/dist/src/web/nextui/_next/static/media/388fb79562c9fc54-s.woff2 +0 -0
  243. package/dist/src/web/nextui/_next/static/media/3a04115668d8070d-s.p.woff2 +0 -0
  244. package/dist/src/web/nextui/_next/static/media/3a18fc8da1cdcd01-s.p.woff2 +0 -0
  245. package/dist/src/web/nextui/_next/static/media/3dbd163d3bb09d47-s.woff2 +0 -0
  246. package/dist/src/web/nextui/_next/static/media/42d52f46a26971a3-s.woff2 +0 -0
  247. package/dist/src/web/nextui/_next/static/media/5647e4c23315a2d2-s.woff2 +0 -0
  248. package/dist/src/web/nextui/_next/static/media/5f4dfe83faee04f1-s.woff2 +0 -0
  249. package/dist/src/web/nextui/_next/static/media/627622453ef56b0d-s.p.woff2 +0 -0
  250. package/dist/src/web/nextui/_next/static/media/67e05ba3467b9f4d-s.woff2 +0 -0
  251. package/dist/src/web/nextui/_next/static/media/699512af39861afa-s.p.woff2 +0 -0
  252. package/dist/src/web/nextui/_next/static/media/79015435f1a55eef-s.woff2 +0 -0
  253. package/dist/src/web/nextui/_next/static/media/7be645d133f3ee22-s.woff2 +0 -0
  254. package/dist/src/web/nextui/_next/static/media/7c53f7419436e04b-s.woff2 +0 -0
  255. package/dist/src/web/nextui/_next/static/media/8fb72f69fba4e3d2-s.woff2 +0 -0
  256. package/dist/src/web/nextui/_next/static/media/912a9cfe43c928d9-s.woff2 +0 -0
  257. package/dist/src/web/nextui/_next/static/media/91a88e0c5dd21dfa-s.woff2 +0 -0
  258. package/dist/src/web/nextui/_next/static/media/934c4b7cb736f2a3-s.p.woff2 +0 -0
  259. package/dist/src/web/nextui/_next/static/media/9b67ab375515cd6f-s.woff2 +0 -0
  260. package/dist/src/web/nextui/_next/static/media/9cf7d128be063d32-s.woff2 +0 -0
  261. package/dist/src/web/nextui/_next/static/media/a3c201c07e8eb753-s.woff2 +0 -0
  262. package/dist/src/web/nextui/_next/static/media/a5b77b63ef20339c-s.woff2 +0 -0
  263. package/dist/src/web/nextui/_next/static/media/a6d330d7873e7320-s.woff2 +0 -0
  264. package/dist/src/web/nextui/_next/static/media/b6db722c6886c2cd-s.woff2 +0 -0
  265. package/dist/src/web/nextui/_next/static/media/baf12dd90520ae41-s.woff2 +0 -0
  266. package/dist/src/web/nextui/_next/static/media/bbdb6f0234009aba-s.woff2 +0 -0
  267. package/dist/src/web/nextui/_next/static/media/cff529cd86cc0276-s.woff2 +0 -0
  268. package/dist/src/web/nextui/_next/static/media/d117eea74e01de14-s.woff2 +0 -0
  269. package/dist/src/web/nextui/_next/static/media/daa8cca6b52a70fa-s.woff2 +0 -0
  270. package/dist/src/web/nextui/_next/static/media/dfa8b99978df7bbc-s.woff2 +0 -0
  271. package/dist/src/web/nextui/_next/static/media/e195dd2ded485df3-s.woff2 +0 -0
  272. package/dist/src/web/nextui/_next/static/media/e25729ca87cc7df9-s.woff2 +0 -0
  273. package/dist/src/web/nextui/_next/static/media/e35c7314ac518ddc-s.woff2 +0 -0
  274. package/dist/src/web/nextui/_next/static/media/eb52b768f62eeeb4-s.woff2 +0 -0
  275. package/dist/src/web/nextui/_next/static/media/ee7e17a7bdd8636b-s.woff2 +0 -0
  276. package/dist/src/web/nextui/_next/static/media/f06116e890b3dadb-s.woff2 +0 -0
  277. /package/dist/src/web/nextui/_next/static/{4W0Qng9llk0Tg-jZCYupr → 1r10QuQFZj3AAU-Bx1DRP}/_buildManifest.js +0 -0
  278. /package/dist/src/web/nextui/_next/static/{4W0Qng9llk0Tg-jZCYupr → 1r10QuQFZj3AAU-Bx1DRP}/_ssgManifest.js +0 -0
  279. /package/dist/src/web/nextui/_next/static/chunks/{215-7d83203d614bcd6a.js → 215-7bd08e1ce7028897.js} +0 -0
  280. /package/dist/src/web/nextui/_next/static/chunks/{322-92c9551f32057648.js → 322-ac32773931b7a8aa.js} +0 -0
  281. /package/dist/src/web/nextui/_next/static/chunks/{378-4b0cc74c685f98f9.js → 378-c23e2864527ac3a0.js} +0 -0
  282. /package/dist/src/web/nextui/_next/static/chunks/{770-577cd7d7d380b3ac.js → 770-28c6d673e9540d80.js} +0 -0
  283. /package/dist/src/web/nextui/_next/static/chunks/{873-8bd18cf80e6e64e1.js → 873-e1436a5f57769f17.js} +0 -0
  284. /package/dist/src/web/nextui/_next/static/chunks/{915-cd96102a51e75c9d.js → 915-b1361d86b62c2cfe.js} +0 -0
  285. /package/dist/src/web/nextui/_next/static/chunks/{995-c9a656a43545902a.js → 995-81cea2f3d08297f2.js} +0 -0
@@ -0,0 +1 @@
1
+ ALTER TABLE evals ADD `author` text;
@@ -0,0 +1,244 @@
1
+ {
2
+ "version": "5",
3
+ "dialect": "sqlite",
4
+ "id": "6325e41a-40cd-4db1-9e99-df139a264a14",
5
+ "prevId": "476c887f-edcb-4b29-b054-50a8383cc6c2",
6
+ "tables": {
7
+ "datasets": {
8
+ "name": "datasets",
9
+ "columns": {
10
+ "id": {
11
+ "name": "id",
12
+ "type": "text",
13
+ "primaryKey": true,
14
+ "notNull": true,
15
+ "autoincrement": false
16
+ },
17
+ "tests": {
18
+ "name": "tests",
19
+ "type": "text",
20
+ "primaryKey": false,
21
+ "notNull": false,
22
+ "autoincrement": false
23
+ },
24
+ "created_at": {
25
+ "name": "created_at",
26
+ "type": "integer",
27
+ "primaryKey": false,
28
+ "notNull": true,
29
+ "autoincrement": false,
30
+ "default": "CURRENT_TIMESTAMP"
31
+ }
32
+ },
33
+ "indexes": {},
34
+ "foreignKeys": {},
35
+ "compositePrimaryKeys": {},
36
+ "uniqueConstraints": {}
37
+ },
38
+ "evals": {
39
+ "name": "evals",
40
+ "columns": {
41
+ "id": {
42
+ "name": "id",
43
+ "type": "text",
44
+ "primaryKey": true,
45
+ "notNull": true,
46
+ "autoincrement": false
47
+ },
48
+ "created_at": {
49
+ "name": "created_at",
50
+ "type": "integer",
51
+ "primaryKey": false,
52
+ "notNull": true,
53
+ "autoincrement": false,
54
+ "default": "CURRENT_TIMESTAMP"
55
+ },
56
+ "author": {
57
+ "name": "author",
58
+ "type": "text",
59
+ "primaryKey": false,
60
+ "notNull": false,
61
+ "autoincrement": false
62
+ },
63
+ "description": {
64
+ "name": "description",
65
+ "type": "text",
66
+ "primaryKey": false,
67
+ "notNull": false,
68
+ "autoincrement": false
69
+ },
70
+ "results": {
71
+ "name": "results",
72
+ "type": "text",
73
+ "primaryKey": false,
74
+ "notNull": true,
75
+ "autoincrement": false
76
+ },
77
+ "config": {
78
+ "name": "config",
79
+ "type": "text",
80
+ "primaryKey": false,
81
+ "notNull": true,
82
+ "autoincrement": false
83
+ }
84
+ },
85
+ "indexes": {},
86
+ "foreignKeys": {},
87
+ "compositePrimaryKeys": {},
88
+ "uniqueConstraints": {}
89
+ },
90
+ "evals_to_datasets": {
91
+ "name": "evals_to_datasets",
92
+ "columns": {
93
+ "eval_id": {
94
+ "name": "eval_id",
95
+ "type": "text",
96
+ "primaryKey": false,
97
+ "notNull": true,
98
+ "autoincrement": false
99
+ },
100
+ "dataset_id": {
101
+ "name": "dataset_id",
102
+ "type": "text",
103
+ "primaryKey": false,
104
+ "notNull": true,
105
+ "autoincrement": false
106
+ }
107
+ },
108
+ "indexes": {},
109
+ "foreignKeys": {
110
+ "evals_to_datasets_eval_id_evals_id_fk": {
111
+ "name": "evals_to_datasets_eval_id_evals_id_fk",
112
+ "tableFrom": "evals_to_datasets",
113
+ "tableTo": "evals",
114
+ "columnsFrom": [
115
+ "eval_id"
116
+ ],
117
+ "columnsTo": [
118
+ "id"
119
+ ],
120
+ "onDelete": "no action",
121
+ "onUpdate": "no action"
122
+ },
123
+ "evals_to_datasets_dataset_id_datasets_id_fk": {
124
+ "name": "evals_to_datasets_dataset_id_datasets_id_fk",
125
+ "tableFrom": "evals_to_datasets",
126
+ "tableTo": "datasets",
127
+ "columnsFrom": [
128
+ "dataset_id"
129
+ ],
130
+ "columnsTo": [
131
+ "id"
132
+ ],
133
+ "onDelete": "no action",
134
+ "onUpdate": "no action"
135
+ }
136
+ },
137
+ "compositePrimaryKeys": {
138
+ "evals_to_datasets_eval_id_dataset_id_pk": {
139
+ "columns": [
140
+ "dataset_id",
141
+ "eval_id"
142
+ ],
143
+ "name": "evals_to_datasets_eval_id_dataset_id_pk"
144
+ }
145
+ },
146
+ "uniqueConstraints": {}
147
+ },
148
+ "evals_to_prompts": {
149
+ "name": "evals_to_prompts",
150
+ "columns": {
151
+ "eval_id": {
152
+ "name": "eval_id",
153
+ "type": "text",
154
+ "primaryKey": false,
155
+ "notNull": true,
156
+ "autoincrement": false
157
+ },
158
+ "prompt_id": {
159
+ "name": "prompt_id",
160
+ "type": "text",
161
+ "primaryKey": false,
162
+ "notNull": true,
163
+ "autoincrement": false
164
+ }
165
+ },
166
+ "indexes": {},
167
+ "foreignKeys": {
168
+ "evals_to_prompts_eval_id_evals_id_fk": {
169
+ "name": "evals_to_prompts_eval_id_evals_id_fk",
170
+ "tableFrom": "evals_to_prompts",
171
+ "tableTo": "evals",
172
+ "columnsFrom": [
173
+ "eval_id"
174
+ ],
175
+ "columnsTo": [
176
+ "id"
177
+ ],
178
+ "onDelete": "no action",
179
+ "onUpdate": "no action"
180
+ },
181
+ "evals_to_prompts_prompt_id_prompts_id_fk": {
182
+ "name": "evals_to_prompts_prompt_id_prompts_id_fk",
183
+ "tableFrom": "evals_to_prompts",
184
+ "tableTo": "prompts",
185
+ "columnsFrom": [
186
+ "prompt_id"
187
+ ],
188
+ "columnsTo": [
189
+ "id"
190
+ ],
191
+ "onDelete": "no action",
192
+ "onUpdate": "no action"
193
+ }
194
+ },
195
+ "compositePrimaryKeys": {
196
+ "evals_to_prompts_eval_id_prompt_id_pk": {
197
+ "columns": [
198
+ "eval_id",
199
+ "prompt_id"
200
+ ],
201
+ "name": "evals_to_prompts_eval_id_prompt_id_pk"
202
+ }
203
+ },
204
+ "uniqueConstraints": {}
205
+ },
206
+ "prompts": {
207
+ "name": "prompts",
208
+ "columns": {
209
+ "id": {
210
+ "name": "id",
211
+ "type": "text",
212
+ "primaryKey": true,
213
+ "notNull": true,
214
+ "autoincrement": false
215
+ },
216
+ "created_at": {
217
+ "name": "created_at",
218
+ "type": "integer",
219
+ "primaryKey": false,
220
+ "notNull": true,
221
+ "autoincrement": false,
222
+ "default": "CURRENT_TIMESTAMP"
223
+ },
224
+ "prompt": {
225
+ "name": "prompt",
226
+ "type": "text",
227
+ "primaryKey": false,
228
+ "notNull": true,
229
+ "autoincrement": false
230
+ }
231
+ },
232
+ "indexes": {},
233
+ "foreignKeys": {},
234
+ "compositePrimaryKeys": {},
235
+ "uniqueConstraints": {}
236
+ }
237
+ },
238
+ "enums": {},
239
+ "_meta": {
240
+ "schemas": {},
241
+ "tables": {},
242
+ "columns": {}
243
+ }
244
+ }
@@ -15,6 +15,13 @@
15
15
  "when": 1710706957023,
16
16
  "tag": "0001_wide_calypso",
17
17
  "breakpoints": true
18
+ },
19
+ {
20
+ "idx": 2,
21
+ "version": "5",
22
+ "when": 1719636070237,
23
+ "tag": "0002_tidy_juggernaut",
24
+ "breakpoints": true
18
25
  }
19
26
  ]
20
27
  }
package/dist/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "promptfoo",
3
3
  "description": "LLM eval & testing toolkit",
4
4
  "author": "Ian Webster",
5
- "version": "0.68.3",
5
+ "version": "0.69.1",
6
6
  "license": "MIT",
7
7
  "type": "commonjs",
8
8
  "repository": {
@@ -62,18 +62,18 @@
62
62
  "node-sql-parser": "^5.2.0"
63
63
  },
64
64
  "devDependencies": {
65
- "@aws-sdk/client-bedrock-runtime": "^3.602.0",
65
+ "@aws-sdk/client-bedrock-runtime": "^3.609.0",
66
66
  "@azure/identity": "^4.3.0",
67
- "@eslint/js": "^9.5.0",
68
- "@swc/cli": "^0.3.12",
69
- "@swc/core": "^1.6.1",
67
+ "@eslint/js": "^9.6.0",
68
+ "@swc/cli": "^0.4.0",
69
+ "@swc/core": "^1.6.13",
70
70
  "@swc/jest": "^0.2.36",
71
71
  "@trivago/prettier-plugin-sort-imports": "^4.3.0",
72
72
  "@types/async": "^3.2.24",
73
- "@types/better-sqlite3": "^7.6.10",
73
+ "@types/better-sqlite3": "^7.6.11",
74
74
  "@types/cache-manager": "^4.0.6",
75
75
  "@types/cache-manager-fs-hash": "^0.0.4",
76
- "@types/cli-progress": "^3.11.5",
76
+ "@types/cli-progress": "^3.11.6",
77
77
  "@types/compression": "^1.7.5",
78
78
  "@types/cors": "^2.8.17",
79
79
  "@types/debounce": "^1.2.4",
@@ -87,7 +87,7 @@
87
87
  "@types/nunjucks": "^3.2.6",
88
88
  "@types/opener": "^1.4.3",
89
89
  "@types/semver": "^7.5.8",
90
- "@types/uuid": "^9.0.8",
90
+ "@types/uuid": "^10.0.0",
91
91
  "check-dependency-version-consistency": "^4.1.0",
92
92
  "cloudflare": "^3.4.0",
93
93
  "drizzle-kit": "^0.20.13",
@@ -101,17 +101,17 @@
101
101
  "prettier": "^3.3.2",
102
102
  "shx": "^0.3.4",
103
103
  "ts-node": "^10.9.2",
104
- "typescript": "^5.4.5",
105
- "typescript-eslint": "^7.13.1"
104
+ "typescript": "^5.5.3",
105
+ "typescript-eslint": "^7.15.0"
106
106
  },
107
107
  "dependencies": {
108
- "@anthropic-ai/sdk": "^0.24.0",
108
+ "@anthropic-ai/sdk": "^0.24.3",
109
109
  "@apidevtools/json-schema-ref-parser": "^11.6.4",
110
- "@googleapis/sheets": "^8.0.0",
110
+ "@googleapis/sheets": "^9.0.0",
111
111
  "ajv": "^8.16.0",
112
112
  "ajv-formats": "^2.1.1",
113
113
  "async": "^3.2.5",
114
- "better-sqlite3": "^11.0.0",
114
+ "better-sqlite3": "^11.1.2",
115
115
  "cache-manager": "^4.1.0",
116
116
  "cache-manager-fs-hash": "^1.0.0",
117
117
  "chalk": "^4.1.2",
@@ -130,23 +130,24 @@
130
130
  "express": "^4.19.2",
131
131
  "fast-deep-equal": "^3.1.3",
132
132
  "fastest-levenshtein": "^1.0.16",
133
- "glob": "^10.4.1",
133
+ "glob": "^10.4.3",
134
134
  "inquirer": "^8.2.6",
135
135
  "js-yaml": "^4.1.0",
136
- "mathjs": "^13.0.0",
136
+ "mathjs": "^13.0.2",
137
137
  "node-fetch": "^2.6.7",
138
138
  "nunjucks": "^3.2.4",
139
139
  "openai": "^4.52.3",
140
140
  "opener": "^1.5.2",
141
141
  "proxy-agent": "^6.4.0",
142
142
  "python-shell": "^5.0.0",
143
- "replicate": "^0.30.2",
143
+ "replicate": "^0.31.1",
144
144
  "rfdc": "^1.4.1",
145
145
  "rouge": "git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f",
146
146
  "semver": "^7.6.2",
147
147
  "socket.io": "^4.7.5",
148
148
  "tiny-invariant": "^1.3.3",
149
149
  "uuid": "^10.0.0",
150
- "winston": "^3.13.0"
150
+ "winston": "^3.13.0",
151
+ "zod": "^3.23.8"
151
152
  }
152
153
  }
@@ -1,4 +1,3 @@
1
- /// <reference types="jest" />
2
1
  declare const mockDbInstance: {};
3
2
  declare const mockRelations: jest.Mock<any, any, any>;
4
3
  declare const mockSqliteTable: jest.Mock<any, any, any>;
@@ -1 +1 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../src/__mocks__/database.ts"],"names":[],"mappings":";AAAA,QAAA,MAAM,cAAc,IAInB,CAAC;AAEF,QAAA,MAAM,aAAa,0BAAY,CAAC;AAEhC,QAAA,MAAM,eAAe,0BAGnB,CAAC"}
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../src/__mocks__/database.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,cAAc,IAInB,CAAC;AAEF,QAAA,MAAM,aAAa,0BAAY,CAAC;AAEhC,QAAA,MAAM,eAAe,0BAGnB,CAAC"}
@@ -23,12 +23,12 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.importModule = exports.getDirectory = void 0;
26
+ exports.getDirectory = getDirectory;
27
+ exports.importModule = importModule;
27
28
  const path = __importStar(require("path"));
28
29
  function getDirectory() {
29
30
  return '/test/dir';
30
31
  }
31
- exports.getDirectory = getDirectory;
32
32
  function importModule(filePath, functionName) {
33
33
  const mod = require(path.resolve(filePath));
34
34
  if (functionName) {
@@ -36,5 +36,4 @@ function importModule(filePath, functionName) {
36
36
  }
37
37
  return mod;
38
38
  }
39
- exports.importModule = importModule;
40
39
  //# sourceMappingURL=esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"esm.js","sourceRoot":"","sources":["../../../src/__mocks__/esm.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAE7B,SAAgB,YAAY;IAC1B,OAAO,WAAW,CAAC;AACrB,CAAC;AAFD,oCAEC;AAED,SAAgB,YAAY,CAAC,QAAgB,EAAE,YAAqB;IAClE,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5C,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,GAAG,CAAC,YAAY,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAND,oCAMC"}
1
+ {"version":3,"file":"esm.js","sourceRoot":"","sources":["../../../src/__mocks__/esm.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAEA,oCAEC;AAED,oCAMC;AAZD,2CAA6B;AAE7B,SAAgB,YAAY;IAC1B,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAgB,YAAY,CAAC,QAAgB,EAAE,YAAqB;IAClE,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5C,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,GAAG,CAAC,YAAY,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,3 +1,4 @@
1
- export declare function getUserEmail(): string | undefined;
1
+ export declare function getUserEmail(): string | null;
2
2
  export declare function setUserEmail(email: string): void;
3
+ export declare function getAuthor(): string | null;
3
4
  //# sourceMappingURL=accounts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/accounts.ts"],"names":[],"mappings":"AAEA,wBAAgB,YAAY,IAAI,MAAM,GAAG,SAAS,CAGjD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,QAEzC"}
1
+ {"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/accounts.ts"],"names":[],"mappings":"AAEA,wBAAgB,YAAY,IAAI,MAAM,GAAG,IAAI,CAG5C;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,QAEzC;AAED,wBAAgB,SAAS,IAAI,MAAM,GAAG,IAAI,CAEzC"}
@@ -1,14 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setUserEmail = exports.getUserEmail = void 0;
3
+ exports.getUserEmail = getUserEmail;
4
+ exports.setUserEmail = setUserEmail;
5
+ exports.getAuthor = getAuthor;
4
6
  const globalConfig_1 = require("./globalConfig");
5
7
  function getUserEmail() {
6
8
  const globalConfig = (0, globalConfig_1.readGlobalConfig)();
7
- return globalConfig.account?.email;
9
+ return globalConfig.account?.email || null;
8
10
  }
9
- exports.getUserEmail = getUserEmail;
10
11
  function setUserEmail(email) {
11
12
  (0, globalConfig_1.writeGlobalConfig)({ account: { email } });
12
13
  }
13
- exports.setUserEmail = setUserEmail;
14
+ function getAuthor() {
15
+ return process.env.PROMPTFOO_AUTHOR || getUserEmail() || null;
16
+ }
14
17
  //# sourceMappingURL=accounts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../src/accounts.ts"],"names":[],"mappings":";;;AAAA,iDAAqE;AAErE,SAAgB,YAAY;IAC1B,MAAM,YAAY,GAAG,IAAA,+BAAgB,GAAE,CAAC;IACxC,OAAO,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC;AACrC,CAAC;AAHD,oCAGC;AAED,SAAgB,YAAY,CAAC,KAAa;IACxC,IAAA,gCAAiB,EAAC,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;AAC5C,CAAC;AAFD,oCAEC"}
1
+ {"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../src/accounts.ts"],"names":[],"mappings":";;AAEA,oCAGC;AAED,oCAEC;AAED,8BAEC;AAbD,iDAAqE;AAErE,SAAgB,YAAY;IAC1B,MAAM,YAAY,GAAG,IAAA,+BAAgB,GAAE,CAAC;IACxC,OAAO,YAAY,CAAC,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC;AAC7C,CAAC;AAED,SAAgB,YAAY,CAAC,KAAa;IACxC,IAAA,gCAAiB,EAAC,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,SAAgB,SAAS;IACvB,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,YAAY,EAAE,IAAI,IAAI,CAAC;AAChE,CAAC"}
@@ -39,9 +39,9 @@ class AssertionsResult {
39
39
  this.namedScores[metric] = (this.namedScores[metric] || 0) + result.score;
40
40
  }
41
41
  if (result.tokensUsed) {
42
- this.tokensUsed.total += result.tokensUsed.total;
43
- this.tokensUsed.prompt += result.tokensUsed.prompt;
44
- this.tokensUsed.completion += result.tokensUsed.completion;
42
+ this.tokensUsed.total += result.tokensUsed.total || 0;
43
+ this.tokensUsed.prompt += result.tokensUsed.prompt || 0;
44
+ this.tokensUsed.completion += result.tokensUsed.completion || 0;
45
45
  }
46
46
  if (result.pass) {
47
47
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"AssertionsResult.js","sourceRoot":"","sources":["../../../src/assertions/AssertionsResult.ts"],"names":[],"mappings":";;;AAEA,MAAM,mBAAmB,GAAG;IAC1B,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,UAAU,EAAE,CAAC;CACd,CAAC;AAOF,MAAa,gBAAgB;IAC3B,MAAM,CAAC,eAAe;QACpB,OAAO;YACL,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,eAAe;YACvB,UAAU,EAAE,EAAE,GAAG,mBAAmB,EAAE;YACtC,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC;IAcD,YAAY,EACV,SAAS,EACT,kBAAkB,MAIhB,EAAE;QAlBE,eAAU,GAAG;YACnB,GAAG,mBAAmB;SACvB,CAAC;QAGM,eAAU,GAAW,CAAC,CAAC;QACvB,gBAAW,GAAW,CAAC,CAAC;QAExB,qBAAgB,GAAoB,EAAE,CAAC;QACvC,gBAAW,GAA2B,EAAE,CAAC;QACzC,WAAM,GAAyB,IAAI,CAAC;QAS1C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,mBAAmB,GAAG,kBAAkB,CAAC;IAChD,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED,SAAS,CAAC,EACR,KAAK,EACL,MAAM,EACN,MAAM,EACN,MAAM,GAAG,CAAC,GAMX;QACC,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC;QACzC,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;QAEtC,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QAC5E,CAAC;QAED,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;YACjD,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;YACnD,IAAI,CAAC,UAAU,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;QAC7D,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;QAElC,IAAI,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,UAAU;QACR,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;QACjD,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;QAE9B,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;QAE9E,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,wFAAwF;YACxF,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC;YAE/B,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,GAAG,mBAAmB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,YAAY,CAAC;YAC/E,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,mBAAmB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,SAAS,YAAY,CAAC;YAC/E,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,GAAG;YACZ,IAAI;YACJ,KAAK;YACL,MAAM;YACN,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,SAAS,EAAE,IAAI;SAChB,CAAC;QAEF,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AA3GD,4CA2GC"}
1
+ {"version":3,"file":"AssertionsResult.js","sourceRoot":"","sources":["../../../src/assertions/AssertionsResult.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateAssertions = exports.AssertValiationError = void 0;
3
+ exports.AssertValiationError = void 0;
4
+ exports.validateAssertions = validateAssertions;
4
5
  class AssertValiationError extends Error {
5
6
  constructor(message, testCase) {
6
7
  const testCaseDescription = testCase.description || JSON.stringify(testCase);
@@ -31,5 +32,4 @@ function validateAssertions(tests) {
31
32
  }
32
33
  }
33
34
  }
34
- exports.validateAssertions = validateAssertions;
35
35
  //# sourceMappingURL=validateAssertions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validateAssertions.js","sourceRoot":"","sources":["../../../src/assertions/validateAssertions.ts"],"names":[],"mappings":";;;AAEA,MAAa,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,OAAe,EAAE,QAAkB;QAC7C,MAAM,mBAAmB,GAAG,QAAQ,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAE7E,KAAK,CAAC,GAAG,OAAO,SAAS,mBAAmB,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAPD,oDAOC;AAED,SAAS,iBAAiB,CAAC,SAAiB,EAAE,IAAc;IAC1D,IAAI,CAAC,CAAC,QAAQ,IAAI,SAAS,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,oBAAoB,CAAC,2CAA2C,EAAE,IAAI,CAAC,CAAC;IACpF,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,oBAAoB,CAAC,oDAAoD,EAAE,IAAI,CAAC,CAAC;IAC7F,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,YAAY,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,oBAAoB,CAAC,4CAA4C,EAAE,IAAI,CAAC,CAAC;IACrF,CAAC;AACH,CAAC;AAED,SAAgB,kBAAkB,CAAC,KAA6D;IAC9F,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACpC,IAAI,SAAS,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBACpC,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAVD,gDAUC"}
1
+ {"version":3,"file":"validateAssertions.js","sourceRoot":"","sources":["../../../src/assertions/validateAssertions.ts"],"names":[],"mappings":";;;AAyBA,gDAUC;AAjCD,MAAa,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,OAAe,EAAE,QAAkB;QAC7C,MAAM,mBAAmB,GAAG,QAAQ,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAE7E,KAAK,CAAC,GAAG,OAAO,SAAS,mBAAmB,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAPD,oDAOC;AAED,SAAS,iBAAiB,CAAC,SAAiB,EAAE,IAAc;IAC1D,IAAI,CAAC,CAAC,QAAQ,IAAI,SAAS,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,oBAAoB,CAAC,2CAA2C,EAAE,IAAI,CAAC,CAAC;IACpF,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,oBAAoB,CAAC,oDAAoD,EAAE,IAAI,CAAC,CAAC;IAC7F,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,YAAY,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,oBAAoB,CAAC,4CAA4C,EAAE,IAAI,CAAC,CAAC;IACrF,CAAC;AACH,CAAC;AAED,SAAgB,kBAAkB,CAAC,KAA6D;IAC9F,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACpC,IAAI,SAAS,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBACpC,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -26,7 +26,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.readAssertions = exports.runCompareAssertion = exports.runAssertions = exports.runAssertion = exports.isSql = exports.MODEL_GRADED_ASSERTION_TYPES = void 0;
29
+ exports.MODEL_GRADED_ASSERTION_TYPES = void 0;
30
+ exports.isSql = isSql;
31
+ exports.runAssertion = runAssertion;
32
+ exports.runAssertions = runAssertions;
33
+ exports.runCompareAssertion = runCompareAssertion;
34
+ exports.readAssertions = readAssertions;
30
35
  const ajv_1 = __importDefault(require("ajv"));
31
36
  const ajv_formats_1 = __importDefault(require("ajv-formats"));
32
37
  const async_1 = __importDefault(require("async"));
@@ -157,7 +162,6 @@ async function isSql(outputString, renderedValue, inverse, assertion) {
157
162
  assertion,
158
163
  };
159
164
  }
160
- exports.isSql = isSql;
161
165
  async function runAssertion({ prompt, provider, assertion, test, output, latencyMs, logProbs, cost, }) {
162
166
  let pass = false;
163
167
  let score = 0.0;
@@ -990,7 +994,6 @@ ${isMultiline
990
994
  }
991
995
  throw new Error('Unknown assertion type: ' + assertion.type);
992
996
  }
993
- exports.runAssertion = runAssertion;
994
997
  async function runAssertions({ prompt, provider, test, output, latencyMs, logProbs, cost, }) {
995
998
  if (!test.assert || test.assert.length < 1) {
996
999
  return AssertionsResult_1.AssertionsResult.noAssertsResult();
@@ -1055,7 +1058,6 @@ async function runAssertions({ prompt, provider, test, output, latencyMs, logPro
1055
1058
  });
1056
1059
  return mainAssertResult.testResult();
1057
1060
  }
1058
- exports.runAssertions = runAssertions;
1059
1061
  async function runCompareAssertion(test, assertion, outputs) {
1060
1062
  (0, tiny_invariant_1.default)(typeof assertion.value === 'string', 'select-best must have a string value');
1061
1063
  test = getFinalTest(test, assertion);
@@ -1065,7 +1067,6 @@ async function runCompareAssertion(test, assertion, outputs) {
1065
1067
  assertion,
1066
1068
  }));
1067
1069
  }
1068
- exports.runCompareAssertion = runCompareAssertion;
1069
1070
  async function readAssertions(filePath) {
1070
1071
  try {
1071
1072
  const assertions = js_yaml_1.default.load(fs_1.default.readFileSync(filePath, 'utf-8'));
@@ -1078,7 +1079,6 @@ async function readAssertions(filePath) {
1078
1079
  throw new Error(`Failed to read assertions from ${filePath}:\n${err}`);
1079
1080
  }
1080
1081
  }
1081
- exports.readAssertions = readAssertions;
1082
1082
  // These exports are used by the node.js package (index.ts)
1083
1083
  exports.default = {
1084
1084
  runAssertion,