promptfoo 0.120.26 → 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 (366) hide show
  1. package/README.md +1 -1
  2. package/dist/drizzle/0023_wooden_mandrill.sql +2 -0
  3. package/dist/drizzle/meta/0023_snapshot.json +1496 -0
  4. package/dist/drizzle/meta/_journal.json +7 -0
  5. package/dist/src/{ListApp-D3DG0F8h.js → ListApp-Du7YVwj5.js} +2 -4
  6. package/dist/src/accounts-BgNJDBE6.js +206 -0
  7. package/dist/src/{accounts-BzEY8H3v.cjs → accounts-Bx-x3bmW.cjs} +99 -80
  8. package/dist/src/{accounts-DHHiXsy6.js → accounts-CMqkzrVf.js} +61 -36
  9. package/dist/src/{accounts-R3gfCR_g.js → accounts-xrUGFA6n.js} +60 -35
  10. package/dist/src/{agentic-utils-D6_gzOUF.js → agentic-utils-BKIN5PKu.js} +9 -10
  11. package/dist/src/{agents-CwM7re15.cjs → agents-B0f4HICh.cjs} +37 -40
  12. package/dist/src/{agents-Cnph5GLD.js → agents-C-dDThPK.js} +37 -37
  13. package/dist/src/{agents-C7BiinFI.cjs → agents-CErsqg5U.cjs} +19 -27
  14. package/dist/src/{agents-v4cW_ZgC.js → agents-CVIn-Utx.js} +19 -22
  15. package/dist/src/{agents-GiUianme.js → agents-CXknwsFX.js} +37 -40
  16. package/dist/src/{agents-DETIQHqF.js → agents-DeH4Gu94.js} +21 -28
  17. package/dist/src/{agents-DYIT-hQy.js → agents-Dy2YpZpa.js} +38 -41
  18. package/dist/src/{agents-Cao4i7AX.js → agents-aF4-T121.js} +19 -30
  19. package/dist/src/{aimlapi-DMF6v_vb.js → aimlapi-BAGZDo5G.js} +16 -18
  20. package/dist/src/{aimlapi-CMJpKK-B.js → aimlapi-BNfTBexL.js} +15 -17
  21. package/dist/src/{aimlapi-DtSf1ykJ.js → aimlapi-DHRKlBEA.js} +15 -4
  22. package/dist/src/{aimlapi-DoGLcQW_.cjs → aimlapi-tg0Gkcvr.cjs} +15 -16
  23. package/dist/src/app/assets/index-BFCZg7hQ.js +439 -0
  24. package/dist/src/app/assets/index-NCn4eVBv.css +1 -0
  25. package/dist/src/app/assets/{vendor-charts-CYyo8R8v.js → vendor-charts-CCl15Imd.js} +1 -1
  26. package/dist/src/app/assets/{vendor-markdown-DSmzq4Jh.js → vendor-markdown-0tekx3KX.js} +1 -1
  27. package/dist/src/app/index.html +4 -34
  28. package/dist/src/{audio-DUH4q0Xq.js → audio-BRODU0UK.js} +7 -9
  29. package/dist/src/{audio-BWjyvHn9.cjs → audio-BWeaWovU.cjs} +6 -7
  30. package/dist/src/{audio-U580w8jM.js → audio-CHQ4r-RV.js} +6 -5
  31. package/dist/src/{audio-BrJBFN2b.js → audio-tf_NBjlC.js} +6 -8
  32. package/dist/src/base-B0tcrnq_.js +193 -0
  33. package/dist/src/base-B4QJRyFS.js +194 -0
  34. package/dist/src/base-DBtwl2FR.cjs +222 -0
  35. package/dist/src/base-fEDN28WM.js +193 -0
  36. package/dist/src/{blobs-kt8v3UyH.js → blobs-BAU-dXan.js} +9 -12
  37. package/dist/src/{blobs-C9J2mVgo.js → blobs-Bpg5rH6i.js} +9 -12
  38. package/dist/src/{blobs-673H0jCl.cjs → blobs-DvS-O6be.cjs} +34 -37
  39. package/dist/src/blobs-qTYm-1PY.js +236 -0
  40. package/dist/src/{cache-BLLayYEN.js → cache-8XhNqPKW.js} +64 -67
  41. package/dist/src/cache-Bbn1Nyrd.cjs +5 -0
  42. package/dist/src/cache-BwsMSda7.js +6 -0
  43. package/dist/src/{cache-mIszOnuz.js → cache-CG0SlR1d.js} +64 -66
  44. package/dist/src/{cache-7xULbvt3.cjs → cache-COish3-W.cjs} +114 -117
  45. package/dist/src/cache-D3eqDYGU.js +739 -0
  46. package/dist/src/{chat-Fl6TZJRS.cjs → chat-2K608PeQ.cjs} +20 -21
  47. package/dist/src/chat-BKm79wib.js +764 -0
  48. package/dist/src/{chat-XPN9YHhr.js → chat-CM_kyI8B.js} +20 -9
  49. package/dist/src/{chat-DIywASPG.js → chat-CRWNNq73.js} +49 -49
  50. package/dist/src/{chat-C8Ei4f87.js → chat-CznLWr_D.js} +49 -49
  51. package/dist/src/{chat-CgyGj2hC.js → chat-DHMH-N64.js} +20 -22
  52. package/dist/src/{chat-C4zqjObh.cjs → chat-DaqekjFr.cjs} +69 -69
  53. package/dist/src/{chat-Cpz3O-Xl.js → chat-DxysjBvt.js} +21 -23
  54. package/dist/src/{chatkit-Dpxrq4eD.js → chatkit-65VXf5SR.js} +58 -58
  55. package/dist/src/{chatkit-DIrJX8xk.js → chatkit-Be-Q-a9F.js} +58 -60
  56. package/dist/src/{chatkit-DEls11hE.js → chatkit-BxFvW8KY.js} +58 -60
  57. package/dist/src/{chatkit-e25Ziu17.cjs → chatkit-DKyPi1Gs.cjs} +58 -60
  58. package/dist/src/chunk-DEq-mXcV.js +15 -0
  59. package/dist/src/chunk-DRamLcfz.js +16 -0
  60. package/dist/src/{claude-agent-sdk-6-xTaLwM.js → claude-agent-sdk-BLTu0WBO.js} +45 -31
  61. package/dist/src/{claude-agent-sdk-BzxF6NIJ.cjs → claude-agent-sdk-CJH22shf.cjs} +44 -29
  62. package/dist/src/{claude-agent-sdk-CmkTnKGH.js → claude-agent-sdk-D6_k9FKA.js} +45 -33
  63. package/dist/src/{claude-agent-sdk-rXCBLK_o.js → claude-agent-sdk-Dy5lT-Tx.js} +46 -21
  64. package/dist/src/{cloud-BMbRVJFw.js → cloud-Bc9526yV.js} +32 -12
  65. package/dist/src/cloud-DmE0EwsY.js +4 -0
  66. package/dist/src/{cloudflare-ai-CUg4BTcj.js → cloudflare-ai-C9r2sRhw.js} +16 -18
  67. package/dist/src/{cloudflare-ai-Z9X219gp.js → cloudflare-ai-CWWJCRim.js} +16 -4
  68. package/dist/src/{cloudflare-ai-BAQ0u_dg.cjs → cloudflare-ai-ClWSdor4.cjs} +16 -17
  69. package/dist/src/{cloudflare-ai-CobxMTR4.js → cloudflare-ai-ICsOuD-z.js} +17 -19
  70. package/dist/src/{cloudflare-gateway-C0sgfr_z.cjs → cloudflare-gateway-C2_-KG5o.cjs} +21 -22
  71. package/dist/src/{cloudflare-gateway-_itGuXry.js → cloudflare-gateway-D6O7AlYb.js} +23 -23
  72. package/dist/src/{cloudflare-gateway-D2_yi-Fh.js → cloudflare-gateway-D6xFc5pa.js} +21 -25
  73. package/dist/src/{cloudflare-gateway-Djf3F3_H.js → cloudflare-gateway-pXGHxJ47.js} +26 -14
  74. package/dist/src/{codex-sdk-ibXwdglL.js → codex-sdk-C6UMlxwV.js} +49 -32
  75. package/dist/src/{codex-sdk-BASDNkIl.js → codex-sdk-DUwKWezN.js} +49 -30
  76. package/dist/src/{codex-sdk-dSnGdgIp.js → codex-sdk-GGAw0qbD.js} +49 -32
  77. package/dist/src/{codex-sdk-wTEpMM_X.cjs → codex-sdk-fAO0c3yA.cjs} +49 -32
  78. package/dist/src/{cometapi-B01btbfb.js → cometapi-BasUi7-_.js} +17 -19
  79. package/dist/src/{cometapi-DHUAH6nK.js → cometapi-Bbjp5V4x.js} +16 -4
  80. package/dist/src/{cometapi-ChAaRjg5.js → cometapi-DkXrKi5z.js} +21 -24
  81. package/dist/src/{cometapi-JbvOJSCO.cjs → cometapi-vY6aDZgo.cjs} +21 -22
  82. package/dist/src/{completion-D9_MDlnd.js → completion-6Mx_iXxK.js} +11 -13
  83. package/dist/src/{completion-BBJ6zmG3.js → completion-C5rtR_9P.js} +11 -13
  84. package/dist/src/{completion-DDyL3Cb2.cjs → completion-CDOouNzq.cjs} +21 -23
  85. package/dist/src/completion-C_P3ypkJ.js +120 -0
  86. package/dist/src/createHash-CTQmL3G2.js +15 -0
  87. package/dist/src/createHash-CfZSc0b4.cjs +27 -0
  88. package/dist/src/createHash-Da8fMwqB.js +16 -0
  89. package/dist/src/createHash-DmPQkvBh.js +15 -0
  90. package/dist/src/{docker-JAAubMw3.js → docker-5KcG-_86.js} +18 -20
  91. package/dist/src/{docker-Ckw-j7Rr.cjs → docker-BwsKwxFs.cjs} +18 -19
  92. package/dist/src/{docker-vnOg96gi.js → docker-CZnqU1XV.js} +18 -7
  93. package/dist/src/{docker-BuButc4D.js → docker-DzxyDPIj.js} +19 -21
  94. package/dist/src/entrypoint.js +2 -3
  95. package/dist/src/{errors-DnGCbnx8.js → errors-P6ll7XSJ.js} +2 -2
  96. package/dist/src/{esm-CYhseqj4.js → esm-C03C-mv3.js} +17 -20
  97. package/dist/src/{esm-rDtG_2rg.js → esm-CaIwzWR5.js} +18 -21
  98. package/dist/src/esm-Cd1AjG1D.js +379 -0
  99. package/dist/src/{esm-BQkx5roy.cjs → esm-CnNt7sI4.cjs} +47 -49
  100. package/dist/src/eval-17JizQIv.js +15 -0
  101. package/dist/src/{eval-CYrbG57o.js → eval-DmFyWU7i.js} +49 -55
  102. package/dist/src/{evalResult-COsVttMA.js → evalResult-CDQiuUuf.js} +16 -12
  103. package/dist/src/{evalResult-6JaUIStC.js → evalResult-CTG2AHOS.js} +10 -11
  104. package/dist/src/evalResult-Cqj8pldJ.js +12 -0
  105. package/dist/src/{evalResult-DlRfu_Rq.cjs → evalResult-Dap2CekP.cjs} +20 -21
  106. package/dist/src/evalResult-DvcJAWJU.cjs +10 -0
  107. package/dist/src/evalResult-Hftn-S_i.js +10 -0
  108. package/dist/src/evaluator-B2CFNt-P.js +36 -0
  109. package/dist/src/{evaluator-3EJCMTs0.js → evaluator-DPFRbFIL.js} +210 -232
  110. package/dist/src/{extractor-LSYjrhK0.js → extractor-CFG6bcWJ.js} +23 -38
  111. package/dist/src/{extractor-DbhlYEeo.cjs → extractor-DX36oYEv.cjs} +37 -64
  112. package/dist/src/{extractor-Hs7la_19.js → extractor-M67RUtg6.js} +23 -38
  113. package/dist/src/extractor-YMU_Gvt8.js +374 -0
  114. package/dist/src/fetch-4M3YRaqL.js +780 -0
  115. package/dist/src/{fetch-18MuNu9i.js → fetch-60Gzydls.js} +60 -46
  116. package/dist/src/{fetch-SRsE6Ctl.js → fetch-BMv0O527.js} +41 -35
  117. package/dist/src/{fetch-ZMn_oemb.cjs → fetch-BxUk8odA.cjs} +268 -279
  118. package/dist/src/fetch-KV5kNASw.js +5 -0
  119. package/dist/src/{fileExtensions-ePDqouxn.js → fileExtensions-DnqA1y9x.js} +2 -2
  120. package/dist/src/{fileExtensions-BpuMmaFL.js → fileExtensions-Ds-foDzt.js} +2 -2
  121. package/dist/src/fileExtensions-LcDYkU4v.js +85 -0
  122. package/dist/src/{fileExtensions-DkJYkWUy.cjs → fileExtensions-bYh77CN8.cjs} +27 -28
  123. package/dist/src/{formatDuration-Doo0xq-z.js → formatDuration-DgBVMN65.js} +2 -2
  124. package/dist/src/{genaiTracer-Ce19n68P.js → genaiTracer-70Z8BIuV.js} +2 -3
  125. package/dist/src/{genaiTracer-CqNnnXrE.js → genaiTracer-C1rxGO8Q.js} +2 -3
  126. package/dist/src/genaiTracer-D3fD9dNV.js +256 -0
  127. package/dist/src/{genaiTracer-CQlpZkrp.cjs → genaiTracer-DN4dQywX.cjs} +13 -14
  128. package/dist/src/graders-Bu0H9nXi.js +32 -0
  129. package/dist/src/{graders-BaMCwIKp.js → graders-CHO8EPM4.js} +385 -417
  130. package/dist/src/graders-Cfhkvx-e.js +34 -0
  131. package/dist/src/{graders-QsALpIdy.js → graders-CpdqD9PI.js} +385 -417
  132. package/dist/src/graders-DClJVpGP.cjs +32 -0
  133. package/dist/src/{graders-DzUUnUjC.cjs → graders-DOXycdlG.cjs} +721 -753
  134. package/dist/src/graders-DcnJsrMO.js +32 -0
  135. package/dist/src/graders-R9rYUM0d.js +13466 -0
  136. package/dist/src/{image-BiEVdpdP.js → image-BmEZqVmk.js} +57 -18
  137. package/dist/src/{image-mhAGP07h.js → image-CBBVXWuT.js} +57 -18
  138. package/dist/src/{image-D10zEe1f.cjs → image-CDLQOcqT.cjs} +6 -7
  139. package/dist/src/{image-COCWy5dX.js → image-DJEvKveK.js} +6 -5
  140. package/dist/src/{image-C3BjJUAU.cjs → image-DTedmQPg.cjs} +77 -32
  141. package/dist/src/{image-DB4sHxdJ.js → image-gvmivTEe.js} +7 -9
  142. package/dist/src/image-pAX56tPG.js +257 -0
  143. package/dist/src/{image-BXt_7u0v.js → image-tL5hIOFh.js} +6 -8
  144. package/dist/src/index.cjs +696 -693
  145. package/dist/src/index.d.cts +113 -10
  146. package/dist/src/index.d.ts +113 -6
  147. package/dist/src/index.js +657 -658
  148. package/dist/src/{interactiveCheck-DU-MAhp5.js → interactiveCheck-BgLZUIt3.js} +7 -8
  149. package/dist/src/{invariant-DT20jrBd.js → invariant-BtWWVVhl.js} +2 -2
  150. package/dist/src/{invariant-1pAf2CD1.js → invariant-Ddh24eXh.js} +2 -2
  151. package/dist/src/{invariant-CKcJAQ6M.cjs → invariant-kfQ8Bu82.cjs} +7 -8
  152. package/dist/src/invariant-vgHWClmd.js +25 -0
  153. package/dist/src/{knowledgeBase-DotRBzUE.js → knowledgeBase-CLJybhnF.js} +19 -34
  154. package/dist/src/{knowledgeBase-XJQ0Qyez.js → knowledgeBase-CoU-UQBg.js} +17 -41
  155. package/dist/src/{knowledgeBase-CMvMlLZR.js → knowledgeBase-DjWPVqSb.js} +17 -43
  156. package/dist/src/{knowledgeBase-Bnb00xKs.cjs → knowledgeBase-wkxuRFhA.cjs} +17 -40
  157. package/dist/src/{litellm-CHrRmPAe.js → litellm-B9Hysuri.js} +16 -18
  158. package/dist/src/{litellm-CrLJrPIm.js → litellm-CTfa0hqi.js} +15 -17
  159. package/dist/src/{litellm-BrnZhMcL.cjs → litellm-NYpQ8RQu.cjs} +15 -16
  160. package/dist/src/{litellm-BECdjOTx.js → litellm-ePxtr9F1.js} +15 -4
  161. package/dist/src/{logger-w8Ozp0Td.js → logger-CT3IKMKA.js} +24 -41
  162. package/dist/src/{logger-BdZ-IqBc.cjs → logger-Cp1GPUjj.cjs} +166 -192
  163. package/dist/src/logger-DLcq4dWf.js +713 -0
  164. package/dist/src/{logger-BotXmWKW.js → logger-KkObSCzq.js} +27 -43
  165. package/dist/src/{luma-ray-C0RkI3lt.cjs → luma-ray-B0GGNRc1.cjs} +20 -21
  166. package/dist/src/{luma-ray-C-w6EsJm.js → luma-ray-BE2mOt6N.js} +20 -13
  167. package/dist/src/{luma-ray-BOeX-h0M.js → luma-ray-BW9IRGIc.js} +22 -21
  168. package/dist/src/{luma-ray-DgKLS0BF.js → luma-ray-Cm1KZBhs.js} +20 -23
  169. package/dist/src/main.js +1985 -2055
  170. package/dist/src/{messages-DXV3Qh8_.cjs → messages-1JrJs91T.cjs} +35 -34
  171. package/dist/src/{messages-D61tPFQo.js → messages-1x9atZmP.js} +25 -24
  172. package/dist/src/{messages-CDZYGNlS.js → messages-BLbWdsyt.js} +25 -24
  173. package/dist/src/messages-D8EA0oDc.js +240 -0
  174. package/dist/src/{meteor-P2rUE-Uz.js → meteor-44VjEACX.js} +3 -4
  175. package/dist/src/{meteor-SLNTgmXm.js → meteor-D-SotUw9.js} +3 -4
  176. package/dist/src/{meteor-odmwVbyG.cjs → meteor-DLZZ3osF.cjs} +3 -4
  177. package/dist/src/{meteor-Dj8cTkU_.js → meteor-DUiCJRC-.js} +3 -4
  178. package/dist/src/modelslab-C1OLRmVX.js +166 -0
  179. package/dist/src/modelslab-CqXBy3U8.js +168 -0
  180. package/dist/src/modelslab-DcOSFwKh.cjs +166 -0
  181. package/dist/src/modelslab-X5-4LroM.js +166 -0
  182. package/dist/src/{nova-reel-C2LFfVTf.js → nova-reel-BgS1ZWuK.js} +20 -13
  183. package/dist/src/{nova-reel-DtCjbD5O.js → nova-reel-D2ZkOSyr.js} +22 -21
  184. package/dist/src/{nova-reel-D9FXq3Mt.cjs → nova-reel-D9xfaMBs.cjs} +20 -21
  185. package/dist/src/{nova-reel-Bk5npr2q.js → nova-reel-DihqLeol.js} +20 -23
  186. package/dist/src/{nova-sonic-BoRSY_U6.cjs → nova-sonic-DVu3mMIy.cjs} +30 -31
  187. package/dist/src/{nova-sonic-D_qERM-K.js → nova-sonic-DezhVUYT.js} +30 -26
  188. package/dist/src/{nova-sonic-CgaWLDM1.js → nova-sonic-P-CdUMlV.js} +30 -31
  189. package/dist/src/{nova-sonic-BXRfQyF-.js → nova-sonic-Q3BOJeig.js} +31 -32
  190. package/dist/src/{openai-Bigwjgo1.cjs → openai-Cuif0GEt.cjs} +8 -9
  191. package/dist/src/{openai-Dz3surb_.js → openai-DElQ-fPX.js} +3 -4
  192. package/dist/src/{openai-CT5fwbve.js → openai-DhbB7eWK.js} +3 -4
  193. package/dist/src/openai-j-sE2O7r.js +44 -0
  194. package/dist/src/{openclaw-dHLcXUWZ.js → openclaw-BiSZPL7J.js} +20 -14
  195. package/dist/src/{openclaw-CpPrXwf6.js → openclaw-Bv1DINsX.js} +20 -27
  196. package/dist/src/{openclaw-B6XY2kUf.js → openclaw-D1D_ej1z.js} +21 -28
  197. package/dist/src/{openclaw-DDSfq5fp.cjs → openclaw-DAfWQn-o.cjs} +33 -39
  198. package/dist/src/opencode-sdk-C7m-wRfI.js +560 -0
  199. package/dist/src/opencode-sdk-CfaLN8PY.cjs +564 -0
  200. package/dist/src/opencode-sdk-D95s6SnR.js +562 -0
  201. package/dist/src/opencode-sdk-DxUPkLT7.js +560 -0
  202. package/dist/src/{otlpReceiver-DmRb0NBj.js → otlpReceiver--AIRW_S4.js} +53 -51
  203. package/dist/src/{otlpReceiver-Dg817agV.js → otlpReceiver-Bn5wGB1v.js} +53 -55
  204. package/dist/src/{otlpReceiver-B6Xo4KZM.cjs → otlpReceiver-Diec4cln.cjs} +53 -55
  205. package/dist/src/{otlpReceiver-BO0rbDzh.js → otlpReceiver-g3ByGaXs.js} +53 -55
  206. package/dist/src/{providerRegistry-Xf0qdqGQ.js → providerRegistry-B0RUOLI_.js} +7 -8
  207. package/dist/src/{providerRegistry-wCWd7sKQ.js → providerRegistry-CD8MEar9.js} +7 -8
  208. package/dist/src/{providerRegistry-lc7a7utN.cjs → providerRegistry-Civky8Ar.cjs} +12 -13
  209. package/dist/src/providerRegistry-DM8rZYol.js +45 -0
  210. package/dist/src/providers-B3HvufyI.js +33246 -0
  211. package/dist/src/{providers-BiNq_Iyc.js → providers-BKRJTjBz.js} +1743 -1795
  212. package/dist/src/providers-C1rOSHiR.js +32 -0
  213. package/dist/src/{providers-BlEhY5mi.js → providers-CFLy1_ji.js} +1750 -1802
  214. package/dist/src/{providers-BNKVY53V.cjs → providers-CFu-TZl-.cjs} +2111 -2163
  215. package/dist/src/providers-CxmDwEFf.cjs +31 -0
  216. package/dist/src/providers-Dodakqr0.js +30 -0
  217. package/dist/src/providers-GIQ2TcsA.js +30 -0
  218. package/dist/src/{pythonUtils-r1uBuA0n.js → pythonUtils-C3py6GC1.js} +18 -19
  219. package/dist/src/{pythonUtils-DZ6EbdY4.cjs → pythonUtils-CTU3Y3lw.cjs} +42 -43
  220. package/dist/src/{pythonUtils-vMlk9Qp5.js → pythonUtils-D5nxkQ0P.js} +18 -19
  221. package/dist/src/pythonUtils-D6fwaDSg.js +249 -0
  222. package/dist/src/quiverai-C2jVwbH1.js +213 -0
  223. package/dist/src/quiverai-CI6gYJVI.js +213 -0
  224. package/dist/src/quiverai-CLkWkyZc.cjs +213 -0
  225. package/dist/src/quiverai-MHSxbmmZ.js +215 -0
  226. package/dist/src/{render-CAZvKKkB.js → render-Drod8m7K.js} +4 -5
  227. package/dist/src/{responses-DLLjADw5.js → responses-BKqJmhhc.js} +34 -27
  228. package/dist/src/{responses-TsdODUpm.js → responses-CGw0DCzh.js} +34 -27
  229. package/dist/src/responses-jxdehPkC.js +660 -0
  230. package/dist/src/{responses-zOtKtnY_.cjs → responses-tD4Bd4dc.cjs} +49 -42
  231. package/dist/src/rubyUtils-BUHu6PhO.js +5 -0
  232. package/dist/src/{rubyUtils-Cs35SDYa.js → rubyUtils-BUVePouc.js} +27 -20
  233. package/dist/src/rubyUtils-BcuGX77l.js +222 -0
  234. package/dist/src/{rubyUtils-BtjlqyXt.js → rubyUtils-Boc4HZzX.js} +18 -19
  235. package/dist/src/rubyUtils-CP42kMvq.cjs +4 -0
  236. package/dist/src/{rubyUtils-DCVaJ3mc.cjs → rubyUtils-DhCAlxZr.cjs} +48 -50
  237. package/dist/src/{sagemaker-Du4LIR97.js → sagemaker-BK4Zb993.js} +75 -70
  238. package/dist/src/{sagemaker-CLdUAv5z.js → sagemaker-BfiWTmvn.js} +77 -77
  239. package/dist/src/{sagemaker-DwNnEVYt.cjs → sagemaker-CcQHM1jV.cjs} +75 -76
  240. package/dist/src/{sagemaker-BcgLu0U4.js → sagemaker-D2Q1c-sD.js} +75 -79
  241. package/dist/src/{scanner-Dyw21Wg_.js → scanner-J8CA3LsV.js} +149 -122
  242. package/dist/src/server/index.js +5620 -67302
  243. package/dist/src/{server-CgUQ25qW.cjs → server-B0PPuDw-.cjs} +57 -67
  244. package/dist/src/server-B1vi21hA.js +7 -0
  245. package/dist/src/{server-CbMTRQkg.js → server-BC7XJFgr.js} +19 -24
  246. package/dist/src/server-Cm9Kai_h.cjs +5 -0
  247. package/dist/src/{server-DWmZLfCy.js → server-DbFphssR.js} +26 -29
  248. package/dist/src/server-OAs3nBRT.js +229 -0
  249. package/dist/src/{signal-Bl32q42d.js → signal-BOTbd53Z.js} +9 -11
  250. package/dist/src/{slack-BtMkB6xP.cjs → slack-BmVAVGaK.cjs} +7 -8
  251. package/dist/src/{slack-OZYxoVON.js → slack-DCUPTzS2.js} +8 -8
  252. package/dist/src/{slack-DPqj42Ts.js → slack-DOdy_kyv.js} +7 -8
  253. package/dist/src/{slack-BfdBx2tO.js → slack-DXMKtA-f.js} +7 -9
  254. package/dist/src/store-BNmZ1KAz.cjs +5 -0
  255. package/dist/src/{store-BqwfFEyF.cjs → store-BSc-TF2w.cjs} +44 -45
  256. package/dist/src/store-BltJg2cd.js +6 -0
  257. package/dist/src/{store-D4gdn9ih.js → store-D1tv90v3.js} +34 -35
  258. package/dist/src/{store-2ocbYY9D.js → store-DQLEjuEO.js} +40 -36
  259. package/dist/src/store-Ub2vaGJ1.js +228 -0
  260. package/dist/src/{tables-D-NSwNIb.js → tables-5EvT_Bwn.js} +23 -23
  261. package/dist/src/{tables-B9E1kRp-.cjs → tables-C7K-XKWp.cjs} +93 -93
  262. package/dist/src/{tables-C7TT2XVn.js → tables-D36WTqKX.js} +25 -25
  263. package/dist/src/tables-xKANLRBD.js +288 -0
  264. package/dist/src/telemetry-5BCRNBbe.cjs +5 -0
  265. package/dist/src/{telemetry-DZ_7PaVq.js → telemetry-C15ziL8u.js} +17 -14
  266. package/dist/src/{telemetry-BXyVqyAg.js → telemetry-C2YDkUQH.js} +11 -13
  267. package/dist/src/{telemetry-D0_yFdtU.cjs → telemetry-CbrnxHp_.cjs} +21 -24
  268. package/dist/src/telemetry-D4W5hboe.js +7 -0
  269. package/dist/src/telemetry-DMb2Mpfm.js +171 -0
  270. package/dist/src/{text-Dm78AVGG.js → text-B_UCRPp2.js} +2 -2
  271. package/dist/src/{text-DF2hMKdg.cjs → text-CW1cyrwj.cjs} +12 -13
  272. package/dist/src/{text-DgMr_tiM.js → text-Db-Wt2u2.js} +2 -2
  273. package/dist/src/text-TIv0QYnd.js +22 -0
  274. package/dist/src/{tokenUsageUtils-FZd5O_4A.js → tokenUsageUtils-BDGe-iyI.js} +2 -2
  275. package/dist/src/{tokenUsageUtils-DmZSD2eU.js → tokenUsageUtils-DflFMjS0.js} +2 -2
  276. package/dist/src/tokenUsageUtils-NYT-WKS6.js +138 -0
  277. package/dist/src/{tokenUsageUtils-CXhxVj72.cjs → tokenUsageUtils-bVa1ga6f.cjs} +32 -33
  278. package/dist/src/{transcription-FNIz3YOe.cjs → transcription-CL78qbOU.cjs} +14 -15
  279. package/dist/src/{transcription-C-M81iDA.js → transcription-DAtxHhAM.js} +14 -7
  280. package/dist/src/{transcription-CYuY5sFO.js → transcription-LNZTNUUL.js} +14 -16
  281. package/dist/src/{transcription-Ch7S-LWw.js → transcription-QHh3AH6Z.js} +15 -17
  282. package/dist/src/{transform-CoP2bJ7P.js → transform-Cgi24fJ7.js} +94 -66
  283. package/dist/src/{transform-Kd6u-oNm.cjs → transform-CzK1Q0zl.cjs} +24 -26
  284. package/dist/src/{transform-D8dILpfZ.js → transform-DECvGmzp.js} +15 -13
  285. package/dist/src/{transform-DMaxQwDx.js → transform-DGLazrMm.js} +94 -66
  286. package/dist/src/transform-DGxXocjk.js +1506 -0
  287. package/dist/src/{transform-ivxEY4f7.cjs → transform-DOcQeLld.cjs} +234 -206
  288. package/dist/src/transform-DTGDnAzW.js +6 -0
  289. package/dist/src/{transform-CqTFr7KR.js → transform-DilY9wbS.js} +10 -12
  290. package/dist/src/transform-aa6tmVpZ.js +216 -0
  291. package/dist/src/transform-m3qNw4KP.cjs +5 -0
  292. package/dist/src/{transformersAvailability-DEU2naS1.js → transformersAvailability-CEVM2GNQ.js} +2 -2
  293. package/dist/src/{transformersAvailability-Bkep3ka7.cjs → transformersAvailability-CwayUSlh.cjs} +2 -3
  294. package/dist/src/{transformersAvailability-DwmezkVe.js → transformersAvailability-D6c6ROpT.js} +2 -2
  295. package/dist/src/{types-t52w-XsS.js → types-CH3Ge2sE.js} +103 -92
  296. package/dist/src/{types-DMVjYLpx.js → types-CLKiCBW3.js} +98 -91
  297. package/dist/src/types-CN_TZ2GJ.js +3260 -0
  298. package/dist/src/{types-BIfttHrT.cjs → types-LJ0r3wbR.cjs} +573 -566
  299. package/dist/src/util-5cB-L7U3.js +1430 -0
  300. package/dist/src/util-6-GqIvzS.js +599 -0
  301. package/dist/src/{util-vjscpUzy.js → util-B7T3SiBS.js} +5 -6
  302. package/dist/src/{util-Cl0zfT3V.js → util-Betm42rL.js} +44 -17
  303. package/dist/src/{util-CUEt0Vum.js → util-C-PPYSMq.js} +44 -17
  304. package/dist/src/{util-DkFTvieG.cjs → util-CchiqXh_.cjs} +35 -36
  305. package/dist/src/{util-mJ58qbbw.js → util-DaWTWKBK.js} +5 -6
  306. package/dist/src/{util-C08Kns6-.cjs → util-Db0a0AFH.cjs} +89 -62
  307. package/dist/src/{util-DiCePfDu.js → util-Dlz_Wvgm.js} +102 -53
  308. package/dist/src/{util-BSh4a_Q8.js → util-YT5HPZaS.js} +102 -53
  309. package/dist/src/{util-DUYOvxAy.cjs → util-Yz-1aEhW.cjs} +274 -219
  310. package/dist/src/util-ZZH-3QZz.js +293 -0
  311. package/dist/src/{utils-DFaZa6Rf.cjs → utils-Cz9qXqII.cjs} +32 -35
  312. package/dist/src/{utils-CVzb4YiI.js → utils-XiOAgly5.js} +4 -7
  313. package/dist/src/utils-dLokC-eR.js +94 -0
  314. package/dist/src/{utils-JaY9veb5.js → utils-f2-Moju7.js} +4 -7
  315. package/dist/tsconfig.tsbuildinfo +1 -1
  316. package/package.json +59 -53
  317. package/dist/src/app/assets/index-BOgkICuY.css +0 -1
  318. package/dist/src/app/assets/index-CSgqn_Vd.js +0 -428
  319. package/dist/src/app/tsconfig.app.tsbuildinfo +0 -1
  320. package/dist/src/base-BaXmtXYp.js +0 -107
  321. package/dist/src/base-Dtp8b4_N.js +0 -106
  322. package/dist/src/base-f71xxWai.cjs +0 -111
  323. package/dist/src/cache-BUPcq0Ad.js +0 -6
  324. package/dist/src/cache-CVfRb-HD.cjs +0 -6
  325. package/dist/src/cache-O4EuX2JV.js +0 -8
  326. package/dist/src/chunk-DHDDz29n.js +0 -22
  327. package/dist/src/chunk-FhC4c-0y.js +0 -21
  328. package/dist/src/cloud-CZ4hytdm.js +0 -5
  329. package/dist/src/eval-CKHWqG9f.js +0 -16
  330. package/dist/src/evalResult-CxTP-LMm.cjs +0 -11
  331. package/dist/src/evalResult-CzLURDcP.js +0 -13
  332. package/dist/src/evalResult-DyttNQ_G.js +0 -11
  333. package/dist/src/evaluator-0PvfeBYh.js +0 -38
  334. package/dist/src/fetch-Bi0o-fdp.js +0 -4
  335. package/dist/src/fetch-CMptBDVg.cjs +0 -4
  336. package/dist/src/fetch-DAZkv3gV.js +0 -6
  337. package/dist/src/graders-BCytzXrb.js +0 -34
  338. package/dist/src/graders-CGZQShfJ.cjs +0 -33
  339. package/dist/src/graders-spkuVC-E.js +0 -36
  340. package/dist/src/opencode-sdk-CImWVqy9.js +0 -382
  341. package/dist/src/opencode-sdk-CuCztr4P.js +0 -380
  342. package/dist/src/opencode-sdk-DhcfRbBH.js +0 -376
  343. package/dist/src/opencode-sdk-mqF-Oj3f.cjs +0 -383
  344. package/dist/src/providers-BMZZmPBJ.cjs +0 -32
  345. package/dist/src/providers-CQQrNaJk.js +0 -32
  346. package/dist/src/providers-Ck8HyrC-.js +0 -34
  347. package/dist/src/quiverai-BNfIwKCO.cjs +0 -54
  348. package/dist/src/quiverai-BQigKdIH.js +0 -57
  349. package/dist/src/quiverai-Bfy2WnE2.js +0 -55
  350. package/dist/src/quiverai-CedIP0PJ.js +0 -43
  351. package/dist/src/rubyUtils-D7--T12C.js +0 -6
  352. package/dist/src/rubyUtils-DRRiMFV2.js +0 -5
  353. package/dist/src/rubyUtils-vb8OYFC-.cjs +0 -5
  354. package/dist/src/server-BUbS0Qfh.js +0 -6
  355. package/dist/src/server-XpGXFHkS.cjs +0 -6
  356. package/dist/src/server-gfOx5Zrk.js +0 -8
  357. package/dist/src/store-5u2yriTV.js +0 -7
  358. package/dist/src/store-D_lq_8oQ.js +0 -6
  359. package/dist/src/store-m5KT6Ly7.cjs +0 -6
  360. package/dist/src/telemetry-5RHFoCJh.js +0 -6
  361. package/dist/src/telemetry-Do8wMnA-.js +0 -8
  362. package/dist/src/telemetry-LojxPoFq.cjs +0 -6
  363. package/dist/src/transform-8eGmaH-7.js +0 -7
  364. package/dist/src/transform-BRVvWaG4.cjs +0 -6
  365. package/dist/src/transform-GybT0X0u.js +0 -8
  366. package/dist/src/transformersAvailability-DkAWaK5B.js +0 -35
@@ -1,22 +1,8 @@
1
1
  #!/usr/bin/env node
2
- import { b as getEnvBool, o as logger_default } from "./logger-BotXmWKW.js";
3
- import { c as isLoggedIntoCloud } from "./accounts-DHHiXsy6.js";
4
- import { i as cloudConfig } from "./cloud-BMbRVJFw.js";
5
- import { a as BLOB_MAX_SIZE, i as storeBlob, o as BLOB_MIN_SIZE, r as recordBlobReference } from "./blobs-kt8v3UyH.js";
6
- import { createHash } from "crypto";
7
-
8
- //#region src/util/createHash.ts
9
- function sha256(str) {
10
- return createHash("sha256").update(str).digest("hex");
11
- }
12
- function randomSequence(length = 3) {
13
- const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
14
- let result = "";
15
- for (let i = 0; i < length; i++) result += characters.charAt(Math.floor(Math.random() * 62));
16
- return result;
17
- }
18
-
19
- //#endregion
2
+ import { b as getEnvBool, o as logger } from "./logger-KkObSCzq.js";
3
+ import { c as isLoggedIntoCloud } from "./accounts-CMqkzrVf.js";
4
+ import { a as cloudConfig } from "./cloud-Bc9526yV.js";
5
+ import { i as storeBlob, r as recordBlobReference } from "./blobs-BAU-dXan.js";
20
6
  //#region src/blobs/remoteUpload.ts
21
7
  function buildRemoteUrl() {
22
8
  const baseUrl = cloudConfig.getApiHost();
@@ -25,7 +11,7 @@ function buildRemoteUrl() {
25
11
  try {
26
12
  return new URL("/api/blobs", baseUrl).toString();
27
13
  } catch (error) {
28
- logger_default.debug("[RemoteBlob] Invalid remote blob URL", {
14
+ logger.debug("[RemoteBlob] Invalid remote blob URL", {
29
15
  error: error instanceof Error ? error.message : String(error),
30
16
  baseUrl
31
17
  });
@@ -40,7 +26,7 @@ async function uploadBlobRemote(buffer, mimeType, context) {
40
26
  const apiKey = cloudConfig.getApiKey();
41
27
  if (!url || !apiKey) return null;
42
28
  try {
43
- const { fetchWithProxy } = await import("./fetch-DAZkv3gV.js");
29
+ const { fetchWithProxy } = await import("./fetch-KV5kNASw.js");
44
30
  const response = await fetchWithProxy(url, {
45
31
  method: "POST",
46
32
  headers: {
@@ -54,12 +40,12 @@ async function uploadBlobRemote(buffer, mimeType, context) {
54
40
  })
55
41
  });
56
42
  if (response.status === 404 || response.status === 400) {
57
- logger_default.debug("[RemoteBlob] Remote blob upload unavailable", { status: response.status });
43
+ logger.debug("[RemoteBlob] Remote blob upload unavailable", { status: response.status });
58
44
  return null;
59
45
  }
60
46
  if (!response.ok) {
61
47
  const text = await response.text();
62
- logger_default.debug("[RemoteBlob] Failed to upload blob", {
48
+ logger.debug("[RemoteBlob] Failed to upload blob", {
63
49
  status: response.status,
64
50
  statusText: response.statusText,
65
51
  body: text
@@ -68,16 +54,15 @@ async function uploadBlobRemote(buffer, mimeType, context) {
68
54
  }
69
55
  const data = await response.json();
70
56
  if (!data?.ref?.hash) {
71
- logger_default.debug("[RemoteBlob] Remote upload returned malformed response");
57
+ logger.debug("[RemoteBlob] Remote upload returned malformed response");
72
58
  return null;
73
59
  }
74
60
  return data;
75
61
  } catch (error) {
76
- logger_default.debug("[RemoteBlob] Error uploading blob", { error: error instanceof Error ? error.message : String(error) });
62
+ logger.debug("[RemoteBlob] Error uploading blob", { error: error instanceof Error ? error.message : String(error) });
77
63
  return null;
78
64
  }
79
65
  }
80
-
81
66
  //#endregion
82
67
  //#region src/blobs/extractor.ts
83
68
  const BLOB_URI_REGEX = /^promptfoo:\/\/blob\/([a-f0-9]{64})$/i;
@@ -95,13 +80,13 @@ function extractBase64(value) {
95
80
  mimeType
96
81
  };
97
82
  } catch (error) {
98
- logger_default.warn("[BlobExtractor] Failed to parse base64 data URL", { error });
83
+ logger.warn("[BlobExtractor] Failed to parse base64 data URL", { error });
99
84
  return null;
100
85
  }
101
86
  }
102
87
  function shouldExternalize(buffer) {
103
88
  const size = buffer.length;
104
- return size >= BLOB_MIN_SIZE && size <= BLOB_MAX_SIZE;
89
+ return size >= 1024 && size <= 52428800;
105
90
  }
106
91
  function getKindFromMimeType(mimeType) {
107
92
  return mimeType.startsWith("audio/") ? "audio" : "image";
@@ -127,7 +112,7 @@ function normalizeAudioMimeType(format) {
127
112
  };
128
113
  if (mimeMap[formatLower]) return mimeMap[formatLower];
129
114
  if (!/^[a-z0-9_-]+$/i.test(formatLower)) {
130
- logger_default.warn("[BlobExtractor] Invalid audio format, using default", { format });
115
+ logger.warn("[BlobExtractor] Invalid audio format, using default", { format });
131
116
  return "audio/wav";
132
117
  }
133
118
  return `audio/${formatLower}`;
@@ -144,7 +129,7 @@ function parseBinary(base64OrDataUrl, defaultMimeType) {
144
129
  mimeType: defaultMimeType
145
130
  };
146
131
  } catch (error) {
147
- logger_default.warn("[BlobExtractor] Failed to parse base64 data", { error });
132
+ logger.warn("[BlobExtractor] Failed to parse base64 data", { error });
148
133
  return null;
149
134
  }
150
135
  }
@@ -165,7 +150,7 @@ async function maybeStore(base64OrDataUrl, defaultMimeType, context, location, k
165
150
  location,
166
151
  kind
167
152
  }).catch((error) => {
168
- logger_default.debug("[BlobExtractor] Cloud upload failed (non-fatal)", {
153
+ logger.debug("[BlobExtractor] Cloud upload failed (non-fatal)", {
169
154
  error: error instanceof Error ? error.message : String(error),
170
155
  hash: ref.hash
171
156
  });
@@ -249,7 +234,7 @@ async function extractAndStoreBinaryData(response, context) {
249
234
  blobRef: stored
250
235
  };
251
236
  mutated = true;
252
- logger_default.debug("[BlobExtractor] Stored audio blob", {
237
+ logger.debug("[BlobExtractor] Stored audio blob", {
253
238
  ...context,
254
239
  hash: stored.hash
255
240
  });
@@ -260,7 +245,7 @@ async function extractAndStoreBinaryData(response, context) {
260
245
  const stored = await maybeStore(img.data, img.mimeType || "image/png", blobContext, `response.images[${idx}].data`, "image");
261
246
  if (stored) {
262
247
  mutated = true;
263
- logger_default.debug("[BlobExtractor] Stored image blob", {
248
+ logger.debug("[BlobExtractor] Stored image blob", {
264
249
  ...context,
265
250
  hash: stored.hash
266
251
  });
@@ -297,7 +282,7 @@ async function extractAndStoreBinaryData(response, context) {
297
282
  if (stored) {
298
283
  next.output = stored.uri;
299
284
  mutated = true;
300
- logger_default.debug("[BlobExtractor] Stored output blob", {
285
+ logger.debug("[BlobExtractor] Stored output blob", {
301
286
  ...context,
302
287
  hash: stored.hash
303
288
  });
@@ -316,7 +301,7 @@ async function extractAndStoreBinaryData(response, context) {
316
301
  storedUris.push(stored.uri);
317
302
  jsonMutated = true;
318
303
  mutated = true;
319
- logger_default.debug("[BlobExtractor] Stored image blob from b64_json", {
304
+ logger.debug("[BlobExtractor] Stored image blob from b64_json", {
320
305
  ...context,
321
306
  hash: stored.hash
322
307
  });
@@ -334,7 +319,7 @@ async function extractAndStoreBinaryData(response, context) {
334
319
  }
335
320
  }
336
321
  } catch (err) {
337
- logger_default.debug("[BlobExtractor] Failed to parse base64 JSON output", {
322
+ logger.debug("[BlobExtractor] Failed to parse base64 JSON output", {
338
323
  error: err instanceof Error ? err.message : String(err),
339
324
  location: "response.output"
340
325
  });
@@ -384,7 +369,7 @@ async function recordExistingBlobReferences(value, context, location) {
384
369
  }
385
370
  if (value && typeof value === "object") for (const [key, child] of Object.entries(value)) await recordExistingBlobReferences(child, context, location ? `${location}.${key}` : key);
386
371
  }
387
-
388
372
  //#endregion
389
- export { sha256 as a, randomSequence as i, isBlobStorageEnabled as n, shouldAttemptRemoteBlobUpload as r, extractAndStoreBinaryData as t };
390
- //# sourceMappingURL=extractor-LSYjrhK0.js.map
373
+ export { isBlobStorageEnabled as n, shouldAttemptRemoteBlobUpload as r, extractAndStoreBinaryData as t };
374
+
375
+ //# sourceMappingURL=extractor-CFG6bcWJ.js.map
@@ -1,21 +1,7 @@
1
- const require_logger = require('./logger-BdZ-IqBc.cjs');
2
- const require_fetch = require('./fetch-ZMn_oemb.cjs');
3
- const require_accounts = require('./accounts-BzEY8H3v.cjs');
4
- const require_blobs = require('./blobs-673H0jCl.cjs');
5
- let crypto = require("crypto");
6
-
7
- //#region src/util/createHash.ts
8
- function sha256(str) {
9
- return (0, crypto.createHash)("sha256").update(str).digest("hex");
10
- }
11
- function randomSequence(length = 3) {
12
- const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
13
- let result = "";
14
- for (let i = 0; i < length; i++) result += characters.charAt(Math.floor(Math.random() * 62));
15
- return result;
16
- }
17
-
18
- //#endregion
1
+ const require_logger = require("./logger-Cp1GPUjj.cjs");
2
+ const require_fetch = require("./fetch-BxUk8odA.cjs");
3
+ const require_accounts = require("./accounts-Bx-x3bmW.cjs");
4
+ const require_blobs = require("./blobs-DvS-O6be.cjs");
19
5
  //#region src/blobs/remoteUpload.ts
20
6
  function buildRemoteUrl() {
21
7
  const baseUrl = require_fetch.cloudConfig.getApiHost();
@@ -24,7 +10,7 @@ function buildRemoteUrl() {
24
10
  try {
25
11
  return new URL("/api/blobs", baseUrl).toString();
26
12
  } catch (error) {
27
- require_logger.logger_default.debug("[RemoteBlob] Invalid remote blob URL", {
13
+ require_logger.logger.debug("[RemoteBlob] Invalid remote blob URL", {
28
14
  error: error instanceof Error ? error.message : String(error),
29
15
  baseUrl
30
16
  });
@@ -39,7 +25,7 @@ async function uploadBlobRemote(buffer, mimeType, context) {
39
25
  const apiKey = require_fetch.cloudConfig.getApiKey();
40
26
  if (!url || !apiKey) return null;
41
27
  try {
42
- const { fetchWithProxy } = await Promise.resolve().then(() => require("./fetch-CMptBDVg.cjs"));
28
+ const { fetchWithProxy } = await Promise.resolve().then(() => require("./fetch-BxUk8odA.cjs")).then((n) => n.fetch_exports);
43
29
  const response = await fetchWithProxy(url, {
44
30
  method: "POST",
45
31
  headers: {
@@ -53,12 +39,12 @@ async function uploadBlobRemote(buffer, mimeType, context) {
53
39
  })
54
40
  });
55
41
  if (response.status === 404 || response.status === 400) {
56
- require_logger.logger_default.debug("[RemoteBlob] Remote blob upload unavailable", { status: response.status });
42
+ require_logger.logger.debug("[RemoteBlob] Remote blob upload unavailable", { status: response.status });
57
43
  return null;
58
44
  }
59
45
  if (!response.ok) {
60
46
  const text = await response.text();
61
- require_logger.logger_default.debug("[RemoteBlob] Failed to upload blob", {
47
+ require_logger.logger.debug("[RemoteBlob] Failed to upload blob", {
62
48
  status: response.status,
63
49
  statusText: response.statusText,
64
50
  body: text
@@ -67,16 +53,15 @@ async function uploadBlobRemote(buffer, mimeType, context) {
67
53
  }
68
54
  const data = await response.json();
69
55
  if (!data?.ref?.hash) {
70
- require_logger.logger_default.debug("[RemoteBlob] Remote upload returned malformed response");
56
+ require_logger.logger.debug("[RemoteBlob] Remote upload returned malformed response");
71
57
  return null;
72
58
  }
73
59
  return data;
74
60
  } catch (error) {
75
- require_logger.logger_default.debug("[RemoteBlob] Error uploading blob", { error: error instanceof Error ? error.message : String(error) });
61
+ require_logger.logger.debug("[RemoteBlob] Error uploading blob", { error: error instanceof Error ? error.message : String(error) });
76
62
  return null;
77
63
  }
78
64
  }
79
-
80
65
  //#endregion
81
66
  //#region src/blobs/extractor.ts
82
67
  const BLOB_URI_REGEX = /^promptfoo:\/\/blob\/([a-f0-9]{64})$/i;
@@ -94,13 +79,13 @@ function extractBase64(value) {
94
79
  mimeType
95
80
  };
96
81
  } catch (error) {
97
- require_logger.logger_default.warn("[BlobExtractor] Failed to parse base64 data URL", { error });
82
+ require_logger.logger.warn("[BlobExtractor] Failed to parse base64 data URL", { error });
98
83
  return null;
99
84
  }
100
85
  }
101
86
  function shouldExternalize(buffer) {
102
87
  const size = buffer.length;
103
- return size >= require_blobs.BLOB_MIN_SIZE && size <= require_blobs.BLOB_MAX_SIZE;
88
+ return size >= 1024 && size <= 52428800;
104
89
  }
105
90
  function getKindFromMimeType(mimeType) {
106
91
  return mimeType.startsWith("audio/") ? "audio" : "image";
@@ -126,7 +111,7 @@ function normalizeAudioMimeType(format) {
126
111
  };
127
112
  if (mimeMap[formatLower]) return mimeMap[formatLower];
128
113
  if (!/^[a-z0-9_-]+$/i.test(formatLower)) {
129
- require_logger.logger_default.warn("[BlobExtractor] Invalid audio format, using default", { format });
114
+ require_logger.logger.warn("[BlobExtractor] Invalid audio format, using default", { format });
130
115
  return "audio/wav";
131
116
  }
132
117
  return `audio/${formatLower}`;
@@ -143,7 +128,7 @@ function parseBinary(base64OrDataUrl, defaultMimeType) {
143
128
  mimeType: defaultMimeType
144
129
  };
145
130
  } catch (error) {
146
- require_logger.logger_default.warn("[BlobExtractor] Failed to parse base64 data", { error });
131
+ require_logger.logger.warn("[BlobExtractor] Failed to parse base64 data", { error });
147
132
  return null;
148
133
  }
149
134
  }
@@ -164,7 +149,7 @@ async function maybeStore(base64OrDataUrl, defaultMimeType, context, location, k
164
149
  location,
165
150
  kind
166
151
  }).catch((error) => {
167
- require_logger.logger_default.debug("[BlobExtractor] Cloud upload failed (non-fatal)", {
152
+ require_logger.logger.debug("[BlobExtractor] Cloud upload failed (non-fatal)", {
168
153
  error: error instanceof Error ? error.message : String(error),
169
154
  hash: ref.hash
170
155
  });
@@ -248,7 +233,7 @@ async function extractAndStoreBinaryData(response, context) {
248
233
  blobRef: stored
249
234
  };
250
235
  mutated = true;
251
- require_logger.logger_default.debug("[BlobExtractor] Stored audio blob", {
236
+ require_logger.logger.debug("[BlobExtractor] Stored audio blob", {
252
237
  ...context,
253
238
  hash: stored.hash
254
239
  });
@@ -259,7 +244,7 @@ async function extractAndStoreBinaryData(response, context) {
259
244
  const stored = await maybeStore(img.data, img.mimeType || "image/png", blobContext, `response.images[${idx}].data`, "image");
260
245
  if (stored) {
261
246
  mutated = true;
262
- require_logger.logger_default.debug("[BlobExtractor] Stored image blob", {
247
+ require_logger.logger.debug("[BlobExtractor] Stored image blob", {
263
248
  ...context,
264
249
  hash: stored.hash
265
250
  });
@@ -296,7 +281,7 @@ async function extractAndStoreBinaryData(response, context) {
296
281
  if (stored) {
297
282
  next.output = stored.uri;
298
283
  mutated = true;
299
- require_logger.logger_default.debug("[BlobExtractor] Stored output blob", {
284
+ require_logger.logger.debug("[BlobExtractor] Stored output blob", {
300
285
  ...context,
301
286
  hash: stored.hash
302
287
  });
@@ -315,7 +300,7 @@ async function extractAndStoreBinaryData(response, context) {
315
300
  storedUris.push(stored.uri);
316
301
  jsonMutated = true;
317
302
  mutated = true;
318
- require_logger.logger_default.debug("[BlobExtractor] Stored image blob from b64_json", {
303
+ require_logger.logger.debug("[BlobExtractor] Stored image blob from b64_json", {
319
304
  ...context,
320
305
  hash: stored.hash
321
306
  });
@@ -333,7 +318,7 @@ async function extractAndStoreBinaryData(response, context) {
333
318
  }
334
319
  }
335
320
  } catch (err) {
336
- require_logger.logger_default.debug("[BlobExtractor] Failed to parse base64 JSON output", {
321
+ require_logger.logger.debug("[BlobExtractor] Failed to parse base64 JSON output", {
337
322
  error: err instanceof Error ? err.message : String(err),
338
323
  location: "response.output"
339
324
  });
@@ -383,36 +368,24 @@ async function recordExistingBlobReferences(value, context, location) {
383
368
  }
384
369
  if (value && typeof value === "object") for (const [key, child] of Object.entries(value)) await recordExistingBlobReferences(child, context, location ? `${location}.${key}` : key);
385
370
  }
386
-
387
371
  //#endregion
388
- Object.defineProperty(exports, 'extractAndStoreBinaryData', {
389
- enumerable: true,
390
- get: function () {
391
- return extractAndStoreBinaryData;
392
- }
393
- });
394
- Object.defineProperty(exports, 'isBlobStorageEnabled', {
395
- enumerable: true,
396
- get: function () {
397
- return isBlobStorageEnabled;
398
- }
399
- });
400
- Object.defineProperty(exports, 'randomSequence', {
401
- enumerable: true,
402
- get: function () {
403
- return randomSequence;
404
- }
372
+ Object.defineProperty(exports, "extractAndStoreBinaryData", {
373
+ enumerable: true,
374
+ get: function() {
375
+ return extractAndStoreBinaryData;
376
+ }
405
377
  });
406
- Object.defineProperty(exports, 'sha256', {
407
- enumerable: true,
408
- get: function () {
409
- return sha256;
410
- }
378
+ Object.defineProperty(exports, "isBlobStorageEnabled", {
379
+ enumerable: true,
380
+ get: function() {
381
+ return isBlobStorageEnabled;
382
+ }
411
383
  });
412
- Object.defineProperty(exports, 'shouldAttemptRemoteBlobUpload', {
413
- enumerable: true,
414
- get: function () {
415
- return shouldAttemptRemoteBlobUpload;
416
- }
384
+ Object.defineProperty(exports, "shouldAttemptRemoteBlobUpload", {
385
+ enumerable: true,
386
+ get: function() {
387
+ return shouldAttemptRemoteBlobUpload;
388
+ }
417
389
  });
418
- //# sourceMappingURL=extractor-DbhlYEeo.cjs.map
390
+
391
+ //# sourceMappingURL=extractor-DX36oYEv.cjs.map
@@ -1,21 +1,7 @@
1
- import { _ as getEnvBool, i as logger_default } from "./logger-w8Ozp0Td.js";
2
- import { c as cloudConfig } from "./fetch-18MuNu9i.js";
3
- import { o as isLoggedIntoCloud } from "./accounts-R3gfCR_g.js";
4
- import { a as BLOB_MIN_SIZE, i as BLOB_MAX_SIZE, n as recordBlobReference, r as storeBlob } from "./blobs-C9J2mVgo.js";
5
- import { createHash } from "crypto";
6
-
7
- //#region src/util/createHash.ts
8
- function sha256(str) {
9
- return createHash("sha256").update(str).digest("hex");
10
- }
11
- function randomSequence(length = 3) {
12
- const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
13
- let result = "";
14
- for (let i = 0; i < length; i++) result += characters.charAt(Math.floor(Math.random() * 62));
15
- return result;
16
- }
17
-
18
- //#endregion
1
+ import { _ as getEnvBool, i as logger } from "./logger-CT3IKMKA.js";
2
+ import { o as cloudConfig } from "./fetch-60Gzydls.js";
3
+ import { o as isLoggedIntoCloud } from "./accounts-xrUGFA6n.js";
4
+ import { n as recordBlobReference, r as storeBlob } from "./blobs-Bpg5rH6i.js";
19
5
  //#region src/blobs/remoteUpload.ts
20
6
  function buildRemoteUrl() {
21
7
  const baseUrl = cloudConfig.getApiHost();
@@ -24,7 +10,7 @@ function buildRemoteUrl() {
24
10
  try {
25
11
  return new URL("/api/blobs", baseUrl).toString();
26
12
  } catch (error) {
27
- logger_default.debug("[RemoteBlob] Invalid remote blob URL", {
13
+ logger.debug("[RemoteBlob] Invalid remote blob URL", {
28
14
  error: error instanceof Error ? error.message : String(error),
29
15
  baseUrl
30
16
  });
@@ -39,7 +25,7 @@ async function uploadBlobRemote(buffer, mimeType, context) {
39
25
  const apiKey = cloudConfig.getApiKey();
40
26
  if (!url || !apiKey) return null;
41
27
  try {
42
- const { fetchWithProxy } = await import("./fetch-Bi0o-fdp.js");
28
+ const { fetchWithProxy } = await import("./fetch-60Gzydls.js").then((n) => n.i);
43
29
  const response = await fetchWithProxy(url, {
44
30
  method: "POST",
45
31
  headers: {
@@ -53,12 +39,12 @@ async function uploadBlobRemote(buffer, mimeType, context) {
53
39
  })
54
40
  });
55
41
  if (response.status === 404 || response.status === 400) {
56
- logger_default.debug("[RemoteBlob] Remote blob upload unavailable", { status: response.status });
42
+ logger.debug("[RemoteBlob] Remote blob upload unavailable", { status: response.status });
57
43
  return null;
58
44
  }
59
45
  if (!response.ok) {
60
46
  const text = await response.text();
61
- logger_default.debug("[RemoteBlob] Failed to upload blob", {
47
+ logger.debug("[RemoteBlob] Failed to upload blob", {
62
48
  status: response.status,
63
49
  statusText: response.statusText,
64
50
  body: text
@@ -67,16 +53,15 @@ async function uploadBlobRemote(buffer, mimeType, context) {
67
53
  }
68
54
  const data = await response.json();
69
55
  if (!data?.ref?.hash) {
70
- logger_default.debug("[RemoteBlob] Remote upload returned malformed response");
56
+ logger.debug("[RemoteBlob] Remote upload returned malformed response");
71
57
  return null;
72
58
  }
73
59
  return data;
74
60
  } catch (error) {
75
- logger_default.debug("[RemoteBlob] Error uploading blob", { error: error instanceof Error ? error.message : String(error) });
61
+ logger.debug("[RemoteBlob] Error uploading blob", { error: error instanceof Error ? error.message : String(error) });
76
62
  return null;
77
63
  }
78
64
  }
79
-
80
65
  //#endregion
81
66
  //#region src/blobs/extractor.ts
82
67
  const BLOB_URI_REGEX = /^promptfoo:\/\/blob\/([a-f0-9]{64})$/i;
@@ -94,13 +79,13 @@ function extractBase64(value) {
94
79
  mimeType
95
80
  };
96
81
  } catch (error) {
97
- logger_default.warn("[BlobExtractor] Failed to parse base64 data URL", { error });
82
+ logger.warn("[BlobExtractor] Failed to parse base64 data URL", { error });
98
83
  return null;
99
84
  }
100
85
  }
101
86
  function shouldExternalize(buffer) {
102
87
  const size = buffer.length;
103
- return size >= BLOB_MIN_SIZE && size <= BLOB_MAX_SIZE;
88
+ return size >= 1024 && size <= 52428800;
104
89
  }
105
90
  function getKindFromMimeType(mimeType) {
106
91
  return mimeType.startsWith("audio/") ? "audio" : "image";
@@ -126,7 +111,7 @@ function normalizeAudioMimeType(format) {
126
111
  };
127
112
  if (mimeMap[formatLower]) return mimeMap[formatLower];
128
113
  if (!/^[a-z0-9_-]+$/i.test(formatLower)) {
129
- logger_default.warn("[BlobExtractor] Invalid audio format, using default", { format });
114
+ logger.warn("[BlobExtractor] Invalid audio format, using default", { format });
130
115
  return "audio/wav";
131
116
  }
132
117
  return `audio/${formatLower}`;
@@ -143,7 +128,7 @@ function parseBinary(base64OrDataUrl, defaultMimeType) {
143
128
  mimeType: defaultMimeType
144
129
  };
145
130
  } catch (error) {
146
- logger_default.warn("[BlobExtractor] Failed to parse base64 data", { error });
131
+ logger.warn("[BlobExtractor] Failed to parse base64 data", { error });
147
132
  return null;
148
133
  }
149
134
  }
@@ -164,7 +149,7 @@ async function maybeStore(base64OrDataUrl, defaultMimeType, context, location, k
164
149
  location,
165
150
  kind
166
151
  }).catch((error) => {
167
- logger_default.debug("[BlobExtractor] Cloud upload failed (non-fatal)", {
152
+ logger.debug("[BlobExtractor] Cloud upload failed (non-fatal)", {
168
153
  error: error instanceof Error ? error.message : String(error),
169
154
  hash: ref.hash
170
155
  });
@@ -248,7 +233,7 @@ async function extractAndStoreBinaryData(response, context) {
248
233
  blobRef: stored
249
234
  };
250
235
  mutated = true;
251
- logger_default.debug("[BlobExtractor] Stored audio blob", {
236
+ logger.debug("[BlobExtractor] Stored audio blob", {
252
237
  ...context,
253
238
  hash: stored.hash
254
239
  });
@@ -259,7 +244,7 @@ async function extractAndStoreBinaryData(response, context) {
259
244
  const stored = await maybeStore(img.data, img.mimeType || "image/png", blobContext, `response.images[${idx}].data`, "image");
260
245
  if (stored) {
261
246
  mutated = true;
262
- logger_default.debug("[BlobExtractor] Stored image blob", {
247
+ logger.debug("[BlobExtractor] Stored image blob", {
263
248
  ...context,
264
249
  hash: stored.hash
265
250
  });
@@ -296,7 +281,7 @@ async function extractAndStoreBinaryData(response, context) {
296
281
  if (stored) {
297
282
  next.output = stored.uri;
298
283
  mutated = true;
299
- logger_default.debug("[BlobExtractor] Stored output blob", {
284
+ logger.debug("[BlobExtractor] Stored output blob", {
300
285
  ...context,
301
286
  hash: stored.hash
302
287
  });
@@ -315,7 +300,7 @@ async function extractAndStoreBinaryData(response, context) {
315
300
  storedUris.push(stored.uri);
316
301
  jsonMutated = true;
317
302
  mutated = true;
318
- logger_default.debug("[BlobExtractor] Stored image blob from b64_json", {
303
+ logger.debug("[BlobExtractor] Stored image blob from b64_json", {
319
304
  ...context,
320
305
  hash: stored.hash
321
306
  });
@@ -333,7 +318,7 @@ async function extractAndStoreBinaryData(response, context) {
333
318
  }
334
319
  }
335
320
  } catch (err) {
336
- logger_default.debug("[BlobExtractor] Failed to parse base64 JSON output", {
321
+ logger.debug("[BlobExtractor] Failed to parse base64 JSON output", {
337
322
  error: err instanceof Error ? err.message : String(err),
338
323
  location: "response.output"
339
324
  });
@@ -383,7 +368,7 @@ async function recordExistingBlobReferences(value, context, location) {
383
368
  }
384
369
  if (value && typeof value === "object") for (const [key, child] of Object.entries(value)) await recordExistingBlobReferences(child, context, location ? `${location}.${key}` : key);
385
370
  }
386
-
387
371
  //#endregion
388
- export { sha256 as a, randomSequence as i, isBlobStorageEnabled as n, shouldAttemptRemoteBlobUpload as r, extractAndStoreBinaryData as t };
389
- //# sourceMappingURL=extractor-Hs7la_19.js.map
372
+ export { isBlobStorageEnabled as n, shouldAttemptRemoteBlobUpload as r, extractAndStoreBinaryData as t };
373
+
374
+ //# sourceMappingURL=extractor-M67RUtg6.js.map