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,21 +1,24 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
1
|
+
import { S as getEnvBool, a as logger, f as sanitizeObject, k as state } from "./logger-KD8JjCRJ.js";
|
|
2
|
+
import { A as TERMINAL_MAX_WIDTH, t as fetchWithProxy } from "./fetch-Y5qX_kST.js";
|
|
3
|
+
import { n as VERSION } from "./version-0frU0UTr.js";
|
|
4
|
+
import { t as invariant } from "./invariant-DIYf9sP1.js";
|
|
5
|
+
import { o as safeResolve, r as importModule, t as getDirectory } from "./esm-B6whoAcf.js";
|
|
6
|
+
import { a as getNunjucksEngine, n as renderVarsInObject } from "./render-7uNJ2V14.js";
|
|
7
|
+
import { m as isProviderOptions, o as OutputFileExtension, p as isApiProvider, s as ResultFailureReason } from "./types-BDjGOq4E.js";
|
|
8
|
+
import { i as isJavascriptFile, t as JAVASCRIPT_EXTENSIONS } from "./fileExtensions-BGh-W-HT.js";
|
|
9
|
+
import { r as runPython } from "./pythonUtils-C4tltmIn.js";
|
|
8
10
|
import dotenv from "dotenv";
|
|
9
|
-
import * as fs$
|
|
11
|
+
import * as fs$2 from "fs";
|
|
12
|
+
import fs from "fs";
|
|
10
13
|
import * as path$1 from "path";
|
|
11
14
|
import path from "path";
|
|
12
15
|
import * as os$1 from "os";
|
|
13
16
|
import yaml from "js-yaml";
|
|
14
17
|
import * as fsPromises from "fs/promises";
|
|
15
18
|
import dedent from "dedent";
|
|
19
|
+
import nunjucks from "nunjucks";
|
|
16
20
|
import { parse as parse$1 } from "csv-parse/sync";
|
|
17
21
|
import { globSync, hasMagic } from "glob";
|
|
18
|
-
import nunjucks from "nunjucks";
|
|
19
22
|
import deepEqual from "fast-deep-equal";
|
|
20
23
|
import { XMLBuilder } from "fast-xml-parser";
|
|
21
24
|
import { stringify } from "csv-stringify/sync";
|
|
@@ -67,130 +70,6 @@ function parseFileUrl(fileUrl) {
|
|
|
67
70
|
return { filePath: urlWithoutProtocol };
|
|
68
71
|
}
|
|
69
72
|
//#endregion
|
|
70
|
-
//#region src/util/templates.ts
|
|
71
|
-
/**
|
|
72
|
-
* Get a Nunjucks engine instance with optional filters and configuration.
|
|
73
|
-
* @param filters - Optional map of custom Nunjucks filters.
|
|
74
|
-
* @param throwOnUndefined - Whether to throw an error on undefined variables.
|
|
75
|
-
* @param isGrader - Whether this engine is being used in a grader context.
|
|
76
|
-
* Nunjucks is always enabled in grader mode.
|
|
77
|
-
* @returns A configured Nunjucks environment.
|
|
78
|
-
*/
|
|
79
|
-
function getNunjucksEngine(filters, throwOnUndefined = false, isGrader = false) {
|
|
80
|
-
if (!isGrader && getEnvBool("PROMPTFOO_DISABLE_TEMPLATING")) return { renderString: (template) => template };
|
|
81
|
-
const env = nunjucks.configure({
|
|
82
|
-
autoescape: false,
|
|
83
|
-
throwOnUndefined
|
|
84
|
-
});
|
|
85
|
-
const envGlobals = {
|
|
86
|
-
...getEnvBool("PROMPTFOO_DISABLE_TEMPLATE_ENV_VARS", getEnvBool("PROMPTFOO_SELF_HOSTED", false)) ? {} : process.env,
|
|
87
|
-
...state.config?.env
|
|
88
|
-
};
|
|
89
|
-
env.addGlobal("env", envGlobals);
|
|
90
|
-
env.addFilter("load", function(str) {
|
|
91
|
-
return JSON.parse(str);
|
|
92
|
-
});
|
|
93
|
-
if (filters) for (const [name, filter] of Object.entries(filters)) env.addFilter(name, filter);
|
|
94
|
-
return env;
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Parse Nunjucks template to extract variables.
|
|
98
|
-
* @param template - The Nunjucks template string.
|
|
99
|
-
* @returns An array of variables used in the template.
|
|
100
|
-
*/
|
|
101
|
-
function extractVariablesFromTemplate(template) {
|
|
102
|
-
const variableSet = /* @__PURE__ */ new Set();
|
|
103
|
-
const regex = /\{\{[\s]*([^{}\s|]+)[\s]*(?:\|[^}]+)?\}\}|\{%[\s]*(?:if|for)[\s]+([^{}\s]+)[\s]*.*?%\}/g;
|
|
104
|
-
template = template.replace(/\{#[\s\S]*?#\}/g, "");
|
|
105
|
-
let match;
|
|
106
|
-
while ((match = regex.exec(template)) !== null) {
|
|
107
|
-
const variable = match[1] || match[2];
|
|
108
|
-
if (variable) variableSet.add(variable);
|
|
109
|
-
}
|
|
110
|
-
const forLoopRegex = /\{%[\s]*for[\s]+(\w+)[\s]+in[\s]+(\w+)[\s]*%\}/g;
|
|
111
|
-
while ((match = forLoopRegex.exec(template)) !== null) {
|
|
112
|
-
variableSet.delete(match[1]);
|
|
113
|
-
variableSet.add(match[2]);
|
|
114
|
-
}
|
|
115
|
-
return Array.from(variableSet);
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Extract variables from multiple Nunjucks templates.
|
|
119
|
-
* @param templates - An array of Nunjucks template strings.
|
|
120
|
-
* @returns An array of variables used in the templates.
|
|
121
|
-
*/
|
|
122
|
-
function extractVariablesFromTemplates(templates) {
|
|
123
|
-
const variableSet = /* @__PURE__ */ new Set();
|
|
124
|
-
for (const template of templates) extractVariablesFromTemplate(template).forEach((variable) => variableSet.add(variable));
|
|
125
|
-
return Array.from(variableSet);
|
|
126
|
-
}
|
|
127
|
-
//#endregion
|
|
128
|
-
//#region src/util/render.ts
|
|
129
|
-
/**
|
|
130
|
-
* Renders ONLY environment variable templates in an object, leaving all other templates untouched.
|
|
131
|
-
* This allows env vars to be resolved at provider load time while preserving runtime var templates.
|
|
132
|
-
*
|
|
133
|
-
* Supports full Nunjucks syntax for env vars including filters and expressions:
|
|
134
|
-
* - {{ env.VAR_NAME }}
|
|
135
|
-
* - {{ env['VAR-NAME'] }}
|
|
136
|
-
* - {{ env["VAR-NAME"] }}
|
|
137
|
-
* - {{ env.VAR | default('fallback') }}
|
|
138
|
-
* - {{ env.VAR | upper }}
|
|
139
|
-
*
|
|
140
|
-
* Preserves non-env templates for runtime rendering:
|
|
141
|
-
* - {{ vars.x }} - preserved as literal
|
|
142
|
-
* - {{ prompt }} - preserved as literal
|
|
143
|
-
*
|
|
144
|
-
* Implementation: Uses regex to find env templates, delegates to Nunjucks for rendering.
|
|
145
|
-
* This ensures full Nunjucks feature support while preserving non-env templates.
|
|
146
|
-
*
|
|
147
|
-
* @param obj - The object to process
|
|
148
|
-
* @param envOverrides - Optional env vars to merge with (or replace) the base env
|
|
149
|
-
* @param replaceBase - If true, envOverrides replaces the base env entirely instead of merging
|
|
150
|
-
* @returns The object with only env templates rendered
|
|
151
|
-
*/
|
|
152
|
-
function renderEnvOnlyInObject(obj, envOverrides, replaceBase) {
|
|
153
|
-
if (getEnvBool("PROMPTFOO_DISABLE_TEMPLATING")) return obj;
|
|
154
|
-
if (typeof obj === "string") {
|
|
155
|
-
const nunjucks = getNunjucksEngine();
|
|
156
|
-
const baseEnvGlobals = nunjucks.getGlobal("env");
|
|
157
|
-
const envGlobals = replaceBase ? envOverrides ?? {} : envOverrides ? {
|
|
158
|
-
...baseEnvGlobals,
|
|
159
|
-
...envOverrides
|
|
160
|
-
} : baseEnvGlobals;
|
|
161
|
-
return obj.replace(/\{\{(?:[^}]|\}(?!\}))*\}\}/g, (match) => {
|
|
162
|
-
if (!match.match(/\benv\.|env\[/)) return match;
|
|
163
|
-
const varMatch = match.match(/env\.(\w+)|env\[['"]([^'"]+)['"]\]/);
|
|
164
|
-
const varName = varMatch?.[1] || varMatch?.[2];
|
|
165
|
-
if (match.includes("|") || varName && varName in envGlobals && envGlobals[varName] !== void 0) try {
|
|
166
|
-
return nunjucks.renderString(match, { env: envGlobals });
|
|
167
|
-
} catch (error) {
|
|
168
|
-
logger.debug(`Failed to render env template "${match}": ${error instanceof Error ? error.message : String(error)}`);
|
|
169
|
-
return match;
|
|
170
|
-
}
|
|
171
|
-
return match;
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
if (Array.isArray(obj)) return obj.map((item) => renderEnvOnlyInObject(item, envOverrides, replaceBase));
|
|
175
|
-
if (typeof obj === "object" && obj !== null) {
|
|
176
|
-
const result = {};
|
|
177
|
-
for (const key in obj) result[key] = renderEnvOnlyInObject(obj[key], envOverrides, replaceBase);
|
|
178
|
-
return result;
|
|
179
|
-
}
|
|
180
|
-
return obj;
|
|
181
|
-
}
|
|
182
|
-
function renderVarsInObject(obj, vars) {
|
|
183
|
-
if (!vars || getEnvBool("PROMPTFOO_DISABLE_TEMPLATING")) return obj;
|
|
184
|
-
if (typeof obj === "string") return getNunjucksEngine().renderString(obj, vars);
|
|
185
|
-
if (Array.isArray(obj)) return obj.map((item) => renderVarsInObject(item, vars));
|
|
186
|
-
if (typeof obj === "object" && obj !== null) {
|
|
187
|
-
const result = {};
|
|
188
|
-
for (const key in obj) result[key] = renderVarsInObject(obj[key], vars);
|
|
189
|
-
return result;
|
|
190
|
-
} else if (typeof obj === "function") return renderVarsInObject(obj({ vars }));
|
|
191
|
-
return obj;
|
|
192
|
-
}
|
|
193
|
-
//#endregion
|
|
194
73
|
//#region src/util/file.ts
|
|
195
74
|
/**
|
|
196
75
|
* Simple Nunjucks engine specifically for file paths
|
|
@@ -244,7 +123,7 @@ function maybeLoadFromExternalFile(filePath, context) {
|
|
|
244
123
|
for (const matchedFile of matchedFiles) {
|
|
245
124
|
let contents;
|
|
246
125
|
try {
|
|
247
|
-
contents = fs$
|
|
126
|
+
contents = fs$2.readFileSync(matchedFile, "utf8");
|
|
248
127
|
} catch (error) {
|
|
249
128
|
if (error.code === "ENOENT") {
|
|
250
129
|
logger.debug(`File disappeared during glob expansion: ${matchedFile}`);
|
|
@@ -272,7 +151,7 @@ function maybeLoadFromExternalFile(filePath, context) {
|
|
|
272
151
|
const finalPath = resolvedPath;
|
|
273
152
|
let contents;
|
|
274
153
|
try {
|
|
275
|
-
contents = fs$
|
|
154
|
+
contents = fs$2.readFileSync(finalPath, "utf8");
|
|
276
155
|
} catch (error) {
|
|
277
156
|
if (error.code === "ENOENT") throw new Error(`File does not exist: ${finalPath}`);
|
|
278
157
|
throw new Error(`Failed to read file ${finalPath}: ${error}`);
|
|
@@ -315,10 +194,10 @@ function getResolvedRelativePath(filePath, isCloudConfig) {
|
|
|
315
194
|
*/
|
|
316
195
|
function maybeLoadConfigFromExternalFile(config, context) {
|
|
317
196
|
if (Array.isArray(config)) return config.map((item) => maybeLoadConfigFromExternalFile(item, context));
|
|
318
|
-
if (
|
|
197
|
+
if (typeof config === "object" && config !== null) {
|
|
319
198
|
const result = {};
|
|
320
199
|
for (const key of Object.keys(config)) {
|
|
321
|
-
const childContext = key === "value" &&
|
|
200
|
+
const childContext = key === "value" && "type" in config && typeof config.type === "string" && (config.type === "python" || config.type === "javascript") ? "assertion" : key === "vars" ? "vars" : context;
|
|
322
201
|
result[key] = maybeLoadConfigFromExternalFile(config[key], childContext);
|
|
323
202
|
}
|
|
324
203
|
return result;
|
|
@@ -350,7 +229,7 @@ function parsePathOrGlob(basePath, promptPath) {
|
|
|
350
229
|
}
|
|
351
230
|
let stats;
|
|
352
231
|
try {
|
|
353
|
-
stats = fs$
|
|
232
|
+
stats = fs$2.statSync(path$1.join(basePath, filename));
|
|
354
233
|
} catch (err) {
|
|
355
234
|
if (getEnvBool("PROMPTFOO_STRICT_FILES")) throw err;
|
|
356
235
|
}
|
|
@@ -367,7 +246,7 @@ function parsePathOrGlob(basePath, promptPath) {
|
|
|
367
246
|
function readOutput(outputPath) {
|
|
368
247
|
const ext = path$1.parse(outputPath).ext.slice(1);
|
|
369
248
|
switch (ext) {
|
|
370
|
-
case "json": return JSON.parse(fs$
|
|
249
|
+
case "json": return JSON.parse(fs$2.readFileSync(outputPath, "utf-8"));
|
|
371
250
|
default: throw new Error(`Unsupported output file format: ${ext} currently only supports json`);
|
|
372
251
|
}
|
|
373
252
|
}
|
|
@@ -506,11 +385,32 @@ async function maybeLoadToolsFromExternalFile(tools, vars) {
|
|
|
506
385
|
return loaded;
|
|
507
386
|
}
|
|
508
387
|
//#endregion
|
|
509
|
-
//#region src/util/
|
|
388
|
+
//#region src/util/providerRef.ts
|
|
389
|
+
const PROVIDER_OPTION_KEYS = new Set([
|
|
390
|
+
"id",
|
|
391
|
+
"label",
|
|
392
|
+
"config",
|
|
393
|
+
"prompts",
|
|
394
|
+
"transform",
|
|
395
|
+
"delay",
|
|
396
|
+
"env",
|
|
397
|
+
"inputs"
|
|
398
|
+
]);
|
|
399
|
+
/** Returns true if the value is a non-empty string suitable as a provider identifier. */
|
|
400
|
+
function isValidProviderId(id) {
|
|
401
|
+
return typeof id === "string" && id !== "";
|
|
402
|
+
}
|
|
403
|
+
function getProviderLabel(provider) {
|
|
404
|
+
if ((typeof provider === "object" || typeof provider === "function") && provider !== null && "label" in provider && typeof provider.label === "string") return provider.label;
|
|
405
|
+
}
|
|
406
|
+
/**
|
|
407
|
+
* Resolves relative file paths in provider IDs to absolute paths for consistent matching.
|
|
408
|
+
* Handles file://, exec:, python:, golang: prefixes and bare .js/.ts/.mjs paths.
|
|
409
|
+
*/
|
|
510
410
|
function canonicalizeProviderId(id) {
|
|
511
411
|
if (id.startsWith("file://")) {
|
|
512
412
|
const filePath = id.slice(7);
|
|
513
|
-
return path
|
|
413
|
+
return path.isAbsolute(filePath) ? id : `file://${path.resolve(filePath)}`;
|
|
514
414
|
}
|
|
515
415
|
for (const prefix of [
|
|
516
416
|
"exec:",
|
|
@@ -518,19 +418,121 @@ function canonicalizeProviderId(id) {
|
|
|
518
418
|
"golang:"
|
|
519
419
|
]) if (id.startsWith(prefix)) {
|
|
520
420
|
const filePath = id.slice(prefix.length);
|
|
521
|
-
if (filePath.includes("/") || filePath.includes("\\")) return `${prefix}${path
|
|
421
|
+
if (filePath.includes("/") || filePath.includes("\\")) return `${prefix}${path.resolve(filePath)}`;
|
|
522
422
|
return id;
|
|
523
423
|
}
|
|
524
|
-
if ((id.endsWith(".js") || id.endsWith(".ts") || id.endsWith(".mjs")) && (id.includes("/") || id.includes("\\"))) return `file://${path
|
|
424
|
+
if ((id.endsWith(".js") || id.endsWith(".ts") || id.endsWith(".mjs")) && (id.includes("/") || id.includes("\\"))) return `file://${path.resolve(id)}`;
|
|
525
425
|
return id;
|
|
526
426
|
}
|
|
527
|
-
|
|
528
|
-
|
|
427
|
+
/**
|
|
428
|
+
* Returns true for provider refs that should be expanded from YAML/JSON config files.
|
|
429
|
+
*/
|
|
430
|
+
function isProviderConfigFileReference(providerPath) {
|
|
431
|
+
return providerPath.startsWith("file://") && (providerPath.endsWith(".yaml") || providerPath.endsWith(".yml") || providerPath.endsWith(".json"));
|
|
432
|
+
}
|
|
433
|
+
/**
|
|
434
|
+
* Reads a provider config file and normalizes single-provider and multi-provider files.
|
|
435
|
+
* Returns a `wasArray` flag so callers can detect multi-provider files that require
|
|
436
|
+
* `loadApiProviders` instead of `loadApiProvider`.
|
|
437
|
+
*/
|
|
438
|
+
function readProviderConfigFile(providerPath, basePath) {
|
|
439
|
+
const relativePath = providerPath.slice(7);
|
|
440
|
+
const resolvedPath = path.isAbsolute(relativePath) ? relativePath : path.join(basePath || process.cwd(), relativePath);
|
|
441
|
+
let rawContent;
|
|
442
|
+
try {
|
|
443
|
+
rawContent = yaml.load(fs.readFileSync(resolvedPath, "utf8"));
|
|
444
|
+
} catch (err) {
|
|
445
|
+
throw new Error(`Failed to load provider config ${relativePath}: ${err instanceof Error ? err.message : err}`);
|
|
446
|
+
}
|
|
447
|
+
const fileContent = maybeLoadConfigFromExternalFile(rawContent);
|
|
448
|
+
invariant(fileContent, `Provider config ${relativePath} is undefined`);
|
|
449
|
+
return {
|
|
450
|
+
configs: [fileContent].flat(),
|
|
451
|
+
relativePath,
|
|
452
|
+
wasArray: Array.isArray(fileContent)
|
|
453
|
+
};
|
|
454
|
+
}
|
|
455
|
+
/**
|
|
456
|
+
* Loads provider config objects from a file-backed provider reference.
|
|
457
|
+
*/
|
|
458
|
+
function loadProviderConfigsFromFile(providerPath, basePath) {
|
|
459
|
+
return readProviderConfigFile(providerPath, basePath).configs;
|
|
529
460
|
}
|
|
461
|
+
/**
|
|
462
|
+
* Pure, synchronous classifier that converts every supported provider reference shape
|
|
463
|
+
* into a discriminated descriptor. Does not read files or instantiate providers.
|
|
464
|
+
*/
|
|
465
|
+
function normalizeProviderRef(provider, options = {}) {
|
|
466
|
+
const { index } = options;
|
|
467
|
+
if (typeof provider === "string") {
|
|
468
|
+
if (!isValidProviderId(provider)) return {
|
|
469
|
+
kind: "unknown",
|
|
470
|
+
id: index === void 0 ? "unknown" : `unknown-${index}`
|
|
471
|
+
};
|
|
472
|
+
if (isProviderConfigFileReference(provider)) return {
|
|
473
|
+
kind: "file",
|
|
474
|
+
id: provider,
|
|
475
|
+
loadProviderPath: provider
|
|
476
|
+
};
|
|
477
|
+
return {
|
|
478
|
+
kind: "named",
|
|
479
|
+
id: provider,
|
|
480
|
+
loadProviderPath: provider
|
|
481
|
+
};
|
|
482
|
+
}
|
|
483
|
+
if (typeof provider === "function") {
|
|
484
|
+
const label = getProviderLabel(provider);
|
|
485
|
+
return {
|
|
486
|
+
kind: "function",
|
|
487
|
+
id: label ?? (index === void 0 ? "custom-function" : `custom-function-${index}`),
|
|
488
|
+
label
|
|
489
|
+
};
|
|
490
|
+
}
|
|
491
|
+
if (typeof provider === "object" && provider !== null && !Array.isArray(provider)) {
|
|
492
|
+
const providerId = provider.id;
|
|
493
|
+
const label = getProviderLabel(provider);
|
|
494
|
+
if (isValidProviderId(providerId)) return {
|
|
495
|
+
kind: "options",
|
|
496
|
+
id: providerId,
|
|
497
|
+
label,
|
|
498
|
+
loadOptions: provider,
|
|
499
|
+
loadProviderPath: providerId
|
|
500
|
+
};
|
|
501
|
+
const keys = Object.keys(provider);
|
|
502
|
+
if (keys.length === 1 && !PROVIDER_OPTION_KEYS.has(keys[0])) {
|
|
503
|
+
const originalId = keys[0];
|
|
504
|
+
const providerObject = provider[originalId];
|
|
505
|
+
if (typeof providerObject === "object" && providerObject !== null && !Array.isArray(providerObject) && isValidProviderId(originalId)) {
|
|
506
|
+
const id = isValidProviderId(providerObject.id) ? providerObject.id : originalId;
|
|
507
|
+
return {
|
|
508
|
+
kind: "map",
|
|
509
|
+
id,
|
|
510
|
+
label: getProviderLabel(providerObject),
|
|
511
|
+
loadOptions: {
|
|
512
|
+
...providerObject,
|
|
513
|
+
id
|
|
514
|
+
},
|
|
515
|
+
loadProviderPath: originalId
|
|
516
|
+
};
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
if (isValidProviderId(label)) return {
|
|
520
|
+
kind: "unknown",
|
|
521
|
+
id: label,
|
|
522
|
+
label
|
|
523
|
+
};
|
|
524
|
+
}
|
|
525
|
+
return {
|
|
526
|
+
kind: "unknown",
|
|
527
|
+
id: index === void 0 ? "unknown" : `unknown-${index}`
|
|
528
|
+
};
|
|
529
|
+
}
|
|
530
|
+
//#endregion
|
|
531
|
+
//#region src/util/provider.ts
|
|
530
532
|
function providerToIdentifier(provider) {
|
|
531
533
|
if (!provider) return;
|
|
532
534
|
if (typeof provider === "string") return canonicalizeProviderId(provider);
|
|
533
|
-
const label =
|
|
535
|
+
const { label } = normalizeProviderRef(provider);
|
|
534
536
|
if (label) return label;
|
|
535
537
|
if (isApiProvider(provider)) return canonicalizeProviderId(provider.id());
|
|
536
538
|
if (isProviderOptions(provider)) {
|
|
@@ -797,7 +799,7 @@ function setupEnv(envPath) {
|
|
|
797
799
|
dotenv.config({ quiet: true });
|
|
798
800
|
return;
|
|
799
801
|
}
|
|
800
|
-
for (const p of paths) if (!fs$
|
|
802
|
+
for (const p of paths) if (!fs$2.existsSync(p)) throw new Error(`Environment file not found: ${p}`);
|
|
801
803
|
if (paths.length === 1) logger.info(`Loading environment variables from ${paths[0]}`);
|
|
802
804
|
else logger.info(`Loading environment variables from: ${paths.join(", ")}`);
|
|
803
805
|
const pathArg = paths.length === 1 ? paths[0] : paths;
|
|
@@ -1421,6 +1423,6 @@ function printBorder() {
|
|
|
1421
1423
|
logger.info(border);
|
|
1422
1424
|
}
|
|
1423
1425
|
//#endregion
|
|
1424
|
-
export {
|
|
1426
|
+
export { maybeLoadFromExternalFileWithVars as A, loadProviderConfigsFromFile as C, getResolvedRelativePath as D, getNunjucksEngineForFilePath as E, readOutput as F, loadFunction as I, parseFileUrl as L, maybeLoadToolsFromExternalFile as M, parsePathOrGlob as N, maybeLoadConfigFromExternalFile as O, readFilters as P, isProviderConfigFileReference as S, readProviderConfigFile as T, getProviderDescription as _, evalTableToJson as a, isOpenAiProvider as b, fetchCsvFromGoogleSheet as c, extractRuntimeVars as d, filterRuntimeVars as f, doesProviderRefMatch as g, checkProviderApiKeys as h, ComparisonEvalNotFoundError as i, maybeLoadResponseFormatFromExternalFile as j, maybeLoadFromExternalFile as k, setupEnv as l, resultIsForTestCase as m, writeMultipleOutputs as n, generateEvalCsv as o, getTestCaseDeduplicationKey as p, writeOutput as r, mergeComparisonTables as s, printBorder as t, deduplicateTestCases as u, isAnthropicProvider as v, normalizeProviderRef as w, isProviderAllowed as x, isGoogleProvider as y };
|
|
1425
1427
|
|
|
1426
|
-
//# sourceMappingURL=util-
|
|
1428
|
+
//# sourceMappingURL=util-3pBZZb_H.js.map
|
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
const require_logger = require("./logger-
|
|
2
|
-
const
|
|
3
|
-
const
|
|
1
|
+
const require_logger = require("./logger-COuQb2xB.cjs");
|
|
2
|
+
const require_fetch = require("./fetch-NuqXW1Xb.cjs");
|
|
3
|
+
const require_util = require("./util-DvpHnLt0.cjs");
|
|
4
4
|
let openai = require("openai");
|
|
5
5
|
openai = require_logger.__toESM(openai);
|
|
6
6
|
//#region src/providers/openai/util.ts
|
|
7
7
|
const ajv = require_logger.getAjv();
|
|
8
|
+
const GPT_5_4_LONG_CONTEXT_THRESHOLD = 272e3;
|
|
8
9
|
const OPENAI_CHAT_MODELS = [
|
|
9
|
-
{
|
|
10
|
-
id:
|
|
10
|
+
...["gpt-4o-mini-tts", "gpt-4o-mini-tts-2025-12-15"].map((model) => ({
|
|
11
|
+
id: model,
|
|
11
12
|
cost: {
|
|
12
13
|
input: .6 / 1e6,
|
|
13
14
|
output: 0 / 1e6,
|
|
14
15
|
audioOutput: 12 / 1e6
|
|
15
16
|
}
|
|
16
|
-
},
|
|
17
|
+
})),
|
|
17
18
|
...["gpt-4o-search-preview", "gpt-4o-search-preview-2025-03-11"].map((model) => ({
|
|
18
19
|
id: model,
|
|
19
20
|
cost: {
|
|
@@ -360,7 +361,12 @@ const OPENAI_CHAT_MODELS = [
|
|
|
360
361
|
id: model,
|
|
361
362
|
cost: {
|
|
362
363
|
input: 2.5 / 1e6,
|
|
363
|
-
output: 15 / 1e6
|
|
364
|
+
output: 15 / 1e6,
|
|
365
|
+
longContext: {
|
|
366
|
+
threshold: GPT_5_4_LONG_CONTEXT_THRESHOLD,
|
|
367
|
+
input: 5 / 1e6,
|
|
368
|
+
output: 22.5 / 1e6
|
|
369
|
+
}
|
|
364
370
|
}
|
|
365
371
|
})),
|
|
366
372
|
...["gpt-5.4-mini", "gpt-5.4-mini-2026-03-17"].map((model) => ({
|
|
@@ -377,13 +383,6 @@ const OPENAI_CHAT_MODELS = [
|
|
|
377
383
|
output: 1.25 / 1e6
|
|
378
384
|
}
|
|
379
385
|
})),
|
|
380
|
-
...["gpt-5.4-pro", "gpt-5.4-pro-2026-03-05"].map((model) => ({
|
|
381
|
-
id: model,
|
|
382
|
-
cost: {
|
|
383
|
-
input: 30 / 1e6,
|
|
384
|
-
output: 180 / 1e6
|
|
385
|
-
}
|
|
386
|
-
})),
|
|
387
386
|
...["gpt-audio", "gpt-audio-2025-08-28"].map((model) => ({
|
|
388
387
|
id: model,
|
|
389
388
|
cost: {
|
|
@@ -393,7 +392,20 @@ const OPENAI_CHAT_MODELS = [
|
|
|
393
392
|
audioOutput: 80 / 1e6
|
|
394
393
|
}
|
|
395
394
|
})),
|
|
396
|
-
|
|
395
|
+
{
|
|
396
|
+
id: "gpt-audio-1.5",
|
|
397
|
+
cost: {
|
|
398
|
+
input: 2.5 / 1e6,
|
|
399
|
+
output: 10 / 1e6,
|
|
400
|
+
audioInput: 32 / 1e6,
|
|
401
|
+
audioOutput: 64 / 1e6
|
|
402
|
+
}
|
|
403
|
+
},
|
|
404
|
+
...[
|
|
405
|
+
"gpt-audio-mini",
|
|
406
|
+
"gpt-audio-mini-2025-12-15",
|
|
407
|
+
"gpt-audio-mini-2025-10-06"
|
|
408
|
+
].map((model) => ({
|
|
397
409
|
id: model,
|
|
398
410
|
cost: {
|
|
399
411
|
input: .6 / 1e6,
|
|
@@ -403,6 +415,18 @@ const OPENAI_CHAT_MODELS = [
|
|
|
403
415
|
}
|
|
404
416
|
}))
|
|
405
417
|
];
|
|
418
|
+
const OPENAI_RESPONSES_ONLY_MODELS = [...["gpt-5.4-pro", "gpt-5.4-pro-2026-03-05"].map((model) => ({
|
|
419
|
+
id: model,
|
|
420
|
+
cost: {
|
|
421
|
+
input: 30 / 1e6,
|
|
422
|
+
output: 180 / 1e6,
|
|
423
|
+
longContext: {
|
|
424
|
+
threshold: GPT_5_4_LONG_CONTEXT_THRESHOLD,
|
|
425
|
+
input: 60 / 1e6,
|
|
426
|
+
output: 270 / 1e6
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
}))];
|
|
406
430
|
const OPENAI_DEEP_RESEARCH_MODELS = [...["o3-deep-research", "o3-deep-research-2025-06-26"].map((model) => ({
|
|
407
431
|
id: model,
|
|
408
432
|
cost: {
|
|
@@ -428,26 +452,20 @@ const OPENAI_COMPLETION_MODELS = [
|
|
|
428
452
|
{ id: "text-babbage-002" }
|
|
429
453
|
];
|
|
430
454
|
const OPENAI_REALTIME_MODELS = [
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
audioInput: 32 / 1e6,
|
|
438
|
-
audioOutput: 64 / 1e6
|
|
439
|
-
}
|
|
440
|
-
},
|
|
441
|
-
{
|
|
442
|
-
id: "gpt-realtime",
|
|
455
|
+
...[
|
|
456
|
+
"gpt-realtime",
|
|
457
|
+
"gpt-realtime-2025-08-28",
|
|
458
|
+
"gpt-realtime-1.5"
|
|
459
|
+
].map((model) => ({
|
|
460
|
+
id: model,
|
|
443
461
|
type: "chat",
|
|
444
462
|
cost: {
|
|
445
463
|
input: 4 / 1e6,
|
|
446
464
|
output: 16 / 1e6,
|
|
447
|
-
audioInput:
|
|
448
|
-
audioOutput:
|
|
465
|
+
audioInput: 32 / 1e6,
|
|
466
|
+
audioOutput: 64 / 1e6
|
|
449
467
|
}
|
|
450
|
-
},
|
|
468
|
+
})),
|
|
451
469
|
{
|
|
452
470
|
id: "gpt-4o-realtime-preview",
|
|
453
471
|
type: "chat",
|
|
@@ -498,18 +516,12 @@ const OPENAI_REALTIME_MODELS = [
|
|
|
498
516
|
audioOutput: 20 / 1e6
|
|
499
517
|
}
|
|
500
518
|
},
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
audioInput: 10 / 1e6,
|
|
508
|
-
audioOutput: 20 / 1e6
|
|
509
|
-
}
|
|
510
|
-
},
|
|
511
|
-
{
|
|
512
|
-
id: "gpt-realtime-mini-2025-10-06",
|
|
519
|
+
...[
|
|
520
|
+
"gpt-realtime-mini",
|
|
521
|
+
"gpt-realtime-mini-2025-12-15",
|
|
522
|
+
"gpt-realtime-mini-2025-10-06"
|
|
523
|
+
].map((model) => ({
|
|
524
|
+
id: model,
|
|
513
525
|
type: "chat",
|
|
514
526
|
cost: {
|
|
515
527
|
input: .6 / 1e6,
|
|
@@ -517,7 +529,7 @@ const OPENAI_REALTIME_MODELS = [
|
|
|
517
529
|
audioInput: 10 / 1e6,
|
|
518
530
|
audioOutput: 20 / 1e6
|
|
519
531
|
}
|
|
520
|
-
}
|
|
532
|
+
}))
|
|
521
533
|
];
|
|
522
534
|
const OPENAI_TRANSCRIPTION_MODELS = [
|
|
523
535
|
{
|
|
@@ -528,10 +540,18 @@ const OPENAI_TRANSCRIPTION_MODELS = [
|
|
|
528
540
|
id: "gpt-4o-mini-transcribe",
|
|
529
541
|
cost: { perMinute: .003 }
|
|
530
542
|
},
|
|
543
|
+
{
|
|
544
|
+
id: "gpt-4o-mini-transcribe-2025-12-15",
|
|
545
|
+
cost: { perMinute: .003 }
|
|
546
|
+
},
|
|
531
547
|
{
|
|
532
548
|
id: "gpt-4o-transcribe-diarize",
|
|
533
549
|
cost: { perMinute: .006 }
|
|
534
550
|
},
|
|
551
|
+
{
|
|
552
|
+
id: "gpt-4o-transcribe-diarize-2025-10-15",
|
|
553
|
+
cost: { perMinute: .006 }
|
|
554
|
+
},
|
|
535
555
|
{
|
|
536
556
|
id: "whisper-1",
|
|
537
557
|
cost: { perMinute: .006 }
|
|
@@ -542,6 +562,7 @@ function calculateOpenAICost(modelName, config, promptTokens, completionTokens,
|
|
|
542
562
|
...OPENAI_CHAT_MODELS,
|
|
543
563
|
...OPENAI_COMPLETION_MODELS,
|
|
544
564
|
...OPENAI_REALTIME_MODELS,
|
|
565
|
+
...OPENAI_RESPONSES_ONLY_MODELS,
|
|
545
566
|
...OPENAI_DEEP_RESEARCH_MODELS
|
|
546
567
|
]);
|
|
547
568
|
if (!Number.isFinite(promptTokens) || !Number.isFinite(completionTokens) || !Number.isFinite(audioPromptTokens) || !Number.isFinite(audioCompletionTokens) || typeof promptTokens === "undefined" || typeof completionTokens === "undefined" || typeof audioPromptTokens === "undefined" || typeof audioCompletionTokens === "undefined") return;
|
|
@@ -549,6 +570,7 @@ function calculateOpenAICost(modelName, config, promptTokens, completionTokens,
|
|
|
549
570
|
...OPENAI_CHAT_MODELS,
|
|
550
571
|
...OPENAI_COMPLETION_MODELS,
|
|
551
572
|
...OPENAI_REALTIME_MODELS,
|
|
573
|
+
...OPENAI_RESPONSES_ONLY_MODELS,
|
|
552
574
|
...OPENAI_DEEP_RESEARCH_MODELS
|
|
553
575
|
].find((m) => m.id === modelName);
|
|
554
576
|
if (!model || !model.cost) return;
|
|
@@ -664,4 +686,4 @@ Object.defineProperty(exports, "validateFunctionCall", {
|
|
|
664
686
|
}
|
|
665
687
|
});
|
|
666
688
|
|
|
667
|
-
//# sourceMappingURL=util-
|
|
689
|
+
//# sourceMappingURL=util-A5_ZsQUn.cjs.map
|