promptfoo 0.121.2 → 0.121.4
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 +2 -0
- package/dist/src/{ListApp-Du7YVwj5.js → ListApp-DQkFNqE9.js} +1 -1
- package/dist/src/{accounts-B0pgC1oV.js → accounts-DdJ2pHMI.js} +5 -5
- package/dist/src/{accounts-CiBLOnA7.js → accounts-DhMYUUbu.js} +5 -5
- package/dist/src/{accounts-gtkH-5KX.cjs → accounts-Dy17bs4D.cjs} +5 -5
- package/dist/src/{accounts-Bm2D8Db9.js → accounts-F9d_5sMC.js} +6 -6
- package/dist/src/{cometapi-C4xSqeID.cjs → agentic-utils-BpX5b23w.cjs} +24 -62
- package/dist/src/{cometapi-CUQq3H_a.js → agentic-utils-P172hM8B.js} +4 -61
- package/dist/src/agentic-utils-qFlm6zes.js +153 -0
- package/dist/src/{agentic-utils-DS1g3GLF.js → agentic-utils-w68v6_Dz.js} +3 -3
- package/dist/src/{agents-CmvBq8LV.js → agents-8FDnTriG.js} +6 -7
- package/dist/src/{agents-DbRtpYxR.cjs → agents-BahDpe5G.cjs} +255 -20
- package/dist/src/{agents-DgF2zDag.js → agents-C-R_jfzI.js} +255 -20
- package/dist/src/{agents-9qiOy0ho.js → agents-CgaMXvLM.js} +5 -7
- package/dist/src/{agents-Di9DKPzn.cjs → agents-D7-HGxUj.cjs} +5 -7
- package/dist/src/{agents-CBr9A01V.js → agents-DJ35I3Nt.js} +255 -20
- package/dist/src/{agents-cLXA8a_8.js → agents-aYPQLf8W.js} +5 -9
- package/dist/src/{agents-D__IdAlg.js → agents-pQeBEXMm.js} +255 -21
- package/dist/src/{aimlapi-B4rcnZgv.js → aimlapi-BCq3MHeL.js} +8 -14
- package/dist/src/{aimlapi-DHJU_kcV.js → aimlapi-BD6J9oKt.js} +7 -14
- package/dist/src/{aimlapi-BvlNH0gr.cjs → aimlapi-qcK4OT55.cjs} +8 -15
- package/dist/src/{aimlapi-CnkC2HqE.js → aimlapi-sgYnkE54.js} +7 -16
- package/dist/src/app/app/tsconfig.app.tsbuildinfo +1 -0
- package/dist/src/app/assets/Report-CQYFezYu.js +1 -0
- package/dist/src/app/assets/index-BXGkeMwh.css +1 -0
- package/dist/src/app/assets/index-BzJt18Jz.js +385 -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 +7 -7
- package/dist/src/{audio-Dz3z7s3J.js → audio-B7izf48x.js} +4 -5
- package/dist/src/{audio-CGMyULza.cjs → audio-BQtNuYBj.cjs} +4 -4
- package/dist/src/{audio-Bkv46et0.js → audio-COrn8rM6.js} +4 -4
- package/dist/src/{audio-ClI_AFre.js → audio-DcVKoInv.js} +4 -4
- package/dist/src/{base-CGrhspbK.cjs → base-D-670DX8.cjs} +3 -3
- package/dist/src/{base-CpjcHe4e.js → base-PYJvBE1i.js} +3 -3
- package/dist/src/{base-Dy1V8--Z.js → base-fZ9wgg50.js} +3 -3
- package/dist/src/{base-DLKtKMFh.js → base-yrI1Yal4.js} +3 -3
- package/dist/src/{blobs-BDbfYdrJ.js → blobs-BCZavS8s.js} +4 -4
- package/dist/src/{blobs-CMHN0Qcz.js → blobs-BQWqnnvL.js} +4 -4
- package/dist/src/{blobs-CBO20krR.js → blobs-C-F78Kfn.js} +3 -3
- package/dist/src/{blobs-D23XLin-.cjs → blobs-D2FAd1Q5.cjs} +3 -3
- package/dist/src/cache-BIyPcp5v.cjs +376 -0
- package/dist/src/cache-C4Xb-hNb.js +310 -0
- package/dist/src/cache-Cr9oLMUa.js +3 -0
- package/dist/src/cache-D5NZmMiT.js +310 -0
- package/dist/src/cache-DbLsVWB2.cjs +3 -0
- package/dist/src/cache-mb7c8hbp.js +280 -0
- package/dist/src/{chat-C2jrdPMx.js → chat-0bwXjVP0.js} +3 -13
- package/dist/src/{chat-C1Qst7jL.cjs → chat-BPXSW8Bv.cjs} +3 -13
- package/dist/src/{chat-DJIw17u0.js → chat-BfPaS15_.js} +68 -42
- package/dist/src/{chat-CgF-J-Jj.cjs → chat-CclRbxGf.cjs} +68 -42
- package/dist/src/{chat-BiKyneZl.js → chat-Dr3DUQ0D.js} +68 -42
- package/dist/src/{chat-DqxYYtWA.js → chat-I9izLm49.js} +67 -41
- package/dist/src/{chat-CzkrVDfz.js → chat-MKxMnZJZ.js} +3 -13
- package/dist/src/{chat-qmatte1u.js → chat-mW0ORo8G.js} +3 -14
- package/dist/src/{chatkit-DKyPi1Gs.cjs → chatkit-BoWoSgXl.cjs} +4 -4
- package/dist/src/{chatkit-65VXf5SR.js → chatkit-CJnHRRMM.js} +4 -4
- package/dist/src/{chatkit-Be-Q-a9F.js → chatkit-Cv6AhukM.js} +4 -4
- package/dist/src/{chatkit-BxFvW8KY.js → chatkit-zUIVoDos.js} +4 -4
- package/dist/src/{claude-agent-sdk-Apiy0iaz.js → claude-agent-sdk-BQNuLaAK.js} +41 -18
- package/dist/src/{claude-agent-sdk-D9Z5Pr9X.cjs → claude-agent-sdk-CPJo3dBQ.cjs} +45 -22
- package/dist/src/{claude-agent-sdk-D2bJee9S.js → claude-agent-sdk-Dtq_L-Sc.js} +40 -17
- package/dist/src/{claude-agent-sdk-DfCoW0E6.js → claude-agent-sdk-nfAIcxNf.js} +42 -20
- package/dist/src/{cloud-C0dlstV_.js → cloud-DQZ5sVjW.js} +25 -13
- package/dist/src/cloud-Hphvo8kr.js +3 -0
- package/dist/src/{cloudflare-ai-8TDxHR0x.js → cloudflare-ai-BIB567w6.js} +5 -14
- package/dist/src/{cloudflare-ai-g7PB6VHR.js → cloudflare-ai-DGLte7Py.js} +5 -14
- package/dist/src/{cloudflare-ai-CknbZ5LJ.cjs → cloudflare-ai-Dl3N9OVD.cjs} +6 -15
- package/dist/src/{cloudflare-ai-BxAGvfju.js → cloudflare-ai-DlKr0rY7.js} +5 -15
- package/dist/src/{cloudflare-gateway-B9HWA5wf.js → cloudflare-gateway-BDZrYydE.js} +4 -16
- package/dist/src/{cloudflare-gateway-BSnDmHYo.cjs → cloudflare-gateway-BYDp495F.cjs} +4 -15
- package/dist/src/{cloudflare-gateway-CKDb4dJ8.js → cloudflare-gateway-CiIZHU0Q.js} +5 -164
- package/dist/src/{cloudflare-gateway-CP9QEWYS.js → cloudflare-gateway-DI1HNP5F.js} +4 -15
- package/dist/src/codex-sdk-BAmYE7qy.js +3 -0
- package/dist/src/codex-sdk-C2_M2pl_.cjs +1172 -0
- package/dist/src/codex-sdk-CErXn7qh.js +1165 -0
- package/dist/src/codex-sdk-CWEnH70W.cjs +2 -0
- package/dist/src/codex-sdk-CpqiOqDO.js +1164 -0
- package/dist/src/codex-sdk-Rtky3M4I.js +1165 -0
- package/dist/src/{cometapi-BL9yvj_f.js → cometapi-BUlt_ELa.js} +8 -15
- package/dist/src/{cometapi-DFNiKmSz.js → cometapi-CtJ-mS8R.js} +8 -16
- package/dist/src/cometapi-DT-jlVCB.js +55 -0
- package/dist/src/cometapi-UVOryo4W.cjs +55 -0
- package/dist/src/{completion-CM6oK8PS.cjs → completion-BozdoXba.cjs} +7 -62
- package/dist/src/{completion-5MzrpJxT.js → completion-Dnxn7E-j.js} +8 -57
- package/dist/src/{completion-qRoZAYRB.js → completion-HUe8wDhZ.js} +8 -57
- package/dist/src/{completion-DZ083F31.js → completion-x0a_c2y1.js} +8 -57
- package/dist/src/{createHash-CTQmL3G2.js → createHash-4gFQpDDv.js} +3 -3
- package/dist/src/{createHash-CfZSc0b4.cjs → createHash-B7KvgoOD.cjs} +4 -4
- package/dist/src/{createHash-Da8fMwqB.js → createHash-ChI45QR1.js} +3 -3
- package/dist/src/{createHash-DmPQkvBh.js → createHash-CwDVU5xr.js} +3 -3
- package/dist/src/{docker-ExVyLp0S.js → docker-CQmlA2NU.js} +7 -14
- package/dist/src/{docker-Bb5dcxr8.js → docker-ClnmCf1Z.js} +6 -14
- package/dist/src/{docker-BvfL2BrW.js → docker-DCgsveLD.js} +6 -16
- package/dist/src/{docker-DcF2pRrj.cjs → docker-DS4_Osau.cjs} +7 -15
- package/dist/src/embedding-D3xTseo7.js +59 -0
- package/dist/src/embedding-DD9wa3ae.js +58 -0
- package/dist/src/embedding-I45KG3o7.cjs +63 -0
- package/dist/src/embedding-nFbumxcv.js +58 -0
- package/dist/src/entrypoint.js +69 -6
- package/dist/src/{errors-P6ll7XSJ.js → errors-Cw810C93.js} +1 -1
- package/dist/src/{esm-CaIwzWR5.js → esm-C7PnfdF8.js} +16 -7
- package/dist/src/{esm-CnNt7sI4.cjs → esm-CtEPLdAj.cjs} +15 -6
- package/dist/src/{esm-Cd1AjG1D.js → esm-Dh4dOLlt.js} +15 -6
- package/dist/src/{esm-C03C-mv3.js → esm-tVgYPY-f.js} +27 -18
- package/dist/src/eval-CzJFfFO9.js +3 -0
- package/dist/src/{eval-Dg2nG4v2.js → eval-u4UVafl6.js} +49 -20
- package/dist/src/{evalResult-BDMqrapS.js → evalResult-Bgm9ZH31.js} +7 -7
- package/dist/src/{evalResult-BBRNtX4I.js → evalResult-D3hVYFis.js} +7 -7
- package/dist/src/evalResult-D8MT9p0s.js +3 -0
- package/dist/src/evalResult-DElBuddX.js +2 -0
- package/dist/src/evalResult-Dvc-iucu.cjs +2 -0
- package/dist/src/{evalResult-fuaI8HkH.cjs → evalResult-KZqXl4XP.cjs} +7 -7
- package/dist/src/evaluator-CVessDWe.js +3 -0
- package/dist/src/{evaluator-BhoWwp5b.js → evaluator-IvuDYSvQ.js} +3080 -1254
- package/dist/src/{extractor-D25qpmGX.js → extractor-CAfTSraf.js} +6 -6
- package/dist/src/{extractor-DReVID0K.js → extractor-DNSeBVOJ.js} +6 -6
- package/dist/src/{extractor-C0EVHewb.js → extractor-Dk6bRWkv.js} +6 -6
- package/dist/src/{extractor-pYLLi3wS.cjs → extractor-WVPOrH43.cjs} +6 -6
- package/dist/src/{fetch-HaqdX7U1.js → fetch-B0Z3Oe4k.js} +218 -55
- package/dist/src/{fetch-Dxpd4_sr.js → fetch-BEWnXrrG.js} +195 -45
- package/dist/src/fetch-C7bGKDlQ.js +3 -0
- package/dist/src/{fetch-BPkYtG8K.cjs → fetch-CJU5ELPa.cjs} +223 -48
- package/dist/src/{fetch-Cwxnd8zz.js → fetch-Di00EQrc.js} +218 -55
- package/dist/src/{fileExtensions-Ds-foDzt.js → fileExtensions-AWa2ZML4.js} +1 -1
- package/dist/src/{fileExtensions-LcDYkU4v.js → fileExtensions-BArZuxsI.js} +1 -1
- package/dist/src/{formatDuration-DgBVMN65.js → formatDuration-DZzPsexs.js} +1 -1
- package/dist/src/{genaiTracer-D3fD9dNV.js → genaiTracer-COYDi-tC.js} +6 -2
- package/dist/src/{genaiTracer-C1rxGO8Q.js → genaiTracer-DWdZ28hY.js} +6 -2
- package/dist/src/{genaiTracer-70Z8BIuV.js → genaiTracer-XnrcgDCe.js} +6 -2
- package/dist/src/{genaiTracer-DN4dQywX.cjs → genaiTracer-yRuxj9-L.cjs} +7 -3
- package/dist/src/golang/wrapper.go +1 -1
- package/dist/src/{graders-DU49_J8Y.cjs → graders--zknU_uk.cjs} +5747 -3206
- package/dist/src/graders-BOAzQEUe.cjs +2 -0
- package/dist/src/graders-D4BTsZdG2.js +3 -0
- package/dist/src/graders-DOJK1XpV.js +2 -0
- package/dist/src/graders-NAv9LcBn.js +2 -0
- package/dist/src/{graders-BTeBGqjJ.js → graders-Zy3x0zqX.js} +5727 -3218
- package/dist/src/{graders-Bj_Odv7c.js → graders-eIHhRqoC.js} +5719 -3210
- package/dist/src/{graders-DP7KFFo-.js → graders-pvbReLLn.js} +5728 -3219
- package/dist/src/{image-B0h9VEMc.js → image-9302QVqR.js} +4 -4
- package/dist/src/{image-CHfWvljl.js → image-B5Mv-Z3h.js} +8 -8
- package/dist/src/{image-DS-o-0ph.js → image-DVz2RiMF.js} +8 -8
- package/dist/src/{image-C1madmKh.cjs → image-De2FBmYV.cjs} +4 -4
- package/dist/src/{image-B02ogr_b.js → image-dnoUgPrC.js} +4 -5
- package/dist/src/{image-Dpxa1Jt6.js → image-qUpPvmNZ.js} +8 -8
- package/dist/src/{image-Bb4vWQLM.js → image-u7-rKnYU.js} +4 -4
- package/dist/src/{image-BLmROtN3.cjs → image-x6KqLQl4.cjs} +8 -8
- package/dist/src/index.cjs +3728 -1482
- package/dist/src/index.d.cts +3232 -79
- package/dist/src/index.d.ts +3232 -79
- package/dist/src/index.js +3735 -1490
- package/dist/src/{interactiveCheck-BgLZUIt3.js → interactiveCheck-CLERUB0c.js} +2 -2
- package/dist/src/{knowledgeBase-DOO_BM9b.cjs → knowledgeBase-Bpoe_nLu.cjs} +6 -8
- package/dist/src/{knowledgeBase-D33Ty2l6.js → knowledgeBase-Dgc7CBWF.js} +6 -8
- package/dist/src/{knowledgeBase-B3OoKIej.js → knowledgeBase-RhFPGWDc.js} +6 -8
- package/dist/src/{knowledgeBase-CYTLHOt1.js → knowledgeBase-lm9RXSAm.js} +6 -9
- package/dist/src/{litellm-NbjknEh6.js → litellm-C2kqjxqp.js} +6 -14
- package/dist/src/{litellm-I_hbp_dc.cjs → litellm-CoyI4IAl.cjs} +6 -15
- package/dist/src/{litellm-TrljxD9G.js → litellm-DRjpcSa7.js} +5 -14
- package/dist/src/{litellm-AaeZcZQF.js → litellm-p37R1dzQ.js} +5 -16
- package/dist/src/{logger-DLcq4dWf.js → logger-B88EkIn6.js} +48 -23
- package/dist/src/{logger-Cp1GPUjj.cjs → logger-COuQb2xB.cjs} +77 -22
- package/dist/src/{logger-CT3IKMKA.js → logger-Ct2S6Yx-.js} +48 -23
- package/dist/src/{logger-KkObSCzq.js → logger-DksKw1Qc.js} +48 -23
- package/dist/src/{luma-ray-f6I2fft-.js → luma-ray-B863CmuZ.js} +6 -10
- package/dist/src/{luma-ray-DDsjcgZZ.js → luma-ray-BTTLtqQ8.js} +7 -10
- package/dist/src/{luma-ray-Due0n7di.cjs → luma-ray-BxVKaW2a.cjs} +6 -10
- package/dist/src/{luma-ray-BS2_tY8L.js → luma-ray-KgTCXrZC.js} +6 -12
- package/dist/src/main.d.ts +1 -26
- package/dist/src/main.js +1011 -548
- package/dist/src/{messages-Bs1kC7P4.cjs → messages-811uVVW5.cjs} +74 -19
- package/dist/src/{messages-BS17jdMx.js → messages-BTQz42fn.js} +74 -19
- package/dist/src/{messages-ZJk778GH.js → messages-MYTQ2TWp.js} +74 -19
- package/dist/src/{messages-D0lx5qK7.js → messages-zWbkLLHz.js} +74 -19
- package/dist/src/{meteor-D-SotUw9.js → meteor-CU5UAE-H.js} +1 -1
- package/dist/src/{meteor-DLZZ3osF.cjs → meteor-Co1VQ1u5.cjs} +1 -1
- package/dist/src/{meteor-44VjEACX.js → meteor-DHdzY1Ss.js} +1 -1
- package/dist/src/{meteor-DUiCJRC-.js → meteor-DuAFv6gF.js} +1 -1
- package/dist/src/{modelslab-Bmni6skY.js → modelslab-D0erNWKe.js} +7 -10
- package/dist/src/{modelslab-DRb74SP4.js → modelslab-DIq-6y7x.js} +7 -10
- package/dist/src/{modelslab-CoUX6Jc_.cjs → modelslab-Dk1JAtVo.cjs} +7 -10
- package/dist/src/{modelslab-Bx9IrZfS.js → modelslab-wu9yi5GE.js} +7 -11
- package/dist/src/{nova-reel-BfPq-0Yk.js → nova-reel-CCFRfeRb.js} +7 -10
- package/dist/src/{nova-reel-C_QM18Xn.cjs → nova-reel-CrLXVKQf.cjs} +6 -10
- package/dist/src/{nova-reel-bgjxilYW.js → nova-reel-DQrm74ng.js} +6 -10
- package/dist/src/{nova-reel-D_W1tjMH.js → nova-reel-gr11WG7f.js} +6 -12
- package/dist/src/{nova-sonic-DIGQNR07.js → nova-sonic-BYdp-QLs.js} +5 -7
- package/dist/src/{nova-sonic-CFb5GYhg.js → nova-sonic-B_ZXcUJB.js} +4 -7
- package/dist/src/{nova-sonic-De1HW5fD.js → nova-sonic-TDgrlTk7.js} +4 -9
- package/dist/src/{nova-sonic-zfcljeRp.cjs → nova-sonic-i5tUvXKn.cjs} +4 -7
- package/dist/src/{openai-DElQ-fPX.js → openai-DhVEmgeZ.js} +6 -3
- package/dist/src/{openai-DhbB7eWK.js → openai-Qsvz25mV.js} +6 -3
- package/dist/src/{openai-Cuif0GEt.cjs → openai-URNyItar.cjs} +6 -3
- package/dist/src/{openai-j-sE2O7r.js → openai-iYtrXzOX.js} +6 -3
- package/dist/src/openclaw-CLWrW03k.js +1200 -0
- package/dist/src/openclaw-CnQ363Wi.js +1199 -0
- package/dist/src/openclaw-CwzlQSQX.js +1199 -0
- package/dist/src/openclaw-wX9rtfke.cjs +1205 -0
- package/dist/src/{opencode-sdk-B3CWY9h_.js → opencode-sdk-BUu5Nevv.js} +12 -14
- package/dist/src/{opencode-sdk-BL764Jdi.cjs → opencode-sdk-BZ2idgYA.cjs} +16 -18
- package/dist/src/{opencode-sdk-0j6rTWNb.js → opencode-sdk-BxD8vXp_.js} +12 -15
- package/dist/src/{opencode-sdk-C2y6UkP2.js → opencode-sdk-GI2KaAXq.js} +12 -14
- package/dist/src/{otlpReceiver-C99PPb48.js → otlpReceiver-B2z58l4e.js} +154 -98
- package/dist/src/{otlpReceiver-CGq6LspY.cjs → otlpReceiver-BfcVq2Nq.cjs} +154 -98
- package/dist/src/{otlpReceiver-D89fR-rC.js → otlpReceiver-BntK801g.js} +154 -98
- package/dist/src/{otlpReceiver-CdNBdbsk.js → otlpReceiver-DmVulbhC.js} +154 -98
- package/dist/src/{providerRegistry-CD8MEar9.js → providerRegistry-Bvh8mv85.js} +2 -2
- package/dist/src/{providerRegistry-DM8rZYol.js → providerRegistry-CPQ_CmVO.js} +2 -2
- package/dist/src/{providerRegistry-Civky8Ar.cjs → providerRegistry-CQMdTmHP.cjs} +2 -2
- package/dist/src/{providerRegistry-B0RUOLI_.js → providerRegistry-CWoPjKFZ.js} +2 -2
- package/dist/src/{providers-CgKOSgTR.cjs → providers-1eKkXBKp.cjs} +1435 -930
- package/dist/src/{providers-BlqUifFg.js → providers-BV_KMZje.js} +1419 -944
- package/dist/src/providers-Bp4S-FvO.js +2 -0
- package/dist/src/providers-DV3ax9e_.cjs +3 -0
- package/dist/src/{providers-D8lF1sqW.js → providers-Domz_llv.js} +1427 -952
- package/dist/src/{providers-Dk_6ocUX.js → providers-DruaQfwu.js} +1424 -949
- package/dist/src/providers-iUt5fbAN.js +3 -0
- package/dist/src/providers-u9Enmfok.js +2 -0
- package/dist/src/python/persistent_wrapper.py +0 -5
- package/dist/src/{pythonUtils-D6fwaDSg.js → pythonUtils-C2UQ30Rz.js} +4 -4
- package/dist/src/{pythonUtils-D5nxkQ0P.js → pythonUtils-Cldx7huE.js} +4 -4
- package/dist/src/{pythonUtils-C3py6GC1.js → pythonUtils-CnndUbW-.js} +3 -3
- package/dist/src/{pythonUtils-CTU3Y3lw.cjs → pythonUtils-tAJvvpS-.cjs} +3 -3
- package/dist/src/{quiverai-CIaELU_m.js → quiverai-CtWi6x_g.js} +4 -4
- package/dist/src/{quiverai-PdShCPox.cjs → quiverai-DFotyafY.cjs} +4 -4
- package/dist/src/{quiverai-BbOUOn2L.js → quiverai-DR0SnIQV.js} +4 -4
- package/dist/src/{quiverai-uH-dcTIr.js → quiverai-aPPvXOgn.js} +4 -5
- package/dist/src/render-CH-62LbA.js +135 -0
- package/dist/src/render-CMEpfLaO.js +136 -0
- package/dist/src/{render-Drod8m7K.js → render-CgVDrJmM.js} +2 -3
- package/dist/src/render-DHIZ6_k8.js +135 -0
- package/dist/src/render-DfQSFxGE.cjs +165 -0
- package/dist/src/{responses-DIR9Ud3j.js → responses--OsX2aYW.js} +23 -14
- package/dist/src/{responses-D8SBTL64.cjs → responses-Bi9vBuW_.cjs} +24 -15
- package/dist/src/{responses-CB2jwoAr.js → responses-C-flexAY.js} +24 -15
- package/dist/src/{responses-WNGNYe3K.js → responses-DL9m8CyY.js} +24 -15
- package/dist/src/{rubyUtils-DhCAlxZr.cjs → rubyUtils-B6eljPuh.cjs} +3 -3
- package/dist/src/{rubyUtils-BcuGX77l.js → rubyUtils-CYSQEG4a.js} +3 -3
- package/dist/src/rubyUtils-D1L2d3jb.js +3 -0
- package/dist/src/rubyUtils-DUbq4tff.cjs +2 -0
- package/dist/src/{rubyUtils-BUVePouc.js → rubyUtils-DVLeA2jg.js} +3 -3
- package/dist/src/{rubyUtils-Boc4HZzX.js → rubyUtils-DsGrTx8R.js} +3 -3
- package/dist/src/{sagemaker-CNBxx5CJ.js → sagemaker-BVkaG2-l.js} +14 -18
- package/dist/src/{sagemaker-CemTFp2h.js → sagemaker-BveBvuxm.js} +14 -18
- package/dist/src/{sagemaker-YSyBXQQh.js → sagemaker-D67yzMzs.js} +14 -19
- package/dist/src/{sagemaker-Cl28mZU2.cjs → sagemaker-XnfhheQv.cjs} +14 -18
- package/dist/src/{scanner-BsBlNXNn.js → scanner-1DqWi1Ej.js} +130 -35
- package/dist/src/server/golang/wrapper.go +1 -1
- package/dist/src/server/index.js +3757 -1511
- package/dist/src/server/python/persistent_wrapper.py +0 -5
- package/dist/src/{server-CqzrVGpF.js → server-BNYztJkh.js} +128 -9
- package/dist/src/{server-CuxBbeSY.js → server-BSB45Nt9.js} +127 -8
- package/dist/src/{server-VWgWb00X.js → server-D6Il2Sob.js} +126 -7
- package/dist/src/server-DCtHUqlp.js +3 -0
- package/dist/src/server-DaA2eR26.cjs +2 -0
- package/dist/src/{server-C_7Ax-hA.cjs → server-Dx2TyCH2.cjs} +140 -6
- package/dist/src/{signal-4U3mfRvL.js → signal-CE5G3a7x.js} +3 -3
- package/dist/src/{slack-BmVAVGaK.cjs → slack-1Rhq0EoV.cjs} +2 -2
- package/dist/src/{slack-DCUPTzS2.js → slack-D5Wpy8LM.js} +2 -2
- package/dist/src/{slack-DXMKtA-f.js → slack-DDUe-5MC.js} +2 -2
- package/dist/src/{slack-DOdy_kyv.js → slack-acRb0IqQ.js} +2 -2
- package/dist/src/store-CWOSz6D_.cjs +2 -0
- package/dist/src/{store-Dim__MDd.js → store-CYEy5J2D.js} +17 -5
- package/dist/src/{store-DLlFCC4h.cjs → store-DAAyxcy6.cjs} +17 -5
- package/dist/src/store-DCDBhv7B.js +3 -0
- package/dist/src/{store-CXGFv4aR.js → store-Dn9HUkdW.js} +17 -5
- package/dist/src/{store-DXilxTl-.js → store-M0b1WfYb.js} +17 -5
- package/dist/src/{tables-gftXzE9I.js → tables-C4CH3zRr.js} +3 -3
- package/dist/src/{tables-DLJPUdUE.js → tables-CsWou1Bx.js} +3 -3
- package/dist/src/{tables-6YKwjN9-.js → tables-DQ4WU5tX.js} +3 -3
- package/dist/src/{tables-DPi7wKeM.cjs → tables-DUfh1F7Z.cjs} +3 -3
- package/dist/src/telemetry-C1IqxcdW.js +3 -0
- package/dist/src/telemetry-C4ZEa_es.cjs +2 -0
- package/dist/src/{telemetry-CMrFgtPB.js → telemetry-CQPez_Jp.js} +4 -4
- package/dist/src/{telemetry-DaX14Chu.cjs → telemetry-Dsw_faFj.cjs} +4 -4
- package/dist/src/{telemetry-Dthj_BbD.js → telemetry-Dvqxv3YC.js} +4 -4
- package/dist/src/{telemetry-Cps3mIU-.js → telemetry-dbaJ0E98.js} +4 -4
- package/dist/src/{text-CW1cyrwj.cjs → text-BVi-cLPJ.cjs} +1 -1
- package/dist/src/{text-B_UCRPp2.js → text-CZr46tp_.js} +1 -1
- package/dist/src/{text-TIv0QYnd.js → text-DHxdyQqT.js} +1 -1
- package/dist/src/{text-Db-Wt2u2.js → text-KvuD2Iko.js} +1 -1
- package/dist/src/{tokenUsageUtils-bVa1ga6f.cjs → tokenUsageUtils-Bb7DkZPz.cjs} +7 -3
- package/dist/src/{tokenUsageUtils-NYT-WKS6.js → tokenUsageUtils-C-bmyHoE.js} +7 -3
- package/dist/src/{tokenUsageUtils-DflFMjS0.js → tokenUsageUtils-CXrvO-wA.js} +7 -3
- package/dist/src/{transcription-NLVG9MT1.cjs → transcription-BvjmiYB1.cjs} +12 -16
- package/dist/src/{transcription-BNYURcXg.js → transcription-CJspiD2c.js} +11 -14
- package/dist/src/{transcription-B_OdaHp7.js → transcription-DuWDupG7.js} +10 -14
- package/dist/src/{transcription-s6A-bNrZ.js → transcription-V2HaAmy2.js} +10 -16
- package/dist/src/{transform-DECvGmzp.js → transform-Bbg6A8Jk.js} +4 -4
- package/dist/src/{transform-vNucnNr0.js → transform-CG0ehZNG.js} +11 -7
- package/dist/src/{transform-DuHvhZpj.cjs → transform-CTeuTR3S.cjs} +31 -9
- package/dist/src/{transform-CzK1Q0zl.cjs → transform-CUnzlsbn.cjs} +4 -4
- package/dist/src/{transform-aa6tmVpZ.js → transform-DYX1_Xnh.js} +5 -5
- package/dist/src/transform-DgKlRr73.cjs +2 -0
- package/dist/src/transform-M6ITAESf.js +3 -0
- package/dist/src/{transform-DilY9wbS.js → transform-UN5UGu8U.js} +5 -5
- package/dist/src/{transform-uAytVuyX.js → transform-lQrDE1BQ.js} +11 -7
- package/dist/src/{transform-D5HsjduX.js → transform-zDhMmzwX.js} +11 -7
- package/dist/src/{transformersAvailability-CEVM2GNQ.js → transformersAvailability-CcHusyhw.js} +1 -1
- package/dist/src/{transformersAvailability-CwayUSlh.cjs → transformersAvailability-Cju9mHgR.cjs} +1 -1
- package/dist/src/{transformersAvailability-D6c6ROpT.js → transformersAvailability-DLlROWhg.js} +1 -1
- package/dist/src/{types-DmyIJ-sR.js → types-BGQDAP8i.js} +357 -22
- package/dist/src/{types-CzW2QFyi.js → types-Bgh5SOn6.js} +358 -24
- package/dist/src/{types-C_7nyzr1.cjs → types-CeaeaZdP.cjs} +393 -22
- package/dist/src/{types-Cbd8uOMq.js → types-Dm9JM6Vb.js} +368 -23
- package/dist/src/{util-BHGHw5G1.js → util-BYvQUPp7.js} +138 -36
- package/dist/src/{util-B9vlHIIh.cjs → util-Bxn8emtE.cjs} +15 -168
- package/dist/src/{util-ZzmqNPlg.js → util-C8e5uydV.js} +19 -142
- package/dist/src/{util-CMy69ZgQ.js → util-C9J8ahRn.js} +18 -4
- package/dist/src/{util-BzMcevZc.cjs → util-CN3SrLT4.cjs} +18 -4
- package/dist/src/{util-BV4XUC0n.js → util-D3q0WQ-0.js} +18 -4
- package/dist/src/{util-Dnmk2mBQ.js → util-D9TisOyk.js} +18 -4
- package/dist/src/{util-B3xGByQh.js → util-DDs-7g6-.js} +138 -36
- package/dist/src/{util-Bv6uGDfH.js → util-DvU2Pw8c.js} +138 -36
- package/dist/src/{util-C1CeHl-P.js → util-DxWpWjhc.js} +13 -136
- package/dist/src/{util-BRYkYPTd.js → util-oGMLA7vc.js} +17 -140
- package/dist/src/{util-DGNOS1db.cjs → util-olYL5C6N.cjs} +143 -35
- package/dist/src/{utils-Cz9qXqII.cjs → utils-B05gLxER.cjs} +6 -4
- package/dist/src/{utils-f2-Moju7.js → utils-BLJKfv0y.js} +6 -4
- package/dist/src/{utils-dLokC-eR.js → utils-DJfvjyMj.js} +6 -4
- package/dist/src/{utils-XiOAgly5.js → utils-hXtCYanr.js} +6 -4
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +66 -57
- package/dist/src/app/assets/index-4LKxG2CG.js +0 -439
- package/dist/src/app/assets/index-C3zcsZFQ.css +0 -1
- package/dist/src/app/assets/scroll-timeline-BdJZVXlz.js +0 -1
- package/dist/src/app/assets/sync-9qqYcY-B.js +0 -4
- package/dist/src/app/assets/vendor-charts-BnDWwBlI.js +0 -36
- package/dist/src/app/assets/vendor-markdown-0tekx3KX.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/app/tsconfig.app.tsbuildinfo +0 -1
- package/dist/src/cache-BVeDlD87.js +0 -726
- package/dist/src/cache-C4Nxf52C.js +0 -756
- package/dist/src/cache-CeUpFm3M.cjs +0 -5
- package/dist/src/cache-Dh5WtQps.cjs +0 -816
- package/dist/src/cache-i1P6crbO.js +0 -756
- package/dist/src/cache-n-RCJ-hL.js +0 -6
- package/dist/src/cloud-BBh91EUK.js +0 -4
- package/dist/src/codex-sdk-C6UMlxwV.js +0 -665
- package/dist/src/codex-sdk-DUwKWezN.js +0 -665
- package/dist/src/codex-sdk-GGAw0qbD.js +0 -666
- package/dist/src/codex-sdk-fAO0c3yA.cjs +0 -669
- package/dist/src/eval-B3r2CVXr.js +0 -15
- package/dist/src/evalResult-5xwYnECe.js +0 -12
- package/dist/src/evalResult-71lY93Kj.cjs +0 -10
- package/dist/src/evalResult-Dx5P5cIv.js +0 -10
- package/dist/src/evaluator-Jx6bRZV6.js +0 -36
- package/dist/src/fetch-BxNb_Lp3.js +0 -5
- package/dist/src/graders-B_pgMLS2.js +0 -34
- package/dist/src/graders-DErokPDO.cjs +0 -32
- package/dist/src/graders-DR_uNe54.js +0 -32
- package/dist/src/graders-w3176Wz-.js +0 -32
- package/dist/src/openclaw-CSugPYAr.cjs +0 -586
- package/dist/src/openclaw-DiSz3I5L.js +0 -582
- package/dist/src/openclaw-DuvJKEW5.js +0 -580
- package/dist/src/openclaw-tiVYRtr-.js +0 -580
- package/dist/src/providers-B7V0njNs.js +0 -32
- package/dist/src/providers-BEwbhv0X.js +0 -30
- package/dist/src/providers-CH3C7zf7.js +0 -30
- package/dist/src/providers-zyB6k_38.cjs +0 -31
- package/dist/src/rubyUtils-BUHu6PhO.js +0 -5
- package/dist/src/rubyUtils-CP42kMvq.cjs +0 -4
- package/dist/src/server-DA4Cyrrq.js +0 -7
- package/dist/src/server-Dulb-4-K.cjs +0 -5
- package/dist/src/store-CXS-Q_91.js +0 -6
- package/dist/src/store-eYkaKMwq.cjs +0 -5
- package/dist/src/telemetry-BpMfhthR.cjs +0 -5
- package/dist/src/telemetry-Dw38hanS.js +0 -7
- package/dist/src/tokenUsageUtils-BDGe-iyI.js +0 -138
- package/dist/src/transform-DTGDnAzW.js +0 -6
- package/dist/src/transform-m3qNw4KP.cjs +0 -5
|
@@ -66,11 +66,6 @@ def _init_tracing():
|
|
|
66
66
|
_tracer = trace.get_tracer("promptfoo.python.provider")
|
|
67
67
|
_tracing_enabled = True
|
|
68
68
|
|
|
69
|
-
print(
|
|
70
|
-
f"[PythonProvider] OpenTelemetry tracing enabled, endpoint: {endpoint}",
|
|
71
|
-
file=sys.stderr,
|
|
72
|
-
flush=True,
|
|
73
|
-
)
|
|
74
69
|
except ImportError:
|
|
75
70
|
print(
|
|
76
71
|
"[PythonProvider] OpenTelemetry packages not installed, tracing disabled. "
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n as getWrapperDir } from "./esm-
|
|
1
|
+
import { S as getEnvBool, T as getEnvString, a as logger, y as safeJsonStringify } from "./logger-Ct2S6Yx-.js";
|
|
2
|
+
import { n as getWrapperDir } from "./esm-C7PnfdF8.js";
|
|
3
3
|
import fs from "fs";
|
|
4
4
|
import path from "path";
|
|
5
5
|
import os from "os";
|
|
6
|
-
import { promisify } from "util";
|
|
7
6
|
import { execFile } from "child_process";
|
|
7
|
+
import { promisify } from "util";
|
|
8
8
|
import { PythonShell } from "python-shell";
|
|
9
9
|
//#region src/python/pythonUtils.ts
|
|
10
10
|
const execFileAsync = promisify(execFile);
|
|
@@ -246,4 +246,4 @@ async function runPython(scriptPath, method, args, options = {}) {
|
|
|
246
246
|
//#endregion
|
|
247
247
|
export { validatePythonPath as i, getEnvInt as n, runPython as r, getConfiguredPythonPath as t };
|
|
248
248
|
|
|
249
|
-
//# sourceMappingURL=pythonUtils-
|
|
249
|
+
//# sourceMappingURL=pythonUtils-C2UQ30Rz.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n as getWrapperDir } from "./esm-
|
|
1
|
+
import { S as getEnvBool, T as getEnvString, a as logger, y as safeJsonStringify } from "./logger-B88EkIn6.js";
|
|
2
|
+
import { n as getWrapperDir } from "./esm-Dh4dOLlt.js";
|
|
3
3
|
import fs from "fs";
|
|
4
4
|
import path from "path";
|
|
5
5
|
import os from "os";
|
|
6
|
-
import { execFile } from "child_process";
|
|
7
6
|
import { promisify } from "util";
|
|
7
|
+
import { execFile } from "child_process";
|
|
8
8
|
import { PythonShell } from "python-shell";
|
|
9
9
|
//#region src/python/pythonUtils.ts
|
|
10
10
|
const execFileAsync = promisify(execFile);
|
|
@@ -246,4 +246,4 @@ async function runPython(scriptPath, method, args, options = {}) {
|
|
|
246
246
|
//#endregion
|
|
247
247
|
export { validatePythonPath as i, getEnvInt as n, runPython as r, getConfiguredPythonPath as t };
|
|
248
248
|
|
|
249
|
-
//# sourceMappingURL=pythonUtils-
|
|
249
|
+
//# sourceMappingURL=pythonUtils-Cldx7huE.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
import { n as getWrapperDir } from "./esm-
|
|
2
|
+
import { O as getEnvString, T as getEnvBool, s as logger, x as safeJsonStringify } from "./logger-DksKw1Qc.js";
|
|
3
|
+
import { n as getWrapperDir } from "./esm-tVgYPY-f.js";
|
|
4
4
|
import fs from "fs";
|
|
5
5
|
import path from "path";
|
|
6
6
|
import os from "os";
|
|
@@ -247,4 +247,4 @@ async function runPython(scriptPath, method, args, options = {}) {
|
|
|
247
247
|
//#endregion
|
|
248
248
|
export { validatePythonPath as i, getEnvInt as n, runPython as r, getConfiguredPythonPath as t };
|
|
249
249
|
|
|
250
|
-
//# sourceMappingURL=pythonUtils-
|
|
250
|
+
//# sourceMappingURL=pythonUtils-CnndUbW-.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const require_logger = require("./logger-
|
|
2
|
-
const require_esm = require("./esm-
|
|
1
|
+
const require_logger = require("./logger-COuQb2xB.cjs");
|
|
2
|
+
const require_esm = require("./esm-CtEPLdAj.cjs");
|
|
3
3
|
let fs = require("fs");
|
|
4
4
|
fs = require_logger.__toESM(fs);
|
|
5
5
|
let path = require("path");
|
|
@@ -272,4 +272,4 @@ Object.defineProperty(exports, "validatePythonPath", {
|
|
|
272
272
|
}
|
|
273
273
|
});
|
|
274
274
|
|
|
275
|
-
//# sourceMappingURL=pythonUtils-
|
|
275
|
+
//# sourceMappingURL=pythonUtils-tAJvvpS-.cjs.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { r as fetchWithCache } from "./cache-
|
|
1
|
+
import { T as getEnvString, a as logger } from "./logger-B88EkIn6.js";
|
|
2
|
+
import { h as REQUEST_TIMEOUT_MS, t as fetchWithProxy } from "./fetch-B0Z3Oe4k.js";
|
|
3
|
+
import { r as fetchWithCache } from "./cache-C4Xb-hNb.js";
|
|
4
4
|
//#region src/providers/quiverai.ts
|
|
5
5
|
const QUIVERAI_API_BASE_URL = "https://api.quiver.ai/v1";
|
|
6
6
|
const QUIVERAI_DEFAULT_MODEL = "arrow-preview";
|
|
@@ -210,4 +210,4 @@ function createQuiverAiProvider(providerPath, providerOptions = {}, env) {
|
|
|
210
210
|
//#endregion
|
|
211
211
|
export { createQuiverAiProvider };
|
|
212
212
|
|
|
213
|
-
//# sourceMappingURL=quiverai-
|
|
213
|
+
//# sourceMappingURL=quiverai-CtWi6x_g.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
const require_logger = require("./logger-
|
|
2
|
-
const require_fetch = require("./fetch-
|
|
3
|
-
const require_cache = require("./cache-
|
|
1
|
+
const require_logger = require("./logger-COuQb2xB.cjs");
|
|
2
|
+
const require_fetch = require("./fetch-CJU5ELPa.cjs");
|
|
3
|
+
const require_cache = require("./cache-BIyPcp5v.cjs");
|
|
4
4
|
//#region src/providers/quiverai.ts
|
|
5
5
|
const QUIVERAI_API_BASE_URL = "https://api.quiver.ai/v1";
|
|
6
6
|
const QUIVERAI_DEFAULT_MODEL = "arrow-preview";
|
|
@@ -210,4 +210,4 @@ function createQuiverAiProvider(providerPath, providerOptions = {}, env) {
|
|
|
210
210
|
//#endregion
|
|
211
211
|
exports.createQuiverAiProvider = createQuiverAiProvider;
|
|
212
212
|
|
|
213
|
-
//# sourceMappingURL=quiverai-
|
|
213
|
+
//# sourceMappingURL=quiverai-DFotyafY.cjs.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { r as fetchWithCache } from "./cache-
|
|
1
|
+
import { T as getEnvString, a as logger } from "./logger-Ct2S6Yx-.js";
|
|
2
|
+
import { h as REQUEST_TIMEOUT_MS, t as fetchWithProxy } from "./fetch-Di00EQrc.js";
|
|
3
|
+
import { r as fetchWithCache } from "./cache-D5NZmMiT.js";
|
|
4
4
|
//#region src/providers/quiverai.ts
|
|
5
5
|
const QUIVERAI_API_BASE_URL = "https://api.quiver.ai/v1";
|
|
6
6
|
const QUIVERAI_DEFAULT_MODEL = "arrow-preview";
|
|
@@ -210,4 +210,4 @@ function createQuiverAiProvider(providerPath, providerOptions = {}, env) {
|
|
|
210
210
|
//#endregion
|
|
211
211
|
export { createQuiverAiProvider };
|
|
212
212
|
|
|
213
|
-
//# sourceMappingURL=quiverai-
|
|
213
|
+
//# sourceMappingURL=quiverai-DR0SnIQV.js.map
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import "./
|
|
5
|
-
import { a as fetchWithCache } from "./cache-BVeDlD87.js";
|
|
2
|
+
import { O as getEnvString, s as logger } from "./logger-DksKw1Qc.js";
|
|
3
|
+
import { m as REQUEST_TIMEOUT_MS, n as fetchWithProxy } from "./fetch-BEWnXrrG.js";
|
|
4
|
+
import { a as fetchWithCache } from "./cache-mb7c8hbp.js";
|
|
6
5
|
//#region src/providers/quiverai.ts
|
|
7
6
|
const QUIVERAI_API_BASE_URL = "https://api.quiver.ai/v1";
|
|
8
7
|
const QUIVERAI_DEFAULT_MODEL = "arrow-preview";
|
|
@@ -212,4 +211,4 @@ function createQuiverAiProvider(providerPath, providerOptions = {}, env) {
|
|
|
212
211
|
//#endregion
|
|
213
212
|
export { createQuiverAiProvider };
|
|
214
213
|
|
|
215
|
-
//# sourceMappingURL=quiverai-
|
|
214
|
+
//# sourceMappingURL=quiverai-aPPvXOgn.js.map
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { S as getEnvBool, a as logger, k as state } from "./logger-Ct2S6Yx-.js";
|
|
2
|
+
import nunjucks from "nunjucks";
|
|
3
|
+
//#region src/util/templates.ts
|
|
4
|
+
/**
|
|
5
|
+
* Get a Nunjucks engine instance with optional filters and configuration.
|
|
6
|
+
* @param filters - Optional map of custom Nunjucks filters.
|
|
7
|
+
* @param throwOnUndefined - Whether to throw an error on undefined variables.
|
|
8
|
+
* @param isGrader - Whether this engine is being used in a grader context.
|
|
9
|
+
* Nunjucks is always enabled in grader mode.
|
|
10
|
+
* @returns A configured Nunjucks environment.
|
|
11
|
+
*/
|
|
12
|
+
function getNunjucksEngine(filters, throwOnUndefined = false, isGrader = false) {
|
|
13
|
+
if (!isGrader && getEnvBool("PROMPTFOO_DISABLE_TEMPLATING")) return { renderString: (template) => template };
|
|
14
|
+
const env = nunjucks.configure({
|
|
15
|
+
autoescape: false,
|
|
16
|
+
throwOnUndefined
|
|
17
|
+
});
|
|
18
|
+
const envGlobals = {
|
|
19
|
+
...getEnvBool("PROMPTFOO_DISABLE_TEMPLATE_ENV_VARS", getEnvBool("PROMPTFOO_SELF_HOSTED", false)) ? {} : process.env,
|
|
20
|
+
...state.config?.env
|
|
21
|
+
};
|
|
22
|
+
env.addGlobal("env", envGlobals);
|
|
23
|
+
env.addFilter("load", function(str) {
|
|
24
|
+
return JSON.parse(str);
|
|
25
|
+
});
|
|
26
|
+
if (filters) for (const [name, filter] of Object.entries(filters)) env.addFilter(name, filter);
|
|
27
|
+
return env;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Parse Nunjucks template to extract variables.
|
|
31
|
+
* @param template - The Nunjucks template string.
|
|
32
|
+
* @returns An array of variables used in the template.
|
|
33
|
+
*/
|
|
34
|
+
function extractVariablesFromTemplate(template) {
|
|
35
|
+
const variableSet = /* @__PURE__ */ new Set();
|
|
36
|
+
const regex = /\{\{[\s]*([^{}\s|]+)[\s]*(?:\|[^}]+)?\}\}|\{%[\s]*(?:if|for)[\s]+([^{}\s]+)[\s]*.*?%\}/g;
|
|
37
|
+
template = template.replace(/\{#[\s\S]*?#\}/g, "");
|
|
38
|
+
let match;
|
|
39
|
+
while ((match = regex.exec(template)) !== null) {
|
|
40
|
+
const variable = match[1] || match[2];
|
|
41
|
+
if (variable) variableSet.add(variable);
|
|
42
|
+
}
|
|
43
|
+
const forLoopRegex = /\{%[\s]*for[\s]+(\w+)[\s]+in[\s]+(\w+)[\s]*%\}/g;
|
|
44
|
+
while ((match = forLoopRegex.exec(template)) !== null) {
|
|
45
|
+
variableSet.delete(match[1]);
|
|
46
|
+
variableSet.add(match[2]);
|
|
47
|
+
}
|
|
48
|
+
return Array.from(variableSet);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Extract variables from multiple Nunjucks templates.
|
|
52
|
+
* @param templates - An array of Nunjucks template strings.
|
|
53
|
+
* @returns An array of variables used in the templates.
|
|
54
|
+
*/
|
|
55
|
+
function extractVariablesFromTemplates(templates) {
|
|
56
|
+
const variableSet = /* @__PURE__ */ new Set();
|
|
57
|
+
for (const template of templates) extractVariablesFromTemplate(template).forEach((variable) => variableSet.add(variable));
|
|
58
|
+
return Array.from(variableSet);
|
|
59
|
+
}
|
|
60
|
+
//#endregion
|
|
61
|
+
//#region src/util/render.ts
|
|
62
|
+
/**
|
|
63
|
+
* Renders ONLY environment variable templates in an object, leaving all other templates untouched.
|
|
64
|
+
* This allows env vars to be resolved at provider load time while preserving runtime var templates.
|
|
65
|
+
*
|
|
66
|
+
* Supports full Nunjucks syntax for env vars including filters and expressions:
|
|
67
|
+
* - {{ env.VAR_NAME }}
|
|
68
|
+
* - {{ env['VAR-NAME'] }}
|
|
69
|
+
* - {{ env["VAR-NAME"] }}
|
|
70
|
+
* - {{ env.VAR | default('fallback') }}
|
|
71
|
+
* - {{ env.VAR | upper }}
|
|
72
|
+
*
|
|
73
|
+
* Preserves non-env templates for runtime rendering:
|
|
74
|
+
* - {{ vars.x }} - preserved as literal
|
|
75
|
+
* - {{ prompt }} - preserved as literal
|
|
76
|
+
*
|
|
77
|
+
* Implementation: Uses regex to find env templates, delegates to Nunjucks for rendering.
|
|
78
|
+
* This ensures full Nunjucks feature support while preserving non-env templates.
|
|
79
|
+
*
|
|
80
|
+
* @param obj - The object to process
|
|
81
|
+
* @param envOverrides - Optional env vars to merge with (or replace) the base env
|
|
82
|
+
* @param replaceBase - If true, envOverrides replaces the base env entirely instead of merging
|
|
83
|
+
* @returns The object with only env templates rendered
|
|
84
|
+
*/
|
|
85
|
+
function renderEnvOnlyInObject(obj, envOverrides, replaceBase) {
|
|
86
|
+
if (getEnvBool("PROMPTFOO_DISABLE_TEMPLATING")) return obj;
|
|
87
|
+
if (typeof obj === "string") {
|
|
88
|
+
const nunjucks = getNunjucksEngine();
|
|
89
|
+
const baseEnvGlobals = nunjucks.getGlobal("env");
|
|
90
|
+
const envGlobals = replaceBase ? envOverrides ?? {} : envOverrides ? {
|
|
91
|
+
...baseEnvGlobals,
|
|
92
|
+
...envOverrides
|
|
93
|
+
} : baseEnvGlobals;
|
|
94
|
+
return obj.replace(/\{\{(?:[^}]|\}(?!\}))*\}\}/g, (match) => {
|
|
95
|
+
if (!match.match(/\benv\.|env\[/)) return match;
|
|
96
|
+
const varMatch = match.match(/env\.(\w+)|env\[['"]([^'"]+)['"]\]/);
|
|
97
|
+
const varName = varMatch?.[1] || varMatch?.[2];
|
|
98
|
+
if (match.includes("|") || varName && varName in envGlobals && envGlobals[varName] !== void 0) try {
|
|
99
|
+
return nunjucks.renderString(match, { env: envGlobals });
|
|
100
|
+
} catch (error) {
|
|
101
|
+
logger.debug(`Failed to render env template "${match}": ${error instanceof Error ? error.message : String(error)}`);
|
|
102
|
+
return match;
|
|
103
|
+
}
|
|
104
|
+
return match;
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
if (Array.isArray(obj)) return obj.map((item) => renderEnvOnlyInObject(item, envOverrides, replaceBase));
|
|
108
|
+
if (typeof obj === "object" && obj !== null) {
|
|
109
|
+
const result = {};
|
|
110
|
+
for (const key in obj) {
|
|
111
|
+
if (key === "_conversation") {
|
|
112
|
+
result[key] = obj[key];
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
result[key] = renderEnvOnlyInObject(obj[key], envOverrides, replaceBase);
|
|
116
|
+
}
|
|
117
|
+
return result;
|
|
118
|
+
}
|
|
119
|
+
return obj;
|
|
120
|
+
}
|
|
121
|
+
function renderVarsInObject(obj, vars) {
|
|
122
|
+
if (!vars || getEnvBool("PROMPTFOO_DISABLE_TEMPLATING")) return obj;
|
|
123
|
+
if (typeof obj === "string") return getNunjucksEngine().renderString(obj, vars);
|
|
124
|
+
if (Array.isArray(obj)) return obj.map((item) => renderVarsInObject(item, vars));
|
|
125
|
+
if (typeof obj === "object" && obj !== null) {
|
|
126
|
+
const result = {};
|
|
127
|
+
for (const key in obj) result[key] = renderVarsInObject(obj[key], vars);
|
|
128
|
+
return result;
|
|
129
|
+
} else if (typeof obj === "function") return renderVarsInObject(obj({ vars }));
|
|
130
|
+
return obj;
|
|
131
|
+
}
|
|
132
|
+
//#endregion
|
|
133
|
+
export { getNunjucksEngine as a, extractVariablesFromTemplates as i, renderVarsInObject as n, extractVariablesFromTemplate as r, renderEnvOnlyInObject as t };
|
|
134
|
+
|
|
135
|
+
//# sourceMappingURL=render-CH-62LbA.js.map
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { N as state, T as getEnvBool, s as logger } from "./logger-DksKw1Qc.js";
|
|
3
|
+
import nunjucks from "nunjucks";
|
|
4
|
+
//#region src/util/templates.ts
|
|
5
|
+
/**
|
|
6
|
+
* Get a Nunjucks engine instance with optional filters and configuration.
|
|
7
|
+
* @param filters - Optional map of custom Nunjucks filters.
|
|
8
|
+
* @param throwOnUndefined - Whether to throw an error on undefined variables.
|
|
9
|
+
* @param isGrader - Whether this engine is being used in a grader context.
|
|
10
|
+
* Nunjucks is always enabled in grader mode.
|
|
11
|
+
* @returns A configured Nunjucks environment.
|
|
12
|
+
*/
|
|
13
|
+
function getNunjucksEngine(filters, throwOnUndefined = false, isGrader = false) {
|
|
14
|
+
if (!isGrader && getEnvBool("PROMPTFOO_DISABLE_TEMPLATING")) return { renderString: (template) => template };
|
|
15
|
+
const env = nunjucks.configure({
|
|
16
|
+
autoescape: false,
|
|
17
|
+
throwOnUndefined
|
|
18
|
+
});
|
|
19
|
+
const envGlobals = {
|
|
20
|
+
...getEnvBool("PROMPTFOO_DISABLE_TEMPLATE_ENV_VARS", getEnvBool("PROMPTFOO_SELF_HOSTED", false)) ? {} : process.env,
|
|
21
|
+
...state.config?.env
|
|
22
|
+
};
|
|
23
|
+
env.addGlobal("env", envGlobals);
|
|
24
|
+
env.addFilter("load", function(str) {
|
|
25
|
+
return JSON.parse(str);
|
|
26
|
+
});
|
|
27
|
+
if (filters) for (const [name, filter] of Object.entries(filters)) env.addFilter(name, filter);
|
|
28
|
+
return env;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Parse Nunjucks template to extract variables.
|
|
32
|
+
* @param template - The Nunjucks template string.
|
|
33
|
+
* @returns An array of variables used in the template.
|
|
34
|
+
*/
|
|
35
|
+
function extractVariablesFromTemplate(template) {
|
|
36
|
+
const variableSet = /* @__PURE__ */ new Set();
|
|
37
|
+
const regex = /\{\{[\s]*([^{}\s|]+)[\s]*(?:\|[^}]+)?\}\}|\{%[\s]*(?:if|for)[\s]+([^{}\s]+)[\s]*.*?%\}/g;
|
|
38
|
+
template = template.replace(/\{#[\s\S]*?#\}/g, "");
|
|
39
|
+
let match;
|
|
40
|
+
while ((match = regex.exec(template)) !== null) {
|
|
41
|
+
const variable = match[1] || match[2];
|
|
42
|
+
if (variable) variableSet.add(variable);
|
|
43
|
+
}
|
|
44
|
+
const forLoopRegex = /\{%[\s]*for[\s]+(\w+)[\s]+in[\s]+(\w+)[\s]*%\}/g;
|
|
45
|
+
while ((match = forLoopRegex.exec(template)) !== null) {
|
|
46
|
+
variableSet.delete(match[1]);
|
|
47
|
+
variableSet.add(match[2]);
|
|
48
|
+
}
|
|
49
|
+
return Array.from(variableSet);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Extract variables from multiple Nunjucks templates.
|
|
53
|
+
* @param templates - An array of Nunjucks template strings.
|
|
54
|
+
* @returns An array of variables used in the templates.
|
|
55
|
+
*/
|
|
56
|
+
function extractVariablesFromTemplates(templates) {
|
|
57
|
+
const variableSet = /* @__PURE__ */ new Set();
|
|
58
|
+
for (const template of templates) extractVariablesFromTemplate(template).forEach((variable) => variableSet.add(variable));
|
|
59
|
+
return Array.from(variableSet);
|
|
60
|
+
}
|
|
61
|
+
//#endregion
|
|
62
|
+
//#region src/util/render.ts
|
|
63
|
+
/**
|
|
64
|
+
* Renders ONLY environment variable templates in an object, leaving all other templates untouched.
|
|
65
|
+
* This allows env vars to be resolved at provider load time while preserving runtime var templates.
|
|
66
|
+
*
|
|
67
|
+
* Supports full Nunjucks syntax for env vars including filters and expressions:
|
|
68
|
+
* - {{ env.VAR_NAME }}
|
|
69
|
+
* - {{ env['VAR-NAME'] }}
|
|
70
|
+
* - {{ env["VAR-NAME"] }}
|
|
71
|
+
* - {{ env.VAR | default('fallback') }}
|
|
72
|
+
* - {{ env.VAR | upper }}
|
|
73
|
+
*
|
|
74
|
+
* Preserves non-env templates for runtime rendering:
|
|
75
|
+
* - {{ vars.x }} - preserved as literal
|
|
76
|
+
* - {{ prompt }} - preserved as literal
|
|
77
|
+
*
|
|
78
|
+
* Implementation: Uses regex to find env templates, delegates to Nunjucks for rendering.
|
|
79
|
+
* This ensures full Nunjucks feature support while preserving non-env templates.
|
|
80
|
+
*
|
|
81
|
+
* @param obj - The object to process
|
|
82
|
+
* @param envOverrides - Optional env vars to merge with (or replace) the base env
|
|
83
|
+
* @param replaceBase - If true, envOverrides replaces the base env entirely instead of merging
|
|
84
|
+
* @returns The object with only env templates rendered
|
|
85
|
+
*/
|
|
86
|
+
function renderEnvOnlyInObject(obj, envOverrides, replaceBase) {
|
|
87
|
+
if (getEnvBool("PROMPTFOO_DISABLE_TEMPLATING")) return obj;
|
|
88
|
+
if (typeof obj === "string") {
|
|
89
|
+
const nunjucks = getNunjucksEngine();
|
|
90
|
+
const baseEnvGlobals = nunjucks.getGlobal("env");
|
|
91
|
+
const envGlobals = replaceBase ? envOverrides ?? {} : envOverrides ? {
|
|
92
|
+
...baseEnvGlobals,
|
|
93
|
+
...envOverrides
|
|
94
|
+
} : baseEnvGlobals;
|
|
95
|
+
return obj.replace(/\{\{(?:[^}]|\}(?!\}))*\}\}/g, (match) => {
|
|
96
|
+
if (!match.match(/\benv\.|env\[/)) return match;
|
|
97
|
+
const varMatch = match.match(/env\.(\w+)|env\[['"]([^'"]+)['"]\]/);
|
|
98
|
+
const varName = varMatch?.[1] || varMatch?.[2];
|
|
99
|
+
if (match.includes("|") || varName && varName in envGlobals && envGlobals[varName] !== void 0) try {
|
|
100
|
+
return nunjucks.renderString(match, { env: envGlobals });
|
|
101
|
+
} catch (error) {
|
|
102
|
+
logger.debug(`Failed to render env template "${match}": ${error instanceof Error ? error.message : String(error)}`);
|
|
103
|
+
return match;
|
|
104
|
+
}
|
|
105
|
+
return match;
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
if (Array.isArray(obj)) return obj.map((item) => renderEnvOnlyInObject(item, envOverrides, replaceBase));
|
|
109
|
+
if (typeof obj === "object" && obj !== null) {
|
|
110
|
+
const result = {};
|
|
111
|
+
for (const key in obj) {
|
|
112
|
+
if (key === "_conversation") {
|
|
113
|
+
result[key] = obj[key];
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
result[key] = renderEnvOnlyInObject(obj[key], envOverrides, replaceBase);
|
|
117
|
+
}
|
|
118
|
+
return result;
|
|
119
|
+
}
|
|
120
|
+
return obj;
|
|
121
|
+
}
|
|
122
|
+
function renderVarsInObject(obj, vars) {
|
|
123
|
+
if (!vars || getEnvBool("PROMPTFOO_DISABLE_TEMPLATING")) return obj;
|
|
124
|
+
if (typeof obj === "string") return getNunjucksEngine().renderString(obj, vars);
|
|
125
|
+
if (Array.isArray(obj)) return obj.map((item) => renderVarsInObject(item, vars));
|
|
126
|
+
if (typeof obj === "object" && obj !== null) {
|
|
127
|
+
const result = {};
|
|
128
|
+
for (const key in obj) result[key] = renderVarsInObject(obj[key], vars);
|
|
129
|
+
return result;
|
|
130
|
+
} else if (typeof obj === "function") return renderVarsInObject(obj({ vars }));
|
|
131
|
+
return obj;
|
|
132
|
+
}
|
|
133
|
+
//#endregion
|
|
134
|
+
export { getNunjucksEngine as a, extractVariablesFromTemplates as i, renderVarsInObject as n, extractVariablesFromTemplate as r, renderEnvOnlyInObject as t };
|
|
135
|
+
|
|
136
|
+
//# sourceMappingURL=render-CMEpfLaO.js.map
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import "./
|
|
3
|
-
import { t as canUseInteractiveUI } from "./interactiveCheck-BgLZUIt3.js";
|
|
2
|
+
import { t as canUseInteractiveUI } from "./interactiveCheck-CLERUB0c.js";
|
|
4
3
|
//#region src/ui/render.ts
|
|
5
4
|
/**
|
|
6
5
|
* Process exit codes for signal handling.
|
|
@@ -114,4 +113,4 @@ function supportsColor() {
|
|
|
114
113
|
//#endregion
|
|
115
114
|
export { canUseInteractiveUI, getTerminalSize, renderInteractive, runInteractive, supportsColor };
|
|
116
115
|
|
|
117
|
-
//# sourceMappingURL=render-
|
|
116
|
+
//# sourceMappingURL=render-CgVDrJmM.js.map
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { S as getEnvBool, a as logger, k as state } from "./logger-B88EkIn6.js";
|
|
2
|
+
import nunjucks from "nunjucks";
|
|
3
|
+
//#region src/util/templates.ts
|
|
4
|
+
/**
|
|
5
|
+
* Get a Nunjucks engine instance with optional filters and configuration.
|
|
6
|
+
* @param filters - Optional map of custom Nunjucks filters.
|
|
7
|
+
* @param throwOnUndefined - Whether to throw an error on undefined variables.
|
|
8
|
+
* @param isGrader - Whether this engine is being used in a grader context.
|
|
9
|
+
* Nunjucks is always enabled in grader mode.
|
|
10
|
+
* @returns A configured Nunjucks environment.
|
|
11
|
+
*/
|
|
12
|
+
function getNunjucksEngine(filters, throwOnUndefined = false, isGrader = false) {
|
|
13
|
+
if (!isGrader && getEnvBool("PROMPTFOO_DISABLE_TEMPLATING")) return { renderString: (template) => template };
|
|
14
|
+
const env = nunjucks.configure({
|
|
15
|
+
autoescape: false,
|
|
16
|
+
throwOnUndefined
|
|
17
|
+
});
|
|
18
|
+
const envGlobals = {
|
|
19
|
+
...getEnvBool("PROMPTFOO_DISABLE_TEMPLATE_ENV_VARS", getEnvBool("PROMPTFOO_SELF_HOSTED", false)) ? {} : process.env,
|
|
20
|
+
...state.config?.env
|
|
21
|
+
};
|
|
22
|
+
env.addGlobal("env", envGlobals);
|
|
23
|
+
env.addFilter("load", function(str) {
|
|
24
|
+
return JSON.parse(str);
|
|
25
|
+
});
|
|
26
|
+
if (filters) for (const [name, filter] of Object.entries(filters)) env.addFilter(name, filter);
|
|
27
|
+
return env;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Parse Nunjucks template to extract variables.
|
|
31
|
+
* @param template - The Nunjucks template string.
|
|
32
|
+
* @returns An array of variables used in the template.
|
|
33
|
+
*/
|
|
34
|
+
function extractVariablesFromTemplate(template) {
|
|
35
|
+
const variableSet = /* @__PURE__ */ new Set();
|
|
36
|
+
const regex = /\{\{[\s]*([^{}\s|]+)[\s]*(?:\|[^}]+)?\}\}|\{%[\s]*(?:if|for)[\s]+([^{}\s]+)[\s]*.*?%\}/g;
|
|
37
|
+
template = template.replace(/\{#[\s\S]*?#\}/g, "");
|
|
38
|
+
let match;
|
|
39
|
+
while ((match = regex.exec(template)) !== null) {
|
|
40
|
+
const variable = match[1] || match[2];
|
|
41
|
+
if (variable) variableSet.add(variable);
|
|
42
|
+
}
|
|
43
|
+
const forLoopRegex = /\{%[\s]*for[\s]+(\w+)[\s]+in[\s]+(\w+)[\s]*%\}/g;
|
|
44
|
+
while ((match = forLoopRegex.exec(template)) !== null) {
|
|
45
|
+
variableSet.delete(match[1]);
|
|
46
|
+
variableSet.add(match[2]);
|
|
47
|
+
}
|
|
48
|
+
return Array.from(variableSet);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Extract variables from multiple Nunjucks templates.
|
|
52
|
+
* @param templates - An array of Nunjucks template strings.
|
|
53
|
+
* @returns An array of variables used in the templates.
|
|
54
|
+
*/
|
|
55
|
+
function extractVariablesFromTemplates(templates) {
|
|
56
|
+
const variableSet = /* @__PURE__ */ new Set();
|
|
57
|
+
for (const template of templates) extractVariablesFromTemplate(template).forEach((variable) => variableSet.add(variable));
|
|
58
|
+
return Array.from(variableSet);
|
|
59
|
+
}
|
|
60
|
+
//#endregion
|
|
61
|
+
//#region src/util/render.ts
|
|
62
|
+
/**
|
|
63
|
+
* Renders ONLY environment variable templates in an object, leaving all other templates untouched.
|
|
64
|
+
* This allows env vars to be resolved at provider load time while preserving runtime var templates.
|
|
65
|
+
*
|
|
66
|
+
* Supports full Nunjucks syntax for env vars including filters and expressions:
|
|
67
|
+
* - {{ env.VAR_NAME }}
|
|
68
|
+
* - {{ env['VAR-NAME'] }}
|
|
69
|
+
* - {{ env["VAR-NAME"] }}
|
|
70
|
+
* - {{ env.VAR | default('fallback') }}
|
|
71
|
+
* - {{ env.VAR | upper }}
|
|
72
|
+
*
|
|
73
|
+
* Preserves non-env templates for runtime rendering:
|
|
74
|
+
* - {{ vars.x }} - preserved as literal
|
|
75
|
+
* - {{ prompt }} - preserved as literal
|
|
76
|
+
*
|
|
77
|
+
* Implementation: Uses regex to find env templates, delegates to Nunjucks for rendering.
|
|
78
|
+
* This ensures full Nunjucks feature support while preserving non-env templates.
|
|
79
|
+
*
|
|
80
|
+
* @param obj - The object to process
|
|
81
|
+
* @param envOverrides - Optional env vars to merge with (or replace) the base env
|
|
82
|
+
* @param replaceBase - If true, envOverrides replaces the base env entirely instead of merging
|
|
83
|
+
* @returns The object with only env templates rendered
|
|
84
|
+
*/
|
|
85
|
+
function renderEnvOnlyInObject(obj, envOverrides, replaceBase) {
|
|
86
|
+
if (getEnvBool("PROMPTFOO_DISABLE_TEMPLATING")) return obj;
|
|
87
|
+
if (typeof obj === "string") {
|
|
88
|
+
const nunjucks = getNunjucksEngine();
|
|
89
|
+
const baseEnvGlobals = nunjucks.getGlobal("env");
|
|
90
|
+
const envGlobals = replaceBase ? envOverrides ?? {} : envOverrides ? {
|
|
91
|
+
...baseEnvGlobals,
|
|
92
|
+
...envOverrides
|
|
93
|
+
} : baseEnvGlobals;
|
|
94
|
+
return obj.replace(/\{\{(?:[^}]|\}(?!\}))*\}\}/g, (match) => {
|
|
95
|
+
if (!match.match(/\benv\.|env\[/)) return match;
|
|
96
|
+
const varMatch = match.match(/env\.(\w+)|env\[['"]([^'"]+)['"]\]/);
|
|
97
|
+
const varName = varMatch?.[1] || varMatch?.[2];
|
|
98
|
+
if (match.includes("|") || varName && varName in envGlobals && envGlobals[varName] !== void 0) try {
|
|
99
|
+
return nunjucks.renderString(match, { env: envGlobals });
|
|
100
|
+
} catch (error) {
|
|
101
|
+
logger.debug(`Failed to render env template "${match}": ${error instanceof Error ? error.message : String(error)}`);
|
|
102
|
+
return match;
|
|
103
|
+
}
|
|
104
|
+
return match;
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
if (Array.isArray(obj)) return obj.map((item) => renderEnvOnlyInObject(item, envOverrides, replaceBase));
|
|
108
|
+
if (typeof obj === "object" && obj !== null) {
|
|
109
|
+
const result = {};
|
|
110
|
+
for (const key in obj) {
|
|
111
|
+
if (key === "_conversation") {
|
|
112
|
+
result[key] = obj[key];
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
result[key] = renderEnvOnlyInObject(obj[key], envOverrides, replaceBase);
|
|
116
|
+
}
|
|
117
|
+
return result;
|
|
118
|
+
}
|
|
119
|
+
return obj;
|
|
120
|
+
}
|
|
121
|
+
function renderVarsInObject(obj, vars) {
|
|
122
|
+
if (!vars || getEnvBool("PROMPTFOO_DISABLE_TEMPLATING")) return obj;
|
|
123
|
+
if (typeof obj === "string") return getNunjucksEngine().renderString(obj, vars);
|
|
124
|
+
if (Array.isArray(obj)) return obj.map((item) => renderVarsInObject(item, vars));
|
|
125
|
+
if (typeof obj === "object" && obj !== null) {
|
|
126
|
+
const result = {};
|
|
127
|
+
for (const key in obj) result[key] = renderVarsInObject(obj[key], vars);
|
|
128
|
+
return result;
|
|
129
|
+
} else if (typeof obj === "function") return renderVarsInObject(obj({ vars }));
|
|
130
|
+
return obj;
|
|
131
|
+
}
|
|
132
|
+
//#endregion
|
|
133
|
+
export { getNunjucksEngine as a, extractVariablesFromTemplates as i, renderVarsInObject as n, extractVariablesFromTemplate as r, renderEnvOnlyInObject as t };
|
|
134
|
+
|
|
135
|
+
//# sourceMappingURL=render-DHIZ6_k8.js.map
|