promptfoo 0.120.26 → 0.121.1
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/drizzle/0023_wooden_mandrill.sql +2 -0
- package/dist/drizzle/meta/0023_snapshot.json +1496 -0
- package/dist/drizzle/meta/_journal.json +7 -0
- package/dist/src/{ListApp-D3DG0F8h.js → ListApp-Du7YVwj5.js} +2 -4
- package/dist/src/accounts-BgNJDBE6.js +206 -0
- package/dist/src/{accounts-BzEY8H3v.cjs → accounts-Bx-x3bmW.cjs} +99 -80
- package/dist/src/{accounts-DHHiXsy6.js → accounts-CMqkzrVf.js} +61 -36
- package/dist/src/{accounts-R3gfCR_g.js → accounts-xrUGFA6n.js} +60 -35
- package/dist/src/{agentic-utils-D6_gzOUF.js → agentic-utils-BKIN5PKu.js} +9 -10
- package/dist/src/{agents-CwM7re15.cjs → agents-B0f4HICh.cjs} +37 -40
- package/dist/src/{agents-Cnph5GLD.js → agents-C-dDThPK.js} +37 -37
- package/dist/src/{agents-C7BiinFI.cjs → agents-CErsqg5U.cjs} +19 -27
- package/dist/src/{agents-v4cW_ZgC.js → agents-CVIn-Utx.js} +19 -22
- package/dist/src/{agents-GiUianme.js → agents-CXknwsFX.js} +37 -40
- package/dist/src/{agents-DETIQHqF.js → agents-DeH4Gu94.js} +21 -28
- package/dist/src/{agents-DYIT-hQy.js → agents-Dy2YpZpa.js} +38 -41
- package/dist/src/{agents-Cao4i7AX.js → agents-aF4-T121.js} +19 -30
- package/dist/src/{aimlapi-DMF6v_vb.js → aimlapi-BAGZDo5G.js} +16 -18
- package/dist/src/{aimlapi-CMJpKK-B.js → aimlapi-BNfTBexL.js} +15 -17
- package/dist/src/{aimlapi-DtSf1ykJ.js → aimlapi-DHRKlBEA.js} +15 -4
- package/dist/src/{aimlapi-DoGLcQW_.cjs → aimlapi-tg0Gkcvr.cjs} +15 -16
- package/dist/src/app/assets/index-BFCZg7hQ.js +439 -0
- package/dist/src/app/assets/index-NCn4eVBv.css +1 -0
- package/dist/src/app/assets/{vendor-charts-CYyo8R8v.js → vendor-charts-CCl15Imd.js} +1 -1
- package/dist/src/app/assets/{vendor-markdown-DSmzq4Jh.js → vendor-markdown-0tekx3KX.js} +1 -1
- package/dist/src/app/index.html +4 -34
- package/dist/src/{audio-DUH4q0Xq.js → audio-BRODU0UK.js} +7 -9
- package/dist/src/{audio-BWjyvHn9.cjs → audio-BWeaWovU.cjs} +6 -7
- package/dist/src/{audio-U580w8jM.js → audio-CHQ4r-RV.js} +6 -5
- package/dist/src/{audio-BrJBFN2b.js → audio-tf_NBjlC.js} +6 -8
- package/dist/src/base-B0tcrnq_.js +193 -0
- package/dist/src/base-B4QJRyFS.js +194 -0
- package/dist/src/base-DBtwl2FR.cjs +222 -0
- package/dist/src/base-fEDN28WM.js +193 -0
- package/dist/src/{blobs-kt8v3UyH.js → blobs-BAU-dXan.js} +9 -12
- package/dist/src/{blobs-C9J2mVgo.js → blobs-Bpg5rH6i.js} +9 -12
- package/dist/src/{blobs-673H0jCl.cjs → blobs-DvS-O6be.cjs} +34 -37
- package/dist/src/blobs-qTYm-1PY.js +236 -0
- package/dist/src/{cache-BLLayYEN.js → cache-8XhNqPKW.js} +64 -67
- package/dist/src/cache-Bbn1Nyrd.cjs +5 -0
- package/dist/src/cache-BwsMSda7.js +6 -0
- package/dist/src/{cache-mIszOnuz.js → cache-CG0SlR1d.js} +64 -66
- package/dist/src/{cache-7xULbvt3.cjs → cache-COish3-W.cjs} +114 -117
- package/dist/src/cache-D3eqDYGU.js +739 -0
- package/dist/src/{chat-Fl6TZJRS.cjs → chat-2K608PeQ.cjs} +20 -21
- package/dist/src/chat-BKm79wib.js +764 -0
- package/dist/src/{chat-XPN9YHhr.js → chat-CM_kyI8B.js} +20 -9
- package/dist/src/{chat-DIywASPG.js → chat-CRWNNq73.js} +49 -49
- package/dist/src/{chat-C8Ei4f87.js → chat-CznLWr_D.js} +49 -49
- package/dist/src/{chat-CgyGj2hC.js → chat-DHMH-N64.js} +20 -22
- package/dist/src/{chat-C4zqjObh.cjs → chat-DaqekjFr.cjs} +69 -69
- package/dist/src/{chat-Cpz3O-Xl.js → chat-DxysjBvt.js} +21 -23
- package/dist/src/{chatkit-Dpxrq4eD.js → chatkit-65VXf5SR.js} +58 -58
- package/dist/src/{chatkit-DIrJX8xk.js → chatkit-Be-Q-a9F.js} +58 -60
- package/dist/src/{chatkit-DEls11hE.js → chatkit-BxFvW8KY.js} +58 -60
- package/dist/src/{chatkit-e25Ziu17.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-6-xTaLwM.js → claude-agent-sdk-BLTu0WBO.js} +45 -31
- package/dist/src/{claude-agent-sdk-BzxF6NIJ.cjs → claude-agent-sdk-CJH22shf.cjs} +44 -29
- package/dist/src/{claude-agent-sdk-CmkTnKGH.js → claude-agent-sdk-D6_k9FKA.js} +45 -33
- package/dist/src/{claude-agent-sdk-rXCBLK_o.js → claude-agent-sdk-Dy5lT-Tx.js} +46 -21
- package/dist/src/{cloud-BMbRVJFw.js → cloud-Bc9526yV.js} +32 -12
- package/dist/src/cloud-DmE0EwsY.js +4 -0
- package/dist/src/{cloudflare-ai-CUg4BTcj.js → cloudflare-ai-C9r2sRhw.js} +16 -18
- package/dist/src/{cloudflare-ai-Z9X219gp.js → cloudflare-ai-CWWJCRim.js} +16 -4
- package/dist/src/{cloudflare-ai-BAQ0u_dg.cjs → cloudflare-ai-ClWSdor4.cjs} +16 -17
- package/dist/src/{cloudflare-ai-CobxMTR4.js → cloudflare-ai-ICsOuD-z.js} +17 -19
- package/dist/src/{cloudflare-gateway-C0sgfr_z.cjs → cloudflare-gateway-C2_-KG5o.cjs} +21 -22
- package/dist/src/{cloudflare-gateway-_itGuXry.js → cloudflare-gateway-D6O7AlYb.js} +23 -23
- package/dist/src/{cloudflare-gateway-D2_yi-Fh.js → cloudflare-gateway-D6xFc5pa.js} +21 -25
- package/dist/src/{cloudflare-gateway-Djf3F3_H.js → cloudflare-gateway-pXGHxJ47.js} +26 -14
- package/dist/src/{codex-sdk-ibXwdglL.js → codex-sdk-C6UMlxwV.js} +49 -32
- package/dist/src/{codex-sdk-BASDNkIl.js → codex-sdk-DUwKWezN.js} +49 -30
- package/dist/src/{codex-sdk-dSnGdgIp.js → codex-sdk-GGAw0qbD.js} +49 -32
- package/dist/src/{codex-sdk-wTEpMM_X.cjs → codex-sdk-fAO0c3yA.cjs} +49 -32
- package/dist/src/{cometapi-B01btbfb.js → cometapi-BasUi7-_.js} +17 -19
- package/dist/src/{cometapi-DHUAH6nK.js → cometapi-Bbjp5V4x.js} +16 -4
- package/dist/src/{cometapi-ChAaRjg5.js → cometapi-DkXrKi5z.js} +21 -24
- package/dist/src/{cometapi-JbvOJSCO.cjs → cometapi-vY6aDZgo.cjs} +21 -22
- package/dist/src/{completion-D9_MDlnd.js → completion-6Mx_iXxK.js} +11 -13
- package/dist/src/{completion-BBJ6zmG3.js → completion-C5rtR_9P.js} +11 -13
- package/dist/src/{completion-DDyL3Cb2.cjs → completion-CDOouNzq.cjs} +21 -23
- package/dist/src/completion-C_P3ypkJ.js +120 -0
- package/dist/src/createHash-CTQmL3G2.js +15 -0
- package/dist/src/createHash-CfZSc0b4.cjs +27 -0
- package/dist/src/createHash-Da8fMwqB.js +16 -0
- package/dist/src/createHash-DmPQkvBh.js +15 -0
- package/dist/src/{docker-JAAubMw3.js → docker-5KcG-_86.js} +18 -20
- package/dist/src/{docker-Ckw-j7Rr.cjs → docker-BwsKwxFs.cjs} +18 -19
- package/dist/src/{docker-vnOg96gi.js → docker-CZnqU1XV.js} +18 -7
- package/dist/src/{docker-BuButc4D.js → docker-DzxyDPIj.js} +19 -21
- package/dist/src/entrypoint.js +2 -3
- package/dist/src/{errors-DnGCbnx8.js → errors-P6ll7XSJ.js} +2 -2
- package/dist/src/{esm-CYhseqj4.js → esm-C03C-mv3.js} +17 -20
- package/dist/src/{esm-rDtG_2rg.js → esm-CaIwzWR5.js} +18 -21
- package/dist/src/esm-Cd1AjG1D.js +379 -0
- package/dist/src/{esm-BQkx5roy.cjs → esm-CnNt7sI4.cjs} +47 -49
- package/dist/src/eval-17JizQIv.js +15 -0
- package/dist/src/{eval-CYrbG57o.js → eval-DmFyWU7i.js} +49 -55
- package/dist/src/{evalResult-COsVttMA.js → evalResult-CDQiuUuf.js} +16 -12
- package/dist/src/{evalResult-6JaUIStC.js → evalResult-CTG2AHOS.js} +10 -11
- package/dist/src/evalResult-Cqj8pldJ.js +12 -0
- package/dist/src/{evalResult-DlRfu_Rq.cjs → evalResult-Dap2CekP.cjs} +20 -21
- package/dist/src/evalResult-DvcJAWJU.cjs +10 -0
- package/dist/src/evalResult-Hftn-S_i.js +10 -0
- package/dist/src/evaluator-B2CFNt-P.js +36 -0
- package/dist/src/{evaluator-3EJCMTs0.js → evaluator-DPFRbFIL.js} +210 -232
- package/dist/src/{extractor-LSYjrhK0.js → extractor-CFG6bcWJ.js} +23 -38
- package/dist/src/{extractor-DbhlYEeo.cjs → extractor-DX36oYEv.cjs} +37 -64
- package/dist/src/{extractor-Hs7la_19.js → extractor-M67RUtg6.js} +23 -38
- package/dist/src/extractor-YMU_Gvt8.js +374 -0
- package/dist/src/fetch-4M3YRaqL.js +780 -0
- package/dist/src/{fetch-18MuNu9i.js → fetch-60Gzydls.js} +60 -46
- package/dist/src/{fetch-SRsE6Ctl.js → fetch-BMv0O527.js} +41 -35
- package/dist/src/{fetch-ZMn_oemb.cjs → fetch-BxUk8odA.cjs} +268 -279
- package/dist/src/fetch-KV5kNASw.js +5 -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-Doo0xq-z.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-CQlpZkrp.cjs → genaiTracer-DN4dQywX.cjs} +13 -14
- package/dist/src/graders-Bu0H9nXi.js +32 -0
- package/dist/src/{graders-BaMCwIKp.js → graders-CHO8EPM4.js} +385 -417
- package/dist/src/graders-Cfhkvx-e.js +34 -0
- package/dist/src/{graders-QsALpIdy.js → graders-CpdqD9PI.js} +385 -417
- package/dist/src/graders-DClJVpGP.cjs +32 -0
- package/dist/src/{graders-DzUUnUjC.cjs → graders-DOXycdlG.cjs} +721 -753
- package/dist/src/graders-DcnJsrMO.js +32 -0
- package/dist/src/graders-R9rYUM0d.js +13466 -0
- package/dist/src/{image-BiEVdpdP.js → image-BmEZqVmk.js} +57 -18
- package/dist/src/{image-mhAGP07h.js → image-CBBVXWuT.js} +57 -18
- package/dist/src/{image-D10zEe1f.cjs → image-CDLQOcqT.cjs} +6 -7
- package/dist/src/{image-COCWy5dX.js → image-DJEvKveK.js} +6 -5
- package/dist/src/{image-C3BjJUAU.cjs → image-DTedmQPg.cjs} +77 -32
- package/dist/src/{image-DB4sHxdJ.js → image-gvmivTEe.js} +7 -9
- package/dist/src/image-pAX56tPG.js +257 -0
- package/dist/src/{image-BXt_7u0v.js → image-tL5hIOFh.js} +6 -8
- package/dist/src/index.cjs +696 -693
- package/dist/src/index.d.cts +113 -10
- package/dist/src/index.d.ts +113 -6
- package/dist/src/index.js +657 -658
- package/dist/src/{interactiveCheck-DU-MAhp5.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-DotRBzUE.js → knowledgeBase-CLJybhnF.js} +19 -34
- package/dist/src/{knowledgeBase-XJQ0Qyez.js → knowledgeBase-CoU-UQBg.js} +17 -41
- package/dist/src/{knowledgeBase-CMvMlLZR.js → knowledgeBase-DjWPVqSb.js} +17 -43
- package/dist/src/{knowledgeBase-Bnb00xKs.cjs → knowledgeBase-wkxuRFhA.cjs} +17 -40
- package/dist/src/{litellm-CHrRmPAe.js → litellm-B9Hysuri.js} +16 -18
- package/dist/src/{litellm-CrLJrPIm.js → litellm-CTfa0hqi.js} +15 -17
- package/dist/src/{litellm-BrnZhMcL.cjs → litellm-NYpQ8RQu.cjs} +15 -16
- package/dist/src/{litellm-BECdjOTx.js → litellm-ePxtr9F1.js} +15 -4
- package/dist/src/{logger-w8Ozp0Td.js → logger-CT3IKMKA.js} +24 -41
- package/dist/src/{logger-BdZ-IqBc.cjs → logger-Cp1GPUjj.cjs} +166 -192
- package/dist/src/logger-DLcq4dWf.js +713 -0
- package/dist/src/{logger-BotXmWKW.js → logger-KkObSCzq.js} +27 -43
- package/dist/src/{luma-ray-C0RkI3lt.cjs → luma-ray-B0GGNRc1.cjs} +20 -21
- package/dist/src/{luma-ray-C-w6EsJm.js → luma-ray-BE2mOt6N.js} +20 -13
- package/dist/src/{luma-ray-BOeX-h0M.js → luma-ray-BW9IRGIc.js} +22 -21
- package/dist/src/{luma-ray-DgKLS0BF.js → luma-ray-Cm1KZBhs.js} +20 -23
- package/dist/src/main.js +1985 -2055
- package/dist/src/{messages-DXV3Qh8_.cjs → messages-1JrJs91T.cjs} +35 -34
- package/dist/src/{messages-D61tPFQo.js → messages-1x9atZmP.js} +25 -24
- package/dist/src/{messages-CDZYGNlS.js → messages-BLbWdsyt.js} +25 -24
- package/dist/src/messages-D8EA0oDc.js +240 -0
- package/dist/src/{meteor-P2rUE-Uz.js → meteor-44VjEACX.js} +3 -4
- package/dist/src/{meteor-SLNTgmXm.js → meteor-D-SotUw9.js} +3 -4
- package/dist/src/{meteor-odmwVbyG.cjs → meteor-DLZZ3osF.cjs} +3 -4
- package/dist/src/{meteor-Dj8cTkU_.js → meteor-DUiCJRC-.js} +3 -4
- package/dist/src/modelslab-C1OLRmVX.js +166 -0
- package/dist/src/modelslab-CqXBy3U8.js +168 -0
- package/dist/src/modelslab-DcOSFwKh.cjs +166 -0
- package/dist/src/modelslab-X5-4LroM.js +166 -0
- package/dist/src/{nova-reel-C2LFfVTf.js → nova-reel-BgS1ZWuK.js} +20 -13
- package/dist/src/{nova-reel-DtCjbD5O.js → nova-reel-D2ZkOSyr.js} +22 -21
- package/dist/src/{nova-reel-D9FXq3Mt.cjs → nova-reel-D9xfaMBs.cjs} +20 -21
- package/dist/src/{nova-reel-Bk5npr2q.js → nova-reel-DihqLeol.js} +20 -23
- package/dist/src/{nova-sonic-BoRSY_U6.cjs → nova-sonic-DVu3mMIy.cjs} +30 -31
- package/dist/src/{nova-sonic-D_qERM-K.js → nova-sonic-DezhVUYT.js} +30 -26
- package/dist/src/{nova-sonic-CgaWLDM1.js → nova-sonic-P-CdUMlV.js} +30 -31
- package/dist/src/{nova-sonic-BXRfQyF-.js → nova-sonic-Q3BOJeig.js} +31 -32
- package/dist/src/{openai-Bigwjgo1.cjs → openai-Cuif0GEt.cjs} +8 -9
- package/dist/src/{openai-Dz3surb_.js → openai-DElQ-fPX.js} +3 -4
- package/dist/src/{openai-CT5fwbve.js → openai-DhbB7eWK.js} +3 -4
- package/dist/src/openai-j-sE2O7r.js +44 -0
- package/dist/src/{openclaw-dHLcXUWZ.js → openclaw-BiSZPL7J.js} +20 -14
- package/dist/src/{openclaw-CpPrXwf6.js → openclaw-Bv1DINsX.js} +20 -27
- package/dist/src/{openclaw-B6XY2kUf.js → openclaw-D1D_ej1z.js} +21 -28
- package/dist/src/{openclaw-DDSfq5fp.cjs → openclaw-DAfWQn-o.cjs} +33 -39
- package/dist/src/opencode-sdk-C7m-wRfI.js +560 -0
- package/dist/src/opencode-sdk-CfaLN8PY.cjs +564 -0
- package/dist/src/opencode-sdk-D95s6SnR.js +562 -0
- package/dist/src/opencode-sdk-DxUPkLT7.js +560 -0
- package/dist/src/{otlpReceiver-DmRb0NBj.js → otlpReceiver--AIRW_S4.js} +53 -51
- package/dist/src/{otlpReceiver-Dg817agV.js → otlpReceiver-Bn5wGB1v.js} +53 -55
- package/dist/src/{otlpReceiver-B6Xo4KZM.cjs → otlpReceiver-Diec4cln.cjs} +53 -55
- package/dist/src/{otlpReceiver-BO0rbDzh.js → otlpReceiver-g3ByGaXs.js} +53 -55
- package/dist/src/{providerRegistry-Xf0qdqGQ.js → providerRegistry-B0RUOLI_.js} +7 -8
- package/dist/src/{providerRegistry-wCWd7sKQ.js → providerRegistry-CD8MEar9.js} +7 -8
- package/dist/src/{providerRegistry-lc7a7utN.cjs → providerRegistry-Civky8Ar.cjs} +12 -13
- package/dist/src/providerRegistry-DM8rZYol.js +45 -0
- package/dist/src/providers-B3HvufyI.js +33246 -0
- package/dist/src/{providers-BiNq_Iyc.js → providers-BKRJTjBz.js} +1743 -1795
- package/dist/src/providers-C1rOSHiR.js +32 -0
- package/dist/src/{providers-BlEhY5mi.js → providers-CFLy1_ji.js} +1750 -1802
- package/dist/src/{providers-BNKVY53V.cjs → providers-CFu-TZl-.cjs} +2111 -2163
- package/dist/src/providers-CxmDwEFf.cjs +31 -0
- package/dist/src/providers-Dodakqr0.js +30 -0
- package/dist/src/providers-GIQ2TcsA.js +30 -0
- package/dist/src/{pythonUtils-r1uBuA0n.js → pythonUtils-C3py6GC1.js} +18 -19
- package/dist/src/{pythonUtils-DZ6EbdY4.cjs → pythonUtils-CTU3Y3lw.cjs} +42 -43
- package/dist/src/{pythonUtils-vMlk9Qp5.js → pythonUtils-D5nxkQ0P.js} +18 -19
- package/dist/src/pythonUtils-D6fwaDSg.js +249 -0
- package/dist/src/quiverai-C2jVwbH1.js +213 -0
- package/dist/src/quiverai-CI6gYJVI.js +213 -0
- package/dist/src/quiverai-CLkWkyZc.cjs +213 -0
- package/dist/src/quiverai-MHSxbmmZ.js +215 -0
- package/dist/src/{render-CAZvKKkB.js → render-Drod8m7K.js} +4 -5
- package/dist/src/{responses-DLLjADw5.js → responses-BKqJmhhc.js} +34 -27
- package/dist/src/{responses-TsdODUpm.js → responses-CGw0DCzh.js} +34 -27
- package/dist/src/responses-jxdehPkC.js +660 -0
- package/dist/src/{responses-zOtKtnY_.cjs → responses-tD4Bd4dc.cjs} +49 -42
- package/dist/src/rubyUtils-BUHu6PhO.js +5 -0
- package/dist/src/{rubyUtils-Cs35SDYa.js → rubyUtils-BUVePouc.js} +27 -20
- package/dist/src/rubyUtils-BcuGX77l.js +222 -0
- package/dist/src/{rubyUtils-BtjlqyXt.js → rubyUtils-Boc4HZzX.js} +18 -19
- package/dist/src/rubyUtils-CP42kMvq.cjs +4 -0
- package/dist/src/{rubyUtils-DCVaJ3mc.cjs → rubyUtils-DhCAlxZr.cjs} +48 -50
- package/dist/src/{sagemaker-Du4LIR97.js → sagemaker-BK4Zb993.js} +75 -70
- package/dist/src/{sagemaker-CLdUAv5z.js → sagemaker-BfiWTmvn.js} +77 -77
- package/dist/src/{sagemaker-DwNnEVYt.cjs → sagemaker-CcQHM1jV.cjs} +75 -76
- package/dist/src/{sagemaker-BcgLu0U4.js → sagemaker-D2Q1c-sD.js} +75 -79
- package/dist/src/{scanner-Dyw21Wg_.js → scanner-J8CA3LsV.js} +149 -122
- package/dist/src/server/index.js +5620 -67302
- package/dist/src/{server-CgUQ25qW.cjs → server-B0PPuDw-.cjs} +57 -67
- package/dist/src/server-B1vi21hA.js +7 -0
- package/dist/src/{server-CbMTRQkg.js → server-BC7XJFgr.js} +19 -24
- package/dist/src/server-Cm9Kai_h.cjs +5 -0
- package/dist/src/{server-DWmZLfCy.js → server-DbFphssR.js} +26 -29
- package/dist/src/server-OAs3nBRT.js +229 -0
- package/dist/src/{signal-Bl32q42d.js → signal-BOTbd53Z.js} +9 -11
- package/dist/src/{slack-BtMkB6xP.cjs → slack-BmVAVGaK.cjs} +7 -8
- package/dist/src/{slack-OZYxoVON.js → slack-DCUPTzS2.js} +8 -8
- package/dist/src/{slack-DPqj42Ts.js → slack-DOdy_kyv.js} +7 -8
- package/dist/src/{slack-BfdBx2tO.js → slack-DXMKtA-f.js} +7 -9
- package/dist/src/store-BNmZ1KAz.cjs +5 -0
- package/dist/src/{store-BqwfFEyF.cjs → store-BSc-TF2w.cjs} +44 -45
- package/dist/src/store-BltJg2cd.js +6 -0
- package/dist/src/{store-D4gdn9ih.js → store-D1tv90v3.js} +34 -35
- package/dist/src/{store-2ocbYY9D.js → store-DQLEjuEO.js} +40 -36
- package/dist/src/store-Ub2vaGJ1.js +228 -0
- package/dist/src/{tables-D-NSwNIb.js → tables-5EvT_Bwn.js} +23 -23
- package/dist/src/{tables-B9E1kRp-.cjs → tables-C7K-XKWp.cjs} +93 -93
- package/dist/src/{tables-C7TT2XVn.js → tables-D36WTqKX.js} +25 -25
- package/dist/src/tables-xKANLRBD.js +288 -0
- package/dist/src/telemetry-5BCRNBbe.cjs +5 -0
- package/dist/src/{telemetry-DZ_7PaVq.js → telemetry-C15ziL8u.js} +17 -14
- package/dist/src/{telemetry-BXyVqyAg.js → telemetry-C2YDkUQH.js} +11 -13
- package/dist/src/{telemetry-D0_yFdtU.cjs → telemetry-CbrnxHp_.cjs} +21 -24
- package/dist/src/telemetry-D4W5hboe.js +7 -0
- package/dist/src/telemetry-DMb2Mpfm.js +171 -0
- package/dist/src/{text-Dm78AVGG.js → text-B_UCRPp2.js} +2 -2
- package/dist/src/{text-DF2hMKdg.cjs → text-CW1cyrwj.cjs} +12 -13
- package/dist/src/{text-DgMr_tiM.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-FNIz3YOe.cjs → transcription-CL78qbOU.cjs} +14 -15
- package/dist/src/{transcription-C-M81iDA.js → transcription-DAtxHhAM.js} +14 -7
- package/dist/src/{transcription-CYuY5sFO.js → transcription-LNZTNUUL.js} +14 -16
- package/dist/src/{transcription-Ch7S-LWw.js → transcription-QHh3AH6Z.js} +15 -17
- package/dist/src/{transform-CoP2bJ7P.js → transform-Cgi24fJ7.js} +94 -66
- package/dist/src/{transform-Kd6u-oNm.cjs → transform-CzK1Q0zl.cjs} +24 -26
- package/dist/src/{transform-D8dILpfZ.js → transform-DECvGmzp.js} +15 -13
- package/dist/src/{transform-DMaxQwDx.js → transform-DGLazrMm.js} +94 -66
- package/dist/src/transform-DGxXocjk.js +1506 -0
- package/dist/src/{transform-ivxEY4f7.cjs → transform-DOcQeLld.cjs} +234 -206
- package/dist/src/transform-DTGDnAzW.js +6 -0
- package/dist/src/{transform-CqTFr7KR.js → transform-DilY9wbS.js} +10 -12
- package/dist/src/transform-aa6tmVpZ.js +216 -0
- package/dist/src/transform-m3qNw4KP.cjs +5 -0
- package/dist/src/{transformersAvailability-DEU2naS1.js → transformersAvailability-CEVM2GNQ.js} +2 -2
- package/dist/src/{transformersAvailability-Bkep3ka7.cjs → transformersAvailability-CwayUSlh.cjs} +2 -3
- package/dist/src/{transformersAvailability-DwmezkVe.js → transformersAvailability-D6c6ROpT.js} +2 -2
- package/dist/src/{types-t52w-XsS.js → types-CH3Ge2sE.js} +103 -92
- package/dist/src/{types-DMVjYLpx.js → types-CLKiCBW3.js} +98 -91
- package/dist/src/types-CN_TZ2GJ.js +3260 -0
- package/dist/src/{types-BIfttHrT.cjs → types-LJ0r3wbR.cjs} +573 -566
- package/dist/src/util-5cB-L7U3.js +1430 -0
- package/dist/src/util-6-GqIvzS.js +599 -0
- package/dist/src/{util-vjscpUzy.js → util-B7T3SiBS.js} +5 -6
- package/dist/src/{util-Cl0zfT3V.js → util-Betm42rL.js} +44 -17
- package/dist/src/{util-CUEt0Vum.js → util-C-PPYSMq.js} +44 -17
- package/dist/src/{util-DkFTvieG.cjs → util-CchiqXh_.cjs} +35 -36
- package/dist/src/{util-mJ58qbbw.js → util-DaWTWKBK.js} +5 -6
- package/dist/src/{util-C08Kns6-.cjs → util-Db0a0AFH.cjs} +89 -62
- package/dist/src/{util-DiCePfDu.js → util-Dlz_Wvgm.js} +102 -53
- package/dist/src/{util-BSh4a_Q8.js → util-YT5HPZaS.js} +102 -53
- package/dist/src/{util-DUYOvxAy.cjs → util-Yz-1aEhW.cjs} +274 -219
- package/dist/src/util-ZZH-3QZz.js +293 -0
- package/dist/src/{utils-DFaZa6Rf.cjs → utils-Cz9qXqII.cjs} +32 -35
- package/dist/src/{utils-CVzb4YiI.js → utils-XiOAgly5.js} +4 -7
- package/dist/src/utils-dLokC-eR.js +94 -0
- package/dist/src/{utils-JaY9veb5.js → utils-f2-Moju7.js} +4 -7
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +59 -53
- package/dist/src/app/assets/index-BOgkICuY.css +0 -1
- package/dist/src/app/assets/index-CSgqn_Vd.js +0 -428
- package/dist/src/app/tsconfig.app.tsbuildinfo +0 -1
- package/dist/src/base-BaXmtXYp.js +0 -107
- package/dist/src/base-Dtp8b4_N.js +0 -106
- package/dist/src/base-f71xxWai.cjs +0 -111
- package/dist/src/cache-BUPcq0Ad.js +0 -6
- package/dist/src/cache-CVfRb-HD.cjs +0 -6
- package/dist/src/cache-O4EuX2JV.js +0 -8
- package/dist/src/chunk-DHDDz29n.js +0 -22
- package/dist/src/chunk-FhC4c-0y.js +0 -21
- package/dist/src/cloud-CZ4hytdm.js +0 -5
- package/dist/src/eval-CKHWqG9f.js +0 -16
- package/dist/src/evalResult-CxTP-LMm.cjs +0 -11
- package/dist/src/evalResult-CzLURDcP.js +0 -13
- package/dist/src/evalResult-DyttNQ_G.js +0 -11
- package/dist/src/evaluator-0PvfeBYh.js +0 -38
- package/dist/src/fetch-Bi0o-fdp.js +0 -4
- package/dist/src/fetch-CMptBDVg.cjs +0 -4
- package/dist/src/fetch-DAZkv3gV.js +0 -6
- package/dist/src/graders-BCytzXrb.js +0 -34
- package/dist/src/graders-CGZQShfJ.cjs +0 -33
- package/dist/src/graders-spkuVC-E.js +0 -36
- package/dist/src/opencode-sdk-CImWVqy9.js +0 -382
- package/dist/src/opencode-sdk-CuCztr4P.js +0 -380
- package/dist/src/opencode-sdk-DhcfRbBH.js +0 -376
- package/dist/src/opencode-sdk-mqF-Oj3f.cjs +0 -383
- package/dist/src/providers-BMZZmPBJ.cjs +0 -32
- package/dist/src/providers-CQQrNaJk.js +0 -32
- package/dist/src/providers-Ck8HyrC-.js +0 -34
- package/dist/src/quiverai-BNfIwKCO.cjs +0 -54
- package/dist/src/quiverai-BQigKdIH.js +0 -57
- package/dist/src/quiverai-Bfy2WnE2.js +0 -55
- package/dist/src/quiverai-CedIP0PJ.js +0 -43
- package/dist/src/rubyUtils-D7--T12C.js +0 -6
- package/dist/src/rubyUtils-DRRiMFV2.js +0 -5
- package/dist/src/rubyUtils-vb8OYFC-.cjs +0 -5
- package/dist/src/server-BUbS0Qfh.js +0 -6
- package/dist/src/server-XpGXFHkS.cjs +0 -6
- package/dist/src/server-gfOx5Zrk.js +0 -8
- package/dist/src/store-5u2yriTV.js +0 -7
- package/dist/src/store-D_lq_8oQ.js +0 -6
- package/dist/src/store-m5KT6Ly7.cjs +0 -6
- package/dist/src/telemetry-5RHFoCJh.js +0 -6
- package/dist/src/telemetry-Do8wMnA-.js +0 -8
- package/dist/src/telemetry-LojxPoFq.cjs +0 -6
- package/dist/src/transform-8eGmaH-7.js +0 -7
- package/dist/src/transform-BRVvWaG4.cjs +0 -6
- package/dist/src/transform-GybT0X0u.js +0 -8
- package/dist/src/transformersAvailability-DkAWaK5B.js +0 -35
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
const require_logger = require(
|
|
2
|
-
const require_esm = require(
|
|
3
|
-
require(
|
|
4
|
-
require(
|
|
5
|
-
const require_store = require(
|
|
1
|
+
const require_logger = require("./logger-Cp1GPUjj.cjs");
|
|
2
|
+
const require_esm = require("./esm-CnNt7sI4.cjs");
|
|
3
|
+
require("./types-LJ0r3wbR.cjs");
|
|
4
|
+
require("./tables-C7K-XKWp.cjs");
|
|
5
|
+
const require_store = require("./store-BSc-TF2w.cjs");
|
|
6
6
|
let path = require("path");
|
|
7
7
|
path = require_logger.__toESM(path);
|
|
8
8
|
let express = require("express");
|
|
9
9
|
express = require_logger.__toESM(express);
|
|
10
10
|
let protobufjs = require("protobufjs");
|
|
11
11
|
protobufjs = require_logger.__toESM(protobufjs);
|
|
12
|
-
|
|
13
12
|
//#region src/tracing/protobuf.ts
|
|
14
13
|
/**
|
|
15
14
|
* OTLP Protobuf decoder for trace data
|
|
@@ -31,9 +30,9 @@ function getProtoDir() {
|
|
|
31
30
|
*/
|
|
32
31
|
async function loadProtoDefinitions() {
|
|
33
32
|
if (protoRoot) return protoRoot;
|
|
34
|
-
require_logger.
|
|
33
|
+
require_logger.logger.debug("[Protobuf] Loading OTLP proto definitions");
|
|
35
34
|
const protoDir = getProtoDir();
|
|
36
|
-
require_logger.
|
|
35
|
+
require_logger.logger.debug(`[Protobuf] Proto directory: ${protoDir}`);
|
|
37
36
|
try {
|
|
38
37
|
const root = new protobufjs.default.Root();
|
|
39
38
|
root.resolvePath = (_origin, target) => {
|
|
@@ -41,10 +40,10 @@ async function loadProtoDefinitions() {
|
|
|
41
40
|
};
|
|
42
41
|
await root.load("opentelemetry/proto/collector/trace/v1/trace_service.proto");
|
|
43
42
|
protoRoot = root;
|
|
44
|
-
require_logger.
|
|
43
|
+
require_logger.logger.debug("[Protobuf] Successfully loaded OTLP proto definitions");
|
|
45
44
|
return protoRoot;
|
|
46
45
|
} catch (error) {
|
|
47
|
-
require_logger.
|
|
46
|
+
require_logger.logger.error(`[Protobuf] Failed to load proto definitions: ${error}`);
|
|
48
47
|
throw error;
|
|
49
48
|
}
|
|
50
49
|
}
|
|
@@ -79,14 +78,13 @@ async function decodeExportTraceServiceRequest(data) {
|
|
|
79
78
|
defaults: true,
|
|
80
79
|
arrays: true
|
|
81
80
|
});
|
|
82
|
-
require_logger.
|
|
81
|
+
require_logger.logger.debug(`[Protobuf] Decoded ExportTraceServiceRequest with ${decoded.resourceSpans?.length || 0} resource spans`);
|
|
83
82
|
return decoded;
|
|
84
83
|
} catch (error) {
|
|
85
|
-
require_logger.
|
|
84
|
+
require_logger.logger.error(`[Protobuf] Failed to decode ExportTraceServiceRequest: ${error}`);
|
|
86
85
|
throw new Error(`Invalid protobuf data: ${error instanceof Error ? error.message : error}`);
|
|
87
86
|
}
|
|
88
87
|
}
|
|
89
|
-
|
|
90
88
|
//#endregion
|
|
91
89
|
//#region src/tracing/otlpReceiver.ts
|
|
92
90
|
const SPAN_KIND_MAP = {
|
|
@@ -105,7 +103,7 @@ var OTLPReceiver = class {
|
|
|
105
103
|
constructor() {
|
|
106
104
|
this.app = (0, express.default)();
|
|
107
105
|
this.traceStore = require_store.getTraceStore();
|
|
108
|
-
require_logger.
|
|
106
|
+
require_logger.logger.debug("[OtlpReceiver] Initializing OTLP receiver");
|
|
109
107
|
this.setupMiddleware();
|
|
110
108
|
this.setupRoutes();
|
|
111
109
|
}
|
|
@@ -118,14 +116,14 @@ var OTLPReceiver = class {
|
|
|
118
116
|
type: "application/x-protobuf",
|
|
119
117
|
limit: "10mb"
|
|
120
118
|
}));
|
|
121
|
-
require_logger.
|
|
119
|
+
require_logger.logger.debug("[OtlpReceiver] Middleware configured for JSON and protobuf");
|
|
122
120
|
}
|
|
123
121
|
setupRoutes() {
|
|
124
122
|
this.app.post("/v1/traces", async (req, res) => {
|
|
125
123
|
const contentType = req.headers["content-type"] || "unknown";
|
|
126
124
|
const bodySize = req.body ? JSON.stringify(req.body).length : 0;
|
|
127
|
-
require_logger.
|
|
128
|
-
require_logger.
|
|
125
|
+
require_logger.logger.debug(`[OtlpReceiver] Received trace request: ${req.headers["content-type"]} with ${bodySize} bytes`);
|
|
126
|
+
require_logger.logger.debug("[OtlpReceiver] Starting to process traces");
|
|
129
127
|
const isJson = contentType === "application/json";
|
|
130
128
|
const isProtobuf = contentType === "application/x-protobuf";
|
|
131
129
|
if (!isJson && !isProtobuf) {
|
|
@@ -135,15 +133,15 @@ var OTLPReceiver = class {
|
|
|
135
133
|
try {
|
|
136
134
|
let traces = [];
|
|
137
135
|
if (isJson) {
|
|
138
|
-
require_logger.
|
|
139
|
-
require_logger.
|
|
136
|
+
require_logger.logger.debug("[OtlpReceiver] Parsing OTLP JSON request");
|
|
137
|
+
require_logger.logger.debug(`[OtlpReceiver] Request body: ${JSON.stringify(req.body).substring(0, 500)}...`);
|
|
140
138
|
traces = this.parseOTLPJSONRequest(req.body);
|
|
141
139
|
} else if (isProtobuf) {
|
|
142
|
-
require_logger.
|
|
143
|
-
require_logger.
|
|
140
|
+
require_logger.logger.debug("[OtlpReceiver] Parsing OTLP protobuf request");
|
|
141
|
+
require_logger.logger.debug(`[OtlpReceiver] Request body size: ${req.body?.length || 0} bytes`);
|
|
144
142
|
traces = await this.parseOTLPProtobufRequest(req.body);
|
|
145
143
|
}
|
|
146
|
-
require_logger.
|
|
144
|
+
require_logger.logger.debug(`[OtlpReceiver] Parsed ${traces.length} traces from request`);
|
|
147
145
|
const spansByTrace = /* @__PURE__ */ new Map();
|
|
148
146
|
const traceInfoById = /* @__PURE__ */ new Map();
|
|
149
147
|
for (const trace of traces) {
|
|
@@ -158,26 +156,26 @@ var OTLPReceiver = class {
|
|
|
158
156
|
}
|
|
159
157
|
spansByTrace.get(trace.traceId).push(trace.span);
|
|
160
158
|
}
|
|
161
|
-
require_logger.
|
|
159
|
+
require_logger.logger.debug(`[OtlpReceiver] Grouped spans into ${spansByTrace.size} traces`);
|
|
162
160
|
for (const [traceId, info] of traceInfoById) try {
|
|
163
|
-
require_logger.
|
|
161
|
+
require_logger.logger.debug(`[OtlpReceiver] Creating trace record for ${traceId}`);
|
|
164
162
|
await this.traceStore.createTrace({
|
|
165
163
|
traceId,
|
|
166
164
|
evaluationId: info.evaluationId || "",
|
|
167
165
|
testCaseId: info.testCaseId || ""
|
|
168
166
|
});
|
|
169
167
|
} catch (error) {
|
|
170
|
-
require_logger.
|
|
168
|
+
require_logger.logger.debug(`[OtlpReceiver] Trace ${traceId} may already exist: ${error}`);
|
|
171
169
|
}
|
|
172
170
|
for (const [traceId, spans] of spansByTrace) {
|
|
173
|
-
require_logger.
|
|
171
|
+
require_logger.logger.debug(`[OtlpReceiver] Storing ${spans.length} spans for trace ${traceId}`);
|
|
174
172
|
await this.traceStore.addSpans(traceId, spans, { skipTraceCheck: true });
|
|
175
173
|
}
|
|
176
174
|
res.status(200).json({ partialSuccess: {} });
|
|
177
|
-
require_logger.
|
|
175
|
+
require_logger.logger.debug("[OtlpReceiver] Successfully processed traces");
|
|
178
176
|
} catch (error) {
|
|
179
|
-
require_logger.
|
|
180
|
-
require_logger.
|
|
177
|
+
require_logger.logger.error(`[OtlpReceiver] Failed to process OTLP traces: ${error}`);
|
|
178
|
+
require_logger.logger.error(`[OtlpReceiver] Error stack: ${error instanceof Error ? error.stack : "No stack"}`);
|
|
181
179
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
182
180
|
if (errorMessage.toLowerCase().includes("invalid protobuf")) {
|
|
183
181
|
res.status(400).json({ error: errorMessage });
|
|
@@ -187,7 +185,7 @@ var OTLPReceiver = class {
|
|
|
187
185
|
}
|
|
188
186
|
});
|
|
189
187
|
this.app.get("/health", (_req, res) => {
|
|
190
|
-
require_logger.
|
|
188
|
+
require_logger.logger.debug("[OtlpReceiver] Health check requested");
|
|
191
189
|
res.status(200).json({ status: "ok" });
|
|
192
190
|
});
|
|
193
191
|
this.app.get("/v1/traces", (_req, res) => {
|
|
@@ -206,8 +204,8 @@ var OTLPReceiver = class {
|
|
|
206
204
|
});
|
|
207
205
|
});
|
|
208
206
|
this.app.use((error, _req, res, _next) => {
|
|
209
|
-
require_logger.
|
|
210
|
-
require_logger.
|
|
207
|
+
require_logger.logger.error(`[OtlpReceiver] Global error handler: ${error}`);
|
|
208
|
+
require_logger.logger.error(`[OtlpReceiver] Error stack: ${error.stack}`);
|
|
211
209
|
if (error instanceof SyntaxError && "body" in error) {
|
|
212
210
|
res.status(400).json({ error: "Invalid JSON" });
|
|
213
211
|
return;
|
|
@@ -217,15 +215,15 @@ var OTLPReceiver = class {
|
|
|
217
215
|
}
|
|
218
216
|
parseOTLPJSONRequest(body) {
|
|
219
217
|
const traces = [];
|
|
220
|
-
require_logger.
|
|
218
|
+
require_logger.logger.debug(`[OtlpReceiver] Parsing request with ${body.resourceSpans?.length || 0} resource spans`);
|
|
221
219
|
for (const resourceSpan of body.resourceSpans) {
|
|
222
220
|
const resourceAttributes = this.parseAttributes(resourceSpan.resource?.attributes);
|
|
223
|
-
require_logger.
|
|
221
|
+
require_logger.logger.debug(`[OtlpReceiver] Parsed ${Object.keys(resourceAttributes).length} resource attributes`);
|
|
224
222
|
for (const scopeSpan of resourceSpan.scopeSpans) for (const span of scopeSpan.spans) {
|
|
225
223
|
const traceId = this.convertId(span.traceId, 32);
|
|
226
224
|
const spanId = this.convertId(span.spanId, 16);
|
|
227
225
|
const parentSpanId = span.parentSpanId ? this.convertId(span.parentSpanId, 16) : void 0;
|
|
228
|
-
require_logger.
|
|
226
|
+
require_logger.logger.debug(`[OtlpReceiver] Processing span: ${span.name} (${spanId}) in trace ${traceId}`);
|
|
229
227
|
const spanKindName = SPAN_KIND_MAP[span.kind] ?? "unspecified";
|
|
230
228
|
const attributes = {
|
|
231
229
|
...resourceAttributes,
|
|
@@ -255,15 +253,15 @@ var OTLPReceiver = class {
|
|
|
255
253
|
async parseOTLPProtobufRequest(body) {
|
|
256
254
|
const traces = [];
|
|
257
255
|
const decoded = await decodeExportTraceServiceRequest(body);
|
|
258
|
-
require_logger.
|
|
256
|
+
require_logger.logger.debug(`[OtlpReceiver] Parsing protobuf request with ${decoded.resourceSpans?.length || 0} resource spans`);
|
|
259
257
|
for (const resourceSpan of decoded.resourceSpans || []) {
|
|
260
258
|
const resourceAttributes = this.parseDecodedAttributes(resourceSpan.resource?.attributes);
|
|
261
|
-
require_logger.
|
|
259
|
+
require_logger.logger.debug(`[OtlpReceiver] Parsed ${Object.keys(resourceAttributes).length} resource attributes from protobuf`);
|
|
262
260
|
for (const scopeSpan of resourceSpan.scopeSpans || []) for (const span of scopeSpan.spans || []) {
|
|
263
261
|
const traceId = bytesToHex(span.traceId, 32);
|
|
264
262
|
const spanId = bytesToHex(span.spanId, 16);
|
|
265
263
|
const parentSpanId = span.parentSpanId?.length ? bytesToHex(span.parentSpanId, 16) : void 0;
|
|
266
|
-
require_logger.
|
|
264
|
+
require_logger.logger.debug(`[OtlpReceiver] Processing protobuf span: ${span.name} (${spanId}) in trace ${traceId}`);
|
|
267
265
|
const spanKindName = SPAN_KIND_MAP[span.kind ?? 0] ?? "unspecified";
|
|
268
266
|
const attributes = {
|
|
269
267
|
...resourceAttributes,
|
|
@@ -337,53 +335,53 @@ var OTLPReceiver = class {
|
|
|
337
335
|
}
|
|
338
336
|
}
|
|
339
337
|
convertId(id, expectedHexLength) {
|
|
340
|
-
require_logger.
|
|
338
|
+
require_logger.logger.debug(`[OtlpReceiver] Converting ID: ${id} (length: ${id.length}, expected hex length: ${expectedHexLength})`);
|
|
341
339
|
if (id.length === expectedHexLength && /^[0-9a-f]+$/i.test(id)) {
|
|
342
|
-
require_logger.
|
|
340
|
+
require_logger.logger.debug(`[OtlpReceiver] ID is already hex format`);
|
|
343
341
|
return id.toLowerCase();
|
|
344
342
|
}
|
|
345
343
|
try {
|
|
346
344
|
const buffer = Buffer.from(id, "base64");
|
|
347
345
|
const hex = buffer.toString("hex");
|
|
348
|
-
require_logger.
|
|
346
|
+
require_logger.logger.debug(`[OtlpReceiver] Base64 decoded: ${id} -> ${hex} (${buffer.length} bytes)`);
|
|
349
347
|
const utf8String = buffer.toString("utf8");
|
|
350
348
|
if (utf8String.length === expectedHexLength && /^[0-9a-f]+$/i.test(utf8String)) {
|
|
351
|
-
require_logger.
|
|
349
|
+
require_logger.logger.debug(`[OtlpReceiver] Detected hex string encoded as UTF-8: ${utf8String}`);
|
|
352
350
|
return utf8String.toLowerCase();
|
|
353
351
|
}
|
|
354
352
|
if (hex.length === expectedHexLength) return hex;
|
|
355
|
-
require_logger.
|
|
353
|
+
require_logger.logger.warn(`[OtlpReceiver] Unexpected ID format: ${id} -> ${hex} (expected ${expectedHexLength} hex chars)`);
|
|
356
354
|
return id.toLowerCase();
|
|
357
355
|
} catch (error) {
|
|
358
|
-
require_logger.
|
|
356
|
+
require_logger.logger.error(`[OtlpReceiver] Failed to convert ID: ${error}`);
|
|
359
357
|
return id.toLowerCase();
|
|
360
358
|
}
|
|
361
359
|
}
|
|
362
360
|
listen(port = 4318, host = "127.0.0.1") {
|
|
363
361
|
this.port = port;
|
|
364
|
-
require_logger.
|
|
362
|
+
require_logger.logger.debug(`[OtlpReceiver] Starting receiver on ${host}:${port}`);
|
|
365
363
|
return new Promise((resolve, reject) => {
|
|
366
364
|
this.server = this.app.listen(port, host, () => {
|
|
367
|
-
require_logger.
|
|
368
|
-
require_logger.
|
|
365
|
+
require_logger.logger.info(`[OtlpReceiver] Listening on http://${host}:${port}`);
|
|
366
|
+
require_logger.logger.debug("[OtlpReceiver] Receiver fully initialized and ready to accept traces");
|
|
369
367
|
resolve();
|
|
370
368
|
});
|
|
371
369
|
this.server.on("error", (error) => {
|
|
372
|
-
require_logger.
|
|
370
|
+
require_logger.logger.error(`[OtlpReceiver] Failed to start: ${error}`);
|
|
373
371
|
reject(error);
|
|
374
372
|
});
|
|
375
373
|
});
|
|
376
374
|
}
|
|
377
375
|
stop() {
|
|
378
|
-
require_logger.
|
|
376
|
+
require_logger.logger.debug("[OtlpReceiver] Stopping receiver");
|
|
379
377
|
return new Promise((resolve) => {
|
|
380
378
|
if (this.server) this.server.close(() => {
|
|
381
|
-
require_logger.
|
|
379
|
+
require_logger.logger.info("[OtlpReceiver] Server stopped");
|
|
382
380
|
this.server = void 0;
|
|
383
381
|
resolve();
|
|
384
382
|
});
|
|
385
383
|
else {
|
|
386
|
-
require_logger.
|
|
384
|
+
require_logger.logger.debug("[OtlpReceiver] No server to stop");
|
|
387
385
|
resolve();
|
|
388
386
|
}
|
|
389
387
|
});
|
|
@@ -398,18 +396,18 @@ function getOTLPReceiver() {
|
|
|
398
396
|
return otlpReceiver;
|
|
399
397
|
}
|
|
400
398
|
async function startOTLPReceiver(port, host) {
|
|
401
|
-
require_logger.
|
|
399
|
+
require_logger.logger.debug("[OtlpReceiver] Starting receiver through startOTLPReceiver function");
|
|
402
400
|
await getOTLPReceiver().listen(port, host);
|
|
403
401
|
}
|
|
404
402
|
async function stopOTLPReceiver() {
|
|
405
|
-
require_logger.
|
|
403
|
+
require_logger.logger.debug("[OtlpReceiver] Stopping receiver through stopOTLPReceiver function");
|
|
406
404
|
if (otlpReceiver) {
|
|
407
405
|
await otlpReceiver.stop();
|
|
408
406
|
otlpReceiver = null;
|
|
409
407
|
}
|
|
410
408
|
}
|
|
411
|
-
|
|
412
409
|
//#endregion
|
|
413
410
|
exports.startOTLPReceiver = startOTLPReceiver;
|
|
414
411
|
exports.stopOTLPReceiver = stopOTLPReceiver;
|
|
415
|
-
|
|
412
|
+
|
|
413
|
+
//# sourceMappingURL=otlpReceiver-Diec4cln.cjs.map
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import { i as
|
|
2
|
-
import
|
|
3
|
-
import "./
|
|
4
|
-
import "./
|
|
5
|
-
import {
|
|
1
|
+
import { i as logger } from "./logger-DLcq4dWf.js";
|
|
2
|
+
import "./tables-xKANLRBD.js";
|
|
3
|
+
import { t as getDirectory } from "./esm-CaIwzWR5.js";
|
|
4
|
+
import "./types-CN_TZ2GJ.js";
|
|
5
|
+
import { t as getTraceStore } from "./store-Ub2vaGJ1.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-g3ByGaXs.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
|