promptfoo 0.121.5 → 0.121.7
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.
- package/dist/src/{ListApp-BRUsT43Y.js → ListApp-DLmM02JS.js} +1 -1
- package/dist/src/{accounts-CaLNYnf7.js → accounts-Ca7WIoPY.js} +12 -7
- package/dist/src/{accounts-CLJHCDDb.js → accounts-CjFnOPmb.js} +13 -8
- package/dist/src/{accounts-BIFntVWB.cjs → accounts-CmWzeD2d.cjs} +16 -10
- package/dist/src/{accounts-bnyHT7Ju.js → accounts-DanM1wq_.js} +12 -7
- package/dist/src/{agentic-utils-BclbiXiq.js → agentic-utils-CJ0j3fBi.js} +2 -2
- package/dist/src/{agentic-utils-B5krlibj.js → agentic-utils-DDEGRV9v.js} +2 -2
- package/dist/src/{agentic-utils-D2x0wGhB.cjs → agentic-utils-DvPWSUpb.cjs} +8 -7
- package/dist/src/{agentic-utils-Ba67xmgs.js → agentic-utils-TxUEMPYS.js} +2 -2
- package/dist/src/{agents-WULPVjbH.cjs → agents-B4sRuXg3.cjs} +7 -6
- package/dist/src/{agents-DhxWMCtH.js → agents-B8q7h_ek.js} +4 -4
- package/dist/src/{agents-BGqaTDnr.js → agents-CBgJvRkB.js} +20 -9
- package/dist/src/{agents-n6vPqV3i.js → agents-CYn2n3QP.js} +4 -4
- package/dist/src/{agents-BV9yFpXX.js → agents-D-vDNFx4.js} +20 -9
- package/dist/src/{agents-BYdMl1UE.js → agents-LrHuQqr1.js} +20 -9
- package/dist/src/{agents-emVcx3yh.js → agents-QGg76OF-.js} +2 -2
- package/dist/src/{agents-DiWmQYH9.cjs → agents-eHZ9nlgA.cjs} +21 -10
- package/dist/src/{aimlapi-uPGp0Zdo.js → aimlapi-CJEbQ0o6.js} +6 -6
- package/dist/src/{aimlapi-DR4pgeiC.js → aimlapi-D5HXzZ0s.js} +6 -6
- package/dist/src/{aimlapi-BzLjZI_m.cjs → aimlapi-T6HGNxNe.cjs} +7 -7
- package/dist/src/{aimlapi-BxqK9HF_.js → aimlapi-eYv3a_DK.js} +6 -6
- package/dist/src/app/app/tsconfig.app.tsbuildinfo +1 -1
- package/dist/src/app/assets/Report-BNHJKN35.js +1 -0
- package/dist/src/app/assets/index-BnT6P6sF.js +388 -0
- package/dist/src/app/assets/index-yhM8y1PP.css +1 -0
- package/dist/src/app/assets/{scroll-timeline-D9IT_e8Z.js → scroll-timeline-RpeTwOvs.js} +1 -1
- package/dist/src/app/assets/sync-5gq6fmG4.js +4 -0
- package/dist/src/app/assets/vendor-charts-BL9OMNU7.js +36 -0
- package/dist/src/app/assets/{vendor-markdown-Ch00wnNI.js → vendor-markdown-BYsQqn7Z.js} +10 -10
- package/dist/src/app/assets/{vendor-react-CVvmk1UB.js → vendor-react-CqWgVW6T.js} +2 -2
- package/dist/src/app/assets/{vendor-utils-BnEYbx2Q.js → vendor-utils-BHPO71pu.js} +1 -1
- package/dist/src/app/index.html +6 -6
- package/dist/src/{audio-Da8U9IS5.js → audio-BqnRvcWG.js} +3 -3
- package/dist/src/{audio-BvpTOArF.js → audio-CPMtV1yR.js} +3 -3
- package/dist/src/{audio-CScmnmEB.js → audio-DyiebVB3.js} +3 -3
- package/dist/src/{audio-C0vDeS0j.cjs → audio-FnxbEnSE.cjs} +4 -4
- package/dist/src/authoritativeMarkupInjection-BZIywVjG.js +74 -0
- package/dist/src/authoritativeMarkupInjection-DyAXAsSr.js +75 -0
- package/dist/src/authoritativeMarkupInjection-F2gBw0lN.cjs +74 -0
- package/dist/src/authoritativeMarkupInjection-QEQmFS83.js +74 -0
- package/dist/src/{base-BTux96b1.js → base-CKLo890h.js} +4 -3
- package/dist/src/{base-BOMaNEes.js → base-Co80MMCi.js} +4 -3
- package/dist/src/{base-Tw6uhH8K.cjs → base-DGJW48uz.cjs} +5 -4
- package/dist/src/{base-dYsl2hmL.js → base-E9I8zXjz.js} +4 -3
- package/dist/src/bestOfN-B3wNzjSB.js +137 -0
- package/dist/src/bestOfN-BBsO41z4.js +136 -0
- package/dist/src/bestOfN-CAwmg5UL.cjs +140 -0
- package/dist/src/bestOfN-_kTi8Bxe.js +136 -0
- package/dist/src/{blobs-B95F_7vE.cjs → blobs-B0977K1O.cjs} +7 -6
- package/dist/src/{blobs-D_gg8nbm.js → blobs-CeFdPn_T.js} +2 -2
- package/dist/src/{blobs-DjLby-uP.js → blobs-DODuTK-a.js} +2 -2
- package/dist/src/{blobs-BW4U31ue.js → blobs-Dwef1Ao1.js} +2 -2
- package/dist/src/{cache-DGg-yTZG.cjs → cache-CPGUA4Yl.cjs} +135 -25
- package/dist/src/cache-Cf7b4pWE.js +3 -0
- package/dist/src/{cache-Bzttsk0X.js → cache-DIXbtkNO.js} +125 -10
- package/dist/src/{cache-BI5BY7ey.js → cache-DpPWrkTE.js} +127 -11
- package/dist/src/{cache-Cr-qWIbP.js → cache-roFAE0cI.js} +125 -10
- package/dist/src/{chat-DChSH_Es.js → chat-CUCorGiL.js} +9 -9
- package/dist/src/{chat-DH97tVV9.cjs → chat-DG1wG4w0.cjs} +6 -6
- package/dist/src/{chat-Cx_LkwvZ.js → chat-Dabu84Br.js} +11 -11
- package/dist/src/{chat-BLOdH60v.js → chat-DqUFcWI0.js} +11 -11
- package/dist/src/{chat-vYqqv1gP.cjs → chat-DxTDQ83C.cjs} +14 -13
- package/dist/src/{chat-DG2LkwLq.js → chat-GmlolEwo.js} +4 -4
- package/dist/src/{chat-aMQZw6R7.js → chat-TP8Qifkh.js} +4 -4
- package/dist/src/{chat-D9nudO9b.js → chat-iwaM5UTQ.js} +4 -4
- package/dist/src/{chatkit-B8X34dQc.js → chatkit-B6DWi70Q.js} +3 -3
- package/dist/src/{chatkit-D44VyUyB.cjs → chatkit-BYveR48_.cjs} +6 -5
- package/dist/src/{chatkit-BXu42Qwt.js → chatkit-fARZwEfV.js} +3 -3
- package/dist/src/{chatkit-CbMRoeYw.js → chatkit-lb6FK02w.js} +1 -1
- package/dist/src/{claude-agent-sdk-BzNZeZ0N.js → claude-agent-sdk-BQNp_y-F.js} +209 -64
- package/dist/src/{claude-agent-sdk-BjriSVRZ.js → claude-agent-sdk-D5Jl0SDh.js} +210 -65
- package/dist/src/{claude-agent-sdk-BRq0bbIK.cjs → claude-agent-sdk-DH416NBD.cjs} +216 -70
- package/dist/src/{claude-agent-sdk-DYv_AJ8u.js → claude-agent-sdk-x1XJ1-pU.js} +210 -65
- package/dist/src/{cloud-Da0bofJd.js → cloud-D3DiFqH6.js} +2 -2
- package/dist/src/cloud-p96PA4MH.js +3 -0
- package/dist/src/{cloudflare-ai-CXC4b1EU.js → cloudflare-ai-B6NVI3ax.js} +4 -4
- package/dist/src/{cloudflare-ai-DJv5qnyb.cjs → cloudflare-ai-CEAW-xQa.cjs} +6 -6
- package/dist/src/{cloudflare-ai-CyBoIs1Q.js → cloudflare-ai-RFSojyXG.js} +4 -4
- package/dist/src/{cloudflare-ai-DGOwgexC.js → cloudflare-ai-r4tbYmWU.js} +4 -4
- package/dist/src/{cloudflare-gateway-D-dnkzCF.js → cloudflare-gateway-BCkLouto.js} +3 -3
- package/dist/src/{cloudflare-gateway-TJkVrZlB.js → cloudflare-gateway-BaZ4insB.js} +3 -3
- package/dist/src/{cloudflare-gateway-1sAoOyft.js → cloudflare-gateway-CF-Vb-2Z.js} +3 -3
- package/dist/src/{cloudflare-gateway-DKVjkDav.cjs → cloudflare-gateway-TJMLBj6I.cjs} +5 -5
- package/dist/src/{codex-app-server-CCe0TiDc.js → codex-app-server-B8KHEiF4.js} +5 -5
- package/dist/src/{codex-app-server-VMRnjZ68.cjs → codex-app-server-CnrLBCeA.cjs} +12 -11
- package/dist/src/{codex-app-server-CCLjqCh9.js → codex-app-server-DIXZ230V.js} +4 -4
- package/dist/src/{codex-app-server-CPW1LFwh.js → codex-app-server-Dd22dC_N.js} +5 -5
- package/dist/src/{codex-sdk-BgEFQ70r.js → codex-sdk-B6Wah8Pa.js} +5 -5
- package/dist/src/codex-sdk-BGjVAk23.js +3 -0
- package/dist/src/{codex-sdk-Bd8UbO9q.cjs → codex-sdk-CFF6gUyi.cjs} +18 -10
- package/dist/src/{codex-sdk-Bzb_TqX9.js → codex-sdk-CmQABzV3.js} +3 -3
- package/dist/src/{codex-sdk-DfvDTN33.js → codex-sdk-D2d54RL8.js} +5 -5
- package/dist/src/{cometapi-B5ImDlSm.js → cometapi-Bu9B8NUY.js} +7 -7
- package/dist/src/{cometapi-CCbpHkuF.js → cometapi-CtzNCHKu.js} +7 -7
- package/dist/src/{cometapi-BgAkuYCw.cjs → cometapi-DHCDlQUI.cjs} +8 -8
- package/dist/src/{cometapi-CC7hWxmX.js → cometapi-OBILPLlu.js} +7 -7
- package/dist/src/{completion-Vq_ad618.js → completion-CO2e1_62.js} +4 -4
- package/dist/src/{completion-DtQ72Bm3.cjs → completion-CSYfl2cd.cjs} +6 -6
- package/dist/src/{completion-2iuYVxwi.js → completion-DZNxcyfG.js} +5 -5
- package/dist/src/{completion-CrD6MQ93.js → completion-sNvCLTAP.js} +5 -5
- package/dist/src/constants-BjJV0cRr.js +6 -0
- package/dist/src/constants-DH5XYLKZ.js +7 -0
- package/dist/src/constants-DZGEFLsu.js +6 -0
- package/dist/src/constants-a2kYssQk.cjs +11 -0
- package/dist/src/{createHash-4gFQpDDv.js → createHash-BtbSX3mj.js} +1 -1
- package/dist/src/{createHash-Un4Q_huE.js → createHash-CGVzWdjj.js} +1 -1
- package/dist/src/{createHash-VvBIc-AW.cjs → createHash-CSiqnK5P.cjs} +2 -2
- package/dist/src/{createHash-DPpsZgFF.js → createHash-CgRvs4Fn.js} +1 -1
- package/dist/src/crescendo-BXEJK_bi.cjs +704 -0
- package/dist/src/crescendo-CU_Y2i-m.js +702 -0
- package/dist/src/crescendo-J1Xx4_zb.js +703 -0
- package/dist/src/crescendo-QiaSLW0d.js +701 -0
- package/dist/src/custom-BJfP00Bh.js +619 -0
- package/dist/src/custom-CZVn-1-r.js +620 -0
- package/dist/src/custom-Cqia7M0D.cjs +621 -0
- package/dist/src/custom-notggYVl.js +618 -0
- package/dist/src/{docker--3qzPa-6.js → docker-4D1eL6Gq.js} +5 -5
- package/dist/src/{docker-Dorv4_Dg.js → docker-BBv1WUDu.js} +5 -5
- package/dist/src/{docker-D3AY-5F5.cjs → docker-D06JUoe2.cjs} +6 -6
- package/dist/src/{docker-DCsCDvwM.js → docker-DdJQBxK9.js} +5 -5
- package/dist/src/{embedding-DNRvZwRN.js → embedding--UZVe4_7.js} +5 -5
- package/dist/src/{embedding-BXhN5lCH.cjs → embedding-BbrwopfX.cjs} +6 -6
- package/dist/src/{embedding-ChS1ivFS.js → embedding-Bi3rxrZF.js} +5 -5
- package/dist/src/{embedding-D_bI4NDq.js → embedding-C251p1-8.js} +4 -4
- package/dist/src/{errors-DFHe4L-n.js → errors-9PcUL8BC.js} +1 -1
- package/dist/src/{esm-B_rGuPTo.cjs → esm-BIKakvNa.cjs} +8 -7
- package/dist/src/{esm-BRkfNsYs.js → esm-BTK1W7lG.js} +1 -1
- package/dist/src/{esm-BX8fwlAO.js → esm-Bexx2PFc.js} +1 -1
- package/dist/src/{eval-DJ_4A-tr.js → eval-0VRANImH.js} +19 -19
- package/dist/src/{eval-BQPLBJbw.js → eval-DscR5iOM.js} +1 -1
- package/dist/src/{evalResult-pSvGWFMo.js → evalResult-2RRJvFyB.js} +18 -11
- package/dist/src/{evalResult-Cx-8OWkb.cjs → evalResult-CvtS8h8u.cjs} +29 -11
- package/dist/src/evalResult-DqzsS6_W.js +3 -0
- package/dist/src/{evalResult-D6P5I5il.js → evalResult-eUkJv9Ko.js} +17 -10
- package/dist/src/evaluator-DNdJF1Gv.js +3 -0
- package/dist/src/{evaluator-D-UIbbYq.js → evaluator-DRoiYB2q.js} +258 -132
- package/dist/src/evaluatorHelpers-BsYP_muT.js +511 -0
- package/dist/src/evaluatorHelpers-CRqTvSux.cjs +537 -0
- package/dist/src/evaluatorHelpers-DuqFFfq7.js +510 -0
- package/dist/src/{extractor-YlZbUMsL.js → extractor-BR7XAzAL.js} +5 -5
- package/dist/src/{extractor-Dxr2J_wK.cjs → extractor-BdxEtt3J.cjs} +6 -6
- package/dist/src/{extractor-DxyiFhPk.js → extractor-CIW3iN-b.js} +5 -5
- package/dist/src/{extractor-BM3jRERL.js → extractor-CxRtnaHl.js} +5 -5
- package/dist/src/{fetch-Y5qX_kST.js → fetch-BufrQtvR.js} +90 -26
- package/dist/src/{fetch-B6ch2nU2.js → fetch-DXUnXkVU.js} +86 -26
- package/dist/src/{fetch-NuqXW1Xb.cjs → fetch-Dw4XZHjj.cjs} +115 -32
- package/dist/src/{fetch-D9xxyC1p.js → fetch-It34O8Ur.js} +90 -26
- package/dist/src/fetch-_YgGd2qv.js +3 -0
- package/dist/src/{fileExtensions-D9h-8Wxg.cjs → fileExtensions-BhdwzYaD.cjs} +24 -1
- package/dist/src/{fileExtensions-BGh-W-HT.js → fileExtensions-CXRfY3Ss.js} +12 -2
- package/dist/src/{fileExtensions-DysCsxNG.js → fileExtensions-D4GCJ67J.js} +12 -2
- package/dist/src/{formatDuration-Ch4A7G3o.js → formatDuration-CMVNrYvE.js} +1 -1
- package/dist/src/{genaiTracer-BokHC-MW.cjs → genaiTracer-14nugQQx.cjs} +14 -2
- package/dist/src/{genaiTracer-C3ZPQU60.js → genaiTracer-BPVvltoW.js} +2 -2
- package/dist/src/{genaiTracer-DxODqT9e.js → genaiTracer-D18lYzhB.js} +2 -2
- package/dist/src/{genaiTracer-CFny3gOy.js → genaiTracer-jJKYsnjc.js} +2 -2
- package/dist/src/goat-Ckd3q3AY.js +467 -0
- package/dist/src/goat-Qgurm-NP.js +466 -0
- package/dist/src/goat-ghadEDdy.js +465 -0
- package/dist/src/goat-una6pZGP.cjs +469 -0
- package/dist/src/graders-BDT7dif6.js +3 -0
- package/dist/src/{graders-CgPn32yp.js → graders-BGP99PdK.js} +1017 -84
- package/dist/src/{graders-BoUqsCEm.js → graders-BX0f2tvS.js} +1022 -84
- package/dist/src/{graders-CwrbifOo.js → graders-C0nXU_ZP.js} +1020 -82
- package/dist/src/{graders-Bw1wk_21.cjs → graders-ClrU2fnd.cjs} +1085 -128
- package/dist/src/hydra-BSNZZm2M.js +543 -0
- package/dist/src/hydra-BxdG4nkg.js +541 -0
- package/dist/src/hydra-DE4xWwyc.js +542 -0
- package/dist/src/hydra-DrJttnvw.cjs +542 -0
- package/dist/src/image-B4oBtu6J.js +443 -0
- package/dist/src/{image-Dr_3I3nK.js → image-BN-hjLL9.js} +3 -3
- package/dist/src/{image-BeWaInPF.js → image-B_fPIwdg.js} +3 -3
- package/dist/src/image-BvUAW344.js +442 -0
- package/dist/src/image-Cvjwx1uY.js +442 -0
- package/dist/src/{image-D10dNAav.cjs → image-DfVCGPbI.cjs} +4 -4
- package/dist/src/{image-qjO6FWPs.js → image-QzmydkiG.js} +3 -3
- package/dist/src/image-X0oY4350.cjs +465 -0
- package/dist/src/index.cjs +688 -313
- package/dist/src/index.d.cts +3152 -1617
- package/dist/src/index.d.ts +3151 -1616
- package/dist/src/index.js +582 -223
- package/dist/src/indirectWebPwn-02ZIghCS.js +259 -0
- package/dist/src/indirectWebPwn-BJ22AbQa.cjs +397 -0
- package/dist/src/indirectWebPwn-CbjUG0rh.js +385 -0
- package/dist/src/indirectWebPwn-CfQJt3gk.cjs +260 -0
- package/dist/src/indirectWebPwn-DBQhOjoD.js +260 -0
- package/dist/src/indirectWebPwn-OsXnKejv.js +259 -0
- package/dist/src/indirectWebPwn-tNx9OZ35.js +385 -0
- package/dist/src/indirectWebPwn-uyWdHx04.js +386 -0
- package/dist/src/inputVariables-B0qUChbV.js +467 -0
- package/dist/src/inputVariables-DUGMb9Ka.js +464 -0
- package/dist/src/inputVariables-DXFdi7AI.js +468 -0
- package/dist/src/inputVariables-Dq9W-Z3a.cjs +475 -0
- package/dist/src/{interactiveCheck-CCICw2cy.js → interactiveCheck-C4QlIuoR.js} +1 -1
- package/dist/src/{invariant-kfQ8Bu82.cjs → invariant-QtnLD03y.cjs} +1 -1
- package/dist/src/iterative-CpU6i2As.js +490 -0
- package/dist/src/iterative-DJQEQpG3.js +491 -0
- package/dist/src/iterative-DQBuWM-j.cjs +493 -0
- package/dist/src/iterative-FTS4Bz67.js +492 -0
- package/dist/src/iterativeImage-BUABMVOA.js +413 -0
- package/dist/src/iterativeImage-ByFWkxax.cjs +415 -0
- package/dist/src/iterativeImage-BzUapOUi.js +414 -0
- package/dist/src/iterativeImage-Doz8mgxF.js +413 -0
- package/dist/src/iterativeMeta-B3YiAOc8.js +386 -0
- package/dist/src/iterativeMeta-C7APE_P1.js +385 -0
- package/dist/src/iterativeMeta-CSS8M6Ds.cjs +385 -0
- package/dist/src/iterativeMeta-DgoQ7bLh.js +384 -0
- package/dist/src/iterativeTree-B5zxBBSW.js +769 -0
- package/dist/src/iterativeTree-CNyIk0Yn.js +768 -0
- package/dist/src/iterativeTree-CPMF10ve.cjs +771 -0
- package/dist/src/iterativeTree-DvZ7GBwt.js +770 -0
- package/dist/src/{knowledgeBase-Dr3Kib7F.js → knowledgeBase-BadkINlJ.js} +24 -10
- package/dist/src/{knowledgeBase-BBETc5-S.js → knowledgeBase-Bi_8sV-H.js} +23 -9
- package/dist/src/{knowledgeBase-CzAi2rUI.js → knowledgeBase-CkMljjdg.js} +24 -10
- package/dist/src/{knowledgeBase-C8qOo26M.cjs → knowledgeBase-DUh34xba.cjs} +25 -11
- package/dist/src/{litellm-DRc4qWfc.js → litellm-BKBo0jpC.js} +4 -4
- package/dist/src/{litellm-BLSiANhk.js → litellm-BXyn5kZK.js} +4 -4
- package/dist/src/{litellm-DQGo_juI.js → litellm-CNcfbCfa.js} +4 -4
- package/dist/src/{litellm-CaUmV7Mk.cjs → litellm-CtAr7bKG.cjs} +5 -5
- package/dist/src/{logger-COuQb2xB.cjs → logger-cfNpzI4o.cjs} +13 -55
- package/dist/src/{luma-ray-B-tNZzqW.js → luma-ray-BMX1iEB6.js} +5 -5
- package/dist/src/{luma-ray-CtS3OlGq.js → luma-ray-CR5TSpp4.js} +5 -5
- package/dist/src/{luma-ray-if-Ml4R9.cjs → luma-ray-D3FUc2K3.cjs} +9 -8
- package/dist/src/{luma-ray-PJJgUjOc.js → luma-ray-OEMmS1RB.js} +5 -5
- package/dist/src/main.js +704 -208
- package/dist/src/memoryPoisoning-CM83NWYl.js +107 -0
- package/dist/src/memoryPoisoning-D8h9gXJF.js +106 -0
- package/dist/src/memoryPoisoning-Dp-btinn.cjs +106 -0
- package/dist/src/memoryPoisoning-cLuCoTuJ.js +106 -0
- package/dist/src/{messages-CewuNcNS.js → messages-BabO-cX8.js} +17 -9
- package/dist/src/{messages-BnsVHUnm.cjs → messages-DBPir0TQ.cjs} +24 -15
- package/dist/src/{messages-B9dSjrNf.js → messages-DGUlSNU7.js} +18 -10
- package/dist/src/{messages-CI69Lasb.js → messages-vsE_-Lv0.js} +18 -10
- package/dist/src/{meteor-CeGo0Lu2.js → meteor--TZYICTI.js} +1 -1
- package/dist/src/{meteor-BBGcGeCa.cjs → meteor-CR226f7Z.cjs} +2 -2
- package/dist/src/{meteor-Wc_aUVvu.js → meteor-Cl_yd7rJ.js} +1 -1
- package/dist/src/{meteor-BKTM-7KS.js → meteor-Dce-_zGQ.js} +1 -1
- package/dist/src/mischievousUser-0l8GD7Dp.js +46 -0
- package/dist/src/mischievousUser-BUOP9W5r.js +46 -0
- package/dist/src/mischievousUser-frFYKxu6.js +47 -0
- package/dist/src/mischievousUser-olGgHIVR.cjs +46 -0
- package/dist/src/{modelslab-BkapYJhh.cjs → modelslab-CNV5bMSk.cjs} +7 -7
- package/dist/src/{modelslab-zpz9JcK0.js → modelslab-Cogmu4mG.js} +6 -6
- package/dist/src/{modelslab-D73OnKSx.js → modelslab-Dzst7VTU.js} +6 -6
- package/dist/src/{modelslab-BCLOtfek.js → modelslab-EyDczZ5A.js} +6 -6
- package/dist/src/{nova-reel-B8F_TK5w.js → nova-reel-BGPNBOMS.js} +5 -5
- package/dist/src/{nova-reel-Bx0NFV2f.js → nova-reel-B_5NKFu1.js} +5 -5
- package/dist/src/{nova-reel-CNGJTLtG.js → nova-reel-C4eUJGse.js} +5 -5
- package/dist/src/{nova-reel-DkT7tnoB.cjs → nova-reel-CjJRxI1X.cjs} +9 -8
- package/dist/src/{nova-sonic-BaXRN1cr.js → nova-sonic-BNGmgfFz.js} +3 -3
- package/dist/src/{nova-sonic-BeTRaFOh.js → nova-sonic-ChPlh5na.js} +2 -2
- package/dist/src/{nova-sonic-CL7Zqv0G.js → nova-sonic-CrV0iaY_.js} +3 -3
- package/dist/src/{nova-sonic-YT426juD.cjs → nova-sonic-DuOG9Aun.cjs} +5 -4
- package/dist/src/{openai-Cy1XLs0c.cjs → openai-C3uXv8wS.cjs} +2 -2
- package/dist/src/{openai-BT-JvDse.js → openai-CJrsh9n4.js} +1 -1
- package/dist/src/{openai-D4fxGvRx.js → openai-zgwBb4Ff.js} +1 -1
- package/dist/src/{openclaw-Bq7RVR3k.js → openclaw-BIHlu_36.js} +9 -8
- package/dist/src/{openclaw-DObVgpjC.js → openclaw-CF7fMido.js} +9 -8
- package/dist/src/{openclaw-DUBZP3GL.cjs → openclaw-Dphc01BY.cjs} +17 -15
- package/dist/src/{openclaw-DA8U4DsD.js → openclaw-zIJAsz3P.js} +9 -8
- package/dist/src/{opencode-sdk-BB40Wir1.js → opencode-sdk-B3vlPLsp.js} +38 -3
- package/dist/src/{opencode-sdk-ChdK7F7z.js → opencode-sdk-D05JSgMQ.js} +39 -4
- package/dist/src/{opencode-sdk-CeqiOcOU.cjs → opencode-sdk-DoY6GbWw.cjs} +45 -9
- package/dist/src/{opencode-sdk-BM1UAIv1.js → opencode-sdk-sRKYHGoI.js} +39 -4
- package/dist/src/{otlpReceiver-UYMQx3sy.js → otlpReceiver--gTpSagc.js} +119 -3
- package/dist/src/{otlpReceiver-C6thJRXi.js → otlpReceiver-B2eaKC8C.js} +118 -2
- package/dist/src/{otlpReceiver-CcdIikOu.js → otlpReceiver-BXjcRqAM.js} +119 -3
- package/dist/src/{otlpReceiver-DNSQj6bf.cjs → otlpReceiver-CvJdBGSc.cjs} +125 -7
- package/dist/src/packageParser--MWTSrPW.js +36 -0
- package/dist/src/packageParser-CgE-ziRo.js +35 -0
- package/dist/src/packageParser-QoCS1FMl.cjs +54 -0
- package/dist/src/packageParser-hwwSGnAZ.js +35 -0
- package/dist/src/processShim-BBxt7LKO.js +95 -0
- package/dist/src/processShim-BcGzU8fY.js +94 -0
- package/dist/src/processShim-C_z3aRvF.js +94 -0
- package/dist/src/processShim-DSY9BV2T.cjs +98 -0
- package/dist/src/promptLength-0qIHyhA5.js +71 -0
- package/dist/src/promptLength-4X-Wd8PG.js +72 -0
- package/dist/src/promptLength-B9nZEfO6.js +71 -0
- package/dist/src/promptLength-BbBbDHNj.cjs +94 -0
- package/dist/src/promptfoo-BDrfT30-.js +180 -0
- package/dist/src/promptfoo-Cm4hiy1Y.js +180 -0
- package/dist/src/promptfoo-Rjp-MeBb.js +181 -0
- package/dist/src/promptfoo-b-baRMj-.cjs +205 -0
- package/dist/src/prompts-BYMtqPCw.js +259 -0
- package/dist/src/prompts-C-bqE1Yp.js +260 -0
- package/dist/src/prompts-Cp_Qx5Ml.js +270 -0
- package/dist/src/prompts-DHhQsANy.js +259 -0
- package/dist/src/prompts-D_QpZ2Dm.js +271 -0
- package/dist/src/prompts-hNvWBD3z.cjs +284 -0
- package/dist/src/prompts-huDVH2CI.js +270 -0
- package/dist/src/prompts-p78Hul5i.cjs +289 -0
- package/dist/src/{providerRegistry-BESeALrr.cjs → providerRegistry-CZO_w7ue.cjs} +2 -2
- package/dist/src/{providerRegistry-DoACwqhD.js → providerRegistry-DHcFiVWX.js} +1 -1
- package/dist/src/{providerRegistry-PMsleEzs.js → providerRegistry-ReCd0sFa.js} +1 -1
- package/dist/src/{providers-DT-GtF2t.js → providers-B9KzWxAX.js} +739 -11919
- package/dist/src/{providers-DRrerKra.js → providers-BCCz6_IX.js} +813 -11944
- package/dist/src/{providers-eDShy16E.cjs → providers-BDVVIQM6.cjs} +787 -12132
- package/dist/src/{providers-Ctcc592x.js → providers-BYAn82cf.js} +1 -1
- package/dist/src/{providers-CJh7iriU.js → providers-DVYRZP4E.js} +746 -11866
- package/dist/src/{pythonUtils-C4tltmIn.js → pythonUtils-CLCgQ9tt.js} +1 -1
- package/dist/src/{pythonUtils-DNqbnRdx.js → pythonUtils-CgYxeSmO.js} +2 -2
- package/dist/src/{pythonUtils-CoLaCwNY.cjs → pythonUtils-Cokhluq3.cjs} +7 -6
- package/dist/src/{pythonUtils-DMO68Jg7.js → pythonUtils-D0BYebvX.js} +2 -2
- package/dist/src/{quiverai-Bpx6MZ7T.cjs → quiverai-BAp6iTZD.cjs} +4 -4
- package/dist/src/{quiverai-CPKhWgaT.js → quiverai-BvIhI_0l.js} +3 -3
- package/dist/src/{quiverai-BSS9a7wV.js → quiverai-CdTWPe-A.js} +3 -3
- package/dist/src/{quiverai-Bk1KrvL6.js → quiverai-Cv7rJKDz.js} +3 -3
- package/dist/src/registry-BUJrgjwv.js +124 -0
- package/dist/src/registry-DXm1t_x0.js +125 -0
- package/dist/src/registry-Dp5EqoXc.js +124 -0
- package/dist/src/registry-KCVF1CFC.cjs +124 -0
- package/dist/src/{server-ByxbqAcQ.js → remoteGeneration-B1_XsKXU.js} +16 -147
- package/dist/src/{server-gyd6d4Hc.js → remoteGeneration-COpWcmWd.js} +15 -108
- package/dist/src/{server-BEECpeGG.cjs → remoteGeneration-DS9N3pgB.cjs} +30 -119
- package/dist/src/remoteGeneration-DsaSwmG2.js +217 -0
- package/dist/src/render-BNTrbmBw.cjs +384 -0
- package/dist/src/render-CSP99NLm.js +348 -0
- package/dist/src/render-DFfDeYUK.js +347 -0
- package/dist/src/{render-nj-UaPdn.js → render-DznWrxGO.js} +2 -2
- package/dist/src/render-_6ur1fhE.js +347 -0
- package/dist/src/resourceAttributes-D1jP3kL5.js +17 -0
- package/dist/src/resourceAttributes-DQbBB--2.js +16 -0
- package/dist/src/resourceAttributes-ephgOvdR.cjs +27 -0
- package/dist/src/resourceAttributes-v6-I67fn.js +16 -0
- package/dist/src/{responses-CF-ayauu.cjs → responses-1UFFF9N_.cjs} +12 -11
- package/dist/src/{responses-B8haB-mD.js → responses-B3W2JvOQ.js} +9 -9
- package/dist/src/{responses-1ztiVYsx.js → responses-B6ktc3Ra.js} +7 -7
- package/dist/src/{responses-BiaBguAu.js → responses-URRzV8qE.js} +9 -9
- package/dist/src/rolldown-runtime-D_mwlA32.cjs +43 -0
- package/dist/src/rubyUtils-BYVlQ94c.js +3 -0
- package/dist/src/{rubyUtils-CIQFnVz4.js → rubyUtils-CXlFM2rR.js} +2 -2
- package/dist/src/{rubyUtils-BI0p46eZ.js → rubyUtils-CnlW8AYb.js} +2 -2
- package/dist/src/{rubyUtils-DoifqkiA.cjs → rubyUtils-CqUWBZAt.cjs} +16 -26
- package/dist/src/{rubyUtils-DGnoCYL2.js → rubyUtils-DdGojpfv.js} +1 -1
- package/dist/src/runtimeTransform-BJOpL9Yc.js +142 -0
- package/dist/src/runtimeTransform-Dgh_D7DU.js +143 -0
- package/dist/src/runtimeTransform-DigbjU1r.js +142 -0
- package/dist/src/runtimeTransform-ON3YYILw.cjs +147 -0
- package/dist/src/{sagemaker-ClS_NB07.js → sagemaker-CujrzP1a.js} +61 -50
- package/dist/src/{sagemaker-ljtY12VM.cjs → sagemaker-DzffAqo_.cjs} +65 -53
- package/dist/src/{sagemaker-C5T60MKf.js → sagemaker-vhtSV7JI.js} +61 -50
- package/dist/src/{sagemaker-BDLeW29y.js → sagemaker-yr1QKeBs.js} +61 -50
- package/dist/src/{scanner-nOCWNIXa.js → scanner-DS0109SS.js} +6 -6
- package/dist/src/server/index.js +4147 -449
- package/dist/src/server-B8rqV126.cjs +126 -0
- package/dist/src/server-BaLytskk.js +3 -0
- package/dist/src/server-CMJD10J4.js +107 -0
- package/dist/src/server-Ddp8GNMp.js +146 -0
- package/dist/src/server-DhMHosWj.js +182 -0
- package/dist/src/shared-7pmVZLNO.js +1334 -0
- package/dist/src/shared-9WHQ1oNE.js +1335 -0
- package/dist/src/{fileExtensions-8CjoL7vB.js → shared-BoG7qLMv.js} +12 -2
- package/dist/src/shared-D6IjElRI.js +1334 -0
- package/dist/src/shared-WkgnDkcg.cjs +1436 -0
- package/dist/src/{signal-DTtUuU3l.js → signal-CSurUUyV.js} +2 -2
- package/dist/src/simulatedUser-C9aQObBI.js +222 -0
- package/dist/src/simulatedUser-Cu601Dd4.cjs +227 -0
- package/dist/src/simulatedUser-U_qAHnuB.js +222 -0
- package/dist/src/simulatedUser-p3tACcmw.js +223 -0
- package/dist/src/{slack-Bamy_7te.js → slack-Bapo-7_8.js} +1 -1
- package/dist/src/{slack-BLlsDpfG.cjs → slack-DMC1QVEg.cjs} +3 -2
- package/dist/src/{slack-BPYLQLgb.js → slack-DTEFhrMn.js} +1 -1
- package/dist/src/{slack-4zZX1OKP.js → slack-k-_CP84Q.js} +1 -1
- package/dist/src/storage-BU4qcnOb.js +875 -0
- package/dist/src/storage-CA-v9V2v.cjs +911 -0
- package/dist/src/storage-CD-GWAdx.js +822 -0
- package/dist/src/storage-QdU-SmvD.js +834 -0
- package/dist/src/{store-2K0kDi80.cjs → store-B2NDDooM.cjs} +60 -24
- package/dist/src/{store-CPh25336.js → store-DKd5592Q.js} +50 -19
- package/dist/src/{store-BPkzEyFM.js → store-HpopRVzl.js} +50 -19
- package/dist/src/store-IbiRIF3k.js +3 -0
- package/dist/src/strategies-7CS3Alao.cjs +2360 -0
- package/dist/src/strategies-CiSeroPH.js +2331 -0
- package/dist/src/strategies-DRJjGTIY.js +2333 -0
- package/dist/src/{tables-WgdUZ8Ck.js → tables-CRSXQ2Ke.js} +2 -2
- package/dist/src/{tables-BMSOS2Gg.js → tables-CxjU7bBd.js} +2 -2
- package/dist/src/{tables-CXbaZ9y1.cjs → tables-DBIJU0WE.cjs} +6 -5
- package/dist/src/{tables-NlvH23ky.js → tables-DafUHOeh.js} +2 -2
- package/dist/src/{telemetry-DWdGHvEf.js → telemetry-00ezXr_t.js} +4 -4
- package/dist/src/telemetry-ByPqDcKC.js +3 -0
- package/dist/src/{telemetry-CEQxGnMZ.cjs → telemetry-CJ7FnCsc.cjs} +15 -9
- package/dist/src/{telemetry--iqaGyaS.js → telemetry-DmXYcJNV.js} +4 -4
- package/dist/src/{telemetry-CgdVGV8N.js → telemetry-DwX9XUN5.js} +4 -4
- package/dist/src/{text-DDQP0tuQ.js → text-CZr46tp_.js} +1 -1
- package/dist/src/{text-D4lz-Jg_.js → text-Db-Wt2u2.js} +1 -1
- package/dist/src/{text-NWvfMfkF.js → text-DwYK5EBn.js} +1 -1
- package/dist/src/{text-BiNME7QG.cjs → text-nywWsRBM.cjs} +1 -1
- package/dist/src/{tokenUsageUtils-2wIvAhB3.js → tokenUsageUtils-CDet74yk.js} +1 -1
- package/dist/src/{tokenUsageUtils-4c780gFd.js → tokenUsageUtils-CmnQ0G2m.js} +1 -1
- package/dist/src/{tokenUsageUtils-C9odhsbW.cjs → tokenUsageUtils-_B-P8IAi.cjs} +1 -1
- package/dist/src/toolAttributes-BAjwcBf0.cjs +103 -0
- package/dist/src/toolAttributes-COVgDrBG.js +87 -0
- package/dist/src/toolAttributes-DJ9ZEKXD.js +86 -0
- package/dist/src/tracingOptions-BnwKCkSB.js +221 -0
- package/dist/src/tracingOptions-Chi74lOD.js +219 -0
- package/dist/src/tracingOptions-DrbSFaKy.cjs +249 -0
- package/dist/src/tracingOptions-ji2OuXbT.js +220 -0
- package/dist/src/{transcription-84t4ALo2.js → transcription-B8uIgCYX.js} +5 -5
- package/dist/src/{transcription-Bm2emLmJ.js → transcription-CfU5loSq.js} +5 -5
- package/dist/src/{transcription-D7Q0vJsh.js → transcription-Dkd22_4K.js} +4 -4
- package/dist/src/{transcription-CZ4LG5hQ.cjs → transcription-mzuf18Mq.cjs} +9 -8
- package/dist/src/{transform-DtooZqYY.js → transform-BIMynQsA.js} +8 -8
- package/dist/src/transform-BnSTnFlp.js +187 -0
- package/dist/src/transform-BnSXWmU_2.cjs +221 -0
- package/dist/src/transform-CGt7Kt3y2.js +186 -0
- package/dist/src/transform-CrPGTsij.js +186 -0
- package/dist/src/{transform-Dg4LcO1Y.cjs → transform-DhNkAUs8.cjs} +12 -11
- package/dist/src/{transform-_DpNB4qp.js → transform-DmvYBRll.js} +8 -8
- package/dist/src/{transform-B-b6Cq-q.js → transform-EtD4jAWi.js} +8 -8
- package/dist/src/{transformersAvailability-lvCCvuPT.js → transformersAvailability-0ThtPved.js} +1 -1
- package/dist/src/transformersAvailability-BYydDE5U.js +35 -0
- package/dist/src/{transformersAvailability-rJGPccjr.js → transformersAvailability-BvyU9vDD.js} +1 -1
- package/dist/src/{transformersAvailability-B22swDxr.cjs → transformersAvailability-BytPvKUW.cjs} +1 -1
- package/dist/src/{types-BVH9hjgW.js → types-BFevViUY.js} +113 -19
- package/dist/src/{types-BDjGOq4E.js → types-BJQBBPTP.js} +113 -19
- package/dist/src/{types-CgG2rKiW.cjs → types-CxJvaY2S.cjs} +211 -28
- package/dist/src/{types-DNRZVOue.js → types-D6glLbdF.js} +125 -26
- package/dist/src/{util-DFPeFkiV.js → util--WMgw7wM.js} +28 -8
- package/dist/src/{util-C-kmRosx.js → util-5WnCSb0h.js} +9 -7
- package/dist/src/{util-A5_ZsQUn.cjs → util-BSIuSLVK.cjs} +12 -9
- package/dist/src/{util-Dub0f_ej.js → util-Bx677_k2.js} +17 -10
- package/dist/src/util-CN8om2rz.cjs +386 -0
- package/dist/src/{util-DN0-b81k.js → util-CoQWM76y.js} +28 -8
- package/dist/src/util-DNl96nNs.js +327 -0
- package/dist/src/{util-BQOCAHQC.js → util-DURocbYR.js} +46 -11
- package/dist/src/util-Df8YMvS1.js +327 -0
- package/dist/src/{util-BVXcTwXu.js → util-DiQ3QvBB.js} +28 -8
- package/dist/src/{util-3pBZZb_H.js → util-I-Rf-KaD.js} +45 -10
- package/dist/src/{util-Dpmm_dAI.cjs → util-IYzs5Y04.cjs} +33 -7
- package/dist/src/{util-BlFVL0UF.js → util-LKTmNsMQ.js} +9 -7
- package/dist/src/{util-DvpHnLt0.cjs → util-SPsvFONY.cjs} +29 -21
- package/dist/src/{util-B9CNhyac.js → util-efByNxcr.js} +9 -7
- package/dist/src/util-kDURhgJW.js +328 -0
- package/dist/src/{utils-BUMN8orw.js → utils-B0lzitHZ.js} +2 -2
- package/dist/src/{utils-kt7lv30R.js → utils-BFOh20Gb.js} +2 -2
- package/dist/src/{utils-o8S5huU2.js → utils-BGY69tk_.js} +2 -2
- package/dist/src/{utils-DkVeShIB.cjs → utils-Ve6kuJsa.cjs} +3 -3
- package/dist/src/{version-CbuBKu2U.js → version-BK20a4sw.js} +2 -2
- package/dist/src/{version-D9zu9FWB.cjs → version-BWCSaByA.cjs} +2 -2
- package/dist/src/{version-CbpiUINz.js → version-eRkNuGv8.js} +2 -2
- package/dist/src/{version-0frU0UTr.js → version-lpHV_53E.js} +2 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +48 -22
- package/dist/src/app/assets/Report-vjzrbgce.js +0 -1
- package/dist/src/app/assets/index-B3NQ8HTd.js +0 -385
- package/dist/src/app/assets/index-Cli2yAXv.css +0 -1
- package/dist/src/app/assets/sync-IjzpWrOE.js +0 -4
- package/dist/src/app/assets/vendor-charts-BNdH8TCw.js +0 -36
- package/dist/src/cache-BRkhlH3k.cjs +0 -3
- package/dist/src/cache-BlC6aeJ0.js +0 -3
- package/dist/src/cloud-CoD5OacT.js +0 -3
- package/dist/src/codex-sdk-1jm_qPHf.js +0 -3
- package/dist/src/codex-sdk-Danroptg.cjs +0 -2
- package/dist/src/evalResult-BBJAHAtw.cjs +0 -2
- package/dist/src/evalResult-BBK58h2B.js +0 -3
- package/dist/src/evalResult-spPqh1G_.js +0 -2
- package/dist/src/evaluator-DgLKaZk8.js +0 -3
- package/dist/src/fetch-8viavNv8.js +0 -3
- package/dist/src/graders-C84JI-m5.js +0 -2
- package/dist/src/graders-CBbd0K0Q.cjs +0 -2
- package/dist/src/graders-CbQqpHSN.js +0 -3
- package/dist/src/graders-DS42d3ZG.js +0 -2
- package/dist/src/image-BmilRNqO.js +0 -258
- package/dist/src/image-CxJoa3aW.cjs +0 -280
- package/dist/src/image-DsGRlkh7.js +0 -257
- package/dist/src/image-a_SGUobh.js +0 -257
- package/dist/src/providers-BuyzKt7C.js +0 -2
- package/dist/src/providers-C7lNVBjX.cjs +0 -3
- package/dist/src/providers-CCE2COJi2.js +0 -2
- package/dist/src/render-7uNJ2V14.js +0 -135
- package/dist/src/render-DlscvAUJ.js +0 -135
- package/dist/src/render-eui5p5mL.js +0 -136
- package/dist/src/render-tG6ir9_g.cjs +0 -165
- package/dist/src/rubyUtils-4hjGxvju.js +0 -3
- package/dist/src/rubyUtils-CO-tuszQ.cjs +0 -2
- package/dist/src/server-ByiF3qlg.js +0 -386
- package/dist/src/server-C0XKRNB_.cjs +0 -2
- package/dist/src/server-C_15p79-.js +0 -3
- package/dist/src/store-2OXm_eBY.js +0 -240
- package/dist/src/store-BELqNwvz.js +0 -3
- package/dist/src/store-uQZ4AjPe.cjs +0 -2
- package/dist/src/telemetry-DjNoC_n3.cjs +0 -2
- package/dist/src/telemetry-ZdPZc0fm.js +0 -3
- package/dist/src/transform-BQt0BeAW.js +0 -3
- package/dist/src/transform-Bq5oqC0s.cjs +0 -2
- package/dist/src/transform-C9izGX54.cjs +0 -228
- package/dist/src/transform-CwbAZ84V.js +0 -216
- package/dist/src/transform-DzCF-wqV.js +0 -213
- package/dist/src/transform-eGiUAv86.js +0 -216
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
const
|
|
2
|
-
const
|
|
1
|
+
const require_rolldown_runtime = require("./rolldown-runtime-D_mwlA32.cjs");
|
|
2
|
+
const require_logger = require("./logger-cfNpzI4o.cjs");
|
|
3
|
+
const require_fetch = require("./fetch-Dw4XZHjj.cjs");
|
|
4
|
+
const require_createHash = require("./createHash-CSiqnK5P.cjs");
|
|
3
5
|
let fs = require("fs");
|
|
4
|
-
fs =
|
|
6
|
+
fs = require_rolldown_runtime.__toESM(fs, 1);
|
|
5
7
|
let path = require("path");
|
|
6
|
-
path =
|
|
8
|
+
path = require_rolldown_runtime.__toESM(path, 1);
|
|
7
9
|
let node_async_hooks = require("node:async_hooks");
|
|
8
10
|
let cache_manager = require("cache-manager");
|
|
9
11
|
let keyv = require("keyv");
|
|
@@ -41,12 +43,13 @@ function isTransientConnectionError(error) {
|
|
|
41
43
|
}
|
|
42
44
|
//#endregion
|
|
43
45
|
//#region src/cache.ts
|
|
44
|
-
var cache_exports = /* @__PURE__ */
|
|
46
|
+
var cache_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
|
|
45
47
|
clearCache: () => clearCache,
|
|
46
48
|
disableCache: () => disableCache,
|
|
47
49
|
enableCache: () => enableCache,
|
|
48
50
|
fetchWithCache: () => fetchWithCache,
|
|
49
51
|
getCache: () => getCache,
|
|
52
|
+
getScopedCacheKey: () => getScopedCacheKey,
|
|
50
53
|
isCacheEnabled: () => isCacheEnabled,
|
|
51
54
|
withCacheNamespace: () => withCacheNamespace
|
|
52
55
|
});
|
|
@@ -162,6 +165,120 @@ function withCacheNamespace(namespace, fn) {
|
|
|
162
165
|
return cacheNamespaceStorage.run({ namespace: scopedNamespace }, fn);
|
|
163
166
|
}
|
|
164
167
|
const inflightFetchResponses = /* @__PURE__ */ new Map();
|
|
168
|
+
const IGNORED_FETCH_CACHE_OPTION_KEYS = new Set(["method", "signal"]);
|
|
169
|
+
const abortSignalIds = /* @__PURE__ */ new WeakMap();
|
|
170
|
+
let nextAbortSignalId = 0;
|
|
171
|
+
function getHeadersForCacheKey(url, options) {
|
|
172
|
+
const headers = new Headers(require_fetch.getFetchWithProxyHeaders(url, options));
|
|
173
|
+
if (require_fetch.isPromptfooCloudApiHost(url)) {
|
|
174
|
+
const token = require_fetch.cloudConfig.getApiKey();
|
|
175
|
+
if (token) headers.set("Authorization", `Bearer ${token}`);
|
|
176
|
+
}
|
|
177
|
+
return Array.from(headers.entries()).sort(([nameA, valueA], [nameB, valueB]) => {
|
|
178
|
+
const nameComparison = nameA.localeCompare(nameB);
|
|
179
|
+
return nameComparison === 0 ? valueA.localeCompare(valueB) : nameComparison;
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
function hashFetchCacheKey(identity) {
|
|
183
|
+
return require_createHash.sha256(JSON.stringify(identity));
|
|
184
|
+
}
|
|
185
|
+
function hashBytesForCacheKey(bytes) {
|
|
186
|
+
const buffer = ArrayBuffer.isView(bytes) ? Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength) : Buffer.from(bytes);
|
|
187
|
+
return {
|
|
188
|
+
byteLength: buffer.byteLength,
|
|
189
|
+
sha256: require_createHash.sha256(buffer)
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
function getBodyForFetchCacheKey(body) {
|
|
193
|
+
if (body == null) return {
|
|
194
|
+
cacheable: true,
|
|
195
|
+
identity: void 0
|
|
196
|
+
};
|
|
197
|
+
if (typeof body === "string") return {
|
|
198
|
+
cacheable: true,
|
|
199
|
+
identity: {
|
|
200
|
+
type: "string",
|
|
201
|
+
value: body
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
if (typeof URLSearchParams !== "undefined" && body instanceof URLSearchParams) return {
|
|
205
|
+
cacheable: true,
|
|
206
|
+
identity: {
|
|
207
|
+
type: "url-search-params",
|
|
208
|
+
value: body.toString()
|
|
209
|
+
}
|
|
210
|
+
};
|
|
211
|
+
if (body instanceof ArrayBuffer) return {
|
|
212
|
+
cacheable: true,
|
|
213
|
+
identity: {
|
|
214
|
+
type: "array-buffer",
|
|
215
|
+
...hashBytesForCacheKey(body)
|
|
216
|
+
}
|
|
217
|
+
};
|
|
218
|
+
if (ArrayBuffer.isView(body)) return {
|
|
219
|
+
cacheable: true,
|
|
220
|
+
identity: {
|
|
221
|
+
type: body.constructor.name,
|
|
222
|
+
...hashBytesForCacheKey(body)
|
|
223
|
+
}
|
|
224
|
+
};
|
|
225
|
+
return {
|
|
226
|
+
cacheable: false,
|
|
227
|
+
identity: void 0
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
function getOptionsForFetchCacheKey(options, bodyIdentity) {
|
|
231
|
+
const identity = {};
|
|
232
|
+
for (const [key, value] of Object.entries(options).sort(([keyA], [keyB]) => keyA.localeCompare(keyB))) {
|
|
233
|
+
if (key === "headers" || IGNORED_FETCH_CACHE_OPTION_KEYS.has(key)) continue;
|
|
234
|
+
if (key === "body") {
|
|
235
|
+
identity.body = bodyIdentity;
|
|
236
|
+
continue;
|
|
237
|
+
}
|
|
238
|
+
if (value == null || [
|
|
239
|
+
"boolean",
|
|
240
|
+
"number",
|
|
241
|
+
"string"
|
|
242
|
+
].includes(typeof value)) {
|
|
243
|
+
identity[key] = value;
|
|
244
|
+
continue;
|
|
245
|
+
}
|
|
246
|
+
return {
|
|
247
|
+
cacheable: false,
|
|
248
|
+
identity: void 0
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
if (!Object.prototype.hasOwnProperty.call(options, "body") && bodyIdentity !== void 0) identity.body = bodyIdentity;
|
|
252
|
+
return {
|
|
253
|
+
cacheable: true,
|
|
254
|
+
identity
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
function getFetchCacheKey(url, options, method, format) {
|
|
258
|
+
const bodyForCacheKey = getBodyForFetchCacheKey(options.body ?? (url instanceof Request ? url.body : void 0));
|
|
259
|
+
if (!bodyForCacheKey.cacheable) return null;
|
|
260
|
+
const optionsForCacheKey = getOptionsForFetchCacheKey(options, bodyForCacheKey.identity);
|
|
261
|
+
if (!optionsForCacheKey.cacheable) return null;
|
|
262
|
+
return getScopedCacheKey(`fetch:v3:${hashFetchCacheKey({
|
|
263
|
+
format,
|
|
264
|
+
headers: getHeadersForCacheKey(url, options),
|
|
265
|
+
method,
|
|
266
|
+
options: optionsForCacheKey.identity,
|
|
267
|
+
url: url instanceof Request ? url.url : String(url)
|
|
268
|
+
})}`);
|
|
269
|
+
}
|
|
270
|
+
function getAbortSignalId(signal) {
|
|
271
|
+
let signalId = abortSignalIds.get(signal);
|
|
272
|
+
if (signalId === void 0) {
|
|
273
|
+
signalId = ++nextAbortSignalId;
|
|
274
|
+
abortSignalIds.set(signal, signalId);
|
|
275
|
+
}
|
|
276
|
+
return signalId;
|
|
277
|
+
}
|
|
278
|
+
function getInflightFetchCacheKey(cacheKey, url, options) {
|
|
279
|
+
const signal = options.signal ?? (url instanceof Request ? url.signal : void 0);
|
|
280
|
+
return signal ? `${cacheKey}:signal:${getAbortSignalId(signal)}` : cacheKey;
|
|
281
|
+
}
|
|
165
282
|
function serializeFetchResponse(data, status, statusText, headers, latencyMs) {
|
|
166
283
|
return JSON.stringify({
|
|
167
284
|
data,
|
|
@@ -253,7 +370,8 @@ async function fetchWithCache(url, options = {}, timeout = require_fetch.REQUEST
|
|
|
253
370
|
"PUT",
|
|
254
371
|
"DELETE"
|
|
255
372
|
].includes(method);
|
|
256
|
-
|
|
373
|
+
const cacheKey = enabled && !bust ? getFetchCacheKey(url, options, method, format) : null;
|
|
374
|
+
if (!enabled || bust || cacheKey == null) {
|
|
257
375
|
const { respText, resp, fetchLatencyMs } = await fetchAndReadBody(url, options, timeout, maxRetries, isIdempotent);
|
|
258
376
|
try {
|
|
259
377
|
return {
|
|
@@ -269,25 +387,23 @@ async function fetchWithCache(url, options = {}, timeout = require_fetch.REQUEST
|
|
|
269
387
|
throw new Error(`Error parsing response as JSON: ${respText}`);
|
|
270
388
|
}
|
|
271
389
|
}
|
|
272
|
-
const copy = Object.assign({}, options);
|
|
273
|
-
delete copy.headers;
|
|
274
|
-
const cacheKey = getScopedCacheKey(`fetch:v2:${url}:${JSON.stringify(copy)}`);
|
|
275
390
|
const cache = getCacheInstance();
|
|
276
391
|
const cachedResponse = await cache.get(cacheKey);
|
|
277
392
|
if (cachedResponse != null) {
|
|
278
393
|
require_logger.logger.debug(`Returning cached response for ${url}: ${cachedResponse}`);
|
|
279
394
|
return deserializeFetchResponse(cachedResponse, true, cache, cacheKey);
|
|
280
395
|
}
|
|
281
|
-
|
|
396
|
+
const inflightCacheKey = getInflightFetchCacheKey(cacheKey, url, options);
|
|
397
|
+
let inflightResponse = inflightFetchResponses.get(inflightCacheKey);
|
|
282
398
|
if (!inflightResponse) {
|
|
283
399
|
inflightResponse = (async () => {
|
|
284
400
|
const preparedResponse = await prepareFetchResponse(url, options, timeout, maxRetries, isIdempotent, format);
|
|
285
401
|
if (preparedResponse.cacheable) await cache.set(cacheKey, preparedResponse.response);
|
|
286
402
|
return preparedResponse.response;
|
|
287
403
|
})().finally(() => {
|
|
288
|
-
inflightFetchResponses.delete(
|
|
404
|
+
inflightFetchResponses.delete(inflightCacheKey);
|
|
289
405
|
});
|
|
290
|
-
inflightFetchResponses.set(
|
|
406
|
+
inflightFetchResponses.set(inflightCacheKey, inflightResponse);
|
|
291
407
|
}
|
|
292
408
|
return deserializeFetchResponse(await inflightResponse, false, cache, cacheKey);
|
|
293
409
|
}
|
|
@@ -318,24 +434,12 @@ Object.defineProperty(exports, "cache_exports", {
|
|
|
318
434
|
return cache_exports;
|
|
319
435
|
}
|
|
320
436
|
});
|
|
321
|
-
Object.defineProperty(exports, "clearCache", {
|
|
322
|
-
enumerable: true,
|
|
323
|
-
get: function() {
|
|
324
|
-
return clearCache;
|
|
325
|
-
}
|
|
326
|
-
});
|
|
327
437
|
Object.defineProperty(exports, "disableCache", {
|
|
328
438
|
enumerable: true,
|
|
329
439
|
get: function() {
|
|
330
440
|
return disableCache;
|
|
331
441
|
}
|
|
332
442
|
});
|
|
333
|
-
Object.defineProperty(exports, "enableCache", {
|
|
334
|
-
enumerable: true,
|
|
335
|
-
get: function() {
|
|
336
|
-
return enableCache;
|
|
337
|
-
}
|
|
338
|
-
});
|
|
339
443
|
Object.defineProperty(exports, "fetchWithCache", {
|
|
340
444
|
enumerable: true,
|
|
341
445
|
get: function() {
|
|
@@ -348,6 +452,12 @@ Object.defineProperty(exports, "getCache", {
|
|
|
348
452
|
return getCache;
|
|
349
453
|
}
|
|
350
454
|
});
|
|
455
|
+
Object.defineProperty(exports, "getScopedCacheKey", {
|
|
456
|
+
enumerable: true,
|
|
457
|
+
get: function() {
|
|
458
|
+
return getScopedCacheKey;
|
|
459
|
+
}
|
|
460
|
+
});
|
|
351
461
|
Object.defineProperty(exports, "isCacheEnabled", {
|
|
352
462
|
enumerable: true,
|
|
353
463
|
get: function() {
|
|
@@ -373,4 +483,4 @@ Object.defineProperty(exports, "withCacheNamespace", {
|
|
|
373
483
|
}
|
|
374
484
|
});
|
|
375
485
|
|
|
376
|
-
//# sourceMappingURL=cache-
|
|
486
|
+
//# sourceMappingURL=cache-CPGUA4Yl.cjs.map
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { t as __exportAll } from "./chunk-DEq-mXcV.js";
|
|
2
2
|
import { S as getEnvBool, T as getEnvString, a as logger, w as getEnvInt, x as getConfigDirectoryPath } from "./logger-Ct2S6Yx-.js";
|
|
3
|
-
import {
|
|
3
|
+
import { T as cloudConfig, a as getFetchWithProxyHeaders, l as sleep, n as fetchWithRetries, p as REQUEST_TIMEOUT_MS, s as isPromptfooCloudApiHost } from "./fetch-It34O8Ur.js";
|
|
4
|
+
import { n as sha256 } from "./createHash-BtbSX3mj.js";
|
|
4
5
|
import fs from "fs";
|
|
5
6
|
import path from "path";
|
|
6
7
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
@@ -46,6 +47,7 @@ var cache_exports = /* @__PURE__ */ __exportAll({
|
|
|
46
47
|
enableCache: () => enableCache,
|
|
47
48
|
fetchWithCache: () => fetchWithCache,
|
|
48
49
|
getCache: () => getCache,
|
|
50
|
+
getScopedCacheKey: () => getScopedCacheKey,
|
|
49
51
|
isCacheEnabled: () => isCacheEnabled,
|
|
50
52
|
withCacheNamespace: () => withCacheNamespace
|
|
51
53
|
});
|
|
@@ -161,6 +163,120 @@ function withCacheNamespace(namespace, fn) {
|
|
|
161
163
|
return cacheNamespaceStorage.run({ namespace: scopedNamespace }, fn);
|
|
162
164
|
}
|
|
163
165
|
const inflightFetchResponses = /* @__PURE__ */ new Map();
|
|
166
|
+
const IGNORED_FETCH_CACHE_OPTION_KEYS = new Set(["method", "signal"]);
|
|
167
|
+
const abortSignalIds = /* @__PURE__ */ new WeakMap();
|
|
168
|
+
let nextAbortSignalId = 0;
|
|
169
|
+
function getHeadersForCacheKey(url, options) {
|
|
170
|
+
const headers = new Headers(getFetchWithProxyHeaders(url, options));
|
|
171
|
+
if (isPromptfooCloudApiHost(url)) {
|
|
172
|
+
const token = cloudConfig.getApiKey();
|
|
173
|
+
if (token) headers.set("Authorization", `Bearer ${token}`);
|
|
174
|
+
}
|
|
175
|
+
return Array.from(headers.entries()).sort(([nameA, valueA], [nameB, valueB]) => {
|
|
176
|
+
const nameComparison = nameA.localeCompare(nameB);
|
|
177
|
+
return nameComparison === 0 ? valueA.localeCompare(valueB) : nameComparison;
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
function hashFetchCacheKey(identity) {
|
|
181
|
+
return sha256(JSON.stringify(identity));
|
|
182
|
+
}
|
|
183
|
+
function hashBytesForCacheKey(bytes) {
|
|
184
|
+
const buffer = ArrayBuffer.isView(bytes) ? Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength) : Buffer.from(bytes);
|
|
185
|
+
return {
|
|
186
|
+
byteLength: buffer.byteLength,
|
|
187
|
+
sha256: sha256(buffer)
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
function getBodyForFetchCacheKey(body) {
|
|
191
|
+
if (body == null) return {
|
|
192
|
+
cacheable: true,
|
|
193
|
+
identity: void 0
|
|
194
|
+
};
|
|
195
|
+
if (typeof body === "string") return {
|
|
196
|
+
cacheable: true,
|
|
197
|
+
identity: {
|
|
198
|
+
type: "string",
|
|
199
|
+
value: body
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
if (typeof URLSearchParams !== "undefined" && body instanceof URLSearchParams) return {
|
|
203
|
+
cacheable: true,
|
|
204
|
+
identity: {
|
|
205
|
+
type: "url-search-params",
|
|
206
|
+
value: body.toString()
|
|
207
|
+
}
|
|
208
|
+
};
|
|
209
|
+
if (body instanceof ArrayBuffer) return {
|
|
210
|
+
cacheable: true,
|
|
211
|
+
identity: {
|
|
212
|
+
type: "array-buffer",
|
|
213
|
+
...hashBytesForCacheKey(body)
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
if (ArrayBuffer.isView(body)) return {
|
|
217
|
+
cacheable: true,
|
|
218
|
+
identity: {
|
|
219
|
+
type: body.constructor.name,
|
|
220
|
+
...hashBytesForCacheKey(body)
|
|
221
|
+
}
|
|
222
|
+
};
|
|
223
|
+
return {
|
|
224
|
+
cacheable: false,
|
|
225
|
+
identity: void 0
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
function getOptionsForFetchCacheKey(options, bodyIdentity) {
|
|
229
|
+
const identity = {};
|
|
230
|
+
for (const [key, value] of Object.entries(options).sort(([keyA], [keyB]) => keyA.localeCompare(keyB))) {
|
|
231
|
+
if (key === "headers" || IGNORED_FETCH_CACHE_OPTION_KEYS.has(key)) continue;
|
|
232
|
+
if (key === "body") {
|
|
233
|
+
identity.body = bodyIdentity;
|
|
234
|
+
continue;
|
|
235
|
+
}
|
|
236
|
+
if (value == null || [
|
|
237
|
+
"boolean",
|
|
238
|
+
"number",
|
|
239
|
+
"string"
|
|
240
|
+
].includes(typeof value)) {
|
|
241
|
+
identity[key] = value;
|
|
242
|
+
continue;
|
|
243
|
+
}
|
|
244
|
+
return {
|
|
245
|
+
cacheable: false,
|
|
246
|
+
identity: void 0
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
if (!Object.prototype.hasOwnProperty.call(options, "body") && bodyIdentity !== void 0) identity.body = bodyIdentity;
|
|
250
|
+
return {
|
|
251
|
+
cacheable: true,
|
|
252
|
+
identity
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
function getFetchCacheKey(url, options, method, format) {
|
|
256
|
+
const bodyForCacheKey = getBodyForFetchCacheKey(options.body ?? (url instanceof Request ? url.body : void 0));
|
|
257
|
+
if (!bodyForCacheKey.cacheable) return null;
|
|
258
|
+
const optionsForCacheKey = getOptionsForFetchCacheKey(options, bodyForCacheKey.identity);
|
|
259
|
+
if (!optionsForCacheKey.cacheable) return null;
|
|
260
|
+
return getScopedCacheKey(`fetch:v3:${hashFetchCacheKey({
|
|
261
|
+
format,
|
|
262
|
+
headers: getHeadersForCacheKey(url, options),
|
|
263
|
+
method,
|
|
264
|
+
options: optionsForCacheKey.identity,
|
|
265
|
+
url: url instanceof Request ? url.url : String(url)
|
|
266
|
+
})}`);
|
|
267
|
+
}
|
|
268
|
+
function getAbortSignalId(signal) {
|
|
269
|
+
let signalId = abortSignalIds.get(signal);
|
|
270
|
+
if (signalId === void 0) {
|
|
271
|
+
signalId = ++nextAbortSignalId;
|
|
272
|
+
abortSignalIds.set(signal, signalId);
|
|
273
|
+
}
|
|
274
|
+
return signalId;
|
|
275
|
+
}
|
|
276
|
+
function getInflightFetchCacheKey(cacheKey, url, options) {
|
|
277
|
+
const signal = options.signal ?? (url instanceof Request ? url.signal : void 0);
|
|
278
|
+
return signal ? `${cacheKey}:signal:${getAbortSignalId(signal)}` : cacheKey;
|
|
279
|
+
}
|
|
164
280
|
function serializeFetchResponse(data, status, statusText, headers, latencyMs) {
|
|
165
281
|
return JSON.stringify({
|
|
166
282
|
data,
|
|
@@ -252,7 +368,8 @@ async function fetchWithCache(url, options = {}, timeout = REQUEST_TIMEOUT_MS, f
|
|
|
252
368
|
"PUT",
|
|
253
369
|
"DELETE"
|
|
254
370
|
].includes(method);
|
|
255
|
-
|
|
371
|
+
const cacheKey = enabled && !bust ? getFetchCacheKey(url, options, method, format) : null;
|
|
372
|
+
if (!enabled || bust || cacheKey == null) {
|
|
256
373
|
const { respText, resp, fetchLatencyMs } = await fetchAndReadBody(url, options, timeout, maxRetries, isIdempotent);
|
|
257
374
|
try {
|
|
258
375
|
return {
|
|
@@ -268,25 +385,23 @@ async function fetchWithCache(url, options = {}, timeout = REQUEST_TIMEOUT_MS, f
|
|
|
268
385
|
throw new Error(`Error parsing response as JSON: ${respText}`);
|
|
269
386
|
}
|
|
270
387
|
}
|
|
271
|
-
const copy = Object.assign({}, options);
|
|
272
|
-
delete copy.headers;
|
|
273
|
-
const cacheKey = getScopedCacheKey(`fetch:v2:${url}:${JSON.stringify(copy)}`);
|
|
274
388
|
const cache = getCacheInstance();
|
|
275
389
|
const cachedResponse = await cache.get(cacheKey);
|
|
276
390
|
if (cachedResponse != null) {
|
|
277
391
|
logger.debug(`Returning cached response for ${url}: ${cachedResponse}`);
|
|
278
392
|
return deserializeFetchResponse(cachedResponse, true, cache, cacheKey);
|
|
279
393
|
}
|
|
280
|
-
|
|
394
|
+
const inflightCacheKey = getInflightFetchCacheKey(cacheKey, url, options);
|
|
395
|
+
let inflightResponse = inflightFetchResponses.get(inflightCacheKey);
|
|
281
396
|
if (!inflightResponse) {
|
|
282
397
|
inflightResponse = (async () => {
|
|
283
398
|
const preparedResponse = await prepareFetchResponse(url, options, timeout, maxRetries, isIdempotent, format);
|
|
284
399
|
if (preparedResponse.cacheable) await cache.set(cacheKey, preparedResponse.response);
|
|
285
400
|
return preparedResponse.response;
|
|
286
401
|
})().finally(() => {
|
|
287
|
-
inflightFetchResponses.delete(
|
|
402
|
+
inflightFetchResponses.delete(inflightCacheKey);
|
|
288
403
|
});
|
|
289
|
-
inflightFetchResponses.set(
|
|
404
|
+
inflightFetchResponses.set(inflightCacheKey, inflightResponse);
|
|
290
405
|
}
|
|
291
406
|
return deserializeFetchResponse(await inflightResponse, false, cache, cacheKey);
|
|
292
407
|
}
|
|
@@ -305,6 +420,6 @@ function isCacheEnabled() {
|
|
|
305
420
|
return enabled;
|
|
306
421
|
}
|
|
307
422
|
//#endregion
|
|
308
|
-
export {
|
|
423
|
+
export { getScopedCacheKey as a, NON_TRANSIENT_HTTP_STATUSES as c, getCache as i, isNonTransientHttpStatus as l, disableCache as n, isCacheEnabled as o, fetchWithCache as r, withCacheNamespace as s, cache_exports as t, isTransientConnectionError as u };
|
|
309
424
|
|
|
310
|
-
//# sourceMappingURL=cache-
|
|
425
|
+
//# sourceMappingURL=cache-DIXbtkNO.js.map
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { t as __exportAll } from "./chunk-DRamLcfz.js";
|
|
3
3
|
import { C as getConfigDirectoryPath, D as getEnvInt, O as getEnvString, T as getEnvBool, s as logger } from "./logger-BbY6ypFL.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { _ as REQUEST_TIMEOUT_MS, a as getFetchWithProxyHeaders, f as sleep, r as fetchWithRetries, u as isPromptfooCloudApiHost } from "./fetch-DXUnXkVU.js";
|
|
5
|
+
import { a as cloudConfig } from "./cloud-D3DiFqH6.js";
|
|
6
|
+
import { n as sha256 } from "./createHash-CgRvs4Fn.js";
|
|
7
|
+
import { r as isTransientConnectionError } from "./errors-9PcUL8BC.js";
|
|
6
8
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
7
9
|
import fs from "fs";
|
|
8
10
|
import path from "path";
|
|
@@ -16,6 +18,7 @@ var cache_exports = /* @__PURE__ */ __exportAll({
|
|
|
16
18
|
enableCache: () => enableCache,
|
|
17
19
|
fetchWithCache: () => fetchWithCache,
|
|
18
20
|
getCache: () => getCache,
|
|
21
|
+
getScopedCacheKey: () => getScopedCacheKey,
|
|
19
22
|
isCacheEnabled: () => isCacheEnabled,
|
|
20
23
|
withCacheNamespace: () => withCacheNamespace
|
|
21
24
|
});
|
|
@@ -131,6 +134,120 @@ function withCacheNamespace(namespace, fn) {
|
|
|
131
134
|
return cacheNamespaceStorage.run({ namespace: scopedNamespace }, fn);
|
|
132
135
|
}
|
|
133
136
|
const inflightFetchResponses = /* @__PURE__ */ new Map();
|
|
137
|
+
const IGNORED_FETCH_CACHE_OPTION_KEYS = new Set(["method", "signal"]);
|
|
138
|
+
const abortSignalIds = /* @__PURE__ */ new WeakMap();
|
|
139
|
+
let nextAbortSignalId = 0;
|
|
140
|
+
function getHeadersForCacheKey(url, options) {
|
|
141
|
+
const headers = new Headers(getFetchWithProxyHeaders(url, options));
|
|
142
|
+
if (isPromptfooCloudApiHost(url)) {
|
|
143
|
+
const token = cloudConfig.getApiKey();
|
|
144
|
+
if (token) headers.set("Authorization", `Bearer ${token}`);
|
|
145
|
+
}
|
|
146
|
+
return Array.from(headers.entries()).sort(([nameA, valueA], [nameB, valueB]) => {
|
|
147
|
+
const nameComparison = nameA.localeCompare(nameB);
|
|
148
|
+
return nameComparison === 0 ? valueA.localeCompare(valueB) : nameComparison;
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
function hashFetchCacheKey(identity) {
|
|
152
|
+
return sha256(JSON.stringify(identity));
|
|
153
|
+
}
|
|
154
|
+
function hashBytesForCacheKey(bytes) {
|
|
155
|
+
const buffer = ArrayBuffer.isView(bytes) ? Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength) : Buffer.from(bytes);
|
|
156
|
+
return {
|
|
157
|
+
byteLength: buffer.byteLength,
|
|
158
|
+
sha256: sha256(buffer)
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
function getBodyForFetchCacheKey(body) {
|
|
162
|
+
if (body == null) return {
|
|
163
|
+
cacheable: true,
|
|
164
|
+
identity: void 0
|
|
165
|
+
};
|
|
166
|
+
if (typeof body === "string") return {
|
|
167
|
+
cacheable: true,
|
|
168
|
+
identity: {
|
|
169
|
+
type: "string",
|
|
170
|
+
value: body
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
if (typeof URLSearchParams !== "undefined" && body instanceof URLSearchParams) return {
|
|
174
|
+
cacheable: true,
|
|
175
|
+
identity: {
|
|
176
|
+
type: "url-search-params",
|
|
177
|
+
value: body.toString()
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
if (body instanceof ArrayBuffer) return {
|
|
181
|
+
cacheable: true,
|
|
182
|
+
identity: {
|
|
183
|
+
type: "array-buffer",
|
|
184
|
+
...hashBytesForCacheKey(body)
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
if (ArrayBuffer.isView(body)) return {
|
|
188
|
+
cacheable: true,
|
|
189
|
+
identity: {
|
|
190
|
+
type: body.constructor.name,
|
|
191
|
+
...hashBytesForCacheKey(body)
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
return {
|
|
195
|
+
cacheable: false,
|
|
196
|
+
identity: void 0
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
function getOptionsForFetchCacheKey(options, bodyIdentity) {
|
|
200
|
+
const identity = {};
|
|
201
|
+
for (const [key, value] of Object.entries(options).sort(([keyA], [keyB]) => keyA.localeCompare(keyB))) {
|
|
202
|
+
if (key === "headers" || IGNORED_FETCH_CACHE_OPTION_KEYS.has(key)) continue;
|
|
203
|
+
if (key === "body") {
|
|
204
|
+
identity.body = bodyIdentity;
|
|
205
|
+
continue;
|
|
206
|
+
}
|
|
207
|
+
if (value == null || [
|
|
208
|
+
"boolean",
|
|
209
|
+
"number",
|
|
210
|
+
"string"
|
|
211
|
+
].includes(typeof value)) {
|
|
212
|
+
identity[key] = value;
|
|
213
|
+
continue;
|
|
214
|
+
}
|
|
215
|
+
return {
|
|
216
|
+
cacheable: false,
|
|
217
|
+
identity: void 0
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
if (!Object.prototype.hasOwnProperty.call(options, "body") && bodyIdentity !== void 0) identity.body = bodyIdentity;
|
|
221
|
+
return {
|
|
222
|
+
cacheable: true,
|
|
223
|
+
identity
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
function getFetchCacheKey(url, options, method, format) {
|
|
227
|
+
const bodyForCacheKey = getBodyForFetchCacheKey(options.body ?? (url instanceof Request ? url.body : void 0));
|
|
228
|
+
if (!bodyForCacheKey.cacheable) return null;
|
|
229
|
+
const optionsForCacheKey = getOptionsForFetchCacheKey(options, bodyForCacheKey.identity);
|
|
230
|
+
if (!optionsForCacheKey.cacheable) return null;
|
|
231
|
+
return getScopedCacheKey(`fetch:v3:${hashFetchCacheKey({
|
|
232
|
+
format,
|
|
233
|
+
headers: getHeadersForCacheKey(url, options),
|
|
234
|
+
method,
|
|
235
|
+
options: optionsForCacheKey.identity,
|
|
236
|
+
url: url instanceof Request ? url.url : String(url)
|
|
237
|
+
})}`);
|
|
238
|
+
}
|
|
239
|
+
function getAbortSignalId(signal) {
|
|
240
|
+
let signalId = abortSignalIds.get(signal);
|
|
241
|
+
if (signalId === void 0) {
|
|
242
|
+
signalId = ++nextAbortSignalId;
|
|
243
|
+
abortSignalIds.set(signal, signalId);
|
|
244
|
+
}
|
|
245
|
+
return signalId;
|
|
246
|
+
}
|
|
247
|
+
function getInflightFetchCacheKey(cacheKey, url, options) {
|
|
248
|
+
const signal = options.signal ?? (url instanceof Request ? url.signal : void 0);
|
|
249
|
+
return signal ? `${cacheKey}:signal:${getAbortSignalId(signal)}` : cacheKey;
|
|
250
|
+
}
|
|
134
251
|
function serializeFetchResponse(data, status, statusText, headers, latencyMs) {
|
|
135
252
|
return JSON.stringify({
|
|
136
253
|
data,
|
|
@@ -222,7 +339,8 @@ async function fetchWithCache(url, options = {}, timeout = REQUEST_TIMEOUT_MS, f
|
|
|
222
339
|
"PUT",
|
|
223
340
|
"DELETE"
|
|
224
341
|
].includes(method);
|
|
225
|
-
|
|
342
|
+
const cacheKey = enabled && !bust ? getFetchCacheKey(url, options, method, format) : null;
|
|
343
|
+
if (!enabled || bust || cacheKey == null) {
|
|
226
344
|
const { respText, resp, fetchLatencyMs } = await fetchAndReadBody(url, options, timeout, maxRetries, isIdempotent);
|
|
227
345
|
try {
|
|
228
346
|
return {
|
|
@@ -238,25 +356,23 @@ async function fetchWithCache(url, options = {}, timeout = REQUEST_TIMEOUT_MS, f
|
|
|
238
356
|
throw new Error(`Error parsing response as JSON: ${respText}`);
|
|
239
357
|
}
|
|
240
358
|
}
|
|
241
|
-
const copy = Object.assign({}, options);
|
|
242
|
-
delete copy.headers;
|
|
243
|
-
const cacheKey = getScopedCacheKey(`fetch:v2:${url}:${JSON.stringify(copy)}`);
|
|
244
359
|
const cache = getCacheInstance();
|
|
245
360
|
const cachedResponse = await cache.get(cacheKey);
|
|
246
361
|
if (cachedResponse != null) {
|
|
247
362
|
logger.debug(`Returning cached response for ${url}: ${cachedResponse}`);
|
|
248
363
|
return deserializeFetchResponse(cachedResponse, true, cache, cacheKey);
|
|
249
364
|
}
|
|
250
|
-
|
|
365
|
+
const inflightCacheKey = getInflightFetchCacheKey(cacheKey, url, options);
|
|
366
|
+
let inflightResponse = inflightFetchResponses.get(inflightCacheKey);
|
|
251
367
|
if (!inflightResponse) {
|
|
252
368
|
inflightResponse = (async () => {
|
|
253
369
|
const preparedResponse = await prepareFetchResponse(url, options, timeout, maxRetries, isIdempotent, format);
|
|
254
370
|
if (preparedResponse.cacheable) await cache.set(cacheKey, preparedResponse.response);
|
|
255
371
|
return preparedResponse.response;
|
|
256
372
|
})().finally(() => {
|
|
257
|
-
inflightFetchResponses.delete(
|
|
373
|
+
inflightFetchResponses.delete(inflightCacheKey);
|
|
258
374
|
});
|
|
259
|
-
inflightFetchResponses.set(
|
|
375
|
+
inflightFetchResponses.set(inflightCacheKey, inflightResponse);
|
|
260
376
|
}
|
|
261
377
|
return deserializeFetchResponse(await inflightResponse, false, cache, cacheKey);
|
|
262
378
|
}
|
|
@@ -275,6 +391,6 @@ function isCacheEnabled() {
|
|
|
275
391
|
return enabled;
|
|
276
392
|
}
|
|
277
393
|
//#endregion
|
|
278
|
-
export { fetchWithCache as a,
|
|
394
|
+
export { fetchWithCache as a, isCacheEnabled as c, enableCache as i, withCacheNamespace as l, clearCache as n, getCache as o, disableCache as r, getScopedCacheKey as s, cache_exports as t };
|
|
279
395
|
|
|
280
|
-
//# sourceMappingURL=cache-
|
|
396
|
+
//# sourceMappingURL=cache-DpPWrkTE.js.map
|