promptfoo 0.121.3 → 0.121.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/src/{ListApp-Du7YVwj5.js → ListApp-BRUsT43Y.js} +1 -1
- package/dist/src/{accounts-BPyfpSeU.cjs → accounts-BIFntVWB.cjs} +5 -5
- package/dist/src/{accounts-CFLK3mnD.js → accounts-CLJHCDDb.js} +6 -6
- package/dist/src/{accounts-B2XmGjty.js → accounts-CaLNYnf7.js} +5 -5
- package/dist/src/{accounts-Xatc0RYb.js → accounts-bnyHT7Ju.js} +5 -5
- package/dist/src/{agentic-utils-36epdqwB.js → agentic-utils-B5krlibj.js} +3 -3
- package/dist/src/{agentic-utils-DIYAAYE7.js → agentic-utils-Ba67xmgs.js} +3 -3
- package/dist/src/{agentic-utils-D8yXo5Lm.js → agentic-utils-BclbiXiq.js} +4 -4
- package/dist/src/{agentic-utils-DAVsChuB.cjs → agentic-utils-D2x0wGhB.cjs} +3 -3
- package/dist/src/{agents-CLQ-P15P.js → agents-BGqaTDnr.js} +5 -7
- package/dist/src/{agents-wg3ohknq.js → agents-BV9yFpXX.js} +6 -7
- package/dist/src/{agents-CgBniSlI.js → agents-BYdMl1UE.js} +5 -9
- package/dist/src/{agents-Bqgfdokm.js → agents-DhxWMCtH.js} +35 -14
- package/dist/src/{agents-BBWxKSM0.cjs → agents-DiWmQYH9.cjs} +5 -7
- package/dist/src/{agents-CAYbM7qD.cjs → agents-WULPVjbH.cjs} +34 -12
- package/dist/src/{agents-DSSTV4bv.js → agents-emVcx3yh.js} +35 -13
- package/dist/src/{agents-BBVJCIYr.js → agents-n6vPqV3i.js} +35 -13
- package/dist/src/{aimlapi-BwGC1TtS.js → aimlapi-BxqK9HF_.js} +8 -14
- package/dist/src/{aimlapi-Bv8Fmc-b.cjs → aimlapi-BzLjZI_m.cjs} +8 -15
- package/dist/src/{aimlapi-MgSLdvy7.js → aimlapi-DR4pgeiC.js} +7 -14
- package/dist/src/{aimlapi-DaC3qZ-o.js → aimlapi-uPGp0Zdo.js} +7 -16
- package/dist/src/app/app/tsconfig.app.tsbuildinfo +1 -0
- package/dist/src/app/assets/Report-vjzrbgce.js +1 -0
- package/dist/src/app/assets/index-B3NQ8HTd.js +385 -0
- package/dist/src/app/assets/index-Cli2yAXv.css +1 -0
- package/dist/src/app/assets/rolldown-runtime-COnpUsM8.js +1 -0
- package/dist/src/app/assets/scroll-timeline-D9IT_e8Z.js +1 -0
- package/dist/src/app/assets/sync-IjzpWrOE.js +4 -0
- package/dist/src/app/assets/vendor-charts-BNdH8TCw.js +36 -0
- package/dist/src/app/assets/vendor-markdown-Ch00wnNI.js +29 -0
- package/dist/src/app/assets/vendor-react-CVvmk1UB.js +9 -0
- package/dist/src/app/assets/vendor-utils-BnEYbx2Q.js +37 -0
- package/dist/src/app/index.html +32 -7
- package/dist/src/{audio-Bn44pQxv.js → audio-BvpTOArF.js} +4 -4
- package/dist/src/{audio-DVFjQ67_.cjs → audio-C0vDeS0j.cjs} +4 -4
- package/dist/src/{audio-DjU9GswO.js → audio-CScmnmEB.js} +4 -5
- package/dist/src/{audio-DDA5WHdx.js → audio-Da8U9IS5.js} +4 -4
- package/dist/src/{base-CKjwebIH.js → base-BOMaNEes.js} +3 -3
- package/dist/src/{base-CqzQ4K8j.js → base-BTux96b1.js} +3 -3
- package/dist/src/{base-BboXIF_0.cjs → base-Tw6uhH8K.cjs} +3 -3
- package/dist/src/{base-Cz2ZC_iA.js → base-dYsl2hmL.js} +3 -3
- package/dist/src/{blobs-C6j0bvFz.cjs → blobs-B95F_7vE.cjs} +3 -3
- package/dist/src/{blobs-DXTl6J3H.js → blobs-BW4U31ue.js} +3 -3
- package/dist/src/{blobs-BUWmKWzo.js → blobs-D_gg8nbm.js} +4 -4
- package/dist/src/{blobs-B1JriOyi.js → blobs-DjLby-uP.js} +4 -4
- package/dist/src/cache-BI5BY7ey.js +280 -0
- package/dist/src/cache-BRkhlH3k.cjs +3 -0
- package/dist/src/cache-BlC6aeJ0.js +3 -0
- package/dist/src/cache-Bzttsk0X.js +310 -0
- package/dist/src/cache-Cr-qWIbP.js +310 -0
- package/dist/src/cache-DGg-yTZG.cjs +376 -0
- package/dist/src/{chat-BEwdgGEg.js → chat-BLOdH60v.js} +63 -37
- package/dist/src/{chat-B0iaWhoh.js → chat-Cx_LkwvZ.js} +63 -37
- package/dist/src/{chat-DK1U-eZ-.js → chat-D9nudO9b.js} +5 -14
- package/dist/src/{chat-pxmiVpWe.js → chat-DChSH_Es.js} +63 -37
- package/dist/src/{chat-B-52XYI1.js → chat-DG2LkwLq.js} +3 -13
- package/dist/src/{chat-BtIKkLKx.cjs → chat-DH97tVV9.cjs} +3 -13
- package/dist/src/{chat-BE0qTA8e.js → chat-aMQZw6R7.js} +4 -16
- package/dist/src/{chat-CM8qWR3_.cjs → chat-vYqqv1gP.cjs} +64 -38
- package/dist/src/{chatkit-_8eJqKcD.js → chatkit-B8X34dQc.js} +4 -4
- package/dist/src/{chatkit-BYGQlHlV.js → chatkit-BXu42Qwt.js} +4 -4
- package/dist/src/{chatkit-a2D6mY6s.js → chatkit-CbMRoeYw.js} +4 -4
- package/dist/src/{chatkit-Cx174XI3.cjs → chatkit-D44VyUyB.cjs} +4 -4
- package/dist/src/{claude-agent-sdk-8ddRp1L2.cjs → claude-agent-sdk-BRq0bbIK.cjs} +23 -18
- package/dist/src/{claude-agent-sdk-CMjh4LFH.js → claude-agent-sdk-BjriSVRZ.js} +20 -15
- package/dist/src/{claude-agent-sdk-HgbFioFw.js → claude-agent-sdk-BzNZeZ0N.js} +20 -15
- package/dist/src/{claude-agent-sdk-Bq5EArsX.js → claude-agent-sdk-DYv_AJ8u.js} +21 -17
- package/dist/src/cloud-CoD5OacT.js +3 -0
- package/dist/src/{cloud-z8KZpUoa.js → cloud-Da0bofJd.js} +25 -13
- package/dist/src/{cloudflare-ai-Bbp26N0L.js → cloudflare-ai-CXC4b1EU.js} +5 -14
- package/dist/src/{cloudflare-ai-BGyXlpXJ.js → cloudflare-ai-CyBoIs1Q.js} +7 -15
- package/dist/src/{cloudflare-ai-DdKP9TKT.js → cloudflare-ai-DGOwgexC.js} +6 -17
- package/dist/src/{cloudflare-ai-C62x6MQG.cjs → cloudflare-ai-DJv5qnyb.cjs} +6 -15
- package/dist/src/{cloudflare-gateway-DXhtXDRb.js → cloudflare-gateway-1sAoOyft.js} +6 -16
- package/dist/src/{cloudflare-gateway-D-e9i1Sn.js → cloudflare-gateway-D-dnkzCF.js} +5 -18
- package/dist/src/{cloudflare-gateway-Dx36ftqF.cjs → cloudflare-gateway-DKVjkDav.cjs} +4 -15
- package/dist/src/{cloudflare-gateway-BwAaUgeW.js → cloudflare-gateway-TJkVrZlB.js} +4 -15
- package/dist/src/codex-app-server-CCLjqCh9.js +1915 -0
- package/dist/src/codex-app-server-CCe0TiDc.js +1915 -0
- package/dist/src/codex-app-server-CPW1LFwh.js +1916 -0
- package/dist/src/codex-app-server-VMRnjZ68.cjs +1920 -0
- package/dist/src/codex-sdk-1jm_qPHf.js +3 -0
- package/dist/src/codex-sdk-Bd8UbO9q.cjs +1172 -0
- package/dist/src/codex-sdk-BgEFQ70r.js +1164 -0
- package/dist/src/codex-sdk-Bzb_TqX9.js +1165 -0
- package/dist/src/codex-sdk-Danroptg.cjs +2 -0
- package/dist/src/codex-sdk-DfvDTN33.js +1165 -0
- package/dist/src/{cometapi-BDyV-NNm.js → cometapi-B5ImDlSm.js} +9 -15
- package/dist/src/{cometapi-C3hOlM7-.cjs → cometapi-BgAkuYCw.cjs} +9 -16
- package/dist/src/{cometapi-hhL4TAh3.js → cometapi-CC7hWxmX.js} +8 -15
- package/dist/src/{cometapi-sp7sJpBD.js → cometapi-CCbpHkuF.js} +8 -17
- package/dist/src/{completion-DoYy49ti.js → completion-2iuYVxwi.js} +8 -57
- package/dist/src/{completion-BCimtq-h.js → completion-CrD6MQ93.js} +8 -57
- package/dist/src/{completion-DlXUhj5c.cjs → completion-DtQ72Bm3.cjs} +7 -62
- package/dist/src/{completion-DCjv7RZ3.js → completion-Vq_ad618.js} +8 -57
- package/dist/src/{createHash-CTQmL3G2.js → createHash-4gFQpDDv.js} +3 -3
- package/dist/src/{createHash-Da8fMwqB.js → createHash-DPpsZgFF.js} +3 -3
- package/dist/src/{createHash-DmPQkvBh.js → createHash-Un4Q_huE.js} +3 -3
- package/dist/src/{createHash-BYwImsYv.cjs → createHash-VvBIc-AW.cjs} +4 -4
- package/dist/src/{docker-CxCkwMzc.js → docker--3qzPa-6.js} +6 -14
- package/dist/src/{docker-Cqj2-QVi.cjs → docker-D3AY-5F5.cjs} +7 -15
- package/dist/src/{docker-FeBni2dw.js → docker-DCsCDvwM.js} +7 -14
- package/dist/src/{docker-DpguQj-w.js → docker-Dorv4_Dg.js} +6 -16
- package/dist/src/embedding-BXhN5lCH.cjs +63 -0
- package/dist/src/embedding-ChS1ivFS.js +58 -0
- package/dist/src/embedding-DNRvZwRN.js +59 -0
- package/dist/src/embedding-D_bI4NDq.js +58 -0
- package/dist/src/entrypoint.js +69 -6
- package/dist/src/{errors-P6ll7XSJ.js → errors-DFHe4L-n.js} +1 -1
- package/dist/src/{esm-SUNIX1x3.js → esm-B6whoAcf.js} +15 -6
- package/dist/src/{esm-CKWP3u_P.js → esm-BRkfNsYs.js} +16 -7
- package/dist/src/{esm-7UIl0pPM.js → esm-BX8fwlAO.js} +27 -18
- package/dist/src/{esm-CipptfDu.cjs → esm-B_rGuPTo.cjs} +15 -6
- package/dist/src/eval-BQPLBJbw.js +3 -0
- package/dist/src/{eval-BTqTn7lb.js → eval-DJ_4A-tr.js} +50 -21
- package/dist/src/evalResult-BBJAHAtw.cjs +2 -0
- package/dist/src/evalResult-BBK58h2B.js +3 -0
- package/dist/src/{evalResult-DpARzUCb.cjs → evalResult-Cx-8OWkb.cjs} +29 -11
- package/dist/src/{evalResult-DUDShQrm.js → evalResult-D6P5I5il.js} +29 -11
- package/dist/src/{evalResult-BkIhRdTe.js → evalResult-pSvGWFMo.js} +29 -11
- package/dist/src/evalResult-spPqh1G_.js +2 -0
- package/dist/src/{evaluator-BcvOGaam.js → evaluator-D-UIbbYq.js} +3975 -2152
- package/dist/src/evaluator-DgLKaZk8.js +3 -0
- package/dist/src/{extractor-D_wd8jxt.js → extractor-BM3jRERL.js} +6 -6
- package/dist/src/{extractor-DG3sSfXE.cjs → extractor-Dxr2J_wK.cjs} +6 -6
- package/dist/src/{extractor-CAZ2G3Kh.js → extractor-DxyiFhPk.js} +6 -6
- package/dist/src/{extractor-C8XwivI9.js → extractor-YlZbUMsL.js} +6 -6
- package/dist/src/fetch-8viavNv8.js +3 -0
- package/dist/src/{fetch-DoVRJZhJ.js → fetch-B6ch2nU2.js} +199 -60
- package/dist/src/{fetch-CVAtKnI3.js → fetch-D9xxyC1p.js} +404 -252
- package/dist/src/{fetch-BnR9wSnm.cjs → fetch-NuqXW1Xb.cjs} +415 -263
- package/dist/src/{fetch-BiYv2BZc.js → fetch-Y5qX_kST.js} +222 -70
- package/dist/src/{fileExtensions-LcDYkU4v.js → fileExtensions-8CjoL7vB.js} +1 -1
- package/dist/src/{fileExtensions-DnqA1y9x.js → fileExtensions-BGh-W-HT.js} +1 -1
- package/dist/src/{fileExtensions-bYh77CN8.cjs → fileExtensions-D9h-8Wxg.cjs} +1 -1
- package/dist/src/{fileExtensions-Ds-foDzt.js → fileExtensions-DysCsxNG.js} +1 -1
- package/dist/src/{formatDuration-DgBVMN65.js → formatDuration-Ch4A7G3o.js} +1 -1
- package/dist/src/{genaiTracer-BfxrvSUb.cjs → genaiTracer-BokHC-MW.cjs} +7 -3
- package/dist/src/{genaiTracer-C1rxGO8Q.js → genaiTracer-C3ZPQU60.js} +6 -2
- package/dist/src/{genaiTracer-70Z8BIuV.js → genaiTracer-CFny3gOy.js} +6 -2
- package/dist/src/{genaiTracer-D3fD9dNV.js → genaiTracer-DxODqT9e.js} +6 -2
- package/dist/src/golang/wrapper.go +1 -1
- package/dist/src/{graders-DG7mhg-b.js → graders-BoUqsCEm.js} +7402 -5699
- package/dist/src/{graders-BElhu9ZY.cjs → graders-Bw1wk_21.cjs} +5220 -3437
- package/dist/src/graders-C84JI-m5.js +2 -0
- package/dist/src/graders-CBbd0K0Q.cjs +2 -0
- package/dist/src/graders-CbQqpHSN.js +3 -0
- package/dist/src/{graders-RjHF8VfG.js → graders-CgPn32yp.js} +7400 -5697
- package/dist/src/{graders-BXAJ0sbS.js → graders-CwrbifOo.js} +6136 -4433
- package/dist/src/graders-DS42d3ZG.js +2 -0
- package/dist/src/{image-6WQXK8m8.js → image-BeWaInPF.js} +4 -4
- package/dist/src/{image-PoF6DN3x.js → image-BmilRNqO.js} +8 -8
- package/dist/src/{image--F58eEIn.cjs → image-CxJoa3aW.cjs} +8 -8
- package/dist/src/{image-fza3zuKs.cjs → image-D10dNAav.cjs} +4 -4
- package/dist/src/{image-DO0RYnjH.js → image-Dr_3I3nK.js} +4 -5
- package/dist/src/{image-B8b6f36E.js → image-DsGRlkh7.js} +8 -8
- package/dist/src/{image-CoxZp9PZ.js → image-a_SGUobh.js} +8 -8
- package/dist/src/{image-xNbw5ph2.js → image-qjO6FWPs.js} +4 -4
- package/dist/src/index.cjs +4835 -2582
- package/dist/src/index.d.cts +2782 -31
- package/dist/src/index.d.ts +2783 -32
- package/dist/src/index.js +4817 -2564
- package/dist/src/{interactiveCheck-BnMYOjMu.js → interactiveCheck-CCICw2cy.js} +2 -2
- package/dist/src/{invariant-BtWWVVhl.js → invariant-B2Rf6avk.js} +1 -1
- package/dist/src/{invariant-vgHWClmd.js → invariant-DIYf9sP1.js} +1 -1
- package/dist/src/{knowledgeBase-Bi7CmDbx.js → knowledgeBase-BBETc5-S.js} +6 -8
- package/dist/src/{knowledgeBase-DqrLX8fy.cjs → knowledgeBase-C8qOo26M.cjs} +6 -8
- package/dist/src/{knowledgeBase-DFRXPZl_.js → knowledgeBase-CzAi2rUI.js} +7 -8
- package/dist/src/{knowledgeBase-Ce3ofVan.js → knowledgeBase-Dr3Kib7F.js} +6 -10
- package/dist/src/{litellm-CKiAxnoM.js → litellm-BLSiANhk.js} +6 -14
- package/dist/src/{litellm-CnHI69aj.cjs → litellm-CaUmV7Mk.cjs} +6 -15
- package/dist/src/{litellm-Tc294Jhj.js → litellm-DQGo_juI.js} +5 -14
- package/dist/src/{litellm-Bo2gQXpo.js → litellm-DRc4qWfc.js} +5 -16
- package/dist/src/{logger-BcJBzSSA.js → logger-BbY6ypFL.js} +41 -12
- package/dist/src/{logger-D5iKBpu_.cjs → logger-COuQb2xB.cjs} +51 -10
- package/dist/src/{logger-DO8_zM18.js → logger-Ct2S6Yx-.js} +40 -11
- package/dist/src/{logger-BnkjG2jt.js → logger-KD8JjCRJ.js} +41 -12
- package/dist/src/{luma-ray-C9q8rdQe.js → luma-ray-B-tNZzqW.js} +6 -10
- package/dist/src/{luma-ray-DP0QA9qn.js → luma-ray-CtS3OlGq.js} +6 -10
- package/dist/src/{luma-ray-0ehMPt5N.js → luma-ray-PJJgUjOc.js} +6 -11
- package/dist/src/{luma-ray-m9Ku2meV.cjs → luma-ray-if-Ml4R9.cjs} +6 -10
- package/dist/src/main.d.ts +1 -26
- package/dist/src/main.js +1188 -679
- package/dist/src/messages-B9dSjrNf.js +544 -0
- package/dist/src/messages-BnsVHUnm.cjs +558 -0
- package/dist/src/messages-CI69Lasb.js +543 -0
- package/dist/src/messages-CewuNcNS.js +543 -0
- package/dist/src/{meteor-DLZZ3osF.cjs → meteor-BBGcGeCa.cjs} +1 -1
- package/dist/src/{meteor-DUiCJRC-.js → meteor-BKTM-7KS.js} +1 -1
- package/dist/src/{meteor-44VjEACX.js → meteor-CeGo0Lu2.js} +2 -2
- package/dist/src/{meteor-D-SotUw9.js → meteor-Wc_aUVvu.js} +2 -2
- package/dist/src/{modelslab-B5J-ZM5c.js → modelslab-BCLOtfek.js} +8 -10
- package/dist/src/{modelslab-IQbNg-r7.cjs → modelslab-BkapYJhh.cjs} +7 -10
- package/dist/src/{modelslab-BTOT8FUO.js → modelslab-D73OnKSx.js} +7 -10
- package/dist/src/{modelslab-BI458moT.js → modelslab-zpz9JcK0.js} +7 -12
- package/dist/src/{nova-reel-BZ9y-Y5s.js → nova-reel-B8F_TK5w.js} +7 -10
- package/dist/src/{nova-reel-Xw1SXLpg.js → nova-reel-Bx0NFV2f.js} +6 -10
- package/dist/src/{nova-reel-DEeQlnOJ.js → nova-reel-CNGJTLtG.js} +6 -12
- package/dist/src/{nova-reel-CE5etkv9.cjs → nova-reel-DkT7tnoB.cjs} +6 -10
- package/dist/src/{nova-sonic-Ogqf-csn.js → nova-sonic-BaXRN1cr.js} +5 -7
- package/dist/src/{nova-sonic-DXTLpi-r.js → nova-sonic-BeTRaFOh.js} +4 -7
- package/dist/src/{nova-sonic-DWswpN1E.js → nova-sonic-CL7Zqv0G.js} +4 -9
- package/dist/src/{nova-sonic-N0yCm0vb.cjs → nova-sonic-YT426juD.cjs} +4 -7
- package/dist/src/{openai-BcB5KlTk.js → openai-BMHD2Huo.js} +6 -3
- package/dist/src/{openai-BMcwgD5C.js → openai-BT-JvDse.js} +6 -3
- package/dist/src/{openai-CoxGAQwn.cjs → openai-Cy1XLs0c.cjs} +6 -3
- package/dist/src/{openai-D6wITiVn.js → openai-D4fxGvRx.js} +6 -3
- package/dist/src/openclaw-Bq7RVR3k.js +1200 -0
- package/dist/src/openclaw-DA8U4DsD.js +1201 -0
- package/dist/src/openclaw-DObVgpjC.js +1200 -0
- package/dist/src/openclaw-DUBZP3GL.cjs +1206 -0
- package/dist/src/{opencode-sdk-CHCs7dEb.js → opencode-sdk-BB40Wir1.js} +6 -8
- package/dist/src/{opencode-sdk-DDxj4QqH.js → opencode-sdk-BM1UAIv1.js} +6 -8
- package/dist/src/{opencode-sdk-WWJhnbKr.cjs → opencode-sdk-CeqiOcOU.cjs} +7 -9
- package/dist/src/{opencode-sdk-C71Z0ehR.js → opencode-sdk-ChdK7F7z.js} +6 -9
- package/dist/src/{otlpReceiver-CZL48YfC.js → otlpReceiver-C6thJRXi.js} +154 -98
- package/dist/src/{otlpReceiver-C9KlUtxh.js → otlpReceiver-CcdIikOu.js} +154 -98
- package/dist/src/{otlpReceiver-DHKqJlsz.cjs → otlpReceiver-DNSQj6bf.cjs} +154 -98
- package/dist/src/{otlpReceiver-CavGAA6k.js → otlpReceiver-UYMQx3sy.js} +154 -98
- package/dist/src/{providerRegistry-BkzVH5Ba.js → providerRegistry-1gB5vtzQ.js} +2 -2
- package/dist/src/{providerRegistry-BTDgfV5h.cjs → providerRegistry-BESeALrr.cjs} +2 -2
- package/dist/src/{providerRegistry-CUWki5mQ.js → providerRegistry-DoACwqhD.js} +2 -2
- package/dist/src/{providerRegistry-B9lh-_tx.js → providerRegistry-PMsleEzs.js} +2 -2
- package/dist/src/providers-BuyzKt7C.js +2 -0
- package/dist/src/providers-C7lNVBjX.cjs +3 -0
- package/dist/src/providers-CCE2COJi2.js +2 -0
- package/dist/src/{providers-Cn73d5sr.js → providers-CJh7iriU.js} +17180 -16823
- package/dist/src/providers-Ctcc592x.js +3 -0
- package/dist/src/{providers-DvddrgxL.js → providers-DRrerKra.js} +1052 -695
- package/dist/src/{providers-Ch6Mr0gn.js → providers-DT-GtF2t.js} +16716 -16359
- package/dist/src/{providers-CScd1wN6.cjs → providers-eDShy16E.cjs} +19893 -19506
- package/dist/src/python/persistent_wrapper.py +0 -5
- package/dist/src/{pythonUtils-Cpo0Ez1p.js → pythonUtils-C4tltmIn.js} +4 -4
- package/dist/src/{pythonUtils-dAVigVK-.cjs → pythonUtils-CoLaCwNY.cjs} +4 -4
- package/dist/src/{pythonUtils-Bzwbgpbg.js → pythonUtils-DMO68Jg7.js} +3 -3
- package/dist/src/{pythonUtils-wIqk7zAf.js → pythonUtils-DNqbnRdx.js} +3 -3
- package/dist/src/{quiverai-BeofbLVc.js → quiverai-BSS9a7wV.js} +4 -4
- package/dist/src/{quiverai-DVSEqJiq.js → quiverai-Bk1KrvL6.js} +4 -4
- package/dist/src/{quiverai-CcUhPIBg.cjs → quiverai-Bpx6MZ7T.cjs} +4 -4
- package/dist/src/{quiverai-CCQn73lq.js → quiverai-CPKhWgaT.js} +4 -5
- package/dist/src/render-7uNJ2V14.js +135 -0
- package/dist/src/render-DlscvAUJ.js +135 -0
- package/dist/src/render-eui5p5mL.js +136 -0
- package/dist/src/{render-BHl6QVq9.js → render-nj-UaPdn.js} +2 -3
- package/dist/src/render-tG6ir9_g.cjs +165 -0
- package/dist/src/{responses-CgNyTPsY.js → responses-1ztiVYsx.js} +56 -17
- package/dist/src/{responses-BKP_WYis.js → responses-B8haB-mD.js} +56 -17
- package/dist/src/{responses-CQb1Tj69.js → responses-BiaBguAu.js} +56 -17
- package/dist/src/{responses-mo0KQDbu.cjs → responses-CF-ayauu.cjs} +56 -17
- package/dist/src/rubyUtils-4hjGxvju.js +3 -0
- package/dist/src/{rubyUtils-DECSbsfY.js → rubyUtils-BI0p46eZ.js} +3 -3
- package/dist/src/{rubyUtils-CiVfln3g.js → rubyUtils-CIQFnVz4.js} +3 -3
- package/dist/src/rubyUtils-CO-tuszQ.cjs +2 -0
- package/dist/src/{rubyUtils-PgU-gHmx.js → rubyUtils-DGnoCYL2.js} +4 -4
- package/dist/src/{rubyUtils-CGeUtCfW.cjs → rubyUtils-DoifqkiA.cjs} +5 -4
- package/dist/src/{sagemaker-CqeASYE5.js → sagemaker-BDLeW29y.js} +14 -18
- package/dist/src/{sagemaker-MUbD5V3v.js → sagemaker-C5T60MKf.js} +14 -19
- package/dist/src/{sagemaker-CVv8W7so.js → sagemaker-ClS_NB07.js} +14 -18
- package/dist/src/{sagemaker-jiw1wQa-.cjs → sagemaker-ljtY12VM.cjs} +14 -18
- package/dist/src/{scanner-DVDeUz1r.js → scanner-nOCWNIXa.js} +130 -35
- package/dist/src/server/golang/wrapper.go +1 -1
- package/dist/src/server/index.js +4829 -2529
- package/dist/src/server/python/persistent_wrapper.py +0 -5
- package/dist/src/{server-BtoCXeXI.cjs → server-BEECpeGG.cjs} +140 -6
- package/dist/src/{server-DZ9MtCn0.js → server-ByiF3qlg.js} +129 -9
- package/dist/src/{server-Cns05F1j.js → server-ByxbqAcQ.js} +128 -8
- package/dist/src/server-C0XKRNB_.cjs +2 -0
- package/dist/src/server-C_15p79-.js +3 -0
- package/dist/src/{server-CP9qKM40.js → server-gyd6d4Hc.js} +126 -7
- package/dist/src/{signal-C3ZTsUgi.js → signal-DTtUuU3l.js} +3 -3
- package/dist/src/{slack-DCEV-vWP.js → slack-4zZX1OKP.js} +2 -2
- package/dist/src/{slack-94iG3T0s.cjs → slack-BLlsDpfG.cjs} +2 -2
- package/dist/src/{slack-BR0HtO3K.js → slack-BPYLQLgb.js} +2 -2
- package/dist/src/{slack-2sdpGzbt.js → slack-Bamy_7te.js} +2 -2
- package/dist/src/{store-CLyU7AtI.cjs → store-2K0kDi80.cjs} +3 -3
- package/dist/src/{store-VB0GP46K.js → store-2OXm_eBY.js} +3 -3
- package/dist/src/store-BELqNwvz.js +3 -0
- package/dist/src/{store-Cj258DgL.js → store-BPkzEyFM.js} +3 -3
- package/dist/src/{store-P8OKm19S.js → store-CPh25336.js} +3 -3
- package/dist/src/store-uQZ4AjPe.cjs +2 -0
- package/dist/src/{tables-BEIFz2tM.js → tables-BMSOS2Gg.js} +3 -3
- package/dist/src/{tables-BdZQEpRz.cjs → tables-CXbaZ9y1.cjs} +3 -3
- package/dist/src/{tables-DmzvLbeZ.js → tables-NlvH23ky.js} +3 -3
- package/dist/src/{tables-kC7R5kiK.js → tables-WgdUZ8Ck.js} +3 -3
- package/dist/src/{telemetry-DPXLd7UE.js → telemetry--iqaGyaS.js} +5 -4
- package/dist/src/{telemetry-re627Lre.cjs → telemetry-CEQxGnMZ.cjs} +8 -7
- package/dist/src/{telemetry-BugWqKiu.js → telemetry-CgdVGV8N.js} +5 -4
- package/dist/src/{telemetry-BnH5VJAU.js → telemetry-DWdGHvEf.js} +5 -4
- package/dist/src/telemetry-DjNoC_n3.cjs +2 -0
- package/dist/src/telemetry-ZdPZc0fm.js +3 -0
- package/dist/src/{text-CW1cyrwj.cjs → text-BiNME7QG.cjs} +1 -1
- package/dist/src/{text-Db-Wt2u2.js → text-D4lz-Jg_.js} +1 -1
- package/dist/src/{text-TIv0QYnd.js → text-DDQP0tuQ.js} +1 -1
- package/dist/src/{text-B_UCRPp2.js → text-NWvfMfkF.js} +1 -1
- package/dist/src/{tokenUsageUtils-DflFMjS0.js → tokenUsageUtils-2wIvAhB3.js} +7 -3
- package/dist/src/{tokenUsageUtils-BDGe-iyI.js → tokenUsageUtils-4c780gFd.js} +7 -3
- package/dist/src/{tokenUsageUtils-NYT-WKS6.js → tokenUsageUtils-BjVkdk18.js} +7 -3
- package/dist/src/{tokenUsageUtils-bVa1ga6f.cjs → tokenUsageUtils-C9odhsbW.cjs} +7 -3
- package/dist/src/{transcription-CaMivnjG.js → transcription-84t4ALo2.js} +7 -11
- package/dist/src/{transcription-Hb3VnC4M.js → transcription-Bm2emLmJ.js} +8 -11
- package/dist/src/{transcription-BvtsrzRG.cjs → transcription-CZ4LG5hQ.cjs} +9 -13
- package/dist/src/{transcription-DOMMTu01.js → transcription-D7Q0vJsh.js} +7 -13
- package/dist/src/{transform-DrleutM3.js → transform-B-b6Cq-q.js} +8 -6
- package/dist/src/transform-BQt0BeAW.js +3 -0
- package/dist/src/transform-Bq5oqC0s.cjs +2 -0
- package/dist/src/{transform-ZrG2dvlo.cjs → transform-C9izGX54.cjs} +5 -5
- package/dist/src/{transform-BzK09Q_9.js → transform-CwbAZ84V.js} +5 -5
- package/dist/src/{transform-0BwoBsvO.cjs → transform-Dg4LcO1Y.cjs} +18 -10
- package/dist/src/{transform-B2-jIv68.js → transform-DtooZqYY.js} +8 -6
- package/dist/src/{transform-ljLYHEPh.js → transform-DzCF-wqV.js} +5 -5
- package/dist/src/{transform-DyDAwEpE.js → transform-_DpNB4qp.js} +9 -7
- package/dist/src/{transform-BqPkNPYm.js → transform-eGiUAv86.js} +5 -5
- package/dist/src/{transformersAvailability-DKoRtQLy.cjs → transformersAvailability-B22swDxr.cjs} +1 -1
- package/dist/src/{transformersAvailability-BGkzavwb.js → transformersAvailability-lvCCvuPT.js} +1 -1
- package/dist/src/{transformersAvailability-D6c6ROpT.js → transformersAvailability-rJGPccjr.js} +1 -1
- package/dist/src/{types-Cd3ygw8W.js → types-BDjGOq4E.js} +354 -24
- package/dist/src/{types-CIhFeUC4.js → types-BVH9hjgW.js} +364 -23
- package/dist/src/{types-D8cGDZbL.cjs → types-CgG2rKiW.cjs} +534 -167
- package/dist/src/{types-q8GXGF65.js → types-DNRZVOue.js} +498 -167
- package/dist/src/{util-BLvy9qfE.js → util-3pBZZb_H.js} +151 -149
- package/dist/src/{util-CFj4YKIn.cjs → util-A5_ZsQUn.cjs} +66 -44
- package/dist/src/{util-BtoGs5Cb.js → util-B9CNhyac.js} +66 -44
- package/dist/src/{util-Bm3E9jpK.js → util-BQOCAHQC.js} +692 -690
- package/dist/src/{util-vNmDL5DT.js → util-BVXcTwXu.js} +138 -36
- package/dist/src/{util-CgDCK4KI.js → util-BlFVL0UF.js} +66 -44
- package/dist/src/{util-DM2rTn_6.js → util-C-kmRosx.js} +66 -44
- package/dist/src/{util-DbVG-yZU.js → util-DFPeFkiV.js} +138 -36
- package/dist/src/{util-DMFeUvLz.js → util-DN0-b81k.js} +138 -36
- package/dist/src/{util--9u9UVCt.cjs → util-Dpmm_dAI.cjs} +143 -35
- package/dist/src/{util-CMMkIxfU.js → util-Dub0f_ej.js} +693 -691
- package/dist/src/{util-CuLo2pMR.cjs → util-DvpHnLt0.cjs} +714 -719
- package/dist/src/{utils-DOjD4dTC.js → utils-BUMN8orw.js} +6 -4
- package/dist/src/{utils-DKw8mrgr.cjs → utils-DkVeShIB.cjs} +6 -4
- package/dist/src/{utils-DEuL4VNB.js → utils-kt7lv30R.js} +6 -4
- package/dist/src/{utils-CFxO9KGo.js → utils-o8S5huU2.js} +6 -4
- package/dist/src/version-0frU0UTr.js +16 -0
- package/dist/src/version-CbpiUINz.js +17 -0
- package/dist/src/version-CbuBKu2U.js +16 -0
- package/dist/src/version-D9zu9FWB.cjs +27 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +57 -46
- package/dist/src/app/assets/index-B6l9CVVb.js +0 -439
- package/dist/src/app/assets/index-DyZ0Ep37.css +0 -1
- package/dist/src/app/assets/scroll-timeline-BdJZVXlz.js +0 -1
- package/dist/src/app/assets/sync-CStkzc6u.js +0 -4
- package/dist/src/app/assets/vendor-charts-BnDWwBlI.js +0 -36
- package/dist/src/app/assets/vendor-markdown-Bz7N-ca6.js +0 -29
- package/dist/src/app/assets/vendor-react-AtKqiNEf.js +0 -4
- package/dist/src/app/assets/vendor-syntax-D06x6TQF.js +0 -2
- package/dist/src/app/assets/vendor-utils-BvMHZmO7.js +0 -37
- package/dist/src/cache-C5yFZ4gC.cjs +0 -816
- package/dist/src/cache-CaT5tPgo.js +0 -756
- package/dist/src/cache-CyCanoMu.js +0 -6
- package/dist/src/cache-DSqR6ezl.js +0 -726
- package/dist/src/cache-Df_QFDNu.cjs +0 -5
- package/dist/src/cache-HP0NP4k3.js +0 -756
- package/dist/src/cloud-DE3t1-ZI.js +0 -4
- package/dist/src/codex-sdk-BQEw16R_.js +0 -834
- package/dist/src/codex-sdk-C_07GuVS.js +0 -834
- package/dist/src/codex-sdk-DE5G18dx.js +0 -835
- package/dist/src/codex-sdk-ZLKfDjqP.cjs +0 -838
- package/dist/src/eval-7aEqoMs3.js +0 -15
- package/dist/src/evalResult-CYNHkk5A.js +0 -12
- package/dist/src/evalResult-CuvJeNiM.js +0 -10
- package/dist/src/evalResult-tGdilrWt.cjs +0 -10
- package/dist/src/evaluator-BBUqRhz1.js +0 -36
- package/dist/src/fetch-UWU706qb.js +0 -5
- package/dist/src/graders-BxfEguVY.js +0 -32
- package/dist/src/graders-CzVMbEnv.js +0 -34
- package/dist/src/graders-DjCXfj0l.cjs +0 -32
- package/dist/src/graders-kHzIWOKu.js +0 -32
- package/dist/src/messages-DJNo37Ko.js +0 -246
- package/dist/src/messages-Dy9QecMs.js +0 -245
- package/dist/src/messages-HJsyEh4o.cjs +0 -257
- package/dist/src/messages-biC_ex-p.js +0 -245
- package/dist/src/openclaw-0Sv7AK3O.js +0 -580
- package/dist/src/openclaw-CXxbKgDH.cjs +0 -586
- package/dist/src/openclaw-D1FSCps-.js +0 -580
- package/dist/src/openclaw-D2ENvu7a.js +0 -582
- package/dist/src/providers-BSLEaIQG.js +0 -32
- package/dist/src/providers-D-FnDg8k.cjs +0 -31
- package/dist/src/providers-DEYiFVAo.js +0 -30
- package/dist/src/providers-sS2WI8YD.js +0 -30
- package/dist/src/rubyUtils-B1HXG4ej.cjs +0 -4
- package/dist/src/rubyUtils-Rt6pKA96.js +0 -5
- package/dist/src/server-B0Xh1Gx-.js +0 -7
- package/dist/src/server-DJTKu9IR.cjs +0 -5
- package/dist/src/store-C5u6MgC8.js +0 -6
- package/dist/src/store-CNHk-De4.cjs +0 -5
- package/dist/src/telemetry-Yig0Tino.js +0 -7
- package/dist/src/telemetry-p8Pwqm1i.cjs +0 -5
- package/dist/src/transform-ChNIpHz7.js +0 -6
- package/dist/src/transform-PtQ6rAE3.cjs +0 -5
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "./
|
|
3
|
-
import { r as
|
|
4
|
-
import "./cache-HP0NP4k3.js";
|
|
5
|
-
import { i as initializeAgenticCache, n as generateCacheKey, r as getCachedResponse, t as cacheResponse } from "./agentic-utils-DIYAAYE7.js";
|
|
1
|
+
import { T as getEnvString, a as logger, k as state, t as getLogLevel } from "./logger-KD8JjCRJ.js";
|
|
2
|
+
import { r as importModule } from "./esm-B6whoAcf.js";
|
|
3
|
+
import { i as initializeAgenticCache, n as generateCacheKey, r as getCachedResponse, t as cacheResponse } from "./agentic-utils-BclbiXiq.js";
|
|
6
4
|
import { createRequire } from "node:module";
|
|
7
5
|
import fs from "fs";
|
|
8
6
|
import path from "path";
|
|
@@ -49,8 +47,8 @@ function resolveEsmPackage(packageName, exportPath, basePath) {
|
|
|
49
47
|
return path.join(packageDir, esmEntry);
|
|
50
48
|
}
|
|
51
49
|
function unwrapOpenCodeResult(result) {
|
|
52
|
-
if (
|
|
53
|
-
if (typeof result === "object" &&
|
|
50
|
+
if (result === void 0 || result === null) return;
|
|
51
|
+
if (typeof result === "object" && "data" in result) return result.data;
|
|
54
52
|
return result;
|
|
55
53
|
}
|
|
56
54
|
function getSessionPath(sessionId) {
|
|
@@ -557,4 +555,4 @@ var OpenCodeSDKProvider = class {
|
|
|
557
555
|
//#endregion
|
|
558
556
|
export { OpenCodeSDKProvider };
|
|
559
557
|
|
|
560
|
-
//# sourceMappingURL=opencode-sdk-
|
|
558
|
+
//# sourceMappingURL=opencode-sdk-BB40Wir1.js.map
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { r as importModule } from "./esm-
|
|
3
|
-
import "./
|
|
4
|
-
import "./cache-CaT5tPgo.js";
|
|
5
|
-
import { i as initializeAgenticCache, n as generateCacheKey, r as getCachedResponse, t as cacheResponse } from "./agentic-utils-D8yXo5Lm.js";
|
|
1
|
+
import { T as getEnvString, a as logger, k as state, t as getLogLevel } from "./logger-Ct2S6Yx-.js";
|
|
2
|
+
import { r as importModule } from "./esm-BRkfNsYs.js";
|
|
3
|
+
import { i as initializeAgenticCache, n as generateCacheKey, r as getCachedResponse, t as cacheResponse } from "./agentic-utils-Ba67xmgs.js";
|
|
6
4
|
import { createRequire } from "node:module";
|
|
7
5
|
import fs from "fs";
|
|
8
6
|
import path from "path";
|
|
@@ -49,8 +47,8 @@ function resolveEsmPackage(packageName, exportPath, basePath) {
|
|
|
49
47
|
return path.join(packageDir, esmEntry);
|
|
50
48
|
}
|
|
51
49
|
function unwrapOpenCodeResult(result) {
|
|
52
|
-
if (
|
|
53
|
-
if (typeof result === "object" &&
|
|
50
|
+
if (result === void 0 || result === null) return;
|
|
51
|
+
if (typeof result === "object" && "data" in result) return result.data;
|
|
54
52
|
return result;
|
|
55
53
|
}
|
|
56
54
|
function getSessionPath(sessionId) {
|
|
@@ -557,4 +555,4 @@ var OpenCodeSDKProvider = class {
|
|
|
557
555
|
//#endregion
|
|
558
556
|
export { OpenCodeSDKProvider };
|
|
559
557
|
|
|
560
|
-
//# sourceMappingURL=opencode-sdk-
|
|
558
|
+
//# sourceMappingURL=opencode-sdk-BM1UAIv1.js.map
|
|
@@ -1,17 +1,15 @@
|
|
|
1
|
-
const require_logger = require("./logger-
|
|
2
|
-
const require_esm = require("./esm-
|
|
3
|
-
require("./
|
|
4
|
-
require("./cache-C5yFZ4gC.cjs");
|
|
5
|
-
const require_agentic_utils = require("./agentic-utils-DAVsChuB.cjs");
|
|
1
|
+
const require_logger = require("./logger-COuQb2xB.cjs");
|
|
2
|
+
const require_esm = require("./esm-B_rGuPTo.cjs");
|
|
3
|
+
const require_agentic_utils = require("./agentic-utils-D2x0wGhB.cjs");
|
|
6
4
|
let fs = require("fs");
|
|
7
5
|
fs = require_logger.__toESM(fs);
|
|
8
6
|
let path = require("path");
|
|
9
7
|
path = require_logger.__toESM(path);
|
|
10
|
-
let node_module = require("node:module");
|
|
11
8
|
let os = require("os");
|
|
12
9
|
os = require_logger.__toESM(os);
|
|
13
10
|
let dedent = require("dedent");
|
|
14
11
|
dedent = require_logger.__toESM(dedent);
|
|
12
|
+
let node_module = require("node:module");
|
|
15
13
|
//#region src/providers/opencode-sdk.ts
|
|
16
14
|
/**
|
|
17
15
|
* Check if promptfoo is in debug mode
|
|
@@ -53,8 +51,8 @@ function resolveEsmPackage(packageName, exportPath, basePath) {
|
|
|
53
51
|
return path.default.join(packageDir, esmEntry);
|
|
54
52
|
}
|
|
55
53
|
function unwrapOpenCodeResult(result) {
|
|
56
|
-
if (
|
|
57
|
-
if (typeof result === "object" &&
|
|
54
|
+
if (result === void 0 || result === null) return;
|
|
55
|
+
if (typeof result === "object" && "data" in result) return result.data;
|
|
58
56
|
return result;
|
|
59
57
|
}
|
|
60
58
|
function getSessionPath(sessionId) {
|
|
@@ -561,4 +559,4 @@ var OpenCodeSDKProvider = class {
|
|
|
561
559
|
//#endregion
|
|
562
560
|
exports.OpenCodeSDKProvider = OpenCodeSDKProvider;
|
|
563
561
|
|
|
564
|
-
//# sourceMappingURL=opencode-sdk-
|
|
562
|
+
//# sourceMappingURL=opencode-sdk-CeqiOcOU.cjs.map
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
import "./
|
|
4
|
-
import "./
|
|
5
|
-
import "./cache-DSqR6ezl.js";
|
|
6
|
-
import { r as importModule } from "./esm-7UIl0pPM.js";
|
|
7
|
-
import { i as initializeAgenticCache, n as generateCacheKey, r as getCachedResponse, t as cacheResponse } from "./agentic-utils-36epdqwB.js";
|
|
2
|
+
import { N as state, O as getEnvString, n as getLogLevel, s as logger } from "./logger-BbY6ypFL.js";
|
|
3
|
+
import { r as importModule } from "./esm-BX8fwlAO.js";
|
|
4
|
+
import { i as initializeAgenticCache, n as generateCacheKey, r as getCachedResponse, t as cacheResponse } from "./agentic-utils-B5krlibj.js";
|
|
8
5
|
import { createRequire } from "node:module";
|
|
9
6
|
import fs from "fs";
|
|
10
7
|
import path from "path";
|
|
@@ -51,8 +48,8 @@ function resolveEsmPackage(packageName, exportPath, basePath) {
|
|
|
51
48
|
return path.join(packageDir, esmEntry);
|
|
52
49
|
}
|
|
53
50
|
function unwrapOpenCodeResult(result) {
|
|
54
|
-
if (
|
|
55
|
-
if (typeof result === "object" &&
|
|
51
|
+
if (result === void 0 || result === null) return;
|
|
52
|
+
if (typeof result === "object" && "data" in result) return result.data;
|
|
56
53
|
return result;
|
|
57
54
|
}
|
|
58
55
|
function getSessionPath(sessionId) {
|
|
@@ -559,4 +556,4 @@ var OpenCodeSDKProvider = class {
|
|
|
559
556
|
//#endregion
|
|
560
557
|
export { OpenCodeSDKProvider };
|
|
561
558
|
|
|
562
|
-
//# sourceMappingURL=opencode-sdk-
|
|
559
|
+
//# sourceMappingURL=opencode-sdk-ChdK7F7z.js.map
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { a as logger } from "./logger-
|
|
2
|
-
import { t as getDirectory } from "./esm-
|
|
3
|
-
import "./
|
|
4
|
-
import "./tables-kC7R5kiK.js";
|
|
5
|
-
import { t as getTraceStore } from "./store-Cj258DgL.js";
|
|
1
|
+
import { a as logger } from "./logger-KD8JjCRJ.js";
|
|
2
|
+
import { t as getDirectory } from "./esm-B6whoAcf.js";
|
|
3
|
+
import { t as getTraceStore } from "./store-2OXm_eBY.js";
|
|
6
4
|
import path from "path";
|
|
7
5
|
import express from "express";
|
|
8
6
|
import protobuf from "protobufjs";
|
|
@@ -92,28 +90,57 @@ const SPAN_KIND_MAP = {
|
|
|
92
90
|
4: "producer",
|
|
93
91
|
5: "consumer"
|
|
94
92
|
};
|
|
93
|
+
const DEFAULT_ACCEPT_FORMATS = ["json", "protobuf"];
|
|
94
|
+
const OTLP_CONTENT_TYPES = {
|
|
95
|
+
json: "application/json",
|
|
96
|
+
protobuf: "application/x-protobuf"
|
|
97
|
+
};
|
|
98
|
+
function normalizeAcceptFormats(acceptFormats) {
|
|
99
|
+
const normalized = [...new Set(acceptFormats ?? DEFAULT_ACCEPT_FORMATS)];
|
|
100
|
+
return normalized.length > 0 ? normalized : [...DEFAULT_ACCEPT_FORMATS];
|
|
101
|
+
}
|
|
102
|
+
function getRequestFormat(contentType) {
|
|
103
|
+
const mimeType = (Array.isArray(contentType) ? contentType[0] : contentType)?.split(";", 1)[0]?.trim().toLowerCase();
|
|
104
|
+
if (mimeType === OTLP_CONTENT_TYPES.json) return "json";
|
|
105
|
+
if (mimeType === OTLP_CONTENT_TYPES.protobuf) return "protobuf";
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
95
108
|
var OTLPReceiver = class {
|
|
96
109
|
app;
|
|
110
|
+
acceptFormats;
|
|
97
111
|
traceStore;
|
|
98
112
|
port;
|
|
99
113
|
server;
|
|
100
|
-
constructor() {
|
|
114
|
+
constructor(options = {}) {
|
|
101
115
|
this.app = express();
|
|
116
|
+
this.acceptFormats = normalizeAcceptFormats(options.acceptFormats);
|
|
102
117
|
this.traceStore = getTraceStore();
|
|
103
118
|
logger.debug("[OtlpReceiver] Initializing OTLP receiver");
|
|
104
119
|
this.setupMiddleware();
|
|
105
120
|
this.setupRoutes();
|
|
106
121
|
}
|
|
107
122
|
setupMiddleware() {
|
|
108
|
-
this.app.use(
|
|
123
|
+
this.app.use("/v1/traces", (req, res, next) => {
|
|
124
|
+
if (req.method !== "POST") {
|
|
125
|
+
next();
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
const format = getRequestFormat(req.headers["content-type"]);
|
|
129
|
+
if (!format || !this.acceptFormats.includes(format)) {
|
|
130
|
+
res.status(415).json({ error: "Unsupported content type" });
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
next();
|
|
134
|
+
});
|
|
135
|
+
this.app.use("/v1/traces", express.json({
|
|
109
136
|
limit: "10mb",
|
|
110
|
-
type: "
|
|
137
|
+
type: (req) => this.acceptFormats.includes("json") && getRequestFormat(req.headers["content-type"]) === "json"
|
|
111
138
|
}));
|
|
112
|
-
this.app.use(express.raw({
|
|
113
|
-
|
|
114
|
-
|
|
139
|
+
this.app.use("/v1/traces", express.raw({
|
|
140
|
+
limit: "10mb",
|
|
141
|
+
type: (req) => this.acceptFormats.includes("protobuf") && getRequestFormat(req.headers["content-type"]) === "protobuf"
|
|
115
142
|
}));
|
|
116
|
-
logger.debug("[OtlpReceiver] Middleware configured for
|
|
143
|
+
logger.debug("[OtlpReceiver] Middleware configured for accepted OTLP formats");
|
|
117
144
|
}
|
|
118
145
|
setupRoutes() {
|
|
119
146
|
this.app.post("/v1/traces", async (req, res) => {
|
|
@@ -121,64 +148,19 @@ var OTLPReceiver = class {
|
|
|
121
148
|
const bodySize = req.body ? JSON.stringify(req.body).length : 0;
|
|
122
149
|
logger.debug(`[OtlpReceiver] Received trace request: ${req.headers["content-type"]} with ${bodySize} bytes`);
|
|
123
150
|
logger.debug("[OtlpReceiver] Starting to process traces");
|
|
124
|
-
const
|
|
125
|
-
|
|
126
|
-
if (!isJson && !isProtobuf) {
|
|
151
|
+
const format = getRequestFormat(contentType);
|
|
152
|
+
if (!format || !this.acceptFormats.includes(format)) {
|
|
127
153
|
res.status(415).json({ error: "Unsupported content type" });
|
|
128
154
|
return;
|
|
129
155
|
}
|
|
130
156
|
try {
|
|
131
|
-
|
|
132
|
-
if (isJson) {
|
|
133
|
-
logger.debug("[OtlpReceiver] Parsing OTLP JSON request");
|
|
134
|
-
logger.debug(`[OtlpReceiver] Request body: ${JSON.stringify(req.body).substring(0, 500)}...`);
|
|
135
|
-
traces = this.parseOTLPJSONRequest(req.body);
|
|
136
|
-
} else if (isProtobuf) {
|
|
137
|
-
logger.debug("[OtlpReceiver] Parsing OTLP protobuf request");
|
|
138
|
-
logger.debug(`[OtlpReceiver] Request body size: ${req.body?.length || 0} bytes`);
|
|
139
|
-
traces = await this.parseOTLPProtobufRequest(req.body);
|
|
140
|
-
}
|
|
157
|
+
const traces = await this.parseIncomingRequest(format, req.body);
|
|
141
158
|
logger.debug(`[OtlpReceiver] Parsed ${traces.length} traces from request`);
|
|
142
|
-
|
|
143
|
-
const traceInfoById = /* @__PURE__ */ new Map();
|
|
144
|
-
for (const trace of traces) {
|
|
145
|
-
if (!spansByTrace.has(trace.traceId)) {
|
|
146
|
-
spansByTrace.set(trace.traceId, []);
|
|
147
|
-
const evaluationId = trace.span.attributes?.["evaluation.id"];
|
|
148
|
-
const testCaseId = trace.span.attributes?.["test.case.id"];
|
|
149
|
-
const info = traceInfoById.get(trace.traceId) ?? {};
|
|
150
|
-
if (evaluationId) info.evaluationId = evaluationId;
|
|
151
|
-
if (testCaseId) info.testCaseId = testCaseId;
|
|
152
|
-
traceInfoById.set(trace.traceId, info);
|
|
153
|
-
}
|
|
154
|
-
spansByTrace.get(trace.traceId).push(trace.span);
|
|
155
|
-
}
|
|
156
|
-
logger.debug(`[OtlpReceiver] Grouped spans into ${spansByTrace.size} traces`);
|
|
157
|
-
for (const [traceId, info] of traceInfoById) try {
|
|
158
|
-
logger.debug(`[OtlpReceiver] Creating trace record for ${traceId}`);
|
|
159
|
-
await this.traceStore.createTrace({
|
|
160
|
-
traceId,
|
|
161
|
-
evaluationId: info.evaluationId || "",
|
|
162
|
-
testCaseId: info.testCaseId || ""
|
|
163
|
-
});
|
|
164
|
-
} catch (error) {
|
|
165
|
-
logger.debug(`[OtlpReceiver] Trace ${traceId} may already exist: ${error}`);
|
|
166
|
-
}
|
|
167
|
-
for (const [traceId, spans] of spansByTrace) {
|
|
168
|
-
logger.debug(`[OtlpReceiver] Storing ${spans.length} spans for trace ${traceId}`);
|
|
169
|
-
await this.traceStore.addSpans(traceId, spans, { skipTraceCheck: true });
|
|
170
|
-
}
|
|
159
|
+
await this.persistTraces(this.groupTraces(traces));
|
|
171
160
|
res.status(200).json({ partialSuccess: {} });
|
|
172
161
|
logger.debug("[OtlpReceiver] Successfully processed traces");
|
|
173
162
|
} catch (error) {
|
|
174
|
-
|
|
175
|
-
logger.error(`[OtlpReceiver] Error stack: ${error instanceof Error ? error.stack : "No stack"}`);
|
|
176
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
177
|
-
if (errorMessage.toLowerCase().includes("invalid protobuf")) {
|
|
178
|
-
res.status(400).json({ error: errorMessage });
|
|
179
|
-
return;
|
|
180
|
-
}
|
|
181
|
-
res.status(500).json({ error: "Internal server error" });
|
|
163
|
+
this.handleProcessingError(error, res);
|
|
182
164
|
}
|
|
183
165
|
});
|
|
184
166
|
this.app.get("/health", (_req, res) => {
|
|
@@ -189,7 +171,7 @@ var OTLPReceiver = class {
|
|
|
189
171
|
res.status(200).json({
|
|
190
172
|
service: "promptfoo-otlp-receiver",
|
|
191
173
|
version: "1.0.0",
|
|
192
|
-
supported_formats:
|
|
174
|
+
supported_formats: this.acceptFormats
|
|
193
175
|
});
|
|
194
176
|
});
|
|
195
177
|
this.app.get("/debug/status", async (_req, res) => {
|
|
@@ -210,6 +192,71 @@ var OTLPReceiver = class {
|
|
|
210
192
|
res.status(500).json({ error: "Internal server error" });
|
|
211
193
|
});
|
|
212
194
|
}
|
|
195
|
+
async parseIncomingRequest(format, body) {
|
|
196
|
+
if (format === "json") {
|
|
197
|
+
logger.debug("[OtlpReceiver] Parsing OTLP JSON request");
|
|
198
|
+
logger.debug(`[OtlpReceiver] Request body: ${JSON.stringify(body).substring(0, 500)}...`);
|
|
199
|
+
return this.parseOTLPJSONRequest(body);
|
|
200
|
+
}
|
|
201
|
+
logger.debug("[OtlpReceiver] Parsing OTLP protobuf request");
|
|
202
|
+
logger.debug(`[OtlpReceiver] Request body size: ${body?.length || 0} bytes`);
|
|
203
|
+
return this.parseOTLPProtobufRequest(body);
|
|
204
|
+
}
|
|
205
|
+
groupTraces(traces) {
|
|
206
|
+
const spansByTrace = /* @__PURE__ */ new Map();
|
|
207
|
+
const traceInfoById = /* @__PURE__ */ new Map();
|
|
208
|
+
for (const trace of traces) {
|
|
209
|
+
const spans = spansByTrace.get(trace.traceId) ?? [];
|
|
210
|
+
spans.push(trace.span);
|
|
211
|
+
spansByTrace.set(trace.traceId, spans);
|
|
212
|
+
this.recordTraceInfo(traceInfoById, trace);
|
|
213
|
+
}
|
|
214
|
+
logger.debug(`[OtlpReceiver] Grouped spans into ${spansByTrace.size} traces`);
|
|
215
|
+
return {
|
|
216
|
+
spansByTrace,
|
|
217
|
+
traceInfoById
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
recordTraceInfo(traceInfoById, trace) {
|
|
221
|
+
const evaluationId = trace.span.attributes?.["evaluation.id"];
|
|
222
|
+
const testCaseId = trace.span.attributes?.["test.case.id"];
|
|
223
|
+
const info = traceInfoById.get(trace.traceId) ?? {};
|
|
224
|
+
if (evaluationId) info.evaluationId = evaluationId;
|
|
225
|
+
if (testCaseId) info.testCaseId = testCaseId;
|
|
226
|
+
traceInfoById.set(trace.traceId, info);
|
|
227
|
+
}
|
|
228
|
+
async persistTraces({ spansByTrace, traceInfoById }) {
|
|
229
|
+
await this.createTraceRecords(traceInfoById);
|
|
230
|
+
await this.storeSpans(spansByTrace);
|
|
231
|
+
}
|
|
232
|
+
async createTraceRecords(traceInfoById) {
|
|
233
|
+
for (const [traceId, info] of traceInfoById) try {
|
|
234
|
+
logger.debug(`[OtlpReceiver] Creating trace record for ${traceId}`);
|
|
235
|
+
await this.traceStore.createTrace({
|
|
236
|
+
traceId,
|
|
237
|
+
evaluationId: info.evaluationId || "",
|
|
238
|
+
testCaseId: info.testCaseId || ""
|
|
239
|
+
});
|
|
240
|
+
} catch (error) {
|
|
241
|
+
logger.debug(`[OtlpReceiver] Trace ${traceId} may already exist: ${error}`);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
async storeSpans(spansByTrace) {
|
|
245
|
+
for (const [traceId, spans] of spansByTrace) {
|
|
246
|
+
logger.debug(`[OtlpReceiver] Storing ${spans.length} spans for trace ${traceId}`);
|
|
247
|
+
await this.traceStore.addSpans(traceId, spans, { skipTraceCheck: true });
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
handleProcessingError(error, res) {
|
|
251
|
+
logger.error(`[OtlpReceiver] Failed to process OTLP traces: ${error}`);
|
|
252
|
+
logger.error(`[OtlpReceiver] Error stack: ${error instanceof Error ? error.stack : "No stack"}`);
|
|
253
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
254
|
+
if (errorMessage.toLowerCase().includes("invalid protobuf")) {
|
|
255
|
+
res.status(400).json({ error: errorMessage });
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
res.status(500).json({ error: "Internal server error" });
|
|
259
|
+
}
|
|
213
260
|
parseOTLPJSONRequest(body) {
|
|
214
261
|
const traces = [];
|
|
215
262
|
logger.debug(`[OtlpReceiver] Parsing request with ${body.resourceSpans?.length || 0} resource spans`);
|
|
@@ -248,44 +295,42 @@ var OTLPReceiver = class {
|
|
|
248
295
|
return traces;
|
|
249
296
|
}
|
|
250
297
|
async parseOTLPProtobufRequest(body) {
|
|
251
|
-
const traces = [];
|
|
252
298
|
const decoded = await decodeExportTraceServiceRequest(body);
|
|
253
299
|
logger.debug(`[OtlpReceiver] Parsing protobuf request with ${decoded.resourceSpans?.length || 0} resource spans`);
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
300
|
+
return (decoded.resourceSpans || []).flatMap((resourceSpan) => this.parseDecodedResourceSpan(resourceSpan));
|
|
301
|
+
}
|
|
302
|
+
parseDecodedResourceSpan(resourceSpan) {
|
|
303
|
+
const resourceAttributes = this.parseDecodedAttributes(resourceSpan.resource?.attributes);
|
|
304
|
+
logger.debug(`[OtlpReceiver] Parsed ${Object.keys(resourceAttributes).length} resource attributes from protobuf`);
|
|
305
|
+
return (resourceSpan.scopeSpans || []).flatMap((scopeSpan) => (scopeSpan.spans || []).map((span) => this.createDecodedParsedTrace(resourceAttributes, scopeSpan, span)));
|
|
306
|
+
}
|
|
307
|
+
createDecodedParsedTrace(resourceAttributes, scopeSpan, span) {
|
|
308
|
+
const traceId = bytesToHex(span.traceId, 32);
|
|
309
|
+
const spanId = bytesToHex(span.spanId, 16);
|
|
310
|
+
const parentSpanId = span.parentSpanId?.length ? bytesToHex(span.parentSpanId, 16) : void 0;
|
|
311
|
+
logger.debug(`[OtlpReceiver] Processing protobuf span: ${span.name} (${spanId}) in trace ${traceId}`);
|
|
312
|
+
const spanKindCode = span.kind ?? 0;
|
|
313
|
+
const spanKindName = SPAN_KIND_MAP[spanKindCode] ?? "unspecified";
|
|
314
|
+
return {
|
|
315
|
+
traceId,
|
|
316
|
+
span: {
|
|
317
|
+
spanId,
|
|
318
|
+
parentSpanId,
|
|
319
|
+
name: span.name,
|
|
320
|
+
startTime: this.toMilliseconds(span.startTimeUnixNano) ?? 0,
|
|
321
|
+
endTime: this.toMilliseconds(span.endTimeUnixNano),
|
|
322
|
+
attributes: {
|
|
264
323
|
...resourceAttributes,
|
|
265
324
|
...this.parseDecodedAttributes(span.attributes),
|
|
266
325
|
"otel.scope.name": scopeSpan.scope?.name,
|
|
267
326
|
"otel.scope.version": scopeSpan.scope?.version,
|
|
268
327
|
"otel.span.kind": spanKindName,
|
|
269
|
-
"otel.span.kind_code":
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
traces.push({
|
|
274
|
-
traceId,
|
|
275
|
-
span: {
|
|
276
|
-
spanId,
|
|
277
|
-
parentSpanId,
|
|
278
|
-
name: span.name,
|
|
279
|
-
startTime: startTimeNano / 1e6,
|
|
280
|
-
endTime: endTimeNano ? endTimeNano / 1e6 : void 0,
|
|
281
|
-
attributes,
|
|
282
|
-
statusCode: span.status?.code,
|
|
283
|
-
statusMessage: span.status?.message
|
|
284
|
-
}
|
|
285
|
-
});
|
|
328
|
+
"otel.span.kind_code": spanKindCode
|
|
329
|
+
},
|
|
330
|
+
statusCode: span.status?.code,
|
|
331
|
+
statusMessage: span.status?.message
|
|
286
332
|
}
|
|
287
|
-
}
|
|
288
|
-
return traces;
|
|
333
|
+
};
|
|
289
334
|
}
|
|
290
335
|
parseDecodedAttributes(attributes) {
|
|
291
336
|
if (!attributes) return {};
|
|
@@ -386,15 +431,26 @@ var OTLPReceiver = class {
|
|
|
386
431
|
getApp() {
|
|
387
432
|
return this.app;
|
|
388
433
|
}
|
|
434
|
+
setAcceptFormats(acceptFormats) {
|
|
435
|
+
this.acceptFormats = normalizeAcceptFormats(acceptFormats);
|
|
436
|
+
}
|
|
437
|
+
toMilliseconds(value) {
|
|
438
|
+
if (value === void 0) return;
|
|
439
|
+
return Number(value) / 1e6;
|
|
440
|
+
}
|
|
389
441
|
};
|
|
390
442
|
let otlpReceiver = null;
|
|
391
|
-
function getOTLPReceiver() {
|
|
392
|
-
if (
|
|
443
|
+
function getOTLPReceiver(options) {
|
|
444
|
+
if (otlpReceiver) {
|
|
445
|
+
otlpReceiver.setAcceptFormats(options?.acceptFormats);
|
|
446
|
+
return otlpReceiver;
|
|
447
|
+
}
|
|
448
|
+
otlpReceiver = new OTLPReceiver(options);
|
|
393
449
|
return otlpReceiver;
|
|
394
450
|
}
|
|
395
|
-
async function startOTLPReceiver(port, host) {
|
|
451
|
+
async function startOTLPReceiver(port, host, acceptFormats) {
|
|
396
452
|
logger.debug("[OtlpReceiver] Starting receiver through startOTLPReceiver function");
|
|
397
|
-
await getOTLPReceiver().listen(port, host);
|
|
453
|
+
await getOTLPReceiver({ acceptFormats }).listen(port, host);
|
|
398
454
|
}
|
|
399
455
|
async function stopOTLPReceiver() {
|
|
400
456
|
logger.debug("[OtlpReceiver] Stopping receiver through stopOTLPReceiver function");
|
|
@@ -406,4 +462,4 @@ async function stopOTLPReceiver() {
|
|
|
406
462
|
//#endregion
|
|
407
463
|
export { startOTLPReceiver, stopOTLPReceiver };
|
|
408
464
|
|
|
409
|
-
//# sourceMappingURL=otlpReceiver-
|
|
465
|
+
//# sourceMappingURL=otlpReceiver-C6thJRXi.js.map
|