promptfoo 0.121.1 → 0.121.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/{accounts-BgNJDBE6.js → accounts-B0pgC1oV.js} +4 -4
- package/dist/src/{accounts-CMqkzrVf.js → accounts-Bm2D8Db9.js} +5 -5
- package/dist/src/{accounts-xrUGFA6n.js → accounts-CiBLOnA7.js} +4 -4
- package/dist/src/{accounts-Bx-x3bmW.cjs → accounts-gtkH-5KX.cjs} +4 -4
- package/dist/src/{agentic-utils-BKIN5PKu.js → agentic-utils-DS1g3GLF.js} +2 -2
- package/dist/src/{agents-CVIn-Utx.js → agents-9qiOy0ho.js} +6 -6
- package/dist/src/{agents-CXknwsFX.js → agents-CBr9A01V.js} +2 -2
- package/dist/src/{agents-aF4-T121.js → agents-CmvBq8LV.js} +6 -6
- package/dist/src/{agents-Dy2YpZpa.js → agents-D__IdAlg.js} +3 -3
- package/dist/src/{agents-B0f4HICh.cjs → agents-DbRtpYxR.cjs} +2 -2
- package/dist/src/{agents-C-dDThPK.js → agents-DgF2zDag.js} +2 -2
- package/dist/src/{agents-CErsqg5U.cjs → agents-Di9DKPzn.cjs} +6 -6
- package/dist/src/{agents-DeH4Gu94.js → agents-cLXA8a_8.js} +7 -7
- package/dist/src/{aimlapi-DHRKlBEA.js → aimlapi-B4rcnZgv.js} +9 -9
- package/dist/src/{aimlapi-tg0Gkcvr.cjs → aimlapi-BvlNH0gr.cjs} +9 -9
- package/dist/src/{aimlapi-BAGZDo5G.js → aimlapi-CnkC2HqE.js} +10 -10
- package/dist/src/{aimlapi-BNfTBexL.js → aimlapi-DHJU_kcV.js} +9 -9
- package/dist/src/app/assets/{index-BFCZg7hQ.js → index-4LKxG2CG.js} +84 -84
- package/dist/src/app/assets/{index-NCn4eVBv.css → index-C3zcsZFQ.css} +1 -1
- package/dist/src/app/assets/vendor-charts-BnDWwBlI.js +36 -0
- package/dist/src/app/index.html +3 -3
- package/dist/src/app/tsconfig.app.tsbuildinfo +1 -0
- package/dist/src/{audio-CHQ4r-RV.js → audio-Bkv46et0.js} +3 -3
- package/dist/src/{audio-BWeaWovU.cjs → audio-CGMyULza.cjs} +3 -3
- package/dist/src/{audio-tf_NBjlC.js → audio-ClI_AFre.js} +3 -3
- package/dist/src/{audio-BRODU0UK.js → audio-Dz3z7s3J.js} +4 -4
- package/dist/src/{base-DBtwl2FR.cjs → base-CGrhspbK.cjs} +2 -2
- package/dist/src/{base-fEDN28WM.js → base-CpjcHe4e.js} +2 -2
- package/dist/src/{base-B0tcrnq_.js → base-DLKtKMFh.js} +2 -2
- package/dist/src/{base-B4QJRyFS.js → base-Dy1V8--Z.js} +2 -2
- package/dist/src/{blobs-qTYm-1PY.js → blobs-BDbfYdrJ.js} +2 -2
- package/dist/src/{blobs-Bpg5rH6i.js → blobs-CBO20krR.js} +2 -2
- package/dist/src/{blobs-BAU-dXan.js → blobs-CMHN0Qcz.js} +2 -2
- package/dist/src/{blobs-DvS-O6be.cjs → blobs-D23XLin-.cjs} +2 -2
- package/dist/src/{cache-CG0SlR1d.js → cache-BVeDlD87.js} +74 -57
- package/dist/src/{cache-8XhNqPKW.js → cache-C4Nxf52C.js} +74 -57
- package/dist/src/{cache-Bbn1Nyrd.cjs → cache-CeUpFm3M.cjs} +2 -2
- package/dist/src/{cache-COish3-W.cjs → cache-Dh5WtQps.cjs} +74 -57
- package/dist/src/{cache-D3eqDYGU.js → cache-i1P6crbO.js} +74 -57
- package/dist/src/cache-n-RCJ-hL.js +6 -0
- package/dist/src/{chat-CRWNNq73.js → chat-BiKyneZl.js} +10 -8
- package/dist/src/{chat-2K608PeQ.cjs → chat-C1Qst7jL.cjs} +8 -8
- package/dist/src/{chat-CM_kyI8B.js → chat-C2jrdPMx.js} +8 -8
- package/dist/src/{chat-DaqekjFr.cjs → chat-CgF-J-Jj.cjs} +10 -8
- package/dist/src/{chat-DHMH-N64.js → chat-CzkrVDfz.js} +8 -8
- package/dist/src/{chat-BKm79wib.js → chat-DJIw17u0.js} +10 -8
- package/dist/src/{chat-CznLWr_D.js → chat-DqxYYtWA.js} +10 -8
- package/dist/src/{chat-DxysjBvt.js → chat-qmatte1u.js} +9 -9
- package/dist/src/{claude-agent-sdk-BLTu0WBO.js → claude-agent-sdk-Apiy0iaz.js} +8 -8
- package/dist/src/{claude-agent-sdk-D6_k9FKA.js → claude-agent-sdk-D2bJee9S.js} +8 -8
- package/dist/src/{claude-agent-sdk-CJH22shf.cjs → claude-agent-sdk-D9Z5Pr9X.cjs} +8 -8
- package/dist/src/{claude-agent-sdk-Dy5lT-Tx.js → claude-agent-sdk-DfCoW0E6.js} +9 -9
- package/dist/src/{cloud-DmE0EwsY.js → cloud-BBh91EUK.js} +1 -1
- package/dist/src/{cloud-Bc9526yV.js → cloud-C0dlstV_.js} +2 -2
- package/dist/src/{cloudflare-ai-C9r2sRhw.js → cloudflare-ai-8TDxHR0x.js} +9 -9
- package/dist/src/{cloudflare-ai-ICsOuD-z.js → cloudflare-ai-BxAGvfju.js} +10 -10
- package/dist/src/{cloudflare-ai-ClWSdor4.cjs → cloudflare-ai-CknbZ5LJ.cjs} +9 -9
- package/dist/src/{cloudflare-ai-CWWJCRim.js → cloudflare-ai-g7PB6VHR.js} +9 -9
- package/dist/src/{cloudflare-gateway-D6O7AlYb.js → cloudflare-gateway-B9HWA5wf.js} +11 -11
- package/dist/src/{cloudflare-gateway-C2_-KG5o.cjs → cloudflare-gateway-BSnDmHYo.cjs} +10 -10
- package/dist/src/{cloudflare-gateway-pXGHxJ47.js → cloudflare-gateway-CKDb4dJ8.js} +10 -10
- package/dist/src/{cloudflare-gateway-D6xFc5pa.js → cloudflare-gateway-CP9QEWYS.js} +10 -10
- package/dist/src/{cometapi-Bbjp5V4x.js → cometapi-BL9yvj_f.js} +10 -10
- package/dist/src/{cometapi-vY6aDZgo.cjs → cometapi-C4xSqeID.cjs} +10 -10
- package/dist/src/{cometapi-DkXrKi5z.js → cometapi-CUQq3H_a.js} +10 -10
- package/dist/src/{cometapi-BasUi7-_.js → cometapi-DFNiKmSz.js} +11 -11
- package/dist/src/{completion-C_P3ypkJ.js → completion-5MzrpJxT.js} +4 -4
- package/dist/src/{completion-CDOouNzq.cjs → completion-CM6oK8PS.cjs} +4 -4
- package/dist/src/{completion-C5rtR_9P.js → completion-DZ083F31.js} +4 -4
- package/dist/src/{completion-6Mx_iXxK.js → completion-qRoZAYRB.js} +4 -4
- package/dist/src/{docker-CZnqU1XV.js → docker-Bb5dcxr8.js} +9 -9
- package/dist/src/{docker-DzxyDPIj.js → docker-BvfL2BrW.js} +10 -10
- package/dist/src/{docker-BwsKwxFs.cjs → docker-DcF2pRrj.cjs} +9 -9
- package/dist/src/{docker-5KcG-_86.js → docker-ExVyLp0S.js} +9 -9
- package/dist/src/eval-B3r2CVXr.js +15 -0
- package/dist/src/{eval-DmFyWU7i.js → eval-Dg2nG4v2.js} +8 -8
- package/dist/src/evalResult-5xwYnECe.js +12 -0
- package/dist/src/evalResult-71lY93Kj.cjs +10 -0
- package/dist/src/{evalResult-CTG2AHOS.js → evalResult-BBRNtX4I.js} +5 -5
- package/dist/src/{evalResult-CDQiuUuf.js → evalResult-BDMqrapS.js} +5 -5
- package/dist/src/evalResult-Dx5P5cIv.js +10 -0
- package/dist/src/{evalResult-Dap2CekP.cjs → evalResult-fuaI8HkH.cjs} +5 -5
- package/dist/src/{evaluator-DPFRbFIL.js → evaluator-BhoWwp5b.js} +30 -26
- package/dist/src/evaluator-Jx6bRZV6.js +36 -0
- package/dist/src/{extractor-M67RUtg6.js → extractor-C0EVHewb.js} +5 -5
- package/dist/src/{extractor-YMU_Gvt8.js → extractor-D25qpmGX.js} +5 -5
- package/dist/src/{extractor-CFG6bcWJ.js → extractor-DReVID0K.js} +5 -5
- package/dist/src/{extractor-DX36oYEv.cjs → extractor-pYLLi3wS.cjs} +5 -5
- package/dist/src/{fetch-BxUk8odA.cjs → fetch-BPkYtG8K.cjs} +2 -2
- package/dist/src/fetch-BxNb_Lp3.js +5 -0
- package/dist/src/{fetch-60Gzydls.js → fetch-Cwxnd8zz.js} +2 -2
- package/dist/src/{fetch-BMv0O527.js → fetch-Dxpd4_sr.js} +3 -3
- package/dist/src/{fetch-4M3YRaqL.js → fetch-HaqdX7U1.js} +2 -2
- package/dist/src/{graders-CpdqD9PI.js → graders-BTeBGqjJ.js} +13 -13
- package/dist/src/graders-B_pgMLS2.js +34 -0
- package/dist/src/{graders-CHO8EPM4.js → graders-Bj_Odv7c.js} +13 -13
- package/dist/src/graders-DErokPDO.cjs +32 -0
- package/dist/src/{graders-R9rYUM0d.js → graders-DP7KFFo-.js} +13 -13
- package/dist/src/graders-DR_uNe54.js +32 -0
- package/dist/src/{graders-DOXycdlG.cjs → graders-DU49_J8Y.cjs} +13 -13
- package/dist/src/graders-w3176Wz-.js +32 -0
- package/dist/src/{image-gvmivTEe.js → image-B02ogr_b.js} +4 -4
- package/dist/src/{image-tL5hIOFh.js → image-B0h9VEMc.js} +3 -3
- package/dist/src/{image-DTedmQPg.cjs → image-BLmROtN3.cjs} +4 -4
- package/dist/src/{image-DJEvKveK.js → image-Bb4vWQLM.js} +3 -3
- package/dist/src/{image-CDLQOcqT.cjs → image-C1madmKh.cjs} +3 -3
- package/dist/src/{image-BmEZqVmk.js → image-CHfWvljl.js} +4 -4
- package/dist/src/{image-CBBVXWuT.js → image-DS-o-0ph.js} +4 -4
- package/dist/src/{image-pAX56tPG.js → image-Dpxa1Jt6.js} +4 -4
- package/dist/src/index.cjs +38 -34
- package/dist/src/index.d.cts +260 -0
- package/dist/src/index.d.ts +260 -0
- package/dist/src/index.js +38 -34
- package/dist/src/{knowledgeBase-CoU-UQBg.js → knowledgeBase-B3OoKIej.js} +6 -6
- package/dist/src/{knowledgeBase-CLJybhnF.js → knowledgeBase-CYTLHOt1.js} +7 -7
- package/dist/src/{knowledgeBase-DjWPVqSb.js → knowledgeBase-D33Ty2l6.js} +6 -6
- package/dist/src/{knowledgeBase-wkxuRFhA.cjs → knowledgeBase-DOO_BM9b.cjs} +6 -6
- package/dist/src/{litellm-B9Hysuri.js → litellm-AaeZcZQF.js} +12 -11
- package/dist/src/{litellm-NYpQ8RQu.cjs → litellm-I_hbp_dc.cjs} +11 -10
- package/dist/src/{litellm-ePxtr9F1.js → litellm-NbjknEh6.js} +11 -10
- package/dist/src/{litellm-CTfa0hqi.js → litellm-TrljxD9G.js} +11 -10
- package/dist/src/{luma-ray-BW9IRGIc.js → luma-ray-BS2_tY8L.js} +9 -9
- package/dist/src/{luma-ray-BE2mOt6N.js → luma-ray-DDsjcgZZ.js} +8 -8
- package/dist/src/{luma-ray-B0GGNRc1.cjs → luma-ray-Due0n7di.cjs} +8 -8
- package/dist/src/{luma-ray-Cm1KZBhs.js → luma-ray-f6I2fft-.js} +8 -8
- package/dist/src/main.js +33 -33
- package/dist/src/{messages-BLbWdsyt.js → messages-BS17jdMx.js} +7 -7
- package/dist/src/{messages-1JrJs91T.cjs → messages-Bs1kC7P4.cjs} +7 -7
- package/dist/src/{messages-1x9atZmP.js → messages-D0lx5qK7.js} +7 -7
- package/dist/src/{messages-D8EA0oDc.js → messages-ZJk778GH.js} +7 -7
- package/dist/src/{modelslab-X5-4LroM.js → modelslab-Bmni6skY.js} +8 -8
- package/dist/src/{modelslab-CqXBy3U8.js → modelslab-Bx9IrZfS.js} +9 -9
- package/dist/src/{modelslab-DcOSFwKh.cjs → modelslab-CoUX6Jc_.cjs} +8 -8
- package/dist/src/{modelslab-C1OLRmVX.js → modelslab-DRb74SP4.js} +8 -8
- package/dist/src/{nova-reel-BgS1ZWuK.js → nova-reel-BfPq-0Yk.js} +8 -8
- package/dist/src/{nova-reel-D9xfaMBs.cjs → nova-reel-C_QM18Xn.cjs} +8 -8
- package/dist/src/{nova-reel-D2ZkOSyr.js → nova-reel-D_W1tjMH.js} +9 -9
- package/dist/src/{nova-reel-DihqLeol.js → nova-reel-bgjxilYW.js} +8 -8
- package/dist/src/{nova-sonic-DezhVUYT.js → nova-sonic-CFb5GYhg.js} +5 -5
- package/dist/src/{nova-sonic-P-CdUMlV.js → nova-sonic-DIGQNR07.js} +5 -5
- package/dist/src/{nova-sonic-Q3BOJeig.js → nova-sonic-De1HW5fD.js} +6 -6
- package/dist/src/{nova-sonic-DVu3mMIy.cjs → nova-sonic-zfcljeRp.cjs} +5 -5
- package/dist/src/{openclaw-DAfWQn-o.cjs → openclaw-CSugPYAr.cjs} +169 -105
- package/dist/src/{openclaw-D1D_ej1z.js → openclaw-DiSz3I5L.js} +169 -106
- package/dist/src/{openclaw-BiSZPL7J.js → openclaw-DuvJKEW5.js} +168 -105
- package/dist/src/{openclaw-Bv1DINsX.js → openclaw-tiVYRtr-.js} +168 -105
- package/dist/src/{opencode-sdk-D95s6SnR.js → opencode-sdk-0j6rTWNb.js} +5 -5
- package/dist/src/{opencode-sdk-DxUPkLT7.js → opencode-sdk-B3CWY9h_.js} +4 -4
- package/dist/src/{opencode-sdk-CfaLN8PY.cjs → opencode-sdk-BL764Jdi.cjs} +4 -4
- package/dist/src/{opencode-sdk-C7m-wRfI.js → opencode-sdk-C2y6UkP2.js} +4 -4
- package/dist/src/{otlpReceiver-g3ByGaXs.js → otlpReceiver-C99PPb48.js} +4 -4
- package/dist/src/{otlpReceiver-Diec4cln.cjs → otlpReceiver-CGq6LspY.cjs} +4 -4
- package/dist/src/{otlpReceiver--AIRW_S4.js → otlpReceiver-CdNBdbsk.js} +4 -4
- package/dist/src/{otlpReceiver-Bn5wGB1v.js → otlpReceiver-D89fR-rC.js} +4 -4
- package/dist/src/providers-B7V0njNs.js +32 -0
- package/dist/src/providers-BEwbhv0X.js +30 -0
- package/dist/src/{providers-CFLy1_ji.js → providers-BlqUifFg.js} +54 -54
- package/dist/src/providers-CH3C7zf7.js +30 -0
- package/dist/src/{providers-CFu-TZl-.cjs → providers-CgKOSgTR.cjs} +53 -53
- package/dist/src/{providers-B3HvufyI.js → providers-D8lF1sqW.js} +53 -53
- package/dist/src/{providers-BKRJTjBz.js → providers-Dk_6ocUX.js} +53 -53
- package/dist/src/providers-zyB6k_38.cjs +31 -0
- package/dist/src/{quiverai-C2jVwbH1.js → quiverai-BbOUOn2L.js} +3 -3
- package/dist/src/{quiverai-CI6gYJVI.js → quiverai-CIaELU_m.js} +3 -3
- package/dist/src/{quiverai-CLkWkyZc.cjs → quiverai-PdShCPox.cjs} +3 -3
- package/dist/src/{quiverai-MHSxbmmZ.js → quiverai-uH-dcTIr.js} +4 -4
- package/dist/src/{responses-jxdehPkC.js → responses-CB2jwoAr.js} +7 -7
- package/dist/src/{responses-tD4Bd4dc.cjs → responses-D8SBTL64.cjs} +7 -7
- package/dist/src/{responses-BKqJmhhc.js → responses-DIR9Ud3j.js} +7 -7
- package/dist/src/{responses-CGw0DCzh.js → responses-WNGNYe3K.js} +7 -7
- package/dist/src/{sagemaker-BK4Zb993.js → sagemaker-CNBxx5CJ.js} +11 -11
- package/dist/src/{sagemaker-D2Q1c-sD.js → sagemaker-CemTFp2h.js} +11 -11
- package/dist/src/{sagemaker-CcQHM1jV.cjs → sagemaker-Cl28mZU2.cjs} +11 -11
- package/dist/src/{sagemaker-BfiWTmvn.js → sagemaker-YSyBXQQh.js} +12 -12
- package/dist/src/{scanner-J8CA3LsV.js → scanner-BsBlNXNn.js} +7 -7
- package/dist/src/server/index.js +39 -35
- package/dist/src/{server-B0PPuDw-.cjs → server-C_7Ax-hA.cjs} +3 -3
- package/dist/src/{server-DbFphssR.js → server-CqzrVGpF.js} +5 -5
- package/dist/src/{server-OAs3nBRT.js → server-CuxBbeSY.js} +4 -4
- package/dist/src/server-DA4Cyrrq.js +7 -0
- package/dist/src/server-Dulb-4-K.cjs +5 -0
- package/dist/src/{server-BC7XJFgr.js → server-VWgWb00X.js} +3 -3
- package/dist/src/{signal-BOTbd53Z.js → signal-4U3mfRvL.js} +2 -2
- package/dist/src/{store-Ub2vaGJ1.js → store-CXGFv4aR.js} +2 -2
- package/dist/src/store-CXS-Q_91.js +6 -0
- package/dist/src/{store-BSc-TF2w.cjs → store-DLlFCC4h.cjs} +2 -2
- package/dist/src/{store-DQLEjuEO.js → store-DXilxTl-.js} +2 -2
- package/dist/src/{store-D1tv90v3.js → store-Dim__MDd.js} +2 -2
- package/dist/src/store-eYkaKMwq.cjs +5 -0
- package/dist/src/{tables-5EvT_Bwn.js → tables-6YKwjN9-.js} +2 -2
- package/dist/src/{tables-xKANLRBD.js → tables-DLJPUdUE.js} +2 -2
- package/dist/src/{tables-C7K-XKWp.cjs → tables-DPi7wKeM.cjs} +2 -2
- package/dist/src/{tables-D36WTqKX.js → tables-gftXzE9I.js} +2 -2
- package/dist/src/telemetry-BpMfhthR.cjs +5 -0
- package/dist/src/{telemetry-C2YDkUQH.js → telemetry-CMrFgtPB.js} +3 -3
- package/dist/src/{telemetry-DMb2Mpfm.js → telemetry-Cps3mIU-.js} +3 -3
- package/dist/src/{telemetry-CbrnxHp_.cjs → telemetry-DaX14Chu.cjs} +3 -3
- package/dist/src/{telemetry-C15ziL8u.js → telemetry-Dthj_BbD.js} +3 -3
- package/dist/src/telemetry-Dw38hanS.js +7 -0
- package/dist/src/{transcription-DAtxHhAM.js → transcription-BNYURcXg.js} +6 -6
- package/dist/src/{transcription-LNZTNUUL.js → transcription-B_OdaHp7.js} +6 -6
- package/dist/src/{transcription-CL78qbOU.cjs → transcription-NLVG9MT1.cjs} +6 -6
- package/dist/src/{transcription-QHh3AH6Z.js → transcription-s6A-bNrZ.js} +7 -7
- package/dist/src/{transform-Cgi24fJ7.js → transform-D5HsjduX.js} +3 -3
- package/dist/src/{transform-DOcQeLld.cjs → transform-DuHvhZpj.cjs} +3 -3
- package/dist/src/{transform-DGxXocjk.js → transform-uAytVuyX.js} +3 -3
- package/dist/src/{transform-DGLazrMm.js → transform-vNucnNr0.js} +3 -3
- package/dist/src/{types-LJ0r3wbR.cjs → types-C_7nyzr1.cjs} +39 -11
- package/dist/src/{types-CH3Ge2sE.js → types-Cbd8uOMq.js} +39 -11
- package/dist/src/{types-CN_TZ2GJ.js → types-CzW2QFyi.js} +39 -11
- package/dist/src/{types-CLKiCBW3.js → types-DmyIJ-sR.js} +39 -11
- package/dist/src/{util-B7T3SiBS.js → util-B3xGByQh.js} +3 -3
- package/dist/src/{util-Yz-1aEhW.cjs → util-B9vlHIIh.cjs} +3 -7
- package/dist/src/{util-ZZH-3QZz.js → util-BHGHw5G1.js} +3 -3
- package/dist/src/{util-Dlz_Wvgm.js → util-BRYkYPTd.js} +3 -7
- package/dist/src/{util-6-GqIvzS.js → util-BV4XUC0n.js} +3 -3
- package/dist/src/{util-DaWTWKBK.js → util-Bv6uGDfH.js} +3 -3
- package/dist/src/{util-Db0a0AFH.cjs → util-BzMcevZc.cjs} +3 -3
- package/dist/src/{util-YT5HPZaS.js → util-C1CeHl-P.js} +3 -7
- package/dist/src/{util-C-PPYSMq.js → util-CMy69ZgQ.js} +3 -3
- package/dist/src/{util-CchiqXh_.cjs → util-DGNOS1db.cjs} +3 -3
- package/dist/src/{util-Betm42rL.js → util-Dnmk2mBQ.js} +3 -3
- package/dist/src/{util-5cB-L7U3.js → util-ZzmqNPlg.js} +3 -7
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +12 -12
- package/dist/src/app/assets/vendor-charts-CCl15Imd.js +0 -36
- package/dist/src/cache-BwsMSda7.js +0 -6
- package/dist/src/eval-17JizQIv.js +0 -15
- package/dist/src/evalResult-Cqj8pldJ.js +0 -12
- package/dist/src/evalResult-DvcJAWJU.cjs +0 -10
- package/dist/src/evalResult-Hftn-S_i.js +0 -10
- package/dist/src/evaluator-B2CFNt-P.js +0 -36
- package/dist/src/fetch-KV5kNASw.js +0 -5
- package/dist/src/graders-Bu0H9nXi.js +0 -32
- package/dist/src/graders-Cfhkvx-e.js +0 -34
- package/dist/src/graders-DClJVpGP.cjs +0 -32
- package/dist/src/graders-DcnJsrMO.js +0 -32
- package/dist/src/providers-C1rOSHiR.js +0 -32
- package/dist/src/providers-CxmDwEFf.cjs +0 -31
- package/dist/src/providers-Dodakqr0.js +0 -30
- package/dist/src/providers-GIQ2TcsA.js +0 -30
- package/dist/src/server-B1vi21hA.js +0 -7
- package/dist/src/server-Cm9Kai_h.cjs +0 -5
- package/dist/src/store-BNmZ1KAz.cjs +0 -5
- package/dist/src/store-BltJg2cd.js +0 -6
- package/dist/src/telemetry-5BCRNBbe.cjs +0 -5
- package/dist/src/telemetry-D4W5hboe.js +0 -7
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
const require_logger = require("./logger-Cp1GPUjj.cjs");
|
|
2
2
|
require("./esm-CnNt7sI4.cjs");
|
|
3
3
|
require("./pythonUtils-CTU3Y3lw.cjs");
|
|
4
|
-
require("./types-
|
|
5
|
-
require("./util-
|
|
6
|
-
const require_fetch = require("./fetch-
|
|
7
|
-
require("./cache-
|
|
4
|
+
require("./types-C_7nyzr1.cjs");
|
|
5
|
+
require("./util-B9vlHIIh.cjs");
|
|
6
|
+
const require_fetch = require("./fetch-BPkYtG8K.cjs");
|
|
7
|
+
require("./cache-Dh5WtQps.cjs");
|
|
8
8
|
require("./genaiTracer-DN4dQywX.cjs");
|
|
9
|
-
const require_chat = require("./chat-
|
|
10
|
-
require("./transform-
|
|
11
|
-
const require_responses = require("./responses-
|
|
9
|
+
const require_chat = require("./chat-CgF-J-Jj.cjs");
|
|
10
|
+
require("./transform-DuHvhZpj.cjs");
|
|
11
|
+
const require_responses = require("./responses-D8SBTL64.cjs");
|
|
12
12
|
require("./openai-Cuif0GEt.cjs");
|
|
13
|
-
require("./util-
|
|
13
|
+
require("./util-BzMcevZc.cjs");
|
|
14
14
|
let fs = require("fs");
|
|
15
15
|
fs = require_logger.__toESM(fs);
|
|
16
16
|
let path = require("path");
|
|
@@ -21,75 +21,97 @@ let crypto = require("crypto");
|
|
|
21
21
|
crypto = require_logger.__toESM(crypto);
|
|
22
22
|
let ws = require("ws");
|
|
23
23
|
ws = require_logger.__toESM(ws);
|
|
24
|
+
let json5 = require("json5");
|
|
25
|
+
json5 = require_logger.__toESM(json5);
|
|
24
26
|
//#region src/providers/openclaw/shared.ts
|
|
25
27
|
const DEFAULT_GATEWAY_PORT = 18789;
|
|
26
28
|
const DEFAULT_GATEWAY_HOST = "127.0.0.1";
|
|
27
29
|
/**
|
|
28
|
-
* Strip JSON5 syntax (comments and trailing commas) for JSON.parse compatibility.
|
|
29
|
-
* Uses a state machine to avoid corrupting strings containing // or slash characters.
|
|
30
|
-
*/
|
|
31
|
-
function stripJson5Syntax(raw) {
|
|
32
|
-
let result = "";
|
|
33
|
-
let i = 0;
|
|
34
|
-
let inString = false;
|
|
35
|
-
let stringQuote = "";
|
|
36
|
-
let escape = false;
|
|
37
|
-
while (i < raw.length) {
|
|
38
|
-
const ch = raw[i];
|
|
39
|
-
if (inString) {
|
|
40
|
-
result += ch;
|
|
41
|
-
if (escape) escape = false;
|
|
42
|
-
else if (ch === "\\") escape = true;
|
|
43
|
-
else if (ch === stringQuote) inString = false;
|
|
44
|
-
i++;
|
|
45
|
-
continue;
|
|
46
|
-
}
|
|
47
|
-
if (ch === "\"" || ch === "'") {
|
|
48
|
-
inString = true;
|
|
49
|
-
stringQuote = ch;
|
|
50
|
-
result += ch;
|
|
51
|
-
i++;
|
|
52
|
-
} else if (ch === "/" && raw[i + 1] === "/") while (i < raw.length && raw[i] !== "\n") i++;
|
|
53
|
-
else if (ch === "/" && raw[i + 1] === "*") {
|
|
54
|
-
i += 2;
|
|
55
|
-
while (i < raw.length - 1 && !(raw[i] === "*" && raw[i + 1] === "/")) i++;
|
|
56
|
-
if (i < raw.length - 1 && raw[i] === "*" && raw[i + 1] === "/") i += 2;
|
|
57
|
-
} else if (ch === ",") {
|
|
58
|
-
let j = i + 1;
|
|
59
|
-
while (j < raw.length && (raw[j] === " " || raw[j] === " " || raw[j] === "\n" || raw[j] === "\r")) j++;
|
|
60
|
-
if (j < raw.length && (raw[j] === "}" || raw[j] === "]")) i++;
|
|
61
|
-
else {
|
|
62
|
-
result += ch;
|
|
63
|
-
i++;
|
|
64
|
-
}
|
|
65
|
-
} else {
|
|
66
|
-
result += ch;
|
|
67
|
-
i++;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
return result;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
30
|
* Cached config to avoid re-reading the file multiple times during provider init.
|
|
74
31
|
*/
|
|
75
32
|
let cachedConfig;
|
|
33
|
+
let cachedConfigPath;
|
|
34
|
+
function resolveConfigPath(env) {
|
|
35
|
+
return env?.OPENCLAW_CONFIG_PATH || require_logger.getEnvString("OPENCLAW_CONFIG_PATH") || path.default.join(os.default.homedir(), ".openclaw", "openclaw.json");
|
|
36
|
+
}
|
|
37
|
+
function normalizeGatewayUrl(url, transport) {
|
|
38
|
+
const trimmed = url.trim();
|
|
39
|
+
if (!trimmed) return;
|
|
40
|
+
if (transport === "http") {
|
|
41
|
+
if (trimmed.startsWith("wss://")) return `https://${trimmed.slice(6)}`;
|
|
42
|
+
if (trimmed.startsWith("ws://")) return `http://${trimmed.slice(5)}`;
|
|
43
|
+
return trimmed;
|
|
44
|
+
}
|
|
45
|
+
if (trimmed.startsWith("https://")) return `wss://${trimmed.slice(8)}`;
|
|
46
|
+
if (trimmed.startsWith("http://")) return `ws://${trimmed.slice(7)}`;
|
|
47
|
+
return trimmed;
|
|
48
|
+
}
|
|
49
|
+
function resolveGatewayHost(gatewayConfig) {
|
|
50
|
+
const bind = gatewayConfig?.bind?.trim();
|
|
51
|
+
const customBindHost = gatewayConfig?.customBindHost?.trim();
|
|
52
|
+
if (!bind || bind === "auto" || bind === "loopback" || bind === "lan" || bind === "tailnet" || bind === "0.0.0.0" || bind === "::" || bind === "127.0.0.1" || bind === "localhost" || bind === "::1") return DEFAULT_GATEWAY_HOST;
|
|
53
|
+
if (bind === "custom") {
|
|
54
|
+
if (!customBindHost || customBindHost === "0.0.0.0" || customBindHost === "::" || customBindHost === "127.0.0.1" || customBindHost === "localhost" || customBindHost === "::1") return DEFAULT_GATEWAY_HOST;
|
|
55
|
+
return customBindHost;
|
|
56
|
+
}
|
|
57
|
+
return bind;
|
|
58
|
+
}
|
|
59
|
+
function buildLocalGatewayUrl(gatewayConfig, transport) {
|
|
60
|
+
const scheme = transport === "ws" ? gatewayConfig?.tls?.enabled ? "wss" : "ws" : gatewayConfig?.tls?.enabled ? "https" : "http";
|
|
61
|
+
const port = gatewayConfig?.port ?? 18789;
|
|
62
|
+
return `${scheme}://${resolveGatewayHost(gatewayConfig)}:${port}`;
|
|
63
|
+
}
|
|
64
|
+
function resolveGatewayUrlFromConfig(openclawConfig, transport) {
|
|
65
|
+
const gatewayConfig = openclawConfig?.gateway;
|
|
66
|
+
if (!gatewayConfig) return;
|
|
67
|
+
if (gatewayConfig.mode === "remote") {
|
|
68
|
+
const remoteUrl = normalizeGatewayUrl(gatewayConfig.remote?.url ?? "", transport);
|
|
69
|
+
if (remoteUrl) return remoteUrl;
|
|
70
|
+
}
|
|
71
|
+
return buildLocalGatewayUrl(gatewayConfig, transport);
|
|
72
|
+
}
|
|
73
|
+
function toAuthSecret(kind, value) {
|
|
74
|
+
const trimmed = value?.trim();
|
|
75
|
+
return trimmed ? {
|
|
76
|
+
kind,
|
|
77
|
+
value: trimmed
|
|
78
|
+
} : void 0;
|
|
79
|
+
}
|
|
80
|
+
function resolveAuthSecretFromConfig(openclawConfig) {
|
|
81
|
+
const gatewayConfig = openclawConfig?.gateway;
|
|
82
|
+
const authMode = gatewayConfig?.auth?.mode?.trim();
|
|
83
|
+
const preferRemoteCredentials = gatewayConfig?.mode === "remote";
|
|
84
|
+
const localToken = toAuthSecret("token", gatewayConfig?.auth?.token);
|
|
85
|
+
const localPassword = toAuthSecret("password", gatewayConfig?.auth?.password);
|
|
86
|
+
const remoteToken = toAuthSecret("token", gatewayConfig?.remote?.token);
|
|
87
|
+
const remotePassword = toAuthSecret("password", gatewayConfig?.remote?.password);
|
|
88
|
+
if (preferRemoteCredentials) {
|
|
89
|
+
if (authMode === "password") return remotePassword || localPassword || remoteToken || localToken;
|
|
90
|
+
if (authMode === "token") return remoteToken || localToken || remotePassword || localPassword;
|
|
91
|
+
return remoteToken || remotePassword || localToken || localPassword;
|
|
92
|
+
}
|
|
93
|
+
if (authMode === "password") return localPassword || remotePassword || localToken || remoteToken;
|
|
94
|
+
if (authMode === "token") return localToken || remoteToken || localPassword || remotePassword;
|
|
95
|
+
return localToken || localPassword || remoteToken || remotePassword;
|
|
96
|
+
}
|
|
76
97
|
/**
|
|
77
|
-
* Read and parse the OpenClaw configuration file.
|
|
98
|
+
* Read and parse the active OpenClaw configuration file.
|
|
78
99
|
* Results are cached based on file modification time.
|
|
79
100
|
* Returns undefined if the file doesn't exist or can't be parsed.
|
|
80
101
|
*/
|
|
81
|
-
function readOpenClawConfig() {
|
|
82
|
-
const configPath =
|
|
102
|
+
function readOpenClawConfig(env) {
|
|
103
|
+
const configPath = resolveConfigPath(env);
|
|
83
104
|
try {
|
|
84
105
|
if (!fs.default.existsSync(configPath)) return;
|
|
85
106
|
const mtime = fs.default.statSync(configPath).mtimeMs;
|
|
86
|
-
if (cachedConfig && cachedConfig.mtime === mtime) return cachedConfig.config;
|
|
87
|
-
const
|
|
88
|
-
const config =
|
|
107
|
+
if (cachedConfig && cachedConfigPath === configPath && cachedConfig.mtime === mtime) return cachedConfig.config;
|
|
108
|
+
const raw = fs.default.readFileSync(configPath, "utf-8");
|
|
109
|
+
const config = json5.default.parse(raw);
|
|
89
110
|
cachedConfig = {
|
|
90
111
|
config,
|
|
91
112
|
mtime
|
|
92
113
|
};
|
|
114
|
+
cachedConfigPath = configPath;
|
|
93
115
|
return config;
|
|
94
116
|
} catch (err) {
|
|
95
117
|
require_logger.logger.debug(`Failed to read OpenClaw config at ${configPath}: ${err}`);
|
|
@@ -97,28 +119,50 @@ function readOpenClawConfig() {
|
|
|
97
119
|
}
|
|
98
120
|
}
|
|
99
121
|
/**
|
|
100
|
-
* Auto-detect the OpenClaw gateway URL from config, env overrides, or
|
|
122
|
+
* Auto-detect the OpenClaw gateway URL from config, env overrides, or the active config file.
|
|
101
123
|
*/
|
|
102
124
|
function resolveGatewayUrl(config, env) {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
return
|
|
125
|
+
return resolveGatewayTransportUrl(config, env, "http");
|
|
126
|
+
}
|
|
127
|
+
function resolveGatewayWsUrl(config, env) {
|
|
128
|
+
return resolveGatewayTransportUrl(config, env, "ws");
|
|
129
|
+
}
|
|
130
|
+
function resolveGatewayTransportUrl(config, env, transport) {
|
|
131
|
+
const configUrl = config?.gateway_url?.trim();
|
|
132
|
+
if (configUrl) return normalizeGatewayUrl(configUrl, transport) || configUrl;
|
|
133
|
+
const trimmedEnvUrl = (env?.OPENCLAW_GATEWAY_URL || require_logger.getEnvString("OPENCLAW_GATEWAY_URL") || env?.CLAWDBOT_GATEWAY_URL || require_logger.getEnvString("CLAWDBOT_GATEWAY_URL"))?.trim();
|
|
134
|
+
if (trimmedEnvUrl) return normalizeGatewayUrl(trimmedEnvUrl, transport) || trimmedEnvUrl;
|
|
135
|
+
const resolvedUrl = resolveGatewayUrlFromConfig(readOpenClawConfig(env), transport);
|
|
136
|
+
if (resolvedUrl) return resolvedUrl;
|
|
137
|
+
return `${transport === "ws" ? "ws" : "http"}://${DEFAULT_GATEWAY_HOST}:${DEFAULT_GATEWAY_PORT}`;
|
|
138
|
+
}
|
|
139
|
+
function resolveAuthSecret(config, env) {
|
|
140
|
+
if (config?.auth_token) return {
|
|
141
|
+
kind: "token",
|
|
142
|
+
value: config.auth_token
|
|
143
|
+
};
|
|
144
|
+
if (config?.auth_password) return {
|
|
145
|
+
kind: "password",
|
|
146
|
+
value: config.auth_password
|
|
147
|
+
};
|
|
148
|
+
const envToken = env?.OPENCLAW_GATEWAY_TOKEN || require_logger.getEnvString("OPENCLAW_GATEWAY_TOKEN") || env?.CLAWDBOT_GATEWAY_TOKEN || require_logger.getEnvString("CLAWDBOT_GATEWAY_TOKEN");
|
|
149
|
+
if (envToken) return {
|
|
150
|
+
kind: "token",
|
|
151
|
+
value: envToken
|
|
152
|
+
};
|
|
153
|
+
const envPassword = env?.OPENCLAW_GATEWAY_PASSWORD || require_logger.getEnvString("OPENCLAW_GATEWAY_PASSWORD") || env?.CLAWDBOT_GATEWAY_PASSWORD || require_logger.getEnvString("CLAWDBOT_GATEWAY_PASSWORD");
|
|
154
|
+
if (envPassword) return {
|
|
155
|
+
kind: "password",
|
|
156
|
+
value: envPassword
|
|
157
|
+
};
|
|
158
|
+
return resolveAuthSecretFromConfig(readOpenClawConfig(env));
|
|
113
159
|
}
|
|
114
160
|
/**
|
|
115
|
-
* Auto-detect the OpenClaw gateway
|
|
161
|
+
* Auto-detect the OpenClaw gateway bearer secret from config, env overrides, or the active
|
|
162
|
+
* config file. OpenClaw accepts either a token or password as the HTTP bearer secret.
|
|
116
163
|
*/
|
|
117
164
|
function resolveAuthToken(config, env) {
|
|
118
|
-
|
|
119
|
-
const envToken = env?.OPENCLAW_GATEWAY_TOKEN || require_logger.getEnvString("OPENCLAW_GATEWAY_TOKEN");
|
|
120
|
-
if (envToken) return envToken;
|
|
121
|
-
return readOpenClawConfig()?.gateway?.auth?.token;
|
|
165
|
+
return resolveAuthSecret(config, env)?.value;
|
|
122
166
|
}
|
|
123
167
|
/**
|
|
124
168
|
* Build common OpenClaw headers for agent-id and session-key.
|
|
@@ -178,7 +222,8 @@ const OPENCLAW_PROTOCOL_VERSION = 3;
|
|
|
178
222
|
var OpenClawAgentProvider = class {
|
|
179
223
|
agentId;
|
|
180
224
|
gatewayUrl;
|
|
181
|
-
|
|
225
|
+
authKind;
|
|
226
|
+
authSecret;
|
|
182
227
|
openclawConfig;
|
|
183
228
|
timeoutMs;
|
|
184
229
|
activeConnections = /* @__PURE__ */ new Set();
|
|
@@ -186,8 +231,10 @@ var OpenClawAgentProvider = class {
|
|
|
186
231
|
this.agentId = agentId;
|
|
187
232
|
this.openclawConfig = providerOptions.config || {};
|
|
188
233
|
const env = providerOptions.env;
|
|
189
|
-
this.gatewayUrl =
|
|
190
|
-
|
|
234
|
+
this.gatewayUrl = resolveGatewayWsUrl(this.openclawConfig, env);
|
|
235
|
+
const authSecret = resolveAuthSecret(this.openclawConfig, env);
|
|
236
|
+
this.authKind = authSecret?.kind;
|
|
237
|
+
this.authSecret = authSecret?.value;
|
|
191
238
|
this.timeoutMs = this.openclawConfig.timeoutMs ?? require_fetch.REQUEST_TIMEOUT_MS;
|
|
192
239
|
}
|
|
193
240
|
id() {
|
|
@@ -204,9 +251,9 @@ var OpenClawAgentProvider = class {
|
|
|
204
251
|
this.activeConnections.clear();
|
|
205
252
|
}
|
|
206
253
|
async callApi(prompt) {
|
|
207
|
-
const
|
|
254
|
+
const sessionKey = this.openclawConfig.session_key || `promptfoo-${crypto.default.randomUUID()}`;
|
|
208
255
|
return new Promise((resolve) => {
|
|
209
|
-
const ws$2 = new ws.default(
|
|
256
|
+
const ws$2 = new ws.default(this.gatewayUrl);
|
|
210
257
|
this.activeConnections.add(ws$2);
|
|
211
258
|
const agentRequestId = crypto.default.randomUUID();
|
|
212
259
|
const waitRequestId = crypto.default.randomUUID();
|
|
@@ -215,27 +262,23 @@ var OpenClawAgentProvider = class {
|
|
|
215
262
|
let runId;
|
|
216
263
|
let connected = false;
|
|
217
264
|
let resolved = false;
|
|
218
|
-
const
|
|
219
|
-
if (!resolved) {
|
|
220
|
-
resolved = true;
|
|
221
|
-
ws$2.close();
|
|
222
|
-
resolve({ error: `OpenClaw agent request timed out after ${this.timeoutMs}ms` });
|
|
223
|
-
}
|
|
224
|
-
}, this.timeoutMs);
|
|
225
|
-
const finish = (result) => {
|
|
265
|
+
const finish = (result, closeSocket = true) => {
|
|
226
266
|
if (resolved) return;
|
|
227
267
|
resolved = true;
|
|
228
268
|
clearTimeout(timeout);
|
|
229
269
|
this.activeConnections.delete(ws$2);
|
|
230
|
-
ws$2.close();
|
|
270
|
+
if (closeSocket) ws$2.close();
|
|
231
271
|
resolve(result);
|
|
232
272
|
};
|
|
273
|
+
const timeout = setTimeout(() => {
|
|
274
|
+
finish({ error: `OpenClaw agent request timed out after ${this.timeoutMs}ms` });
|
|
275
|
+
}, this.timeoutMs);
|
|
233
276
|
ws$2.on("error", (err) => {
|
|
234
277
|
finish({ error: `OpenClaw WebSocket error: ${err.message}` });
|
|
235
278
|
});
|
|
236
279
|
ws$2.on("close", () => {
|
|
237
280
|
this.activeConnections.delete(ws$2);
|
|
238
|
-
if (!resolved) finish({ error: "OpenClaw WebSocket connection closed unexpectedly" });
|
|
281
|
+
if (!resolved) finish({ error: "OpenClaw WebSocket connection closed unexpectedly" }, false);
|
|
239
282
|
});
|
|
240
283
|
ws$2.on("message", (data) => {
|
|
241
284
|
let frame;
|
|
@@ -270,7 +313,7 @@ var OpenClawAgentProvider = class {
|
|
|
270
313
|
caps: [],
|
|
271
314
|
commands: [],
|
|
272
315
|
permissions: {},
|
|
273
|
-
...this.
|
|
316
|
+
...this.authSecret && this.authKind && { auth: this.authKind === "password" ? { password: this.authSecret } : { token: this.authSecret } }
|
|
274
317
|
}
|
|
275
318
|
}));
|
|
276
319
|
return;
|
|
@@ -289,8 +332,9 @@ var OpenClawAgentProvider = class {
|
|
|
289
332
|
message: prompt,
|
|
290
333
|
agentId: this.agentId,
|
|
291
334
|
idempotencyKey,
|
|
292
|
-
|
|
293
|
-
...this.openclawConfig.thinking_level && { thinking: this.openclawConfig.thinking_level }
|
|
335
|
+
sessionKey,
|
|
336
|
+
...this.openclawConfig.thinking_level && { thinking: this.openclawConfig.thinking_level },
|
|
337
|
+
...this.openclawConfig.extra_system_prompt && { extraSystemPrompt: this.openclawConfig.extra_system_prompt }
|
|
294
338
|
}
|
|
295
339
|
}));
|
|
296
340
|
return;
|
|
@@ -300,8 +344,17 @@ var OpenClawAgentProvider = class {
|
|
|
300
344
|
finish({ error: `OpenClaw agent error: ${frame.error?.message || "unknown error"}` });
|
|
301
345
|
return;
|
|
302
346
|
}
|
|
303
|
-
|
|
304
|
-
|
|
347
|
+
const payload = frame.payload;
|
|
348
|
+
runId = typeof payload?.runId === "string" && payload.runId.trim() ? payload.runId : void 0;
|
|
349
|
+
if (!runId) {
|
|
350
|
+
require_logger.logger.warn("[OpenClaw Agent] Missing runId in accepted response", {
|
|
351
|
+
agentId: this.agentId,
|
|
352
|
+
payload
|
|
353
|
+
});
|
|
354
|
+
finish({ error: "OpenClaw agent error: gateway accepted request without a runId" });
|
|
355
|
+
return;
|
|
356
|
+
}
|
|
357
|
+
ws$2.send(JSON.stringify({
|
|
305
358
|
type: "req",
|
|
306
359
|
id: waitRequestId,
|
|
307
360
|
method: "agent.wait",
|
|
@@ -333,10 +386,11 @@ var OpenClawAgentProvider = class {
|
|
|
333
386
|
* OpenClaw chat provider extends OpenAI chat completion provider.
|
|
334
387
|
*
|
|
335
388
|
* OpenClaw exposes an OpenAI-compatible HTTP API at /v1/chat/completions.
|
|
336
|
-
* This provider auto-detects gateway URL and auth
|
|
337
|
-
* 1. Explicit config (gateway_url, auth_token)
|
|
338
|
-
* 2. Environment variables (OPENCLAW_GATEWAY_URL, OPENCLAW_GATEWAY_TOKEN)
|
|
339
|
-
* 3. ~/.openclaw/openclaw.json
|
|
389
|
+
* This provider auto-detects gateway URL and bearer auth from:
|
|
390
|
+
* 1. Explicit config (gateway_url, auth_token, auth_password)
|
|
391
|
+
* 2. Environment variables (OPENCLAW_GATEWAY_URL, OPENCLAW_GATEWAY_TOKEN, OPENCLAW_GATEWAY_PASSWORD)
|
|
392
|
+
* 3. The active OpenClaw config file (OPENCLAW_CONFIG_PATH or ~/.openclaw/openclaw.json),
|
|
393
|
+
* including gateway.remote.url and gateway.tls.enabled
|
|
340
394
|
*
|
|
341
395
|
* Usage:
|
|
342
396
|
* openclaw - default agent (main)
|
|
@@ -413,14 +467,19 @@ var OpenClawResponsesProvider = class extends require_responses.OpenAiResponsesP
|
|
|
413
467
|
* OpenClaw Tool Invoke Provider
|
|
414
468
|
*
|
|
415
469
|
* Simple HTTP provider for direct tool invocation via POST /tools/invoke.
|
|
416
|
-
* The tool name is extracted from the provider path:
|
|
470
|
+
* The tool name is extracted from the provider path:
|
|
471
|
+
* openclaw:tools:sessions_list → tool="sessions_list"
|
|
417
472
|
*
|
|
418
473
|
* The prompt is parsed as JSON for tool arguments. If it's not valid JSON,
|
|
419
474
|
* it's passed as a single `input` argument.
|
|
420
475
|
*
|
|
421
476
|
* Usage:
|
|
422
|
-
* openclaw:tools:
|
|
423
|
-
* openclaw:tools:
|
|
477
|
+
* openclaw:tools:sessions_list - invoke the sessions_list tool
|
|
478
|
+
* openclaw:tools:session_status - invoke the session_status tool
|
|
479
|
+
*
|
|
480
|
+
* Optional config:
|
|
481
|
+
* action - tool sub-action, forwarded as body.action
|
|
482
|
+
* dry_run - dry-run hint, forwarded as body.dryRun
|
|
424
483
|
*/
|
|
425
484
|
var OpenClawToolInvokeProvider = class {
|
|
426
485
|
toolName;
|
|
@@ -453,11 +512,16 @@ var OpenClawToolInvokeProvider = class {
|
|
|
453
512
|
args = { input: prompt };
|
|
454
513
|
}
|
|
455
514
|
const url = `${this.gatewayUrl}/tools/invoke`;
|
|
456
|
-
const headers = {
|
|
515
|
+
const headers = {
|
|
516
|
+
"Content-Type": "application/json",
|
|
517
|
+
...this.openclawConfig.headers || {}
|
|
518
|
+
};
|
|
457
519
|
if (this.authToken) headers["Authorization"] = `Bearer ${this.authToken}`;
|
|
458
520
|
const body = {
|
|
459
521
|
tool: this.toolName,
|
|
522
|
+
...this.openclawConfig.action && { action: this.openclawConfig.action },
|
|
460
523
|
args,
|
|
524
|
+
...typeof this.openclawConfig.dry_run === "boolean" && { dryRun: this.openclawConfig.dry_run },
|
|
461
525
|
...this.openclawConfig.session_key && { sessionKey: this.openclawConfig.session_key }
|
|
462
526
|
};
|
|
463
527
|
require_logger.logger.debug(`[OpenClaw Tool] POST ${url}`, {
|
|
@@ -498,7 +562,7 @@ var OpenClawToolInvokeProvider = class {
|
|
|
498
562
|
* openclaw:responses:X → OpenClawResponsesProvider('X')
|
|
499
563
|
* openclaw:agent → OpenClawAgentProvider('main')
|
|
500
564
|
* openclaw:agent:X → OpenClawAgentProvider('X')
|
|
501
|
-
* openclaw:tools:
|
|
565
|
+
* openclaw:tools:sessions_list → OpenClawToolInvokeProvider('sessions_list')
|
|
502
566
|
*/
|
|
503
567
|
function createOpenClawProvider(providerPath, providerOptions = {}, env) {
|
|
504
568
|
const splits = providerPath.split(":");
|
|
@@ -519,4 +583,4 @@ function createOpenClawProvider(providerPath, providerOptions = {}, env) {
|
|
|
519
583
|
//#endregion
|
|
520
584
|
exports.createOpenClawProvider = createOpenClawProvider;
|
|
521
585
|
|
|
522
|
-
//# sourceMappingURL=openclaw-
|
|
586
|
+
//# sourceMappingURL=openclaw-CSugPYAr.cjs.map
|