promptfoo 0.120.27 → 0.121.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 (352) 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-BgNJDBE6.js +206 -0
  4. package/dist/src/{accounts-Fl2J3_Fu.cjs → accounts-Bx-x3bmW.cjs} +77 -78
  5. package/dist/src/{accounts-DVINui-2.js → accounts-CMqkzrVf.js} +39 -34
  6. package/dist/src/{accounts-CPDRAMND.js → accounts-xrUGFA6n.js} +38 -33
  7. package/dist/src/{agentic-utils-D922n6mm.js → agentic-utils-BKIN5PKu.js} +9 -10
  8. package/dist/src/{agents-BO2n8Z0d.cjs → agents-B0f4HICh.cjs} +37 -40
  9. package/dist/src/{agents-BXLmVsxR.js → agents-C-dDThPK.js} +37 -37
  10. package/dist/src/{agents-DgJf2-ez.cjs → agents-CErsqg5U.cjs} +16 -17
  11. package/dist/src/{agents-BcsN_BgB.js → agents-CVIn-Utx.js} +16 -12
  12. package/dist/src/{agents-hqgSV-3o.js → agents-CXknwsFX.js} +37 -40
  13. package/dist/src/{agents-pMfppv9Z.js → agents-DeH4Gu94.js} +18 -18
  14. package/dist/src/{agents-BdUTAwi-.js → agents-Dy2YpZpa.js} +38 -41
  15. package/dist/src/{agents-DNvSH78i.js → agents-aF4-T121.js} +16 -20
  16. package/dist/src/{aimlapi-DOib86oE.js → aimlapi-BAGZDo5G.js} +16 -18
  17. package/dist/src/{aimlapi-DtgPI0nE.js → aimlapi-BNfTBexL.js} +15 -17
  18. package/dist/src/{aimlapi-DTPACCB1.js → aimlapi-DHRKlBEA.js} +15 -4
  19. package/dist/src/{aimlapi-BE_Tg9Fl.cjs → aimlapi-tg0Gkcvr.cjs} +15 -16
  20. package/dist/src/app/assets/index-BFCZg7hQ.js +439 -0
  21. package/dist/src/app/index.html +1 -1
  22. package/dist/src/{audio-BRYU0BFo.js → audio-BRODU0UK.js} +7 -9
  23. package/dist/src/{audio-Cwo68yZS.cjs → audio-BWeaWovU.cjs} +6 -7
  24. package/dist/src/{audio-BnRUGAm_.js → audio-CHQ4r-RV.js} +6 -5
  25. package/dist/src/{audio-MSRki4JU.js → audio-tf_NBjlC.js} +6 -8
  26. package/dist/src/{base-h961VXYk.js → base-B0tcrnq_.js} +11 -13
  27. package/dist/src/{base-XB2tDJrB.js → base-B4QJRyFS.js} +11 -13
  28. package/dist/src/{base-pGVmXNl4.cjs → base-DBtwl2FR.cjs} +36 -38
  29. package/dist/src/base-fEDN28WM.js +193 -0
  30. package/dist/src/{blobs-BM_e6hCa.js → blobs-BAU-dXan.js} +9 -12
  31. package/dist/src/{blobs-CR5C4Ihh.js → blobs-Bpg5rH6i.js} +9 -12
  32. package/dist/src/{blobs-B-KQAFhX.cjs → blobs-DvS-O6be.cjs} +34 -37
  33. package/dist/src/blobs-qTYm-1PY.js +236 -0
  34. package/dist/src/{cache-CIpsoBZR.js → cache-8XhNqPKW.js} +64 -67
  35. package/dist/src/cache-Bbn1Nyrd.cjs +5 -0
  36. package/dist/src/cache-BwsMSda7.js +6 -0
  37. package/dist/src/{cache-jsiwsAJv.js → cache-CG0SlR1d.js} +64 -66
  38. package/dist/src/{cache-BTVYfbka.cjs → cache-COish3-W.cjs} +114 -117
  39. package/dist/src/cache-D3eqDYGU.js +739 -0
  40. package/dist/src/{chat-D31K7C4u.cjs → chat-2K608PeQ.cjs} +20 -21
  41. package/dist/src/chat-BKm79wib.js +764 -0
  42. package/dist/src/{chat-B84t99NW.js → chat-CM_kyI8B.js} +20 -9
  43. package/dist/src/{chat-BcPjZXIp.js → chat-CRWNNq73.js} +41 -44
  44. package/dist/src/{chat-CcUCysjU.js → chat-CznLWr_D.js} +41 -44
  45. package/dist/src/{chat-DwWifjxi.js → chat-DHMH-N64.js} +20 -22
  46. package/dist/src/{chat-BE44YOc6.cjs → chat-DaqekjFr.cjs} +61 -64
  47. package/dist/src/{chat-DZM2GUHO.js → chat-DxysjBvt.js} +21 -23
  48. package/dist/src/{chatkit-D67HS_0b.js → chatkit-65VXf5SR.js} +58 -58
  49. package/dist/src/{chatkit-DAB_qfzI.js → chatkit-Be-Q-a9F.js} +58 -60
  50. package/dist/src/{chatkit-Biqb_wsD.js → chatkit-BxFvW8KY.js} +58 -60
  51. package/dist/src/{chatkit-PGG4ZYIn.cjs → chatkit-DKyPi1Gs.cjs} +58 -60
  52. package/dist/src/chunk-DEq-mXcV.js +15 -0
  53. package/dist/src/chunk-DRamLcfz.js +16 -0
  54. package/dist/src/{claude-agent-sdk-SVM6AdBu.js → claude-agent-sdk-BLTu0WBO.js} +31 -31
  55. package/dist/src/{claude-agent-sdk-C9SiaQub.cjs → claude-agent-sdk-CJH22shf.cjs} +31 -28
  56. package/dist/src/{claude-agent-sdk-C-IOTPfo.js → claude-agent-sdk-D6_k9FKA.js} +31 -29
  57. package/dist/src/{claude-agent-sdk-CiluSyW1.js → claude-agent-sdk-Dy5lT-Tx.js} +33 -20
  58. package/dist/src/{cloud-CZ-q9Ier.js → cloud-Bc9526yV.js} +7 -9
  59. package/dist/src/cloud-DmE0EwsY.js +4 -0
  60. package/dist/src/{cloudflare-ai-BahKHyhh.js → cloudflare-ai-C9r2sRhw.js} +16 -18
  61. package/dist/src/{cloudflare-ai-Dxyt50Nl.js → cloudflare-ai-CWWJCRim.js} +16 -4
  62. package/dist/src/{cloudflare-ai-Dfahv5SY.cjs → cloudflare-ai-ClWSdor4.cjs} +16 -17
  63. package/dist/src/{cloudflare-ai-v_qZD6_q.js → cloudflare-ai-ICsOuD-z.js} +17 -19
  64. package/dist/src/{cloudflare-gateway-BPWoZIzJ.cjs → cloudflare-gateway-C2_-KG5o.cjs} +21 -22
  65. package/dist/src/{cloudflare-gateway-Bi_FpOFy.js → cloudflare-gateway-D6O7AlYb.js} +23 -23
  66. package/dist/src/{cloudflare-gateway-btS7h1OZ.js → cloudflare-gateway-D6xFc5pa.js} +21 -25
  67. package/dist/src/{cloudflare-gateway-C0guUNwk.js → cloudflare-gateway-pXGHxJ47.js} +26 -14
  68. package/dist/src/{codex-sdk-DSxAnbfT.js → codex-sdk-C6UMlxwV.js} +28 -29
  69. package/dist/src/{codex-sdk-IYVi9fuM.js → codex-sdk-DUwKWezN.js} +28 -27
  70. package/dist/src/{codex-sdk-DulY0ZRq.js → codex-sdk-GGAw0qbD.js} +28 -29
  71. package/dist/src/{codex-sdk-DFKMtAyf.cjs → codex-sdk-fAO0c3yA.cjs} +28 -29
  72. package/dist/src/{cometapi-DkNBMk0G.js → cometapi-BasUi7-_.js} +17 -19
  73. package/dist/src/{cometapi-DzrR3SR_.js → cometapi-Bbjp5V4x.js} +16 -4
  74. package/dist/src/{cometapi-C9EEpJzT.js → cometapi-DkXrKi5z.js} +21 -24
  75. package/dist/src/{cometapi-DIO64tf4.cjs → cometapi-vY6aDZgo.cjs} +21 -22
  76. package/dist/src/{completion-CG29bfKX.js → completion-6Mx_iXxK.js} +11 -13
  77. package/dist/src/{completion-Bgf1VJoq.js → completion-C5rtR_9P.js} +11 -13
  78. package/dist/src/{completion-CCRT4kX1.cjs → completion-CDOouNzq.cjs} +21 -23
  79. package/dist/src/completion-C_P3ypkJ.js +120 -0
  80. package/dist/src/{createHash-Dw_iLu31.js → createHash-CTQmL3G2.js} +2 -3
  81. package/dist/src/{createHash-CYQy4YeL.cjs → createHash-CfZSc0b4.cjs} +13 -14
  82. package/dist/src/{createHash-CJcfskIZ.js → createHash-Da8fMwqB.js} +2 -3
  83. package/dist/src/createHash-DmPQkvBh.js +15 -0
  84. package/dist/src/{docker-D-ayp2FW.js → docker-5KcG-_86.js} +18 -20
  85. package/dist/src/{docker-DNcLR4Ig.cjs → docker-BwsKwxFs.cjs} +18 -19
  86. package/dist/src/{docker-egERKxCF.js → docker-CZnqU1XV.js} +18 -7
  87. package/dist/src/{docker-B81N0t4e.js → docker-DzxyDPIj.js} +19 -21
  88. package/dist/src/entrypoint.js +2 -3
  89. package/dist/src/{errors-DnGCbnx8.js → errors-P6ll7XSJ.js} +2 -2
  90. package/dist/src/{esm-B9dPm_BF.js → esm-C03C-mv3.js} +17 -20
  91. package/dist/src/{esm-D2pZ87fL.js → esm-CaIwzWR5.js} +18 -21
  92. package/dist/src/esm-Cd1AjG1D.js +379 -0
  93. package/dist/src/{esm-Ct-Joyue.cjs → esm-CnNt7sI4.cjs} +47 -49
  94. package/dist/src/eval-17JizQIv.js +15 -0
  95. package/dist/src/{eval-C-Nr6wX_.js → eval-DmFyWU7i.js} +47 -54
  96. package/dist/src/{evalResult-4BzI2tmj.js → evalResult-CDQiuUuf.js} +16 -12
  97. package/dist/src/{evalResult-DXMWJ3sx.js → evalResult-CTG2AHOS.js} +10 -11
  98. package/dist/src/evalResult-Cqj8pldJ.js +12 -0
  99. package/dist/src/{evalResult-CX8wQecI.cjs → evalResult-Dap2CekP.cjs} +20 -21
  100. package/dist/src/evalResult-DvcJAWJU.cjs +10 -0
  101. package/dist/src/evalResult-Hftn-S_i.js +10 -0
  102. package/dist/src/evaluator-B2CFNt-P.js +36 -0
  103. package/dist/src/{evaluator-8aGyV12L.js → evaluator-DPFRbFIL.js} +201 -229
  104. package/dist/src/{extractor-CD5yKL-G.js → extractor-CFG6bcWJ.js} +22 -24
  105. package/dist/src/{extractor-C031XmTA.cjs → extractor-DX36oYEv.cjs} +37 -39
  106. package/dist/src/{extractor-V5x_m1i0.js → extractor-M67RUtg6.js} +22 -24
  107. package/dist/src/extractor-YMU_Gvt8.js +374 -0
  108. package/dist/src/{fetch-D3OHf-lV.js → fetch-4M3YRaqL.js} +40 -45
  109. package/dist/src/fetch-60Gzydls.js +777 -0
  110. package/dist/src/{fetch-CXZI9RRr.js → fetch-BMv0O527.js} +23 -35
  111. package/dist/src/{fetch-BmbD-v1L.cjs → fetch-BxUk8odA.cjs} +244 -277
  112. package/dist/src/fetch-KV5kNASw.js +5 -0
  113. package/dist/src/{fileExtensions-ePDqouxn.js → fileExtensions-DnqA1y9x.js} +2 -2
  114. package/dist/src/{fileExtensions-BpuMmaFL.js → fileExtensions-Ds-foDzt.js} +2 -2
  115. package/dist/src/fileExtensions-LcDYkU4v.js +85 -0
  116. package/dist/src/{fileExtensions-DkJYkWUy.cjs → fileExtensions-bYh77CN8.cjs} +27 -28
  117. package/dist/src/{formatDuration-CdevI3An.js → formatDuration-DgBVMN65.js} +2 -2
  118. package/dist/src/{genaiTracer-Ce19n68P.js → genaiTracer-70Z8BIuV.js} +2 -3
  119. package/dist/src/{genaiTracer-CqNnnXrE.js → genaiTracer-C1rxGO8Q.js} +2 -3
  120. package/dist/src/genaiTracer-D3fD9dNV.js +256 -0
  121. package/dist/src/{genaiTracer-Dres3qrN.cjs → genaiTracer-DN4dQywX.cjs} +13 -14
  122. package/dist/src/graders-Bu0H9nXi.js +32 -0
  123. package/dist/src/{graders-DTeBrzWp.js → graders-CHO8EPM4.js} +349 -397
  124. package/dist/src/graders-Cfhkvx-e.js +34 -0
  125. package/dist/src/{graders--1y2u9HO.js → graders-CpdqD9PI.js} +349 -397
  126. package/dist/src/graders-DClJVpGP.cjs +32 -0
  127. package/dist/src/{graders-DohM2dir.cjs → graders-DOXycdlG.cjs} +684 -732
  128. package/dist/src/graders-DcnJsrMO.js +32 -0
  129. package/dist/src/graders-R9rYUM0d.js +13466 -0
  130. package/dist/src/{image-C3wHC9_h.js → image-BmEZqVmk.js} +9 -10
  131. package/dist/src/{image-O1u4bCFg.js → image-CBBVXWuT.js} +9 -10
  132. package/dist/src/{image-DpKl2F15.cjs → image-CDLQOcqT.cjs} +6 -7
  133. package/dist/src/{image-DmE-niFE.js → image-DJEvKveK.js} +6 -5
  134. package/dist/src/{image-CuKHuccK.cjs → image-DTedmQPg.cjs} +29 -30
  135. package/dist/src/{image-B0U4Hqll.js → image-gvmivTEe.js} +7 -9
  136. package/dist/src/image-pAX56tPG.js +257 -0
  137. package/dist/src/{image-DNEIf_aI.js → image-tL5hIOFh.js} +6 -8
  138. package/dist/src/index.cjs +605 -689
  139. package/dist/src/index.d.cts +11 -7
  140. package/dist/src/index.d.ts +11 -3
  141. package/dist/src/index.js +570 -658
  142. package/dist/src/{interactiveCheck-Bxj1Swex.js → interactiveCheck-BgLZUIt3.js} +7 -8
  143. package/dist/src/{invariant-DT20jrBd.js → invariant-BtWWVVhl.js} +2 -2
  144. package/dist/src/{invariant-1pAf2CD1.js → invariant-Ddh24eXh.js} +2 -2
  145. package/dist/src/{invariant-CKcJAQ6M.cjs → invariant-kfQ8Bu82.cjs} +7 -8
  146. package/dist/src/invariant-vgHWClmd.js +25 -0
  147. package/dist/src/{knowledgeBase-Be_zyW4L.js → knowledgeBase-CLJybhnF.js} +16 -16
  148. package/dist/src/{knowledgeBase-CEzQobWX.js → knowledgeBase-CoU-UQBg.js} +14 -9
  149. package/dist/src/{knowledgeBase-BZ41IFwq.js → knowledgeBase-DjWPVqSb.js} +14 -18
  150. package/dist/src/{knowledgeBase-D-5BMXlr.cjs → knowledgeBase-wkxuRFhA.cjs} +14 -15
  151. package/dist/src/{litellm-DnbRJ2if.js → litellm-B9Hysuri.js} +16 -18
  152. package/dist/src/{litellm-CRDqPhNI.js → litellm-CTfa0hqi.js} +15 -17
  153. package/dist/src/{litellm-hUSNM_M2.cjs → litellm-NYpQ8RQu.cjs} +15 -16
  154. package/dist/src/{litellm-9vR8zpfU.js → litellm-ePxtr9F1.js} +15 -4
  155. package/dist/src/{logger-CG1uZPbQ.js → logger-CT3IKMKA.js} +10 -29
  156. package/dist/src/{logger-B7sBeGa0.cjs → logger-Cp1GPUjj.cjs} +152 -180
  157. package/dist/src/logger-DLcq4dWf.js +713 -0
  158. package/dist/src/{logger-LSBxlt7a.js → logger-KkObSCzq.js} +13 -31
  159. package/dist/src/{luma-ray-Hm3d6VJE.cjs → luma-ray-B0GGNRc1.cjs} +20 -21
  160. package/dist/src/{luma-ray-drvgdpP9.js → luma-ray-BE2mOt6N.js} +20 -13
  161. package/dist/src/{luma-ray-4blv9iZ2.js → luma-ray-BW9IRGIc.js} +22 -21
  162. package/dist/src/{luma-ray-B2__8lYH.js → luma-ray-Cm1KZBhs.js} +20 -23
  163. package/dist/src/main.js +1170 -1321
  164. package/dist/src/{messages-XhiwCbi4.cjs → messages-1JrJs91T.cjs} +32 -34
  165. package/dist/src/{messages-CGPPidQr.js → messages-1x9atZmP.js} +22 -24
  166. package/dist/src/{messages-Uee41Mj5.js → messages-BLbWdsyt.js} +22 -24
  167. package/dist/src/messages-D8EA0oDc.js +240 -0
  168. package/dist/src/{meteor-BYykdXrV.js → meteor-44VjEACX.js} +3 -4
  169. package/dist/src/{meteor-CsopaHrH.js → meteor-D-SotUw9.js} +3 -4
  170. package/dist/src/{meteor-e-E-2vVl.cjs → meteor-DLZZ3osF.cjs} +3 -4
  171. package/dist/src/{meteor-C8lGP6P4.js → meteor-DUiCJRC-.js} +3 -4
  172. package/dist/src/{modelslab-yKz-ZNB4.js → modelslab-C1OLRmVX.js} +17 -10
  173. package/dist/src/{modelslab-E9gO-bYd.js → modelslab-CqXBy3U8.js} +18 -20
  174. package/dist/src/{modelslab-lUVW0cmB.cjs → modelslab-DcOSFwKh.cjs} +17 -18
  175. package/dist/src/{modelslab-ClBkr8_9.js → modelslab-X5-4LroM.js} +17 -19
  176. package/dist/src/{nova-reel-Dk8jNpId.js → nova-reel-BgS1ZWuK.js} +20 -13
  177. package/dist/src/{nova-reel-u2eF2Cxm.js → nova-reel-D2ZkOSyr.js} +22 -21
  178. package/dist/src/{nova-reel-D8CuO6QH.cjs → nova-reel-D9xfaMBs.cjs} +20 -21
  179. package/dist/src/{nova-reel-P9bwvtYX.js → nova-reel-DihqLeol.js} +20 -23
  180. package/dist/src/{nova-sonic-Ds1C-dpm.cjs → nova-sonic-DVu3mMIy.cjs} +30 -31
  181. package/dist/src/{nova-sonic-CK2rAiKi.js → nova-sonic-DezhVUYT.js} +30 -26
  182. package/dist/src/{nova-sonic-BaqWlkds.js → nova-sonic-P-CdUMlV.js} +30 -31
  183. package/dist/src/{nova-sonic-yZapPLv7.js → nova-sonic-Q3BOJeig.js} +31 -32
  184. package/dist/src/{openai-DUFopMrH.cjs → openai-Cuif0GEt.cjs} +8 -9
  185. package/dist/src/{openai-PblZ3jUE.js → openai-DElQ-fPX.js} +3 -4
  186. package/dist/src/{openai-CcN1B8Sb.js → openai-DhbB7eWK.js} +3 -4
  187. package/dist/src/openai-j-sE2O7r.js +44 -0
  188. package/dist/src/{openclaw-A-3_loM7.js → openclaw-BiSZPL7J.js} +20 -14
  189. package/dist/src/{openclaw-COn6QzDi.js → openclaw-Bv1DINsX.js} +20 -27
  190. package/dist/src/{openclaw-a3lylB-V.js → openclaw-D1D_ej1z.js} +21 -28
  191. package/dist/src/{openclaw-B6qqDr_u.cjs → openclaw-DAfWQn-o.cjs} +33 -39
  192. package/dist/src/opencode-sdk-C7m-wRfI.js +560 -0
  193. package/dist/src/opencode-sdk-CfaLN8PY.cjs +564 -0
  194. package/dist/src/opencode-sdk-D95s6SnR.js +562 -0
  195. package/dist/src/opencode-sdk-DxUPkLT7.js +560 -0
  196. package/dist/src/{otlpReceiver-oyf5wLGC.js → otlpReceiver--AIRW_S4.js} +53 -51
  197. package/dist/src/{otlpReceiver-BmmTiMjA.js → otlpReceiver-Bn5wGB1v.js} +53 -55
  198. package/dist/src/{otlpReceiver-lXsYVbpj.cjs → otlpReceiver-Diec4cln.cjs} +53 -55
  199. package/dist/src/{otlpReceiver-94URx7UW.js → otlpReceiver-g3ByGaXs.js} +53 -55
  200. package/dist/src/{providerRegistry-Cq_JK_CJ.js → providerRegistry-B0RUOLI_.js} +7 -8
  201. package/dist/src/{providerRegistry-DSSHjMKf.js → providerRegistry-CD8MEar9.js} +7 -8
  202. package/dist/src/{providerRegistry-CvHEVJad.cjs → providerRegistry-Civky8Ar.cjs} +12 -13
  203. package/dist/src/providerRegistry-DM8rZYol.js +45 -0
  204. package/dist/src/providers-B3HvufyI.js +33246 -0
  205. package/dist/src/{providers-BnFpbY_s.js → providers-BKRJTjBz.js} +1536 -1669
  206. package/dist/src/providers-C1rOSHiR.js +32 -0
  207. package/dist/src/{providers-Iil64vk9.js → providers-CFLy1_ji.js} +1543 -1676
  208. package/dist/src/{providers-DHbjzW2e.cjs → providers-CFu-TZl-.cjs} +1896 -2029
  209. package/dist/src/providers-CxmDwEFf.cjs +31 -0
  210. package/dist/src/providers-Dodakqr0.js +30 -0
  211. package/dist/src/providers-GIQ2TcsA.js +30 -0
  212. package/dist/src/{pythonUtils-CcT5LH1M.js → pythonUtils-C3py6GC1.js} +18 -19
  213. package/dist/src/{pythonUtils-DBbuI3QJ.cjs → pythonUtils-CTU3Y3lw.cjs} +42 -43
  214. package/dist/src/{pythonUtils-hZ8LeQLv.js → pythonUtils-D5nxkQ0P.js} +18 -19
  215. package/dist/src/pythonUtils-D6fwaDSg.js +249 -0
  216. package/dist/src/{quiverai-BuI0tE39.js → quiverai-C2jVwbH1.js} +8 -7
  217. package/dist/src/{quiverai-DCGSZt4U.js → quiverai-CI6gYJVI.js} +8 -10
  218. package/dist/src/{quiverai-DiMVJQDz.cjs → quiverai-CLkWkyZc.cjs} +8 -9
  219. package/dist/src/{quiverai-fQNkExW4.js → quiverai-MHSxbmmZ.js} +9 -11
  220. package/dist/src/{render-Dj1smHEb.js → render-Drod8m7K.js} +4 -5
  221. package/dist/src/{responses-DOAFFENS.js → responses-BKqJmhhc.js} +22 -25
  222. package/dist/src/{responses-CxzoQoBe.js → responses-CGw0DCzh.js} +22 -25
  223. package/dist/src/responses-jxdehPkC.js +660 -0
  224. package/dist/src/{responses-ghR3IOfy.cjs → responses-tD4Bd4dc.cjs} +37 -40
  225. package/dist/src/rubyUtils-BUHu6PhO.js +5 -0
  226. package/dist/src/{rubyUtils-CwbGmgYN.js → rubyUtils-BUVePouc.js} +27 -20
  227. package/dist/src/rubyUtils-BcuGX77l.js +222 -0
  228. package/dist/src/{rubyUtils-DudlFZed.js → rubyUtils-Boc4HZzX.js} +18 -19
  229. package/dist/src/rubyUtils-CP42kMvq.cjs +4 -0
  230. package/dist/src/{rubyUtils-C8MhKGHb.cjs → rubyUtils-DhCAlxZr.cjs} +48 -50
  231. package/dist/src/{sagemaker-gmskuyre.js → sagemaker-BK4Zb993.js} +75 -70
  232. package/dist/src/{sagemaker-DuM71dVU.js → sagemaker-BfiWTmvn.js} +77 -77
  233. package/dist/src/{sagemaker-77zbJ2Q2.cjs → sagemaker-CcQHM1jV.cjs} +75 -76
  234. package/dist/src/{sagemaker-CcxhlOAR.js → sagemaker-D2Q1c-sD.js} +75 -79
  235. package/dist/src/{scanner-DJYiSXQj.js → scanner-J8CA3LsV.js} +100 -121
  236. package/dist/src/server/index.js +5505 -67416
  237. package/dist/src/{server-B5v33lvE.cjs → server-B0PPuDw-.cjs} +57 -67
  238. package/dist/src/server-B1vi21hA.js +7 -0
  239. package/dist/src/{server-RV_i_YX5.js → server-BC7XJFgr.js} +19 -24
  240. package/dist/src/server-Cm9Kai_h.cjs +5 -0
  241. package/dist/src/{server-BJ4m4f1D.js → server-DbFphssR.js} +26 -29
  242. package/dist/src/server-OAs3nBRT.js +229 -0
  243. package/dist/src/{signal-BW33JuId.js → signal-BOTbd53Z.js} +9 -11
  244. package/dist/src/{slack-DEURelTy.cjs → slack-BmVAVGaK.cjs} +7 -8
  245. package/dist/src/{slack-BQYeW9L3.js → slack-DCUPTzS2.js} +8 -8
  246. package/dist/src/{slack-BB6yuZzp.js → slack-DOdy_kyv.js} +7 -8
  247. package/dist/src/{slack-2pRrhhgJ.js → slack-DXMKtA-f.js} +7 -9
  248. package/dist/src/store-BNmZ1KAz.cjs +5 -0
  249. package/dist/src/{store-D7CgQzAR.cjs → store-BSc-TF2w.cjs} +44 -45
  250. package/dist/src/store-BltJg2cd.js +6 -0
  251. package/dist/src/{store-s3SftUwF.js → store-D1tv90v3.js} +34 -35
  252. package/dist/src/{store-DJNsD1iC.js → store-DQLEjuEO.js} +40 -36
  253. package/dist/src/store-Ub2vaGJ1.js +228 -0
  254. package/dist/src/{tables-DfTsNN7X.js → tables-5EvT_Bwn.js} +19 -21
  255. package/dist/src/{tables-BKTmd6u7.cjs → tables-C7K-XKWp.cjs} +89 -91
  256. package/dist/src/{tables-DMegD0Xf.js → tables-D36WTqKX.js} +21 -23
  257. package/dist/src/tables-xKANLRBD.js +288 -0
  258. package/dist/src/telemetry-5BCRNBbe.cjs +5 -0
  259. package/dist/src/{telemetry-BedSm-bZ.js → telemetry-C15ziL8u.js} +17 -14
  260. package/dist/src/{telemetry--WAdAfVi.js → telemetry-C2YDkUQH.js} +11 -13
  261. package/dist/src/{telemetry-DQgVBCAb.cjs → telemetry-CbrnxHp_.cjs} +21 -24
  262. package/dist/src/telemetry-D4W5hboe.js +7 -0
  263. package/dist/src/telemetry-DMb2Mpfm.js +171 -0
  264. package/dist/src/{text-oiSbwSOI.js → text-B_UCRPp2.js} +2 -2
  265. package/dist/src/{text-oKzCBnK6.cjs → text-CW1cyrwj.cjs} +12 -13
  266. package/dist/src/{text-B_IrO4GZ.js → text-Db-Wt2u2.js} +2 -2
  267. package/dist/src/text-TIv0QYnd.js +22 -0
  268. package/dist/src/{tokenUsageUtils-FZd5O_4A.js → tokenUsageUtils-BDGe-iyI.js} +2 -2
  269. package/dist/src/{tokenUsageUtils-DmZSD2eU.js → tokenUsageUtils-DflFMjS0.js} +2 -2
  270. package/dist/src/tokenUsageUtils-NYT-WKS6.js +138 -0
  271. package/dist/src/{tokenUsageUtils-CXhxVj72.cjs → tokenUsageUtils-bVa1ga6f.cjs} +32 -33
  272. package/dist/src/{transcription-BO1AHegO.cjs → transcription-CL78qbOU.cjs} +14 -15
  273. package/dist/src/{transcription-mYS9vd5v.js → transcription-DAtxHhAM.js} +14 -7
  274. package/dist/src/{transcription-X2-B4vkX.js → transcription-LNZTNUUL.js} +14 -16
  275. package/dist/src/{transcription-lzBLiTFJ.js → transcription-QHh3AH6Z.js} +15 -17
  276. package/dist/src/{transform-DeGlxb0D.js → transform-Cgi24fJ7.js} +39 -47
  277. package/dist/src/{transform-B1Hi5lWS.cjs → transform-CzK1Q0zl.cjs} +24 -26
  278. package/dist/src/{transform-CYDILYDe.js → transform-DECvGmzp.js} +15 -13
  279. package/dist/src/{transform-Dfl89yi4.js → transform-DGLazrMm.js} +39 -47
  280. package/dist/src/transform-DGxXocjk.js +1506 -0
  281. package/dist/src/{transform-D5PjiWiZ.cjs → transform-DOcQeLld.cjs} +179 -187
  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-aa6tmVpZ.js +216 -0
  285. package/dist/src/transform-m3qNw4KP.cjs +5 -0
  286. package/dist/src/{transformersAvailability-SZnTS3pJ.js → transformersAvailability-CEVM2GNQ.js} +2 -2
  287. package/dist/src/{transformersAvailability-D-glmEy7.cjs → transformersAvailability-CwayUSlh.cjs} +2 -3
  288. package/dist/src/{transformersAvailability-CjeFXhuJ.js → transformersAvailability-D6c6ROpT.js} +2 -2
  289. package/dist/src/{types-CXQduE9o.js → types-CH3Ge2sE.js} +30 -90
  290. package/dist/src/{types-C5hEkb-x.js → types-CLKiCBW3.js} +25 -89
  291. package/dist/src/types-CN_TZ2GJ.js +3260 -0
  292. package/dist/src/{types-DWNf48sT.cjs → types-LJ0r3wbR.cjs} +500 -564
  293. package/dist/src/util-5cB-L7U3.js +1430 -0
  294. package/dist/src/util-6-GqIvzS.js +599 -0
  295. package/dist/src/{util-CoQjmE3u.js → util-B7T3SiBS.js} +4 -5
  296. package/dist/src/{util-D9eLdGfa.js → util-Betm42rL.js} +5 -6
  297. package/dist/src/{util-Bm_-UMD_.js → util-C-PPYSMq.js} +5 -6
  298. package/dist/src/{util-CyUdMzV0.cjs → util-CchiqXh_.cjs} +34 -35
  299. package/dist/src/{util-Du96oyYS.js → util-DaWTWKBK.js} +4 -5
  300. package/dist/src/{util-1wWM599Z.cjs → util-Db0a0AFH.cjs} +50 -51
  301. package/dist/src/{util-DQ984syk.js → util-Dlz_Wvgm.js} +37 -48
  302. package/dist/src/{util-_h4pVqrz.js → util-YT5HPZaS.js} +37 -48
  303. package/dist/src/{util-aLhtl3fe.cjs → util-Yz-1aEhW.cjs} +209 -220
  304. package/dist/src/util-ZZH-3QZz.js +293 -0
  305. package/dist/src/{utils-BjLy-Q72.cjs → utils-Cz9qXqII.cjs} +29 -32
  306. package/dist/src/{utils-CFMn2yHW.js → utils-XiOAgly5.js} +4 -7
  307. package/dist/src/utils-dLokC-eR.js +94 -0
  308. package/dist/src/{utils-DvWMzuMx.js → utils-f2-Moju7.js} +4 -7
  309. package/dist/tsconfig.tsbuildinfo +1 -1
  310. package/package.json +30 -30
  311. package/dist/src/app/assets/index-B2D0bCSI.js +0 -439
  312. package/dist/src/app/tsconfig.app.tsbuildinfo +0 -1
  313. package/dist/src/cache-ChPcurj7.js +0 -6
  314. package/dist/src/cache-VVu_W-yg.js +0 -8
  315. package/dist/src/cache-YLNCFEM2.cjs +0 -6
  316. package/dist/src/chunk-DHDDz29n.js +0 -22
  317. package/dist/src/chunk-FhC4c-0y.js +0 -21
  318. package/dist/src/cloud-BndfXy4H.js +0 -5
  319. package/dist/src/eval-BhHvMY82.js +0 -17
  320. package/dist/src/evalResult-Dq2gFNQY.js +0 -12
  321. package/dist/src/evalResult-nmcP5VKH.cjs +0 -12
  322. package/dist/src/evalResult-trqZjVYh.js +0 -14
  323. package/dist/src/evaluator-CnfPstzT.js +0 -39
  324. package/dist/src/fetch-IDPDue6F.cjs +0 -4
  325. package/dist/src/fetch-hKJ-It8q.js +0 -6
  326. package/dist/src/fetch-ouKnrWK-.js +0 -4
  327. package/dist/src/graders-CQn7WUsd.cjs +0 -34
  328. package/dist/src/graders-DC6QAbpW.js +0 -35
  329. package/dist/src/graders-DUWz3Y7j.js +0 -37
  330. package/dist/src/opencode-sdk-4bL9n-Gk.js +0 -382
  331. package/dist/src/opencode-sdk-BfC2zWcR.js +0 -376
  332. package/dist/src/opencode-sdk-DMJyuwMg.js +0 -380
  333. package/dist/src/opencode-sdk-Da-9adza.cjs +0 -383
  334. package/dist/src/providers-CsXB2Ix-.js +0 -35
  335. package/dist/src/providers-DO8ltjLC.js +0 -33
  336. package/dist/src/providers-Dtq-xnXd.cjs +0 -33
  337. package/dist/src/rubyUtils-BUbcND2f.js +0 -6
  338. package/dist/src/rubyUtils-Cr55X_KE.js +0 -5
  339. package/dist/src/rubyUtils-DlIiqoYo.cjs +0 -5
  340. package/dist/src/server-C2eQH4Gu.js +0 -6
  341. package/dist/src/server-CXWycu7H.cjs +0 -6
  342. package/dist/src/server-Q6OGlxxT.js +0 -8
  343. package/dist/src/store-B3EDO9Q3.js +0 -7
  344. package/dist/src/store-Dl9F8aw5.js +0 -6
  345. package/dist/src/store-SnrGrlt9.cjs +0 -6
  346. package/dist/src/telemetry-BGhiPZtl.js +0 -8
  347. package/dist/src/telemetry-CFfiYan6.cjs +0 -6
  348. package/dist/src/telemetry-DHzEduxX.js +0 -6
  349. package/dist/src/transform-C1x1ZlMQ.cjs +0 -6
  350. package/dist/src/transform-DYHjFmQu.js +0 -8
  351. package/dist/src/transform-rmwJT5JQ.js +0 -7
  352. package/dist/src/transformersAvailability-eJooj0gX.js +0 -35
@@ -0,0 +1,228 @@
1
+ import { t as __exportAll } from "./chunk-DEq-mXcV.js";
2
+ import { i as logger } from "./logger-DLcq4dWf.js";
3
+ import { f as spansTable, h as getDb, m as tracesTable } from "./tables-xKANLRBD.js";
4
+ import { asc, eq, lt } from "drizzle-orm";
5
+ //#region src/tracing/store.ts
6
+ var store_exports = /* @__PURE__ */ __exportAll({
7
+ TraceStore: () => TraceStore,
8
+ getTraceStore: () => getTraceStore
9
+ });
10
+ const SENSITIVE_ATTRIBUTE_KEYS = [
11
+ "authorization",
12
+ "cookie",
13
+ "set-cookie",
14
+ "token",
15
+ "api_key",
16
+ "apikey",
17
+ "secret",
18
+ "password",
19
+ "passphrase"
20
+ ];
21
+ function sanitizeAttributes(attributes) {
22
+ if (!attributes) return {};
23
+ const sanitizeValue = (value) => {
24
+ if (typeof value === "string") return value.length > 400 ? `${value.slice(0, 400)}…` : value;
25
+ if (Array.isArray(value)) return value.map(sanitizeValue);
26
+ if (value && typeof value === "object") return sanitizeAttributes(value);
27
+ return value;
28
+ };
29
+ const sanitized = {};
30
+ for (const [key, value] of Object.entries(attributes)) {
31
+ const lowerKey = key.toLowerCase();
32
+ if (SENSITIVE_ATTRIBUTE_KEYS.some((sensitiveKey) => lowerKey.includes(sensitiveKey))) {
33
+ sanitized[key] = "<redacted>";
34
+ continue;
35
+ }
36
+ sanitized[key] = sanitizeValue(value);
37
+ }
38
+ return sanitized;
39
+ }
40
+ function computeDepth(span, spanMap, depthCache) {
41
+ if (depthCache.has(span.spanId)) return depthCache.get(span.spanId);
42
+ if (!span.parentSpanId || !spanMap.has(span.parentSpanId)) {
43
+ depthCache.set(span.spanId, 0);
44
+ return 0;
45
+ }
46
+ const currentDepth = computeDepth(spanMap.get(span.parentSpanId), spanMap, depthCache) + 1;
47
+ depthCache.set(span.spanId, currentDepth);
48
+ return currentDepth;
49
+ }
50
+ function deriveSpanKind(span) {
51
+ const attributes = span.attributes || {};
52
+ const attributeKind = attributes["span.kind"] || attributes["otel.span.kind"] || attributes["spanKind"];
53
+ if (typeof attributeKind === "string") return attributeKind.toLowerCase();
54
+ return "internal";
55
+ }
56
+ var TraceStore = class {
57
+ db = null;
58
+ getDatabase() {
59
+ if (!this.db) {
60
+ logger.debug("[TraceStore] Initializing database connection");
61
+ this.db = getDb();
62
+ }
63
+ return this.db;
64
+ }
65
+ async createTrace(trace) {
66
+ try {
67
+ logger.debug(`[TraceStore] Creating trace ${trace.traceId} for evaluation ${trace.evaluationId}`);
68
+ await this.getDatabase().insert(tracesTable).values({
69
+ id: crypto.randomUUID(),
70
+ traceId: trace.traceId,
71
+ evaluationId: trace.evaluationId,
72
+ testCaseId: trace.testCaseId,
73
+ metadata: trace.metadata
74
+ }).onConflictDoNothing({ target: tracesTable.traceId });
75
+ logger.debug(`[TraceStore] Successfully created or found existing trace ${trace.traceId}`);
76
+ } catch (error) {
77
+ logger.error(`[TraceStore] Failed to create trace: ${error}`);
78
+ throw error;
79
+ }
80
+ }
81
+ async addSpans(traceId, spans, options) {
82
+ try {
83
+ logger.debug(`[TraceStore] Adding ${spans.length} spans to trace ${traceId}`);
84
+ const db = this.getDatabase();
85
+ if (options?.skipTraceCheck) logger.debug(`[TraceStore] Skipping trace existence check for OTLP scenario`);
86
+ else {
87
+ logger.debug(`[TraceStore] Verifying trace ${traceId} exists`);
88
+ if ((await db.select().from(tracesTable).where(eq(tracesTable.traceId, traceId)).limit(1)).length === 0) {
89
+ logger.warn(`[TraceStore] Trace ${traceId} not found, skipping ${spans.length} spans. This may indicate spans arrived before trace was created.`);
90
+ return {
91
+ stored: false,
92
+ reason: `Trace ${traceId} not found`
93
+ };
94
+ }
95
+ logger.debug(`[TraceStore] Trace ${traceId} found, proceeding with span insertion`);
96
+ }
97
+ const spanRecords = spans.map((span) => {
98
+ logger.debug(`[TraceStore] Preparing span ${span.spanId} (${span.name}) for insertion`);
99
+ return {
100
+ id: crypto.randomUUID(),
101
+ traceId,
102
+ spanId: span.spanId,
103
+ parentSpanId: span.parentSpanId,
104
+ name: span.name,
105
+ startTime: span.startTime,
106
+ endTime: span.endTime,
107
+ attributes: span.attributes,
108
+ statusCode: span.statusCode,
109
+ statusMessage: span.statusMessage
110
+ };
111
+ });
112
+ await db.insert(spansTable).values(spanRecords);
113
+ logger.debug(`[TraceStore] Successfully added ${spans.length} spans to trace ${traceId}`);
114
+ return { stored: true };
115
+ } catch (error) {
116
+ logger.error(`[TraceStore] Failed to add spans: ${error}`);
117
+ throw error;
118
+ }
119
+ }
120
+ async getTracesByEvaluation(evaluationId) {
121
+ try {
122
+ logger.debug(`[TraceStore] Fetching traces for evaluation ${evaluationId}`);
123
+ const db = this.getDatabase();
124
+ const traces = await db.select().from(tracesTable).where(eq(tracesTable.evaluationId, evaluationId));
125
+ logger.debug(`[TraceStore] Found ${traces.length} traces for evaluation ${evaluationId}`);
126
+ const tracesWithSpans = await Promise.all(traces.map(async (trace) => {
127
+ logger.debug(`[TraceStore] Fetching spans for trace ${trace.traceId}`);
128
+ const spans = await db.select().from(spansTable).where(eq(spansTable.traceId, trace.traceId));
129
+ logger.debug(`[TraceStore] Found ${spans.length} spans for trace ${trace.traceId}`);
130
+ return {
131
+ ...trace,
132
+ spans
133
+ };
134
+ }));
135
+ logger.debug(`[TraceStore] Returning ${tracesWithSpans.length} traces with spans`);
136
+ return tracesWithSpans;
137
+ } catch (error) {
138
+ logger.error(`[TraceStore] Failed to get traces for evaluation: ${error}`);
139
+ throw error;
140
+ }
141
+ }
142
+ async getTrace(traceId) {
143
+ try {
144
+ logger.debug(`[TraceStore] Fetching trace ${traceId}`);
145
+ const db = this.getDatabase();
146
+ const traces = await db.select().from(tracesTable).where(eq(tracesTable.traceId, traceId)).limit(1);
147
+ if (traces.length === 0) {
148
+ logger.debug(`[TraceStore] Trace ${traceId} not found`);
149
+ return null;
150
+ }
151
+ const trace = traces[0];
152
+ logger.debug(`[TraceStore] Found trace ${traceId}, fetching spans`);
153
+ const spans = await db.select().from(spansTable).where(eq(spansTable.traceId, traceId));
154
+ logger.debug(`[TraceStore] Found ${spans.length} spans for trace ${traceId}`);
155
+ return {
156
+ ...trace,
157
+ spans
158
+ };
159
+ } catch (error) {
160
+ logger.error(`[TraceStore] Failed to get trace: ${error}`);
161
+ throw error;
162
+ }
163
+ }
164
+ async deleteOldTraces(retentionDays) {
165
+ try {
166
+ logger.debug(`[TraceStore] Deleting traces older than ${retentionDays} days`);
167
+ const db = this.getDatabase();
168
+ const cutoffTime = Date.now() - retentionDays * 24 * 60 * 60 * 1e3;
169
+ await db.delete(tracesTable).where(lt(tracesTable.createdAt, cutoffTime));
170
+ logger.debug(`[TraceStore] Successfully deleted traces older than ${retentionDays} days`);
171
+ } catch (error) {
172
+ logger.error(`[TraceStore] Failed to delete old traces: ${error}`);
173
+ throw error;
174
+ }
175
+ }
176
+ async getSpans(traceId, options = {}) {
177
+ const { earliestStartTime, maxSpans, maxDepth, includeInternalSpans = true, spanFilter, sanitizeAttributes: shouldSanitize = true } = options;
178
+ try {
179
+ logger.debug(`[TraceStore] Fetching spans for trace ${traceId}`);
180
+ const rows = await this.getDatabase().select().from(spansTable).where(eq(spansTable.traceId, traceId)).orderBy(asc(spansTable.startTime));
181
+ const spanMap = /* @__PURE__ */ new Map();
182
+ const depthCache = /* @__PURE__ */ new Map();
183
+ for (const row of rows) {
184
+ if (earliestStartTime && row.startTime < earliestStartTime) continue;
185
+ const rawAttributes = row.attributes ?? {};
186
+ const spanData = {
187
+ spanId: row.spanId,
188
+ parentSpanId: row.parentSpanId ?? void 0,
189
+ name: row.name,
190
+ startTime: row.startTime,
191
+ endTime: row.endTime ?? void 0,
192
+ attributes: shouldSanitize ? sanitizeAttributes(rawAttributes) : rawAttributes,
193
+ statusCode: row.statusCode ?? void 0,
194
+ statusMessage: row.statusMessage ?? void 0
195
+ };
196
+ const spanKind = deriveSpanKind({
197
+ ...spanData,
198
+ attributes: rawAttributes
199
+ });
200
+ if (!includeInternalSpans && spanKind === "internal") continue;
201
+ if (spanFilter && spanFilter.length > 0) {
202
+ if (!spanFilter.some((filterName) => spanData.name.toLowerCase().includes(filterName.toLowerCase()))) continue;
203
+ }
204
+ spanMap.set(spanData.spanId, spanData);
205
+ }
206
+ let spans = Array.from(spanMap.values());
207
+ if (maxDepth !== void 0) spans = spans.filter((span) => computeDepth(span, spanMap, depthCache) < maxDepth);
208
+ if (maxSpans !== void 0) spans = spans.slice(0, maxSpans);
209
+ logger.debug(`[TraceStore] Returning ${spans.length} spans for trace ${traceId}`);
210
+ return spans;
211
+ } catch (error) {
212
+ logger.error(`[TraceStore] Failed to fetch spans for trace ${traceId}: ${error}`);
213
+ throw error;
214
+ }
215
+ }
216
+ };
217
+ let traceStore = null;
218
+ function getTraceStore() {
219
+ if (!traceStore) {
220
+ logger.debug("[TraceStore] Creating new TraceStore instance");
221
+ traceStore = new TraceStore();
222
+ }
223
+ return traceStore;
224
+ }
225
+ //#endregion
226
+ export { store_exports as n, getTraceStore as t };
227
+
228
+ //# sourceMappingURL=store-Ub2vaGJ1.js.map
@@ -1,16 +1,15 @@
1
- import { _ as getEnvBool, g as getConfigDirectoryPath, i as logger_default } from "./logger-CG1uZPbQ.js";
2
- import { g as ResultFailureReason } from "./types-C5hEkb-x.js";
1
+ import { _ as getEnvBool, g as getConfigDirectoryPath, i as logger } from "./logger-CT3IKMKA.js";
2
+ import { g as ResultFailureReason } from "./types-CLKiCBW3.js";
3
3
  import * as path$1 from "path";
4
4
  import { relations, sql } from "drizzle-orm";
5
5
  import Database from "better-sqlite3";
6
6
  import { drizzle } from "drizzle-orm/better-sqlite3";
7
7
  import { DefaultLogger } from "drizzle-orm/logger";
8
8
  import { index, integer, primaryKey, real, sqliteTable, text, uniqueIndex } from "drizzle-orm/sqlite-core";
9
-
10
9
  //#region src/database/index.ts
11
10
  var DrizzleLogWriter = class {
12
11
  write(message) {
13
- if (getEnvBool("PROMPTFOO_ENABLE_DATABASE_LOGS", false)) logger_default.debug(`Drizzle: ${message}`);
12
+ if (getEnvBool("PROMPTFOO_ENABLE_DATABASE_LOGS", false)) logger.debug(`Drizzle: ${message}`);
14
13
  }
15
14
  };
16
15
  let dbInstance = null;
@@ -29,19 +28,18 @@ function getDb() {
29
28
  if (!isMemoryDb && !getEnvBool("PROMPTFOO_DISABLE_WAL_MODE", false)) try {
30
29
  sqliteInstance.pragma("journal_mode = WAL");
31
30
  const result = sqliteInstance.prepare("PRAGMA journal_mode").get();
32
- if (result.journal_mode.toLowerCase() === "wal") logger_default.debug("Successfully enabled SQLite WAL mode");
33
- 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.`);
31
+ if (result.journal_mode.toLowerCase() === "wal") logger.debug("Successfully enabled SQLite WAL mode");
32
+ 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.`);
34
33
  sqliteInstance.pragma("wal_autocheckpoint = 1000");
35
34
  sqliteInstance.pragma("synchronous = NORMAL");
36
35
  } catch (err) {
37
- 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.`);
36
+ 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.`);
38
37
  }
39
38
  const drizzleLogger = new DefaultLogger({ writer: new DrizzleLogWriter() });
40
39
  dbInstance = drizzle(sqliteInstance, { logger: drizzleLogger });
41
40
  }
42
41
  return dbInstance;
43
42
  }
44
-
45
43
  //#endregion
46
44
  //#region src/database/tables.ts
47
45
  const promptsTable = sqliteTable("prompts", {
@@ -119,7 +117,7 @@ const evalsToPromptsTable = sqliteTable("evals_to_prompts", {
119
117
  evalIdIdx: index("evals_to_prompts_eval_id_idx").on(t.evalId),
120
118
  promptIdIdx: index("evals_to_prompts_prompt_id_idx").on(t.promptId)
121
119
  }));
122
- const promptsRelations = relations(promptsTable, ({ many }) => ({ evalsToPrompts: many(evalsToPromptsTable) }));
120
+ relations(promptsTable, ({ many }) => ({ evalsToPrompts: many(evalsToPromptsTable) }));
123
121
  const evalsToTagsTable = sqliteTable("evals_to_tags", {
124
122
  evalId: text("eval_id").notNull().references(() => evalsTable.id),
125
123
  tagId: text("tag_id").notNull().references(() => tagsTable.id)
@@ -128,8 +126,8 @@ const evalsToTagsTable = sqliteTable("evals_to_tags", {
128
126
  evalIdIdx: index("evals_to_tags_eval_id_idx").on(t.evalId),
129
127
  tagIdIdx: index("evals_to_tags_tag_id_idx").on(t.tagId)
130
128
  }));
131
- const tagsRelations = relations(tagsTable, ({ many }) => ({ evalsToTags: many(evalsToTagsTable) }));
132
- const evalsToTagsRelations = relations(evalsToTagsTable, ({ one }) => ({
129
+ relations(tagsTable, ({ many }) => ({ evalsToTags: many(evalsToTagsTable) }));
130
+ relations(evalsToTagsTable, ({ one }) => ({
133
131
  eval: one(evalsTable, {
134
132
  fields: [evalsToTagsTable.evalId],
135
133
  references: [evalsTable.id]
@@ -177,13 +175,13 @@ const evalsToDatasetsTable = sqliteTable("evals_to_datasets", {
177
175
  evalIdIdx: index("evals_to_datasets_eval_id_idx").on(t.evalId),
178
176
  datasetIdIdx: index("evals_to_datasets_dataset_id_idx").on(t.datasetId)
179
177
  }));
180
- const datasetsRelations = relations(datasetsTable, ({ many }) => ({ evalsToDatasets: many(evalsToDatasetsTable) }));
181
- const evalsRelations = relations(evalsTable, ({ many }) => ({
178
+ relations(datasetsTable, ({ many }) => ({ evalsToDatasets: many(evalsToDatasetsTable) }));
179
+ relations(evalsTable, ({ many }) => ({
182
180
  evalsToPrompts: many(evalsToPromptsTable),
183
181
  evalsToDatasets: many(evalsToDatasetsTable),
184
182
  evalsToTags: many(evalsToTagsTable)
185
183
  }));
186
- const evalsToPromptsRelations = relations(evalsToPromptsTable, ({ one }) => ({
184
+ relations(evalsToPromptsTable, ({ one }) => ({
187
185
  eval: one(evalsTable, {
188
186
  fields: [evalsToPromptsTable.evalId],
189
187
  references: [evalsTable.id]
@@ -193,7 +191,7 @@ const evalsToPromptsRelations = relations(evalsToPromptsTable, ({ one }) => ({
193
191
  references: [promptsTable.id]
194
192
  })
195
193
  }));
196
- const evalsToDatasetsRelations = relations(evalsToDatasetsTable, ({ one }) => ({
194
+ relations(evalsToDatasetsTable, ({ one }) => ({
197
195
  eval: one(evalsTable, {
198
196
  fields: [evalsToDatasetsTable.evalId],
199
197
  references: [evalsTable.id]
@@ -203,7 +201,7 @@ const evalsToDatasetsRelations = relations(evalsToDatasetsTable, ({ one }) => ({
203
201
  references: [datasetsTable.id]
204
202
  })
205
203
  }));
206
- const configsTable = sqliteTable("configs", {
204
+ sqliteTable("configs", {
207
205
  id: text("id").primaryKey(),
208
206
  createdAt: integer("created_at").notNull().default(sql`CURRENT_TIMESTAMP`),
209
207
  updatedAt: integer("updated_at").notNull().default(sql`CURRENT_TIMESTAMP`),
@@ -214,7 +212,7 @@ const configsTable = sqliteTable("configs", {
214
212
  createdAtIdx: index("configs_created_at_idx").on(table.createdAt),
215
213
  typeIdx: index("configs_type_idx").on(table.type)
216
214
  }));
217
- const modelAuditsTable = sqliteTable("model_audits", {
215
+ sqliteTable("model_audits", {
218
216
  id: text("id").primaryKey(),
219
217
  createdAt: integer("created_at").notNull().default(sql`CURRENT_TIMESTAMP`),
220
218
  updatedAt: integer("updated_at").notNull().default(sql`CURRENT_TIMESTAMP`),
@@ -273,18 +271,18 @@ const spansTable = sqliteTable("spans", {
273
271
  traceIdIdx: index("spans_trace_id_idx").on(table.traceId),
274
272
  spanIdIdx: index("spans_span_id_idx").on(table.spanId)
275
273
  }));
276
- const tracesRelations = relations(tracesTable, ({ one, many }) => ({
274
+ relations(tracesTable, ({ one, many }) => ({
277
275
  eval: one(evalsTable, {
278
276
  fields: [tracesTable.evaluationId],
279
277
  references: [evalsTable.id]
280
278
  }),
281
279
  spans: many(spansTable)
282
280
  }));
283
- const spansRelations = relations(spansTable, ({ one }) => ({ trace: one(tracesTable, {
281
+ relations(spansTable, ({ one }) => ({ trace: one(tracesTable, {
284
282
  fields: [spansTable.traceId],
285
283
  references: [tracesTable.traceId]
286
284
  }) }));
287
-
288
285
  //#endregion
289
286
  export { evalsTable as a, evalsToTagsTable as c, tagsTable as d, tracesTable as f, evalResultsTable as i, promptsTable as l, getDbSignalPath as m, blobReferencesTable as n, evalsToDatasetsTable as o, getDb as p, datasetsTable as r, evalsToPromptsTable as s, blobAssetsTable as t, spansTable as u };
290
- //# sourceMappingURL=tables-DfTsNN7X.js.map
287
+
288
+ //# sourceMappingURL=tables-5EvT_Bwn.js.map
@@ -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-LJ0r3wbR.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-C7K-XKWp.cjs.map