promptfoo 0.121.3 → 0.121.5
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/README.md +1 -1
- package/dist/src/{ListApp-Du7YVwj5.js → ListApp-BRUsT43Y.js} +1 -1
- package/dist/src/{accounts-BPyfpSeU.cjs → accounts-BIFntVWB.cjs} +5 -5
- package/dist/src/{accounts-CFLK3mnD.js → accounts-CLJHCDDb.js} +6 -6
- package/dist/src/{accounts-B2XmGjty.js → accounts-CaLNYnf7.js} +5 -5
- package/dist/src/{accounts-Xatc0RYb.js → accounts-bnyHT7Ju.js} +5 -5
- package/dist/src/{agentic-utils-36epdqwB.js → agentic-utils-B5krlibj.js} +3 -3
- package/dist/src/{agentic-utils-DIYAAYE7.js → agentic-utils-Ba67xmgs.js} +3 -3
- package/dist/src/{agentic-utils-D8yXo5Lm.js → agentic-utils-BclbiXiq.js} +4 -4
- package/dist/src/{agentic-utils-DAVsChuB.cjs → agentic-utils-D2x0wGhB.cjs} +3 -3
- package/dist/src/{agents-CLQ-P15P.js → agents-BGqaTDnr.js} +5 -7
- package/dist/src/{agents-wg3ohknq.js → agents-BV9yFpXX.js} +6 -7
- package/dist/src/{agents-CgBniSlI.js → agents-BYdMl1UE.js} +5 -9
- package/dist/src/{agents-Bqgfdokm.js → agents-DhxWMCtH.js} +35 -14
- package/dist/src/{agents-BBWxKSM0.cjs → agents-DiWmQYH9.cjs} +5 -7
- package/dist/src/{agents-CAYbM7qD.cjs → agents-WULPVjbH.cjs} +34 -12
- package/dist/src/{agents-DSSTV4bv.js → agents-emVcx3yh.js} +35 -13
- package/dist/src/{agents-BBVJCIYr.js → agents-n6vPqV3i.js} +35 -13
- package/dist/src/{aimlapi-BwGC1TtS.js → aimlapi-BxqK9HF_.js} +8 -14
- package/dist/src/{aimlapi-Bv8Fmc-b.cjs → aimlapi-BzLjZI_m.cjs} +8 -15
- package/dist/src/{aimlapi-MgSLdvy7.js → aimlapi-DR4pgeiC.js} +7 -14
- package/dist/src/{aimlapi-DaC3qZ-o.js → aimlapi-uPGp0Zdo.js} +7 -16
- package/dist/src/app/app/tsconfig.app.tsbuildinfo +1 -0
- package/dist/src/app/assets/Report-vjzrbgce.js +1 -0
- package/dist/src/app/assets/index-B3NQ8HTd.js +385 -0
- package/dist/src/app/assets/index-Cli2yAXv.css +1 -0
- package/dist/src/app/assets/rolldown-runtime-COnpUsM8.js +1 -0
- package/dist/src/app/assets/scroll-timeline-D9IT_e8Z.js +1 -0
- package/dist/src/app/assets/sync-IjzpWrOE.js +4 -0
- package/dist/src/app/assets/vendor-charts-BNdH8TCw.js +36 -0
- package/dist/src/app/assets/vendor-markdown-Ch00wnNI.js +29 -0
- package/dist/src/app/assets/vendor-react-CVvmk1UB.js +9 -0
- package/dist/src/app/assets/vendor-utils-BnEYbx2Q.js +37 -0
- package/dist/src/app/index.html +32 -7
- package/dist/src/{audio-Bn44pQxv.js → audio-BvpTOArF.js} +4 -4
- package/dist/src/{audio-DVFjQ67_.cjs → audio-C0vDeS0j.cjs} +4 -4
- package/dist/src/{audio-DjU9GswO.js → audio-CScmnmEB.js} +4 -5
- package/dist/src/{audio-DDA5WHdx.js → audio-Da8U9IS5.js} +4 -4
- package/dist/src/{base-CKjwebIH.js → base-BOMaNEes.js} +3 -3
- package/dist/src/{base-CqzQ4K8j.js → base-BTux96b1.js} +3 -3
- package/dist/src/{base-BboXIF_0.cjs → base-Tw6uhH8K.cjs} +3 -3
- package/dist/src/{base-Cz2ZC_iA.js → base-dYsl2hmL.js} +3 -3
- package/dist/src/{blobs-C6j0bvFz.cjs → blobs-B95F_7vE.cjs} +3 -3
- package/dist/src/{blobs-DXTl6J3H.js → blobs-BW4U31ue.js} +3 -3
- package/dist/src/{blobs-BUWmKWzo.js → blobs-D_gg8nbm.js} +4 -4
- package/dist/src/{blobs-B1JriOyi.js → blobs-DjLby-uP.js} +4 -4
- package/dist/src/cache-BI5BY7ey.js +280 -0
- package/dist/src/cache-BRkhlH3k.cjs +3 -0
- package/dist/src/cache-BlC6aeJ0.js +3 -0
- package/dist/src/cache-Bzttsk0X.js +310 -0
- package/dist/src/cache-Cr-qWIbP.js +310 -0
- package/dist/src/cache-DGg-yTZG.cjs +376 -0
- package/dist/src/{chat-BEwdgGEg.js → chat-BLOdH60v.js} +63 -37
- package/dist/src/{chat-B0iaWhoh.js → chat-Cx_LkwvZ.js} +63 -37
- package/dist/src/{chat-DK1U-eZ-.js → chat-D9nudO9b.js} +5 -14
- package/dist/src/{chat-pxmiVpWe.js → chat-DChSH_Es.js} +63 -37
- package/dist/src/{chat-B-52XYI1.js → chat-DG2LkwLq.js} +3 -13
- package/dist/src/{chat-BtIKkLKx.cjs → chat-DH97tVV9.cjs} +3 -13
- package/dist/src/{chat-BE0qTA8e.js → chat-aMQZw6R7.js} +4 -16
- package/dist/src/{chat-CM8qWR3_.cjs → chat-vYqqv1gP.cjs} +64 -38
- package/dist/src/{chatkit-_8eJqKcD.js → chatkit-B8X34dQc.js} +4 -4
- package/dist/src/{chatkit-BYGQlHlV.js → chatkit-BXu42Qwt.js} +4 -4
- package/dist/src/{chatkit-a2D6mY6s.js → chatkit-CbMRoeYw.js} +4 -4
- package/dist/src/{chatkit-Cx174XI3.cjs → chatkit-D44VyUyB.cjs} +4 -4
- package/dist/src/{claude-agent-sdk-8ddRp1L2.cjs → claude-agent-sdk-BRq0bbIK.cjs} +23 -18
- package/dist/src/{claude-agent-sdk-CMjh4LFH.js → claude-agent-sdk-BjriSVRZ.js} +20 -15
- package/dist/src/{claude-agent-sdk-HgbFioFw.js → claude-agent-sdk-BzNZeZ0N.js} +20 -15
- package/dist/src/{claude-agent-sdk-Bq5EArsX.js → claude-agent-sdk-DYv_AJ8u.js} +21 -17
- package/dist/src/cloud-CoD5OacT.js +3 -0
- package/dist/src/{cloud-z8KZpUoa.js → cloud-Da0bofJd.js} +25 -13
- package/dist/src/{cloudflare-ai-Bbp26N0L.js → cloudflare-ai-CXC4b1EU.js} +5 -14
- package/dist/src/{cloudflare-ai-BGyXlpXJ.js → cloudflare-ai-CyBoIs1Q.js} +7 -15
- package/dist/src/{cloudflare-ai-DdKP9TKT.js → cloudflare-ai-DGOwgexC.js} +6 -17
- package/dist/src/{cloudflare-ai-C62x6MQG.cjs → cloudflare-ai-DJv5qnyb.cjs} +6 -15
- package/dist/src/{cloudflare-gateway-DXhtXDRb.js → cloudflare-gateway-1sAoOyft.js} +6 -16
- package/dist/src/{cloudflare-gateway-D-e9i1Sn.js → cloudflare-gateway-D-dnkzCF.js} +5 -18
- package/dist/src/{cloudflare-gateway-Dx36ftqF.cjs → cloudflare-gateway-DKVjkDav.cjs} +4 -15
- package/dist/src/{cloudflare-gateway-BwAaUgeW.js → cloudflare-gateway-TJkVrZlB.js} +4 -15
- package/dist/src/codex-app-server-CCLjqCh9.js +1915 -0
- package/dist/src/codex-app-server-CCe0TiDc.js +1915 -0
- package/dist/src/codex-app-server-CPW1LFwh.js +1916 -0
- package/dist/src/codex-app-server-VMRnjZ68.cjs +1920 -0
- package/dist/src/codex-sdk-1jm_qPHf.js +3 -0
- package/dist/src/codex-sdk-Bd8UbO9q.cjs +1172 -0
- package/dist/src/codex-sdk-BgEFQ70r.js +1164 -0
- package/dist/src/codex-sdk-Bzb_TqX9.js +1165 -0
- package/dist/src/codex-sdk-Danroptg.cjs +2 -0
- package/dist/src/codex-sdk-DfvDTN33.js +1165 -0
- package/dist/src/{cometapi-BDyV-NNm.js → cometapi-B5ImDlSm.js} +9 -15
- package/dist/src/{cometapi-C3hOlM7-.cjs → cometapi-BgAkuYCw.cjs} +9 -16
- package/dist/src/{cometapi-hhL4TAh3.js → cometapi-CC7hWxmX.js} +8 -15
- package/dist/src/{cometapi-sp7sJpBD.js → cometapi-CCbpHkuF.js} +8 -17
- package/dist/src/{completion-DoYy49ti.js → completion-2iuYVxwi.js} +8 -57
- package/dist/src/{completion-BCimtq-h.js → completion-CrD6MQ93.js} +8 -57
- package/dist/src/{completion-DlXUhj5c.cjs → completion-DtQ72Bm3.cjs} +7 -62
- package/dist/src/{completion-DCjv7RZ3.js → completion-Vq_ad618.js} +8 -57
- package/dist/src/{createHash-CTQmL3G2.js → createHash-4gFQpDDv.js} +3 -3
- package/dist/src/{createHash-Da8fMwqB.js → createHash-DPpsZgFF.js} +3 -3
- package/dist/src/{createHash-DmPQkvBh.js → createHash-Un4Q_huE.js} +3 -3
- package/dist/src/{createHash-BYwImsYv.cjs → createHash-VvBIc-AW.cjs} +4 -4
- package/dist/src/{docker-CxCkwMzc.js → docker--3qzPa-6.js} +6 -14
- package/dist/src/{docker-Cqj2-QVi.cjs → docker-D3AY-5F5.cjs} +7 -15
- package/dist/src/{docker-FeBni2dw.js → docker-DCsCDvwM.js} +7 -14
- package/dist/src/{docker-DpguQj-w.js → docker-Dorv4_Dg.js} +6 -16
- package/dist/src/embedding-BXhN5lCH.cjs +63 -0
- package/dist/src/embedding-ChS1ivFS.js +58 -0
- package/dist/src/embedding-DNRvZwRN.js +59 -0
- package/dist/src/embedding-D_bI4NDq.js +58 -0
- package/dist/src/entrypoint.js +69 -6
- package/dist/src/{errors-P6ll7XSJ.js → errors-DFHe4L-n.js} +1 -1
- package/dist/src/{esm-SUNIX1x3.js → esm-B6whoAcf.js} +15 -6
- package/dist/src/{esm-CKWP3u_P.js → esm-BRkfNsYs.js} +16 -7
- package/dist/src/{esm-7UIl0pPM.js → esm-BX8fwlAO.js} +27 -18
- package/dist/src/{esm-CipptfDu.cjs → esm-B_rGuPTo.cjs} +15 -6
- package/dist/src/eval-BQPLBJbw.js +3 -0
- package/dist/src/{eval-BTqTn7lb.js → eval-DJ_4A-tr.js} +50 -21
- package/dist/src/evalResult-BBJAHAtw.cjs +2 -0
- package/dist/src/evalResult-BBK58h2B.js +3 -0
- package/dist/src/{evalResult-DpARzUCb.cjs → evalResult-Cx-8OWkb.cjs} +29 -11
- package/dist/src/{evalResult-DUDShQrm.js → evalResult-D6P5I5il.js} +29 -11
- package/dist/src/{evalResult-BkIhRdTe.js → evalResult-pSvGWFMo.js} +29 -11
- package/dist/src/evalResult-spPqh1G_.js +2 -0
- package/dist/src/{evaluator-BcvOGaam.js → evaluator-D-UIbbYq.js} +3975 -2152
- package/dist/src/evaluator-DgLKaZk8.js +3 -0
- package/dist/src/{extractor-D_wd8jxt.js → extractor-BM3jRERL.js} +6 -6
- package/dist/src/{extractor-DG3sSfXE.cjs → extractor-Dxr2J_wK.cjs} +6 -6
- package/dist/src/{extractor-CAZ2G3Kh.js → extractor-DxyiFhPk.js} +6 -6
- package/dist/src/{extractor-C8XwivI9.js → extractor-YlZbUMsL.js} +6 -6
- package/dist/src/fetch-8viavNv8.js +3 -0
- package/dist/src/{fetch-DoVRJZhJ.js → fetch-B6ch2nU2.js} +199 -60
- package/dist/src/{fetch-CVAtKnI3.js → fetch-D9xxyC1p.js} +404 -252
- package/dist/src/{fetch-BnR9wSnm.cjs → fetch-NuqXW1Xb.cjs} +415 -263
- package/dist/src/{fetch-BiYv2BZc.js → fetch-Y5qX_kST.js} +222 -70
- package/dist/src/{fileExtensions-LcDYkU4v.js → fileExtensions-8CjoL7vB.js} +1 -1
- package/dist/src/{fileExtensions-DnqA1y9x.js → fileExtensions-BGh-W-HT.js} +1 -1
- package/dist/src/{fileExtensions-bYh77CN8.cjs → fileExtensions-D9h-8Wxg.cjs} +1 -1
- package/dist/src/{fileExtensions-Ds-foDzt.js → fileExtensions-DysCsxNG.js} +1 -1
- package/dist/src/{formatDuration-DgBVMN65.js → formatDuration-Ch4A7G3o.js} +1 -1
- package/dist/src/{genaiTracer-BfxrvSUb.cjs → genaiTracer-BokHC-MW.cjs} +7 -3
- package/dist/src/{genaiTracer-C1rxGO8Q.js → genaiTracer-C3ZPQU60.js} +6 -2
- package/dist/src/{genaiTracer-70Z8BIuV.js → genaiTracer-CFny3gOy.js} +6 -2
- package/dist/src/{genaiTracer-D3fD9dNV.js → genaiTracer-DxODqT9e.js} +6 -2
- package/dist/src/golang/wrapper.go +1 -1
- package/dist/src/{graders-DG7mhg-b.js → graders-BoUqsCEm.js} +7402 -5699
- package/dist/src/{graders-BElhu9ZY.cjs → graders-Bw1wk_21.cjs} +5220 -3437
- package/dist/src/graders-C84JI-m5.js +2 -0
- package/dist/src/graders-CBbd0K0Q.cjs +2 -0
- package/dist/src/graders-CbQqpHSN.js +3 -0
- package/dist/src/{graders-RjHF8VfG.js → graders-CgPn32yp.js} +7400 -5697
- package/dist/src/{graders-BXAJ0sbS.js → graders-CwrbifOo.js} +6136 -4433
- package/dist/src/graders-DS42d3ZG.js +2 -0
- package/dist/src/{image-6WQXK8m8.js → image-BeWaInPF.js} +4 -4
- package/dist/src/{image-PoF6DN3x.js → image-BmilRNqO.js} +8 -8
- package/dist/src/{image--F58eEIn.cjs → image-CxJoa3aW.cjs} +8 -8
- package/dist/src/{image-fza3zuKs.cjs → image-D10dNAav.cjs} +4 -4
- package/dist/src/{image-DO0RYnjH.js → image-Dr_3I3nK.js} +4 -5
- package/dist/src/{image-B8b6f36E.js → image-DsGRlkh7.js} +8 -8
- package/dist/src/{image-CoxZp9PZ.js → image-a_SGUobh.js} +8 -8
- package/dist/src/{image-xNbw5ph2.js → image-qjO6FWPs.js} +4 -4
- package/dist/src/index.cjs +4835 -2582
- package/dist/src/index.d.cts +2782 -31
- package/dist/src/index.d.ts +2783 -32
- package/dist/src/index.js +4817 -2564
- package/dist/src/{interactiveCheck-BnMYOjMu.js → interactiveCheck-CCICw2cy.js} +2 -2
- package/dist/src/{invariant-BtWWVVhl.js → invariant-B2Rf6avk.js} +1 -1
- package/dist/src/{invariant-vgHWClmd.js → invariant-DIYf9sP1.js} +1 -1
- package/dist/src/{knowledgeBase-Bi7CmDbx.js → knowledgeBase-BBETc5-S.js} +6 -8
- package/dist/src/{knowledgeBase-DqrLX8fy.cjs → knowledgeBase-C8qOo26M.cjs} +6 -8
- package/dist/src/{knowledgeBase-DFRXPZl_.js → knowledgeBase-CzAi2rUI.js} +7 -8
- package/dist/src/{knowledgeBase-Ce3ofVan.js → knowledgeBase-Dr3Kib7F.js} +6 -10
- package/dist/src/{litellm-CKiAxnoM.js → litellm-BLSiANhk.js} +6 -14
- package/dist/src/{litellm-CnHI69aj.cjs → litellm-CaUmV7Mk.cjs} +6 -15
- package/dist/src/{litellm-Tc294Jhj.js → litellm-DQGo_juI.js} +5 -14
- package/dist/src/{litellm-Bo2gQXpo.js → litellm-DRc4qWfc.js} +5 -16
- package/dist/src/{logger-BcJBzSSA.js → logger-BbY6ypFL.js} +41 -12
- package/dist/src/{logger-D5iKBpu_.cjs → logger-COuQb2xB.cjs} +51 -10
- package/dist/src/{logger-DO8_zM18.js → logger-Ct2S6Yx-.js} +40 -11
- package/dist/src/{logger-BnkjG2jt.js → logger-KD8JjCRJ.js} +41 -12
- package/dist/src/{luma-ray-C9q8rdQe.js → luma-ray-B-tNZzqW.js} +6 -10
- package/dist/src/{luma-ray-DP0QA9qn.js → luma-ray-CtS3OlGq.js} +6 -10
- package/dist/src/{luma-ray-0ehMPt5N.js → luma-ray-PJJgUjOc.js} +6 -11
- package/dist/src/{luma-ray-m9Ku2meV.cjs → luma-ray-if-Ml4R9.cjs} +6 -10
- package/dist/src/main.d.ts +1 -26
- package/dist/src/main.js +1188 -679
- package/dist/src/messages-B9dSjrNf.js +544 -0
- package/dist/src/messages-BnsVHUnm.cjs +558 -0
- package/dist/src/messages-CI69Lasb.js +543 -0
- package/dist/src/messages-CewuNcNS.js +543 -0
- package/dist/src/{meteor-DLZZ3osF.cjs → meteor-BBGcGeCa.cjs} +1 -1
- package/dist/src/{meteor-DUiCJRC-.js → meteor-BKTM-7KS.js} +1 -1
- package/dist/src/{meteor-44VjEACX.js → meteor-CeGo0Lu2.js} +2 -2
- package/dist/src/{meteor-D-SotUw9.js → meteor-Wc_aUVvu.js} +2 -2
- package/dist/src/{modelslab-B5J-ZM5c.js → modelslab-BCLOtfek.js} +8 -10
- package/dist/src/{modelslab-IQbNg-r7.cjs → modelslab-BkapYJhh.cjs} +7 -10
- package/dist/src/{modelslab-BTOT8FUO.js → modelslab-D73OnKSx.js} +7 -10
- package/dist/src/{modelslab-BI458moT.js → modelslab-zpz9JcK0.js} +7 -12
- package/dist/src/{nova-reel-BZ9y-Y5s.js → nova-reel-B8F_TK5w.js} +7 -10
- package/dist/src/{nova-reel-Xw1SXLpg.js → nova-reel-Bx0NFV2f.js} +6 -10
- package/dist/src/{nova-reel-DEeQlnOJ.js → nova-reel-CNGJTLtG.js} +6 -12
- package/dist/src/{nova-reel-CE5etkv9.cjs → nova-reel-DkT7tnoB.cjs} +6 -10
- package/dist/src/{nova-sonic-Ogqf-csn.js → nova-sonic-BaXRN1cr.js} +5 -7
- package/dist/src/{nova-sonic-DXTLpi-r.js → nova-sonic-BeTRaFOh.js} +4 -7
- package/dist/src/{nova-sonic-DWswpN1E.js → nova-sonic-CL7Zqv0G.js} +4 -9
- package/dist/src/{nova-sonic-N0yCm0vb.cjs → nova-sonic-YT426juD.cjs} +4 -7
- package/dist/src/{openai-BcB5KlTk.js → openai-BMHD2Huo.js} +6 -3
- package/dist/src/{openai-BMcwgD5C.js → openai-BT-JvDse.js} +6 -3
- package/dist/src/{openai-CoxGAQwn.cjs → openai-Cy1XLs0c.cjs} +6 -3
- package/dist/src/{openai-D6wITiVn.js → openai-D4fxGvRx.js} +6 -3
- package/dist/src/openclaw-Bq7RVR3k.js +1200 -0
- package/dist/src/openclaw-DA8U4DsD.js +1201 -0
- package/dist/src/openclaw-DObVgpjC.js +1200 -0
- package/dist/src/openclaw-DUBZP3GL.cjs +1206 -0
- package/dist/src/{opencode-sdk-CHCs7dEb.js → opencode-sdk-BB40Wir1.js} +6 -8
- package/dist/src/{opencode-sdk-DDxj4QqH.js → opencode-sdk-BM1UAIv1.js} +6 -8
- package/dist/src/{opencode-sdk-WWJhnbKr.cjs → opencode-sdk-CeqiOcOU.cjs} +7 -9
- package/dist/src/{opencode-sdk-C71Z0ehR.js → opencode-sdk-ChdK7F7z.js} +6 -9
- package/dist/src/{otlpReceiver-CZL48YfC.js → otlpReceiver-C6thJRXi.js} +154 -98
- package/dist/src/{otlpReceiver-C9KlUtxh.js → otlpReceiver-CcdIikOu.js} +154 -98
- package/dist/src/{otlpReceiver-DHKqJlsz.cjs → otlpReceiver-DNSQj6bf.cjs} +154 -98
- package/dist/src/{otlpReceiver-CavGAA6k.js → otlpReceiver-UYMQx3sy.js} +154 -98
- package/dist/src/{providerRegistry-BkzVH5Ba.js → providerRegistry-1gB5vtzQ.js} +2 -2
- package/dist/src/{providerRegistry-BTDgfV5h.cjs → providerRegistry-BESeALrr.cjs} +2 -2
- package/dist/src/{providerRegistry-CUWki5mQ.js → providerRegistry-DoACwqhD.js} +2 -2
- package/dist/src/{providerRegistry-B9lh-_tx.js → providerRegistry-PMsleEzs.js} +2 -2
- package/dist/src/providers-BuyzKt7C.js +2 -0
- package/dist/src/providers-C7lNVBjX.cjs +3 -0
- package/dist/src/providers-CCE2COJi2.js +2 -0
- package/dist/src/{providers-Cn73d5sr.js → providers-CJh7iriU.js} +17180 -16823
- package/dist/src/providers-Ctcc592x.js +3 -0
- package/dist/src/{providers-DvddrgxL.js → providers-DRrerKra.js} +1052 -695
- package/dist/src/{providers-Ch6Mr0gn.js → providers-DT-GtF2t.js} +16716 -16359
- package/dist/src/{providers-CScd1wN6.cjs → providers-eDShy16E.cjs} +19893 -19506
- package/dist/src/python/persistent_wrapper.py +0 -5
- package/dist/src/{pythonUtils-Cpo0Ez1p.js → pythonUtils-C4tltmIn.js} +4 -4
- package/dist/src/{pythonUtils-dAVigVK-.cjs → pythonUtils-CoLaCwNY.cjs} +4 -4
- package/dist/src/{pythonUtils-Bzwbgpbg.js → pythonUtils-DMO68Jg7.js} +3 -3
- package/dist/src/{pythonUtils-wIqk7zAf.js → pythonUtils-DNqbnRdx.js} +3 -3
- package/dist/src/{quiverai-BeofbLVc.js → quiverai-BSS9a7wV.js} +4 -4
- package/dist/src/{quiverai-DVSEqJiq.js → quiverai-Bk1KrvL6.js} +4 -4
- package/dist/src/{quiverai-CcUhPIBg.cjs → quiverai-Bpx6MZ7T.cjs} +4 -4
- package/dist/src/{quiverai-CCQn73lq.js → quiverai-CPKhWgaT.js} +4 -5
- package/dist/src/render-7uNJ2V14.js +135 -0
- package/dist/src/render-DlscvAUJ.js +135 -0
- package/dist/src/render-eui5p5mL.js +136 -0
- package/dist/src/{render-BHl6QVq9.js → render-nj-UaPdn.js} +2 -3
- package/dist/src/render-tG6ir9_g.cjs +165 -0
- package/dist/src/{responses-CgNyTPsY.js → responses-1ztiVYsx.js} +56 -17
- package/dist/src/{responses-BKP_WYis.js → responses-B8haB-mD.js} +56 -17
- package/dist/src/{responses-CQb1Tj69.js → responses-BiaBguAu.js} +56 -17
- package/dist/src/{responses-mo0KQDbu.cjs → responses-CF-ayauu.cjs} +56 -17
- package/dist/src/rubyUtils-4hjGxvju.js +3 -0
- package/dist/src/{rubyUtils-DECSbsfY.js → rubyUtils-BI0p46eZ.js} +3 -3
- package/dist/src/{rubyUtils-CiVfln3g.js → rubyUtils-CIQFnVz4.js} +3 -3
- package/dist/src/rubyUtils-CO-tuszQ.cjs +2 -0
- package/dist/src/{rubyUtils-PgU-gHmx.js → rubyUtils-DGnoCYL2.js} +4 -4
- package/dist/src/{rubyUtils-CGeUtCfW.cjs → rubyUtils-DoifqkiA.cjs} +5 -4
- package/dist/src/{sagemaker-CqeASYE5.js → sagemaker-BDLeW29y.js} +14 -18
- package/dist/src/{sagemaker-MUbD5V3v.js → sagemaker-C5T60MKf.js} +14 -19
- package/dist/src/{sagemaker-CVv8W7so.js → sagemaker-ClS_NB07.js} +14 -18
- package/dist/src/{sagemaker-jiw1wQa-.cjs → sagemaker-ljtY12VM.cjs} +14 -18
- package/dist/src/{scanner-DVDeUz1r.js → scanner-nOCWNIXa.js} +130 -35
- package/dist/src/server/golang/wrapper.go +1 -1
- package/dist/src/server/index.js +4829 -2529
- package/dist/src/server/python/persistent_wrapper.py +0 -5
- package/dist/src/{server-BtoCXeXI.cjs → server-BEECpeGG.cjs} +140 -6
- package/dist/src/{server-DZ9MtCn0.js → server-ByiF3qlg.js} +129 -9
- package/dist/src/{server-Cns05F1j.js → server-ByxbqAcQ.js} +128 -8
- package/dist/src/server-C0XKRNB_.cjs +2 -0
- package/dist/src/server-C_15p79-.js +3 -0
- package/dist/src/{server-CP9qKM40.js → server-gyd6d4Hc.js} +126 -7
- package/dist/src/{signal-C3ZTsUgi.js → signal-DTtUuU3l.js} +3 -3
- package/dist/src/{slack-DCEV-vWP.js → slack-4zZX1OKP.js} +2 -2
- package/dist/src/{slack-94iG3T0s.cjs → slack-BLlsDpfG.cjs} +2 -2
- package/dist/src/{slack-BR0HtO3K.js → slack-BPYLQLgb.js} +2 -2
- package/dist/src/{slack-2sdpGzbt.js → slack-Bamy_7te.js} +2 -2
- package/dist/src/{store-CLyU7AtI.cjs → store-2K0kDi80.cjs} +3 -3
- package/dist/src/{store-VB0GP46K.js → store-2OXm_eBY.js} +3 -3
- package/dist/src/store-BELqNwvz.js +3 -0
- package/dist/src/{store-Cj258DgL.js → store-BPkzEyFM.js} +3 -3
- package/dist/src/{store-P8OKm19S.js → store-CPh25336.js} +3 -3
- package/dist/src/store-uQZ4AjPe.cjs +2 -0
- package/dist/src/{tables-BEIFz2tM.js → tables-BMSOS2Gg.js} +3 -3
- package/dist/src/{tables-BdZQEpRz.cjs → tables-CXbaZ9y1.cjs} +3 -3
- package/dist/src/{tables-DmzvLbeZ.js → tables-NlvH23ky.js} +3 -3
- package/dist/src/{tables-kC7R5kiK.js → tables-WgdUZ8Ck.js} +3 -3
- package/dist/src/{telemetry-DPXLd7UE.js → telemetry--iqaGyaS.js} +5 -4
- package/dist/src/{telemetry-re627Lre.cjs → telemetry-CEQxGnMZ.cjs} +8 -7
- package/dist/src/{telemetry-BugWqKiu.js → telemetry-CgdVGV8N.js} +5 -4
- package/dist/src/{telemetry-BnH5VJAU.js → telemetry-DWdGHvEf.js} +5 -4
- package/dist/src/telemetry-DjNoC_n3.cjs +2 -0
- package/dist/src/telemetry-ZdPZc0fm.js +3 -0
- package/dist/src/{text-CW1cyrwj.cjs → text-BiNME7QG.cjs} +1 -1
- package/dist/src/{text-Db-Wt2u2.js → text-D4lz-Jg_.js} +1 -1
- package/dist/src/{text-TIv0QYnd.js → text-DDQP0tuQ.js} +1 -1
- package/dist/src/{text-B_UCRPp2.js → text-NWvfMfkF.js} +1 -1
- package/dist/src/{tokenUsageUtils-DflFMjS0.js → tokenUsageUtils-2wIvAhB3.js} +7 -3
- package/dist/src/{tokenUsageUtils-BDGe-iyI.js → tokenUsageUtils-4c780gFd.js} +7 -3
- package/dist/src/{tokenUsageUtils-NYT-WKS6.js → tokenUsageUtils-BjVkdk18.js} +7 -3
- package/dist/src/{tokenUsageUtils-bVa1ga6f.cjs → tokenUsageUtils-C9odhsbW.cjs} +7 -3
- package/dist/src/{transcription-CaMivnjG.js → transcription-84t4ALo2.js} +7 -11
- package/dist/src/{transcription-Hb3VnC4M.js → transcription-Bm2emLmJ.js} +8 -11
- package/dist/src/{transcription-BvtsrzRG.cjs → transcription-CZ4LG5hQ.cjs} +9 -13
- package/dist/src/{transcription-DOMMTu01.js → transcription-D7Q0vJsh.js} +7 -13
- package/dist/src/{transform-DrleutM3.js → transform-B-b6Cq-q.js} +8 -6
- package/dist/src/transform-BQt0BeAW.js +3 -0
- package/dist/src/transform-Bq5oqC0s.cjs +2 -0
- package/dist/src/{transform-ZrG2dvlo.cjs → transform-C9izGX54.cjs} +5 -5
- package/dist/src/{transform-BzK09Q_9.js → transform-CwbAZ84V.js} +5 -5
- package/dist/src/{transform-0BwoBsvO.cjs → transform-Dg4LcO1Y.cjs} +18 -10
- package/dist/src/{transform-B2-jIv68.js → transform-DtooZqYY.js} +8 -6
- package/dist/src/{transform-ljLYHEPh.js → transform-DzCF-wqV.js} +5 -5
- package/dist/src/{transform-DyDAwEpE.js → transform-_DpNB4qp.js} +9 -7
- package/dist/src/{transform-BqPkNPYm.js → transform-eGiUAv86.js} +5 -5
- package/dist/src/{transformersAvailability-DKoRtQLy.cjs → transformersAvailability-B22swDxr.cjs} +1 -1
- package/dist/src/{transformersAvailability-BGkzavwb.js → transformersAvailability-lvCCvuPT.js} +1 -1
- package/dist/src/{transformersAvailability-D6c6ROpT.js → transformersAvailability-rJGPccjr.js} +1 -1
- package/dist/src/{types-Cd3ygw8W.js → types-BDjGOq4E.js} +354 -24
- package/dist/src/{types-CIhFeUC4.js → types-BVH9hjgW.js} +364 -23
- package/dist/src/{types-D8cGDZbL.cjs → types-CgG2rKiW.cjs} +534 -167
- package/dist/src/{types-q8GXGF65.js → types-DNRZVOue.js} +498 -167
- package/dist/src/{util-BLvy9qfE.js → util-3pBZZb_H.js} +151 -149
- package/dist/src/{util-CFj4YKIn.cjs → util-A5_ZsQUn.cjs} +66 -44
- package/dist/src/{util-BtoGs5Cb.js → util-B9CNhyac.js} +66 -44
- package/dist/src/{util-Bm3E9jpK.js → util-BQOCAHQC.js} +692 -690
- package/dist/src/{util-vNmDL5DT.js → util-BVXcTwXu.js} +138 -36
- package/dist/src/{util-CgDCK4KI.js → util-BlFVL0UF.js} +66 -44
- package/dist/src/{util-DM2rTn_6.js → util-C-kmRosx.js} +66 -44
- package/dist/src/{util-DbVG-yZU.js → util-DFPeFkiV.js} +138 -36
- package/dist/src/{util-DMFeUvLz.js → util-DN0-b81k.js} +138 -36
- package/dist/src/{util--9u9UVCt.cjs → util-Dpmm_dAI.cjs} +143 -35
- package/dist/src/{util-CMMkIxfU.js → util-Dub0f_ej.js} +693 -691
- package/dist/src/{util-CuLo2pMR.cjs → util-DvpHnLt0.cjs} +714 -719
- package/dist/src/{utils-DOjD4dTC.js → utils-BUMN8orw.js} +6 -4
- package/dist/src/{utils-DKw8mrgr.cjs → utils-DkVeShIB.cjs} +6 -4
- package/dist/src/{utils-DEuL4VNB.js → utils-kt7lv30R.js} +6 -4
- package/dist/src/{utils-CFxO9KGo.js → utils-o8S5huU2.js} +6 -4
- package/dist/src/version-0frU0UTr.js +16 -0
- package/dist/src/version-CbpiUINz.js +17 -0
- package/dist/src/version-CbuBKu2U.js +16 -0
- package/dist/src/version-D9zu9FWB.cjs +27 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +57 -46
- package/dist/src/app/assets/index-B6l9CVVb.js +0 -439
- package/dist/src/app/assets/index-DyZ0Ep37.css +0 -1
- package/dist/src/app/assets/scroll-timeline-BdJZVXlz.js +0 -1
- package/dist/src/app/assets/sync-CStkzc6u.js +0 -4
- package/dist/src/app/assets/vendor-charts-BnDWwBlI.js +0 -36
- package/dist/src/app/assets/vendor-markdown-Bz7N-ca6.js +0 -29
- package/dist/src/app/assets/vendor-react-AtKqiNEf.js +0 -4
- package/dist/src/app/assets/vendor-syntax-D06x6TQF.js +0 -2
- package/dist/src/app/assets/vendor-utils-BvMHZmO7.js +0 -37
- package/dist/src/cache-C5yFZ4gC.cjs +0 -816
- package/dist/src/cache-CaT5tPgo.js +0 -756
- package/dist/src/cache-CyCanoMu.js +0 -6
- package/dist/src/cache-DSqR6ezl.js +0 -726
- package/dist/src/cache-Df_QFDNu.cjs +0 -5
- package/dist/src/cache-HP0NP4k3.js +0 -756
- package/dist/src/cloud-DE3t1-ZI.js +0 -4
- package/dist/src/codex-sdk-BQEw16R_.js +0 -834
- package/dist/src/codex-sdk-C_07GuVS.js +0 -834
- package/dist/src/codex-sdk-DE5G18dx.js +0 -835
- package/dist/src/codex-sdk-ZLKfDjqP.cjs +0 -838
- package/dist/src/eval-7aEqoMs3.js +0 -15
- package/dist/src/evalResult-CYNHkk5A.js +0 -12
- package/dist/src/evalResult-CuvJeNiM.js +0 -10
- package/dist/src/evalResult-tGdilrWt.cjs +0 -10
- package/dist/src/evaluator-BBUqRhz1.js +0 -36
- package/dist/src/fetch-UWU706qb.js +0 -5
- package/dist/src/graders-BxfEguVY.js +0 -32
- package/dist/src/graders-CzVMbEnv.js +0 -34
- package/dist/src/graders-DjCXfj0l.cjs +0 -32
- package/dist/src/graders-kHzIWOKu.js +0 -32
- package/dist/src/messages-DJNo37Ko.js +0 -246
- package/dist/src/messages-Dy9QecMs.js +0 -245
- package/dist/src/messages-HJsyEh4o.cjs +0 -257
- package/dist/src/messages-biC_ex-p.js +0 -245
- package/dist/src/openclaw-0Sv7AK3O.js +0 -580
- package/dist/src/openclaw-CXxbKgDH.cjs +0 -586
- package/dist/src/openclaw-D1FSCps-.js +0 -580
- package/dist/src/openclaw-D2ENvu7a.js +0 -582
- package/dist/src/providers-BSLEaIQG.js +0 -32
- package/dist/src/providers-D-FnDg8k.cjs +0 -31
- package/dist/src/providers-DEYiFVAo.js +0 -30
- package/dist/src/providers-sS2WI8YD.js +0 -30
- package/dist/src/rubyUtils-B1HXG4ej.cjs +0 -4
- package/dist/src/rubyUtils-Rt6pKA96.js +0 -5
- package/dist/src/server-B0Xh1Gx-.js +0 -7
- package/dist/src/server-DJTKu9IR.cjs +0 -5
- package/dist/src/store-C5u6MgC8.js +0 -6
- package/dist/src/store-CNHk-De4.cjs +0 -5
- package/dist/src/telemetry-Yig0Tino.js +0 -7
- package/dist/src/telemetry-p8Pwqm1i.cjs +0 -5
- package/dist/src/transform-ChNIpHz7.js +0 -6
- package/dist/src/transform-PtQ6rAE3.cjs +0 -5
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { o as isLoggedIntoCloud } from "./accounts-
|
|
4
|
-
import { n as recordBlobReference, r as storeBlob } from "./blobs-
|
|
1
|
+
import { S as getEnvBool, a as logger } from "./logger-Ct2S6Yx-.js";
|
|
2
|
+
import { S as cloudConfig } from "./fetch-D9xxyC1p.js";
|
|
3
|
+
import { o as isLoggedIntoCloud } from "./accounts-CaLNYnf7.js";
|
|
4
|
+
import { n as recordBlobReference, r as storeBlob } from "./blobs-BW4U31ue.js";
|
|
5
5
|
//#region src/blobs/remoteUpload.ts
|
|
6
6
|
function buildRemoteUrl() {
|
|
7
7
|
const baseUrl = cloudConfig.getApiHost();
|
|
@@ -25,7 +25,7 @@ async function uploadBlobRemote(buffer, mimeType, context) {
|
|
|
25
25
|
const apiKey = cloudConfig.getApiKey();
|
|
26
26
|
if (!url || !apiKey) return null;
|
|
27
27
|
try {
|
|
28
|
-
const { fetchWithProxy } = await import("./fetch-
|
|
28
|
+
const { fetchWithProxy } = await import("./fetch-D9xxyC1p.js").then((n) => n.i);
|
|
29
29
|
const response = await fetchWithProxy(url, {
|
|
30
30
|
method: "POST",
|
|
31
31
|
headers: {
|
|
@@ -371,4 +371,4 @@ async function recordExistingBlobReferences(value, context, location) {
|
|
|
371
371
|
//#endregion
|
|
372
372
|
export { isBlobStorageEnabled as n, shouldAttemptRemoteBlobUpload as r, extractAndStoreBinaryData as t };
|
|
373
373
|
|
|
374
|
-
//# sourceMappingURL=extractor-
|
|
374
|
+
//# sourceMappingURL=extractor-BM3jRERL.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
const require_logger = require("./logger-
|
|
2
|
-
const require_fetch = require("./fetch-
|
|
3
|
-
const require_accounts = require("./accounts-
|
|
4
|
-
const require_blobs = require("./blobs-
|
|
1
|
+
const require_logger = require("./logger-COuQb2xB.cjs");
|
|
2
|
+
const require_fetch = require("./fetch-NuqXW1Xb.cjs");
|
|
3
|
+
const require_accounts = require("./accounts-BIFntVWB.cjs");
|
|
4
|
+
const require_blobs = require("./blobs-B95F_7vE.cjs");
|
|
5
5
|
//#region src/blobs/remoteUpload.ts
|
|
6
6
|
function buildRemoteUrl() {
|
|
7
7
|
const baseUrl = require_fetch.cloudConfig.getApiHost();
|
|
@@ -25,7 +25,7 @@ async function uploadBlobRemote(buffer, mimeType, context) {
|
|
|
25
25
|
const apiKey = require_fetch.cloudConfig.getApiKey();
|
|
26
26
|
if (!url || !apiKey) return null;
|
|
27
27
|
try {
|
|
28
|
-
const { fetchWithProxy } = await Promise.resolve().then(() => require("./fetch-
|
|
28
|
+
const { fetchWithProxy } = await Promise.resolve().then(() => require("./fetch-NuqXW1Xb.cjs")).then((n) => n.fetch_exports);
|
|
29
29
|
const response = await fetchWithProxy(url, {
|
|
30
30
|
method: "POST",
|
|
31
31
|
headers: {
|
|
@@ -388,4 +388,4 @@ Object.defineProperty(exports, "shouldAttemptRemoteBlobUpload", {
|
|
|
388
388
|
}
|
|
389
389
|
});
|
|
390
390
|
|
|
391
|
-
//# sourceMappingURL=extractor-
|
|
391
|
+
//# sourceMappingURL=extractor-Dxr2J_wK.cjs.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
import { c as isLoggedIntoCloud } from "./accounts-
|
|
4
|
-
import { a as cloudConfig } from "./cloud-
|
|
5
|
-
import { i as storeBlob, r as recordBlobReference } from "./blobs-
|
|
2
|
+
import { T as getEnvBool, s as logger } from "./logger-BbY6ypFL.js";
|
|
3
|
+
import { c as isLoggedIntoCloud } from "./accounts-CLJHCDDb.js";
|
|
4
|
+
import { a as cloudConfig } from "./cloud-Da0bofJd.js";
|
|
5
|
+
import { i as storeBlob, r as recordBlobReference } from "./blobs-DjLby-uP.js";
|
|
6
6
|
//#region src/blobs/remoteUpload.ts
|
|
7
7
|
function buildRemoteUrl() {
|
|
8
8
|
const baseUrl = cloudConfig.getApiHost();
|
|
@@ -26,7 +26,7 @@ async function uploadBlobRemote(buffer, mimeType, context) {
|
|
|
26
26
|
const apiKey = cloudConfig.getApiKey();
|
|
27
27
|
if (!url || !apiKey) return null;
|
|
28
28
|
try {
|
|
29
|
-
const { fetchWithProxy } = await import("./fetch-
|
|
29
|
+
const { fetchWithProxy } = await import("./fetch-8viavNv8.js");
|
|
30
30
|
const response = await fetchWithProxy(url, {
|
|
31
31
|
method: "POST",
|
|
32
32
|
headers: {
|
|
@@ -372,4 +372,4 @@ async function recordExistingBlobReferences(value, context, location) {
|
|
|
372
372
|
//#endregion
|
|
373
373
|
export { isBlobStorageEnabled as n, shouldAttemptRemoteBlobUpload as r, extractAndStoreBinaryData as t };
|
|
374
374
|
|
|
375
|
-
//# sourceMappingURL=extractor-
|
|
375
|
+
//# sourceMappingURL=extractor-DxyiFhPk.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { o as cloudConfig } from "./fetch-
|
|
3
|
-
import { c as isLoggedIntoCloud } from "./accounts-
|
|
4
|
-
import { i as storeBlob, r as recordBlobReference } from "./blobs-
|
|
1
|
+
import { S as getEnvBool, a as logger } from "./logger-KD8JjCRJ.js";
|
|
2
|
+
import { o as cloudConfig } from "./fetch-Y5qX_kST.js";
|
|
3
|
+
import { c as isLoggedIntoCloud } from "./accounts-bnyHT7Ju.js";
|
|
4
|
+
import { i as storeBlob, r as recordBlobReference } from "./blobs-D_gg8nbm.js";
|
|
5
5
|
//#region src/blobs/remoteUpload.ts
|
|
6
6
|
function buildRemoteUrl() {
|
|
7
7
|
const baseUrl = cloudConfig.getApiHost();
|
|
@@ -25,7 +25,7 @@ async function uploadBlobRemote(buffer, mimeType, context) {
|
|
|
25
25
|
const apiKey = cloudConfig.getApiKey();
|
|
26
26
|
if (!url || !apiKey) return null;
|
|
27
27
|
try {
|
|
28
|
-
const { fetchWithProxy } = await import("./fetch-
|
|
28
|
+
const { fetchWithProxy } = await import("./fetch-Y5qX_kST.js").then((n) => n.i);
|
|
29
29
|
const response = await fetchWithProxy(url, {
|
|
30
30
|
method: "POST",
|
|
31
31
|
headers: {
|
|
@@ -371,4 +371,4 @@ async function recordExistingBlobReferences(value, context, location) {
|
|
|
371
371
|
//#endregion
|
|
372
372
|
export { isBlobStorageEnabled as n, shouldAttemptRemoteBlobUpload as r, extractAndStoreBinaryData as t };
|
|
373
373
|
|
|
374
|
-
//# sourceMappingURL=extractor-
|
|
374
|
+
//# sourceMappingURL=extractor-YlZbUMsL.js.map
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
2
|
+
import { D as getEnvInt, N as state, O as getEnvString, T as getEnvBool, h as sanitizeUrl, o as logRequestResponse, s as logger } from "./logger-BbY6ypFL.js";
|
|
3
|
+
import { n as VERSION } from "./version-CbpiUINz.js";
|
|
4
|
+
import { t as invariant } from "./invariant-B2Rf6avk.js";
|
|
5
|
+
import { a as cloudConfig } from "./cloud-Da0bofJd.js";
|
|
6
6
|
import path from "path";
|
|
7
7
|
import yaml from "js-yaml";
|
|
8
8
|
import * as fsPromises from "fs/promises";
|
|
9
9
|
import { getProxyForUrl } from "proxy-from-env";
|
|
10
|
+
import { Agent, ProxyAgent } from "undici";
|
|
10
11
|
import { promisify } from "util";
|
|
11
12
|
import { gzip } from "zlib";
|
|
12
13
|
//#region src/providers/constants.ts
|
|
@@ -16,19 +17,6 @@ const FILE_METADATA_KEY = "_promptfooFileMetadata";
|
|
|
16
17
|
* Used to distinguish human ratings from automated assertions.
|
|
17
18
|
*/
|
|
18
19
|
const HUMAN_ASSERTION_TYPE = "human";
|
|
19
|
-
//#endregion
|
|
20
|
-
//#region src/version.ts
|
|
21
|
-
/**
|
|
22
|
-
* Application version from package.json.
|
|
23
|
-
* Injected at build time, or read from npm environment in development.
|
|
24
|
-
*/
|
|
25
|
-
const VERSION = "0.121.3";
|
|
26
|
-
/**
|
|
27
|
-
* PostHog analytics key.
|
|
28
|
-
* Only populated during production builds via PROMPTFOO_POSTHOG_KEY env var.
|
|
29
|
-
* Empty string in development/test.
|
|
30
|
-
*/
|
|
31
|
-
const POSTHOG_KEY = "phc_E5n5uHnDo2eREJL1uqX1cIlbkoRby4yFWt3V94HqRRg";
|
|
32
20
|
function getShareApiBaseUrl() {
|
|
33
21
|
return getEnvString("PROMPTFOO_REMOTE_API_BASE_URL") || "https://api.promptfoo.app";
|
|
34
22
|
}
|
|
@@ -71,8 +59,9 @@ function calculateCost(modelName, config, promptTokens, completionTokens, models
|
|
|
71
59
|
if (!Number.isFinite(promptTokens) || !Number.isFinite(completionTokens) || typeof promptTokens === "undefined" || typeof completionTokens === "undefined") return;
|
|
72
60
|
const model = models.find((m) => m.id === modelName);
|
|
73
61
|
if (!model || !model.cost) return;
|
|
74
|
-
const
|
|
75
|
-
const
|
|
62
|
+
const longContextCost = model.cost.longContext && promptTokens > model.cost.longContext.threshold ? model.cost.longContext : void 0;
|
|
63
|
+
const inputCost = config.cost ?? longContextCost?.input ?? model.cost.input;
|
|
64
|
+
const outputCost = config.cost ?? longContextCost?.output ?? model.cost.output;
|
|
76
65
|
return inputCost * promptTokens + outputCost * completionTokens;
|
|
77
66
|
}
|
|
78
67
|
/**
|
|
@@ -149,7 +138,7 @@ function isOpenAIToolChoice(obj) {
|
|
|
149
138
|
function openaiToolChoiceToAnthropic(choice) {
|
|
150
139
|
if (typeof choice === "string") switch (choice) {
|
|
151
140
|
case "auto": return { type: "auto" };
|
|
152
|
-
case "none": return { type: "
|
|
141
|
+
case "none": return { type: "none" };
|
|
153
142
|
case "required": return { type: "any" };
|
|
154
143
|
}
|
|
155
144
|
return {
|
|
@@ -285,6 +274,155 @@ function transformTools(tools, format) {
|
|
|
285
274
|
}
|
|
286
275
|
}
|
|
287
276
|
//#endregion
|
|
277
|
+
//#region src/scheduler/headerParser.ts
|
|
278
|
+
const OPENAI_HEADERS = {
|
|
279
|
+
remainingRequests: "x-ratelimit-remaining-requests",
|
|
280
|
+
remainingTokens: "x-ratelimit-remaining-tokens",
|
|
281
|
+
limitRequests: "x-ratelimit-limit-requests",
|
|
282
|
+
limitTokens: "x-ratelimit-limit-tokens",
|
|
283
|
+
resetRequests: "x-ratelimit-reset-requests",
|
|
284
|
+
resetTokens: "x-ratelimit-reset-tokens"
|
|
285
|
+
};
|
|
286
|
+
const ANTHROPIC_HEADERS = {
|
|
287
|
+
remainingRequests: "anthropic-ratelimit-requests-remaining",
|
|
288
|
+
remainingTokens: "anthropic-ratelimit-tokens-remaining",
|
|
289
|
+
limitRequests: "anthropic-ratelimit-requests-limit",
|
|
290
|
+
limitTokens: "anthropic-ratelimit-tokens-limit",
|
|
291
|
+
reset: "anthropic-ratelimit-requests-reset"
|
|
292
|
+
};
|
|
293
|
+
const STANDARD_HEADERS = {
|
|
294
|
+
remaining: "ratelimit-remaining",
|
|
295
|
+
limit: "ratelimit-limit",
|
|
296
|
+
reset: "ratelimit-reset",
|
|
297
|
+
remainingAlt: "x-ratelimit-remaining",
|
|
298
|
+
limitAlt: "x-ratelimit-limit",
|
|
299
|
+
resetAlt: "x-ratelimit-reset"
|
|
300
|
+
};
|
|
301
|
+
/**
|
|
302
|
+
* Parse rate limit headers from response.
|
|
303
|
+
*/
|
|
304
|
+
function parseRateLimitHeaders(headers) {
|
|
305
|
+
const result = {};
|
|
306
|
+
const h = lowercaseKeys(headers);
|
|
307
|
+
result.remainingRequests = parseFirstMatch(h, [
|
|
308
|
+
OPENAI_HEADERS.remainingRequests,
|
|
309
|
+
ANTHROPIC_HEADERS.remainingRequests,
|
|
310
|
+
STANDARD_HEADERS.remainingAlt,
|
|
311
|
+
STANDARD_HEADERS.remaining
|
|
312
|
+
]);
|
|
313
|
+
result.remainingTokens = parseFirstMatch(h, [OPENAI_HEADERS.remainingTokens, ANTHROPIC_HEADERS.remainingTokens]);
|
|
314
|
+
result.limitRequests = parseFirstMatch(h, [
|
|
315
|
+
OPENAI_HEADERS.limitRequests,
|
|
316
|
+
ANTHROPIC_HEADERS.limitRequests,
|
|
317
|
+
STANDARD_HEADERS.limitAlt,
|
|
318
|
+
STANDARD_HEADERS.limit
|
|
319
|
+
]);
|
|
320
|
+
result.limitTokens = parseFirstMatch(h, [OPENAI_HEADERS.limitTokens, ANTHROPIC_HEADERS.limitTokens]);
|
|
321
|
+
for (const name of [
|
|
322
|
+
OPENAI_HEADERS.resetRequests,
|
|
323
|
+
OPENAI_HEADERS.resetTokens,
|
|
324
|
+
ANTHROPIC_HEADERS.reset,
|
|
325
|
+
STANDARD_HEADERS.resetAlt,
|
|
326
|
+
STANDARD_HEADERS.reset
|
|
327
|
+
]) if (h[name] !== void 0) {
|
|
328
|
+
const parsed = parseResetTime(h[name]);
|
|
329
|
+
if (parsed !== null) {
|
|
330
|
+
result.resetAt = parsed;
|
|
331
|
+
break;
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
if (h["retry-after-ms"] !== void 0) {
|
|
335
|
+
const ms = parseInt(h["retry-after-ms"], 10);
|
|
336
|
+
if (!isNaN(ms) && ms >= 0) {
|
|
337
|
+
result.retryAfterMs = ms;
|
|
338
|
+
if (result.resetAt === void 0) result.resetAt = Date.now() + ms;
|
|
339
|
+
}
|
|
340
|
+
} else if (h["retry-after"] !== void 0) {
|
|
341
|
+
const parsed = parseRetryAfter(h["retry-after"]);
|
|
342
|
+
if (parsed !== null) {
|
|
343
|
+
result.retryAfterMs = parsed;
|
|
344
|
+
if (result.resetAt === void 0) result.resetAt = Date.now() + parsed;
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
return result;
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Parse Retry-After header value.
|
|
351
|
+
* Returns duration in milliseconds.
|
|
352
|
+
* Exported for integration use.
|
|
353
|
+
*/
|
|
354
|
+
function parseRetryAfter(value) {
|
|
355
|
+
const seconds = parseInt(value, 10);
|
|
356
|
+
if (!isNaN(seconds) && seconds >= 0 && String(seconds) === value.trim()) return seconds * 1e3;
|
|
357
|
+
const httpDate = parseHttpDate(value);
|
|
358
|
+
if (httpDate !== null) return Math.max(0, httpDate - Date.now());
|
|
359
|
+
return null;
|
|
360
|
+
}
|
|
361
|
+
function parseFirstMatch(headers, names) {
|
|
362
|
+
for (const name of names) {
|
|
363
|
+
const value = headers[name];
|
|
364
|
+
if (value !== void 0) {
|
|
365
|
+
const num = parseInt(value, 10);
|
|
366
|
+
if (!isNaN(num) && num >= 0) return num;
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Parse reset time from various formats.
|
|
372
|
+
* Returns absolute Unix timestamp in milliseconds.
|
|
373
|
+
*/
|
|
374
|
+
function parseResetTime(value) {
|
|
375
|
+
const durationMs = parseDuration(value);
|
|
376
|
+
if (durationMs !== null) return Date.now() + durationMs;
|
|
377
|
+
const num = parseFloat(value);
|
|
378
|
+
if (!isNaN(num)) if (num < 1e9) return Date.now() + num * 1e3;
|
|
379
|
+
else if (num < 1e10) return num * 1e3;
|
|
380
|
+
else return num;
|
|
381
|
+
const httpDate = parseHttpDate(value);
|
|
382
|
+
if (httpDate !== null) return httpDate;
|
|
383
|
+
return null;
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* Parse HTTP-date format (RFC 7231).
|
|
387
|
+
*/
|
|
388
|
+
function parseHttpDate(value) {
|
|
389
|
+
const timestamp = Date.parse(value);
|
|
390
|
+
if (!isNaN(timestamp)) {
|
|
391
|
+
const now = Date.now();
|
|
392
|
+
const oneYearMs = 365 * 24 * 60 * 60 * 1e3;
|
|
393
|
+
if (timestamp > now - oneYearMs && timestamp < now + oneYearMs) return timestamp;
|
|
394
|
+
}
|
|
395
|
+
return null;
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* Parse duration strings like "1s", "100ms", "1m30s", "1h30s", "2h15m30s".
|
|
399
|
+
*
|
|
400
|
+
* Supported formats:
|
|
401
|
+
* - Xms (milliseconds)
|
|
402
|
+
* - Xs or X.Xs (seconds)
|
|
403
|
+
* - Xm or XmYs (minutes with optional seconds)
|
|
404
|
+
* - Xh or XhYm or XhYs or XhYmZs (hours with optional minutes/seconds)
|
|
405
|
+
*/
|
|
406
|
+
function parseDuration(value) {
|
|
407
|
+
const match = value.match(/^(?:(\d+)h)?(?:(\d+)m(?!s))?(?:(\d+(?:\.\d+)?)(ms|s))?$/);
|
|
408
|
+
if (!match) return null;
|
|
409
|
+
const [, hours, minutes, secondsValue, secondsUnit] = match;
|
|
410
|
+
if (!hours && !minutes && !secondsValue) return null;
|
|
411
|
+
let ms = 0;
|
|
412
|
+
if (hours) ms += parseInt(hours, 10) * 36e5;
|
|
413
|
+
if (minutes) ms += parseInt(minutes, 10) * 6e4;
|
|
414
|
+
if (secondsValue) {
|
|
415
|
+
const num = parseFloat(secondsValue);
|
|
416
|
+
ms += secondsUnit === "ms" ? num : num * 1e3;
|
|
417
|
+
}
|
|
418
|
+
return ms;
|
|
419
|
+
}
|
|
420
|
+
function lowercaseKeys(obj) {
|
|
421
|
+
const result = {};
|
|
422
|
+
for (const [key, value] of Object.entries(obj)) result[key.toLowerCase()] = value;
|
|
423
|
+
return result;
|
|
424
|
+
}
|
|
425
|
+
//#endregion
|
|
288
426
|
//#region src/util/time.ts
|
|
289
427
|
function getCurrentTimestamp() {
|
|
290
428
|
return Math.floor((/* @__PURE__ */ new Date()).getTime() / 1e3);
|
|
@@ -371,9 +509,8 @@ async function monkeyPatchFetch(url, options) {
|
|
|
371
509
|
}
|
|
372
510
|
//#endregion
|
|
373
511
|
//#region src/util/fetch/index.ts
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
let cachedProxyAgents = /* @__PURE__ */ new Map();
|
|
512
|
+
const cachedAgents = /* @__PURE__ */ new Map();
|
|
513
|
+
const cachedProxyAgents = /* @__PURE__ */ new Map();
|
|
377
514
|
/**
|
|
378
515
|
* Get the connection pool size for HTTP agents.
|
|
379
516
|
* Priority: PROMPTFOO_FETCH_CONNECTIONS env var > CLI -j flag > DEFAULT_MAX_CONCURRENCY (4).
|
|
@@ -393,44 +530,44 @@ function getConnectionPoolSize() {
|
|
|
393
530
|
* Exported for testing only.
|
|
394
531
|
*/
|
|
395
532
|
function clearAgentCache() {
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
cachedAgentConcurrency = void 0;
|
|
533
|
+
for (const agent of cachedAgents.values()) if (typeof agent.close === "function") agent.close();
|
|
534
|
+
cachedAgents.clear();
|
|
399
535
|
for (const agent of cachedProxyAgents.values()) if (typeof agent.close === "function") agent.close();
|
|
400
|
-
cachedProxyAgents
|
|
536
|
+
cachedProxyAgents.clear();
|
|
401
537
|
}
|
|
402
538
|
function getOrCreateAgent(tlsOptions) {
|
|
403
539
|
const concurrency = getConnectionPoolSize();
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
}
|
|
418
|
-
return cachedAgent;
|
|
540
|
+
const existing = cachedAgents.get(concurrency);
|
|
541
|
+
if (existing) return existing;
|
|
542
|
+
const agent = new Agent({
|
|
543
|
+
headersTimeout: REQUEST_TIMEOUT_MS,
|
|
544
|
+
keepAliveTimeout: 3e4,
|
|
545
|
+
keepAliveMaxTimeout: 6e4,
|
|
546
|
+
connections: concurrency,
|
|
547
|
+
connect: tlsOptions
|
|
548
|
+
});
|
|
549
|
+
cachedAgents.set(concurrency, agent);
|
|
550
|
+
return agent;
|
|
551
|
+
}
|
|
552
|
+
function getProxyAgentCacheKey(proxyUrl, concurrency) {
|
|
553
|
+
return `${proxyUrl}::${concurrency}`;
|
|
419
554
|
}
|
|
420
555
|
function getOrCreateProxyAgent(proxyUrl, tlsOptions) {
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
556
|
+
const concurrency = getConnectionPoolSize();
|
|
557
|
+
const cacheKey = getProxyAgentCacheKey(proxyUrl, concurrency);
|
|
558
|
+
const existing = cachedProxyAgents.get(cacheKey);
|
|
559
|
+
if (existing) return existing;
|
|
560
|
+
const agent = new ProxyAgent({
|
|
561
|
+
uri: proxyUrl,
|
|
562
|
+
proxyTls: tlsOptions,
|
|
563
|
+
requestTls: tlsOptions,
|
|
564
|
+
headersTimeout: REQUEST_TIMEOUT_MS,
|
|
565
|
+
keepAliveTimeout: 3e4,
|
|
566
|
+
keepAliveMaxTimeout: 6e4,
|
|
567
|
+
connections: concurrency
|
|
568
|
+
});
|
|
569
|
+
cachedProxyAgents.set(cacheKey, agent);
|
|
570
|
+
return agent;
|
|
434
571
|
}
|
|
435
572
|
async function fetchWithProxy(url, options = {}, abortSignal) {
|
|
436
573
|
let finalUrl = url;
|
|
@@ -532,12 +669,14 @@ async function handleRateLimit(response) {
|
|
|
532
669
|
const retryAfter = response.headers.get("Retry-After");
|
|
533
670
|
const openaiReset = response.headers.get("x-ratelimit-reset-requests") || response.headers.get("x-ratelimit-reset-tokens");
|
|
534
671
|
let waitTime = 6e4;
|
|
535
|
-
if (openaiReset)
|
|
536
|
-
|
|
672
|
+
if (openaiReset) {
|
|
673
|
+
const parsedHeaders = parseRateLimitHeaders(Object.fromEntries(response.headers.entries()));
|
|
674
|
+
if (parsedHeaders.resetAt !== void 0) waitTime = Math.max(parsedHeaders.resetAt - Date.now(), 0);
|
|
675
|
+
} else if (rateLimitReset) {
|
|
537
676
|
const resetTime = /* @__PURE__ */ new Date(Number.parseInt(rateLimitReset) * 1e3);
|
|
538
677
|
const now = /* @__PURE__ */ new Date();
|
|
539
678
|
waitTime = Math.max(resetTime.getTime() - now.getTime() + 1e3, 0);
|
|
540
|
-
} else if (retryAfter) waitTime =
|
|
679
|
+
} else if (retryAfter) waitTime = parseRetryAfter(retryAfter) ?? waitTime;
|
|
541
680
|
logger.debug(`Rate limited, waiting ${waitTime}ms before retry`);
|
|
542
681
|
await sleep(waitTime);
|
|
543
682
|
}
|
|
@@ -593,6 +732,6 @@ async function fetchWithRetries(url, options = {}, timeout, maxRetries) {
|
|
|
593
732
|
throw new Error(`Request failed after ${maxRetries} retries: ${lastErrorMessage}`);
|
|
594
733
|
}
|
|
595
734
|
//#endregion
|
|
596
|
-
export {
|
|
735
|
+
export { getDefaultPort as A, transformToolChoice as C, EVENTS_ENDPOINT as D, CONSENT_ENDPOINT as E, HUMAN_ASSERTION_TYPE as F, getShareApiBaseUrl as M, getShareViewBaseUrl as N, R_ENDPOINT as O, FILE_METADATA_KEY as P, toTitleCase as S, CLOUD_PROVIDER_PREFIX as T, isOpenAIToolChoice as _, handleRateLimit as a, openaiToolsToBedrock as b, getCurrentTimestamp as c, parseRateLimitHeaders as d, parseRetryAfter as f, isOpenAIToolArray as g, calculateCost as h, fetchWithTimeout as i, getDefaultShareViewBaseUrl as j, TERMINAL_MAX_WIDTH as k, sleep as l, REQUEST_TIMEOUT_MS as m, fetchWithProxy as n, isRateLimited as o, LONG_RUNNING_MODEL_TIMEOUT_MS as p, fetchWithRetries as r, isTransientError as s, clearAgentCache as t, sleepWithAbort as u, isPromptfooSampleTarget as v, transformTools as w, parseChatPrompt as x, openaiToolChoiceToBedrock as y };
|
|
597
736
|
|
|
598
|
-
//# sourceMappingURL=fetch-
|
|
737
|
+
//# sourceMappingURL=fetch-B6ch2nU2.js.map
|