promptfoo 0.120.27 → 0.121.2
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-8WOe2nT6.js → ListApp-Du7YVwj5.js} +2 -4
- package/dist/src/accounts-B0pgC1oV.js +206 -0
- package/dist/src/{accounts-DVINui-2.js → accounts-Bm2D8Db9.js} +39 -34
- package/dist/src/{accounts-CPDRAMND.js → accounts-CiBLOnA7.js} +38 -33
- package/dist/src/{accounts-Fl2J3_Fu.cjs → accounts-gtkH-5KX.cjs} +77 -78
- package/dist/src/{agentic-utils-D922n6mm.js → agentic-utils-DS1g3GLF.js} +9 -10
- package/dist/src/{agents-BcsN_BgB.js → agents-9qiOy0ho.js} +16 -12
- package/dist/src/{agents-BXLmVsxR.js → agents-CBr9A01V.js} +37 -37
- package/dist/src/{agents-pMfppv9Z.js → agents-CmvBq8LV.js} +16 -18
- package/dist/src/{agents-hqgSV-3o.js → agents-D__IdAlg.js} +39 -40
- package/dist/src/{agents-BO2n8Z0d.cjs → agents-DbRtpYxR.cjs} +37 -40
- package/dist/src/{agents-BdUTAwi-.js → agents-DgF2zDag.js} +37 -42
- package/dist/src/{agents-DgJf2-ez.cjs → agents-Di9DKPzn.cjs} +16 -17
- package/dist/src/{agents-DNvSH78i.js → agents-cLXA8a_8.js} +17 -19
- package/dist/src/{aimlapi-DtgPI0nE.js → aimlapi-B4rcnZgv.js} +15 -17
- package/dist/src/{aimlapi-BE_Tg9Fl.cjs → aimlapi-BvlNH0gr.cjs} +15 -16
- package/dist/src/{aimlapi-DOib86oE.js → aimlapi-CnkC2HqE.js} +16 -18
- package/dist/src/{aimlapi-DTPACCB1.js → aimlapi-DHJU_kcV.js} +15 -4
- package/dist/src/app/assets/index-4LKxG2CG.js +439 -0
- package/dist/src/app/assets/{index-NCn4eVBv.css → index-C3zcsZFQ.css} +1 -1
- package/dist/src/app/assets/vendor-charts-BnDWwBlI.js +36 -0
- package/dist/src/app/index.html +3 -3
- package/dist/src/app/tsconfig.app.tsbuildinfo +1 -1
- package/dist/src/{audio-BnRUGAm_.js → audio-Bkv46et0.js} +6 -5
- package/dist/src/{audio-Cwo68yZS.cjs → audio-CGMyULza.cjs} +6 -7
- package/dist/src/{audio-MSRki4JU.js → audio-ClI_AFre.js} +6 -8
- package/dist/src/{audio-BRYU0BFo.js → audio-Dz3z7s3J.js} +7 -9
- package/dist/src/{base-pGVmXNl4.cjs → base-CGrhspbK.cjs} +36 -38
- package/dist/src/{base-h961VXYk.js → base-CpjcHe4e.js} +11 -13
- package/dist/src/base-DLKtKMFh.js +193 -0
- package/dist/src/{base-XB2tDJrB.js → base-Dy1V8--Z.js} +11 -13
- package/dist/src/blobs-BDbfYdrJ.js +236 -0
- package/dist/src/{blobs-CR5C4Ihh.js → blobs-CBO20krR.js} +9 -12
- package/dist/src/{blobs-BM_e6hCa.js → blobs-CMHN0Qcz.js} +9 -12
- package/dist/src/{blobs-B-KQAFhX.cjs → blobs-D23XLin-.cjs} +34 -37
- package/dist/src/{cache-jsiwsAJv.js → cache-BVeDlD87.js} +132 -117
- package/dist/src/{cache-CIpsoBZR.js → cache-C4Nxf52C.js} +132 -118
- package/dist/src/cache-CeUpFm3M.cjs +5 -0
- package/dist/src/{cache-BTVYfbka.cjs → cache-Dh5WtQps.cjs} +182 -168
- package/dist/src/cache-i1P6crbO.js +756 -0
- package/dist/src/cache-n-RCJ-hL.js +6 -0
- package/dist/src/{chat-BcPjZXIp.js → chat-BiKyneZl.js} +45 -46
- package/dist/src/{chat-D31K7C4u.cjs → chat-C1Qst7jL.cjs} +20 -21
- package/dist/src/{chat-B84t99NW.js → chat-C2jrdPMx.js} +20 -9
- package/dist/src/{chat-BE44YOc6.cjs → chat-CgF-J-Jj.cjs} +65 -66
- package/dist/src/{chat-DwWifjxi.js → chat-CzkrVDfz.js} +20 -22
- package/dist/src/chat-DJIw17u0.js +766 -0
- package/dist/src/{chat-CcUCysjU.js → chat-DqxYYtWA.js} +45 -46
- package/dist/src/{chat-DZM2GUHO.js → chat-qmatte1u.js} +21 -23
- package/dist/src/{chatkit-D67HS_0b.js → chatkit-65VXf5SR.js} +58 -58
- package/dist/src/{chatkit-DAB_qfzI.js → chatkit-Be-Q-a9F.js} +58 -60
- package/dist/src/{chatkit-Biqb_wsD.js → chatkit-BxFvW8KY.js} +58 -60
- package/dist/src/{chatkit-PGG4ZYIn.cjs → chatkit-DKyPi1Gs.cjs} +58 -60
- package/dist/src/chunk-DEq-mXcV.js +15 -0
- package/dist/src/chunk-DRamLcfz.js +16 -0
- package/dist/src/{claude-agent-sdk-SVM6AdBu.js → claude-agent-sdk-Apiy0iaz.js} +31 -31
- package/dist/src/{claude-agent-sdk-C-IOTPfo.js → claude-agent-sdk-D2bJee9S.js} +31 -29
- package/dist/src/{claude-agent-sdk-C9SiaQub.cjs → claude-agent-sdk-D9Z5Pr9X.cjs} +31 -28
- package/dist/src/{claude-agent-sdk-CiluSyW1.js → claude-agent-sdk-DfCoW0E6.js} +33 -20
- package/dist/src/cloud-BBh91EUK.js +4 -0
- package/dist/src/{cloud-CZ-q9Ier.js → cloud-C0dlstV_.js} +7 -9
- package/dist/src/{cloudflare-ai-BahKHyhh.js → cloudflare-ai-8TDxHR0x.js} +16 -18
- package/dist/src/{cloudflare-ai-v_qZD6_q.js → cloudflare-ai-BxAGvfju.js} +17 -19
- package/dist/src/{cloudflare-ai-Dfahv5SY.cjs → cloudflare-ai-CknbZ5LJ.cjs} +16 -17
- package/dist/src/{cloudflare-ai-Dxyt50Nl.js → cloudflare-ai-g7PB6VHR.js} +16 -4
- package/dist/src/{cloudflare-gateway-Bi_FpOFy.js → cloudflare-gateway-B9HWA5wf.js} +23 -23
- package/dist/src/{cloudflare-gateway-BPWoZIzJ.cjs → cloudflare-gateway-BSnDmHYo.cjs} +21 -22
- package/dist/src/{cloudflare-gateway-C0guUNwk.js → cloudflare-gateway-CKDb4dJ8.js} +26 -14
- package/dist/src/{cloudflare-gateway-btS7h1OZ.js → cloudflare-gateway-CP9QEWYS.js} +21 -25
- package/dist/src/{codex-sdk-DSxAnbfT.js → codex-sdk-C6UMlxwV.js} +28 -29
- package/dist/src/{codex-sdk-IYVi9fuM.js → codex-sdk-DUwKWezN.js} +28 -27
- package/dist/src/{codex-sdk-DulY0ZRq.js → codex-sdk-GGAw0qbD.js} +28 -29
- package/dist/src/{codex-sdk-DFKMtAyf.cjs → codex-sdk-fAO0c3yA.cjs} +28 -29
- package/dist/src/{cometapi-DzrR3SR_.js → cometapi-BL9yvj_f.js} +16 -4
- package/dist/src/{cometapi-DIO64tf4.cjs → cometapi-C4xSqeID.cjs} +21 -22
- package/dist/src/{cometapi-C9EEpJzT.js → cometapi-CUQq3H_a.js} +21 -24
- package/dist/src/{cometapi-DkNBMk0G.js → cometapi-DFNiKmSz.js} +17 -19
- package/dist/src/{completion-CG29bfKX.js → completion-5MzrpJxT.js} +11 -13
- package/dist/src/{completion-CCRT4kX1.cjs → completion-CM6oK8PS.cjs} +21 -23
- package/dist/src/{completion-Bgf1VJoq.js → completion-DZ083F31.js} +11 -13
- package/dist/src/completion-qRoZAYRB.js +120 -0
- package/dist/src/{createHash-Dw_iLu31.js → createHash-CTQmL3G2.js} +2 -3
- package/dist/src/{createHash-CYQy4YeL.cjs → createHash-CfZSc0b4.cjs} +13 -14
- package/dist/src/{createHash-CJcfskIZ.js → createHash-Da8fMwqB.js} +2 -3
- package/dist/src/createHash-DmPQkvBh.js +15 -0
- package/dist/src/{docker-D-ayp2FW.js → docker-Bb5dcxr8.js} +18 -20
- package/dist/src/{docker-B81N0t4e.js → docker-BvfL2BrW.js} +19 -21
- package/dist/src/{docker-DNcLR4Ig.cjs → docker-DcF2pRrj.cjs} +18 -19
- package/dist/src/{docker-egERKxCF.js → docker-ExVyLp0S.js} +18 -7
- package/dist/src/entrypoint.js +2 -3
- package/dist/src/{errors-DnGCbnx8.js → errors-P6ll7XSJ.js} +2 -2
- package/dist/src/{esm-B9dPm_BF.js → esm-C03C-mv3.js} +17 -20
- package/dist/src/{esm-D2pZ87fL.js → esm-CaIwzWR5.js} +18 -21
- package/dist/src/esm-Cd1AjG1D.js +379 -0
- package/dist/src/{esm-Ct-Joyue.cjs → esm-CnNt7sI4.cjs} +47 -49
- package/dist/src/eval-B3r2CVXr.js +15 -0
- package/dist/src/{eval-C-Nr6wX_.js → eval-Dg2nG4v2.js} +47 -54
- package/dist/src/evalResult-5xwYnECe.js +12 -0
- package/dist/src/evalResult-71lY93Kj.cjs +10 -0
- package/dist/src/{evalResult-DXMWJ3sx.js → evalResult-BBRNtX4I.js} +10 -11
- package/dist/src/{evalResult-4BzI2tmj.js → evalResult-BDMqrapS.js} +16 -12
- package/dist/src/evalResult-Dx5P5cIv.js +10 -0
- package/dist/src/{evalResult-CX8wQecI.cjs → evalResult-fuaI8HkH.cjs} +20 -21
- package/dist/src/{evaluator-8aGyV12L.js → evaluator-BhoWwp5b.js} +211 -235
- package/dist/src/evaluator-Jx6bRZV6.js +36 -0
- package/dist/src/{extractor-V5x_m1i0.js → extractor-C0EVHewb.js} +22 -24
- package/dist/src/extractor-D25qpmGX.js +374 -0
- package/dist/src/{extractor-CD5yKL-G.js → extractor-DReVID0K.js} +22 -24
- package/dist/src/{extractor-C031XmTA.cjs → extractor-pYLLi3wS.cjs} +37 -39
- package/dist/src/{fetch-BmbD-v1L.cjs → fetch-BPkYtG8K.cjs} +244 -277
- package/dist/src/fetch-BxNb_Lp3.js +5 -0
- package/dist/src/{fetch-D3OHf-lV.js → fetch-Cwxnd8zz.js} +36 -44
- package/dist/src/{fetch-CXZI9RRr.js → fetch-Dxpd4_sr.js} +23 -35
- package/dist/src/fetch-HaqdX7U1.js +780 -0
- package/dist/src/{fileExtensions-ePDqouxn.js → fileExtensions-DnqA1y9x.js} +2 -2
- package/dist/src/{fileExtensions-BpuMmaFL.js → fileExtensions-Ds-foDzt.js} +2 -2
- package/dist/src/fileExtensions-LcDYkU4v.js +85 -0
- package/dist/src/{fileExtensions-DkJYkWUy.cjs → fileExtensions-bYh77CN8.cjs} +27 -28
- package/dist/src/{formatDuration-CdevI3An.js → formatDuration-DgBVMN65.js} +2 -2
- package/dist/src/{genaiTracer-Ce19n68P.js → genaiTracer-70Z8BIuV.js} +2 -3
- package/dist/src/{genaiTracer-CqNnnXrE.js → genaiTracer-C1rxGO8Q.js} +2 -3
- package/dist/src/genaiTracer-D3fD9dNV.js +256 -0
- package/dist/src/{genaiTracer-Dres3qrN.cjs → genaiTracer-DN4dQywX.cjs} +13 -14
- package/dist/src/{graders--1y2u9HO.js → graders-BTeBGqjJ.js} +349 -397
- package/dist/src/graders-B_pgMLS2.js +34 -0
- package/dist/src/{graders-DTeBrzWp.js → graders-Bj_Odv7c.js} +349 -397
- package/dist/src/graders-DErokPDO.cjs +32 -0
- package/dist/src/graders-DP7KFFo-.js +13466 -0
- package/dist/src/graders-DR_uNe54.js +32 -0
- package/dist/src/{graders-DohM2dir.cjs → graders-DU49_J8Y.cjs} +684 -732
- package/dist/src/graders-w3176Wz-.js +32 -0
- package/dist/src/{image-B0U4Hqll.js → image-B02ogr_b.js} +7 -9
- package/dist/src/{image-DmE-niFE.js → image-B0h9VEMc.js} +6 -5
- package/dist/src/{image-CuKHuccK.cjs → image-BLmROtN3.cjs} +29 -30
- package/dist/src/{image-DNEIf_aI.js → image-Bb4vWQLM.js} +6 -8
- package/dist/src/{image-DpKl2F15.cjs → image-C1madmKh.cjs} +6 -7
- package/dist/src/{image-C3wHC9_h.js → image-CHfWvljl.js} +9 -10
- package/dist/src/{image-O1u4bCFg.js → image-DS-o-0ph.js} +9 -10
- package/dist/src/image-Dpxa1Jt6.js +257 -0
- package/dist/src/index.cjs +615 -695
- package/dist/src/index.d.cts +271 -7
- package/dist/src/index.d.ts +271 -3
- package/dist/src/index.js +580 -664
- package/dist/src/{interactiveCheck-Bxj1Swex.js → interactiveCheck-BgLZUIt3.js} +7 -8
- package/dist/src/{invariant-DT20jrBd.js → invariant-BtWWVVhl.js} +2 -2
- package/dist/src/{invariant-1pAf2CD1.js → invariant-Ddh24eXh.js} +2 -2
- package/dist/src/{invariant-CKcJAQ6M.cjs → invariant-kfQ8Bu82.cjs} +7 -8
- package/dist/src/invariant-vgHWClmd.js +25 -0
- package/dist/src/{knowledgeBase-CEzQobWX.js → knowledgeBase-B3OoKIej.js} +14 -9
- package/dist/src/{knowledgeBase-Be_zyW4L.js → knowledgeBase-CYTLHOt1.js} +16 -16
- package/dist/src/{knowledgeBase-BZ41IFwq.js → knowledgeBase-D33Ty2l6.js} +14 -18
- package/dist/src/{knowledgeBase-D-5BMXlr.cjs → knowledgeBase-DOO_BM9b.cjs} +14 -15
- package/dist/src/{litellm-DnbRJ2if.js → litellm-AaeZcZQF.js} +18 -19
- package/dist/src/{litellm-hUSNM_M2.cjs → litellm-I_hbp_dc.cjs} +17 -17
- package/dist/src/{litellm-CRDqPhNI.js → litellm-NbjknEh6.js} +17 -18
- package/dist/src/{litellm-9vR8zpfU.js → litellm-TrljxD9G.js} +17 -5
- package/dist/src/{logger-CG1uZPbQ.js → logger-CT3IKMKA.js} +10 -29
- package/dist/src/{logger-B7sBeGa0.cjs → logger-Cp1GPUjj.cjs} +152 -180
- package/dist/src/logger-DLcq4dWf.js +713 -0
- package/dist/src/{logger-LSBxlt7a.js → logger-KkObSCzq.js} +13 -31
- package/dist/src/{luma-ray-4blv9iZ2.js → luma-ray-BS2_tY8L.js} +22 -21
- package/dist/src/{luma-ray-drvgdpP9.js → luma-ray-DDsjcgZZ.js} +20 -13
- package/dist/src/{luma-ray-Hm3d6VJE.cjs → luma-ray-Due0n7di.cjs} +20 -21
- package/dist/src/{luma-ray-B2__8lYH.js → luma-ray-f6I2fft-.js} +20 -23
- package/dist/src/main.js +1170 -1321
- package/dist/src/{messages-Uee41Mj5.js → messages-BS17jdMx.js} +22 -24
- package/dist/src/{messages-XhiwCbi4.cjs → messages-Bs1kC7P4.cjs} +32 -34
- package/dist/src/{messages-CGPPidQr.js → messages-D0lx5qK7.js} +22 -24
- package/dist/src/messages-ZJk778GH.js +240 -0
- package/dist/src/{meteor-BYykdXrV.js → meteor-44VjEACX.js} +3 -4
- package/dist/src/{meteor-CsopaHrH.js → meteor-D-SotUw9.js} +3 -4
- package/dist/src/{meteor-e-E-2vVl.cjs → meteor-DLZZ3osF.cjs} +3 -4
- package/dist/src/{meteor-C8lGP6P4.js → meteor-DUiCJRC-.js} +3 -4
- package/dist/src/{modelslab-yKz-ZNB4.js → modelslab-Bmni6skY.js} +17 -10
- package/dist/src/{modelslab-E9gO-bYd.js → modelslab-Bx9IrZfS.js} +18 -20
- package/dist/src/{modelslab-lUVW0cmB.cjs → modelslab-CoUX6Jc_.cjs} +17 -18
- package/dist/src/{modelslab-ClBkr8_9.js → modelslab-DRb74SP4.js} +17 -19
- package/dist/src/{nova-reel-Dk8jNpId.js → nova-reel-BfPq-0Yk.js} +20 -13
- package/dist/src/{nova-reel-D8CuO6QH.cjs → nova-reel-C_QM18Xn.cjs} +20 -21
- package/dist/src/{nova-reel-u2eF2Cxm.js → nova-reel-D_W1tjMH.js} +22 -21
- package/dist/src/{nova-reel-P9bwvtYX.js → nova-reel-bgjxilYW.js} +20 -23
- package/dist/src/{nova-sonic-CK2rAiKi.js → nova-sonic-CFb5GYhg.js} +30 -26
- package/dist/src/{nova-sonic-BaqWlkds.js → nova-sonic-DIGQNR07.js} +30 -31
- package/dist/src/{nova-sonic-yZapPLv7.js → nova-sonic-De1HW5fD.js} +31 -32
- package/dist/src/{nova-sonic-Ds1C-dpm.cjs → nova-sonic-zfcljeRp.cjs} +30 -31
- package/dist/src/{openai-DUFopMrH.cjs → openai-Cuif0GEt.cjs} +8 -9
- package/dist/src/{openai-PblZ3jUE.js → openai-DElQ-fPX.js} +3 -4
- package/dist/src/{openai-CcN1B8Sb.js → openai-DhbB7eWK.js} +3 -4
- package/dist/src/openai-j-sE2O7r.js +44 -0
- package/dist/src/{openclaw-B6qqDr_u.cjs → openclaw-CSugPYAr.cjs} +188 -130
- package/dist/src/{openclaw-A-3_loM7.js → openclaw-DiSz3I5L.js} +180 -109
- package/dist/src/{openclaw-a3lylB-V.js → openclaw-DuvJKEW5.js} +178 -124
- package/dist/src/{openclaw-COn6QzDi.js → openclaw-tiVYRtr-.js} +178 -122
- package/dist/src/opencode-sdk-0j6rTWNb.js +562 -0
- package/dist/src/opencode-sdk-B3CWY9h_.js +560 -0
- package/dist/src/opencode-sdk-BL764Jdi.cjs +564 -0
- package/dist/src/opencode-sdk-C2y6UkP2.js +560 -0
- package/dist/src/{otlpReceiver-oyf5wLGC.js → otlpReceiver-C99PPb48.js} +53 -51
- package/dist/src/{otlpReceiver-lXsYVbpj.cjs → otlpReceiver-CGq6LspY.cjs} +53 -55
- package/dist/src/{otlpReceiver-94URx7UW.js → otlpReceiver-CdNBdbsk.js} +53 -55
- package/dist/src/{otlpReceiver-BmmTiMjA.js → otlpReceiver-D89fR-rC.js} +53 -55
- package/dist/src/{providerRegistry-Cq_JK_CJ.js → providerRegistry-B0RUOLI_.js} +7 -8
- package/dist/src/{providerRegistry-DSSHjMKf.js → providerRegistry-CD8MEar9.js} +7 -8
- package/dist/src/{providerRegistry-CvHEVJad.cjs → providerRegistry-Civky8Ar.cjs} +12 -13
- package/dist/src/providerRegistry-DM8rZYol.js +45 -0
- package/dist/src/providers-B7V0njNs.js +32 -0
- package/dist/src/providers-BEwbhv0X.js +30 -0
- package/dist/src/{providers-Iil64vk9.js → providers-BlqUifFg.js} +1543 -1676
- package/dist/src/providers-CH3C7zf7.js +30 -0
- package/dist/src/{providers-DHbjzW2e.cjs → providers-CgKOSgTR.cjs} +1896 -2029
- package/dist/src/providers-D8lF1sqW.js +33246 -0
- package/dist/src/{providers-BnFpbY_s.js → providers-Dk_6ocUX.js} +1536 -1669
- package/dist/src/providers-zyB6k_38.cjs +31 -0
- package/dist/src/{pythonUtils-CcT5LH1M.js → pythonUtils-C3py6GC1.js} +18 -19
- package/dist/src/{pythonUtils-DBbuI3QJ.cjs → pythonUtils-CTU3Y3lw.cjs} +42 -43
- package/dist/src/{pythonUtils-hZ8LeQLv.js → pythonUtils-D5nxkQ0P.js} +18 -19
- package/dist/src/pythonUtils-D6fwaDSg.js +249 -0
- package/dist/src/{quiverai-BuI0tE39.js → quiverai-BbOUOn2L.js} +8 -7
- package/dist/src/{quiverai-DCGSZt4U.js → quiverai-CIaELU_m.js} +8 -10
- package/dist/src/{quiverai-DiMVJQDz.cjs → quiverai-PdShCPox.cjs} +8 -9
- package/dist/src/{quiverai-fQNkExW4.js → quiverai-uH-dcTIr.js} +9 -11
- package/dist/src/{render-Dj1smHEb.js → render-Drod8m7K.js} +4 -5
- package/dist/src/responses-CB2jwoAr.js +660 -0
- package/dist/src/{responses-ghR3IOfy.cjs → responses-D8SBTL64.cjs} +39 -42
- package/dist/src/{responses-DOAFFENS.js → responses-DIR9Ud3j.js} +24 -27
- package/dist/src/{responses-CxzoQoBe.js → responses-WNGNYe3K.js} +24 -27
- package/dist/src/rubyUtils-BUHu6PhO.js +5 -0
- package/dist/src/{rubyUtils-CwbGmgYN.js → rubyUtils-BUVePouc.js} +27 -20
- package/dist/src/rubyUtils-BcuGX77l.js +222 -0
- package/dist/src/{rubyUtils-DudlFZed.js → rubyUtils-Boc4HZzX.js} +18 -19
- package/dist/src/rubyUtils-CP42kMvq.cjs +4 -0
- package/dist/src/{rubyUtils-C8MhKGHb.cjs → rubyUtils-DhCAlxZr.cjs} +48 -50
- package/dist/src/{sagemaker-gmskuyre.js → sagemaker-CNBxx5CJ.js} +75 -70
- package/dist/src/{sagemaker-CcxhlOAR.js → sagemaker-CemTFp2h.js} +75 -79
- package/dist/src/{sagemaker-77zbJ2Q2.cjs → sagemaker-Cl28mZU2.cjs} +75 -76
- package/dist/src/{sagemaker-DuM71dVU.js → sagemaker-YSyBXQQh.js} +77 -77
- package/dist/src/{scanner-DJYiSXQj.js → scanner-BsBlNXNn.js} +100 -121
- package/dist/src/server/index.js +5520 -67427
- package/dist/src/{server-B5v33lvE.cjs → server-C_7Ax-hA.cjs} +57 -67
- package/dist/src/{server-BJ4m4f1D.js → server-CqzrVGpF.js} +26 -29
- package/dist/src/server-CuxBbeSY.js +229 -0
- package/dist/src/server-DA4Cyrrq.js +7 -0
- package/dist/src/server-Dulb-4-K.cjs +5 -0
- package/dist/src/{server-RV_i_YX5.js → server-VWgWb00X.js} +19 -24
- package/dist/src/{signal-BW33JuId.js → signal-4U3mfRvL.js} +9 -11
- package/dist/src/{slack-DEURelTy.cjs → slack-BmVAVGaK.cjs} +7 -8
- package/dist/src/{slack-BQYeW9L3.js → slack-DCUPTzS2.js} +8 -8
- package/dist/src/{slack-BB6yuZzp.js → slack-DOdy_kyv.js} +7 -8
- package/dist/src/{slack-2pRrhhgJ.js → slack-DXMKtA-f.js} +7 -9
- package/dist/src/store-CXGFv4aR.js +228 -0
- package/dist/src/store-CXS-Q_91.js +6 -0
- package/dist/src/{store-D7CgQzAR.cjs → store-DLlFCC4h.cjs} +44 -45
- package/dist/src/{store-DJNsD1iC.js → store-DXilxTl-.js} +40 -36
- package/dist/src/{store-s3SftUwF.js → store-Dim__MDd.js} +34 -35
- package/dist/src/store-eYkaKMwq.cjs +5 -0
- package/dist/src/{tables-DfTsNN7X.js → tables-6YKwjN9-.js} +19 -21
- package/dist/src/tables-DLJPUdUE.js +288 -0
- package/dist/src/{tables-BKTmd6u7.cjs → tables-DPi7wKeM.cjs} +89 -91
- package/dist/src/{tables-DMegD0Xf.js → tables-gftXzE9I.js} +21 -23
- package/dist/src/telemetry-BpMfhthR.cjs +5 -0
- package/dist/src/{telemetry--WAdAfVi.js → telemetry-CMrFgtPB.js} +11 -13
- package/dist/src/telemetry-Cps3mIU-.js +171 -0
- package/dist/src/{telemetry-DQgVBCAb.cjs → telemetry-DaX14Chu.cjs} +21 -24
- package/dist/src/{telemetry-BedSm-bZ.js → telemetry-Dthj_BbD.js} +17 -14
- package/dist/src/telemetry-Dw38hanS.js +7 -0
- package/dist/src/{text-oiSbwSOI.js → text-B_UCRPp2.js} +2 -2
- package/dist/src/{text-oKzCBnK6.cjs → text-CW1cyrwj.cjs} +12 -13
- package/dist/src/{text-B_IrO4GZ.js → text-Db-Wt2u2.js} +2 -2
- package/dist/src/text-TIv0QYnd.js +22 -0
- package/dist/src/{tokenUsageUtils-FZd5O_4A.js → tokenUsageUtils-BDGe-iyI.js} +2 -2
- package/dist/src/{tokenUsageUtils-DmZSD2eU.js → tokenUsageUtils-DflFMjS0.js} +2 -2
- package/dist/src/tokenUsageUtils-NYT-WKS6.js +138 -0
- package/dist/src/{tokenUsageUtils-CXhxVj72.cjs → tokenUsageUtils-bVa1ga6f.cjs} +32 -33
- package/dist/src/{transcription-mYS9vd5v.js → transcription-BNYURcXg.js} +14 -7
- package/dist/src/{transcription-X2-B4vkX.js → transcription-B_OdaHp7.js} +14 -16
- package/dist/src/{transcription-BO1AHegO.cjs → transcription-NLVG9MT1.cjs} +14 -15
- package/dist/src/{transcription-lzBLiTFJ.js → transcription-s6A-bNrZ.js} +15 -17
- package/dist/src/{transform-B1Hi5lWS.cjs → transform-CzK1Q0zl.cjs} +24 -26
- package/dist/src/{transform-DeGlxb0D.js → transform-D5HsjduX.js} +39 -47
- package/dist/src/{transform-CYDILYDe.js → transform-DECvGmzp.js} +15 -13
- package/dist/src/transform-DTGDnAzW.js +6 -0
- package/dist/src/{transform-BEgStbHK.js → transform-DilY9wbS.js} +10 -12
- package/dist/src/{transform-D5PjiWiZ.cjs → transform-DuHvhZpj.cjs} +179 -187
- package/dist/src/transform-aa6tmVpZ.js +216 -0
- package/dist/src/transform-m3qNw4KP.cjs +5 -0
- package/dist/src/transform-uAytVuyX.js +1506 -0
- package/dist/src/{transform-Dfl89yi4.js → transform-vNucnNr0.js} +39 -47
- package/dist/src/{transformersAvailability-SZnTS3pJ.js → transformersAvailability-CEVM2GNQ.js} +2 -2
- package/dist/src/{transformersAvailability-D-glmEy7.cjs → transformersAvailability-CwayUSlh.cjs} +2 -3
- package/dist/src/{transformersAvailability-CjeFXhuJ.js → transformersAvailability-D6c6ROpT.js} +2 -2
- package/dist/src/{types-DWNf48sT.cjs → types-C_7nyzr1.cjs} +538 -574
- package/dist/src/{types-CXQduE9o.js → types-Cbd8uOMq.js} +68 -100
- package/dist/src/types-CzW2QFyi.js +3288 -0
- package/dist/src/{types-C5hEkb-x.js → types-DmyIJ-sR.js} +63 -99
- package/dist/src/{util-CoQjmE3u.js → util-B3xGByQh.js} +4 -5
- package/dist/src/{util-aLhtl3fe.cjs → util-B9vlHIIh.cjs} +208 -223
- package/dist/src/{util-Du96oyYS.js → util-BHGHw5G1.js} +4 -5
- package/dist/src/{util-DQ984syk.js → util-BRYkYPTd.js} +36 -51
- package/dist/src/{util-D9eLdGfa.js → util-BV4XUC0n.js} +5 -6
- package/dist/src/util-Bv6uGDfH.js +293 -0
- package/dist/src/{util-1wWM599Z.cjs → util-BzMcevZc.cjs} +50 -51
- package/dist/src/{util-_h4pVqrz.js → util-C1CeHl-P.js} +36 -51
- package/dist/src/{util-Bm_-UMD_.js → util-CMy69ZgQ.js} +5 -6
- package/dist/src/{util-CyUdMzV0.cjs → util-DGNOS1db.cjs} +34 -35
- package/dist/src/util-Dnmk2mBQ.js +599 -0
- package/dist/src/util-ZzmqNPlg.js +1426 -0
- package/dist/src/{utils-BjLy-Q72.cjs → utils-Cz9qXqII.cjs} +29 -32
- package/dist/src/{utils-CFMn2yHW.js → utils-XiOAgly5.js} +4 -7
- package/dist/src/utils-dLokC-eR.js +94 -0
- package/dist/src/{utils-DvWMzuMx.js → utils-f2-Moju7.js} +4 -7
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +38 -38
- package/dist/src/app/assets/index-B2D0bCSI.js +0 -439
- package/dist/src/app/assets/vendor-charts-CCl15Imd.js +0 -36
- package/dist/src/cache-ChPcurj7.js +0 -6
- package/dist/src/cache-VVu_W-yg.js +0 -8
- package/dist/src/cache-YLNCFEM2.cjs +0 -6
- package/dist/src/chunk-DHDDz29n.js +0 -22
- package/dist/src/chunk-FhC4c-0y.js +0 -21
- package/dist/src/cloud-BndfXy4H.js +0 -5
- package/dist/src/eval-BhHvMY82.js +0 -17
- package/dist/src/evalResult-Dq2gFNQY.js +0 -12
- package/dist/src/evalResult-nmcP5VKH.cjs +0 -12
- package/dist/src/evalResult-trqZjVYh.js +0 -14
- package/dist/src/evaluator-CnfPstzT.js +0 -39
- package/dist/src/fetch-IDPDue6F.cjs +0 -4
- package/dist/src/fetch-hKJ-It8q.js +0 -6
- package/dist/src/fetch-ouKnrWK-.js +0 -4
- package/dist/src/graders-CQn7WUsd.cjs +0 -34
- package/dist/src/graders-DC6QAbpW.js +0 -35
- package/dist/src/graders-DUWz3Y7j.js +0 -37
- package/dist/src/opencode-sdk-4bL9n-Gk.js +0 -382
- package/dist/src/opencode-sdk-BfC2zWcR.js +0 -376
- package/dist/src/opencode-sdk-DMJyuwMg.js +0 -380
- package/dist/src/opencode-sdk-Da-9adza.cjs +0 -383
- package/dist/src/providers-CsXB2Ix-.js +0 -35
- package/dist/src/providers-DO8ltjLC.js +0 -33
- package/dist/src/providers-Dtq-xnXd.cjs +0 -33
- package/dist/src/rubyUtils-BUbcND2f.js +0 -6
- package/dist/src/rubyUtils-Cr55X_KE.js +0 -5
- package/dist/src/rubyUtils-DlIiqoYo.cjs +0 -5
- package/dist/src/server-C2eQH4Gu.js +0 -6
- package/dist/src/server-CXWycu7H.cjs +0 -6
- package/dist/src/server-Q6OGlxxT.js +0 -8
- package/dist/src/store-B3EDO9Q3.js +0 -7
- package/dist/src/store-Dl9F8aw5.js +0 -6
- package/dist/src/store-SnrGrlt9.cjs +0 -6
- package/dist/src/telemetry-BGhiPZtl.js +0 -8
- package/dist/src/telemetry-CFfiYan6.cjs +0 -6
- package/dist/src/telemetry-DHzEduxX.js +0 -6
- package/dist/src/transform-C1x1ZlMQ.cjs +0 -6
- package/dist/src/transform-DYHjFmQu.js +0 -8
- package/dist/src/transform-rmwJT5JQ.js +0 -7
- package/dist/src/transformersAvailability-eJooj0gX.js +0 -35
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const require_logger = require(
|
|
2
|
-
const require_types = require(
|
|
1
|
+
const require_logger = require("./logger-Cp1GPUjj.cjs");
|
|
2
|
+
const require_types = require("./types-C_7nyzr1.cjs");
|
|
3
3
|
let path = require("path");
|
|
4
4
|
path = require_logger.__toESM(path);
|
|
5
5
|
let drizzle_orm = require("drizzle-orm");
|
|
@@ -8,11 +8,10 @@ better_sqlite3 = require_logger.__toESM(better_sqlite3);
|
|
|
8
8
|
let drizzle_orm_better_sqlite3 = require("drizzle-orm/better-sqlite3");
|
|
9
9
|
let drizzle_orm_logger = require("drizzle-orm/logger");
|
|
10
10
|
let drizzle_orm_sqlite_core = require("drizzle-orm/sqlite-core");
|
|
11
|
-
|
|
12
11
|
//#region src/database/index.ts
|
|
13
12
|
var DrizzleLogWriter = class {
|
|
14
13
|
write(message) {
|
|
15
|
-
if (require_logger.getEnvBool("PROMPTFOO_ENABLE_DATABASE_LOGS", false)) require_logger.
|
|
14
|
+
if (require_logger.getEnvBool("PROMPTFOO_ENABLE_DATABASE_LOGS", false)) require_logger.logger.debug(`Drizzle: ${message}`);
|
|
16
15
|
}
|
|
17
16
|
};
|
|
18
17
|
let dbInstance = null;
|
|
@@ -31,19 +30,18 @@ function getDb() {
|
|
|
31
30
|
if (!isMemoryDb && !require_logger.getEnvBool("PROMPTFOO_DISABLE_WAL_MODE", false)) try {
|
|
32
31
|
sqliteInstance.pragma("journal_mode = WAL");
|
|
33
32
|
const result = sqliteInstance.prepare("PRAGMA journal_mode").get();
|
|
34
|
-
if (result.journal_mode.toLowerCase() === "wal") require_logger.
|
|
35
|
-
else require_logger.
|
|
33
|
+
if (result.journal_mode.toLowerCase() === "wal") require_logger.logger.debug("Successfully enabled SQLite WAL mode");
|
|
34
|
+
else require_logger.logger.warn(`Failed to enable WAL mode (got '${result.journal_mode}'). Database performance may be reduced. This can happen on network filesystems. Set PROMPTFOO_DISABLE_WAL_MODE=true to suppress this warning.`);
|
|
36
35
|
sqliteInstance.pragma("wal_autocheckpoint = 1000");
|
|
37
36
|
sqliteInstance.pragma("synchronous = NORMAL");
|
|
38
37
|
} catch (err) {
|
|
39
|
-
require_logger.
|
|
38
|
+
require_logger.logger.warn(`Error configuring SQLite WAL mode: ${err}. Database will use default journal mode. Performance may be reduced. This can happen on network filesystems or certain containerized environments. Set PROMPTFOO_DISABLE_WAL_MODE=true to suppress this warning.`);
|
|
40
39
|
}
|
|
41
40
|
const drizzleLogger = new drizzle_orm_logger.DefaultLogger({ writer: new DrizzleLogWriter() });
|
|
42
41
|
dbInstance = (0, drizzle_orm_better_sqlite3.drizzle)(sqliteInstance, { logger: drizzleLogger });
|
|
43
42
|
}
|
|
44
43
|
return dbInstance;
|
|
45
44
|
}
|
|
46
|
-
|
|
47
45
|
//#endregion
|
|
48
46
|
//#region src/database/tables.ts
|
|
49
47
|
const promptsTable = (0, drizzle_orm_sqlite_core.sqliteTable)("prompts", {
|
|
@@ -121,7 +119,7 @@ const evalsToPromptsTable = (0, drizzle_orm_sqlite_core.sqliteTable)("evals_to_p
|
|
|
121
119
|
evalIdIdx: (0, drizzle_orm_sqlite_core.index)("evals_to_prompts_eval_id_idx").on(t.evalId),
|
|
122
120
|
promptIdIdx: (0, drizzle_orm_sqlite_core.index)("evals_to_prompts_prompt_id_idx").on(t.promptId)
|
|
123
121
|
}));
|
|
124
|
-
|
|
122
|
+
(0, drizzle_orm.relations)(promptsTable, ({ many }) => ({ evalsToPrompts: many(evalsToPromptsTable) }));
|
|
125
123
|
const evalsToTagsTable = (0, drizzle_orm_sqlite_core.sqliteTable)("evals_to_tags", {
|
|
126
124
|
evalId: (0, drizzle_orm_sqlite_core.text)("eval_id").notNull().references(() => evalsTable.id),
|
|
127
125
|
tagId: (0, drizzle_orm_sqlite_core.text)("tag_id").notNull().references(() => tagsTable.id)
|
|
@@ -130,8 +128,8 @@ const evalsToTagsTable = (0, drizzle_orm_sqlite_core.sqliteTable)("evals_to_tags
|
|
|
130
128
|
evalIdIdx: (0, drizzle_orm_sqlite_core.index)("evals_to_tags_eval_id_idx").on(t.evalId),
|
|
131
129
|
tagIdIdx: (0, drizzle_orm_sqlite_core.index)("evals_to_tags_tag_id_idx").on(t.tagId)
|
|
132
130
|
}));
|
|
133
|
-
|
|
134
|
-
|
|
131
|
+
(0, drizzle_orm.relations)(tagsTable, ({ many }) => ({ evalsToTags: many(evalsToTagsTable) }));
|
|
132
|
+
(0, drizzle_orm.relations)(evalsToTagsTable, ({ one }) => ({
|
|
135
133
|
eval: one(evalsTable, {
|
|
136
134
|
fields: [evalsToTagsTable.evalId],
|
|
137
135
|
references: [evalsTable.id]
|
|
@@ -179,13 +177,13 @@ const evalsToDatasetsTable = (0, drizzle_orm_sqlite_core.sqliteTable)("evals_to_
|
|
|
179
177
|
evalIdIdx: (0, drizzle_orm_sqlite_core.index)("evals_to_datasets_eval_id_idx").on(t.evalId),
|
|
180
178
|
datasetIdIdx: (0, drizzle_orm_sqlite_core.index)("evals_to_datasets_dataset_id_idx").on(t.datasetId)
|
|
181
179
|
}));
|
|
182
|
-
|
|
183
|
-
|
|
180
|
+
(0, drizzle_orm.relations)(datasetsTable, ({ many }) => ({ evalsToDatasets: many(evalsToDatasetsTable) }));
|
|
181
|
+
(0, drizzle_orm.relations)(evalsTable, ({ many }) => ({
|
|
184
182
|
evalsToPrompts: many(evalsToPromptsTable),
|
|
185
183
|
evalsToDatasets: many(evalsToDatasetsTable),
|
|
186
184
|
evalsToTags: many(evalsToTagsTable)
|
|
187
185
|
}));
|
|
188
|
-
|
|
186
|
+
(0, drizzle_orm.relations)(evalsToPromptsTable, ({ one }) => ({
|
|
189
187
|
eval: one(evalsTable, {
|
|
190
188
|
fields: [evalsToPromptsTable.evalId],
|
|
191
189
|
references: [evalsTable.id]
|
|
@@ -195,7 +193,7 @@ const evalsToPromptsRelations = (0, drizzle_orm.relations)(evalsToPromptsTable,
|
|
|
195
193
|
references: [promptsTable.id]
|
|
196
194
|
})
|
|
197
195
|
}));
|
|
198
|
-
|
|
196
|
+
(0, drizzle_orm.relations)(evalsToDatasetsTable, ({ one }) => ({
|
|
199
197
|
eval: one(evalsTable, {
|
|
200
198
|
fields: [evalsToDatasetsTable.evalId],
|
|
201
199
|
references: [evalsTable.id]
|
|
@@ -205,7 +203,7 @@ const evalsToDatasetsRelations = (0, drizzle_orm.relations)(evalsToDatasetsTable
|
|
|
205
203
|
references: [datasetsTable.id]
|
|
206
204
|
})
|
|
207
205
|
}));
|
|
208
|
-
|
|
206
|
+
(0, drizzle_orm_sqlite_core.sqliteTable)("configs", {
|
|
209
207
|
id: (0, drizzle_orm_sqlite_core.text)("id").primaryKey(),
|
|
210
208
|
createdAt: (0, drizzle_orm_sqlite_core.integer)("created_at").notNull().default(drizzle_orm.sql`CURRENT_TIMESTAMP`),
|
|
211
209
|
updatedAt: (0, drizzle_orm_sqlite_core.integer)("updated_at").notNull().default(drizzle_orm.sql`CURRENT_TIMESTAMP`),
|
|
@@ -216,7 +214,7 @@ const configsTable = (0, drizzle_orm_sqlite_core.sqliteTable)("configs", {
|
|
|
216
214
|
createdAtIdx: (0, drizzle_orm_sqlite_core.index)("configs_created_at_idx").on(table.createdAt),
|
|
217
215
|
typeIdx: (0, drizzle_orm_sqlite_core.index)("configs_type_idx").on(table.type)
|
|
218
216
|
}));
|
|
219
|
-
|
|
217
|
+
(0, drizzle_orm_sqlite_core.sqliteTable)("model_audits", {
|
|
220
218
|
id: (0, drizzle_orm_sqlite_core.text)("id").primaryKey(),
|
|
221
219
|
createdAt: (0, drizzle_orm_sqlite_core.integer)("created_at").notNull().default(drizzle_orm.sql`CURRENT_TIMESTAMP`),
|
|
222
220
|
updatedAt: (0, drizzle_orm_sqlite_core.integer)("updated_at").notNull().default(drizzle_orm.sql`CURRENT_TIMESTAMP`),
|
|
@@ -275,101 +273,101 @@ const spansTable = (0, drizzle_orm_sqlite_core.sqliteTable)("spans", {
|
|
|
275
273
|
traceIdIdx: (0, drizzle_orm_sqlite_core.index)("spans_trace_id_idx").on(table.traceId),
|
|
276
274
|
spanIdIdx: (0, drizzle_orm_sqlite_core.index)("spans_span_id_idx").on(table.spanId)
|
|
277
275
|
}));
|
|
278
|
-
|
|
276
|
+
(0, drizzle_orm.relations)(tracesTable, ({ one, many }) => ({
|
|
279
277
|
eval: one(evalsTable, {
|
|
280
278
|
fields: [tracesTable.evaluationId],
|
|
281
279
|
references: [evalsTable.id]
|
|
282
280
|
}),
|
|
283
281
|
spans: many(spansTable)
|
|
284
282
|
}));
|
|
285
|
-
|
|
283
|
+
(0, drizzle_orm.relations)(spansTable, ({ one }) => ({ trace: one(tracesTable, {
|
|
286
284
|
fields: [spansTable.traceId],
|
|
287
285
|
references: [tracesTable.traceId]
|
|
288
286
|
}) }));
|
|
289
|
-
|
|
290
287
|
//#endregion
|
|
291
|
-
Object.defineProperty(exports,
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
288
|
+
Object.defineProperty(exports, "blobAssetsTable", {
|
|
289
|
+
enumerable: true,
|
|
290
|
+
get: function() {
|
|
291
|
+
return blobAssetsTable;
|
|
292
|
+
}
|
|
296
293
|
});
|
|
297
|
-
Object.defineProperty(exports,
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
294
|
+
Object.defineProperty(exports, "blobReferencesTable", {
|
|
295
|
+
enumerable: true,
|
|
296
|
+
get: function() {
|
|
297
|
+
return blobReferencesTable;
|
|
298
|
+
}
|
|
302
299
|
});
|
|
303
|
-
Object.defineProperty(exports,
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
300
|
+
Object.defineProperty(exports, "datasetsTable", {
|
|
301
|
+
enumerable: true,
|
|
302
|
+
get: function() {
|
|
303
|
+
return datasetsTable;
|
|
304
|
+
}
|
|
308
305
|
});
|
|
309
|
-
Object.defineProperty(exports,
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
306
|
+
Object.defineProperty(exports, "evalResultsTable", {
|
|
307
|
+
enumerable: true,
|
|
308
|
+
get: function() {
|
|
309
|
+
return evalResultsTable;
|
|
310
|
+
}
|
|
314
311
|
});
|
|
315
|
-
Object.defineProperty(exports,
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
312
|
+
Object.defineProperty(exports, "evalsTable", {
|
|
313
|
+
enumerable: true,
|
|
314
|
+
get: function() {
|
|
315
|
+
return evalsTable;
|
|
316
|
+
}
|
|
320
317
|
});
|
|
321
|
-
Object.defineProperty(exports,
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
318
|
+
Object.defineProperty(exports, "evalsToDatasetsTable", {
|
|
319
|
+
enumerable: true,
|
|
320
|
+
get: function() {
|
|
321
|
+
return evalsToDatasetsTable;
|
|
322
|
+
}
|
|
326
323
|
});
|
|
327
|
-
Object.defineProperty(exports,
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
324
|
+
Object.defineProperty(exports, "evalsToPromptsTable", {
|
|
325
|
+
enumerable: true,
|
|
326
|
+
get: function() {
|
|
327
|
+
return evalsToPromptsTable;
|
|
328
|
+
}
|
|
332
329
|
});
|
|
333
|
-
Object.defineProperty(exports,
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
330
|
+
Object.defineProperty(exports, "evalsToTagsTable", {
|
|
331
|
+
enumerable: true,
|
|
332
|
+
get: function() {
|
|
333
|
+
return evalsToTagsTable;
|
|
334
|
+
}
|
|
338
335
|
});
|
|
339
|
-
Object.defineProperty(exports,
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
336
|
+
Object.defineProperty(exports, "getDb", {
|
|
337
|
+
enumerable: true,
|
|
338
|
+
get: function() {
|
|
339
|
+
return getDb;
|
|
340
|
+
}
|
|
344
341
|
});
|
|
345
|
-
Object.defineProperty(exports,
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
342
|
+
Object.defineProperty(exports, "getDbSignalPath", {
|
|
343
|
+
enumerable: true,
|
|
344
|
+
get: function() {
|
|
345
|
+
return getDbSignalPath;
|
|
346
|
+
}
|
|
350
347
|
});
|
|
351
|
-
Object.defineProperty(exports,
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
348
|
+
Object.defineProperty(exports, "promptsTable", {
|
|
349
|
+
enumerable: true,
|
|
350
|
+
get: function() {
|
|
351
|
+
return promptsTable;
|
|
352
|
+
}
|
|
356
353
|
});
|
|
357
|
-
Object.defineProperty(exports,
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
354
|
+
Object.defineProperty(exports, "spansTable", {
|
|
355
|
+
enumerable: true,
|
|
356
|
+
get: function() {
|
|
357
|
+
return spansTable;
|
|
358
|
+
}
|
|
362
359
|
});
|
|
363
|
-
Object.defineProperty(exports,
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
360
|
+
Object.defineProperty(exports, "tagsTable", {
|
|
361
|
+
enumerable: true,
|
|
362
|
+
get: function() {
|
|
363
|
+
return tagsTable;
|
|
364
|
+
}
|
|
368
365
|
});
|
|
369
|
-
Object.defineProperty(exports,
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
366
|
+
Object.defineProperty(exports, "tracesTable", {
|
|
367
|
+
enumerable: true,
|
|
368
|
+
get: function() {
|
|
369
|
+
return tracesTable;
|
|
370
|
+
}
|
|
374
371
|
});
|
|
375
|
-
|
|
372
|
+
|
|
373
|
+
//# sourceMappingURL=tables-DPi7wKeM.cjs.map
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { b as getEnvBool, o as
|
|
3
|
-
import { s as ResultFailureReason } from "./types-
|
|
2
|
+
import { b as getEnvBool, o as logger, v as getConfigDirectoryPath } from "./logger-KkObSCzq.js";
|
|
3
|
+
import { s as ResultFailureReason } from "./types-Cbd8uOMq.js";
|
|
4
4
|
import * as path$1 from "path";
|
|
5
5
|
import { relations, sql } from "drizzle-orm";
|
|
6
6
|
import Database from "better-sqlite3";
|
|
7
7
|
import { drizzle } from "drizzle-orm/better-sqlite3";
|
|
8
8
|
import { DefaultLogger } from "drizzle-orm/logger";
|
|
9
9
|
import { index, integer, primaryKey, real, sqliteTable, text, uniqueIndex } from "drizzle-orm/sqlite-core";
|
|
10
|
-
|
|
11
10
|
//#region src/database/index.ts
|
|
12
11
|
var DrizzleLogWriter = class {
|
|
13
12
|
write(message) {
|
|
14
|
-
if (getEnvBool("PROMPTFOO_ENABLE_DATABASE_LOGS", false))
|
|
13
|
+
if (getEnvBool("PROMPTFOO_ENABLE_DATABASE_LOGS", false)) logger.debug(`Drizzle: ${message}`);
|
|
15
14
|
}
|
|
16
15
|
};
|
|
17
16
|
let dbInstance = null;
|
|
@@ -30,12 +29,12 @@ function getDb() {
|
|
|
30
29
|
if (!isMemoryDb && !getEnvBool("PROMPTFOO_DISABLE_WAL_MODE", false)) try {
|
|
31
30
|
sqliteInstance.pragma("journal_mode = WAL");
|
|
32
31
|
const result = sqliteInstance.prepare("PRAGMA journal_mode").get();
|
|
33
|
-
if (result.journal_mode.toLowerCase() === "wal")
|
|
34
|
-
else
|
|
32
|
+
if (result.journal_mode.toLowerCase() === "wal") logger.debug("Successfully enabled SQLite WAL mode");
|
|
33
|
+
else logger.warn(`Failed to enable WAL mode (got '${result.journal_mode}'). Database performance may be reduced. This can happen on network filesystems. Set PROMPTFOO_DISABLE_WAL_MODE=true to suppress this warning.`);
|
|
35
34
|
sqliteInstance.pragma("wal_autocheckpoint = 1000");
|
|
36
35
|
sqliteInstance.pragma("synchronous = NORMAL");
|
|
37
36
|
} catch (err) {
|
|
38
|
-
|
|
37
|
+
logger.warn(`Error configuring SQLite WAL mode: ${err}. Database will use default journal mode. Performance may be reduced. This can happen on network filesystems or certain containerized environments. Set PROMPTFOO_DISABLE_WAL_MODE=true to suppress this warning.`);
|
|
39
38
|
}
|
|
40
39
|
const drizzleLogger = new DefaultLogger({ writer: new DrizzleLogWriter() });
|
|
41
40
|
dbInstance = drizzle(sqliteInstance, { logger: drizzleLogger });
|
|
@@ -46,14 +45,14 @@ function closeDb() {
|
|
|
46
45
|
if (sqliteInstance) try {
|
|
47
46
|
if (!getEnvBool("IS_TESTING") && !getEnvBool("PROMPTFOO_DISABLE_WAL_MODE", false)) try {
|
|
48
47
|
sqliteInstance.pragma("wal_checkpoint(TRUNCATE)");
|
|
49
|
-
|
|
48
|
+
logger.debug("Successfully checkpointed WAL file before closing");
|
|
50
49
|
} catch (err) {
|
|
51
|
-
|
|
50
|
+
logger.debug(`Could not checkpoint WAL file: ${err}`);
|
|
52
51
|
}
|
|
53
52
|
sqliteInstance.close();
|
|
54
|
-
|
|
53
|
+
logger.debug("Database connection closed successfully");
|
|
55
54
|
} catch (err) {
|
|
56
|
-
|
|
55
|
+
logger.error(`Error closing database connection: ${err}`);
|
|
57
56
|
} finally {
|
|
58
57
|
sqliteInstance = null;
|
|
59
58
|
dbInstance = null;
|
|
@@ -67,7 +66,6 @@ function closeDb() {
|
|
|
67
66
|
function closeDbIfOpen() {
|
|
68
67
|
if (sqliteInstance) closeDb();
|
|
69
68
|
}
|
|
70
|
-
|
|
71
69
|
//#endregion
|
|
72
70
|
//#region src/database/tables.ts
|
|
73
71
|
const promptsTable = sqliteTable("prompts", {
|
|
@@ -145,7 +143,7 @@ const evalsToPromptsTable = sqliteTable("evals_to_prompts", {
|
|
|
145
143
|
evalIdIdx: index("evals_to_prompts_eval_id_idx").on(t.evalId),
|
|
146
144
|
promptIdIdx: index("evals_to_prompts_prompt_id_idx").on(t.promptId)
|
|
147
145
|
}));
|
|
148
|
-
|
|
146
|
+
relations(promptsTable, ({ many }) => ({ evalsToPrompts: many(evalsToPromptsTable) }));
|
|
149
147
|
const evalsToTagsTable = sqliteTable("evals_to_tags", {
|
|
150
148
|
evalId: text("eval_id").notNull().references(() => evalsTable.id),
|
|
151
149
|
tagId: text("tag_id").notNull().references(() => tagsTable.id)
|
|
@@ -154,8 +152,8 @@ const evalsToTagsTable = sqliteTable("evals_to_tags", {
|
|
|
154
152
|
evalIdIdx: index("evals_to_tags_eval_id_idx").on(t.evalId),
|
|
155
153
|
tagIdIdx: index("evals_to_tags_tag_id_idx").on(t.tagId)
|
|
156
154
|
}));
|
|
157
|
-
|
|
158
|
-
|
|
155
|
+
relations(tagsTable, ({ many }) => ({ evalsToTags: many(evalsToTagsTable) }));
|
|
156
|
+
relations(evalsToTagsTable, ({ one }) => ({
|
|
159
157
|
eval: one(evalsTable, {
|
|
160
158
|
fields: [evalsToTagsTable.evalId],
|
|
161
159
|
references: [evalsTable.id]
|
|
@@ -203,13 +201,13 @@ const evalsToDatasetsTable = sqliteTable("evals_to_datasets", {
|
|
|
203
201
|
evalIdIdx: index("evals_to_datasets_eval_id_idx").on(t.evalId),
|
|
204
202
|
datasetIdIdx: index("evals_to_datasets_dataset_id_idx").on(t.datasetId)
|
|
205
203
|
}));
|
|
206
|
-
|
|
207
|
-
|
|
204
|
+
relations(datasetsTable, ({ many }) => ({ evalsToDatasets: many(evalsToDatasetsTable) }));
|
|
205
|
+
relations(evalsTable, ({ many }) => ({
|
|
208
206
|
evalsToPrompts: many(evalsToPromptsTable),
|
|
209
207
|
evalsToDatasets: many(evalsToDatasetsTable),
|
|
210
208
|
evalsToTags: many(evalsToTagsTable)
|
|
211
209
|
}));
|
|
212
|
-
|
|
210
|
+
relations(evalsToPromptsTable, ({ one }) => ({
|
|
213
211
|
eval: one(evalsTable, {
|
|
214
212
|
fields: [evalsToPromptsTable.evalId],
|
|
215
213
|
references: [evalsTable.id]
|
|
@@ -219,7 +217,7 @@ const evalsToPromptsRelations = relations(evalsToPromptsTable, ({ one }) => ({
|
|
|
219
217
|
references: [promptsTable.id]
|
|
220
218
|
})
|
|
221
219
|
}));
|
|
222
|
-
|
|
220
|
+
relations(evalsToDatasetsTable, ({ one }) => ({
|
|
223
221
|
eval: one(evalsTable, {
|
|
224
222
|
fields: [evalsToDatasetsTable.evalId],
|
|
225
223
|
references: [evalsTable.id]
|
|
@@ -299,18 +297,18 @@ const spansTable = sqliteTable("spans", {
|
|
|
299
297
|
traceIdIdx: index("spans_trace_id_idx").on(table.traceId),
|
|
300
298
|
spanIdIdx: index("spans_span_id_idx").on(table.spanId)
|
|
301
299
|
}));
|
|
302
|
-
|
|
300
|
+
relations(tracesTable, ({ one, many }) => ({
|
|
303
301
|
eval: one(evalsTable, {
|
|
304
302
|
fields: [tracesTable.evaluationId],
|
|
305
303
|
references: [evalsTable.id]
|
|
306
304
|
}),
|
|
307
305
|
spans: many(spansTable)
|
|
308
306
|
}));
|
|
309
|
-
|
|
307
|
+
relations(spansTable, ({ one }) => ({ trace: one(tracesTable, {
|
|
310
308
|
fields: [spansTable.traceId],
|
|
311
309
|
references: [tracesTable.traceId]
|
|
312
310
|
}) }));
|
|
313
|
-
|
|
314
311
|
//#endregion
|
|
315
312
|
export { getDbSignalPath as _, evalResultsTable as a, evalsToPromptsTable as c, promptsTable as d, spansTable as f, getDb as g, closeDbIfOpen as h, datasetsTable as i, evalsToTagsTable as l, tracesTable as m, blobReferencesTable as n, evalsTable as o, tagsTable as p, configsTable as r, evalsToDatasetsTable as s, blobAssetsTable as t, modelAuditsTable as u };
|
|
316
|
-
|
|
313
|
+
|
|
314
|
+
//# sourceMappingURL=tables-gftXzE9I.js.map
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { C as getEnvString, E as isCI, b as getEnvBool, o as
|
|
3
|
-
import {
|
|
4
|
-
import { c as isLoggedIntoCloud, i as getAuthMethod, o as getUserEmail, s as getUserId } from "./accounts-
|
|
2
|
+
import { C as getEnvString, E as isCI, b as getEnvBool, o as logger } from "./logger-KkObSCzq.js";
|
|
3
|
+
import { E as R_ENDPOINT, M as POSTHOG_KEY, N as VERSION, T as EVENTS_ENDPOINT, i as fetchWithTimeout, n as fetchWithProxy, w as CONSENT_ENDPOINT } from "./fetch-Dxpd4_sr.js";
|
|
4
|
+
import { c as isLoggedIntoCloud, i as getAuthMethod, o as getUserEmail, s as getUserId } from "./accounts-Bm2D8Db9.js";
|
|
5
5
|
import { PostHog } from "posthog-node";
|
|
6
6
|
import { z } from "zod";
|
|
7
|
-
|
|
8
7
|
//#region src/telemetry.ts
|
|
9
8
|
const TelemetryEventSchema = z.object({
|
|
10
9
|
event: z.enum([
|
|
@@ -37,7 +36,7 @@ let posthogClient = null;
|
|
|
37
36
|
let isShuttingDown = false;
|
|
38
37
|
function getPostHogClient() {
|
|
39
38
|
if (getEnvBool("PROMPTFOO_DISABLE_TELEMETRY") || getEnvBool("IS_TESTING")) return null;
|
|
40
|
-
if (posthogClient === null &&
|
|
39
|
+
if (posthogClient === null && "phc_E5n5uHnDo2eREJL1uqX1cIlbkoRby4yFWt3V94HqRRg") try {
|
|
41
40
|
posthogClient = new PostHog(POSTHOG_KEY, {
|
|
42
41
|
host: EVENTS_ENDPOINT,
|
|
43
42
|
fetch: fetchWithProxy,
|
|
@@ -73,7 +72,7 @@ var Telemetry = class {
|
|
|
73
72
|
});
|
|
74
73
|
client.flush().catch(() => {});
|
|
75
74
|
} catch (error) {
|
|
76
|
-
|
|
75
|
+
logger.debug(`PostHog identify error: ${error}`);
|
|
77
76
|
}
|
|
78
77
|
}
|
|
79
78
|
get disabled() {
|
|
@@ -104,7 +103,7 @@ var Telemetry = class {
|
|
|
104
103
|
});
|
|
105
104
|
client.flush().catch(() => {});
|
|
106
105
|
} catch (error) {
|
|
107
|
-
|
|
106
|
+
logger.debug(`PostHog capture error: ${error}`);
|
|
108
107
|
}
|
|
109
108
|
fetchWithProxy(R_ENDPOINT, {
|
|
110
109
|
method: "POST",
|
|
@@ -128,7 +127,7 @@ var Telemetry = class {
|
|
|
128
127
|
try {
|
|
129
128
|
await client.shutdown();
|
|
130
129
|
} catch (error) {
|
|
131
|
-
|
|
130
|
+
logger.debug(`PostHog shutdown error: ${error}`);
|
|
132
131
|
}
|
|
133
132
|
}
|
|
134
133
|
/**
|
|
@@ -146,7 +145,7 @@ var Telemetry = class {
|
|
|
146
145
|
}, TELEMETRY_TIMEOUT_MS);
|
|
147
146
|
if (!response.ok) throw new Error(`Failed to save consent: ${response.statusText}`);
|
|
148
147
|
} catch (err) {
|
|
149
|
-
|
|
148
|
+
logger.debug(`Failed to save consent: ${err.message}`);
|
|
150
149
|
}
|
|
151
150
|
}
|
|
152
151
|
};
|
|
@@ -161,8 +160,7 @@ if (!process[SHUTDOWN_HANDLER_KEY]) {
|
|
|
161
160
|
if (instance) instance.shutdown().catch(() => {});
|
|
162
161
|
});
|
|
163
162
|
}
|
|
164
|
-
var telemetry_default = telemetry;
|
|
165
|
-
|
|
166
163
|
//#endregion
|
|
167
|
-
export { TelemetryEventSchema as n,
|
|
168
|
-
|
|
164
|
+
export { TelemetryEventSchema as n, telemetry as r, Telemetry as t };
|
|
165
|
+
|
|
166
|
+
//# sourceMappingURL=telemetry-CMrFgtPB.js.map
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { t as __exportAll } from "./chunk-DEq-mXcV.js";
|
|
2
|
+
import { C as isCI, _ as getEnvBool, b as getEnvString, i as logger } from "./logger-DLcq4dWf.js";
|
|
3
|
+
import { D as R_ENDPOINT, E as EVENTS_ENDPOINT, N as POSTHOG_KEY, P as VERSION, T as CONSENT_ENDPOINT, r as fetchWithTimeout, t as fetchWithProxy } from "./fetch-HaqdX7U1.js";
|
|
4
|
+
import { c as isLoggedIntoCloud, i as getAuthMethod, o as getUserEmail, s as getUserId } from "./accounts-B0pgC1oV.js";
|
|
5
|
+
import { z } from "zod";
|
|
6
|
+
import { PostHog } from "posthog-node";
|
|
7
|
+
//#region src/telemetry.ts
|
|
8
|
+
var telemetry_exports = /* @__PURE__ */ __exportAll({
|
|
9
|
+
Telemetry: () => Telemetry,
|
|
10
|
+
TelemetryEventSchema: () => TelemetryEventSchema,
|
|
11
|
+
default: () => telemetry
|
|
12
|
+
});
|
|
13
|
+
const TelemetryEventSchema = z.object({
|
|
14
|
+
event: z.enum([
|
|
15
|
+
"assertion_used",
|
|
16
|
+
"command_used",
|
|
17
|
+
"eval setup",
|
|
18
|
+
"eval_ran",
|
|
19
|
+
"feature_used",
|
|
20
|
+
"funnel",
|
|
21
|
+
"redteam discover",
|
|
22
|
+
"redteam generate",
|
|
23
|
+
"redteam init",
|
|
24
|
+
"redteam poison",
|
|
25
|
+
"redteam report",
|
|
26
|
+
"redteam run",
|
|
27
|
+
"redteam setup",
|
|
28
|
+
"webui_action",
|
|
29
|
+
"webui_api",
|
|
30
|
+
"webui_page_view"
|
|
31
|
+
]),
|
|
32
|
+
packageVersion: z.string().optional().prefault(VERSION),
|
|
33
|
+
properties: z.record(z.string(), z.union([
|
|
34
|
+
z.string(),
|
|
35
|
+
z.number(),
|
|
36
|
+
z.boolean(),
|
|
37
|
+
z.array(z.string())
|
|
38
|
+
]))
|
|
39
|
+
});
|
|
40
|
+
let posthogClient = null;
|
|
41
|
+
let isShuttingDown = false;
|
|
42
|
+
function getPostHogClient() {
|
|
43
|
+
if (getEnvBool("PROMPTFOO_DISABLE_TELEMETRY") || getEnvBool("IS_TESTING")) return null;
|
|
44
|
+
if (posthogClient === null && "phc_E5n5uHnDo2eREJL1uqX1cIlbkoRby4yFWt3V94HqRRg") try {
|
|
45
|
+
posthogClient = new PostHog(POSTHOG_KEY, {
|
|
46
|
+
host: EVENTS_ENDPOINT,
|
|
47
|
+
fetch: fetchWithProxy,
|
|
48
|
+
flushInterval: 0
|
|
49
|
+
});
|
|
50
|
+
} catch {
|
|
51
|
+
posthogClient = null;
|
|
52
|
+
}
|
|
53
|
+
return posthogClient;
|
|
54
|
+
}
|
|
55
|
+
const TELEMETRY_TIMEOUT_MS = 1e3;
|
|
56
|
+
var Telemetry = class {
|
|
57
|
+
telemetryDisabledRecorded = false;
|
|
58
|
+
id;
|
|
59
|
+
email;
|
|
60
|
+
constructor() {
|
|
61
|
+
this.id = getUserId();
|
|
62
|
+
this.email = getUserEmail();
|
|
63
|
+
this.identify();
|
|
64
|
+
}
|
|
65
|
+
async identify() {
|
|
66
|
+
if (this.disabled || getEnvBool("IS_TESTING")) return;
|
|
67
|
+
const client = getPostHogClient();
|
|
68
|
+
if (client) try {
|
|
69
|
+
client.identify({
|
|
70
|
+
distinctId: this.id,
|
|
71
|
+
properties: {
|
|
72
|
+
email: this.email,
|
|
73
|
+
isLoggedIntoCloud: isLoggedIntoCloud(),
|
|
74
|
+
authMethod: getAuthMethod(),
|
|
75
|
+
isRunningInCi: isCI()
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
client.flush().catch(() => {});
|
|
79
|
+
} catch (error) {
|
|
80
|
+
logger.debug(`PostHog identify error: ${error}`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
get disabled() {
|
|
84
|
+
return getEnvBool("PROMPTFOO_DISABLE_TELEMETRY");
|
|
85
|
+
}
|
|
86
|
+
recordTelemetryDisabled() {
|
|
87
|
+
if (!this.telemetryDisabledRecorded) {
|
|
88
|
+
this.sendEvent("feature_used", { feature: "telemetry disabled" });
|
|
89
|
+
this.telemetryDisabledRecorded = true;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
record(eventName, properties) {
|
|
93
|
+
if (this.disabled) this.recordTelemetryDisabled();
|
|
94
|
+
else this.sendEvent(eventName, properties);
|
|
95
|
+
}
|
|
96
|
+
sendEvent(eventName, properties) {
|
|
97
|
+
const propertiesWithMetadata = {
|
|
98
|
+
...properties,
|
|
99
|
+
packageVersion: VERSION,
|
|
100
|
+
isRunningInCi: isCI()
|
|
101
|
+
};
|
|
102
|
+
const client = getPostHogClient();
|
|
103
|
+
if (client && !getEnvBool("IS_TESTING")) try {
|
|
104
|
+
client.capture({
|
|
105
|
+
distinctId: this.id,
|
|
106
|
+
event: eventName,
|
|
107
|
+
properties: propertiesWithMetadata
|
|
108
|
+
});
|
|
109
|
+
client.flush().catch(() => {});
|
|
110
|
+
} catch (error) {
|
|
111
|
+
logger.debug(`PostHog capture error: ${error}`);
|
|
112
|
+
}
|
|
113
|
+
fetchWithProxy(R_ENDPOINT, {
|
|
114
|
+
method: "POST",
|
|
115
|
+
headers: { "Content-Type": "application/json" },
|
|
116
|
+
body: JSON.stringify({
|
|
117
|
+
event: eventName,
|
|
118
|
+
environment: getEnvString("NODE_ENV", "development"),
|
|
119
|
+
email: this.email,
|
|
120
|
+
meta: {
|
|
121
|
+
user_id: this.id,
|
|
122
|
+
...propertiesWithMetadata
|
|
123
|
+
}
|
|
124
|
+
})
|
|
125
|
+
}).catch(() => {});
|
|
126
|
+
}
|
|
127
|
+
async shutdown() {
|
|
128
|
+
if (isShuttingDown) return;
|
|
129
|
+
const client = getPostHogClient();
|
|
130
|
+
if (!client) return;
|
|
131
|
+
isShuttingDown = true;
|
|
132
|
+
try {
|
|
133
|
+
await client.shutdown();
|
|
134
|
+
} catch (error) {
|
|
135
|
+
logger.debug(`PostHog shutdown error: ${error}`);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* This is a separate endpoint to save consent used only for redteam data synthesis for "harmful" plugins.
|
|
140
|
+
*/
|
|
141
|
+
async saveConsent(email, metadata) {
|
|
142
|
+
try {
|
|
143
|
+
const response = await fetchWithTimeout(CONSENT_ENDPOINT, {
|
|
144
|
+
method: "POST",
|
|
145
|
+
headers: { "Content-Type": "application/json" },
|
|
146
|
+
body: JSON.stringify({
|
|
147
|
+
email,
|
|
148
|
+
metadata
|
|
149
|
+
})
|
|
150
|
+
}, TELEMETRY_TIMEOUT_MS);
|
|
151
|
+
if (!response.ok) throw new Error(`Failed to save consent: ${response.statusText}`);
|
|
152
|
+
} catch (err) {
|
|
153
|
+
logger.debug(`Failed to save consent: ${err.message}`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
const telemetry = new Telemetry();
|
|
158
|
+
const TELEMETRY_INSTANCE_KEY = Symbol.for("promptfoo.telemetry.instance");
|
|
159
|
+
const SHUTDOWN_HANDLER_KEY = Symbol.for("promptfoo.telemetry.shutdownHandler");
|
|
160
|
+
process[TELEMETRY_INSTANCE_KEY] = telemetry;
|
|
161
|
+
if (!process[SHUTDOWN_HANDLER_KEY]) {
|
|
162
|
+
process[SHUTDOWN_HANDLER_KEY] = true;
|
|
163
|
+
process.once("beforeExit", () => {
|
|
164
|
+
const instance = process[TELEMETRY_INSTANCE_KEY];
|
|
165
|
+
if (instance) instance.shutdown().catch(() => {});
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
//#endregion
|
|
169
|
+
export { telemetry as n, telemetry_exports as r, TelemetryEventSchema as t };
|
|
170
|
+
|
|
171
|
+
//# sourceMappingURL=telemetry-Cps3mIU-.js.map
|