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,12 +1,11 @@
|
|
|
1
|
-
import { i as
|
|
2
|
-
import { t as getDirectory } from "./esm-
|
|
3
|
-
import "./types-
|
|
4
|
-
import "./tables-
|
|
5
|
-
import {
|
|
1
|
+
import { i as logger } from "./logger-CT3IKMKA.js";
|
|
2
|
+
import { t as getDirectory } from "./esm-Cd1AjG1D.js";
|
|
3
|
+
import "./types-DmyIJ-sR.js";
|
|
4
|
+
import "./tables-6YKwjN9-.js";
|
|
5
|
+
import { t as getTraceStore } from "./store-DXilxTl-.js";
|
|
6
6
|
import path from "path";
|
|
7
7
|
import express from "express";
|
|
8
8
|
import protobuf from "protobufjs";
|
|
9
|
-
|
|
10
9
|
//#region src/tracing/protobuf.ts
|
|
11
10
|
/**
|
|
12
11
|
* OTLP Protobuf decoder for trace data
|
|
@@ -28,9 +27,9 @@ function getProtoDir() {
|
|
|
28
27
|
*/
|
|
29
28
|
async function loadProtoDefinitions() {
|
|
30
29
|
if (protoRoot) return protoRoot;
|
|
31
|
-
|
|
30
|
+
logger.debug("[Protobuf] Loading OTLP proto definitions");
|
|
32
31
|
const protoDir = getProtoDir();
|
|
33
|
-
|
|
32
|
+
logger.debug(`[Protobuf] Proto directory: ${protoDir}`);
|
|
34
33
|
try {
|
|
35
34
|
const root = new protobuf.Root();
|
|
36
35
|
root.resolvePath = (_origin, target) => {
|
|
@@ -38,10 +37,10 @@ async function loadProtoDefinitions() {
|
|
|
38
37
|
};
|
|
39
38
|
await root.load("opentelemetry/proto/collector/trace/v1/trace_service.proto");
|
|
40
39
|
protoRoot = root;
|
|
41
|
-
|
|
40
|
+
logger.debug("[Protobuf] Successfully loaded OTLP proto definitions");
|
|
42
41
|
return protoRoot;
|
|
43
42
|
} catch (error) {
|
|
44
|
-
|
|
43
|
+
logger.error(`[Protobuf] Failed to load proto definitions: ${error}`);
|
|
45
44
|
throw error;
|
|
46
45
|
}
|
|
47
46
|
}
|
|
@@ -76,14 +75,13 @@ async function decodeExportTraceServiceRequest(data) {
|
|
|
76
75
|
defaults: true,
|
|
77
76
|
arrays: true
|
|
78
77
|
});
|
|
79
|
-
|
|
78
|
+
logger.debug(`[Protobuf] Decoded ExportTraceServiceRequest with ${decoded.resourceSpans?.length || 0} resource spans`);
|
|
80
79
|
return decoded;
|
|
81
80
|
} catch (error) {
|
|
82
|
-
|
|
81
|
+
logger.error(`[Protobuf] Failed to decode ExportTraceServiceRequest: ${error}`);
|
|
83
82
|
throw new Error(`Invalid protobuf data: ${error instanceof Error ? error.message : error}`);
|
|
84
83
|
}
|
|
85
84
|
}
|
|
86
|
-
|
|
87
85
|
//#endregion
|
|
88
86
|
//#region src/tracing/otlpReceiver.ts
|
|
89
87
|
const SPAN_KIND_MAP = {
|
|
@@ -102,7 +100,7 @@ var OTLPReceiver = class {
|
|
|
102
100
|
constructor() {
|
|
103
101
|
this.app = express();
|
|
104
102
|
this.traceStore = getTraceStore();
|
|
105
|
-
|
|
103
|
+
logger.debug("[OtlpReceiver] Initializing OTLP receiver");
|
|
106
104
|
this.setupMiddleware();
|
|
107
105
|
this.setupRoutes();
|
|
108
106
|
}
|
|
@@ -115,14 +113,14 @@ var OTLPReceiver = class {
|
|
|
115
113
|
type: "application/x-protobuf",
|
|
116
114
|
limit: "10mb"
|
|
117
115
|
}));
|
|
118
|
-
|
|
116
|
+
logger.debug("[OtlpReceiver] Middleware configured for JSON and protobuf");
|
|
119
117
|
}
|
|
120
118
|
setupRoutes() {
|
|
121
119
|
this.app.post("/v1/traces", async (req, res) => {
|
|
122
120
|
const contentType = req.headers["content-type"] || "unknown";
|
|
123
121
|
const bodySize = req.body ? JSON.stringify(req.body).length : 0;
|
|
124
|
-
|
|
125
|
-
|
|
122
|
+
logger.debug(`[OtlpReceiver] Received trace request: ${req.headers["content-type"]} with ${bodySize} bytes`);
|
|
123
|
+
logger.debug("[OtlpReceiver] Starting to process traces");
|
|
126
124
|
const isJson = contentType === "application/json";
|
|
127
125
|
const isProtobuf = contentType === "application/x-protobuf";
|
|
128
126
|
if (!isJson && !isProtobuf) {
|
|
@@ -132,15 +130,15 @@ var OTLPReceiver = class {
|
|
|
132
130
|
try {
|
|
133
131
|
let traces = [];
|
|
134
132
|
if (isJson) {
|
|
135
|
-
|
|
136
|
-
|
|
133
|
+
logger.debug("[OtlpReceiver] Parsing OTLP JSON request");
|
|
134
|
+
logger.debug(`[OtlpReceiver] Request body: ${JSON.stringify(req.body).substring(0, 500)}...`);
|
|
137
135
|
traces = this.parseOTLPJSONRequest(req.body);
|
|
138
136
|
} else if (isProtobuf) {
|
|
139
|
-
|
|
140
|
-
|
|
137
|
+
logger.debug("[OtlpReceiver] Parsing OTLP protobuf request");
|
|
138
|
+
logger.debug(`[OtlpReceiver] Request body size: ${req.body?.length || 0} bytes`);
|
|
141
139
|
traces = await this.parseOTLPProtobufRequest(req.body);
|
|
142
140
|
}
|
|
143
|
-
|
|
141
|
+
logger.debug(`[OtlpReceiver] Parsed ${traces.length} traces from request`);
|
|
144
142
|
const spansByTrace = /* @__PURE__ */ new Map();
|
|
145
143
|
const traceInfoById = /* @__PURE__ */ new Map();
|
|
146
144
|
for (const trace of traces) {
|
|
@@ -155,26 +153,26 @@ var OTLPReceiver = class {
|
|
|
155
153
|
}
|
|
156
154
|
spansByTrace.get(trace.traceId).push(trace.span);
|
|
157
155
|
}
|
|
158
|
-
|
|
156
|
+
logger.debug(`[OtlpReceiver] Grouped spans into ${spansByTrace.size} traces`);
|
|
159
157
|
for (const [traceId, info] of traceInfoById) try {
|
|
160
|
-
|
|
158
|
+
logger.debug(`[OtlpReceiver] Creating trace record for ${traceId}`);
|
|
161
159
|
await this.traceStore.createTrace({
|
|
162
160
|
traceId,
|
|
163
161
|
evaluationId: info.evaluationId || "",
|
|
164
162
|
testCaseId: info.testCaseId || ""
|
|
165
163
|
});
|
|
166
164
|
} catch (error) {
|
|
167
|
-
|
|
165
|
+
logger.debug(`[OtlpReceiver] Trace ${traceId} may already exist: ${error}`);
|
|
168
166
|
}
|
|
169
167
|
for (const [traceId, spans] of spansByTrace) {
|
|
170
|
-
|
|
168
|
+
logger.debug(`[OtlpReceiver] Storing ${spans.length} spans for trace ${traceId}`);
|
|
171
169
|
await this.traceStore.addSpans(traceId, spans, { skipTraceCheck: true });
|
|
172
170
|
}
|
|
173
171
|
res.status(200).json({ partialSuccess: {} });
|
|
174
|
-
|
|
172
|
+
logger.debug("[OtlpReceiver] Successfully processed traces");
|
|
175
173
|
} catch (error) {
|
|
176
|
-
|
|
177
|
-
|
|
174
|
+
logger.error(`[OtlpReceiver] Failed to process OTLP traces: ${error}`);
|
|
175
|
+
logger.error(`[OtlpReceiver] Error stack: ${error instanceof Error ? error.stack : "No stack"}`);
|
|
178
176
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
179
177
|
if (errorMessage.toLowerCase().includes("invalid protobuf")) {
|
|
180
178
|
res.status(400).json({ error: errorMessage });
|
|
@@ -184,7 +182,7 @@ var OTLPReceiver = class {
|
|
|
184
182
|
}
|
|
185
183
|
});
|
|
186
184
|
this.app.get("/health", (_req, res) => {
|
|
187
|
-
|
|
185
|
+
logger.debug("[OtlpReceiver] Health check requested");
|
|
188
186
|
res.status(200).json({ status: "ok" });
|
|
189
187
|
});
|
|
190
188
|
this.app.get("/v1/traces", (_req, res) => {
|
|
@@ -203,8 +201,8 @@ var OTLPReceiver = class {
|
|
|
203
201
|
});
|
|
204
202
|
});
|
|
205
203
|
this.app.use((error, _req, res, _next) => {
|
|
206
|
-
|
|
207
|
-
|
|
204
|
+
logger.error(`[OtlpReceiver] Global error handler: ${error}`);
|
|
205
|
+
logger.error(`[OtlpReceiver] Error stack: ${error.stack}`);
|
|
208
206
|
if (error instanceof SyntaxError && "body" in error) {
|
|
209
207
|
res.status(400).json({ error: "Invalid JSON" });
|
|
210
208
|
return;
|
|
@@ -214,15 +212,15 @@ var OTLPReceiver = class {
|
|
|
214
212
|
}
|
|
215
213
|
parseOTLPJSONRequest(body) {
|
|
216
214
|
const traces = [];
|
|
217
|
-
|
|
215
|
+
logger.debug(`[OtlpReceiver] Parsing request with ${body.resourceSpans?.length || 0} resource spans`);
|
|
218
216
|
for (const resourceSpan of body.resourceSpans) {
|
|
219
217
|
const resourceAttributes = this.parseAttributes(resourceSpan.resource?.attributes);
|
|
220
|
-
|
|
218
|
+
logger.debug(`[OtlpReceiver] Parsed ${Object.keys(resourceAttributes).length} resource attributes`);
|
|
221
219
|
for (const scopeSpan of resourceSpan.scopeSpans) for (const span of scopeSpan.spans) {
|
|
222
220
|
const traceId = this.convertId(span.traceId, 32);
|
|
223
221
|
const spanId = this.convertId(span.spanId, 16);
|
|
224
222
|
const parentSpanId = span.parentSpanId ? this.convertId(span.parentSpanId, 16) : void 0;
|
|
225
|
-
|
|
223
|
+
logger.debug(`[OtlpReceiver] Processing span: ${span.name} (${spanId}) in trace ${traceId}`);
|
|
226
224
|
const spanKindName = SPAN_KIND_MAP[span.kind] ?? "unspecified";
|
|
227
225
|
const attributes = {
|
|
228
226
|
...resourceAttributes,
|
|
@@ -252,15 +250,15 @@ var OTLPReceiver = class {
|
|
|
252
250
|
async parseOTLPProtobufRequest(body) {
|
|
253
251
|
const traces = [];
|
|
254
252
|
const decoded = await decodeExportTraceServiceRequest(body);
|
|
255
|
-
|
|
253
|
+
logger.debug(`[OtlpReceiver] Parsing protobuf request with ${decoded.resourceSpans?.length || 0} resource spans`);
|
|
256
254
|
for (const resourceSpan of decoded.resourceSpans || []) {
|
|
257
255
|
const resourceAttributes = this.parseDecodedAttributes(resourceSpan.resource?.attributes);
|
|
258
|
-
|
|
256
|
+
logger.debug(`[OtlpReceiver] Parsed ${Object.keys(resourceAttributes).length} resource attributes from protobuf`);
|
|
259
257
|
for (const scopeSpan of resourceSpan.scopeSpans || []) for (const span of scopeSpan.spans || []) {
|
|
260
258
|
const traceId = bytesToHex(span.traceId, 32);
|
|
261
259
|
const spanId = bytesToHex(span.spanId, 16);
|
|
262
260
|
const parentSpanId = span.parentSpanId?.length ? bytesToHex(span.parentSpanId, 16) : void 0;
|
|
263
|
-
|
|
261
|
+
logger.debug(`[OtlpReceiver] Processing protobuf span: ${span.name} (${spanId}) in trace ${traceId}`);
|
|
264
262
|
const spanKindName = SPAN_KIND_MAP[span.kind ?? 0] ?? "unspecified";
|
|
265
263
|
const attributes = {
|
|
266
264
|
...resourceAttributes,
|
|
@@ -334,53 +332,53 @@ var OTLPReceiver = class {
|
|
|
334
332
|
}
|
|
335
333
|
}
|
|
336
334
|
convertId(id, expectedHexLength) {
|
|
337
|
-
|
|
335
|
+
logger.debug(`[OtlpReceiver] Converting ID: ${id} (length: ${id.length}, expected hex length: ${expectedHexLength})`);
|
|
338
336
|
if (id.length === expectedHexLength && /^[0-9a-f]+$/i.test(id)) {
|
|
339
|
-
|
|
337
|
+
logger.debug(`[OtlpReceiver] ID is already hex format`);
|
|
340
338
|
return id.toLowerCase();
|
|
341
339
|
}
|
|
342
340
|
try {
|
|
343
341
|
const buffer = Buffer.from(id, "base64");
|
|
344
342
|
const hex = buffer.toString("hex");
|
|
345
|
-
|
|
343
|
+
logger.debug(`[OtlpReceiver] Base64 decoded: ${id} -> ${hex} (${buffer.length} bytes)`);
|
|
346
344
|
const utf8String = buffer.toString("utf8");
|
|
347
345
|
if (utf8String.length === expectedHexLength && /^[0-9a-f]+$/i.test(utf8String)) {
|
|
348
|
-
|
|
346
|
+
logger.debug(`[OtlpReceiver] Detected hex string encoded as UTF-8: ${utf8String}`);
|
|
349
347
|
return utf8String.toLowerCase();
|
|
350
348
|
}
|
|
351
349
|
if (hex.length === expectedHexLength) return hex;
|
|
352
|
-
|
|
350
|
+
logger.warn(`[OtlpReceiver] Unexpected ID format: ${id} -> ${hex} (expected ${expectedHexLength} hex chars)`);
|
|
353
351
|
return id.toLowerCase();
|
|
354
352
|
} catch (error) {
|
|
355
|
-
|
|
353
|
+
logger.error(`[OtlpReceiver] Failed to convert ID: ${error}`);
|
|
356
354
|
return id.toLowerCase();
|
|
357
355
|
}
|
|
358
356
|
}
|
|
359
357
|
listen(port = 4318, host = "127.0.0.1") {
|
|
360
358
|
this.port = port;
|
|
361
|
-
|
|
359
|
+
logger.debug(`[OtlpReceiver] Starting receiver on ${host}:${port}`);
|
|
362
360
|
return new Promise((resolve, reject) => {
|
|
363
361
|
this.server = this.app.listen(port, host, () => {
|
|
364
|
-
|
|
365
|
-
|
|
362
|
+
logger.info(`[OtlpReceiver] Listening on http://${host}:${port}`);
|
|
363
|
+
logger.debug("[OtlpReceiver] Receiver fully initialized and ready to accept traces");
|
|
366
364
|
resolve();
|
|
367
365
|
});
|
|
368
366
|
this.server.on("error", (error) => {
|
|
369
|
-
|
|
367
|
+
logger.error(`[OtlpReceiver] Failed to start: ${error}`);
|
|
370
368
|
reject(error);
|
|
371
369
|
});
|
|
372
370
|
});
|
|
373
371
|
}
|
|
374
372
|
stop() {
|
|
375
|
-
|
|
373
|
+
logger.debug("[OtlpReceiver] Stopping receiver");
|
|
376
374
|
return new Promise((resolve) => {
|
|
377
375
|
if (this.server) this.server.close(() => {
|
|
378
|
-
|
|
376
|
+
logger.info("[OtlpReceiver] Server stopped");
|
|
379
377
|
this.server = void 0;
|
|
380
378
|
resolve();
|
|
381
379
|
});
|
|
382
380
|
else {
|
|
383
|
-
|
|
381
|
+
logger.debug("[OtlpReceiver] No server to stop");
|
|
384
382
|
resolve();
|
|
385
383
|
}
|
|
386
384
|
});
|
|
@@ -395,17 +393,17 @@ function getOTLPReceiver() {
|
|
|
395
393
|
return otlpReceiver;
|
|
396
394
|
}
|
|
397
395
|
async function startOTLPReceiver(port, host) {
|
|
398
|
-
|
|
396
|
+
logger.debug("[OtlpReceiver] Starting receiver through startOTLPReceiver function");
|
|
399
397
|
await getOTLPReceiver().listen(port, host);
|
|
400
398
|
}
|
|
401
399
|
async function stopOTLPReceiver() {
|
|
402
|
-
|
|
400
|
+
logger.debug("[OtlpReceiver] Stopping receiver through stopOTLPReceiver function");
|
|
403
401
|
if (otlpReceiver) {
|
|
404
402
|
await otlpReceiver.stop();
|
|
405
403
|
otlpReceiver = null;
|
|
406
404
|
}
|
|
407
405
|
}
|
|
408
|
-
|
|
409
406
|
//#endregion
|
|
410
407
|
export { startOTLPReceiver, stopOTLPReceiver };
|
|
411
|
-
|
|
408
|
+
|
|
409
|
+
//# sourceMappingURL=otlpReceiver-CdNBdbsk.js.map
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { o as
|
|
3
|
-
import "./types-
|
|
4
|
-
import { t as getDirectory } from "./esm-
|
|
5
|
-
import "./tables-
|
|
6
|
-
import { n as getTraceStore } from "./store-
|
|
2
|
+
import { o as logger } from "./logger-KkObSCzq.js";
|
|
3
|
+
import "./types-Cbd8uOMq.js";
|
|
4
|
+
import { t as getDirectory } from "./esm-C03C-mv3.js";
|
|
5
|
+
import "./tables-gftXzE9I.js";
|
|
6
|
+
import { n as getTraceStore } from "./store-Dim__MDd.js";
|
|
7
7
|
import path from "path";
|
|
8
8
|
import express from "express";
|
|
9
9
|
import protobuf from "protobufjs";
|
|
10
|
-
|
|
11
10
|
//#region src/tracing/protobuf.ts
|
|
12
11
|
/**
|
|
13
12
|
* OTLP Protobuf decoder for trace data
|
|
@@ -29,9 +28,9 @@ function getProtoDir() {
|
|
|
29
28
|
*/
|
|
30
29
|
async function loadProtoDefinitions() {
|
|
31
30
|
if (protoRoot) return protoRoot;
|
|
32
|
-
|
|
31
|
+
logger.debug("[Protobuf] Loading OTLP proto definitions");
|
|
33
32
|
const protoDir = getProtoDir();
|
|
34
|
-
|
|
33
|
+
logger.debug(`[Protobuf] Proto directory: ${protoDir}`);
|
|
35
34
|
try {
|
|
36
35
|
const root = new protobuf.Root();
|
|
37
36
|
root.resolvePath = (_origin, target) => {
|
|
@@ -39,10 +38,10 @@ async function loadProtoDefinitions() {
|
|
|
39
38
|
};
|
|
40
39
|
await root.load("opentelemetry/proto/collector/trace/v1/trace_service.proto");
|
|
41
40
|
protoRoot = root;
|
|
42
|
-
|
|
41
|
+
logger.debug("[Protobuf] Successfully loaded OTLP proto definitions");
|
|
43
42
|
return protoRoot;
|
|
44
43
|
} catch (error) {
|
|
45
|
-
|
|
44
|
+
logger.error(`[Protobuf] Failed to load proto definitions: ${error}`);
|
|
46
45
|
throw error;
|
|
47
46
|
}
|
|
48
47
|
}
|
|
@@ -77,14 +76,13 @@ async function decodeExportTraceServiceRequest(data) {
|
|
|
77
76
|
defaults: true,
|
|
78
77
|
arrays: true
|
|
79
78
|
});
|
|
80
|
-
|
|
79
|
+
logger.debug(`[Protobuf] Decoded ExportTraceServiceRequest with ${decoded.resourceSpans?.length || 0} resource spans`);
|
|
81
80
|
return decoded;
|
|
82
81
|
} catch (error) {
|
|
83
|
-
|
|
82
|
+
logger.error(`[Protobuf] Failed to decode ExportTraceServiceRequest: ${error}`);
|
|
84
83
|
throw new Error(`Invalid protobuf data: ${error instanceof Error ? error.message : error}`);
|
|
85
84
|
}
|
|
86
85
|
}
|
|
87
|
-
|
|
88
86
|
//#endregion
|
|
89
87
|
//#region src/tracing/otlpReceiver.ts
|
|
90
88
|
const SPAN_KIND_MAP = {
|
|
@@ -103,7 +101,7 @@ var OTLPReceiver = class {
|
|
|
103
101
|
constructor() {
|
|
104
102
|
this.app = express();
|
|
105
103
|
this.traceStore = getTraceStore();
|
|
106
|
-
|
|
104
|
+
logger.debug("[OtlpReceiver] Initializing OTLP receiver");
|
|
107
105
|
this.setupMiddleware();
|
|
108
106
|
this.setupRoutes();
|
|
109
107
|
}
|
|
@@ -116,14 +114,14 @@ var OTLPReceiver = class {
|
|
|
116
114
|
type: "application/x-protobuf",
|
|
117
115
|
limit: "10mb"
|
|
118
116
|
}));
|
|
119
|
-
|
|
117
|
+
logger.debug("[OtlpReceiver] Middleware configured for JSON and protobuf");
|
|
120
118
|
}
|
|
121
119
|
setupRoutes() {
|
|
122
120
|
this.app.post("/v1/traces", async (req, res) => {
|
|
123
121
|
const contentType = req.headers["content-type"] || "unknown";
|
|
124
122
|
const bodySize = req.body ? JSON.stringify(req.body).length : 0;
|
|
125
|
-
|
|
126
|
-
|
|
123
|
+
logger.debug(`[OtlpReceiver] Received trace request: ${req.headers["content-type"]} with ${bodySize} bytes`);
|
|
124
|
+
logger.debug("[OtlpReceiver] Starting to process traces");
|
|
127
125
|
const isJson = contentType === "application/json";
|
|
128
126
|
const isProtobuf = contentType === "application/x-protobuf";
|
|
129
127
|
if (!isJson && !isProtobuf) {
|
|
@@ -133,15 +131,15 @@ var OTLPReceiver = class {
|
|
|
133
131
|
try {
|
|
134
132
|
let traces = [];
|
|
135
133
|
if (isJson) {
|
|
136
|
-
|
|
137
|
-
|
|
134
|
+
logger.debug("[OtlpReceiver] Parsing OTLP JSON request");
|
|
135
|
+
logger.debug(`[OtlpReceiver] Request body: ${JSON.stringify(req.body).substring(0, 500)}...`);
|
|
138
136
|
traces = this.parseOTLPJSONRequest(req.body);
|
|
139
137
|
} else if (isProtobuf) {
|
|
140
|
-
|
|
141
|
-
|
|
138
|
+
logger.debug("[OtlpReceiver] Parsing OTLP protobuf request");
|
|
139
|
+
logger.debug(`[OtlpReceiver] Request body size: ${req.body?.length || 0} bytes`);
|
|
142
140
|
traces = await this.parseOTLPProtobufRequest(req.body);
|
|
143
141
|
}
|
|
144
|
-
|
|
142
|
+
logger.debug(`[OtlpReceiver] Parsed ${traces.length} traces from request`);
|
|
145
143
|
const spansByTrace = /* @__PURE__ */ new Map();
|
|
146
144
|
const traceInfoById = /* @__PURE__ */ new Map();
|
|
147
145
|
for (const trace of traces) {
|
|
@@ -156,26 +154,26 @@ var OTLPReceiver = class {
|
|
|
156
154
|
}
|
|
157
155
|
spansByTrace.get(trace.traceId).push(trace.span);
|
|
158
156
|
}
|
|
159
|
-
|
|
157
|
+
logger.debug(`[OtlpReceiver] Grouped spans into ${spansByTrace.size} traces`);
|
|
160
158
|
for (const [traceId, info] of traceInfoById) try {
|
|
161
|
-
|
|
159
|
+
logger.debug(`[OtlpReceiver] Creating trace record for ${traceId}`);
|
|
162
160
|
await this.traceStore.createTrace({
|
|
163
161
|
traceId,
|
|
164
162
|
evaluationId: info.evaluationId || "",
|
|
165
163
|
testCaseId: info.testCaseId || ""
|
|
166
164
|
});
|
|
167
165
|
} catch (error) {
|
|
168
|
-
|
|
166
|
+
logger.debug(`[OtlpReceiver] Trace ${traceId} may already exist: ${error}`);
|
|
169
167
|
}
|
|
170
168
|
for (const [traceId, spans] of spansByTrace) {
|
|
171
|
-
|
|
169
|
+
logger.debug(`[OtlpReceiver] Storing ${spans.length} spans for trace ${traceId}`);
|
|
172
170
|
await this.traceStore.addSpans(traceId, spans, { skipTraceCheck: true });
|
|
173
171
|
}
|
|
174
172
|
res.status(200).json({ partialSuccess: {} });
|
|
175
|
-
|
|
173
|
+
logger.debug("[OtlpReceiver] Successfully processed traces");
|
|
176
174
|
} catch (error) {
|
|
177
|
-
|
|
178
|
-
|
|
175
|
+
logger.error(`[OtlpReceiver] Failed to process OTLP traces: ${error}`);
|
|
176
|
+
logger.error(`[OtlpReceiver] Error stack: ${error instanceof Error ? error.stack : "No stack"}`);
|
|
179
177
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
180
178
|
if (errorMessage.toLowerCase().includes("invalid protobuf")) {
|
|
181
179
|
res.status(400).json({ error: errorMessage });
|
|
@@ -185,7 +183,7 @@ var OTLPReceiver = class {
|
|
|
185
183
|
}
|
|
186
184
|
});
|
|
187
185
|
this.app.get("/health", (_req, res) => {
|
|
188
|
-
|
|
186
|
+
logger.debug("[OtlpReceiver] Health check requested");
|
|
189
187
|
res.status(200).json({ status: "ok" });
|
|
190
188
|
});
|
|
191
189
|
this.app.get("/v1/traces", (_req, res) => {
|
|
@@ -204,8 +202,8 @@ var OTLPReceiver = class {
|
|
|
204
202
|
});
|
|
205
203
|
});
|
|
206
204
|
this.app.use((error, _req, res, _next) => {
|
|
207
|
-
|
|
208
|
-
|
|
205
|
+
logger.error(`[OtlpReceiver] Global error handler: ${error}`);
|
|
206
|
+
logger.error(`[OtlpReceiver] Error stack: ${error.stack}`);
|
|
209
207
|
if (error instanceof SyntaxError && "body" in error) {
|
|
210
208
|
res.status(400).json({ error: "Invalid JSON" });
|
|
211
209
|
return;
|
|
@@ -215,15 +213,15 @@ var OTLPReceiver = class {
|
|
|
215
213
|
}
|
|
216
214
|
parseOTLPJSONRequest(body) {
|
|
217
215
|
const traces = [];
|
|
218
|
-
|
|
216
|
+
logger.debug(`[OtlpReceiver] Parsing request with ${body.resourceSpans?.length || 0} resource spans`);
|
|
219
217
|
for (const resourceSpan of body.resourceSpans) {
|
|
220
218
|
const resourceAttributes = this.parseAttributes(resourceSpan.resource?.attributes);
|
|
221
|
-
|
|
219
|
+
logger.debug(`[OtlpReceiver] Parsed ${Object.keys(resourceAttributes).length} resource attributes`);
|
|
222
220
|
for (const scopeSpan of resourceSpan.scopeSpans) for (const span of scopeSpan.spans) {
|
|
223
221
|
const traceId = this.convertId(span.traceId, 32);
|
|
224
222
|
const spanId = this.convertId(span.spanId, 16);
|
|
225
223
|
const parentSpanId = span.parentSpanId ? this.convertId(span.parentSpanId, 16) : void 0;
|
|
226
|
-
|
|
224
|
+
logger.debug(`[OtlpReceiver] Processing span: ${span.name} (${spanId}) in trace ${traceId}`);
|
|
227
225
|
const spanKindName = SPAN_KIND_MAP[span.kind] ?? "unspecified";
|
|
228
226
|
const attributes = {
|
|
229
227
|
...resourceAttributes,
|
|
@@ -253,15 +251,15 @@ var OTLPReceiver = class {
|
|
|
253
251
|
async parseOTLPProtobufRequest(body) {
|
|
254
252
|
const traces = [];
|
|
255
253
|
const decoded = await decodeExportTraceServiceRequest(body);
|
|
256
|
-
|
|
254
|
+
logger.debug(`[OtlpReceiver] Parsing protobuf request with ${decoded.resourceSpans?.length || 0} resource spans`);
|
|
257
255
|
for (const resourceSpan of decoded.resourceSpans || []) {
|
|
258
256
|
const resourceAttributes = this.parseDecodedAttributes(resourceSpan.resource?.attributes);
|
|
259
|
-
|
|
257
|
+
logger.debug(`[OtlpReceiver] Parsed ${Object.keys(resourceAttributes).length} resource attributes from protobuf`);
|
|
260
258
|
for (const scopeSpan of resourceSpan.scopeSpans || []) for (const span of scopeSpan.spans || []) {
|
|
261
259
|
const traceId = bytesToHex(span.traceId, 32);
|
|
262
260
|
const spanId = bytesToHex(span.spanId, 16);
|
|
263
261
|
const parentSpanId = span.parentSpanId?.length ? bytesToHex(span.parentSpanId, 16) : void 0;
|
|
264
|
-
|
|
262
|
+
logger.debug(`[OtlpReceiver] Processing protobuf span: ${span.name} (${spanId}) in trace ${traceId}`);
|
|
265
263
|
const spanKindName = SPAN_KIND_MAP[span.kind ?? 0] ?? "unspecified";
|
|
266
264
|
const attributes = {
|
|
267
265
|
...resourceAttributes,
|
|
@@ -335,53 +333,53 @@ var OTLPReceiver = class {
|
|
|
335
333
|
}
|
|
336
334
|
}
|
|
337
335
|
convertId(id, expectedHexLength) {
|
|
338
|
-
|
|
336
|
+
logger.debug(`[OtlpReceiver] Converting ID: ${id} (length: ${id.length}, expected hex length: ${expectedHexLength})`);
|
|
339
337
|
if (id.length === expectedHexLength && /^[0-9a-f]+$/i.test(id)) {
|
|
340
|
-
|
|
338
|
+
logger.debug(`[OtlpReceiver] ID is already hex format`);
|
|
341
339
|
return id.toLowerCase();
|
|
342
340
|
}
|
|
343
341
|
try {
|
|
344
342
|
const buffer = Buffer.from(id, "base64");
|
|
345
343
|
const hex = buffer.toString("hex");
|
|
346
|
-
|
|
344
|
+
logger.debug(`[OtlpReceiver] Base64 decoded: ${id} -> ${hex} (${buffer.length} bytes)`);
|
|
347
345
|
const utf8String = buffer.toString("utf8");
|
|
348
346
|
if (utf8String.length === expectedHexLength && /^[0-9a-f]+$/i.test(utf8String)) {
|
|
349
|
-
|
|
347
|
+
logger.debug(`[OtlpReceiver] Detected hex string encoded as UTF-8: ${utf8String}`);
|
|
350
348
|
return utf8String.toLowerCase();
|
|
351
349
|
}
|
|
352
350
|
if (hex.length === expectedHexLength) return hex;
|
|
353
|
-
|
|
351
|
+
logger.warn(`[OtlpReceiver] Unexpected ID format: ${id} -> ${hex} (expected ${expectedHexLength} hex chars)`);
|
|
354
352
|
return id.toLowerCase();
|
|
355
353
|
} catch (error) {
|
|
356
|
-
|
|
354
|
+
logger.error(`[OtlpReceiver] Failed to convert ID: ${error}`);
|
|
357
355
|
return id.toLowerCase();
|
|
358
356
|
}
|
|
359
357
|
}
|
|
360
358
|
listen(port = 4318, host = "127.0.0.1") {
|
|
361
359
|
this.port = port;
|
|
362
|
-
|
|
360
|
+
logger.debug(`[OtlpReceiver] Starting receiver on ${host}:${port}`);
|
|
363
361
|
return new Promise((resolve, reject) => {
|
|
364
362
|
this.server = this.app.listen(port, host, () => {
|
|
365
|
-
|
|
366
|
-
|
|
363
|
+
logger.info(`[OtlpReceiver] Listening on http://${host}:${port}`);
|
|
364
|
+
logger.debug("[OtlpReceiver] Receiver fully initialized and ready to accept traces");
|
|
367
365
|
resolve();
|
|
368
366
|
});
|
|
369
367
|
this.server.on("error", (error) => {
|
|
370
|
-
|
|
368
|
+
logger.error(`[OtlpReceiver] Failed to start: ${error}`);
|
|
371
369
|
reject(error);
|
|
372
370
|
});
|
|
373
371
|
});
|
|
374
372
|
}
|
|
375
373
|
stop() {
|
|
376
|
-
|
|
374
|
+
logger.debug("[OtlpReceiver] Stopping receiver");
|
|
377
375
|
return new Promise((resolve) => {
|
|
378
376
|
if (this.server) this.server.close(() => {
|
|
379
|
-
|
|
377
|
+
logger.info("[OtlpReceiver] Server stopped");
|
|
380
378
|
this.server = void 0;
|
|
381
379
|
resolve();
|
|
382
380
|
});
|
|
383
381
|
else {
|
|
384
|
-
|
|
382
|
+
logger.debug("[OtlpReceiver] No server to stop");
|
|
385
383
|
resolve();
|
|
386
384
|
}
|
|
387
385
|
});
|
|
@@ -396,17 +394,17 @@ function getOTLPReceiver() {
|
|
|
396
394
|
return otlpReceiver;
|
|
397
395
|
}
|
|
398
396
|
async function startOTLPReceiver(port, host) {
|
|
399
|
-
|
|
397
|
+
logger.debug("[OtlpReceiver] Starting receiver through startOTLPReceiver function");
|
|
400
398
|
await getOTLPReceiver().listen(port, host);
|
|
401
399
|
}
|
|
402
400
|
async function stopOTLPReceiver() {
|
|
403
|
-
|
|
401
|
+
logger.debug("[OtlpReceiver] Stopping receiver through stopOTLPReceiver function");
|
|
404
402
|
if (otlpReceiver) {
|
|
405
403
|
await otlpReceiver.stop();
|
|
406
404
|
otlpReceiver = null;
|
|
407
405
|
}
|
|
408
406
|
}
|
|
409
|
-
|
|
410
407
|
//#endregion
|
|
411
408
|
export { startOTLPReceiver, stopOTLPReceiver };
|
|
412
|
-
|
|
409
|
+
|
|
410
|
+
//# sourceMappingURL=otlpReceiver-D89fR-rC.js.map
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { o as
|
|
3
|
-
|
|
2
|
+
import { o as logger } from "./logger-KkObSCzq.js";
|
|
4
3
|
//#region src/providers/providerRegistry.ts
|
|
5
4
|
/**
|
|
6
5
|
* Global registry of Python providers for cleanup on process exit.
|
|
@@ -24,11 +23,11 @@ var ProviderRegistry = class {
|
|
|
24
23
|
const shutdown = async (signal) => {
|
|
25
24
|
if (shuttingDown) return;
|
|
26
25
|
shuttingDown = true;
|
|
27
|
-
|
|
26
|
+
logger.debug(`Received ${signal}, shutting down ${this.providers.size} Python providers...`);
|
|
28
27
|
await Promise.all(Array.from(this.providers).map((p) => p.shutdown().catch((err) => {
|
|
29
|
-
|
|
28
|
+
logger.error(`Error shutting down provider: ${err}`);
|
|
30
29
|
})));
|
|
31
|
-
|
|
30
|
+
logger.debug("Python provider shutdown complete");
|
|
32
31
|
};
|
|
33
32
|
process.once("SIGINT", () => void shutdown("SIGINT"));
|
|
34
33
|
process.once("SIGTERM", () => void shutdown("SIGTERM"));
|
|
@@ -36,12 +35,12 @@ var ProviderRegistry = class {
|
|
|
36
35
|
}
|
|
37
36
|
async shutdownAll() {
|
|
38
37
|
const results = await Promise.allSettled(Array.from(this.providers).map((p) => p.shutdown()));
|
|
39
|
-
for (const result of results) if (result.status === "rejected")
|
|
38
|
+
for (const result of results) if (result.status === "rejected") logger.warn(`Error shutting down provider: ${result.reason}`);
|
|
40
39
|
this.providers.clear();
|
|
41
40
|
}
|
|
42
41
|
};
|
|
43
42
|
const providerRegistry = new ProviderRegistry();
|
|
44
|
-
|
|
45
43
|
//#endregion
|
|
46
44
|
export { providerRegistry as t };
|
|
47
|
-
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=providerRegistry-B0RUOLI_.js.map
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { i as
|
|
2
|
-
|
|
1
|
+
import { i as logger } from "./logger-CT3IKMKA.js";
|
|
3
2
|
//#region src/providers/providerRegistry.ts
|
|
4
3
|
/**
|
|
5
4
|
* Global registry of Python providers for cleanup on process exit.
|
|
@@ -23,11 +22,11 @@ var ProviderRegistry = class {
|
|
|
23
22
|
const shutdown = async (signal) => {
|
|
24
23
|
if (shuttingDown) return;
|
|
25
24
|
shuttingDown = true;
|
|
26
|
-
|
|
25
|
+
logger.debug(`Received ${signal}, shutting down ${this.providers.size} Python providers...`);
|
|
27
26
|
await Promise.all(Array.from(this.providers).map((p) => p.shutdown().catch((err) => {
|
|
28
|
-
|
|
27
|
+
logger.error(`Error shutting down provider: ${err}`);
|
|
29
28
|
})));
|
|
30
|
-
|
|
29
|
+
logger.debug("Python provider shutdown complete");
|
|
31
30
|
};
|
|
32
31
|
process.once("SIGINT", () => void shutdown("SIGINT"));
|
|
33
32
|
process.once("SIGTERM", () => void shutdown("SIGTERM"));
|
|
@@ -35,12 +34,12 @@ var ProviderRegistry = class {
|
|
|
35
34
|
}
|
|
36
35
|
async shutdownAll() {
|
|
37
36
|
const results = await Promise.allSettled(Array.from(this.providers).map((p) => p.shutdown()));
|
|
38
|
-
for (const result of results) if (result.status === "rejected")
|
|
37
|
+
for (const result of results) if (result.status === "rejected") logger.warn(`Error shutting down provider: ${result.reason}`);
|
|
39
38
|
this.providers.clear();
|
|
40
39
|
}
|
|
41
40
|
};
|
|
42
41
|
const providerRegistry = new ProviderRegistry();
|
|
43
|
-
|
|
44
42
|
//#endregion
|
|
45
43
|
export { providerRegistry as t };
|
|
46
|
-
|
|
44
|
+
|
|
45
|
+
//# sourceMappingURL=providerRegistry-CD8MEar9.js.map
|