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,7 +1,6 @@
|
|
|
1
|
-
const require_logger = require(
|
|
2
|
-
const require_tables = require(
|
|
1
|
+
const require_logger = require("./logger-Cp1GPUjj.cjs");
|
|
2
|
+
const require_tables = require("./tables-DPi7wKeM.cjs");
|
|
3
3
|
let drizzle_orm = require("drizzle-orm");
|
|
4
|
-
|
|
5
4
|
//#region src/tracing/store.ts
|
|
6
5
|
const SENSITIVE_ATTRIBUTE_KEYS = [
|
|
7
6
|
"authorization",
|
|
@@ -53,14 +52,14 @@ var TraceStore = class {
|
|
|
53
52
|
db = null;
|
|
54
53
|
getDatabase() {
|
|
55
54
|
if (!this.db) {
|
|
56
|
-
require_logger.
|
|
55
|
+
require_logger.logger.debug("[TraceStore] Initializing database connection");
|
|
57
56
|
this.db = require_tables.getDb();
|
|
58
57
|
}
|
|
59
58
|
return this.db;
|
|
60
59
|
}
|
|
61
60
|
async createTrace(trace) {
|
|
62
61
|
try {
|
|
63
|
-
require_logger.
|
|
62
|
+
require_logger.logger.debug(`[TraceStore] Creating trace ${trace.traceId} for evaluation ${trace.evaluationId}`);
|
|
64
63
|
await this.getDatabase().insert(require_tables.tracesTable).values({
|
|
65
64
|
id: crypto.randomUUID(),
|
|
66
65
|
traceId: trace.traceId,
|
|
@@ -68,30 +67,30 @@ var TraceStore = class {
|
|
|
68
67
|
testCaseId: trace.testCaseId,
|
|
69
68
|
metadata: trace.metadata
|
|
70
69
|
}).onConflictDoNothing({ target: require_tables.tracesTable.traceId });
|
|
71
|
-
require_logger.
|
|
70
|
+
require_logger.logger.debug(`[TraceStore] Successfully created or found existing trace ${trace.traceId}`);
|
|
72
71
|
} catch (error) {
|
|
73
|
-
require_logger.
|
|
72
|
+
require_logger.logger.error(`[TraceStore] Failed to create trace: ${error}`);
|
|
74
73
|
throw error;
|
|
75
74
|
}
|
|
76
75
|
}
|
|
77
76
|
async addSpans(traceId, spans, options) {
|
|
78
77
|
try {
|
|
79
|
-
require_logger.
|
|
78
|
+
require_logger.logger.debug(`[TraceStore] Adding ${spans.length} spans to trace ${traceId}`);
|
|
80
79
|
const db = this.getDatabase();
|
|
81
|
-
if (options?.skipTraceCheck) require_logger.
|
|
80
|
+
if (options?.skipTraceCheck) require_logger.logger.debug(`[TraceStore] Skipping trace existence check for OTLP scenario`);
|
|
82
81
|
else {
|
|
83
|
-
require_logger.
|
|
82
|
+
require_logger.logger.debug(`[TraceStore] Verifying trace ${traceId} exists`);
|
|
84
83
|
if ((await db.select().from(require_tables.tracesTable).where((0, drizzle_orm.eq)(require_tables.tracesTable.traceId, traceId)).limit(1)).length === 0) {
|
|
85
|
-
require_logger.
|
|
84
|
+
require_logger.logger.warn(`[TraceStore] Trace ${traceId} not found, skipping ${spans.length} spans. This may indicate spans arrived before trace was created.`);
|
|
86
85
|
return {
|
|
87
86
|
stored: false,
|
|
88
87
|
reason: `Trace ${traceId} not found`
|
|
89
88
|
};
|
|
90
89
|
}
|
|
91
|
-
require_logger.
|
|
90
|
+
require_logger.logger.debug(`[TraceStore] Trace ${traceId} found, proceeding with span insertion`);
|
|
92
91
|
}
|
|
93
92
|
const spanRecords = spans.map((span) => {
|
|
94
|
-
require_logger.
|
|
93
|
+
require_logger.logger.debug(`[TraceStore] Preparing span ${span.spanId} (${span.name}) for insertion`);
|
|
95
94
|
return {
|
|
96
95
|
id: crypto.randomUUID(),
|
|
97
96
|
traceId,
|
|
@@ -106,73 +105,73 @@ var TraceStore = class {
|
|
|
106
105
|
};
|
|
107
106
|
});
|
|
108
107
|
await db.insert(require_tables.spansTable).values(spanRecords);
|
|
109
|
-
require_logger.
|
|
108
|
+
require_logger.logger.debug(`[TraceStore] Successfully added ${spans.length} spans to trace ${traceId}`);
|
|
110
109
|
return { stored: true };
|
|
111
110
|
} catch (error) {
|
|
112
|
-
require_logger.
|
|
111
|
+
require_logger.logger.error(`[TraceStore] Failed to add spans: ${error}`);
|
|
113
112
|
throw error;
|
|
114
113
|
}
|
|
115
114
|
}
|
|
116
115
|
async getTracesByEvaluation(evaluationId) {
|
|
117
116
|
try {
|
|
118
|
-
require_logger.
|
|
117
|
+
require_logger.logger.debug(`[TraceStore] Fetching traces for evaluation ${evaluationId}`);
|
|
119
118
|
const db = this.getDatabase();
|
|
120
119
|
const traces = await db.select().from(require_tables.tracesTable).where((0, drizzle_orm.eq)(require_tables.tracesTable.evaluationId, evaluationId));
|
|
121
|
-
require_logger.
|
|
120
|
+
require_logger.logger.debug(`[TraceStore] Found ${traces.length} traces for evaluation ${evaluationId}`);
|
|
122
121
|
const tracesWithSpans = await Promise.all(traces.map(async (trace) => {
|
|
123
|
-
require_logger.
|
|
122
|
+
require_logger.logger.debug(`[TraceStore] Fetching spans for trace ${trace.traceId}`);
|
|
124
123
|
const spans = await db.select().from(require_tables.spansTable).where((0, drizzle_orm.eq)(require_tables.spansTable.traceId, trace.traceId));
|
|
125
|
-
require_logger.
|
|
124
|
+
require_logger.logger.debug(`[TraceStore] Found ${spans.length} spans for trace ${trace.traceId}`);
|
|
126
125
|
return {
|
|
127
126
|
...trace,
|
|
128
127
|
spans
|
|
129
128
|
};
|
|
130
129
|
}));
|
|
131
|
-
require_logger.
|
|
130
|
+
require_logger.logger.debug(`[TraceStore] Returning ${tracesWithSpans.length} traces with spans`);
|
|
132
131
|
return tracesWithSpans;
|
|
133
132
|
} catch (error) {
|
|
134
|
-
require_logger.
|
|
133
|
+
require_logger.logger.error(`[TraceStore] Failed to get traces for evaluation: ${error}`);
|
|
135
134
|
throw error;
|
|
136
135
|
}
|
|
137
136
|
}
|
|
138
137
|
async getTrace(traceId) {
|
|
139
138
|
try {
|
|
140
|
-
require_logger.
|
|
139
|
+
require_logger.logger.debug(`[TraceStore] Fetching trace ${traceId}`);
|
|
141
140
|
const db = this.getDatabase();
|
|
142
141
|
const traces = await db.select().from(require_tables.tracesTable).where((0, drizzle_orm.eq)(require_tables.tracesTable.traceId, traceId)).limit(1);
|
|
143
142
|
if (traces.length === 0) {
|
|
144
|
-
require_logger.
|
|
143
|
+
require_logger.logger.debug(`[TraceStore] Trace ${traceId} not found`);
|
|
145
144
|
return null;
|
|
146
145
|
}
|
|
147
146
|
const trace = traces[0];
|
|
148
|
-
require_logger.
|
|
147
|
+
require_logger.logger.debug(`[TraceStore] Found trace ${traceId}, fetching spans`);
|
|
149
148
|
const spans = await db.select().from(require_tables.spansTable).where((0, drizzle_orm.eq)(require_tables.spansTable.traceId, traceId));
|
|
150
|
-
require_logger.
|
|
149
|
+
require_logger.logger.debug(`[TraceStore] Found ${spans.length} spans for trace ${traceId}`);
|
|
151
150
|
return {
|
|
152
151
|
...trace,
|
|
153
152
|
spans
|
|
154
153
|
};
|
|
155
154
|
} catch (error) {
|
|
156
|
-
require_logger.
|
|
155
|
+
require_logger.logger.error(`[TraceStore] Failed to get trace: ${error}`);
|
|
157
156
|
throw error;
|
|
158
157
|
}
|
|
159
158
|
}
|
|
160
159
|
async deleteOldTraces(retentionDays) {
|
|
161
160
|
try {
|
|
162
|
-
require_logger.
|
|
161
|
+
require_logger.logger.debug(`[TraceStore] Deleting traces older than ${retentionDays} days`);
|
|
163
162
|
const db = this.getDatabase();
|
|
164
163
|
const cutoffTime = Date.now() - retentionDays * 24 * 60 * 60 * 1e3;
|
|
165
164
|
await db.delete(require_tables.tracesTable).where((0, drizzle_orm.lt)(require_tables.tracesTable.createdAt, cutoffTime));
|
|
166
|
-
require_logger.
|
|
165
|
+
require_logger.logger.debug(`[TraceStore] Successfully deleted traces older than ${retentionDays} days`);
|
|
167
166
|
} catch (error) {
|
|
168
|
-
require_logger.
|
|
167
|
+
require_logger.logger.error(`[TraceStore] Failed to delete old traces: ${error}`);
|
|
169
168
|
throw error;
|
|
170
169
|
}
|
|
171
170
|
}
|
|
172
171
|
async getSpans(traceId, options = {}) {
|
|
173
172
|
const { earliestStartTime, maxSpans, maxDepth, includeInternalSpans = true, spanFilter, sanitizeAttributes: shouldSanitize = true } = options;
|
|
174
173
|
try {
|
|
175
|
-
require_logger.
|
|
174
|
+
require_logger.logger.debug(`[TraceStore] Fetching spans for trace ${traceId}`);
|
|
176
175
|
const rows = await this.getDatabase().select().from(require_tables.spansTable).where((0, drizzle_orm.eq)(require_tables.spansTable.traceId, traceId)).orderBy((0, drizzle_orm.asc)(require_tables.spansTable.startTime));
|
|
177
176
|
const spanMap = /* @__PURE__ */ new Map();
|
|
178
177
|
const depthCache = /* @__PURE__ */ new Map();
|
|
@@ -202,10 +201,10 @@ var TraceStore = class {
|
|
|
202
201
|
let spans = Array.from(spanMap.values());
|
|
203
202
|
if (maxDepth !== void 0) spans = spans.filter((span) => computeDepth(span, spanMap, depthCache) < maxDepth);
|
|
204
203
|
if (maxSpans !== void 0) spans = spans.slice(0, maxSpans);
|
|
205
|
-
require_logger.
|
|
204
|
+
require_logger.logger.debug(`[TraceStore] Returning ${spans.length} spans for trace ${traceId}`);
|
|
206
205
|
return spans;
|
|
207
206
|
} catch (error) {
|
|
208
|
-
require_logger.
|
|
207
|
+
require_logger.logger.error(`[TraceStore] Failed to fetch spans for trace ${traceId}: ${error}`);
|
|
209
208
|
throw error;
|
|
210
209
|
}
|
|
211
210
|
}
|
|
@@ -213,23 +212,23 @@ var TraceStore = class {
|
|
|
213
212
|
let traceStore = null;
|
|
214
213
|
function getTraceStore() {
|
|
215
214
|
if (!traceStore) {
|
|
216
|
-
require_logger.
|
|
215
|
+
require_logger.logger.debug("[TraceStore] Creating new TraceStore instance");
|
|
217
216
|
traceStore = new TraceStore();
|
|
218
217
|
}
|
|
219
218
|
return traceStore;
|
|
220
219
|
}
|
|
221
|
-
|
|
222
220
|
//#endregion
|
|
223
|
-
Object.defineProperty(exports,
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
221
|
+
Object.defineProperty(exports, "TraceStore", {
|
|
222
|
+
enumerable: true,
|
|
223
|
+
get: function() {
|
|
224
|
+
return TraceStore;
|
|
225
|
+
}
|
|
228
226
|
});
|
|
229
|
-
Object.defineProperty(exports,
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
227
|
+
Object.defineProperty(exports, "getTraceStore", {
|
|
228
|
+
enumerable: true,
|
|
229
|
+
get: function() {
|
|
230
|
+
return getTraceStore;
|
|
231
|
+
}
|
|
234
232
|
});
|
|
235
|
-
|
|
233
|
+
|
|
234
|
+
//# sourceMappingURL=store-DLlFCC4h.cjs.map
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { t as __exportAll } from "./chunk-DEq-mXcV.js";
|
|
2
|
+
import { i as logger } from "./logger-CT3IKMKA.js";
|
|
3
|
+
import { f as tracesTable, p as getDb, u as spansTable } from "./tables-6YKwjN9-.js";
|
|
3
4
|
import { asc, eq, lt } from "drizzle-orm";
|
|
4
|
-
|
|
5
5
|
//#region src/tracing/store.ts
|
|
6
|
+
var store_exports = /* @__PURE__ */ __exportAll({
|
|
7
|
+
TraceStore: () => TraceStore,
|
|
8
|
+
getTraceStore: () => getTraceStore
|
|
9
|
+
});
|
|
6
10
|
const SENSITIVE_ATTRIBUTE_KEYS = [
|
|
7
11
|
"authorization",
|
|
8
12
|
"cookie",
|
|
@@ -53,14 +57,14 @@ var TraceStore = class {
|
|
|
53
57
|
db = null;
|
|
54
58
|
getDatabase() {
|
|
55
59
|
if (!this.db) {
|
|
56
|
-
|
|
60
|
+
logger.debug("[TraceStore] Initializing database connection");
|
|
57
61
|
this.db = getDb();
|
|
58
62
|
}
|
|
59
63
|
return this.db;
|
|
60
64
|
}
|
|
61
65
|
async createTrace(trace) {
|
|
62
66
|
try {
|
|
63
|
-
|
|
67
|
+
logger.debug(`[TraceStore] Creating trace ${trace.traceId} for evaluation ${trace.evaluationId}`);
|
|
64
68
|
await this.getDatabase().insert(tracesTable).values({
|
|
65
69
|
id: crypto.randomUUID(),
|
|
66
70
|
traceId: trace.traceId,
|
|
@@ -68,30 +72,30 @@ var TraceStore = class {
|
|
|
68
72
|
testCaseId: trace.testCaseId,
|
|
69
73
|
metadata: trace.metadata
|
|
70
74
|
}).onConflictDoNothing({ target: tracesTable.traceId });
|
|
71
|
-
|
|
75
|
+
logger.debug(`[TraceStore] Successfully created or found existing trace ${trace.traceId}`);
|
|
72
76
|
} catch (error) {
|
|
73
|
-
|
|
77
|
+
logger.error(`[TraceStore] Failed to create trace: ${error}`);
|
|
74
78
|
throw error;
|
|
75
79
|
}
|
|
76
80
|
}
|
|
77
81
|
async addSpans(traceId, spans, options) {
|
|
78
82
|
try {
|
|
79
|
-
|
|
83
|
+
logger.debug(`[TraceStore] Adding ${spans.length} spans to trace ${traceId}`);
|
|
80
84
|
const db = this.getDatabase();
|
|
81
|
-
if (options?.skipTraceCheck)
|
|
85
|
+
if (options?.skipTraceCheck) logger.debug(`[TraceStore] Skipping trace existence check for OTLP scenario`);
|
|
82
86
|
else {
|
|
83
|
-
|
|
87
|
+
logger.debug(`[TraceStore] Verifying trace ${traceId} exists`);
|
|
84
88
|
if ((await db.select().from(tracesTable).where(eq(tracesTable.traceId, traceId)).limit(1)).length === 0) {
|
|
85
|
-
|
|
89
|
+
logger.warn(`[TraceStore] Trace ${traceId} not found, skipping ${spans.length} spans. This may indicate spans arrived before trace was created.`);
|
|
86
90
|
return {
|
|
87
91
|
stored: false,
|
|
88
92
|
reason: `Trace ${traceId} not found`
|
|
89
93
|
};
|
|
90
94
|
}
|
|
91
|
-
|
|
95
|
+
logger.debug(`[TraceStore] Trace ${traceId} found, proceeding with span insertion`);
|
|
92
96
|
}
|
|
93
97
|
const spanRecords = spans.map((span) => {
|
|
94
|
-
|
|
98
|
+
logger.debug(`[TraceStore] Preparing span ${span.spanId} (${span.name}) for insertion`);
|
|
95
99
|
return {
|
|
96
100
|
id: crypto.randomUUID(),
|
|
97
101
|
traceId,
|
|
@@ -106,73 +110,73 @@ var TraceStore = class {
|
|
|
106
110
|
};
|
|
107
111
|
});
|
|
108
112
|
await db.insert(spansTable).values(spanRecords);
|
|
109
|
-
|
|
113
|
+
logger.debug(`[TraceStore] Successfully added ${spans.length} spans to trace ${traceId}`);
|
|
110
114
|
return { stored: true };
|
|
111
115
|
} catch (error) {
|
|
112
|
-
|
|
116
|
+
logger.error(`[TraceStore] Failed to add spans: ${error}`);
|
|
113
117
|
throw error;
|
|
114
118
|
}
|
|
115
119
|
}
|
|
116
120
|
async getTracesByEvaluation(evaluationId) {
|
|
117
121
|
try {
|
|
118
|
-
|
|
122
|
+
logger.debug(`[TraceStore] Fetching traces for evaluation ${evaluationId}`);
|
|
119
123
|
const db = this.getDatabase();
|
|
120
124
|
const traces = await db.select().from(tracesTable).where(eq(tracesTable.evaluationId, evaluationId));
|
|
121
|
-
|
|
125
|
+
logger.debug(`[TraceStore] Found ${traces.length} traces for evaluation ${evaluationId}`);
|
|
122
126
|
const tracesWithSpans = await Promise.all(traces.map(async (trace) => {
|
|
123
|
-
|
|
127
|
+
logger.debug(`[TraceStore] Fetching spans for trace ${trace.traceId}`);
|
|
124
128
|
const spans = await db.select().from(spansTable).where(eq(spansTable.traceId, trace.traceId));
|
|
125
|
-
|
|
129
|
+
logger.debug(`[TraceStore] Found ${spans.length} spans for trace ${trace.traceId}`);
|
|
126
130
|
return {
|
|
127
131
|
...trace,
|
|
128
132
|
spans
|
|
129
133
|
};
|
|
130
134
|
}));
|
|
131
|
-
|
|
135
|
+
logger.debug(`[TraceStore] Returning ${tracesWithSpans.length} traces with spans`);
|
|
132
136
|
return tracesWithSpans;
|
|
133
137
|
} catch (error) {
|
|
134
|
-
|
|
138
|
+
logger.error(`[TraceStore] Failed to get traces for evaluation: ${error}`);
|
|
135
139
|
throw error;
|
|
136
140
|
}
|
|
137
141
|
}
|
|
138
142
|
async getTrace(traceId) {
|
|
139
143
|
try {
|
|
140
|
-
|
|
144
|
+
logger.debug(`[TraceStore] Fetching trace ${traceId}`);
|
|
141
145
|
const db = this.getDatabase();
|
|
142
146
|
const traces = await db.select().from(tracesTable).where(eq(tracesTable.traceId, traceId)).limit(1);
|
|
143
147
|
if (traces.length === 0) {
|
|
144
|
-
|
|
148
|
+
logger.debug(`[TraceStore] Trace ${traceId} not found`);
|
|
145
149
|
return null;
|
|
146
150
|
}
|
|
147
151
|
const trace = traces[0];
|
|
148
|
-
|
|
152
|
+
logger.debug(`[TraceStore] Found trace ${traceId}, fetching spans`);
|
|
149
153
|
const spans = await db.select().from(spansTable).where(eq(spansTable.traceId, traceId));
|
|
150
|
-
|
|
154
|
+
logger.debug(`[TraceStore] Found ${spans.length} spans for trace ${traceId}`);
|
|
151
155
|
return {
|
|
152
156
|
...trace,
|
|
153
157
|
spans
|
|
154
158
|
};
|
|
155
159
|
} catch (error) {
|
|
156
|
-
|
|
160
|
+
logger.error(`[TraceStore] Failed to get trace: ${error}`);
|
|
157
161
|
throw error;
|
|
158
162
|
}
|
|
159
163
|
}
|
|
160
164
|
async deleteOldTraces(retentionDays) {
|
|
161
165
|
try {
|
|
162
|
-
|
|
166
|
+
logger.debug(`[TraceStore] Deleting traces older than ${retentionDays} days`);
|
|
163
167
|
const db = this.getDatabase();
|
|
164
168
|
const cutoffTime = Date.now() - retentionDays * 24 * 60 * 60 * 1e3;
|
|
165
169
|
await db.delete(tracesTable).where(lt(tracesTable.createdAt, cutoffTime));
|
|
166
|
-
|
|
170
|
+
logger.debug(`[TraceStore] Successfully deleted traces older than ${retentionDays} days`);
|
|
167
171
|
} catch (error) {
|
|
168
|
-
|
|
172
|
+
logger.error(`[TraceStore] Failed to delete old traces: ${error}`);
|
|
169
173
|
throw error;
|
|
170
174
|
}
|
|
171
175
|
}
|
|
172
176
|
async getSpans(traceId, options = {}) {
|
|
173
177
|
const { earliestStartTime, maxSpans, maxDepth, includeInternalSpans = true, spanFilter, sanitizeAttributes: shouldSanitize = true } = options;
|
|
174
178
|
try {
|
|
175
|
-
|
|
179
|
+
logger.debug(`[TraceStore] Fetching spans for trace ${traceId}`);
|
|
176
180
|
const rows = await this.getDatabase().select().from(spansTable).where(eq(spansTable.traceId, traceId)).orderBy(asc(spansTable.startTime));
|
|
177
181
|
const spanMap = /* @__PURE__ */ new Map();
|
|
178
182
|
const depthCache = /* @__PURE__ */ new Map();
|
|
@@ -202,10 +206,10 @@ var TraceStore = class {
|
|
|
202
206
|
let spans = Array.from(spanMap.values());
|
|
203
207
|
if (maxDepth !== void 0) spans = spans.filter((span) => computeDepth(span, spanMap, depthCache) < maxDepth);
|
|
204
208
|
if (maxSpans !== void 0) spans = spans.slice(0, maxSpans);
|
|
205
|
-
|
|
209
|
+
logger.debug(`[TraceStore] Returning ${spans.length} spans for trace ${traceId}`);
|
|
206
210
|
return spans;
|
|
207
211
|
} catch (error) {
|
|
208
|
-
|
|
212
|
+
logger.error(`[TraceStore] Failed to fetch spans for trace ${traceId}: ${error}`);
|
|
209
213
|
throw error;
|
|
210
214
|
}
|
|
211
215
|
}
|
|
@@ -213,12 +217,12 @@ var TraceStore = class {
|
|
|
213
217
|
let traceStore = null;
|
|
214
218
|
function getTraceStore() {
|
|
215
219
|
if (!traceStore) {
|
|
216
|
-
|
|
220
|
+
logger.debug("[TraceStore] Creating new TraceStore instance");
|
|
217
221
|
traceStore = new TraceStore();
|
|
218
222
|
}
|
|
219
223
|
return traceStore;
|
|
220
224
|
}
|
|
221
|
-
|
|
222
225
|
//#endregion
|
|
223
|
-
export {
|
|
224
|
-
|
|
226
|
+
export { store_exports as n, getTraceStore as t };
|
|
227
|
+
|
|
228
|
+
//# sourceMappingURL=store-DXilxTl-.js.map
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { o as
|
|
3
|
-
import { f as spansTable, g as getDb, m as tracesTable } from "./tables-
|
|
2
|
+
import { o as logger } from "./logger-KkObSCzq.js";
|
|
3
|
+
import { f as spansTable, g as getDb, m as tracesTable } from "./tables-gftXzE9I.js";
|
|
4
4
|
import { asc, eq, lt } from "drizzle-orm";
|
|
5
|
-
|
|
6
5
|
//#region src/tracing/store.ts
|
|
7
6
|
const SENSITIVE_ATTRIBUTE_KEYS = [
|
|
8
7
|
"authorization",
|
|
@@ -54,14 +53,14 @@ var TraceStore = class {
|
|
|
54
53
|
db = null;
|
|
55
54
|
getDatabase() {
|
|
56
55
|
if (!this.db) {
|
|
57
|
-
|
|
56
|
+
logger.debug("[TraceStore] Initializing database connection");
|
|
58
57
|
this.db = getDb();
|
|
59
58
|
}
|
|
60
59
|
return this.db;
|
|
61
60
|
}
|
|
62
61
|
async createTrace(trace) {
|
|
63
62
|
try {
|
|
64
|
-
|
|
63
|
+
logger.debug(`[TraceStore] Creating trace ${trace.traceId} for evaluation ${trace.evaluationId}`);
|
|
65
64
|
await this.getDatabase().insert(tracesTable).values({
|
|
66
65
|
id: crypto.randomUUID(),
|
|
67
66
|
traceId: trace.traceId,
|
|
@@ -69,30 +68,30 @@ var TraceStore = class {
|
|
|
69
68
|
testCaseId: trace.testCaseId,
|
|
70
69
|
metadata: trace.metadata
|
|
71
70
|
}).onConflictDoNothing({ target: tracesTable.traceId });
|
|
72
|
-
|
|
71
|
+
logger.debug(`[TraceStore] Successfully created or found existing trace ${trace.traceId}`);
|
|
73
72
|
} catch (error) {
|
|
74
|
-
|
|
73
|
+
logger.error(`[TraceStore] Failed to create trace: ${error}`);
|
|
75
74
|
throw error;
|
|
76
75
|
}
|
|
77
76
|
}
|
|
78
77
|
async addSpans(traceId, spans, options) {
|
|
79
78
|
try {
|
|
80
|
-
|
|
79
|
+
logger.debug(`[TraceStore] Adding ${spans.length} spans to trace ${traceId}`);
|
|
81
80
|
const db = this.getDatabase();
|
|
82
|
-
if (options?.skipTraceCheck)
|
|
81
|
+
if (options?.skipTraceCheck) logger.debug(`[TraceStore] Skipping trace existence check for OTLP scenario`);
|
|
83
82
|
else {
|
|
84
|
-
|
|
83
|
+
logger.debug(`[TraceStore] Verifying trace ${traceId} exists`);
|
|
85
84
|
if ((await db.select().from(tracesTable).where(eq(tracesTable.traceId, traceId)).limit(1)).length === 0) {
|
|
86
|
-
|
|
85
|
+
logger.warn(`[TraceStore] Trace ${traceId} not found, skipping ${spans.length} spans. This may indicate spans arrived before trace was created.`);
|
|
87
86
|
return {
|
|
88
87
|
stored: false,
|
|
89
88
|
reason: `Trace ${traceId} not found`
|
|
90
89
|
};
|
|
91
90
|
}
|
|
92
|
-
|
|
91
|
+
logger.debug(`[TraceStore] Trace ${traceId} found, proceeding with span insertion`);
|
|
93
92
|
}
|
|
94
93
|
const spanRecords = spans.map((span) => {
|
|
95
|
-
|
|
94
|
+
logger.debug(`[TraceStore] Preparing span ${span.spanId} (${span.name}) for insertion`);
|
|
96
95
|
return {
|
|
97
96
|
id: crypto.randomUUID(),
|
|
98
97
|
traceId,
|
|
@@ -107,73 +106,73 @@ var TraceStore = class {
|
|
|
107
106
|
};
|
|
108
107
|
});
|
|
109
108
|
await db.insert(spansTable).values(spanRecords);
|
|
110
|
-
|
|
109
|
+
logger.debug(`[TraceStore] Successfully added ${spans.length} spans to trace ${traceId}`);
|
|
111
110
|
return { stored: true };
|
|
112
111
|
} catch (error) {
|
|
113
|
-
|
|
112
|
+
logger.error(`[TraceStore] Failed to add spans: ${error}`);
|
|
114
113
|
throw error;
|
|
115
114
|
}
|
|
116
115
|
}
|
|
117
116
|
async getTracesByEvaluation(evaluationId) {
|
|
118
117
|
try {
|
|
119
|
-
|
|
118
|
+
logger.debug(`[TraceStore] Fetching traces for evaluation ${evaluationId}`);
|
|
120
119
|
const db = this.getDatabase();
|
|
121
120
|
const traces = await db.select().from(tracesTable).where(eq(tracesTable.evaluationId, evaluationId));
|
|
122
|
-
|
|
121
|
+
logger.debug(`[TraceStore] Found ${traces.length} traces for evaluation ${evaluationId}`);
|
|
123
122
|
const tracesWithSpans = await Promise.all(traces.map(async (trace) => {
|
|
124
|
-
|
|
123
|
+
logger.debug(`[TraceStore] Fetching spans for trace ${trace.traceId}`);
|
|
125
124
|
const spans = await db.select().from(spansTable).where(eq(spansTable.traceId, trace.traceId));
|
|
126
|
-
|
|
125
|
+
logger.debug(`[TraceStore] Found ${spans.length} spans for trace ${trace.traceId}`);
|
|
127
126
|
return {
|
|
128
127
|
...trace,
|
|
129
128
|
spans
|
|
130
129
|
};
|
|
131
130
|
}));
|
|
132
|
-
|
|
131
|
+
logger.debug(`[TraceStore] Returning ${tracesWithSpans.length} traces with spans`);
|
|
133
132
|
return tracesWithSpans;
|
|
134
133
|
} catch (error) {
|
|
135
|
-
|
|
134
|
+
logger.error(`[TraceStore] Failed to get traces for evaluation: ${error}`);
|
|
136
135
|
throw error;
|
|
137
136
|
}
|
|
138
137
|
}
|
|
139
138
|
async getTrace(traceId) {
|
|
140
139
|
try {
|
|
141
|
-
|
|
140
|
+
logger.debug(`[TraceStore] Fetching trace ${traceId}`);
|
|
142
141
|
const db = this.getDatabase();
|
|
143
142
|
const traces = await db.select().from(tracesTable).where(eq(tracesTable.traceId, traceId)).limit(1);
|
|
144
143
|
if (traces.length === 0) {
|
|
145
|
-
|
|
144
|
+
logger.debug(`[TraceStore] Trace ${traceId} not found`);
|
|
146
145
|
return null;
|
|
147
146
|
}
|
|
148
147
|
const trace = traces[0];
|
|
149
|
-
|
|
148
|
+
logger.debug(`[TraceStore] Found trace ${traceId}, fetching spans`);
|
|
150
149
|
const spans = await db.select().from(spansTable).where(eq(spansTable.traceId, traceId));
|
|
151
|
-
|
|
150
|
+
logger.debug(`[TraceStore] Found ${spans.length} spans for trace ${traceId}`);
|
|
152
151
|
return {
|
|
153
152
|
...trace,
|
|
154
153
|
spans
|
|
155
154
|
};
|
|
156
155
|
} catch (error) {
|
|
157
|
-
|
|
156
|
+
logger.error(`[TraceStore] Failed to get trace: ${error}`);
|
|
158
157
|
throw error;
|
|
159
158
|
}
|
|
160
159
|
}
|
|
161
160
|
async deleteOldTraces(retentionDays) {
|
|
162
161
|
try {
|
|
163
|
-
|
|
162
|
+
logger.debug(`[TraceStore] Deleting traces older than ${retentionDays} days`);
|
|
164
163
|
const db = this.getDatabase();
|
|
165
164
|
const cutoffTime = Date.now() - retentionDays * 24 * 60 * 60 * 1e3;
|
|
166
165
|
await db.delete(tracesTable).where(lt(tracesTable.createdAt, cutoffTime));
|
|
167
|
-
|
|
166
|
+
logger.debug(`[TraceStore] Successfully deleted traces older than ${retentionDays} days`);
|
|
168
167
|
} catch (error) {
|
|
169
|
-
|
|
168
|
+
logger.error(`[TraceStore] Failed to delete old traces: ${error}`);
|
|
170
169
|
throw error;
|
|
171
170
|
}
|
|
172
171
|
}
|
|
173
172
|
async getSpans(traceId, options = {}) {
|
|
174
173
|
const { earliestStartTime, maxSpans, maxDepth, includeInternalSpans = true, spanFilter, sanitizeAttributes: shouldSanitize = true } = options;
|
|
175
174
|
try {
|
|
176
|
-
|
|
175
|
+
logger.debug(`[TraceStore] Fetching spans for trace ${traceId}`);
|
|
177
176
|
const rows = await this.getDatabase().select().from(spansTable).where(eq(spansTable.traceId, traceId)).orderBy(asc(spansTable.startTime));
|
|
178
177
|
const spanMap = /* @__PURE__ */ new Map();
|
|
179
178
|
const depthCache = /* @__PURE__ */ new Map();
|
|
@@ -203,10 +202,10 @@ var TraceStore = class {
|
|
|
203
202
|
let spans = Array.from(spanMap.values());
|
|
204
203
|
if (maxDepth !== void 0) spans = spans.filter((span) => computeDepth(span, spanMap, depthCache) < maxDepth);
|
|
205
204
|
if (maxSpans !== void 0) spans = spans.slice(0, maxSpans);
|
|
206
|
-
|
|
205
|
+
logger.debug(`[TraceStore] Returning ${spans.length} spans for trace ${traceId}`);
|
|
207
206
|
return spans;
|
|
208
207
|
} catch (error) {
|
|
209
|
-
|
|
208
|
+
logger.error(`[TraceStore] Failed to fetch spans for trace ${traceId}: ${error}`);
|
|
210
209
|
throw error;
|
|
211
210
|
}
|
|
212
211
|
}
|
|
@@ -214,12 +213,12 @@ var TraceStore = class {
|
|
|
214
213
|
let traceStore = null;
|
|
215
214
|
function getTraceStore() {
|
|
216
215
|
if (!traceStore) {
|
|
217
|
-
|
|
216
|
+
logger.debug("[TraceStore] Creating new TraceStore instance");
|
|
218
217
|
traceStore = new TraceStore();
|
|
219
218
|
}
|
|
220
219
|
return traceStore;
|
|
221
220
|
}
|
|
222
|
-
|
|
223
221
|
//#endregion
|
|
224
222
|
export { getTraceStore as n, TraceStore as t };
|
|
225
|
-
|
|
223
|
+
|
|
224
|
+
//# sourceMappingURL=store-Dim__MDd.js.map
|