promptfoo 0.120.27 → 0.121.2

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 (355) hide show
  1. package/README.md +1 -1
  2. package/dist/src/{ListApp-8WOe2nT6.js → ListApp-Du7YVwj5.js} +2 -4
  3. package/dist/src/accounts-B0pgC1oV.js +206 -0
  4. package/dist/src/{accounts-DVINui-2.js → accounts-Bm2D8Db9.js} +39 -34
  5. package/dist/src/{accounts-CPDRAMND.js → accounts-CiBLOnA7.js} +38 -33
  6. package/dist/src/{accounts-Fl2J3_Fu.cjs → accounts-gtkH-5KX.cjs} +77 -78
  7. package/dist/src/{agentic-utils-D922n6mm.js → agentic-utils-DS1g3GLF.js} +9 -10
  8. package/dist/src/{agents-BcsN_BgB.js → agents-9qiOy0ho.js} +16 -12
  9. package/dist/src/{agents-BXLmVsxR.js → agents-CBr9A01V.js} +37 -37
  10. package/dist/src/{agents-pMfppv9Z.js → agents-CmvBq8LV.js} +16 -18
  11. package/dist/src/{agents-hqgSV-3o.js → agents-D__IdAlg.js} +39 -40
  12. package/dist/src/{agents-BO2n8Z0d.cjs → agents-DbRtpYxR.cjs} +37 -40
  13. package/dist/src/{agents-BdUTAwi-.js → agents-DgF2zDag.js} +37 -42
  14. package/dist/src/{agents-DgJf2-ez.cjs → agents-Di9DKPzn.cjs} +16 -17
  15. package/dist/src/{agents-DNvSH78i.js → agents-cLXA8a_8.js} +17 -19
  16. package/dist/src/{aimlapi-DtgPI0nE.js → aimlapi-B4rcnZgv.js} +15 -17
  17. package/dist/src/{aimlapi-BE_Tg9Fl.cjs → aimlapi-BvlNH0gr.cjs} +15 -16
  18. package/dist/src/{aimlapi-DOib86oE.js → aimlapi-CnkC2HqE.js} +16 -18
  19. package/dist/src/{aimlapi-DTPACCB1.js → aimlapi-DHJU_kcV.js} +15 -4
  20. package/dist/src/app/assets/index-4LKxG2CG.js +439 -0
  21. package/dist/src/app/assets/{index-NCn4eVBv.css → index-C3zcsZFQ.css} +1 -1
  22. package/dist/src/app/assets/vendor-charts-BnDWwBlI.js +36 -0
  23. package/dist/src/app/index.html +3 -3
  24. package/dist/src/app/tsconfig.app.tsbuildinfo +1 -1
  25. package/dist/src/{audio-BnRUGAm_.js → audio-Bkv46et0.js} +6 -5
  26. package/dist/src/{audio-Cwo68yZS.cjs → audio-CGMyULza.cjs} +6 -7
  27. package/dist/src/{audio-MSRki4JU.js → audio-ClI_AFre.js} +6 -8
  28. package/dist/src/{audio-BRYU0BFo.js → audio-Dz3z7s3J.js} +7 -9
  29. package/dist/src/{base-pGVmXNl4.cjs → base-CGrhspbK.cjs} +36 -38
  30. package/dist/src/{base-h961VXYk.js → base-CpjcHe4e.js} +11 -13
  31. package/dist/src/base-DLKtKMFh.js +193 -0
  32. package/dist/src/{base-XB2tDJrB.js → base-Dy1V8--Z.js} +11 -13
  33. package/dist/src/blobs-BDbfYdrJ.js +236 -0
  34. package/dist/src/{blobs-CR5C4Ihh.js → blobs-CBO20krR.js} +9 -12
  35. package/dist/src/{blobs-BM_e6hCa.js → blobs-CMHN0Qcz.js} +9 -12
  36. package/dist/src/{blobs-B-KQAFhX.cjs → blobs-D23XLin-.cjs} +34 -37
  37. package/dist/src/{cache-jsiwsAJv.js → cache-BVeDlD87.js} +132 -117
  38. package/dist/src/{cache-CIpsoBZR.js → cache-C4Nxf52C.js} +132 -118
  39. package/dist/src/cache-CeUpFm3M.cjs +5 -0
  40. package/dist/src/{cache-BTVYfbka.cjs → cache-Dh5WtQps.cjs} +182 -168
  41. package/dist/src/cache-i1P6crbO.js +756 -0
  42. package/dist/src/cache-n-RCJ-hL.js +6 -0
  43. package/dist/src/{chat-BcPjZXIp.js → chat-BiKyneZl.js} +45 -46
  44. package/dist/src/{chat-D31K7C4u.cjs → chat-C1Qst7jL.cjs} +20 -21
  45. package/dist/src/{chat-B84t99NW.js → chat-C2jrdPMx.js} +20 -9
  46. package/dist/src/{chat-BE44YOc6.cjs → chat-CgF-J-Jj.cjs} +65 -66
  47. package/dist/src/{chat-DwWifjxi.js → chat-CzkrVDfz.js} +20 -22
  48. package/dist/src/chat-DJIw17u0.js +766 -0
  49. package/dist/src/{chat-CcUCysjU.js → chat-DqxYYtWA.js} +45 -46
  50. package/dist/src/{chat-DZM2GUHO.js → chat-qmatte1u.js} +21 -23
  51. package/dist/src/{chatkit-D67HS_0b.js → chatkit-65VXf5SR.js} +58 -58
  52. package/dist/src/{chatkit-DAB_qfzI.js → chatkit-Be-Q-a9F.js} +58 -60
  53. package/dist/src/{chatkit-Biqb_wsD.js → chatkit-BxFvW8KY.js} +58 -60
  54. package/dist/src/{chatkit-PGG4ZYIn.cjs → chatkit-DKyPi1Gs.cjs} +58 -60
  55. package/dist/src/chunk-DEq-mXcV.js +15 -0
  56. package/dist/src/chunk-DRamLcfz.js +16 -0
  57. package/dist/src/{claude-agent-sdk-SVM6AdBu.js → claude-agent-sdk-Apiy0iaz.js} +31 -31
  58. package/dist/src/{claude-agent-sdk-C-IOTPfo.js → claude-agent-sdk-D2bJee9S.js} +31 -29
  59. package/dist/src/{claude-agent-sdk-C9SiaQub.cjs → claude-agent-sdk-D9Z5Pr9X.cjs} +31 -28
  60. package/dist/src/{claude-agent-sdk-CiluSyW1.js → claude-agent-sdk-DfCoW0E6.js} +33 -20
  61. package/dist/src/cloud-BBh91EUK.js +4 -0
  62. package/dist/src/{cloud-CZ-q9Ier.js → cloud-C0dlstV_.js} +7 -9
  63. package/dist/src/{cloudflare-ai-BahKHyhh.js → cloudflare-ai-8TDxHR0x.js} +16 -18
  64. package/dist/src/{cloudflare-ai-v_qZD6_q.js → cloudflare-ai-BxAGvfju.js} +17 -19
  65. package/dist/src/{cloudflare-ai-Dfahv5SY.cjs → cloudflare-ai-CknbZ5LJ.cjs} +16 -17
  66. package/dist/src/{cloudflare-ai-Dxyt50Nl.js → cloudflare-ai-g7PB6VHR.js} +16 -4
  67. package/dist/src/{cloudflare-gateway-Bi_FpOFy.js → cloudflare-gateway-B9HWA5wf.js} +23 -23
  68. package/dist/src/{cloudflare-gateway-BPWoZIzJ.cjs → cloudflare-gateway-BSnDmHYo.cjs} +21 -22
  69. package/dist/src/{cloudflare-gateway-C0guUNwk.js → cloudflare-gateway-CKDb4dJ8.js} +26 -14
  70. package/dist/src/{cloudflare-gateway-btS7h1OZ.js → cloudflare-gateway-CP9QEWYS.js} +21 -25
  71. package/dist/src/{codex-sdk-DSxAnbfT.js → codex-sdk-C6UMlxwV.js} +28 -29
  72. package/dist/src/{codex-sdk-IYVi9fuM.js → codex-sdk-DUwKWezN.js} +28 -27
  73. package/dist/src/{codex-sdk-DulY0ZRq.js → codex-sdk-GGAw0qbD.js} +28 -29
  74. package/dist/src/{codex-sdk-DFKMtAyf.cjs → codex-sdk-fAO0c3yA.cjs} +28 -29
  75. package/dist/src/{cometapi-DzrR3SR_.js → cometapi-BL9yvj_f.js} +16 -4
  76. package/dist/src/{cometapi-DIO64tf4.cjs → cometapi-C4xSqeID.cjs} +21 -22
  77. package/dist/src/{cometapi-C9EEpJzT.js → cometapi-CUQq3H_a.js} +21 -24
  78. package/dist/src/{cometapi-DkNBMk0G.js → cometapi-DFNiKmSz.js} +17 -19
  79. package/dist/src/{completion-CG29bfKX.js → completion-5MzrpJxT.js} +11 -13
  80. package/dist/src/{completion-CCRT4kX1.cjs → completion-CM6oK8PS.cjs} +21 -23
  81. package/dist/src/{completion-Bgf1VJoq.js → completion-DZ083F31.js} +11 -13
  82. package/dist/src/completion-qRoZAYRB.js +120 -0
  83. package/dist/src/{createHash-Dw_iLu31.js → createHash-CTQmL3G2.js} +2 -3
  84. package/dist/src/{createHash-CYQy4YeL.cjs → createHash-CfZSc0b4.cjs} +13 -14
  85. package/dist/src/{createHash-CJcfskIZ.js → createHash-Da8fMwqB.js} +2 -3
  86. package/dist/src/createHash-DmPQkvBh.js +15 -0
  87. package/dist/src/{docker-D-ayp2FW.js → docker-Bb5dcxr8.js} +18 -20
  88. package/dist/src/{docker-B81N0t4e.js → docker-BvfL2BrW.js} +19 -21
  89. package/dist/src/{docker-DNcLR4Ig.cjs → docker-DcF2pRrj.cjs} +18 -19
  90. package/dist/src/{docker-egERKxCF.js → docker-ExVyLp0S.js} +18 -7
  91. package/dist/src/entrypoint.js +2 -3
  92. package/dist/src/{errors-DnGCbnx8.js → errors-P6ll7XSJ.js} +2 -2
  93. package/dist/src/{esm-B9dPm_BF.js → esm-C03C-mv3.js} +17 -20
  94. package/dist/src/{esm-D2pZ87fL.js → esm-CaIwzWR5.js} +18 -21
  95. package/dist/src/esm-Cd1AjG1D.js +379 -0
  96. package/dist/src/{esm-Ct-Joyue.cjs → esm-CnNt7sI4.cjs} +47 -49
  97. package/dist/src/eval-B3r2CVXr.js +15 -0
  98. package/dist/src/{eval-C-Nr6wX_.js → eval-Dg2nG4v2.js} +47 -54
  99. package/dist/src/evalResult-5xwYnECe.js +12 -0
  100. package/dist/src/evalResult-71lY93Kj.cjs +10 -0
  101. package/dist/src/{evalResult-DXMWJ3sx.js → evalResult-BBRNtX4I.js} +10 -11
  102. package/dist/src/{evalResult-4BzI2tmj.js → evalResult-BDMqrapS.js} +16 -12
  103. package/dist/src/evalResult-Dx5P5cIv.js +10 -0
  104. package/dist/src/{evalResult-CX8wQecI.cjs → evalResult-fuaI8HkH.cjs} +20 -21
  105. package/dist/src/{evaluator-8aGyV12L.js → evaluator-BhoWwp5b.js} +211 -235
  106. package/dist/src/evaluator-Jx6bRZV6.js +36 -0
  107. package/dist/src/{extractor-V5x_m1i0.js → extractor-C0EVHewb.js} +22 -24
  108. package/dist/src/extractor-D25qpmGX.js +374 -0
  109. package/dist/src/{extractor-CD5yKL-G.js → extractor-DReVID0K.js} +22 -24
  110. package/dist/src/{extractor-C031XmTA.cjs → extractor-pYLLi3wS.cjs} +37 -39
  111. package/dist/src/{fetch-BmbD-v1L.cjs → fetch-BPkYtG8K.cjs} +244 -277
  112. package/dist/src/fetch-BxNb_Lp3.js +5 -0
  113. package/dist/src/{fetch-D3OHf-lV.js → fetch-Cwxnd8zz.js} +36 -44
  114. package/dist/src/{fetch-CXZI9RRr.js → fetch-Dxpd4_sr.js} +23 -35
  115. package/dist/src/fetch-HaqdX7U1.js +780 -0
  116. package/dist/src/{fileExtensions-ePDqouxn.js → fileExtensions-DnqA1y9x.js} +2 -2
  117. package/dist/src/{fileExtensions-BpuMmaFL.js → fileExtensions-Ds-foDzt.js} +2 -2
  118. package/dist/src/fileExtensions-LcDYkU4v.js +85 -0
  119. package/dist/src/{fileExtensions-DkJYkWUy.cjs → fileExtensions-bYh77CN8.cjs} +27 -28
  120. package/dist/src/{formatDuration-CdevI3An.js → formatDuration-DgBVMN65.js} +2 -2
  121. package/dist/src/{genaiTracer-Ce19n68P.js → genaiTracer-70Z8BIuV.js} +2 -3
  122. package/dist/src/{genaiTracer-CqNnnXrE.js → genaiTracer-C1rxGO8Q.js} +2 -3
  123. package/dist/src/genaiTracer-D3fD9dNV.js +256 -0
  124. package/dist/src/{genaiTracer-Dres3qrN.cjs → genaiTracer-DN4dQywX.cjs} +13 -14
  125. package/dist/src/{graders--1y2u9HO.js → graders-BTeBGqjJ.js} +349 -397
  126. package/dist/src/graders-B_pgMLS2.js +34 -0
  127. package/dist/src/{graders-DTeBrzWp.js → graders-Bj_Odv7c.js} +349 -397
  128. package/dist/src/graders-DErokPDO.cjs +32 -0
  129. package/dist/src/graders-DP7KFFo-.js +13466 -0
  130. package/dist/src/graders-DR_uNe54.js +32 -0
  131. package/dist/src/{graders-DohM2dir.cjs → graders-DU49_J8Y.cjs} +684 -732
  132. package/dist/src/graders-w3176Wz-.js +32 -0
  133. package/dist/src/{image-B0U4Hqll.js → image-B02ogr_b.js} +7 -9
  134. package/dist/src/{image-DmE-niFE.js → image-B0h9VEMc.js} +6 -5
  135. package/dist/src/{image-CuKHuccK.cjs → image-BLmROtN3.cjs} +29 -30
  136. package/dist/src/{image-DNEIf_aI.js → image-Bb4vWQLM.js} +6 -8
  137. package/dist/src/{image-DpKl2F15.cjs → image-C1madmKh.cjs} +6 -7
  138. package/dist/src/{image-C3wHC9_h.js → image-CHfWvljl.js} +9 -10
  139. package/dist/src/{image-O1u4bCFg.js → image-DS-o-0ph.js} +9 -10
  140. package/dist/src/image-Dpxa1Jt6.js +257 -0
  141. package/dist/src/index.cjs +615 -695
  142. package/dist/src/index.d.cts +271 -7
  143. package/dist/src/index.d.ts +271 -3
  144. package/dist/src/index.js +580 -664
  145. package/dist/src/{interactiveCheck-Bxj1Swex.js → interactiveCheck-BgLZUIt3.js} +7 -8
  146. package/dist/src/{invariant-DT20jrBd.js → invariant-BtWWVVhl.js} +2 -2
  147. package/dist/src/{invariant-1pAf2CD1.js → invariant-Ddh24eXh.js} +2 -2
  148. package/dist/src/{invariant-CKcJAQ6M.cjs → invariant-kfQ8Bu82.cjs} +7 -8
  149. package/dist/src/invariant-vgHWClmd.js +25 -0
  150. package/dist/src/{knowledgeBase-CEzQobWX.js → knowledgeBase-B3OoKIej.js} +14 -9
  151. package/dist/src/{knowledgeBase-Be_zyW4L.js → knowledgeBase-CYTLHOt1.js} +16 -16
  152. package/dist/src/{knowledgeBase-BZ41IFwq.js → knowledgeBase-D33Ty2l6.js} +14 -18
  153. package/dist/src/{knowledgeBase-D-5BMXlr.cjs → knowledgeBase-DOO_BM9b.cjs} +14 -15
  154. package/dist/src/{litellm-DnbRJ2if.js → litellm-AaeZcZQF.js} +18 -19
  155. package/dist/src/{litellm-hUSNM_M2.cjs → litellm-I_hbp_dc.cjs} +17 -17
  156. package/dist/src/{litellm-CRDqPhNI.js → litellm-NbjknEh6.js} +17 -18
  157. package/dist/src/{litellm-9vR8zpfU.js → litellm-TrljxD9G.js} +17 -5
  158. package/dist/src/{logger-CG1uZPbQ.js → logger-CT3IKMKA.js} +10 -29
  159. package/dist/src/{logger-B7sBeGa0.cjs → logger-Cp1GPUjj.cjs} +152 -180
  160. package/dist/src/logger-DLcq4dWf.js +713 -0
  161. package/dist/src/{logger-LSBxlt7a.js → logger-KkObSCzq.js} +13 -31
  162. package/dist/src/{luma-ray-4blv9iZ2.js → luma-ray-BS2_tY8L.js} +22 -21
  163. package/dist/src/{luma-ray-drvgdpP9.js → luma-ray-DDsjcgZZ.js} +20 -13
  164. package/dist/src/{luma-ray-Hm3d6VJE.cjs → luma-ray-Due0n7di.cjs} +20 -21
  165. package/dist/src/{luma-ray-B2__8lYH.js → luma-ray-f6I2fft-.js} +20 -23
  166. package/dist/src/main.js +1170 -1321
  167. package/dist/src/{messages-Uee41Mj5.js → messages-BS17jdMx.js} +22 -24
  168. package/dist/src/{messages-XhiwCbi4.cjs → messages-Bs1kC7P4.cjs} +32 -34
  169. package/dist/src/{messages-CGPPidQr.js → messages-D0lx5qK7.js} +22 -24
  170. package/dist/src/messages-ZJk778GH.js +240 -0
  171. package/dist/src/{meteor-BYykdXrV.js → meteor-44VjEACX.js} +3 -4
  172. package/dist/src/{meteor-CsopaHrH.js → meteor-D-SotUw9.js} +3 -4
  173. package/dist/src/{meteor-e-E-2vVl.cjs → meteor-DLZZ3osF.cjs} +3 -4
  174. package/dist/src/{meteor-C8lGP6P4.js → meteor-DUiCJRC-.js} +3 -4
  175. package/dist/src/{modelslab-yKz-ZNB4.js → modelslab-Bmni6skY.js} +17 -10
  176. package/dist/src/{modelslab-E9gO-bYd.js → modelslab-Bx9IrZfS.js} +18 -20
  177. package/dist/src/{modelslab-lUVW0cmB.cjs → modelslab-CoUX6Jc_.cjs} +17 -18
  178. package/dist/src/{modelslab-ClBkr8_9.js → modelslab-DRb74SP4.js} +17 -19
  179. package/dist/src/{nova-reel-Dk8jNpId.js → nova-reel-BfPq-0Yk.js} +20 -13
  180. package/dist/src/{nova-reel-D8CuO6QH.cjs → nova-reel-C_QM18Xn.cjs} +20 -21
  181. package/dist/src/{nova-reel-u2eF2Cxm.js → nova-reel-D_W1tjMH.js} +22 -21
  182. package/dist/src/{nova-reel-P9bwvtYX.js → nova-reel-bgjxilYW.js} +20 -23
  183. package/dist/src/{nova-sonic-CK2rAiKi.js → nova-sonic-CFb5GYhg.js} +30 -26
  184. package/dist/src/{nova-sonic-BaqWlkds.js → nova-sonic-DIGQNR07.js} +30 -31
  185. package/dist/src/{nova-sonic-yZapPLv7.js → nova-sonic-De1HW5fD.js} +31 -32
  186. package/dist/src/{nova-sonic-Ds1C-dpm.cjs → nova-sonic-zfcljeRp.cjs} +30 -31
  187. package/dist/src/{openai-DUFopMrH.cjs → openai-Cuif0GEt.cjs} +8 -9
  188. package/dist/src/{openai-PblZ3jUE.js → openai-DElQ-fPX.js} +3 -4
  189. package/dist/src/{openai-CcN1B8Sb.js → openai-DhbB7eWK.js} +3 -4
  190. package/dist/src/openai-j-sE2O7r.js +44 -0
  191. package/dist/src/{openclaw-B6qqDr_u.cjs → openclaw-CSugPYAr.cjs} +188 -130
  192. package/dist/src/{openclaw-A-3_loM7.js → openclaw-DiSz3I5L.js} +180 -109
  193. package/dist/src/{openclaw-a3lylB-V.js → openclaw-DuvJKEW5.js} +178 -124
  194. package/dist/src/{openclaw-COn6QzDi.js → openclaw-tiVYRtr-.js} +178 -122
  195. package/dist/src/opencode-sdk-0j6rTWNb.js +562 -0
  196. package/dist/src/opencode-sdk-B3CWY9h_.js +560 -0
  197. package/dist/src/opencode-sdk-BL764Jdi.cjs +564 -0
  198. package/dist/src/opencode-sdk-C2y6UkP2.js +560 -0
  199. package/dist/src/{otlpReceiver-oyf5wLGC.js → otlpReceiver-C99PPb48.js} +53 -51
  200. package/dist/src/{otlpReceiver-lXsYVbpj.cjs → otlpReceiver-CGq6LspY.cjs} +53 -55
  201. package/dist/src/{otlpReceiver-94URx7UW.js → otlpReceiver-CdNBdbsk.js} +53 -55
  202. package/dist/src/{otlpReceiver-BmmTiMjA.js → otlpReceiver-D89fR-rC.js} +53 -55
  203. package/dist/src/{providerRegistry-Cq_JK_CJ.js → providerRegistry-B0RUOLI_.js} +7 -8
  204. package/dist/src/{providerRegistry-DSSHjMKf.js → providerRegistry-CD8MEar9.js} +7 -8
  205. package/dist/src/{providerRegistry-CvHEVJad.cjs → providerRegistry-Civky8Ar.cjs} +12 -13
  206. package/dist/src/providerRegistry-DM8rZYol.js +45 -0
  207. package/dist/src/providers-B7V0njNs.js +32 -0
  208. package/dist/src/providers-BEwbhv0X.js +30 -0
  209. package/dist/src/{providers-Iil64vk9.js → providers-BlqUifFg.js} +1543 -1676
  210. package/dist/src/providers-CH3C7zf7.js +30 -0
  211. package/dist/src/{providers-DHbjzW2e.cjs → providers-CgKOSgTR.cjs} +1896 -2029
  212. package/dist/src/providers-D8lF1sqW.js +33246 -0
  213. package/dist/src/{providers-BnFpbY_s.js → providers-Dk_6ocUX.js} +1536 -1669
  214. package/dist/src/providers-zyB6k_38.cjs +31 -0
  215. package/dist/src/{pythonUtils-CcT5LH1M.js → pythonUtils-C3py6GC1.js} +18 -19
  216. package/dist/src/{pythonUtils-DBbuI3QJ.cjs → pythonUtils-CTU3Y3lw.cjs} +42 -43
  217. package/dist/src/{pythonUtils-hZ8LeQLv.js → pythonUtils-D5nxkQ0P.js} +18 -19
  218. package/dist/src/pythonUtils-D6fwaDSg.js +249 -0
  219. package/dist/src/{quiverai-BuI0tE39.js → quiverai-BbOUOn2L.js} +8 -7
  220. package/dist/src/{quiverai-DCGSZt4U.js → quiverai-CIaELU_m.js} +8 -10
  221. package/dist/src/{quiverai-DiMVJQDz.cjs → quiverai-PdShCPox.cjs} +8 -9
  222. package/dist/src/{quiverai-fQNkExW4.js → quiverai-uH-dcTIr.js} +9 -11
  223. package/dist/src/{render-Dj1smHEb.js → render-Drod8m7K.js} +4 -5
  224. package/dist/src/responses-CB2jwoAr.js +660 -0
  225. package/dist/src/{responses-ghR3IOfy.cjs → responses-D8SBTL64.cjs} +39 -42
  226. package/dist/src/{responses-DOAFFENS.js → responses-DIR9Ud3j.js} +24 -27
  227. package/dist/src/{responses-CxzoQoBe.js → responses-WNGNYe3K.js} +24 -27
  228. package/dist/src/rubyUtils-BUHu6PhO.js +5 -0
  229. package/dist/src/{rubyUtils-CwbGmgYN.js → rubyUtils-BUVePouc.js} +27 -20
  230. package/dist/src/rubyUtils-BcuGX77l.js +222 -0
  231. package/dist/src/{rubyUtils-DudlFZed.js → rubyUtils-Boc4HZzX.js} +18 -19
  232. package/dist/src/rubyUtils-CP42kMvq.cjs +4 -0
  233. package/dist/src/{rubyUtils-C8MhKGHb.cjs → rubyUtils-DhCAlxZr.cjs} +48 -50
  234. package/dist/src/{sagemaker-gmskuyre.js → sagemaker-CNBxx5CJ.js} +75 -70
  235. package/dist/src/{sagemaker-CcxhlOAR.js → sagemaker-CemTFp2h.js} +75 -79
  236. package/dist/src/{sagemaker-77zbJ2Q2.cjs → sagemaker-Cl28mZU2.cjs} +75 -76
  237. package/dist/src/{sagemaker-DuM71dVU.js → sagemaker-YSyBXQQh.js} +77 -77
  238. package/dist/src/{scanner-DJYiSXQj.js → scanner-BsBlNXNn.js} +100 -121
  239. package/dist/src/server/index.js +5520 -67427
  240. package/dist/src/{server-B5v33lvE.cjs → server-C_7Ax-hA.cjs} +57 -67
  241. package/dist/src/{server-BJ4m4f1D.js → server-CqzrVGpF.js} +26 -29
  242. package/dist/src/server-CuxBbeSY.js +229 -0
  243. package/dist/src/server-DA4Cyrrq.js +7 -0
  244. package/dist/src/server-Dulb-4-K.cjs +5 -0
  245. package/dist/src/{server-RV_i_YX5.js → server-VWgWb00X.js} +19 -24
  246. package/dist/src/{signal-BW33JuId.js → signal-4U3mfRvL.js} +9 -11
  247. package/dist/src/{slack-DEURelTy.cjs → slack-BmVAVGaK.cjs} +7 -8
  248. package/dist/src/{slack-BQYeW9L3.js → slack-DCUPTzS2.js} +8 -8
  249. package/dist/src/{slack-BB6yuZzp.js → slack-DOdy_kyv.js} +7 -8
  250. package/dist/src/{slack-2pRrhhgJ.js → slack-DXMKtA-f.js} +7 -9
  251. package/dist/src/store-CXGFv4aR.js +228 -0
  252. package/dist/src/store-CXS-Q_91.js +6 -0
  253. package/dist/src/{store-D7CgQzAR.cjs → store-DLlFCC4h.cjs} +44 -45
  254. package/dist/src/{store-DJNsD1iC.js → store-DXilxTl-.js} +40 -36
  255. package/dist/src/{store-s3SftUwF.js → store-Dim__MDd.js} +34 -35
  256. package/dist/src/store-eYkaKMwq.cjs +5 -0
  257. package/dist/src/{tables-DfTsNN7X.js → tables-6YKwjN9-.js} +19 -21
  258. package/dist/src/tables-DLJPUdUE.js +288 -0
  259. package/dist/src/{tables-BKTmd6u7.cjs → tables-DPi7wKeM.cjs} +89 -91
  260. package/dist/src/{tables-DMegD0Xf.js → tables-gftXzE9I.js} +21 -23
  261. package/dist/src/telemetry-BpMfhthR.cjs +5 -0
  262. package/dist/src/{telemetry--WAdAfVi.js → telemetry-CMrFgtPB.js} +11 -13
  263. package/dist/src/telemetry-Cps3mIU-.js +171 -0
  264. package/dist/src/{telemetry-DQgVBCAb.cjs → telemetry-DaX14Chu.cjs} +21 -24
  265. package/dist/src/{telemetry-BedSm-bZ.js → telemetry-Dthj_BbD.js} +17 -14
  266. package/dist/src/telemetry-Dw38hanS.js +7 -0
  267. package/dist/src/{text-oiSbwSOI.js → text-B_UCRPp2.js} +2 -2
  268. package/dist/src/{text-oKzCBnK6.cjs → text-CW1cyrwj.cjs} +12 -13
  269. package/dist/src/{text-B_IrO4GZ.js → text-Db-Wt2u2.js} +2 -2
  270. package/dist/src/text-TIv0QYnd.js +22 -0
  271. package/dist/src/{tokenUsageUtils-FZd5O_4A.js → tokenUsageUtils-BDGe-iyI.js} +2 -2
  272. package/dist/src/{tokenUsageUtils-DmZSD2eU.js → tokenUsageUtils-DflFMjS0.js} +2 -2
  273. package/dist/src/tokenUsageUtils-NYT-WKS6.js +138 -0
  274. package/dist/src/{tokenUsageUtils-CXhxVj72.cjs → tokenUsageUtils-bVa1ga6f.cjs} +32 -33
  275. package/dist/src/{transcription-mYS9vd5v.js → transcription-BNYURcXg.js} +14 -7
  276. package/dist/src/{transcription-X2-B4vkX.js → transcription-B_OdaHp7.js} +14 -16
  277. package/dist/src/{transcription-BO1AHegO.cjs → transcription-NLVG9MT1.cjs} +14 -15
  278. package/dist/src/{transcription-lzBLiTFJ.js → transcription-s6A-bNrZ.js} +15 -17
  279. package/dist/src/{transform-B1Hi5lWS.cjs → transform-CzK1Q0zl.cjs} +24 -26
  280. package/dist/src/{transform-DeGlxb0D.js → transform-D5HsjduX.js} +39 -47
  281. package/dist/src/{transform-CYDILYDe.js → transform-DECvGmzp.js} +15 -13
  282. package/dist/src/transform-DTGDnAzW.js +6 -0
  283. package/dist/src/{transform-BEgStbHK.js → transform-DilY9wbS.js} +10 -12
  284. package/dist/src/{transform-D5PjiWiZ.cjs → transform-DuHvhZpj.cjs} +179 -187
  285. package/dist/src/transform-aa6tmVpZ.js +216 -0
  286. package/dist/src/transform-m3qNw4KP.cjs +5 -0
  287. package/dist/src/transform-uAytVuyX.js +1506 -0
  288. package/dist/src/{transform-Dfl89yi4.js → transform-vNucnNr0.js} +39 -47
  289. package/dist/src/{transformersAvailability-SZnTS3pJ.js → transformersAvailability-CEVM2GNQ.js} +2 -2
  290. package/dist/src/{transformersAvailability-D-glmEy7.cjs → transformersAvailability-CwayUSlh.cjs} +2 -3
  291. package/dist/src/{transformersAvailability-CjeFXhuJ.js → transformersAvailability-D6c6ROpT.js} +2 -2
  292. package/dist/src/{types-DWNf48sT.cjs → types-C_7nyzr1.cjs} +538 -574
  293. package/dist/src/{types-CXQduE9o.js → types-Cbd8uOMq.js} +68 -100
  294. package/dist/src/types-CzW2QFyi.js +3288 -0
  295. package/dist/src/{types-C5hEkb-x.js → types-DmyIJ-sR.js} +63 -99
  296. package/dist/src/{util-CoQjmE3u.js → util-B3xGByQh.js} +4 -5
  297. package/dist/src/{util-aLhtl3fe.cjs → util-B9vlHIIh.cjs} +208 -223
  298. package/dist/src/{util-Du96oyYS.js → util-BHGHw5G1.js} +4 -5
  299. package/dist/src/{util-DQ984syk.js → util-BRYkYPTd.js} +36 -51
  300. package/dist/src/{util-D9eLdGfa.js → util-BV4XUC0n.js} +5 -6
  301. package/dist/src/util-Bv6uGDfH.js +293 -0
  302. package/dist/src/{util-1wWM599Z.cjs → util-BzMcevZc.cjs} +50 -51
  303. package/dist/src/{util-_h4pVqrz.js → util-C1CeHl-P.js} +36 -51
  304. package/dist/src/{util-Bm_-UMD_.js → util-CMy69ZgQ.js} +5 -6
  305. package/dist/src/{util-CyUdMzV0.cjs → util-DGNOS1db.cjs} +34 -35
  306. package/dist/src/util-Dnmk2mBQ.js +599 -0
  307. package/dist/src/util-ZzmqNPlg.js +1426 -0
  308. package/dist/src/{utils-BjLy-Q72.cjs → utils-Cz9qXqII.cjs} +29 -32
  309. package/dist/src/{utils-CFMn2yHW.js → utils-XiOAgly5.js} +4 -7
  310. package/dist/src/utils-dLokC-eR.js +94 -0
  311. package/dist/src/{utils-DvWMzuMx.js → utils-f2-Moju7.js} +4 -7
  312. package/dist/tsconfig.tsbuildinfo +1 -1
  313. package/package.json +38 -38
  314. package/dist/src/app/assets/index-B2D0bCSI.js +0 -439
  315. package/dist/src/app/assets/vendor-charts-CCl15Imd.js +0 -36
  316. package/dist/src/cache-ChPcurj7.js +0 -6
  317. package/dist/src/cache-VVu_W-yg.js +0 -8
  318. package/dist/src/cache-YLNCFEM2.cjs +0 -6
  319. package/dist/src/chunk-DHDDz29n.js +0 -22
  320. package/dist/src/chunk-FhC4c-0y.js +0 -21
  321. package/dist/src/cloud-BndfXy4H.js +0 -5
  322. package/dist/src/eval-BhHvMY82.js +0 -17
  323. package/dist/src/evalResult-Dq2gFNQY.js +0 -12
  324. package/dist/src/evalResult-nmcP5VKH.cjs +0 -12
  325. package/dist/src/evalResult-trqZjVYh.js +0 -14
  326. package/dist/src/evaluator-CnfPstzT.js +0 -39
  327. package/dist/src/fetch-IDPDue6F.cjs +0 -4
  328. package/dist/src/fetch-hKJ-It8q.js +0 -6
  329. package/dist/src/fetch-ouKnrWK-.js +0 -4
  330. package/dist/src/graders-CQn7WUsd.cjs +0 -34
  331. package/dist/src/graders-DC6QAbpW.js +0 -35
  332. package/dist/src/graders-DUWz3Y7j.js +0 -37
  333. package/dist/src/opencode-sdk-4bL9n-Gk.js +0 -382
  334. package/dist/src/opencode-sdk-BfC2zWcR.js +0 -376
  335. package/dist/src/opencode-sdk-DMJyuwMg.js +0 -380
  336. package/dist/src/opencode-sdk-Da-9adza.cjs +0 -383
  337. package/dist/src/providers-CsXB2Ix-.js +0 -35
  338. package/dist/src/providers-DO8ltjLC.js +0 -33
  339. package/dist/src/providers-Dtq-xnXd.cjs +0 -33
  340. package/dist/src/rubyUtils-BUbcND2f.js +0 -6
  341. package/dist/src/rubyUtils-Cr55X_KE.js +0 -5
  342. package/dist/src/rubyUtils-DlIiqoYo.cjs +0 -5
  343. package/dist/src/server-C2eQH4Gu.js +0 -6
  344. package/dist/src/server-CXWycu7H.cjs +0 -6
  345. package/dist/src/server-Q6OGlxxT.js +0 -8
  346. package/dist/src/store-B3EDO9Q3.js +0 -7
  347. package/dist/src/store-Dl9F8aw5.js +0 -6
  348. package/dist/src/store-SnrGrlt9.cjs +0 -6
  349. package/dist/src/telemetry-BGhiPZtl.js +0 -8
  350. package/dist/src/telemetry-CFfiYan6.cjs +0 -6
  351. package/dist/src/telemetry-DHzEduxX.js +0 -6
  352. package/dist/src/transform-C1x1ZlMQ.cjs +0 -6
  353. package/dist/src/transform-DYHjFmQu.js +0 -8
  354. package/dist/src/transform-rmwJT5JQ.js +0 -7
  355. package/dist/src/transformersAvailability-eJooj0gX.js +0 -35
@@ -1,5 +1,5 @@
1
- const require_logger = require('./logger-B7sBeGa0.cjs');
2
- const require_types = require('./types-DWNf48sT.cjs');
1
+ const require_logger = require("./logger-Cp1GPUjj.cjs");
2
+ const require_types = require("./types-C_7nyzr1.cjs");
3
3
  let path = require("path");
4
4
  path = require_logger.__toESM(path);
5
5
  let drizzle_orm = require("drizzle-orm");
@@ -8,11 +8,10 @@ better_sqlite3 = require_logger.__toESM(better_sqlite3);
8
8
  let drizzle_orm_better_sqlite3 = require("drizzle-orm/better-sqlite3");
9
9
  let drizzle_orm_logger = require("drizzle-orm/logger");
10
10
  let drizzle_orm_sqlite_core = require("drizzle-orm/sqlite-core");
11
-
12
11
  //#region src/database/index.ts
13
12
  var DrizzleLogWriter = class {
14
13
  write(message) {
15
- if (require_logger.getEnvBool("PROMPTFOO_ENABLE_DATABASE_LOGS", false)) require_logger.logger_default.debug(`Drizzle: ${message}`);
14
+ if (require_logger.getEnvBool("PROMPTFOO_ENABLE_DATABASE_LOGS", false)) require_logger.logger.debug(`Drizzle: ${message}`);
16
15
  }
17
16
  };
18
17
  let dbInstance = null;
@@ -31,19 +30,18 @@ function getDb() {
31
30
  if (!isMemoryDb && !require_logger.getEnvBool("PROMPTFOO_DISABLE_WAL_MODE", false)) try {
32
31
  sqliteInstance.pragma("journal_mode = WAL");
33
32
  const result = sqliteInstance.prepare("PRAGMA journal_mode").get();
34
- if (result.journal_mode.toLowerCase() === "wal") require_logger.logger_default.debug("Successfully enabled SQLite WAL mode");
35
- else require_logger.logger_default.warn(`Failed to enable WAL mode (got '${result.journal_mode}'). Database performance may be reduced. This can happen on network filesystems. Set PROMPTFOO_DISABLE_WAL_MODE=true to suppress this warning.`);
33
+ if (result.journal_mode.toLowerCase() === "wal") require_logger.logger.debug("Successfully enabled SQLite WAL mode");
34
+ else require_logger.logger.warn(`Failed to enable WAL mode (got '${result.journal_mode}'). Database performance may be reduced. This can happen on network filesystems. Set PROMPTFOO_DISABLE_WAL_MODE=true to suppress this warning.`);
36
35
  sqliteInstance.pragma("wal_autocheckpoint = 1000");
37
36
  sqliteInstance.pragma("synchronous = NORMAL");
38
37
  } catch (err) {
39
- require_logger.logger_default.warn(`Error configuring SQLite WAL mode: ${err}. Database will use default journal mode. Performance may be reduced. This can happen on network filesystems or certain containerized environments. Set PROMPTFOO_DISABLE_WAL_MODE=true to suppress this warning.`);
38
+ require_logger.logger.warn(`Error configuring SQLite WAL mode: ${err}. Database will use default journal mode. Performance may be reduced. This can happen on network filesystems or certain containerized environments. Set PROMPTFOO_DISABLE_WAL_MODE=true to suppress this warning.`);
40
39
  }
41
40
  const drizzleLogger = new drizzle_orm_logger.DefaultLogger({ writer: new DrizzleLogWriter() });
42
41
  dbInstance = (0, drizzle_orm_better_sqlite3.drizzle)(sqliteInstance, { logger: drizzleLogger });
43
42
  }
44
43
  return dbInstance;
45
44
  }
46
-
47
45
  //#endregion
48
46
  //#region src/database/tables.ts
49
47
  const promptsTable = (0, drizzle_orm_sqlite_core.sqliteTable)("prompts", {
@@ -121,7 +119,7 @@ const evalsToPromptsTable = (0, drizzle_orm_sqlite_core.sqliteTable)("evals_to_p
121
119
  evalIdIdx: (0, drizzle_orm_sqlite_core.index)("evals_to_prompts_eval_id_idx").on(t.evalId),
122
120
  promptIdIdx: (0, drizzle_orm_sqlite_core.index)("evals_to_prompts_prompt_id_idx").on(t.promptId)
123
121
  }));
124
- const promptsRelations = (0, drizzle_orm.relations)(promptsTable, ({ many }) => ({ evalsToPrompts: many(evalsToPromptsTable) }));
122
+ (0, drizzle_orm.relations)(promptsTable, ({ many }) => ({ evalsToPrompts: many(evalsToPromptsTable) }));
125
123
  const evalsToTagsTable = (0, drizzle_orm_sqlite_core.sqliteTable)("evals_to_tags", {
126
124
  evalId: (0, drizzle_orm_sqlite_core.text)("eval_id").notNull().references(() => evalsTable.id),
127
125
  tagId: (0, drizzle_orm_sqlite_core.text)("tag_id").notNull().references(() => tagsTable.id)
@@ -130,8 +128,8 @@ const evalsToTagsTable = (0, drizzle_orm_sqlite_core.sqliteTable)("evals_to_tags
130
128
  evalIdIdx: (0, drizzle_orm_sqlite_core.index)("evals_to_tags_eval_id_idx").on(t.evalId),
131
129
  tagIdIdx: (0, drizzle_orm_sqlite_core.index)("evals_to_tags_tag_id_idx").on(t.tagId)
132
130
  }));
133
- const tagsRelations = (0, drizzle_orm.relations)(tagsTable, ({ many }) => ({ evalsToTags: many(evalsToTagsTable) }));
134
- const evalsToTagsRelations = (0, drizzle_orm.relations)(evalsToTagsTable, ({ one }) => ({
131
+ (0, drizzle_orm.relations)(tagsTable, ({ many }) => ({ evalsToTags: many(evalsToTagsTable) }));
132
+ (0, drizzle_orm.relations)(evalsToTagsTable, ({ one }) => ({
135
133
  eval: one(evalsTable, {
136
134
  fields: [evalsToTagsTable.evalId],
137
135
  references: [evalsTable.id]
@@ -179,13 +177,13 @@ const evalsToDatasetsTable = (0, drizzle_orm_sqlite_core.sqliteTable)("evals_to_
179
177
  evalIdIdx: (0, drizzle_orm_sqlite_core.index)("evals_to_datasets_eval_id_idx").on(t.evalId),
180
178
  datasetIdIdx: (0, drizzle_orm_sqlite_core.index)("evals_to_datasets_dataset_id_idx").on(t.datasetId)
181
179
  }));
182
- const datasetsRelations = (0, drizzle_orm.relations)(datasetsTable, ({ many }) => ({ evalsToDatasets: many(evalsToDatasetsTable) }));
183
- const evalsRelations = (0, drizzle_orm.relations)(evalsTable, ({ many }) => ({
180
+ (0, drizzle_orm.relations)(datasetsTable, ({ many }) => ({ evalsToDatasets: many(evalsToDatasetsTable) }));
181
+ (0, drizzle_orm.relations)(evalsTable, ({ many }) => ({
184
182
  evalsToPrompts: many(evalsToPromptsTable),
185
183
  evalsToDatasets: many(evalsToDatasetsTable),
186
184
  evalsToTags: many(evalsToTagsTable)
187
185
  }));
188
- const evalsToPromptsRelations = (0, drizzle_orm.relations)(evalsToPromptsTable, ({ one }) => ({
186
+ (0, drizzle_orm.relations)(evalsToPromptsTable, ({ one }) => ({
189
187
  eval: one(evalsTable, {
190
188
  fields: [evalsToPromptsTable.evalId],
191
189
  references: [evalsTable.id]
@@ -195,7 +193,7 @@ const evalsToPromptsRelations = (0, drizzle_orm.relations)(evalsToPromptsTable,
195
193
  references: [promptsTable.id]
196
194
  })
197
195
  }));
198
- const evalsToDatasetsRelations = (0, drizzle_orm.relations)(evalsToDatasetsTable, ({ one }) => ({
196
+ (0, drizzle_orm.relations)(evalsToDatasetsTable, ({ one }) => ({
199
197
  eval: one(evalsTable, {
200
198
  fields: [evalsToDatasetsTable.evalId],
201
199
  references: [evalsTable.id]
@@ -205,7 +203,7 @@ const evalsToDatasetsRelations = (0, drizzle_orm.relations)(evalsToDatasetsTable
205
203
  references: [datasetsTable.id]
206
204
  })
207
205
  }));
208
- const configsTable = (0, drizzle_orm_sqlite_core.sqliteTable)("configs", {
206
+ (0, drizzle_orm_sqlite_core.sqliteTable)("configs", {
209
207
  id: (0, drizzle_orm_sqlite_core.text)("id").primaryKey(),
210
208
  createdAt: (0, drizzle_orm_sqlite_core.integer)("created_at").notNull().default(drizzle_orm.sql`CURRENT_TIMESTAMP`),
211
209
  updatedAt: (0, drizzle_orm_sqlite_core.integer)("updated_at").notNull().default(drizzle_orm.sql`CURRENT_TIMESTAMP`),
@@ -216,7 +214,7 @@ const configsTable = (0, drizzle_orm_sqlite_core.sqliteTable)("configs", {
216
214
  createdAtIdx: (0, drizzle_orm_sqlite_core.index)("configs_created_at_idx").on(table.createdAt),
217
215
  typeIdx: (0, drizzle_orm_sqlite_core.index)("configs_type_idx").on(table.type)
218
216
  }));
219
- const modelAuditsTable = (0, drizzle_orm_sqlite_core.sqliteTable)("model_audits", {
217
+ (0, drizzle_orm_sqlite_core.sqliteTable)("model_audits", {
220
218
  id: (0, drizzle_orm_sqlite_core.text)("id").primaryKey(),
221
219
  createdAt: (0, drizzle_orm_sqlite_core.integer)("created_at").notNull().default(drizzle_orm.sql`CURRENT_TIMESTAMP`),
222
220
  updatedAt: (0, drizzle_orm_sqlite_core.integer)("updated_at").notNull().default(drizzle_orm.sql`CURRENT_TIMESTAMP`),
@@ -275,101 +273,101 @@ const spansTable = (0, drizzle_orm_sqlite_core.sqliteTable)("spans", {
275
273
  traceIdIdx: (0, drizzle_orm_sqlite_core.index)("spans_trace_id_idx").on(table.traceId),
276
274
  spanIdIdx: (0, drizzle_orm_sqlite_core.index)("spans_span_id_idx").on(table.spanId)
277
275
  }));
278
- const tracesRelations = (0, drizzle_orm.relations)(tracesTable, ({ one, many }) => ({
276
+ (0, drizzle_orm.relations)(tracesTable, ({ one, many }) => ({
279
277
  eval: one(evalsTable, {
280
278
  fields: [tracesTable.evaluationId],
281
279
  references: [evalsTable.id]
282
280
  }),
283
281
  spans: many(spansTable)
284
282
  }));
285
- const spansRelations = (0, drizzle_orm.relations)(spansTable, ({ one }) => ({ trace: one(tracesTable, {
283
+ (0, drizzle_orm.relations)(spansTable, ({ one }) => ({ trace: one(tracesTable, {
286
284
  fields: [spansTable.traceId],
287
285
  references: [tracesTable.traceId]
288
286
  }) }));
289
-
290
287
  //#endregion
291
- Object.defineProperty(exports, 'blobAssetsTable', {
292
- enumerable: true,
293
- get: function () {
294
- return blobAssetsTable;
295
- }
288
+ Object.defineProperty(exports, "blobAssetsTable", {
289
+ enumerable: true,
290
+ get: function() {
291
+ return blobAssetsTable;
292
+ }
296
293
  });
297
- Object.defineProperty(exports, 'blobReferencesTable', {
298
- enumerable: true,
299
- get: function () {
300
- return blobReferencesTable;
301
- }
294
+ Object.defineProperty(exports, "blobReferencesTable", {
295
+ enumerable: true,
296
+ get: function() {
297
+ return blobReferencesTable;
298
+ }
302
299
  });
303
- Object.defineProperty(exports, 'datasetsTable', {
304
- enumerable: true,
305
- get: function () {
306
- return datasetsTable;
307
- }
300
+ Object.defineProperty(exports, "datasetsTable", {
301
+ enumerable: true,
302
+ get: function() {
303
+ return datasetsTable;
304
+ }
308
305
  });
309
- Object.defineProperty(exports, 'evalResultsTable', {
310
- enumerable: true,
311
- get: function () {
312
- return evalResultsTable;
313
- }
306
+ Object.defineProperty(exports, "evalResultsTable", {
307
+ enumerable: true,
308
+ get: function() {
309
+ return evalResultsTable;
310
+ }
314
311
  });
315
- Object.defineProperty(exports, 'evalsTable', {
316
- enumerable: true,
317
- get: function () {
318
- return evalsTable;
319
- }
312
+ Object.defineProperty(exports, "evalsTable", {
313
+ enumerable: true,
314
+ get: function() {
315
+ return evalsTable;
316
+ }
320
317
  });
321
- Object.defineProperty(exports, 'evalsToDatasetsTable', {
322
- enumerable: true,
323
- get: function () {
324
- return evalsToDatasetsTable;
325
- }
318
+ Object.defineProperty(exports, "evalsToDatasetsTable", {
319
+ enumerable: true,
320
+ get: function() {
321
+ return evalsToDatasetsTable;
322
+ }
326
323
  });
327
- Object.defineProperty(exports, 'evalsToPromptsTable', {
328
- enumerable: true,
329
- get: function () {
330
- return evalsToPromptsTable;
331
- }
324
+ Object.defineProperty(exports, "evalsToPromptsTable", {
325
+ enumerable: true,
326
+ get: function() {
327
+ return evalsToPromptsTable;
328
+ }
332
329
  });
333
- Object.defineProperty(exports, 'evalsToTagsTable', {
334
- enumerable: true,
335
- get: function () {
336
- return evalsToTagsTable;
337
- }
330
+ Object.defineProperty(exports, "evalsToTagsTable", {
331
+ enumerable: true,
332
+ get: function() {
333
+ return evalsToTagsTable;
334
+ }
338
335
  });
339
- Object.defineProperty(exports, 'getDb', {
340
- enumerable: true,
341
- get: function () {
342
- return getDb;
343
- }
336
+ Object.defineProperty(exports, "getDb", {
337
+ enumerable: true,
338
+ get: function() {
339
+ return getDb;
340
+ }
344
341
  });
345
- Object.defineProperty(exports, 'getDbSignalPath', {
346
- enumerable: true,
347
- get: function () {
348
- return getDbSignalPath;
349
- }
342
+ Object.defineProperty(exports, "getDbSignalPath", {
343
+ enumerable: true,
344
+ get: function() {
345
+ return getDbSignalPath;
346
+ }
350
347
  });
351
- Object.defineProperty(exports, 'promptsTable', {
352
- enumerable: true,
353
- get: function () {
354
- return promptsTable;
355
- }
348
+ Object.defineProperty(exports, "promptsTable", {
349
+ enumerable: true,
350
+ get: function() {
351
+ return promptsTable;
352
+ }
356
353
  });
357
- Object.defineProperty(exports, 'spansTable', {
358
- enumerable: true,
359
- get: function () {
360
- return spansTable;
361
- }
354
+ Object.defineProperty(exports, "spansTable", {
355
+ enumerable: true,
356
+ get: function() {
357
+ return spansTable;
358
+ }
362
359
  });
363
- Object.defineProperty(exports, 'tagsTable', {
364
- enumerable: true,
365
- get: function () {
366
- return tagsTable;
367
- }
360
+ Object.defineProperty(exports, "tagsTable", {
361
+ enumerable: true,
362
+ get: function() {
363
+ return tagsTable;
364
+ }
368
365
  });
369
- Object.defineProperty(exports, 'tracesTable', {
370
- enumerable: true,
371
- get: function () {
372
- return tracesTable;
373
- }
366
+ Object.defineProperty(exports, "tracesTable", {
367
+ enumerable: true,
368
+ get: function() {
369
+ return tracesTable;
370
+ }
374
371
  });
375
- //# sourceMappingURL=tables-BKTmd6u7.cjs.map
372
+
373
+ //# sourceMappingURL=tables-DPi7wKeM.cjs.map
@@ -1,17 +1,16 @@
1
1
  #!/usr/bin/env node
2
- import { b as getEnvBool, o as logger_default, v as getConfigDirectoryPath } from "./logger-LSBxlt7a.js";
3
- import { s as ResultFailureReason } from "./types-CXQduE9o.js";
2
+ import { b as getEnvBool, o as logger, v as getConfigDirectoryPath } from "./logger-KkObSCzq.js";
3
+ import { s as ResultFailureReason } from "./types-Cbd8uOMq.js";
4
4
  import * as path$1 from "path";
5
5
  import { relations, sql } from "drizzle-orm";
6
6
  import Database from "better-sqlite3";
7
7
  import { drizzle } from "drizzle-orm/better-sqlite3";
8
8
  import { DefaultLogger } from "drizzle-orm/logger";
9
9
  import { index, integer, primaryKey, real, sqliteTable, text, uniqueIndex } from "drizzle-orm/sqlite-core";
10
-
11
10
  //#region src/database/index.ts
12
11
  var DrizzleLogWriter = class {
13
12
  write(message) {
14
- if (getEnvBool("PROMPTFOO_ENABLE_DATABASE_LOGS", false)) logger_default.debug(`Drizzle: ${message}`);
13
+ if (getEnvBool("PROMPTFOO_ENABLE_DATABASE_LOGS", false)) logger.debug(`Drizzle: ${message}`);
15
14
  }
16
15
  };
17
16
  let dbInstance = null;
@@ -30,12 +29,12 @@ function getDb() {
30
29
  if (!isMemoryDb && !getEnvBool("PROMPTFOO_DISABLE_WAL_MODE", false)) try {
31
30
  sqliteInstance.pragma("journal_mode = WAL");
32
31
  const result = sqliteInstance.prepare("PRAGMA journal_mode").get();
33
- if (result.journal_mode.toLowerCase() === "wal") logger_default.debug("Successfully enabled SQLite WAL mode");
34
- else logger_default.warn(`Failed to enable WAL mode (got '${result.journal_mode}'). Database performance may be reduced. This can happen on network filesystems. Set PROMPTFOO_DISABLE_WAL_MODE=true to suppress this warning.`);
32
+ if (result.journal_mode.toLowerCase() === "wal") logger.debug("Successfully enabled SQLite WAL mode");
33
+ else logger.warn(`Failed to enable WAL mode (got '${result.journal_mode}'). Database performance may be reduced. This can happen on network filesystems. Set PROMPTFOO_DISABLE_WAL_MODE=true to suppress this warning.`);
35
34
  sqliteInstance.pragma("wal_autocheckpoint = 1000");
36
35
  sqliteInstance.pragma("synchronous = NORMAL");
37
36
  } catch (err) {
38
- logger_default.warn(`Error configuring SQLite WAL mode: ${err}. Database will use default journal mode. Performance may be reduced. This can happen on network filesystems or certain containerized environments. Set PROMPTFOO_DISABLE_WAL_MODE=true to suppress this warning.`);
37
+ logger.warn(`Error configuring SQLite WAL mode: ${err}. Database will use default journal mode. Performance may be reduced. This can happen on network filesystems or certain containerized environments. Set PROMPTFOO_DISABLE_WAL_MODE=true to suppress this warning.`);
39
38
  }
40
39
  const drizzleLogger = new DefaultLogger({ writer: new DrizzleLogWriter() });
41
40
  dbInstance = drizzle(sqliteInstance, { logger: drizzleLogger });
@@ -46,14 +45,14 @@ function closeDb() {
46
45
  if (sqliteInstance) try {
47
46
  if (!getEnvBool("IS_TESTING") && !getEnvBool("PROMPTFOO_DISABLE_WAL_MODE", false)) try {
48
47
  sqliteInstance.pragma("wal_checkpoint(TRUNCATE)");
49
- logger_default.debug("Successfully checkpointed WAL file before closing");
48
+ logger.debug("Successfully checkpointed WAL file before closing");
50
49
  } catch (err) {
51
- logger_default.debug(`Could not checkpoint WAL file: ${err}`);
50
+ logger.debug(`Could not checkpoint WAL file: ${err}`);
52
51
  }
53
52
  sqliteInstance.close();
54
- logger_default.debug("Database connection closed successfully");
53
+ logger.debug("Database connection closed successfully");
55
54
  } catch (err) {
56
- logger_default.error(`Error closing database connection: ${err}`);
55
+ logger.error(`Error closing database connection: ${err}`);
57
56
  } finally {
58
57
  sqliteInstance = null;
59
58
  dbInstance = null;
@@ -67,7 +66,6 @@ function closeDb() {
67
66
  function closeDbIfOpen() {
68
67
  if (sqliteInstance) closeDb();
69
68
  }
70
-
71
69
  //#endregion
72
70
  //#region src/database/tables.ts
73
71
  const promptsTable = sqliteTable("prompts", {
@@ -145,7 +143,7 @@ const evalsToPromptsTable = sqliteTable("evals_to_prompts", {
145
143
  evalIdIdx: index("evals_to_prompts_eval_id_idx").on(t.evalId),
146
144
  promptIdIdx: index("evals_to_prompts_prompt_id_idx").on(t.promptId)
147
145
  }));
148
- const promptsRelations = relations(promptsTable, ({ many }) => ({ evalsToPrompts: many(evalsToPromptsTable) }));
146
+ relations(promptsTable, ({ many }) => ({ evalsToPrompts: many(evalsToPromptsTable) }));
149
147
  const evalsToTagsTable = sqliteTable("evals_to_tags", {
150
148
  evalId: text("eval_id").notNull().references(() => evalsTable.id),
151
149
  tagId: text("tag_id").notNull().references(() => tagsTable.id)
@@ -154,8 +152,8 @@ const evalsToTagsTable = sqliteTable("evals_to_tags", {
154
152
  evalIdIdx: index("evals_to_tags_eval_id_idx").on(t.evalId),
155
153
  tagIdIdx: index("evals_to_tags_tag_id_idx").on(t.tagId)
156
154
  }));
157
- const tagsRelations = relations(tagsTable, ({ many }) => ({ evalsToTags: many(evalsToTagsTable) }));
158
- const evalsToTagsRelations = relations(evalsToTagsTable, ({ one }) => ({
155
+ relations(tagsTable, ({ many }) => ({ evalsToTags: many(evalsToTagsTable) }));
156
+ relations(evalsToTagsTable, ({ one }) => ({
159
157
  eval: one(evalsTable, {
160
158
  fields: [evalsToTagsTable.evalId],
161
159
  references: [evalsTable.id]
@@ -203,13 +201,13 @@ const evalsToDatasetsTable = sqliteTable("evals_to_datasets", {
203
201
  evalIdIdx: index("evals_to_datasets_eval_id_idx").on(t.evalId),
204
202
  datasetIdIdx: index("evals_to_datasets_dataset_id_idx").on(t.datasetId)
205
203
  }));
206
- const datasetsRelations = relations(datasetsTable, ({ many }) => ({ evalsToDatasets: many(evalsToDatasetsTable) }));
207
- const evalsRelations = relations(evalsTable, ({ many }) => ({
204
+ relations(datasetsTable, ({ many }) => ({ evalsToDatasets: many(evalsToDatasetsTable) }));
205
+ relations(evalsTable, ({ many }) => ({
208
206
  evalsToPrompts: many(evalsToPromptsTable),
209
207
  evalsToDatasets: many(evalsToDatasetsTable),
210
208
  evalsToTags: many(evalsToTagsTable)
211
209
  }));
212
- const evalsToPromptsRelations = relations(evalsToPromptsTable, ({ one }) => ({
210
+ relations(evalsToPromptsTable, ({ one }) => ({
213
211
  eval: one(evalsTable, {
214
212
  fields: [evalsToPromptsTable.evalId],
215
213
  references: [evalsTable.id]
@@ -219,7 +217,7 @@ const evalsToPromptsRelations = relations(evalsToPromptsTable, ({ one }) => ({
219
217
  references: [promptsTable.id]
220
218
  })
221
219
  }));
222
- const evalsToDatasetsRelations = relations(evalsToDatasetsTable, ({ one }) => ({
220
+ relations(evalsToDatasetsTable, ({ one }) => ({
223
221
  eval: one(evalsTable, {
224
222
  fields: [evalsToDatasetsTable.evalId],
225
223
  references: [evalsTable.id]
@@ -299,18 +297,18 @@ const spansTable = sqliteTable("spans", {
299
297
  traceIdIdx: index("spans_trace_id_idx").on(table.traceId),
300
298
  spanIdIdx: index("spans_span_id_idx").on(table.spanId)
301
299
  }));
302
- const tracesRelations = relations(tracesTable, ({ one, many }) => ({
300
+ relations(tracesTable, ({ one, many }) => ({
303
301
  eval: one(evalsTable, {
304
302
  fields: [tracesTable.evaluationId],
305
303
  references: [evalsTable.id]
306
304
  }),
307
305
  spans: many(spansTable)
308
306
  }));
309
- const spansRelations = relations(spansTable, ({ one }) => ({ trace: one(tracesTable, {
307
+ relations(spansTable, ({ one }) => ({ trace: one(tracesTable, {
310
308
  fields: [spansTable.traceId],
311
309
  references: [tracesTable.traceId]
312
310
  }) }));
313
-
314
311
  //#endregion
315
312
  export { getDbSignalPath as _, evalResultsTable as a, evalsToPromptsTable as c, promptsTable as d, spansTable as f, getDb as g, closeDbIfOpen as h, datasetsTable as i, evalsToTagsTable as l, tracesTable as m, blobReferencesTable as n, evalsTable as o, tagsTable as p, configsTable as r, evalsToDatasetsTable as s, blobAssetsTable as t, modelAuditsTable as u };
316
- //# sourceMappingURL=tables-DMegD0Xf.js.map
313
+
314
+ //# sourceMappingURL=tables-gftXzE9I.js.map
@@ -0,0 +1,5 @@
1
+ require("./logger-Cp1GPUjj.cjs");
2
+ require("./fetch-BPkYtG8K.cjs");
3
+ require("./accounts-gtkH-5KX.cjs");
4
+ const require_telemetry = require("./telemetry-DaX14Chu.cjs");
5
+ exports.default = require_telemetry.telemetry;
@@ -1,10 +1,9 @@
1
1
  #!/usr/bin/env node
2
- import { C as getEnvString, E as isCI, b as getEnvBool, o as logger_default } from "./logger-LSBxlt7a.js";
3
- import { D as EVENTS_ENDPOINT, F as VERSION, O as R_ENDPOINT, P as POSTHOG_KEY, i as fetchWithTimeout, n as fetchWithProxy, w as CONSENT_ENDPOINT } from "./fetch-CXZI9RRr.js";
4
- import { c as isLoggedIntoCloud, i as getAuthMethod, o as getUserEmail, s as getUserId } from "./accounts-DVINui-2.js";
2
+ import { C as getEnvString, E as isCI, b as getEnvBool, o as logger } from "./logger-KkObSCzq.js";
3
+ import { E as R_ENDPOINT, M as POSTHOG_KEY, N as VERSION, T as EVENTS_ENDPOINT, i as fetchWithTimeout, n as fetchWithProxy, w as CONSENT_ENDPOINT } from "./fetch-Dxpd4_sr.js";
4
+ import { c as isLoggedIntoCloud, i as getAuthMethod, o as getUserEmail, s as getUserId } from "./accounts-Bm2D8Db9.js";
5
5
  import { PostHog } from "posthog-node";
6
6
  import { z } from "zod";
7
-
8
7
  //#region src/telemetry.ts
9
8
  const TelemetryEventSchema = z.object({
10
9
  event: z.enum([
@@ -37,7 +36,7 @@ let posthogClient = null;
37
36
  let isShuttingDown = false;
38
37
  function getPostHogClient() {
39
38
  if (getEnvBool("PROMPTFOO_DISABLE_TELEMETRY") || getEnvBool("IS_TESTING")) return null;
40
- if (posthogClient === null && POSTHOG_KEY) try {
39
+ if (posthogClient === null && "phc_E5n5uHnDo2eREJL1uqX1cIlbkoRby4yFWt3V94HqRRg") try {
41
40
  posthogClient = new PostHog(POSTHOG_KEY, {
42
41
  host: EVENTS_ENDPOINT,
43
42
  fetch: fetchWithProxy,
@@ -73,7 +72,7 @@ var Telemetry = class {
73
72
  });
74
73
  client.flush().catch(() => {});
75
74
  } catch (error) {
76
- logger_default.debug(`PostHog identify error: ${error}`);
75
+ logger.debug(`PostHog identify error: ${error}`);
77
76
  }
78
77
  }
79
78
  get disabled() {
@@ -104,7 +103,7 @@ var Telemetry = class {
104
103
  });
105
104
  client.flush().catch(() => {});
106
105
  } catch (error) {
107
- logger_default.debug(`PostHog capture error: ${error}`);
106
+ logger.debug(`PostHog capture error: ${error}`);
108
107
  }
109
108
  fetchWithProxy(R_ENDPOINT, {
110
109
  method: "POST",
@@ -128,7 +127,7 @@ var Telemetry = class {
128
127
  try {
129
128
  await client.shutdown();
130
129
  } catch (error) {
131
- logger_default.debug(`PostHog shutdown error: ${error}`);
130
+ logger.debug(`PostHog shutdown error: ${error}`);
132
131
  }
133
132
  }
134
133
  /**
@@ -146,7 +145,7 @@ var Telemetry = class {
146
145
  }, TELEMETRY_TIMEOUT_MS);
147
146
  if (!response.ok) throw new Error(`Failed to save consent: ${response.statusText}`);
148
147
  } catch (err) {
149
- logger_default.debug(`Failed to save consent: ${err.message}`);
148
+ logger.debug(`Failed to save consent: ${err.message}`);
150
149
  }
151
150
  }
152
151
  };
@@ -161,8 +160,7 @@ if (!process[SHUTDOWN_HANDLER_KEY]) {
161
160
  if (instance) instance.shutdown().catch(() => {});
162
161
  });
163
162
  }
164
- var telemetry_default = telemetry;
165
-
166
163
  //#endregion
167
- export { TelemetryEventSchema as n, telemetry_default as r, Telemetry as t };
168
- //# sourceMappingURL=telemetry--WAdAfVi.js.map
164
+ export { TelemetryEventSchema as n, telemetry as r, Telemetry as t };
165
+
166
+ //# sourceMappingURL=telemetry-CMrFgtPB.js.map
@@ -0,0 +1,171 @@
1
+ import { t as __exportAll } from "./chunk-DEq-mXcV.js";
2
+ import { C as isCI, _ as getEnvBool, b as getEnvString, i as logger } from "./logger-DLcq4dWf.js";
3
+ import { D as R_ENDPOINT, E as EVENTS_ENDPOINT, N as POSTHOG_KEY, P as VERSION, T as CONSENT_ENDPOINT, r as fetchWithTimeout, t as fetchWithProxy } from "./fetch-HaqdX7U1.js";
4
+ import { c as isLoggedIntoCloud, i as getAuthMethod, o as getUserEmail, s as getUserId } from "./accounts-B0pgC1oV.js";
5
+ import { z } from "zod";
6
+ import { PostHog } from "posthog-node";
7
+ //#region src/telemetry.ts
8
+ var telemetry_exports = /* @__PURE__ */ __exportAll({
9
+ Telemetry: () => Telemetry,
10
+ TelemetryEventSchema: () => TelemetryEventSchema,
11
+ default: () => telemetry
12
+ });
13
+ const TelemetryEventSchema = z.object({
14
+ event: z.enum([
15
+ "assertion_used",
16
+ "command_used",
17
+ "eval setup",
18
+ "eval_ran",
19
+ "feature_used",
20
+ "funnel",
21
+ "redteam discover",
22
+ "redteam generate",
23
+ "redteam init",
24
+ "redteam poison",
25
+ "redteam report",
26
+ "redteam run",
27
+ "redteam setup",
28
+ "webui_action",
29
+ "webui_api",
30
+ "webui_page_view"
31
+ ]),
32
+ packageVersion: z.string().optional().prefault(VERSION),
33
+ properties: z.record(z.string(), z.union([
34
+ z.string(),
35
+ z.number(),
36
+ z.boolean(),
37
+ z.array(z.string())
38
+ ]))
39
+ });
40
+ let posthogClient = null;
41
+ let isShuttingDown = false;
42
+ function getPostHogClient() {
43
+ if (getEnvBool("PROMPTFOO_DISABLE_TELEMETRY") || getEnvBool("IS_TESTING")) return null;
44
+ if (posthogClient === null && "phc_E5n5uHnDo2eREJL1uqX1cIlbkoRby4yFWt3V94HqRRg") try {
45
+ posthogClient = new PostHog(POSTHOG_KEY, {
46
+ host: EVENTS_ENDPOINT,
47
+ fetch: fetchWithProxy,
48
+ flushInterval: 0
49
+ });
50
+ } catch {
51
+ posthogClient = null;
52
+ }
53
+ return posthogClient;
54
+ }
55
+ const TELEMETRY_TIMEOUT_MS = 1e3;
56
+ var Telemetry = class {
57
+ telemetryDisabledRecorded = false;
58
+ id;
59
+ email;
60
+ constructor() {
61
+ this.id = getUserId();
62
+ this.email = getUserEmail();
63
+ this.identify();
64
+ }
65
+ async identify() {
66
+ if (this.disabled || getEnvBool("IS_TESTING")) return;
67
+ const client = getPostHogClient();
68
+ if (client) try {
69
+ client.identify({
70
+ distinctId: this.id,
71
+ properties: {
72
+ email: this.email,
73
+ isLoggedIntoCloud: isLoggedIntoCloud(),
74
+ authMethod: getAuthMethod(),
75
+ isRunningInCi: isCI()
76
+ }
77
+ });
78
+ client.flush().catch(() => {});
79
+ } catch (error) {
80
+ logger.debug(`PostHog identify error: ${error}`);
81
+ }
82
+ }
83
+ get disabled() {
84
+ return getEnvBool("PROMPTFOO_DISABLE_TELEMETRY");
85
+ }
86
+ recordTelemetryDisabled() {
87
+ if (!this.telemetryDisabledRecorded) {
88
+ this.sendEvent("feature_used", { feature: "telemetry disabled" });
89
+ this.telemetryDisabledRecorded = true;
90
+ }
91
+ }
92
+ record(eventName, properties) {
93
+ if (this.disabled) this.recordTelemetryDisabled();
94
+ else this.sendEvent(eventName, properties);
95
+ }
96
+ sendEvent(eventName, properties) {
97
+ const propertiesWithMetadata = {
98
+ ...properties,
99
+ packageVersion: VERSION,
100
+ isRunningInCi: isCI()
101
+ };
102
+ const client = getPostHogClient();
103
+ if (client && !getEnvBool("IS_TESTING")) try {
104
+ client.capture({
105
+ distinctId: this.id,
106
+ event: eventName,
107
+ properties: propertiesWithMetadata
108
+ });
109
+ client.flush().catch(() => {});
110
+ } catch (error) {
111
+ logger.debug(`PostHog capture error: ${error}`);
112
+ }
113
+ fetchWithProxy(R_ENDPOINT, {
114
+ method: "POST",
115
+ headers: { "Content-Type": "application/json" },
116
+ body: JSON.stringify({
117
+ event: eventName,
118
+ environment: getEnvString("NODE_ENV", "development"),
119
+ email: this.email,
120
+ meta: {
121
+ user_id: this.id,
122
+ ...propertiesWithMetadata
123
+ }
124
+ })
125
+ }).catch(() => {});
126
+ }
127
+ async shutdown() {
128
+ if (isShuttingDown) return;
129
+ const client = getPostHogClient();
130
+ if (!client) return;
131
+ isShuttingDown = true;
132
+ try {
133
+ await client.shutdown();
134
+ } catch (error) {
135
+ logger.debug(`PostHog shutdown error: ${error}`);
136
+ }
137
+ }
138
+ /**
139
+ * This is a separate endpoint to save consent used only for redteam data synthesis for "harmful" plugins.
140
+ */
141
+ async saveConsent(email, metadata) {
142
+ try {
143
+ const response = await fetchWithTimeout(CONSENT_ENDPOINT, {
144
+ method: "POST",
145
+ headers: { "Content-Type": "application/json" },
146
+ body: JSON.stringify({
147
+ email,
148
+ metadata
149
+ })
150
+ }, TELEMETRY_TIMEOUT_MS);
151
+ if (!response.ok) throw new Error(`Failed to save consent: ${response.statusText}`);
152
+ } catch (err) {
153
+ logger.debug(`Failed to save consent: ${err.message}`);
154
+ }
155
+ }
156
+ };
157
+ const telemetry = new Telemetry();
158
+ const TELEMETRY_INSTANCE_KEY = Symbol.for("promptfoo.telemetry.instance");
159
+ const SHUTDOWN_HANDLER_KEY = Symbol.for("promptfoo.telemetry.shutdownHandler");
160
+ process[TELEMETRY_INSTANCE_KEY] = telemetry;
161
+ if (!process[SHUTDOWN_HANDLER_KEY]) {
162
+ process[SHUTDOWN_HANDLER_KEY] = true;
163
+ process.once("beforeExit", () => {
164
+ const instance = process[TELEMETRY_INSTANCE_KEY];
165
+ if (instance) instance.shutdown().catch(() => {});
166
+ });
167
+ }
168
+ //#endregion
169
+ export { telemetry as n, telemetry_exports as r, TelemetryEventSchema as t };
170
+
171
+ //# sourceMappingURL=telemetry-Cps3mIU-.js.map