promptfoo 0.125.0 → 0.125.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 (869) hide show
  1. package/README.md +3 -3
  2. package/dist/src/accounts-BOxNYxVN.js +229 -0
  3. package/dist/src/accounts-BezXLdAW.cjs +276 -0
  4. package/dist/src/accounts-CPISMNlh.js +227 -0
  5. package/dist/src/accounts-vJBPs89d.js +222 -0
  6. package/dist/src/agentWorkspace-Bom7SpF2.js +592 -0
  7. package/dist/src/agentWorkspace-CEomAcws.cjs +619 -0
  8. package/dist/src/agentWorkspace-DPtMLrlI.js +593 -0
  9. package/dist/src/agentWorkspace-DkAeEYLz.js +592 -0
  10. package/dist/src/agentic-utils-121v7mJo.js +197 -0
  11. package/dist/src/agentic-utils-CBWD_rcd.cjs +237 -0
  12. package/dist/src/agentic-utils-D8wyQwPG.js +198 -0
  13. package/dist/src/agentic-utils-EP1QkQCs.js +197 -0
  14. package/dist/src/agents-Br3ah8iA.js +778 -0
  15. package/dist/src/agents-C5wj_UTv.js +777 -0
  16. package/dist/src/agents-C9Efp4mC.js +266 -0
  17. package/dist/src/agents-CQYwaVCO.js +267 -0
  18. package/dist/src/agents-CjCd4Vo8.js +777 -0
  19. package/dist/src/agents-DRWiCHYz.js +266 -0
  20. package/dist/src/agents-F2rhx0iL.cjs +266 -0
  21. package/dist/src/agents-RTYyy69h.cjs +777 -0
  22. package/dist/src/agents-api-CY72O86e.js +711 -0
  23. package/dist/src/agents-api-CsSsC21b.js +710 -0
  24. package/dist/src/agents-api-DN-ibDc8.js +710 -0
  25. package/dist/src/agents-api-cNDsCCv1.cjs +710 -0
  26. package/dist/src/ai.studio-Bj6Dyi6o.js +2 -0
  27. package/dist/src/ai.studio-C-e0LzyW.js +369 -0
  28. package/dist/src/ai.studio-CR8M6Aqf.cjs +391 -0
  29. package/dist/src/ai.studio-YKk7F0tv.js +374 -0
  30. package/dist/src/aimlapi-BGunsuTu.js +30 -0
  31. package/dist/src/aimlapi-BkzcfBsL.js +29 -0
  32. package/dist/src/aimlapi-DXFcEdP8.js +28 -0
  33. package/dist/src/aimlapi-r-8iCcAw.cjs +29 -0
  34. package/dist/src/anthropicMessages-7-YNRgQR.js +114 -0
  35. package/dist/src/anthropicMessages-C8m9Whrd.cjs +114 -0
  36. package/dist/src/anthropicMessages-DS1vXD0f.js +115 -0
  37. package/dist/src/anthropicMessages-DmvGkz-0.js +114 -0
  38. package/dist/src/app/assets/index-CrdXWTXm.js +392 -0
  39. package/dist/src/app/browser-inventory.json +4 -4
  40. package/dist/src/app/index.html +1 -1
  41. package/dist/src/audio-BLgFgyw-.cjs +104 -0
  42. package/dist/src/audio-C2sibT7Q.js +104 -0
  43. package/dist/src/audio-DXEXb03H.js +104 -0
  44. package/dist/src/audio-TkvojpwO.js +105 -0
  45. package/dist/src/authoritativeMarkupInjection-BAT9B-Wj.js +79 -0
  46. package/dist/src/authoritativeMarkupInjection-B_yHETKT.js +78 -0
  47. package/dist/src/authoritativeMarkupInjection-BfjecQ3Q.cjs +78 -0
  48. package/dist/src/authoritativeMarkupInjection-D-hDKrhD.js +78 -0
  49. package/dist/src/aws-B_9unI_-.js +1149 -0
  50. package/dist/src/aws-D0FY3qkc.js +2433 -0
  51. package/dist/src/aws-Dh1-a90n.js +2433 -0
  52. package/dist/src/aws-qskKGczY.cjs +2454 -0
  53. package/dist/src/base-CaWlBkVz.js +462 -0
  54. package/dist/src/base-CcViNwVs.js +255 -0
  55. package/dist/src/base-CsVbPJkU.cjs +467 -0
  56. package/dist/src/base-DNK9py25.js +255 -0
  57. package/dist/src/base-DlH5tjEZ.js +463 -0
  58. package/dist/src/base-DyLOZ_iX.js +256 -0
  59. package/dist/src/base-RRYXfG7l.cjs +305 -0
  60. package/dist/src/base-oXVgvtVn.js +462 -0
  61. package/dist/src/bedrock-BP17ZXbR.cjs +2 -0
  62. package/dist/src/bedrock-CsjM1dOt.js +1300 -0
  63. package/dist/src/bedrock-CzPwj8GO.js +1 -0
  64. package/dist/src/bedrock-eGXZw8oh.js +1 -0
  65. package/dist/src/bedrock-tSWjmXdj.js +2 -0
  66. package/dist/src/bestOfN-BQ93nUKV.js +160 -0
  67. package/dist/src/bestOfN-ByGGwlcb.cjs +161 -0
  68. package/dist/src/bestOfN-CbP7csHr.js +159 -0
  69. package/dist/src/bestOfN-xn6i2Xs2.js +159 -0
  70. package/dist/src/cache-CHq9hPz9.js +2 -0
  71. package/dist/src/cache-D-9eZN3I.js +754 -0
  72. package/dist/src/cache-DSm6t1MZ.js +741 -0
  73. package/dist/src/cache-DeF5zIEN.js +782 -0
  74. package/dist/src/cache-iG87oYan.cjs +856 -0
  75. package/dist/src/cerebras-CTtM4yMH.js +98 -0
  76. package/dist/src/cerebras-CogcJ3ce.cjs +97 -0
  77. package/dist/src/cerebras-DmkRypTh.js +97 -0
  78. package/dist/src/cerebras-GUp0B8JY.js +97 -0
  79. package/dist/src/chat-B4ihd3fw.js +226 -0
  80. package/dist/src/chat-B9cAQ_rS.js +227 -0
  81. package/dist/src/chat-BU7EB4R-.cjs +76 -0
  82. package/dist/src/chat-C8yxJ2-s.cjs +226 -0
  83. package/dist/src/chat-ClTFM3qq.js +934 -0
  84. package/dist/src/chat-Cnq0Is68.js +123 -0
  85. package/dist/src/chat-CwrurR57.cjs +987 -0
  86. package/dist/src/chat-D0lsojPv.js +124 -0
  87. package/dist/src/chat-D7_8yFIx.js +76 -0
  88. package/dist/src/chat-DCoETlLG.js +226 -0
  89. package/dist/src/chat-DHE7xaTR.js +76 -0
  90. package/dist/src/chat-DmhT6rz2.cjs +123 -0
  91. package/dist/src/chat-DvfMe8KI.js +123 -0
  92. package/dist/src/chat-DwP5kVnl.js +935 -0
  93. package/dist/src/chat-MB7U-QE2.js +77 -0
  94. package/dist/src/chat-zCWuBKAj.js +934 -0
  95. package/dist/src/claude-agent-sdk-23bIVI75.js +999 -0
  96. package/dist/src/claude-agent-sdk-BACpnIJi.cjs +1005 -0
  97. package/dist/src/claude-agent-sdk-BlYlmcEr.js +999 -0
  98. package/dist/src/claude-agent-sdk-Cr-jqJZl.js +1000 -0
  99. package/dist/src/client-BktbiPx9.cjs +357 -0
  100. package/dist/src/client-CjztEBmW.js +351 -0
  101. package/dist/src/client-mRs2UvH9.js +351 -0
  102. package/dist/src/client-uCz0ydjC.js +352 -0
  103. package/dist/src/cloud-BtYF555L.js +2 -0
  104. package/dist/src/cloud-CVSUEmAy.js +287 -0
  105. package/dist/src/cloud-D7Ifb-Fl.js +599 -0
  106. package/dist/src/cloud-DB5oK5NX.cjs +666 -0
  107. package/dist/src/cloud-ecu989Em.js +657 -0
  108. package/dist/src/cloud-ramjGURF.js +599 -0
  109. package/dist/src/cloudflare-ai-BfDkIjO8.js +133 -0
  110. package/dist/src/cloudflare-ai-D9HaXz1M.js +134 -0
  111. package/dist/src/cloudflare-ai-HrD5WUK8.js +132 -0
  112. package/dist/src/cloudflare-ai-Qdj8aKP2.cjs +133 -0
  113. package/dist/src/cloudflare-gateway-C81uKETQ.js +276 -0
  114. package/dist/src/cloudflare-gateway-CX5Z9X0k.js +276 -0
  115. package/dist/src/cloudflare-gateway-DW-og8gb.js +277 -0
  116. package/dist/src/cloudflare-gateway-iRyXo9n2.cjs +276 -0
  117. package/dist/src/codex-app-server-BFIrSgdy.js +2155 -0
  118. package/dist/src/codex-app-server-By1eDVD4.js +2 -0
  119. package/dist/src/codex-app-server-DKsF4qmY.js +2156 -0
  120. package/dist/src/codex-app-server-n7n4uZzC.cjs +2162 -0
  121. package/dist/src/codex-app-server-xAoELVxu.js +2155 -0
  122. package/dist/src/codex-sdk-C2ZLxa6r.js +1552 -0
  123. package/dist/src/codex-sdk-CzG02tQt.cjs +1588 -0
  124. package/dist/src/codex-sdk-DNxAOhiV.js +2 -0
  125. package/dist/src/codex-sdk-DT3aQezK.js +1557 -0
  126. package/dist/src/codex-sdk-pw9DpcJP.js +1557 -0
  127. package/dist/src/codex-security-B0bLmXJF.js +406 -0
  128. package/dist/src/codex-security-BhYs-3iY.js +406 -0
  129. package/dist/src/codex-security-DQcOfxYW.js +407 -0
  130. package/dist/src/codex-security-DsCWr6GZ.cjs +411 -0
  131. package/dist/src/cometapi-B16asPLX.cjs +55 -0
  132. package/dist/src/cometapi-MgTbZA_H.js +53 -0
  133. package/dist/src/cometapi-i33vKzPV.js +55 -0
  134. package/dist/src/cometapi-wK2UWK0X.js +56 -0
  135. package/dist/src/compatible-COj8ZCy9.js +24 -0
  136. package/dist/src/compatible-CRSsIUGb.cjs +24 -0
  137. package/dist/src/compatible-Dy1vCcNF.js +25 -0
  138. package/dist/src/compatible-aUItQrpk.js +24 -0
  139. package/dist/src/completion-Bn7COFMk.js +119 -0
  140. package/dist/src/completion-Bub2N48b.js +118 -0
  141. package/dist/src/completion-Cf2G9OlM.cjs +123 -0
  142. package/dist/src/conversationScoring-BiTYJ9MD.js +374 -0
  143. package/dist/src/conversationScoring-CKL47uIu.js +373 -0
  144. package/dist/src/conversationScoring-DCvQKp6k.cjs +398 -0
  145. package/dist/src/conversationScoring-DLNJtDZI.js +373 -0
  146. package/dist/src/crescendo-5iLk9WiJ.cjs +734 -0
  147. package/dist/src/crescendo-B5ylG7kW.js +733 -0
  148. package/dist/src/crescendo-BD7k6TIx.js +730 -0
  149. package/dist/src/crescendo-DqO2Ch0P.js +732 -0
  150. package/dist/src/custom-8rv_aG2K.js +617 -0
  151. package/dist/src/custom-BOtrIHFN.js +619 -0
  152. package/dist/src/custom-BvN8seCs.cjs +620 -0
  153. package/dist/src/custom-Cld9v_Y4.js +618 -0
  154. package/dist/src/dataUrl-BdHUey2l.cjs +3187 -0
  155. package/dist/src/dataUrl-DBMifX6C.js +3133 -0
  156. package/dist/src/dataUrl-DUSr-ZvI.js +2868 -0
  157. package/dist/src/decisions-CLazADTw.js +516 -0
  158. package/dist/src/decisions-D5X93awq.js +515 -0
  159. package/dist/src/decisions-DmaeArEn.js +515 -0
  160. package/dist/src/decisions-DyQJyHJz.cjs +514 -0
  161. package/dist/src/docker-C9NYQFeu.js +94 -0
  162. package/dist/src/docker-CGq3mMol.cjs +94 -0
  163. package/dist/src/docker-DOm7nmpl.js +95 -0
  164. package/dist/src/docker-skFN-Kfo.js +93 -0
  165. package/dist/src/embedding-0UbzkTk9.js +82 -0
  166. package/dist/src/embedding-DTrSDt7k.cjs +86 -0
  167. package/dist/src/embedding-j2ORNl5H.js +81 -0
  168. package/dist/src/envoy-BvS8XTQO.js +60 -0
  169. package/dist/src/envoy-Cn6Hzw0e.js +60 -0
  170. package/dist/src/envoy-DC3KWcUY.cjs +60 -0
  171. package/dist/src/envoy-DetHjo5B.js +61 -0
  172. package/dist/src/eval-Cer9dPe9.js +1920 -0
  173. package/dist/src/eval-CytYmI2Z.js +2 -0
  174. package/dist/src/evalResult-DzOq5wt9.js +1300 -0
  175. package/dist/src/evaluator-BxCmvGtv.js +10578 -0
  176. package/dist/src/evaluator-Ct7YDELm.js +2 -0
  177. package/dist/src/evaluatorHelpers-B_AwIrsl.js +600 -0
  178. package/dist/src/evaluatorHelpers-D1Tpc7gd.js +601 -0
  179. package/dist/src/evaluatorHelpers-DRR3rLq0.cjs +622 -0
  180. package/dist/src/fetch-B5KxZuKu.js +1559 -0
  181. package/dist/src/fetch-BG_Jl7ty.js +1556 -0
  182. package/dist/src/fetch-BKlgUg08.cjs +1853 -0
  183. package/dist/src/fetch-C9Fsja0R.js +2 -0
  184. package/dist/src/fetch-CM7P8KWA.cjs +14 -0
  185. package/dist/src/fetch-D0FkIB3G.js +9 -0
  186. package/dist/src/fetch-RXHsZF-J.js +1280 -0
  187. package/dist/src/fetch-rSECy8jR.js +10 -0
  188. package/dist/src/functionCallbackUtils-BB9tmf6a.cjs +262 -0
  189. package/dist/src/functionCallbackUtils-BXk2iY01.js +246 -0
  190. package/dist/src/functionCallbackUtils-B_cYp7P5.js +245 -0
  191. package/dist/src/functionCallbackUtils-BfXnPo0o.js +245 -0
  192. package/dist/src/gemini-image-BXLMADDz.js +471 -0
  193. package/dist/src/gemini-image-BYUZyEUx.js +472 -0
  194. package/dist/src/gemini-image-DSt1QubZ.cjs +471 -0
  195. package/dist/src/gemini-image-DdNDMiZ_.js +471 -0
  196. package/dist/src/goat-9b-uU_k6.js +514 -0
  197. package/dist/src/goat-BCJuiDd0.js +515 -0
  198. package/dist/src/goat-CmAHbemm.js +512 -0
  199. package/dist/src/goat-DdOTdyoS.cjs +515 -0
  200. package/dist/src/goblin-Bp5C5lyb.js +22 -0
  201. package/dist/src/goblin-Dmr7GItI.js +23 -0
  202. package/dist/src/goblin-DpM8wxlf.cjs +22 -0
  203. package/dist/src/goblin-cJyH6Pq-.js +22 -0
  204. package/dist/src/google-B6eaPAbE.js +142 -0
  205. package/dist/src/google-D-FStdN6.cjs +142 -0
  206. package/dist/src/google-DAC7BsCW.js +142 -0
  207. package/dist/src/google-Id18H0Va.js +143 -0
  208. package/dist/src/graders-BjNQWkaB.js +2 -0
  209. package/dist/src/graders-CqdIp_vl.js +15470 -0
  210. package/dist/src/hydra-6Ouh74DE.js +610 -0
  211. package/dist/src/hydra-BHjhZnLB.cjs +612 -0
  212. package/dist/src/hydra-BL6k2REV.js +2 -0
  213. package/dist/src/hydra-BWUc0o67.js +613 -0
  214. package/dist/src/hydra-CUkEOLKw.js +612 -0
  215. package/dist/src/image-B6hG_xhb.js +481 -0
  216. package/dist/src/image-BFaq7Krd.cjs +209 -0
  217. package/dist/src/image-Bql5C0N9.cjs +504 -0
  218. package/dist/src/image-BtZfI2pT.js +163 -0
  219. package/dist/src/image-CIM4oN7Z.cjs +163 -0
  220. package/dist/src/image-CbAl7Jpu.js +209 -0
  221. package/dist/src/image-CiYm_yFw.js +209 -0
  222. package/dist/src/image-DCMNvBiV.js +163 -0
  223. package/dist/src/image-DL7pIuUZ.js +210 -0
  224. package/dist/src/image-ey0kxF8o.js +164 -0
  225. package/dist/src/image-smgIk3rE.js +482 -0
  226. package/dist/src/index.cjs +27 -27
  227. package/dist/src/index.d.cts +8 -8
  228. package/dist/src/index.js +27 -27
  229. package/dist/src/indirectWebPwn-B_-UpWY5.js +285 -0
  230. package/dist/src/indirectWebPwn-Cz3SLiEq.js +434 -0
  231. package/dist/src/indirectWebPwn-D2s8zGiM.cjs +463 -0
  232. package/dist/src/indirectWebPwn-DXbj2wGu.cjs +285 -0
  233. package/dist/src/indirectWebPwn-D_4H44E6.js +285 -0
  234. package/dist/src/indirectWebPwn-L044SrpV.js +434 -0
  235. package/dist/src/indirectWebPwn-cnmvdavH.js +435 -0
  236. package/dist/src/indirectWebPwn-zUBzsqTt.js +286 -0
  237. package/dist/src/interactions-Bu3oVQ-j.js +850 -0
  238. package/dist/src/interactions-CND010Lh.cjs +850 -0
  239. package/dist/src/interactions-DAx7tqUz.js +851 -0
  240. package/dist/src/interactions-DPkIumeh.js +850 -0
  241. package/dist/src/iterative-BO4JRnpG.js +545 -0
  242. package/dist/src/iterative-CAK-k9rz.js +548 -0
  243. package/dist/src/iterative-CDgHc0xO.cjs +549 -0
  244. package/dist/src/iterative-CXJlHLl9.js +547 -0
  245. package/dist/src/iterativeImage-BEdGKSmh.cjs +419 -0
  246. package/dist/src/iterativeImage-BfL0QZw5.js +417 -0
  247. package/dist/src/iterativeImage-C9KhnibC.js +417 -0
  248. package/dist/src/iterativeImage-btjkOfWG.js +418 -0
  249. package/dist/src/iterativeMeta-B5Bdw6QA.js +437 -0
  250. package/dist/src/iterativeMeta-C3mI4gpT.js +440 -0
  251. package/dist/src/iterativeMeta-Co2BKyqS.cjs +439 -0
  252. package/dist/src/iterativeMeta-DD8ihRWD.js +439 -0
  253. package/dist/src/iterativeTree-AMi4GV2O.js +878 -0
  254. package/dist/src/iterativeTree-C8FJOEje.cjs +879 -0
  255. package/dist/src/iterativeTree-CvrY1f2Z.js +877 -0
  256. package/dist/src/iterativeTree-bPtESmaD.js +876 -0
  257. package/dist/src/knowledgeBase-Cf5871e3.js +163 -0
  258. package/dist/src/knowledgeBase-D2PQhqLH.js +164 -0
  259. package/dist/src/knowledgeBase-DpoMw1IH.cjs +163 -0
  260. package/dist/src/knowledgeBase-npGFl763.js +163 -0
  261. package/dist/src/litellm-BBB5DQdt.cjs +146 -0
  262. package/dist/src/litellm-Bo43ow7r.js +145 -0
  263. package/dist/src/litellm-CaU8CMLS.js +146 -0
  264. package/dist/src/litellm-wY7Unh8o.js +147 -0
  265. package/dist/src/live-5g2w-M-E.js +891 -0
  266. package/dist/src/live-BfaXsDyD.cjs +891 -0
  267. package/dist/src/live-C1xewnGD.js +2 -0
  268. package/dist/src/live-DaF7nYy5.js +892 -0
  269. package/dist/src/live-lp3urLUw.js +891 -0
  270. package/dist/src/luma-ray-B7zvKGVG.js +309 -0
  271. package/dist/src/luma-ray-DCf5fnrz.cjs +309 -0
  272. package/dist/src/luma-ray-DepBcn6z.js +309 -0
  273. package/dist/src/luma-ray-XQC4M1pt.js +310 -0
  274. package/dist/src/main.js +26 -26
  275. package/dist/src/mantleChat-7xm95vSV.js +154 -0
  276. package/dist/src/mantleChat-CXhAs5RD.js +155 -0
  277. package/dist/src/mantleChat-CcE-zjfj.cjs +154 -0
  278. package/dist/src/mantleChat-Cpefl7Zm.js +154 -0
  279. package/dist/src/mcp-B0V0ikdM.js +84 -0
  280. package/dist/src/mcp-CV2k2gwj.js +85 -0
  281. package/dist/src/memoryPoisoning-BC5FQQWZ.js +111 -0
  282. package/dist/src/memoryPoisoning-BDwrtZKX.js +111 -0
  283. package/dist/src/memoryPoisoning-BFemS_FF.js +112 -0
  284. package/dist/src/memoryPoisoning-DRs2rbVV.cjs +111 -0
  285. package/dist/src/messages-Bc5oZoAJ.js +1128 -0
  286. package/dist/src/messages-BkaH8fRW.js +1127 -0
  287. package/dist/src/messages-CoHlziS5.js +1127 -0
  288. package/dist/src/messages-Cv_m6kYs.cjs +1161 -0
  289. package/dist/src/mischievousUser-BcyFxrqJ.js +51 -0
  290. package/dist/src/mischievousUser-BlhOQSd2.js +52 -0
  291. package/dist/src/mischievousUser-BuQiKE8D.js +51 -0
  292. package/dist/src/mischievousUser-ChIOk6cT.cjs +51 -0
  293. package/dist/src/modelslab-BXIWBTgX.js +171 -0
  294. package/dist/src/modelslab-ChVsUiaJ.js +170 -0
  295. package/dist/src/modelslab-DZ6BFlDv.js +170 -0
  296. package/dist/src/modelslab-DhRr-vyo.cjs +170 -0
  297. package/dist/src/nova-reel-BL8DrN4_.js +272 -0
  298. package/dist/src/nova-reel-BiOMUm5q.cjs +272 -0
  299. package/dist/src/nova-reel-CTsya1hV.js +273 -0
  300. package/dist/src/nova-reel-kgBY4Svd.js +272 -0
  301. package/dist/src/nova-sonic-CaSSA3Jq.cjs +374 -0
  302. package/dist/src/nova-sonic-DLpmoGsR.js +375 -0
  303. package/dist/src/nova-sonic-DwWc4SoN.js +374 -0
  304. package/dist/src/nova-sonic-qnReTaXm.js +374 -0
  305. package/dist/src/novita-B5mAt3Ui.js +114 -0
  306. package/dist/src/novita-D57vCjDD.js +116 -0
  307. package/dist/src/novita-ITRtG8IJ.js +115 -0
  308. package/dist/src/novita-Rh3T13YO.cjs +115 -0
  309. package/dist/src/nscale-8V7iZ_pI.js +210 -0
  310. package/dist/src/nscale-BQnMv4pH.cjs +209 -0
  311. package/dist/src/nscale-BWZXHZVF.js +209 -0
  312. package/dist/src/nscale-BqrHiUqU.js +207 -0
  313. package/dist/src/openaiResponses-BMtGTu8R.js +317 -0
  314. package/dist/src/openaiResponses-CvcI_viE.js +318 -0
  315. package/dist/src/openaiResponses-DYPZEMX1.cjs +318 -0
  316. package/dist/src/openaiResponses-DZTg1-kb.js +319 -0
  317. package/dist/src/openclaw-BeKuig4g.js +1338 -0
  318. package/dist/src/openclaw-COkdQ83y.js +1337 -0
  319. package/dist/src/openclaw-CSoX_HQ5.cjs +1344 -0
  320. package/dist/src/openclaw-DJlhPGCb.js +1336 -0
  321. package/dist/src/opencode-sdk-BEJftEs6.cjs +1018 -0
  322. package/dist/src/opencode-sdk-DMvBB3V7.js +1013 -0
  323. package/dist/src/opencode-sdk-Df7hMjLO.js +1012 -0
  324. package/dist/src/opencode-sdk-bQp5Xf3W.js +1012 -0
  325. package/dist/src/openinterpreter-B3GgVZjK.js +431 -0
  326. package/dist/src/openinterpreter-BiGcU-HN.cjs +435 -0
  327. package/dist/src/openinterpreter-Buj2l3Eh.js +432 -0
  328. package/dist/src/openinterpreter-C3_Cg5b_.js +431 -0
  329. package/dist/src/pricing-0Pampf0q.cjs +999 -0
  330. package/dist/src/pricing-B8VdhEhY.js +976 -0
  331. package/dist/src/pricing-CtLA-rKA.js +976 -0
  332. package/dist/src/promptfoo-4OkHtH9P.cjs +341 -0
  333. package/dist/src/promptfoo-Bhpm7sH6.js +286 -0
  334. package/dist/src/promptfoo-BqV8ogVA.js +285 -0
  335. package/dist/src/promptfoo-S1Q9OHk_.js +286 -0
  336. package/dist/src/providers-B5zs1ZRv.js +24437 -0
  337. package/dist/src/providers-Cd6CJh6m.js +2 -0
  338. package/dist/src/providers-CpJlgHET.js +24039 -0
  339. package/dist/src/providers-CzvLvK6G.cjs +24180 -0
  340. package/dist/src/quiverai-1E_IvLHn.js +325 -0
  341. package/dist/src/quiverai-BXH004Vv.js +325 -0
  342. package/dist/src/quiverai-Ccya2z8Y.cjs +325 -0
  343. package/dist/src/quiverai-Cez57oe-.js +326 -0
  344. package/dist/src/registry-3zX_M9Ik.js +131 -0
  345. package/dist/src/registry-AuCrKTvS.js +132 -0
  346. package/dist/src/registry-CxXWKtQG.js +131 -0
  347. package/dist/src/registry-DG3o66JQ.cjs +131 -0
  348. package/dist/src/remoteGeneration-CAtvamG6.js +370 -0
  349. package/dist/src/remoteGeneration-CF225pDl.cjs +482 -0
  350. package/dist/src/remoteGeneration-DtnqocnL.js +370 -0
  351. package/dist/src/remoteGeneration-g3KvW-sP.js +371 -0
  352. package/dist/src/responses-BMbaUXQI.js +1098 -0
  353. package/dist/src/responses-B_TOSof-.js +1099 -0
  354. package/dist/src/responses-v-yANwTA.cjs +1109 -0
  355. package/dist/src/runtimeTransform-BBZv-oUZ.js +156 -0
  356. package/dist/src/runtimeTransform-DT2v5ovW.js +156 -0
  357. package/dist/src/runtimeTransform-GXXEIXdS.cjs +161 -0
  358. package/dist/src/runtimeTransform-JTwBQc-P.js +157 -0
  359. package/dist/src/sagemaker-B8D0L4rj.cjs +716 -0
  360. package/dist/src/sagemaker-CR2_AGdB.js +713 -0
  361. package/dist/src/sagemaker-Cd9qSQUV.js +714 -0
  362. package/dist/src/sagemaker-mKlltN4p.js +713 -0
  363. package/dist/src/scanner-PG_8lh8r.js +1971 -0
  364. package/dist/src/server/index.js +55 -55
  365. package/dist/src/server-Bmh7sd9F.js +155 -0
  366. package/dist/src/server-C7b8z6aC.js +63 -0
  367. package/dist/src/server-CAcovgtL.js +2 -0
  368. package/dist/src/server-CuuMfKlh.cjs +74 -0
  369. package/dist/src/server-DMPCj9jy.js +189 -0
  370. package/dist/src/session-BksXvRH_.cjs +69 -0
  371. package/dist/src/session-DOxUjqGQ.js +63 -0
  372. package/dist/src/session-Dujsc-b9.js +62 -0
  373. package/dist/src/session-VjtIxREd.js +62 -0
  374. package/dist/src/shared-Bkyz_7e5.cjs +2185 -0
  375. package/dist/src/shared-DDJg8ycC.js +1929 -0
  376. package/dist/src/shared-Dh3yfRBd.js +1927 -0
  377. package/dist/src/shared-tfPT8Tna.js +1928 -0
  378. package/dist/src/simulatedUser-6JdkyL3k.cjs +252 -0
  379. package/dist/src/simulatedUser-CFr2mr3M.js +248 -0
  380. package/dist/src/simulatedUser-DjwwUqx-.js +247 -0
  381. package/dist/src/slack-C_gIYiUs.js +144 -0
  382. package/dist/src/slack-DhNbz9CM.cjs +144 -0
  383. package/dist/src/slack-Dm2iI1zu.js +145 -0
  384. package/dist/src/strategies-BIY-bNul.js +2248 -0
  385. package/dist/src/strategies-C1KQQj9G.cjs +2420 -0
  386. package/dist/src/strategies-DM_3mReG.js +2385 -0
  387. package/dist/src/telemetry-BhMTibZO.js +2 -0
  388. package/dist/src/telemetry-C04d25BM.cjs +216 -0
  389. package/dist/src/telemetry-CIqy4fSC.js +201 -0
  390. package/dist/src/telemetry-CXozp_6C.js +205 -0
  391. package/dist/src/telemetry-g7PkBxmY.js +205 -0
  392. package/dist/src/togetherai-BvCim68-.js +50 -0
  393. package/dist/src/togetherai-CWyDCA9m.cjs +49 -0
  394. package/dist/src/togetherai-CeSE31vK.js +49 -0
  395. package/dist/src/togetherai-_2W0URf8.js +48 -0
  396. package/dist/src/traceContext-Brw3Oe41.js +1016 -0
  397. package/dist/src/traceContext-DpAYv27G.js +1015 -0
  398. package/dist/src/traceContext-KSqhzZI2.cjs +1032 -0
  399. package/dist/src/transcription-BySopazW.js +175 -0
  400. package/dist/src/transcription-DO4UPkRI.cjs +178 -0
  401. package/dist/src/transcription-RJGBa-pC.js +176 -0
  402. package/dist/src/transcription-fZenF3G5.js +175 -0
  403. package/dist/src/transform-BzhRc5z2.js +125 -0
  404. package/dist/src/transform-CPQu05u6.cjs +154 -0
  405. package/dist/src/transform-DAED8imp.js +126 -0
  406. package/dist/src/transform-DIOIQDmM.js +125 -0
  407. package/dist/src/typesafe-ByE0Kxfg.js +253 -0
  408. package/dist/src/typesafe-CFqGFY34.js +253 -0
  409. package/dist/src/typesafe-DCWIw-CP.cjs +253 -0
  410. package/dist/src/typesafe-DyHFV5Qk.js +254 -0
  411. package/dist/src/util-BHkj9joz.js +2049 -0
  412. package/dist/src/util-CICwIpmu.cjs +934 -0
  413. package/dist/src/util-CePiY2xZ.js +286 -0
  414. package/dist/src/util-CgT3uf4p.js +743 -0
  415. package/dist/src/util-Cj9drvOY.js +1770 -0
  416. package/dist/src/util-ClJRjlQA.cjs +357 -0
  417. package/dist/src/util-Cxf8VF2M.js +395 -0
  418. package/dist/src/util-D7RdV7rS.js +395 -0
  419. package/dist/src/util-DMNFhk47.js +351 -0
  420. package/dist/src/util-DNzh3M0z.js +396 -0
  421. package/dist/src/util-Df7rfMGb.cjs +2305 -0
  422. package/dist/src/util-Kf0KnG_6.js +2051 -0
  423. package/dist/src/util-LEbeiYw_.js +743 -0
  424. package/dist/src/util-WH8CgVs4.js +352 -0
  425. package/dist/src/util-cx6Xw8Lw.cjs +478 -0
  426. package/dist/src/util-qzBqirBH.js +2050 -0
  427. package/dist/src/vertex-CBAMfRz3.js +854 -0
  428. package/dist/src/vertex-CMP2IpN9.js +2 -0
  429. package/dist/src/vertex-CZ5YOotT.js +848 -0
  430. package/dist/src/vertex-DNsh1F1M.cjs +871 -0
  431. package/dist/src/vertexLive-BTXYj3-F.js +55 -0
  432. package/dist/src/vertexLive-Ba_LAqEF.cjs +55 -0
  433. package/dist/src/vertexLive-DM4sFaaj.js +56 -0
  434. package/dist/src/vertexLive-JqZOw7HC.js +55 -0
  435. package/dist/src/video-BY7Q2Gii.cjs +706 -0
  436. package/dist/src/video-CYElP-CK.js +703 -0
  437. package/dist/src/video-C_AdEDH0.js +702 -0
  438. package/dist/src/video-DGvjQ_4j.js +702 -0
  439. package/package.json +1 -1
  440. package/dist/src/accounts-Dpb43yde.cjs +0 -276
  441. package/dist/src/accounts-GKrO1olH.js +0 -229
  442. package/dist/src/accounts-e4FGOsji.js +0 -227
  443. package/dist/src/accounts-sUiEJfkB.js +0 -222
  444. package/dist/src/agentWorkspace-B8A_wuMR.cjs +0 -619
  445. package/dist/src/agentWorkspace-DSPIscXR.js +0 -593
  446. package/dist/src/agentWorkspace-DxUqd-XK.js +0 -592
  447. package/dist/src/agentWorkspace-n0uOJXhD.js +0 -592
  448. package/dist/src/agentic-utils-9bCj4twQ.js +0 -197
  449. package/dist/src/agentic-utils-CyCLuLoj.js +0 -197
  450. package/dist/src/agentic-utils-D23qtOlx.cjs +0 -237
  451. package/dist/src/agentic-utils-DuBMMNCw.js +0 -198
  452. package/dist/src/agents-6hDRNoYD.js +0 -777
  453. package/dist/src/agents-B8w2o7Sc.cjs +0 -777
  454. package/dist/src/agents-Ck0NXl7v.js +0 -777
  455. package/dist/src/agents-CwT3B1qB.js +0 -778
  456. package/dist/src/agents-DOLjfOEq.js +0 -266
  457. package/dist/src/agents-OcF9hq--.js +0 -267
  458. package/dist/src/agents-api-CnZZt8bn.cjs +0 -710
  459. package/dist/src/agents-api-D04u3bmL.js +0 -711
  460. package/dist/src/agents-api-DWw0_Vio.js +0 -710
  461. package/dist/src/agents-api-IWHEwp8i.js +0 -710
  462. package/dist/src/agents-mHt2Mh9O.cjs +0 -266
  463. package/dist/src/agents-sICccZCA.js +0 -266
  464. package/dist/src/ai.studio-Ci4rypDT.js +0 -2
  465. package/dist/src/ai.studio-KkQ6KaHa.js +0 -369
  466. package/dist/src/ai.studio-gSXK2cGI.js +0 -374
  467. package/dist/src/ai.studio-nQF_B4DH.cjs +0 -391
  468. package/dist/src/aimlapi-BeSk5BDV.js +0 -30
  469. package/dist/src/aimlapi-CzNUhdKu.cjs +0 -29
  470. package/dist/src/aimlapi-DCkazDPI.js +0 -29
  471. package/dist/src/aimlapi-WeH5B6K1.js +0 -28
  472. package/dist/src/anthropicMessages-AcNWTpYO.js +0 -115
  473. package/dist/src/anthropicMessages-BUtvzbpL.js +0 -114
  474. package/dist/src/anthropicMessages-DTWhZDCd.js +0 -114
  475. package/dist/src/anthropicMessages-lGVnSgyx.cjs +0 -114
  476. package/dist/src/app/assets/index-CyEI5aDN.js +0 -392
  477. package/dist/src/audio-BE_Duiu1.js +0 -104
  478. package/dist/src/audio-CiUd00k2.cjs +0 -104
  479. package/dist/src/audio-Dop6omna.js +0 -105
  480. package/dist/src/audio-EZNTInr_.js +0 -104
  481. package/dist/src/authoritativeMarkupInjection-BUqH6hNk.js +0 -78
  482. package/dist/src/authoritativeMarkupInjection-BmbJdJO0.cjs +0 -78
  483. package/dist/src/authoritativeMarkupInjection-Cpz12Y3w.js +0 -78
  484. package/dist/src/authoritativeMarkupInjection-W4XfcH91.js +0 -79
  485. package/dist/src/aws-B2Jqbnet.js +0 -2433
  486. package/dist/src/aws-DHtuUIzQ.js +0 -1149
  487. package/dist/src/aws-DLqXP6wY.js +0 -2433
  488. package/dist/src/aws-DfduhmwL.cjs +0 -2454
  489. package/dist/src/base-B9L2Xvpc.js +0 -255
  490. package/dist/src/base-BTZnIsuH.cjs +0 -305
  491. package/dist/src/base-BhaWNQPJ.js +0 -462
  492. package/dist/src/base-Br-G_Xou.js +0 -256
  493. package/dist/src/base-Bzo8hiUS.cjs +0 -467
  494. package/dist/src/base-C82fd2jq.js +0 -463
  495. package/dist/src/base-CRdQwC1W.js +0 -462
  496. package/dist/src/base-CjGwZNOQ.js +0 -255
  497. package/dist/src/bedrock-BdMru_ro.js +0 -1300
  498. package/dist/src/bedrock-CBUmfLX1.cjs +0 -2
  499. package/dist/src/bedrock-DBDxBaF9.js +0 -2
  500. package/dist/src/bedrock-DDrECM21.js +0 -1
  501. package/dist/src/bedrock-DVwkgvRS.js +0 -1
  502. package/dist/src/bestOfN-AKF5beq4.js +0 -159
  503. package/dist/src/bestOfN-C1UIVGJV.js +0 -160
  504. package/dist/src/bestOfN-DlkETbXy.cjs +0 -161
  505. package/dist/src/bestOfN-XIfEgU-g.js +0 -159
  506. package/dist/src/cache-BZaVoKaA.js +0 -2
  507. package/dist/src/cache-CEYhFUsH.js +0 -741
  508. package/dist/src/cache-Cbw1zH6q.js +0 -782
  509. package/dist/src/cache-CdaZNb75.js +0 -754
  510. package/dist/src/cache-DpuIzPxh.cjs +0 -856
  511. package/dist/src/cerebras-Bpn6FPkJ.js +0 -97
  512. package/dist/src/cerebras-CqJ0BRCJ.cjs +0 -97
  513. package/dist/src/cerebras-D4ILa_TY.js +0 -97
  514. package/dist/src/cerebras-DR8uc7ee.js +0 -98
  515. package/dist/src/chat-B7PZfaYp.cjs +0 -987
  516. package/dist/src/chat-BVuSjdEb.js +0 -227
  517. package/dist/src/chat-BsaZRjXN.js +0 -76
  518. package/dist/src/chat-C5liqe3Y.js +0 -226
  519. package/dist/src/chat-C9hyHf5B.js +0 -124
  520. package/dist/src/chat-CFLalAck.js +0 -226
  521. package/dist/src/chat-CN8JGrHu.js +0 -76
  522. package/dist/src/chat-CaHBBpCb.js +0 -123
  523. package/dist/src/chat-CcbLSghx.js +0 -123
  524. package/dist/src/chat-CoSN6sr2.js +0 -934
  525. package/dist/src/chat-CsJRFX8a.cjs +0 -226
  526. package/dist/src/chat-DFoZLvO_.js +0 -934
  527. package/dist/src/chat-DiLQvL7r.js +0 -77
  528. package/dist/src/chat-F6qVSDk3.cjs +0 -123
  529. package/dist/src/chat-Oq4FaJgI.cjs +0 -76
  530. package/dist/src/chat-knMfQUKz.js +0 -935
  531. package/dist/src/claude-agent-sdk-CJkOLpnI.js +0 -999
  532. package/dist/src/claude-agent-sdk-Ckn76PRD.js +0 -999
  533. package/dist/src/claude-agent-sdk-DX0gTr11.cjs +0 -1005
  534. package/dist/src/claude-agent-sdk-LMeikxoR.js +0 -1000
  535. package/dist/src/client-BFf1r6Z8.js +0 -352
  536. package/dist/src/client-CdXyDdDi.js +0 -351
  537. package/dist/src/client-DV8XMu7i.js +0 -351
  538. package/dist/src/client-iEXtOBKW.cjs +0 -357
  539. package/dist/src/cloud-B02qcpjf.js +0 -2
  540. package/dist/src/cloud-BlHP-g1v.cjs +0 -666
  541. package/dist/src/cloud-C9BI4isF.js +0 -287
  542. package/dist/src/cloud-CTTLNdvj.js +0 -657
  543. package/dist/src/cloud-D5X5yQ_d.js +0 -599
  544. package/dist/src/cloud-QxPkpsHA.js +0 -599
  545. package/dist/src/cloudflare-ai-DRTRT1fc.js +0 -132
  546. package/dist/src/cloudflare-ai-DgaXapAV.cjs +0 -133
  547. package/dist/src/cloudflare-ai-DkuJXijS.js +0 -134
  548. package/dist/src/cloudflare-ai-wy9QCHku.js +0 -133
  549. package/dist/src/cloudflare-gateway-9cAN8g29.cjs +0 -276
  550. package/dist/src/cloudflare-gateway-BVFMD292.js +0 -277
  551. package/dist/src/cloudflare-gateway-BuUI4p6I.js +0 -276
  552. package/dist/src/cloudflare-gateway-TlYHizbW.js +0 -276
  553. package/dist/src/codex-app-server-BPz_feug.cjs +0 -2162
  554. package/dist/src/codex-app-server-C9noXM9C.js +0 -2155
  555. package/dist/src/codex-app-server-CEmD-Y5U.js +0 -2
  556. package/dist/src/codex-app-server-DZolc18r.js +0 -2156
  557. package/dist/src/codex-app-server-Dd0A37nO.js +0 -2155
  558. package/dist/src/codex-sdk-BbxjBvBk.cjs +0 -1588
  559. package/dist/src/codex-sdk-BpXeIs-_.js +0 -1557
  560. package/dist/src/codex-sdk-BtQp5X0f.js +0 -1552
  561. package/dist/src/codex-sdk-CH0v9Bk1.js +0 -2
  562. package/dist/src/codex-sdk-CgrN7JB8.js +0 -1557
  563. package/dist/src/codex-security-B5fENNUr.js +0 -406
  564. package/dist/src/codex-security-C6uuJx-y.cjs +0 -411
  565. package/dist/src/codex-security-CifWtZR_.js +0 -407
  566. package/dist/src/codex-security-Kg2bOEKy.js +0 -406
  567. package/dist/src/cometapi-BFpIDLIx.js +0 -55
  568. package/dist/src/cometapi-C6O2PIrN.js +0 -56
  569. package/dist/src/cometapi-D5Yupc6F.js +0 -53
  570. package/dist/src/cometapi-DzgIwJzJ.cjs +0 -55
  571. package/dist/src/compatible-0jhmVfOp.js +0 -25
  572. package/dist/src/compatible-DdtwWdJi.cjs +0 -24
  573. package/dist/src/compatible-Di4nR3sU.js +0 -24
  574. package/dist/src/compatible-iJKLWdnf.js +0 -24
  575. package/dist/src/completion-B0_hVUDG.js +0 -119
  576. package/dist/src/completion-BdI6v0-Q.cjs +0 -123
  577. package/dist/src/completion-CWcJscwv.js +0 -118
  578. package/dist/src/conversationScoring-99EOPJRa.js +0 -373
  579. package/dist/src/conversationScoring-BIq4J0Cq.js +0 -374
  580. package/dist/src/conversationScoring-DARyeATr.cjs +0 -398
  581. package/dist/src/conversationScoring-DS48t4Hb.js +0 -373
  582. package/dist/src/crescendo-CebvXIu4.js +0 -730
  583. package/dist/src/crescendo-CxrLS0oo.js +0 -732
  584. package/dist/src/crescendo-DZQXBSkj.js +0 -733
  585. package/dist/src/crescendo-wjEx68uD.cjs +0 -734
  586. package/dist/src/custom-BiQ-aUNw.cjs +0 -620
  587. package/dist/src/custom-ByyB5Z93.js +0 -619
  588. package/dist/src/custom-C5jOevNb.js +0 -617
  589. package/dist/src/custom-CCrsCz8o.js +0 -618
  590. package/dist/src/dataUrl-C9J7wz9H.js +0 -3133
  591. package/dist/src/dataUrl-CGsBT7UZ.cjs +0 -3187
  592. package/dist/src/dataUrl-CzKvvWNO.js +0 -2868
  593. package/dist/src/decisions-BTusXCUx.cjs +0 -514
  594. package/dist/src/decisions-BYtL9edD.js +0 -515
  595. package/dist/src/decisions-jYix_gCF.js +0 -515
  596. package/dist/src/decisions-nxxfHRAN.js +0 -516
  597. package/dist/src/docker-DDIv4zkg.js +0 -93
  598. package/dist/src/docker-DVLp_5OG.js +0 -94
  599. package/dist/src/docker-INm9w0SY.cjs +0 -94
  600. package/dist/src/docker-sGuoCul_.js +0 -95
  601. package/dist/src/embedding-CAhqLLrR.js +0 -82
  602. package/dist/src/embedding-D94GAsti.cjs +0 -86
  603. package/dist/src/embedding-zb4MAzQy.js +0 -81
  604. package/dist/src/envoy-BMPszwEa.cjs +0 -60
  605. package/dist/src/envoy-Bp-s39_8.js +0 -60
  606. package/dist/src/envoy-BswDt-Ou.js +0 -61
  607. package/dist/src/envoy-rVbYcV80.js +0 -60
  608. package/dist/src/eval-B1-XfrC7.js +0 -2
  609. package/dist/src/eval-pC4qCvLw.js +0 -1920
  610. package/dist/src/evalResult-CzjCb5bd.js +0 -1300
  611. package/dist/src/evaluator-CNq2K7J_.js +0 -10578
  612. package/dist/src/evaluator-LtfxdxEu.js +0 -2
  613. package/dist/src/evaluatorHelpers-C5J0NYpQ.js +0 -601
  614. package/dist/src/evaluatorHelpers-DcdCglCs.cjs +0 -622
  615. package/dist/src/evaluatorHelpers-Rvb88W6B.js +0 -600
  616. package/dist/src/fetch-5HtnNhHg.js +0 -1556
  617. package/dist/src/fetch-BCwjoIFd.js +0 -1559
  618. package/dist/src/fetch-BhfUnKen.js +0 -1280
  619. package/dist/src/fetch-C08w4vVl.js +0 -9
  620. package/dist/src/fetch-DBxy8Tlb.cjs +0 -14
  621. package/dist/src/fetch-DYte6oQX.cjs +0 -1853
  622. package/dist/src/fetch-ElpfcAVG.js +0 -10
  623. package/dist/src/fetch-lM1OIaSt.js +0 -2
  624. package/dist/src/functionCallbackUtils-BCAdWfHO.js +0 -246
  625. package/dist/src/functionCallbackUtils-BYq9qOhG.js +0 -245
  626. package/dist/src/functionCallbackUtils-ByWkmVud.cjs +0 -262
  627. package/dist/src/functionCallbackUtils-D_C_JaFd.js +0 -245
  628. package/dist/src/gemini-image-CAlwaJhZ.js +0 -471
  629. package/dist/src/gemini-image-DJoVoOnZ.cjs +0 -471
  630. package/dist/src/gemini-image-Waio-9Xx.js +0 -472
  631. package/dist/src/gemini-image-vbY6Ftbf.js +0 -471
  632. package/dist/src/goat-BWbtyY9c.js +0 -512
  633. package/dist/src/goat-CXzzeCOQ.cjs +0 -515
  634. package/dist/src/goat-CfgvzSgZ.js +0 -514
  635. package/dist/src/goat-DLeoIHBp.js +0 -515
  636. package/dist/src/goblin-CmfCfwqk.cjs +0 -22
  637. package/dist/src/goblin-CtcaORRH.js +0 -22
  638. package/dist/src/goblin-DF6DDhM-.js +0 -22
  639. package/dist/src/goblin-Nai0xxBV.js +0 -23
  640. package/dist/src/google-ClpkLtKL.cjs +0 -142
  641. package/dist/src/google-CrFgKu9k.js +0 -143
  642. package/dist/src/google-Dj_EIBqS.js +0 -142
  643. package/dist/src/google-e4-vARv6.js +0 -142
  644. package/dist/src/graders-BN1IIa71.js +0 -15470
  645. package/dist/src/graders-C5sCfSP5.js +0 -2
  646. package/dist/src/hydra-B7RfXVBK.js +0 -2
  647. package/dist/src/hydra-C1cFN-Jg.js +0 -613
  648. package/dist/src/hydra-CK6Uc1ia.js +0 -612
  649. package/dist/src/hydra-Dg65rAP_.js +0 -610
  650. package/dist/src/hydra-Fqx8l_Xu.cjs +0 -612
  651. package/dist/src/image-BdlUDAtp.js +0 -163
  652. package/dist/src/image-C-KwEhwt.cjs +0 -163
  653. package/dist/src/image-C76fp6NK.cjs +0 -209
  654. package/dist/src/image-D75ehv3D.js +0 -482
  655. package/dist/src/image-DKtc5v5W.js +0 -209
  656. package/dist/src/image-DT_xOkJY.js +0 -163
  657. package/dist/src/image-DVpdllEE.js +0 -209
  658. package/dist/src/image-DXZ8AzMf.js +0 -481
  659. package/dist/src/image-DZl_1mvy.js +0 -164
  660. package/dist/src/image-DcTD7Ak0.cjs +0 -504
  661. package/dist/src/image-ndxEvBKB.js +0 -210
  662. package/dist/src/indirectWebPwn-70WA5x_q.js +0 -435
  663. package/dist/src/indirectWebPwn-BRVyd3qV.cjs +0 -463
  664. package/dist/src/indirectWebPwn-BsJVsu0q.js +0 -285
  665. package/dist/src/indirectWebPwn-Cw6yJu0i.js +0 -285
  666. package/dist/src/indirectWebPwn-D-PhJzo4.js +0 -286
  667. package/dist/src/indirectWebPwn-DRPHt2I8.js +0 -434
  668. package/dist/src/indirectWebPwn-DXtfFhd9.cjs +0 -285
  669. package/dist/src/indirectWebPwn-DvpNouzc.js +0 -434
  670. package/dist/src/interactions-5ixfW7Cl.js +0 -850
  671. package/dist/src/interactions-BOUzfmg1.cjs +0 -850
  672. package/dist/src/interactions-CSSXcGNc.js +0 -851
  673. package/dist/src/interactions-WB_sgkN0.js +0 -850
  674. package/dist/src/iterative-BShRNqjC.cjs +0 -549
  675. package/dist/src/iterative-BcW_ELtB.js +0 -548
  676. package/dist/src/iterative-BpHbHz8B.js +0 -547
  677. package/dist/src/iterative-YcchP12d.js +0 -545
  678. package/dist/src/iterativeImage-BMFE5Hl7.cjs +0 -419
  679. package/dist/src/iterativeImage-CkSaYLMY.js +0 -417
  680. package/dist/src/iterativeImage-DAEUlQX_.js +0 -418
  681. package/dist/src/iterativeImage-DeUSkEnj.js +0 -417
  682. package/dist/src/iterativeMeta-DbdaKdEO.cjs +0 -439
  683. package/dist/src/iterativeMeta-DcF9JWEK.js +0 -437
  684. package/dist/src/iterativeMeta-DkfPqWIC.js +0 -439
  685. package/dist/src/iterativeMeta-DkrpnVSs.js +0 -440
  686. package/dist/src/iterativeTree-CEMY1FhE.cjs +0 -879
  687. package/dist/src/iterativeTree-Cv5W4tX9.js +0 -877
  688. package/dist/src/iterativeTree-DGvomd3M.js +0 -876
  689. package/dist/src/iterativeTree-KbtC2Mkz.js +0 -878
  690. package/dist/src/knowledgeBase-AYRXn4wO.js +0 -163
  691. package/dist/src/knowledgeBase-BNqQfx01.js +0 -163
  692. package/dist/src/knowledgeBase-C0IaCCVs.js +0 -164
  693. package/dist/src/knowledgeBase-C2uj6wK4.cjs +0 -163
  694. package/dist/src/litellm-CN1ScAwZ.js +0 -147
  695. package/dist/src/litellm-CTjwiKSa.js +0 -146
  696. package/dist/src/litellm-Cd4Nj5ue.js +0 -145
  697. package/dist/src/litellm-DMqLpEBg.cjs +0 -146
  698. package/dist/src/live-Bt50-InO.cjs +0 -891
  699. package/dist/src/live-Bu2ujadG.js +0 -2
  700. package/dist/src/live-C3M52i3p.js +0 -891
  701. package/dist/src/live-CRfHMO3B.js +0 -892
  702. package/dist/src/live-iCIpO14m.js +0 -891
  703. package/dist/src/luma-ray-B8eHC4c8.cjs +0 -309
  704. package/dist/src/luma-ray-BIvkPw0s.js +0 -309
  705. package/dist/src/luma-ray-ChsiBxMA.js +0 -309
  706. package/dist/src/luma-ray-DAvKrInz.js +0 -310
  707. package/dist/src/mantleChat-5YeEXAZI.js +0 -154
  708. package/dist/src/mantleChat-D--mW3hl.js +0 -154
  709. package/dist/src/mantleChat-DHP3siNg.cjs +0 -154
  710. package/dist/src/mantleChat-wBfAX46o.js +0 -155
  711. package/dist/src/mcp-49jlEcTQ.js +0 -85
  712. package/dist/src/mcp-__PIz81I.js +0 -84
  713. package/dist/src/memoryPoisoning-Chxge74M.js +0 -111
  714. package/dist/src/memoryPoisoning-QH6NCUVE.js +0 -112
  715. package/dist/src/memoryPoisoning-tCxZt8Nz.js +0 -111
  716. package/dist/src/memoryPoisoning-ymrRItRR.cjs +0 -111
  717. package/dist/src/messages-BE_eZ7NA.js +0 -1127
  718. package/dist/src/messages-Bo638ShI.js +0 -1127
  719. package/dist/src/messages-BzR0-NQ1.js +0 -1128
  720. package/dist/src/messages-Cbg5Pfd0.cjs +0 -1161
  721. package/dist/src/mischievousUser-BtED2Z5Z.cjs +0 -51
  722. package/dist/src/mischievousUser-KqSOjrDJ.js +0 -51
  723. package/dist/src/mischievousUser-YMD41YNZ.js +0 -51
  724. package/dist/src/mischievousUser-zBxlNdCu.js +0 -52
  725. package/dist/src/modelslab-B8gZxtfE.js +0 -171
  726. package/dist/src/modelslab-C7bmVpTB.js +0 -170
  727. package/dist/src/modelslab-CCeQCTZg.js +0 -170
  728. package/dist/src/modelslab-CvBJGv7y.cjs +0 -170
  729. package/dist/src/nova-reel-BOEWsEKA.cjs +0 -272
  730. package/dist/src/nova-reel-BtyBXq5M.js +0 -273
  731. package/dist/src/nova-reel-C1eF3-EE.js +0 -272
  732. package/dist/src/nova-reel-YhgrxEKT.js +0 -272
  733. package/dist/src/nova-sonic-BaERP20w.js +0 -374
  734. package/dist/src/nova-sonic-CxgM3O-P.cjs +0 -374
  735. package/dist/src/nova-sonic-DJS22fC3.js +0 -375
  736. package/dist/src/nova-sonic-DwvwHyRX.js +0 -374
  737. package/dist/src/novita-D1l2tG0O.js +0 -116
  738. package/dist/src/novita-D84VM3v0.cjs +0 -115
  739. package/dist/src/novita-DGInvwfR.js +0 -115
  740. package/dist/src/novita-vXHkXhTg.js +0 -114
  741. package/dist/src/nscale-CU0Ldr00.js +0 -209
  742. package/dist/src/nscale-ClfKlQeM.cjs +0 -209
  743. package/dist/src/nscale-DxaVnF0x.js +0 -210
  744. package/dist/src/nscale-_poVxIrO.js +0 -207
  745. package/dist/src/openaiResponses-CJGsneNj.js +0 -317
  746. package/dist/src/openaiResponses-CKSl5Sdg.js +0 -319
  747. package/dist/src/openaiResponses-DC8rzFUc.js +0 -318
  748. package/dist/src/openaiResponses-rMHIA3dV.cjs +0 -318
  749. package/dist/src/openclaw-CCbvsNFW.cjs +0 -1344
  750. package/dist/src/openclaw-CZw1lCDZ.js +0 -1336
  751. package/dist/src/openclaw-ChFLgC-a.js +0 -1338
  752. package/dist/src/openclaw-DrPMoRrH.js +0 -1337
  753. package/dist/src/opencode-sdk-2EfIDhFp.cjs +0 -1018
  754. package/dist/src/opencode-sdk-CHw3F845.js +0 -1013
  755. package/dist/src/opencode-sdk-D0EGGxvy.js +0 -1012
  756. package/dist/src/opencode-sdk-jSS7NI2Q.js +0 -1012
  757. package/dist/src/openinterpreter-CY622xHC.js +0 -431
  758. package/dist/src/openinterpreter-DATyhuhP.js +0 -432
  759. package/dist/src/openinterpreter-DDUMyIf1.js +0 -431
  760. package/dist/src/openinterpreter-s5Tz6Lid.cjs +0 -435
  761. package/dist/src/pricing-C498twd2.js +0 -976
  762. package/dist/src/pricing-DBd_bMIh.cjs +0 -999
  763. package/dist/src/pricing-ISrMCskv.js +0 -976
  764. package/dist/src/promptfoo-6p0WG2ih.js +0 -286
  765. package/dist/src/promptfoo-BQRfgNs_.js +0 -285
  766. package/dist/src/promptfoo-Bqo88z20.cjs +0 -341
  767. package/dist/src/promptfoo-Cq5AVI3I.js +0 -286
  768. package/dist/src/providers-ATbeMX5E.cjs +0 -24180
  769. package/dist/src/providers-B7F1FiNI.js +0 -2
  770. package/dist/src/providers-DazIw8mI.js +0 -24039
  771. package/dist/src/providers-QvGlNAD0.js +0 -24437
  772. package/dist/src/quiverai-BPlNcLkV.cjs +0 -325
  773. package/dist/src/quiverai-By99-YmJ.js +0 -325
  774. package/dist/src/quiverai-CmmByDqo.js +0 -325
  775. package/dist/src/quiverai-HZkoJJqw.js +0 -326
  776. package/dist/src/registry-BLTnTfjT.cjs +0 -131
  777. package/dist/src/registry-BMC-COHT.js +0 -132
  778. package/dist/src/registry-C8UZtmBp.js +0 -131
  779. package/dist/src/registry-CfwEUYXG.js +0 -131
  780. package/dist/src/remoteGeneration-Bgg6kC5V.js +0 -370
  781. package/dist/src/remoteGeneration-CKJFE960.cjs +0 -482
  782. package/dist/src/remoteGeneration-DaxwJDKv.js +0 -370
  783. package/dist/src/remoteGeneration-vHMGVKr1.js +0 -371
  784. package/dist/src/responses-BvnyIHrq.js +0 -1099
  785. package/dist/src/responses-CERAgvf-.js +0 -1098
  786. package/dist/src/responses-CwgjeuOg.cjs +0 -1109
  787. package/dist/src/runtimeTransform-3RF9Avyg.cjs +0 -161
  788. package/dist/src/runtimeTransform-C51Z5j4H.js +0 -156
  789. package/dist/src/runtimeTransform-CKE_Iyv8.js +0 -157
  790. package/dist/src/runtimeTransform-Cs11xJpj.js +0 -156
  791. package/dist/src/sagemaker-BJ4dOCxE.js +0 -713
  792. package/dist/src/sagemaker-Bt3JUAWq.js +0 -714
  793. package/dist/src/sagemaker-QVKyLgLF.cjs +0 -716
  794. package/dist/src/sagemaker-l3IB8iTs.js +0 -713
  795. package/dist/src/scanner-DGjIiTZ1.js +0 -1971
  796. package/dist/src/server-BNaLZH6u.js +0 -63
  797. package/dist/src/server-CBMuQul3.js +0 -189
  798. package/dist/src/server-CMKKIzKv.cjs +0 -74
  799. package/dist/src/server-CN2IS9Cs.js +0 -155
  800. package/dist/src/server-ua4cqbjC.js +0 -2
  801. package/dist/src/session-CQIjq_HZ.cjs +0 -69
  802. package/dist/src/session-FTlg8sEu.js +0 -62
  803. package/dist/src/session-GBQXtPWp.js +0 -63
  804. package/dist/src/session-_0-rTdwY.js +0 -62
  805. package/dist/src/shared-BtuO-OAM.js +0 -1927
  806. package/dist/src/shared-Ci78wTZX.js +0 -1928
  807. package/dist/src/shared-Dd3rimdM.js +0 -1929
  808. package/dist/src/shared-KAjFxRre.cjs +0 -2185
  809. package/dist/src/simulatedUser--OjW6xCx.js +0 -247
  810. package/dist/src/simulatedUser-D0-slRye.cjs +0 -252
  811. package/dist/src/simulatedUser-D1Kh_cwA.js +0 -248
  812. package/dist/src/slack-BX0FUevO.js +0 -144
  813. package/dist/src/slack-CcwXFiJE.cjs +0 -144
  814. package/dist/src/slack-CnfqKfXp.js +0 -145
  815. package/dist/src/strategies-2ntcK4tN.js +0 -2248
  816. package/dist/src/strategies-DZIW7Zcs.js +0 -2385
  817. package/dist/src/strategies-YRDF2j-N.cjs +0 -2420
  818. package/dist/src/telemetry-CL8CVA4p.js +0 -205
  819. package/dist/src/telemetry-Cix90qqz.js +0 -201
  820. package/dist/src/telemetry-CkmlqTjV.js +0 -205
  821. package/dist/src/telemetry-DQH7l5bb.js +0 -2
  822. package/dist/src/telemetry-DUCXc1-r.cjs +0 -216
  823. package/dist/src/togetherai-3yUt5Ck7.js +0 -49
  824. package/dist/src/togetherai-BJUByLwt.cjs +0 -49
  825. package/dist/src/togetherai-Bh6KZkmd.js +0 -50
  826. package/dist/src/togetherai-DDl9yk3b.js +0 -48
  827. package/dist/src/traceContext-BiJVppjT.cjs +0 -1032
  828. package/dist/src/traceContext-CKKluULP.js +0 -1016
  829. package/dist/src/traceContext-D3Sk8fO-.js +0 -1015
  830. package/dist/src/transcription-BoVQKIVz.js +0 -175
  831. package/dist/src/transcription-Bs5u8780.js +0 -175
  832. package/dist/src/transcription-Dl654d1p.cjs +0 -178
  833. package/dist/src/transcription-VEvhM1Fu.js +0 -176
  834. package/dist/src/transform-BAbkGpvl.js +0 -125
  835. package/dist/src/transform-C_j4hUH8.js +0 -126
  836. package/dist/src/transform-Da86hs4M.cjs +0 -154
  837. package/dist/src/transform-_i1raQNo.js +0 -125
  838. package/dist/src/typesafe-CKXBeh82.cjs +0 -253
  839. package/dist/src/typesafe-D3VaGeNm.js +0 -253
  840. package/dist/src/typesafe-DYM-SFNH.js +0 -253
  841. package/dist/src/typesafe-LXmSbw8F.js +0 -254
  842. package/dist/src/util-41rb0XHX.js +0 -743
  843. package/dist/src/util-B0WlHYFM.js +0 -2049
  844. package/dist/src/util-BD1R_PsR.js +0 -1770
  845. package/dist/src/util-BLbM_ItC.js +0 -395
  846. package/dist/src/util-C72P0iIa.js +0 -352
  847. package/dist/src/util-C7MpGlJ6.cjs +0 -2305
  848. package/dist/src/util-CCtqagKc.js +0 -286
  849. package/dist/src/util-CM2Ec_uY.js +0 -2051
  850. package/dist/src/util-CSSAWO8v.js +0 -351
  851. package/dist/src/util-CkQc-fx3.cjs +0 -934
  852. package/dist/src/util-DcOlFTFa.cjs +0 -478
  853. package/dist/src/util-DluGTGVB.js +0 -395
  854. package/dist/src/util-PfQ60chz.js +0 -743
  855. package/dist/src/util-f14-CPij.js +0 -396
  856. package/dist/src/util-l9pXX3Eu.cjs +0 -357
  857. package/dist/src/util-o_BnlYqS.js +0 -2050
  858. package/dist/src/vertex-B_-gQgzc.js +0 -2
  859. package/dist/src/vertex-CU4gqoYa.js +0 -854
  860. package/dist/src/vertex-DZ42UHb3.js +0 -848
  861. package/dist/src/vertex-DsYQJA0T.cjs +0 -871
  862. package/dist/src/vertexLive-BvIaHKGB.js +0 -55
  863. package/dist/src/vertexLive-CTULqNx7.js +0 -56
  864. package/dist/src/vertexLive-DjJ_YQBe.cjs +0 -55
  865. package/dist/src/vertexLive-STUGcteB.js +0 -55
  866. package/dist/src/video-CAQGmtEV.js +0 -703
  867. package/dist/src/video-_FSTWlwX.js +0 -702
  868. package/dist/src/video-aBPJPWdt.js +0 -702
  869. package/dist/src/video-gDjkWv5m.cjs +0 -706
@@ -0,0 +1,856 @@
1
+ const require_rolldown_runtime = require("./rolldown-runtime-C0BPl7ul.cjs");
2
+ const require_logger = require("./logger-DXUHJBHJ.cjs");
3
+ const require_fetch = require("./fetch-BKlgUg08.cjs");
4
+ const require_shared = require("./shared-D9Bf3UgD.cjs");
5
+ const require_time = require("./time-CY7bOv6D.cjs");
6
+ const require_createHash = require("./createHash-sm6Q6LWg.cjs");
7
+ let path = require("path");
8
+ path = require_rolldown_runtime.__toESM(path, 1);
9
+ let node_async_hooks = require("node:async_hooks");
10
+ let fs = require("fs");
11
+ fs = require_rolldown_runtime.__toESM(fs, 1);
12
+ let node_crypto = require("node:crypto");
13
+ node_crypto = require_rolldown_runtime.__toESM(node_crypto, 1);
14
+ let cache_manager = require("cache-manager");
15
+ let node_events = require("node:events");
16
+ let keyv = require("keyv");
17
+ let keyv_file = require("keyv-file");
18
+ //#region src/cache/storage.ts
19
+ function isEnvelope(value) {
20
+ return typeof value === "object" && value !== null && !Array.isArray(value) && (!("expires" in value) || value.expires === void 0 || typeof value.expires === "number");
21
+ }
22
+ var DiskStore = class extends node_events.EventEmitter {
23
+ backend;
24
+ opts = {};
25
+ namespace;
26
+ constructor(backend) {
27
+ super();
28
+ this.backend = backend;
29
+ }
30
+ async get(key) {
31
+ const raw = await this.backend.getRaw(key);
32
+ return typeof raw === "string" ? this.backend.decode(raw) : raw;
33
+ }
34
+ async set(key, value) {
35
+ if (!isEnvelope(value)) throw new TypeError("Cache storage requires a value/expiry envelope");
36
+ return this.backend.setRaw(key, value);
37
+ }
38
+ async delete(key) {
39
+ return this.backend.delete(key);
40
+ }
41
+ async clear() {
42
+ await this.backend.clear();
43
+ }
44
+ async disconnect() {
45
+ await this.backend.disconnect();
46
+ }
47
+ };
48
+ /** Preserve cache-manager's Keyv 5 API while storing data through Keyv 6. */
49
+ function createDiskCache(filename, ttl) {
50
+ const backend = new keyv.Keyv(new keyv.KeyvBridgeAdapter(new keyv_file.KeyvFile({ filename })));
51
+ const cache = (0, cache_manager.createCache)({
52
+ ttl,
53
+ refreshThreshold: 0
54
+ });
55
+ const facade = cache.stores[0];
56
+ const store = new DiskStore(backend);
57
+ facade.ttl = ttl;
58
+ facade.store = store;
59
+ facade.iterator = async function* () {
60
+ const prefix = facade.useKeyPrefix && facade.namespace ? `${facade.namespace}:` : "";
61
+ for await (const [key, value] of backend.iterator()) if (!prefix || key.startsWith(prefix)) yield [prefix ? key.slice(prefix.length) : key, value];
62
+ };
63
+ return cache;
64
+ }
65
+ //#endregion
66
+ //#region src/cache.ts
67
+ var cache_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
68
+ claimCacheKeyOnce: () => claimCacheKeyOnce,
69
+ clearCache: () => clearCache,
70
+ disableCache: () => disableCache,
71
+ enableCache: () => enableCache,
72
+ fetchWithCache: () => fetchWithCache,
73
+ getAbortSignalScopedKey: () => getAbortSignalScopedKey,
74
+ getCache: () => getCache,
75
+ getCacheClearGeneration: () => getCacheClearGeneration,
76
+ getCacheTtlMs: () => getCacheTtlMs,
77
+ getHeadersForCacheKey: () => getHeadersForCacheKey,
78
+ getScopedCacheKey: () => getScopedCacheKey,
79
+ isCacheEnabled: () => isCacheEnabled,
80
+ withCacheEnabled: () => withCacheEnabled,
81
+ withCacheNamespace: () => withCacheNamespace
82
+ });
83
+ let cacheInstance;
84
+ const namespacedCacheInstances = /* @__PURE__ */ new Map();
85
+ let cacheClearGeneration = 0;
86
+ const CACHE_ENABLED_CONTEXT = Symbol.for("promptfoo.cache.enabledContext.v1");
87
+ const CACHE_NAMESPACE_CONTEXT = Symbol.for("promptfoo.cache.namespaceContext.v1");
88
+ const cacheContextGlobal = globalThis;
89
+ const cacheEnabledStorage = cacheContextGlobal[CACHE_ENABLED_CONTEXT] ??= new node_async_hooks.AsyncLocalStorage();
90
+ const cacheNamespaceStorage = cacheContextGlobal[CACHE_NAMESPACE_CONTEXT] ??= new node_async_hooks.AsyncLocalStorage();
91
+ let enabled = require_logger.getEnvBool("PROMPTFOO_CACHE_ENABLED", true);
92
+ const cacheType = require_logger.getEnvString("PROMPTFOO_CACHE_TYPE") || (require_logger.getEnvString("NODE_ENV") === "test" ? "memory" : "disk");
93
+ /** Default cache TTL: 14 days in seconds */
94
+ const DEFAULT_CACHE_TTL_SECONDS = 1209600;
95
+ /**
96
+ * Get the cache TTL in milliseconds.
97
+ * Reads from PROMPTFOO_CACHE_TTL environment variable (in seconds) or uses default.
98
+ */
99
+ function getCacheTtlMs() {
100
+ return require_logger.getEnvInt("PROMPTFOO_CACHE_TTL", DEFAULT_CACHE_TTL_SECONDS) * 1e3;
101
+ }
102
+ /**
103
+ * Get the cache instance with optional namespace isolation.
104
+ *
105
+ * @returns The current cache instance (namespace-aware if inside withCacheNamespace)
106
+ *
107
+ * @example
108
+ * ```typescript
109
+ * import { cache } from 'promptfoo';
110
+ *
111
+ * const cacheInstance = cache.getCache();
112
+ * const value = await cacheInstance.get('my-key');
113
+ * ```
114
+ */
115
+ function getCache() {
116
+ const namespace = cacheNamespaceStorage.getStore()?.namespace;
117
+ if (namespace) return getNamespacedCache(namespace);
118
+ return getCacheInstance();
119
+ }
120
+ function getCacheInstance() {
121
+ if (!cacheInstance) {
122
+ let cachePath = "";
123
+ let diskCache;
124
+ if (cacheType === "disk" && enabled) {
125
+ cachePath = require_logger.getEnvString("PROMPTFOO_CACHE_PATH") || path.default.join(require_logger.getConfigDirectoryPath(), "cache");
126
+ if (!fs.default.existsSync(cachePath)) {
127
+ require_logger.logger.info(`Creating cache folder at ${cachePath}.`);
128
+ fs.default.mkdirSync(cachePath, { recursive: true });
129
+ }
130
+ const newCacheFile = path.default.join(cachePath, "cache.json");
131
+ try {
132
+ diskCache = createDiskCache(newCacheFile, getCacheTtlMs());
133
+ } catch (err) {
134
+ require_logger.logger.warn(`[Cache] Failed to initialize disk cache: ${err.message}. Using memory cache instead.`);
135
+ }
136
+ }
137
+ cacheInstance = diskCache ?? (0, cache_manager.createCache)({
138
+ ttl: getCacheTtlMs(),
139
+ refreshThreshold: 0
140
+ });
141
+ const clear = cacheInstance.clear.bind(cacheInstance);
142
+ cacheInstance.clear = async () => {
143
+ const result = await clear();
144
+ cacheClearGeneration += 1;
145
+ return result;
146
+ };
147
+ }
148
+ return cacheInstance;
149
+ }
150
+ function getNamespacedCache(namespace) {
151
+ const cachedNamespaceInstance = namespacedCacheInstances.get(namespace);
152
+ if (cachedNamespaceInstance) return cachedNamespaceInstance;
153
+ const cache = getCacheInstance();
154
+ const namespacedCache = {
155
+ ...cache,
156
+ get: (key) => cache.get(getScopedCacheKey(key, namespace)),
157
+ set: (key, value, ttl) => cache.set(getScopedCacheKey(key, namespace), value, ttl),
158
+ del: (key) => cache.del(getScopedCacheKey(key, namespace)),
159
+ mget: (keys) => cache.mget(keys.map((key) => getScopedCacheKey(key, namespace))),
160
+ mset: async (list) => {
161
+ const scopedList = list.map(({ key, value, ttl }) => ({
162
+ key: getScopedCacheKey(key, namespace),
163
+ value,
164
+ ttl
165
+ }));
166
+ return (await cache.mset(scopedList) ?? scopedList).map(({ key, value, ttl }) => ({
167
+ key: getUnscopedCacheKey(key, namespace),
168
+ value,
169
+ ttl
170
+ }));
171
+ },
172
+ mdel: (keys) => cache.mdel(keys.map((key) => getScopedCacheKey(key, namespace))),
173
+ ttl: (key) => cache.ttl(getScopedCacheKey(key, namespace)),
174
+ clear: () => clearNamespacedCache(cache, namespace),
175
+ wrap: (...args) => cache.wrap(getScopedCacheKey(args[0], namespace), ...args.slice(1))
176
+ };
177
+ namespacedCacheInstances.set(namespace, namespacedCache);
178
+ return namespacedCache;
179
+ }
180
+ function getCurrentCacheNamespace() {
181
+ return cacheNamespaceStorage.getStore()?.namespace;
182
+ }
183
+ function currentNamespaceIncludesRepeatIndex(repeatIndex) {
184
+ const namespaceParts = getCurrentCacheNamespace()?.split(":") ?? [];
185
+ return namespaceParts.some((part, index) => part === "repeat" && namespaceParts[index + 1] === String(repeatIndex));
186
+ }
187
+ function shouldApplyRepeatCacheSuffix(repeatIndex) {
188
+ return repeatIndex != null && repeatIndex > 0 && !currentNamespaceIncludesRepeatIndex(repeatIndex);
189
+ }
190
+ function getScopedCacheKey(cacheKey, namespace = getCurrentCacheNamespace()) {
191
+ return namespace ? `${namespace}:${cacheKey}` : cacheKey;
192
+ }
193
+ function getCacheClearGeneration() {
194
+ return cacheClearGeneration;
195
+ }
196
+ function getUnscopedCacheKey(cacheKey, namespace) {
197
+ const namespacePrefix = `${namespace}:`;
198
+ return cacheKey.startsWith(namespacePrefix) ? cacheKey.slice(namespacePrefix.length) : cacheKey;
199
+ }
200
+ async function clearNamespacedCache(cache, namespace) {
201
+ const namespacePrefix = `${namespace}:`;
202
+ for (const store of cache.stores) {
203
+ if (!store.iterator) throw new Error(`[Cache] Cannot clear namespace ${namespace} because a cache store does not support key iteration.`);
204
+ const keysToDelete = [];
205
+ for await (const [key] of store.iterator(void 0)) if (typeof key === "string" && key.startsWith(namespacePrefix)) keysToDelete.push(key);
206
+ if (keysToDelete.length === 0) continue;
207
+ try {
208
+ if (store.deleteMany) await store.deleteMany(keysToDelete);
209
+ else await Promise.all(keysToDelete.map((key) => store.delete(key)));
210
+ } catch (err) {
211
+ throw new Error(`[Cache] Failed to clear ${keysToDelete.length} keys for namespace "${namespace}": ${err.message}`);
212
+ }
213
+ }
214
+ cacheClearGeneration += 1;
215
+ return true;
216
+ }
217
+ /**
218
+ * Run a function with isolated cache namespace.
219
+ *
220
+ * All cache operations within the function will be scoped to the namespace,
221
+ * preventing cache collisions between different test runs or environments.
222
+ *
223
+ * @param namespace Namespace prefix for cache keys (undefined = no namespace)
224
+ * @param fn Async function to run with the namespace
225
+ *
226
+ * @returns Result of the function
227
+ *
228
+ * @example
229
+ * ```typescript
230
+ * import { cache, evaluate } from 'promptfoo';
231
+ *
232
+ * // Run v1 and v2 evals with separate caches
233
+ * const v1Results = await cache.withCacheNamespace('v1', async () => {
234
+ * return evaluate(testSuiteV1);
235
+ * });
236
+ *
237
+ * const v2Results = await cache.withCacheNamespace('v2', async () => {
238
+ * return evaluate(testSuiteV2);
239
+ * });
240
+ * ```
241
+ */
242
+ function withCacheNamespace(namespace, fn) {
243
+ if (!namespace) return fn();
244
+ const parentNamespace = getCurrentCacheNamespace();
245
+ if (parentNamespace === namespace) return fn();
246
+ const scopedNamespace = parentNamespace ? `${parentNamespace}:${namespace}` : namespace;
247
+ return cacheNamespaceStorage.run({ namespace: scopedNamespace }, fn);
248
+ }
249
+ function withCacheEnabled(enabledOverride, fn) {
250
+ if (enabledOverride === void 0) return fn();
251
+ return cacheEnabledStorage.run({ enabled: enabledOverride }, fn);
252
+ }
253
+ function getEffectiveCacheEnabled() {
254
+ return cacheEnabledStorage.getStore()?.enabled ?? enabled;
255
+ }
256
+ const inflightFetchResponses = /* @__PURE__ */ new Map();
257
+ const claimedCacheKeys = /* @__PURE__ */ new Set();
258
+ const IGNORED_FETCH_CACHE_OPTION_KEYS = /* @__PURE__ */ new Set(["method", "signal"]);
259
+ const IGNORED_FETCH_CACHE_HEADERS = /* @__PURE__ */ new Set(["traceparent", "tracestate"]);
260
+ const FETCH_CACHE_SECRET_HMAC_CONTEXT = "promptfoo:fetch-cache-secret-key";
261
+ const FETCH_CACHE_SECRET_HMAC_SALT = "promptfoo:fetch-cache-secret-hmac-salt:v1";
262
+ const abortSignalIds = /* @__PURE__ */ new WeakMap();
263
+ let nextAbortSignalId = 0;
264
+ function fingerprintFetchCacheSecret(value) {
265
+ return { __promptfooSecretFingerprint: node_crypto.default.createHmac("sha256", FETCH_CACHE_SECRET_HMAC_SALT).update(FETCH_CACHE_SECRET_HMAC_CONTEXT).update("\0").update(value).digest("hex") };
266
+ }
267
+ function isSensitiveFetchCacheString(value, fieldName) {
268
+ return fieldName && require_logger.isSecretField(fieldName) || require_logger.looksLikeSecret(value);
269
+ }
270
+ function getStringForFetchCacheKey(value, fieldName) {
271
+ if (isSensitiveFetchCacheString(value, fieldName)) return fingerprintFetchCacheSecret(value);
272
+ return value;
273
+ }
274
+ function hasSensitiveJsonValue(value, fieldName) {
275
+ if (typeof value === "string") return isSensitiveFetchCacheString(value, fieldName);
276
+ if (Array.isArray(value)) return value.some((item) => hasSensitiveJsonValue(item, fieldName));
277
+ if (value && typeof value === "object") return Object.entries(value).some(([key, nestedValue]) => hasSensitiveJsonValue(nestedValue, key));
278
+ return false;
279
+ }
280
+ function getJsonValueForFetchCacheKey(value, fieldName) {
281
+ if (typeof value === "string") return getStringForFetchCacheKey(value, fieldName);
282
+ if (Array.isArray(value)) return value.map((item) => getJsonValueForFetchCacheKey(item, fieldName));
283
+ if (value && typeof value === "object") return Object.fromEntries(Object.entries(value).map(([key, nestedValue]) => [key, getJsonValueForFetchCacheKey(nestedValue, key)]));
284
+ return value;
285
+ }
286
+ function getBodyStringForFetchCacheKey(value) {
287
+ try {
288
+ const parsedValue = JSON.parse(value);
289
+ return hasSensitiveJsonValue(parsedValue) ? {
290
+ encoding: "json",
291
+ value: getJsonValueForFetchCacheKey(parsedValue)
292
+ } : value;
293
+ } catch {
294
+ return getStringForFetchCacheKey(value);
295
+ }
296
+ }
297
+ function hasSensitiveSearchParam(searchParams) {
298
+ return Array.from(searchParams.entries()).some(([name, value]) => isSensitiveFetchCacheString(value, name));
299
+ }
300
+ function getSearchParamsForFetchCacheKey(searchParams) {
301
+ if (!hasSensitiveSearchParam(searchParams)) return searchParams.toString();
302
+ return Array.from(searchParams.entries()).map(([name, value]) => [name, getStringForFetchCacheKey(value, name)]);
303
+ }
304
+ function getUrlForFetchCacheKey(url) {
305
+ const urlString = url instanceof Request ? url.url : String(url);
306
+ try {
307
+ const parsedUrl = new URL(urlString);
308
+ if (!hasSensitiveSearchParam(parsedUrl.searchParams)) return urlString;
309
+ parsedUrl.search = "";
310
+ return {
311
+ href: parsedUrl.toString(),
312
+ searchParams: getSearchParamsForFetchCacheKey(new URL(urlString).searchParams)
313
+ };
314
+ } catch {
315
+ return getStringForFetchCacheKey(urlString);
316
+ }
317
+ }
318
+ function getHeadersForCacheKey(url, options) {
319
+ const headers = new Headers(require_fetch.getFetchWithProxyHeaders(url, options));
320
+ const cloudAuth = require_fetch.getCloudBearerToken(url);
321
+ let cloudAuthHeaderNameForFingerprint;
322
+ if (cloudAuth) {
323
+ const cloudAuthHeaderName = require_fetch.getCloudAuthHeaderName();
324
+ cloudAuthHeaderNameForFingerprint = cloudAuthHeaderName.toLowerCase();
325
+ if (!headers.has(cloudAuthHeaderName)) headers.set(cloudAuthHeaderName, cloudAuth);
326
+ }
327
+ const cloudTaskTeamId = require_fetch.getCloudTaskTeamId(url);
328
+ if (cloudTaskTeamId && !headers.has("x-promptfoo-team-id")) headers.set(require_fetch.PROMPTFOO_TEAM_ID_HEADER, cloudTaskTeamId);
329
+ return Array.from(headers.entries()).filter(([name]) => !IGNORED_FETCH_CACHE_HEADERS.has(name)).sort(([nameA, valueA], [nameB, valueB]) => {
330
+ const nameComparison = nameA.localeCompare(nameB);
331
+ return nameComparison === 0 ? valueA.localeCompare(valueB) : nameComparison;
332
+ }).map(([name, value]) => [name, name === cloudAuthHeaderNameForFingerprint ? fingerprintFetchCacheSecret(value) : getStringForFetchCacheKey(value, name)]);
333
+ }
334
+ function hashFetchCacheKey(identity) {
335
+ return require_createHash.sha256(JSON.stringify(identity));
336
+ }
337
+ function hashBytesForCacheKey(bytes) {
338
+ const buffer = ArrayBuffer.isView(bytes) ? Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength) : Buffer.from(bytes);
339
+ return {
340
+ byteLength: buffer.byteLength,
341
+ hmacSha256: node_crypto.default.createHmac("sha256", FETCH_CACHE_SECRET_HMAC_SALT).update(`${FETCH_CACHE_SECRET_HMAC_CONTEXT}:bytes`).update("\0").update(buffer).digest("hex")
342
+ };
343
+ }
344
+ function getBodyForFetchCacheKey(body) {
345
+ if (body == null) return {
346
+ cacheable: true,
347
+ identity: void 0
348
+ };
349
+ if (typeof body === "string") return {
350
+ cacheable: true,
351
+ identity: {
352
+ type: "string",
353
+ value: getBodyStringForFetchCacheKey(body)
354
+ }
355
+ };
356
+ if (typeof URLSearchParams !== "undefined" && body instanceof URLSearchParams) return {
357
+ cacheable: true,
358
+ identity: {
359
+ type: "url-search-params",
360
+ value: getSearchParamsForFetchCacheKey(body)
361
+ }
362
+ };
363
+ if (body instanceof ArrayBuffer) return {
364
+ cacheable: true,
365
+ identity: {
366
+ type: "array-buffer",
367
+ ...hashBytesForCacheKey(body)
368
+ }
369
+ };
370
+ if (ArrayBuffer.isView(body)) return {
371
+ cacheable: true,
372
+ identity: {
373
+ type: body.constructor.name,
374
+ ...hashBytesForCacheKey(body)
375
+ }
376
+ };
377
+ return {
378
+ cacheable: false,
379
+ identity: void 0
380
+ };
381
+ }
382
+ function getOptionsForFetchCacheKey(options, bodyIdentity) {
383
+ const identity = {};
384
+ for (const [key, value] of Object.entries(options).sort(([keyA], [keyB]) => keyA.localeCompare(keyB))) {
385
+ if (key === "headers" || IGNORED_FETCH_CACHE_OPTION_KEYS.has(key)) continue;
386
+ if (key === "body") {
387
+ identity.body = bodyIdentity;
388
+ continue;
389
+ }
390
+ if (value == null || [
391
+ "boolean",
392
+ "number",
393
+ "string"
394
+ ].includes(typeof value)) {
395
+ identity[key] = value;
396
+ continue;
397
+ }
398
+ return {
399
+ cacheable: false,
400
+ identity: void 0
401
+ };
402
+ }
403
+ if (!Object.prototype.hasOwnProperty.call(options, "body") && bodyIdentity !== void 0) identity.body = bodyIdentity;
404
+ return {
405
+ cacheable: true,
406
+ identity
407
+ };
408
+ }
409
+ function getFetchCacheKey(url, options, method, format, repeatIndex) {
410
+ const bodyForCacheKey = getBodyForFetchCacheKey(options.body ?? (url instanceof Request ? url.body : void 0));
411
+ if (!bodyForCacheKey.cacheable) return null;
412
+ const optionsForCacheKey = getOptionsForFetchCacheKey(options, bodyForCacheKey.identity);
413
+ if (!optionsForCacheKey.cacheable) return null;
414
+ const repeatSuffix = shouldApplyRepeatCacheSuffix(repeatIndex) ? `:repeat${repeatIndex}` : "";
415
+ return getScopedCacheKey(`fetch:v3:${hashFetchCacheKey({
416
+ format,
417
+ headers: getHeadersForCacheKey(url, options),
418
+ method,
419
+ options: optionsForCacheKey.identity,
420
+ url: getUrlForFetchCacheKey(url)
421
+ })}${repeatSuffix}`);
422
+ }
423
+ /** Key in-flight requests by abort signal so only callers cancelled together share one. */
424
+ function getAbortSignalScopedKey(key, signal) {
425
+ if (!signal) return JSON.stringify([key, null]);
426
+ let signalId = abortSignalIds.get(signal);
427
+ if (signalId === void 0) {
428
+ signalId = ++nextAbortSignalId;
429
+ abortSignalIds.set(signal, signalId);
430
+ }
431
+ return JSON.stringify([key, signalId]);
432
+ }
433
+ /**
434
+ * Atomically claim a cache-scoped one-time action. Disk-backed claims use an exclusive file so
435
+ * separate eval processes cannot both attribute the same background response's usage.
436
+ */
437
+ function claimCacheKeyOnce(cacheKey) {
438
+ const scopedCacheKey = getScopedCacheKey(cacheKey);
439
+ if (claimedCacheKeys.has(scopedCacheKey)) return false;
440
+ if (cacheType === "disk" && getEffectiveCacheEnabled()) {
441
+ const cachePath = require_logger.getEnvString("PROMPTFOO_CACHE_PATH") || path.default.join(require_logger.getConfigDirectoryPath(), "cache");
442
+ const claimsPath = path.default.join(cachePath, "claims");
443
+ try {
444
+ fs.default.mkdirSync(claimsPath, { recursive: true });
445
+ const handle = fs.default.openSync(path.default.join(claimsPath, require_createHash.sha256(scopedCacheKey)), "wx");
446
+ fs.default.closeSync(handle);
447
+ } catch (error) {
448
+ if (error.code === "EEXIST") {
449
+ claimedCacheKeys.add(scopedCacheKey);
450
+ return false;
451
+ }
452
+ require_logger.logger.warn(`[Cache] Failed to persist a one-time cache claim: ${error.message}. Using a process-local claim instead.`);
453
+ }
454
+ }
455
+ claimedCacheKeys.add(scopedCacheKey);
456
+ return true;
457
+ }
458
+ function getSanitizedResponse(data, statusText, headers, sanitizeResponse) {
459
+ return sanitizeResponse ? sanitizeResponse({
460
+ data,
461
+ statusText,
462
+ headers: { ...headers }
463
+ }) : {
464
+ data,
465
+ statusText,
466
+ headers
467
+ };
468
+ }
469
+ function serializeFetchResponse(data, status, statusText, headers, latencyMs, sanitizeResponse) {
470
+ const sanitized = getSanitizedResponse(data, statusText, headers, sanitizeResponse);
471
+ return JSON.stringify({
472
+ data: sanitized.data,
473
+ status,
474
+ statusText: sanitized.statusText,
475
+ headers: sanitized.headers,
476
+ latencyMs
477
+ });
478
+ }
479
+ function deserializeFetchResponse(response, cached, cache, cacheKey, sanitizeResponse) {
480
+ const parsedResponse = JSON.parse(response);
481
+ const sanitized = getSanitizedResponse(parsedResponse.data, parsedResponse.statusText, parsedResponse.headers, sanitizeResponse);
482
+ return {
483
+ cached,
484
+ data: sanitized.data,
485
+ status: parsedResponse.status,
486
+ statusText: sanitized.statusText,
487
+ headers: sanitized.headers,
488
+ latencyMs: parsedResponse.latencyMs,
489
+ deleteFromCache: async () => {
490
+ await cache.del(cacheKey);
491
+ require_logger.logger.debug(`Evicted from cache: ${cacheKey}`);
492
+ },
493
+ updateCache: async (data, status, statusText, headers) => {
494
+ await cache.set(cacheKey, serializeFetchResponse(data, status, statusText, headers ?? {}, parsedResponse.latencyMs, sanitizeResponse));
495
+ require_logger.logger.debug(`Updated cached response: ${cacheKey}`);
496
+ }
497
+ };
498
+ }
499
+ async function fetchAndReadBody(url, options, timeout, maxRetries, isIdempotent, logEnabled, onRateLimitBackoff) {
500
+ const retryBudget = Math.max(0, maxRetries ?? require_fetch.getFetchRetryContextMaxRetries() ?? 2);
501
+ const maxBodyRetries = isIdempotent ? Math.min(2, retryBudget) : 0;
502
+ for (let bodyAttempt = 0; bodyAttempt <= maxBodyRetries; bodyAttempt++) {
503
+ const fetchStart = Date.now();
504
+ const resp = await require_fetch.fetchWithRetries(url, options, timeout, maxRetries, onRateLimitBackoff);
505
+ const fetchLatencyMs = Date.now() - fetchStart;
506
+ try {
507
+ return {
508
+ respText: await resp.text(),
509
+ resp,
510
+ fetchLatencyMs
511
+ };
512
+ } catch (err) {
513
+ if (!options.signal?.aborted && require_fetch.isTransientConnectionError(err) && bodyAttempt < maxBodyRetries) {
514
+ const backoffMs = Math.pow(2, bodyAttempt) * 1e3;
515
+ if (logEnabled) require_logger.logger.debug("[Cache] Body stream failed with transient error, retrying", {
516
+ attempt: bodyAttempt + 1,
517
+ maxRetries: maxBodyRetries,
518
+ backoffMs,
519
+ error: err?.message?.slice(0, 200)
520
+ });
521
+ await require_shared.waitForPromiseWithAbort(require_time.sleep(backoffMs), options.signal);
522
+ require_shared.throwIfAborted(options.signal);
523
+ continue;
524
+ }
525
+ if (require_fetch.isAbortError(err)) throw err;
526
+ const wrappedError = /* @__PURE__ */ new Error(`Error reading response body from ${require_logger.sanitizeUrlForLogging(require_fetch.getRequestUrlString(url))}: ${err.message}. HTTP ${resp.status} ${resp.statusText}`);
527
+ wrappedError.cause = err;
528
+ throw wrappedError;
529
+ }
530
+ }
531
+ throw new Error("Exhausted body retries without returning or throwing");
532
+ }
533
+ function parseFetchResponse(url, response, responseText, format, sanitizeResponse) {
534
+ try {
535
+ return format === "json" ? JSON.parse(responseText) : responseText;
536
+ } catch (err) {
537
+ const message = `Error parsing response from ${require_logger.sanitizeUrlForLogging(require_fetch.getRequestUrlString(url))}:`;
538
+ if (sanitizeResponse) throw new Error(`${message} Invalid JSON. HTTP ${response.status}.`);
539
+ throw new Error(`${message} ${err.message}. HTTP ${response.status} ${response.statusText}. Received text: ${responseText}`);
540
+ }
541
+ }
542
+ async function prepareFetchResponse(url, options, timeout, maxRetries, isIdempotent, format, logEnabled, sanitizeResponse, onRateLimitBackoff) {
543
+ const result = await fetchAndReadBody(url, options, timeout, maxRetries, isIdempotent, logEnabled, onRateLimitBackoff);
544
+ const response = result.resp;
545
+ const responseText = result.respText;
546
+ const fetchLatencyMs = result.fetchLatencyMs;
547
+ const parsedData = parseFetchResponse(url, response, responseText, format, sanitizeResponse);
548
+ const responseError = format === "json" && parsedData !== null && typeof parsedData === "object" && "error" in parsedData ? parsedData.error : void 0;
549
+ const serializedResponse = serializeFetchResponse(!response.ok && responseText === "" ? `Empty Response: ${response.status}: ${response.statusText}` : parsedData, response.status, response.statusText, Object.fromEntries(response.headers.entries()), fetchLatencyMs, sanitizeResponse);
550
+ if (!response.ok) return {
551
+ response: serializedResponse,
552
+ cacheable: false
553
+ };
554
+ if (responseError) {
555
+ if (logEnabled) require_logger.logger.debug(`Not caching ${require_logger.sanitizeUrlForLogging(require_fetch.getRequestUrlString(url))} because it contains an 'error' key: ${sanitizeResponse ? serializedResponse : responseError}`);
556
+ return {
557
+ response: serializedResponse,
558
+ cacheable: false
559
+ };
560
+ }
561
+ if (logEnabled) require_logger.logger.debug(`Storing ${require_logger.sanitizeUrlForLogging(require_fetch.getRequestUrlString(url))} response in cache with latencyMs=${fetchLatencyMs}: ${serializedResponse}`);
562
+ return {
563
+ response: serializedResponse,
564
+ cacheable: true
565
+ };
566
+ }
567
+ /**
568
+ * Fetch a URL with automatic caching.
569
+ *
570
+ * Caches HTTP responses with configurable TTL. Useful for fetching external
571
+ * data files, embeddings, or API responses that don't change frequently.
572
+ *
573
+ * @param url URL to fetch
574
+ * @param options Fetch options (method, headers, body, etc.)
575
+ * @param timeout Request timeout in milliseconds (default: standard timeout)
576
+ * @param format Response format: 'json' or 'text' (default: 'json')
577
+ * @param bustOrOptions Bypass cache or provide cache options for this request
578
+ * @param maxRetries Maximum number of retries on transient errors
579
+ * @param onResponsePrepared Observe each caller's fresh, fully read response before waiting for cache publication
580
+ * @param onRateLimitBackoff Observe this request's selected live fetch backoff before its wait
581
+ *
582
+ * @returns FetchWithCacheResult with data, cache status, and HTTP metadata
583
+ *
584
+ * @example
585
+ * ```typescript
586
+ * import { cache } from 'promptfoo';
587
+ *
588
+ * // Fetch with 1-hour TTL
589
+ * const result = await cache.fetchWithCache(
590
+ * 'https://api.example.com/data',
591
+ * { method: 'GET' },
592
+ * undefined,
593
+ * 'json'
594
+ * );
595
+ *
596
+ * console.log(result.cached); // true if from cache
597
+ * console.log(result.data); // the fetched data
598
+ * console.log(result.status); // HTTP status code
599
+ * ```
600
+ *
601
+ * @see withCacheNamespace for cache isolation
602
+ * @see enableCache / disableCache for cache control
603
+ */
604
+ async function fetchWithCache(url, options = {}, timeout = require_shared.getRequestTimeoutMs(), format = "json", bustOrOptions = false, maxRetries, onResponsePrepared, onRateLimitBackoff) {
605
+ const signal = require_shared.getEffectiveRequestSignal(url, options);
606
+ require_shared.throwIfAborted(signal);
607
+ const fetchOptions = require_fetch.preserveCloudAuthRedirects(url, signal === options.signal ? options : {
608
+ ...options,
609
+ signal
610
+ });
611
+ const { bust = false, repeatIndex, cacheKey: providedCacheKey, sanitizeResponse } = typeof bustOrOptions === "boolean" ? { bust: bustOrOptions } : bustOrOptions ?? {};
612
+ const logEnabled = new Headers(require_fetch.getFetchWithProxyHeaders(url, fetchOptions)).get("x-promptfoo-silent") !== "true";
613
+ const method = (fetchOptions.method ?? (url instanceof Request ? url.method : "GET")).toUpperCase();
614
+ const isIdempotent = [
615
+ "GET",
616
+ "HEAD",
617
+ "OPTIONS",
618
+ "PUT",
619
+ "DELETE"
620
+ ].includes(method);
621
+ const cacheEnabled = getEffectiveCacheEnabled();
622
+ if (cacheEnabled && !bust && fetchOptions.getAuthHeaders && !providedCacheKey) throw new Error("Request-time authentication requires cache bypass or an explicit principal-scoped cache key.");
623
+ if (cacheEnabled && !bust && sanitizeResponse && !providedCacheKey) throw new Error("Response sanitization requires cache bypass or an explicit cache key identifying the sanitizer policy.");
624
+ const repeatSuffix = shouldApplyRepeatCacheSuffix(repeatIndex) ? `:repeat${repeatIndex}` : "";
625
+ const providedKeyPrefix = fetchOptions.restrictCloudAuthRedirects ? "fetch:cloud-auth:v3" : "fetch:v3";
626
+ const cacheKey = cacheEnabled && !bust ? providedCacheKey ? getScopedCacheKey(`${providedKeyPrefix}:${providedCacheKey}${repeatSuffix}`) : getFetchCacheKey(url, fetchOptions, method, format, repeatIndex) : null;
627
+ let notifyRateLimitBackoff;
628
+ const observerFailure = onRateLimitBackoff ? new Promise((_resolve, reject) => {
629
+ let failed = false;
630
+ notifyRateLimitBackoff = (observation) => {
631
+ if (failed) return;
632
+ try {
633
+ onRateLimitBackoff(observation);
634
+ } catch (error) {
635
+ failed = true;
636
+ reject(error);
637
+ }
638
+ };
639
+ }) : void 0;
640
+ observerFailure?.catch(() => void 0);
641
+ if (!cacheEnabled || bust || cacheKey == null) {
642
+ const response = fetchAndReadBody(url, fetchOptions, timeout, maxRetries, isIdempotent, logEnabled, notifyRateLimitBackoff);
643
+ const { respText, resp, fetchLatencyMs } = await (observerFailure ? Promise.race([response, observerFailure]) : response);
644
+ const sanitized = getSanitizedResponse(parseFetchResponse(url, resp, respText, format, sanitizeResponse), resp.statusText, Object.fromEntries(resp.headers.entries()), sanitizeResponse);
645
+ const result = {
646
+ cached: false,
647
+ data: sanitized.data,
648
+ status: resp.status,
649
+ statusText: sanitized.statusText,
650
+ headers: sanitized.headers,
651
+ latencyMs: fetchLatencyMs,
652
+ deleteFromCache: async () => {}
653
+ };
654
+ onResponsePrepared?.(result);
655
+ return result;
656
+ }
657
+ const cache = getCacheInstance();
658
+ const cachedResponse = await require_shared.waitForPromiseWithAbort(cache.get(cacheKey), signal);
659
+ require_shared.throwIfAborted(signal);
660
+ if (cachedResponse != null) {
661
+ const result = deserializeFetchResponse(cachedResponse, true, cache, cacheKey, sanitizeResponse);
662
+ if (logEnabled) {
663
+ const loggedResponse = sanitizeResponse ? serializeFetchResponse(result.data, result.status, result.statusText, result.headers, result.latencyMs) : cachedResponse;
664
+ require_logger.logger.debug(`Returning cached response for ${require_logger.sanitizeUrlForLogging(require_fetch.getRequestUrlString(url))}: ${loggedResponse}`);
665
+ }
666
+ return result;
667
+ }
668
+ const inflightCacheKey = getAbortSignalScopedKey(cacheKey, signal);
669
+ let inflightResponse = inflightFetchResponses.get(inflightCacheKey);
670
+ const coalesced = inflightResponse !== void 0;
671
+ if (!inflightResponse) {
672
+ const rateLimitBackoff = { observers: /* @__PURE__ */ new Set() };
673
+ const response = prepareFetchResponse(url, fetchOptions, timeout, maxRetries, isIdempotent, format, logEnabled, sanitizeResponse, (observation) => {
674
+ rateLimitBackoff.latest = observation;
675
+ for (const observer of rateLimitBackoff.observers) observer(observation);
676
+ });
677
+ const publication = response.then(async (preparedResponse) => {
678
+ if (preparedResponse.cacheable) await cache.set(cacheKey, preparedResponse.response);
679
+ }).finally(() => {
680
+ inflightFetchResponses.delete(inflightCacheKey);
681
+ });
682
+ publication.catch(() => void 0);
683
+ inflightResponse = {
684
+ response,
685
+ publication,
686
+ rateLimitBackoff
687
+ };
688
+ inflightFetchResponses.set(inflightCacheKey, inflightResponse);
689
+ }
690
+ if (notifyRateLimitBackoff) {
691
+ inflightResponse.rateLimitBackoff.observers.add(notifyRateLimitBackoff);
692
+ const latest = inflightResponse.rateLimitBackoff.latest;
693
+ if (latest && latest.resetAt > Date.now()) notifyRateLimitBackoff(latest);
694
+ }
695
+ try {
696
+ const { response, cacheable } = await (observerFailure ? Promise.race([inflightResponse.response, observerFailure]) : inflightResponse.response);
697
+ const result = deserializeFetchResponse(response, false, cache, cacheKey, sanitizeResponse);
698
+ if (coalesced) result.coalesced = true;
699
+ onResponsePrepared?.(result);
700
+ if (cacheable) {
701
+ await require_shared.waitForPromiseWithAbort(inflightResponse.publication, signal);
702
+ require_shared.throwIfAborted(signal);
703
+ } else await inflightResponse.publication;
704
+ return result;
705
+ } finally {
706
+ if (notifyRateLimitBackoff) inflightResponse.rateLimitBackoff.observers.delete(notifyRateLimitBackoff);
707
+ }
708
+ }
709
+ /**
710
+ * Enable caching for all provider calls (default behavior).
711
+ *
712
+ * @example
713
+ * ```typescript
714
+ * import { cache } from 'promptfoo';
715
+ * cache.enableCache();
716
+ * ```
717
+ */
718
+ function enableCache() {
719
+ enabled = true;
720
+ }
721
+ /**
722
+ * Disable caching. Provider calls will hit the API every time.
723
+ *
724
+ * Useful during development or testing when you want fresh results.
725
+ *
726
+ * @example
727
+ * ```typescript
728
+ * import { cache, evaluate } from 'promptfoo';
729
+ *
730
+ * cache.disableCache();
731
+ * const results = await evaluate(testSuite); // Always fresh
732
+ * cache.enableCache();
733
+ * ```
734
+ */
735
+ function disableCache() {
736
+ enabled = false;
737
+ }
738
+ /**
739
+ * Clear all cached results.
740
+ *
741
+ * Removes all cached provider responses. The cache will refetch on next access.
742
+ *
743
+ * @example
744
+ * ```typescript
745
+ * import { cache, evaluate } from 'promptfoo';
746
+ *
747
+ * await cache.clearCache();
748
+ * const results = await evaluate(testSuite); // Refetches all
749
+ * ```
750
+ */
751
+ async function clearCache() {
752
+ inflightFetchResponses.clear();
753
+ namespacedCacheInstances.clear();
754
+ const result = await getCacheInstance().clear();
755
+ claimedCacheKeys.clear();
756
+ if (cacheType === "disk") {
757
+ const cachePath = require_logger.getEnvString("PROMPTFOO_CACHE_PATH") || path.default.join(require_logger.getConfigDirectoryPath(), "cache");
758
+ fs.default.rmSync(path.default.join(cachePath, "claims"), {
759
+ force: true,
760
+ recursive: true
761
+ });
762
+ }
763
+ return result;
764
+ }
765
+ /**
766
+ * Check if caching is currently enabled.
767
+ *
768
+ * @returns true if cache is enabled, false otherwise
769
+ *
770
+ * @example
771
+ * ```typescript
772
+ * import { cache } from 'promptfoo';
773
+ *
774
+ * if (cache.isCacheEnabled()) {
775
+ * console.log('Cache is active');
776
+ * }
777
+ * ```
778
+ */
779
+ function isCacheEnabled() {
780
+ return getEffectiveCacheEnabled();
781
+ }
782
+ //#endregion
783
+ Object.defineProperty(exports, "cache_exports", {
784
+ enumerable: true,
785
+ get: function() {
786
+ return cache_exports;
787
+ }
788
+ });
789
+ Object.defineProperty(exports, "claimCacheKeyOnce", {
790
+ enumerable: true,
791
+ get: function() {
792
+ return claimCacheKeyOnce;
793
+ }
794
+ });
795
+ Object.defineProperty(exports, "disableCache", {
796
+ enumerable: true,
797
+ get: function() {
798
+ return disableCache;
799
+ }
800
+ });
801
+ Object.defineProperty(exports, "fetchWithCache", {
802
+ enumerable: true,
803
+ get: function() {
804
+ return fetchWithCache;
805
+ }
806
+ });
807
+ Object.defineProperty(exports, "getAbortSignalScopedKey", {
808
+ enumerable: true,
809
+ get: function() {
810
+ return getAbortSignalScopedKey;
811
+ }
812
+ });
813
+ Object.defineProperty(exports, "getCache", {
814
+ enumerable: true,
815
+ get: function() {
816
+ return getCache;
817
+ }
818
+ });
819
+ Object.defineProperty(exports, "getCacheClearGeneration", {
820
+ enumerable: true,
821
+ get: function() {
822
+ return getCacheClearGeneration;
823
+ }
824
+ });
825
+ Object.defineProperty(exports, "getCacheTtlMs", {
826
+ enumerable: true,
827
+ get: function() {
828
+ return getCacheTtlMs;
829
+ }
830
+ });
831
+ Object.defineProperty(exports, "getScopedCacheKey", {
832
+ enumerable: true,
833
+ get: function() {
834
+ return getScopedCacheKey;
835
+ }
836
+ });
837
+ Object.defineProperty(exports, "isCacheEnabled", {
838
+ enumerable: true,
839
+ get: function() {
840
+ return isCacheEnabled;
841
+ }
842
+ });
843
+ Object.defineProperty(exports, "withCacheEnabled", {
844
+ enumerable: true,
845
+ get: function() {
846
+ return withCacheEnabled;
847
+ }
848
+ });
849
+ Object.defineProperty(exports, "withCacheNamespace", {
850
+ enumerable: true,
851
+ get: function() {
852
+ return withCacheNamespace;
853
+ }
854
+ });
855
+
856
+ //# sourceMappingURL=cache-iG87oYan.cjs.map