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.
Files changed (394) hide show
  1. package/README.md +1 -1
  2. package/dist/src/{ListApp-Du7YVwj5.js → ListApp-BRUsT43Y.js} +1 -1
  3. package/dist/src/{accounts-BPyfpSeU.cjs → accounts-BIFntVWB.cjs} +5 -5
  4. package/dist/src/{accounts-CFLK3mnD.js → accounts-CLJHCDDb.js} +6 -6
  5. package/dist/src/{accounts-B2XmGjty.js → accounts-CaLNYnf7.js} +5 -5
  6. package/dist/src/{accounts-Xatc0RYb.js → accounts-bnyHT7Ju.js} +5 -5
  7. package/dist/src/{agentic-utils-36epdqwB.js → agentic-utils-B5krlibj.js} +3 -3
  8. package/dist/src/{agentic-utils-DIYAAYE7.js → agentic-utils-Ba67xmgs.js} +3 -3
  9. package/dist/src/{agentic-utils-D8yXo5Lm.js → agentic-utils-BclbiXiq.js} +4 -4
  10. package/dist/src/{agentic-utils-DAVsChuB.cjs → agentic-utils-D2x0wGhB.cjs} +3 -3
  11. package/dist/src/{agents-CLQ-P15P.js → agents-BGqaTDnr.js} +5 -7
  12. package/dist/src/{agents-wg3ohknq.js → agents-BV9yFpXX.js} +6 -7
  13. package/dist/src/{agents-CgBniSlI.js → agents-BYdMl1UE.js} +5 -9
  14. package/dist/src/{agents-Bqgfdokm.js → agents-DhxWMCtH.js} +35 -14
  15. package/dist/src/{agents-BBWxKSM0.cjs → agents-DiWmQYH9.cjs} +5 -7
  16. package/dist/src/{agents-CAYbM7qD.cjs → agents-WULPVjbH.cjs} +34 -12
  17. package/dist/src/{agents-DSSTV4bv.js → agents-emVcx3yh.js} +35 -13
  18. package/dist/src/{agents-BBVJCIYr.js → agents-n6vPqV3i.js} +35 -13
  19. package/dist/src/{aimlapi-BwGC1TtS.js → aimlapi-BxqK9HF_.js} +8 -14
  20. package/dist/src/{aimlapi-Bv8Fmc-b.cjs → aimlapi-BzLjZI_m.cjs} +8 -15
  21. package/dist/src/{aimlapi-MgSLdvy7.js → aimlapi-DR4pgeiC.js} +7 -14
  22. package/dist/src/{aimlapi-DaC3qZ-o.js → aimlapi-uPGp0Zdo.js} +7 -16
  23. package/dist/src/app/app/tsconfig.app.tsbuildinfo +1 -0
  24. package/dist/src/app/assets/Report-vjzrbgce.js +1 -0
  25. package/dist/src/app/assets/index-B3NQ8HTd.js +385 -0
  26. package/dist/src/app/assets/index-Cli2yAXv.css +1 -0
  27. package/dist/src/app/assets/rolldown-runtime-COnpUsM8.js +1 -0
  28. package/dist/src/app/assets/scroll-timeline-D9IT_e8Z.js +1 -0
  29. package/dist/src/app/assets/sync-IjzpWrOE.js +4 -0
  30. package/dist/src/app/assets/vendor-charts-BNdH8TCw.js +36 -0
  31. package/dist/src/app/assets/vendor-markdown-Ch00wnNI.js +29 -0
  32. package/dist/src/app/assets/vendor-react-CVvmk1UB.js +9 -0
  33. package/dist/src/app/assets/vendor-utils-BnEYbx2Q.js +37 -0
  34. package/dist/src/app/index.html +32 -7
  35. package/dist/src/{audio-Bn44pQxv.js → audio-BvpTOArF.js} +4 -4
  36. package/dist/src/{audio-DVFjQ67_.cjs → audio-C0vDeS0j.cjs} +4 -4
  37. package/dist/src/{audio-DjU9GswO.js → audio-CScmnmEB.js} +4 -5
  38. package/dist/src/{audio-DDA5WHdx.js → audio-Da8U9IS5.js} +4 -4
  39. package/dist/src/{base-CKjwebIH.js → base-BOMaNEes.js} +3 -3
  40. package/dist/src/{base-CqzQ4K8j.js → base-BTux96b1.js} +3 -3
  41. package/dist/src/{base-BboXIF_0.cjs → base-Tw6uhH8K.cjs} +3 -3
  42. package/dist/src/{base-Cz2ZC_iA.js → base-dYsl2hmL.js} +3 -3
  43. package/dist/src/{blobs-C6j0bvFz.cjs → blobs-B95F_7vE.cjs} +3 -3
  44. package/dist/src/{blobs-DXTl6J3H.js → blobs-BW4U31ue.js} +3 -3
  45. package/dist/src/{blobs-BUWmKWzo.js → blobs-D_gg8nbm.js} +4 -4
  46. package/dist/src/{blobs-B1JriOyi.js → blobs-DjLby-uP.js} +4 -4
  47. package/dist/src/cache-BI5BY7ey.js +280 -0
  48. package/dist/src/cache-BRkhlH3k.cjs +3 -0
  49. package/dist/src/cache-BlC6aeJ0.js +3 -0
  50. package/dist/src/cache-Bzttsk0X.js +310 -0
  51. package/dist/src/cache-Cr-qWIbP.js +310 -0
  52. package/dist/src/cache-DGg-yTZG.cjs +376 -0
  53. package/dist/src/{chat-BEwdgGEg.js → chat-BLOdH60v.js} +63 -37
  54. package/dist/src/{chat-B0iaWhoh.js → chat-Cx_LkwvZ.js} +63 -37
  55. package/dist/src/{chat-DK1U-eZ-.js → chat-D9nudO9b.js} +5 -14
  56. package/dist/src/{chat-pxmiVpWe.js → chat-DChSH_Es.js} +63 -37
  57. package/dist/src/{chat-B-52XYI1.js → chat-DG2LkwLq.js} +3 -13
  58. package/dist/src/{chat-BtIKkLKx.cjs → chat-DH97tVV9.cjs} +3 -13
  59. package/dist/src/{chat-BE0qTA8e.js → chat-aMQZw6R7.js} +4 -16
  60. package/dist/src/{chat-CM8qWR3_.cjs → chat-vYqqv1gP.cjs} +64 -38
  61. package/dist/src/{chatkit-_8eJqKcD.js → chatkit-B8X34dQc.js} +4 -4
  62. package/dist/src/{chatkit-BYGQlHlV.js → chatkit-BXu42Qwt.js} +4 -4
  63. package/dist/src/{chatkit-a2D6mY6s.js → chatkit-CbMRoeYw.js} +4 -4
  64. package/dist/src/{chatkit-Cx174XI3.cjs → chatkit-D44VyUyB.cjs} +4 -4
  65. package/dist/src/{claude-agent-sdk-8ddRp1L2.cjs → claude-agent-sdk-BRq0bbIK.cjs} +23 -18
  66. package/dist/src/{claude-agent-sdk-CMjh4LFH.js → claude-agent-sdk-BjriSVRZ.js} +20 -15
  67. package/dist/src/{claude-agent-sdk-HgbFioFw.js → claude-agent-sdk-BzNZeZ0N.js} +20 -15
  68. package/dist/src/{claude-agent-sdk-Bq5EArsX.js → claude-agent-sdk-DYv_AJ8u.js} +21 -17
  69. package/dist/src/cloud-CoD5OacT.js +3 -0
  70. package/dist/src/{cloud-z8KZpUoa.js → cloud-Da0bofJd.js} +25 -13
  71. package/dist/src/{cloudflare-ai-Bbp26N0L.js → cloudflare-ai-CXC4b1EU.js} +5 -14
  72. package/dist/src/{cloudflare-ai-BGyXlpXJ.js → cloudflare-ai-CyBoIs1Q.js} +7 -15
  73. package/dist/src/{cloudflare-ai-DdKP9TKT.js → cloudflare-ai-DGOwgexC.js} +6 -17
  74. package/dist/src/{cloudflare-ai-C62x6MQG.cjs → cloudflare-ai-DJv5qnyb.cjs} +6 -15
  75. package/dist/src/{cloudflare-gateway-DXhtXDRb.js → cloudflare-gateway-1sAoOyft.js} +6 -16
  76. package/dist/src/{cloudflare-gateway-D-e9i1Sn.js → cloudflare-gateway-D-dnkzCF.js} +5 -18
  77. package/dist/src/{cloudflare-gateway-Dx36ftqF.cjs → cloudflare-gateway-DKVjkDav.cjs} +4 -15
  78. package/dist/src/{cloudflare-gateway-BwAaUgeW.js → cloudflare-gateway-TJkVrZlB.js} +4 -15
  79. package/dist/src/codex-app-server-CCLjqCh9.js +1915 -0
  80. package/dist/src/codex-app-server-CCe0TiDc.js +1915 -0
  81. package/dist/src/codex-app-server-CPW1LFwh.js +1916 -0
  82. package/dist/src/codex-app-server-VMRnjZ68.cjs +1920 -0
  83. package/dist/src/codex-sdk-1jm_qPHf.js +3 -0
  84. package/dist/src/codex-sdk-Bd8UbO9q.cjs +1172 -0
  85. package/dist/src/codex-sdk-BgEFQ70r.js +1164 -0
  86. package/dist/src/codex-sdk-Bzb_TqX9.js +1165 -0
  87. package/dist/src/codex-sdk-Danroptg.cjs +2 -0
  88. package/dist/src/codex-sdk-DfvDTN33.js +1165 -0
  89. package/dist/src/{cometapi-BDyV-NNm.js → cometapi-B5ImDlSm.js} +9 -15
  90. package/dist/src/{cometapi-C3hOlM7-.cjs → cometapi-BgAkuYCw.cjs} +9 -16
  91. package/dist/src/{cometapi-hhL4TAh3.js → cometapi-CC7hWxmX.js} +8 -15
  92. package/dist/src/{cometapi-sp7sJpBD.js → cometapi-CCbpHkuF.js} +8 -17
  93. package/dist/src/{completion-DoYy49ti.js → completion-2iuYVxwi.js} +8 -57
  94. package/dist/src/{completion-BCimtq-h.js → completion-CrD6MQ93.js} +8 -57
  95. package/dist/src/{completion-DlXUhj5c.cjs → completion-DtQ72Bm3.cjs} +7 -62
  96. package/dist/src/{completion-DCjv7RZ3.js → completion-Vq_ad618.js} +8 -57
  97. package/dist/src/{createHash-CTQmL3G2.js → createHash-4gFQpDDv.js} +3 -3
  98. package/dist/src/{createHash-Da8fMwqB.js → createHash-DPpsZgFF.js} +3 -3
  99. package/dist/src/{createHash-DmPQkvBh.js → createHash-Un4Q_huE.js} +3 -3
  100. package/dist/src/{createHash-BYwImsYv.cjs → createHash-VvBIc-AW.cjs} +4 -4
  101. package/dist/src/{docker-CxCkwMzc.js → docker--3qzPa-6.js} +6 -14
  102. package/dist/src/{docker-Cqj2-QVi.cjs → docker-D3AY-5F5.cjs} +7 -15
  103. package/dist/src/{docker-FeBni2dw.js → docker-DCsCDvwM.js} +7 -14
  104. package/dist/src/{docker-DpguQj-w.js → docker-Dorv4_Dg.js} +6 -16
  105. package/dist/src/embedding-BXhN5lCH.cjs +63 -0
  106. package/dist/src/embedding-ChS1ivFS.js +58 -0
  107. package/dist/src/embedding-DNRvZwRN.js +59 -0
  108. package/dist/src/embedding-D_bI4NDq.js +58 -0
  109. package/dist/src/entrypoint.js +69 -6
  110. package/dist/src/{errors-P6ll7XSJ.js → errors-DFHe4L-n.js} +1 -1
  111. package/dist/src/{esm-SUNIX1x3.js → esm-B6whoAcf.js} +15 -6
  112. package/dist/src/{esm-CKWP3u_P.js → esm-BRkfNsYs.js} +16 -7
  113. package/dist/src/{esm-7UIl0pPM.js → esm-BX8fwlAO.js} +27 -18
  114. package/dist/src/{esm-CipptfDu.cjs → esm-B_rGuPTo.cjs} +15 -6
  115. package/dist/src/eval-BQPLBJbw.js +3 -0
  116. package/dist/src/{eval-BTqTn7lb.js → eval-DJ_4A-tr.js} +50 -21
  117. package/dist/src/evalResult-BBJAHAtw.cjs +2 -0
  118. package/dist/src/evalResult-BBK58h2B.js +3 -0
  119. package/dist/src/{evalResult-DpARzUCb.cjs → evalResult-Cx-8OWkb.cjs} +29 -11
  120. package/dist/src/{evalResult-DUDShQrm.js → evalResult-D6P5I5il.js} +29 -11
  121. package/dist/src/{evalResult-BkIhRdTe.js → evalResult-pSvGWFMo.js} +29 -11
  122. package/dist/src/evalResult-spPqh1G_.js +2 -0
  123. package/dist/src/{evaluator-BcvOGaam.js → evaluator-D-UIbbYq.js} +3975 -2152
  124. package/dist/src/evaluator-DgLKaZk8.js +3 -0
  125. package/dist/src/{extractor-D_wd8jxt.js → extractor-BM3jRERL.js} +6 -6
  126. package/dist/src/{extractor-DG3sSfXE.cjs → extractor-Dxr2J_wK.cjs} +6 -6
  127. package/dist/src/{extractor-CAZ2G3Kh.js → extractor-DxyiFhPk.js} +6 -6
  128. package/dist/src/{extractor-C8XwivI9.js → extractor-YlZbUMsL.js} +6 -6
  129. package/dist/src/fetch-8viavNv8.js +3 -0
  130. package/dist/src/{fetch-DoVRJZhJ.js → fetch-B6ch2nU2.js} +199 -60
  131. package/dist/src/{fetch-CVAtKnI3.js → fetch-D9xxyC1p.js} +404 -252
  132. package/dist/src/{fetch-BnR9wSnm.cjs → fetch-NuqXW1Xb.cjs} +415 -263
  133. package/dist/src/{fetch-BiYv2BZc.js → fetch-Y5qX_kST.js} +222 -70
  134. package/dist/src/{fileExtensions-LcDYkU4v.js → fileExtensions-8CjoL7vB.js} +1 -1
  135. package/dist/src/{fileExtensions-DnqA1y9x.js → fileExtensions-BGh-W-HT.js} +1 -1
  136. package/dist/src/{fileExtensions-bYh77CN8.cjs → fileExtensions-D9h-8Wxg.cjs} +1 -1
  137. package/dist/src/{fileExtensions-Ds-foDzt.js → fileExtensions-DysCsxNG.js} +1 -1
  138. package/dist/src/{formatDuration-DgBVMN65.js → formatDuration-Ch4A7G3o.js} +1 -1
  139. package/dist/src/{genaiTracer-BfxrvSUb.cjs → genaiTracer-BokHC-MW.cjs} +7 -3
  140. package/dist/src/{genaiTracer-C1rxGO8Q.js → genaiTracer-C3ZPQU60.js} +6 -2
  141. package/dist/src/{genaiTracer-70Z8BIuV.js → genaiTracer-CFny3gOy.js} +6 -2
  142. package/dist/src/{genaiTracer-D3fD9dNV.js → genaiTracer-DxODqT9e.js} +6 -2
  143. package/dist/src/golang/wrapper.go +1 -1
  144. package/dist/src/{graders-DG7mhg-b.js → graders-BoUqsCEm.js} +7402 -5699
  145. package/dist/src/{graders-BElhu9ZY.cjs → graders-Bw1wk_21.cjs} +5220 -3437
  146. package/dist/src/graders-C84JI-m5.js +2 -0
  147. package/dist/src/graders-CBbd0K0Q.cjs +2 -0
  148. package/dist/src/graders-CbQqpHSN.js +3 -0
  149. package/dist/src/{graders-RjHF8VfG.js → graders-CgPn32yp.js} +7400 -5697
  150. package/dist/src/{graders-BXAJ0sbS.js → graders-CwrbifOo.js} +6136 -4433
  151. package/dist/src/graders-DS42d3ZG.js +2 -0
  152. package/dist/src/{image-6WQXK8m8.js → image-BeWaInPF.js} +4 -4
  153. package/dist/src/{image-PoF6DN3x.js → image-BmilRNqO.js} +8 -8
  154. package/dist/src/{image--F58eEIn.cjs → image-CxJoa3aW.cjs} +8 -8
  155. package/dist/src/{image-fza3zuKs.cjs → image-D10dNAav.cjs} +4 -4
  156. package/dist/src/{image-DO0RYnjH.js → image-Dr_3I3nK.js} +4 -5
  157. package/dist/src/{image-B8b6f36E.js → image-DsGRlkh7.js} +8 -8
  158. package/dist/src/{image-CoxZp9PZ.js → image-a_SGUobh.js} +8 -8
  159. package/dist/src/{image-xNbw5ph2.js → image-qjO6FWPs.js} +4 -4
  160. package/dist/src/index.cjs +4835 -2582
  161. package/dist/src/index.d.cts +2782 -31
  162. package/dist/src/index.d.ts +2783 -32
  163. package/dist/src/index.js +4817 -2564
  164. package/dist/src/{interactiveCheck-BnMYOjMu.js → interactiveCheck-CCICw2cy.js} +2 -2
  165. package/dist/src/{invariant-BtWWVVhl.js → invariant-B2Rf6avk.js} +1 -1
  166. package/dist/src/{invariant-vgHWClmd.js → invariant-DIYf9sP1.js} +1 -1
  167. package/dist/src/{knowledgeBase-Bi7CmDbx.js → knowledgeBase-BBETc5-S.js} +6 -8
  168. package/dist/src/{knowledgeBase-DqrLX8fy.cjs → knowledgeBase-C8qOo26M.cjs} +6 -8
  169. package/dist/src/{knowledgeBase-DFRXPZl_.js → knowledgeBase-CzAi2rUI.js} +7 -8
  170. package/dist/src/{knowledgeBase-Ce3ofVan.js → knowledgeBase-Dr3Kib7F.js} +6 -10
  171. package/dist/src/{litellm-CKiAxnoM.js → litellm-BLSiANhk.js} +6 -14
  172. package/dist/src/{litellm-CnHI69aj.cjs → litellm-CaUmV7Mk.cjs} +6 -15
  173. package/dist/src/{litellm-Tc294Jhj.js → litellm-DQGo_juI.js} +5 -14
  174. package/dist/src/{litellm-Bo2gQXpo.js → litellm-DRc4qWfc.js} +5 -16
  175. package/dist/src/{logger-BcJBzSSA.js → logger-BbY6ypFL.js} +41 -12
  176. package/dist/src/{logger-D5iKBpu_.cjs → logger-COuQb2xB.cjs} +51 -10
  177. package/dist/src/{logger-DO8_zM18.js → logger-Ct2S6Yx-.js} +40 -11
  178. package/dist/src/{logger-BnkjG2jt.js → logger-KD8JjCRJ.js} +41 -12
  179. package/dist/src/{luma-ray-C9q8rdQe.js → luma-ray-B-tNZzqW.js} +6 -10
  180. package/dist/src/{luma-ray-DP0QA9qn.js → luma-ray-CtS3OlGq.js} +6 -10
  181. package/dist/src/{luma-ray-0ehMPt5N.js → luma-ray-PJJgUjOc.js} +6 -11
  182. package/dist/src/{luma-ray-m9Ku2meV.cjs → luma-ray-if-Ml4R9.cjs} +6 -10
  183. package/dist/src/main.d.ts +1 -26
  184. package/dist/src/main.js +1188 -679
  185. package/dist/src/messages-B9dSjrNf.js +544 -0
  186. package/dist/src/messages-BnsVHUnm.cjs +558 -0
  187. package/dist/src/messages-CI69Lasb.js +543 -0
  188. package/dist/src/messages-CewuNcNS.js +543 -0
  189. package/dist/src/{meteor-DLZZ3osF.cjs → meteor-BBGcGeCa.cjs} +1 -1
  190. package/dist/src/{meteor-DUiCJRC-.js → meteor-BKTM-7KS.js} +1 -1
  191. package/dist/src/{meteor-44VjEACX.js → meteor-CeGo0Lu2.js} +2 -2
  192. package/dist/src/{meteor-D-SotUw9.js → meteor-Wc_aUVvu.js} +2 -2
  193. package/dist/src/{modelslab-B5J-ZM5c.js → modelslab-BCLOtfek.js} +8 -10
  194. package/dist/src/{modelslab-IQbNg-r7.cjs → modelslab-BkapYJhh.cjs} +7 -10
  195. package/dist/src/{modelslab-BTOT8FUO.js → modelslab-D73OnKSx.js} +7 -10
  196. package/dist/src/{modelslab-BI458moT.js → modelslab-zpz9JcK0.js} +7 -12
  197. package/dist/src/{nova-reel-BZ9y-Y5s.js → nova-reel-B8F_TK5w.js} +7 -10
  198. package/dist/src/{nova-reel-Xw1SXLpg.js → nova-reel-Bx0NFV2f.js} +6 -10
  199. package/dist/src/{nova-reel-DEeQlnOJ.js → nova-reel-CNGJTLtG.js} +6 -12
  200. package/dist/src/{nova-reel-CE5etkv9.cjs → nova-reel-DkT7tnoB.cjs} +6 -10
  201. package/dist/src/{nova-sonic-Ogqf-csn.js → nova-sonic-BaXRN1cr.js} +5 -7
  202. package/dist/src/{nova-sonic-DXTLpi-r.js → nova-sonic-BeTRaFOh.js} +4 -7
  203. package/dist/src/{nova-sonic-DWswpN1E.js → nova-sonic-CL7Zqv0G.js} +4 -9
  204. package/dist/src/{nova-sonic-N0yCm0vb.cjs → nova-sonic-YT426juD.cjs} +4 -7
  205. package/dist/src/{openai-BcB5KlTk.js → openai-BMHD2Huo.js} +6 -3
  206. package/dist/src/{openai-BMcwgD5C.js → openai-BT-JvDse.js} +6 -3
  207. package/dist/src/{openai-CoxGAQwn.cjs → openai-Cy1XLs0c.cjs} +6 -3
  208. package/dist/src/{openai-D6wITiVn.js → openai-D4fxGvRx.js} +6 -3
  209. package/dist/src/openclaw-Bq7RVR3k.js +1200 -0
  210. package/dist/src/openclaw-DA8U4DsD.js +1201 -0
  211. package/dist/src/openclaw-DObVgpjC.js +1200 -0
  212. package/dist/src/openclaw-DUBZP3GL.cjs +1206 -0
  213. package/dist/src/{opencode-sdk-CHCs7dEb.js → opencode-sdk-BB40Wir1.js} +6 -8
  214. package/dist/src/{opencode-sdk-DDxj4QqH.js → opencode-sdk-BM1UAIv1.js} +6 -8
  215. package/dist/src/{opencode-sdk-WWJhnbKr.cjs → opencode-sdk-CeqiOcOU.cjs} +7 -9
  216. package/dist/src/{opencode-sdk-C71Z0ehR.js → opencode-sdk-ChdK7F7z.js} +6 -9
  217. package/dist/src/{otlpReceiver-CZL48YfC.js → otlpReceiver-C6thJRXi.js} +154 -98
  218. package/dist/src/{otlpReceiver-C9KlUtxh.js → otlpReceiver-CcdIikOu.js} +154 -98
  219. package/dist/src/{otlpReceiver-DHKqJlsz.cjs → otlpReceiver-DNSQj6bf.cjs} +154 -98
  220. package/dist/src/{otlpReceiver-CavGAA6k.js → otlpReceiver-UYMQx3sy.js} +154 -98
  221. package/dist/src/{providerRegistry-BkzVH5Ba.js → providerRegistry-1gB5vtzQ.js} +2 -2
  222. package/dist/src/{providerRegistry-BTDgfV5h.cjs → providerRegistry-BESeALrr.cjs} +2 -2
  223. package/dist/src/{providerRegistry-CUWki5mQ.js → providerRegistry-DoACwqhD.js} +2 -2
  224. package/dist/src/{providerRegistry-B9lh-_tx.js → providerRegistry-PMsleEzs.js} +2 -2
  225. package/dist/src/providers-BuyzKt7C.js +2 -0
  226. package/dist/src/providers-C7lNVBjX.cjs +3 -0
  227. package/dist/src/providers-CCE2COJi2.js +2 -0
  228. package/dist/src/{providers-Cn73d5sr.js → providers-CJh7iriU.js} +17180 -16823
  229. package/dist/src/providers-Ctcc592x.js +3 -0
  230. package/dist/src/{providers-DvddrgxL.js → providers-DRrerKra.js} +1052 -695
  231. package/dist/src/{providers-Ch6Mr0gn.js → providers-DT-GtF2t.js} +16716 -16359
  232. package/dist/src/{providers-CScd1wN6.cjs → providers-eDShy16E.cjs} +19893 -19506
  233. package/dist/src/python/persistent_wrapper.py +0 -5
  234. package/dist/src/{pythonUtils-Cpo0Ez1p.js → pythonUtils-C4tltmIn.js} +4 -4
  235. package/dist/src/{pythonUtils-dAVigVK-.cjs → pythonUtils-CoLaCwNY.cjs} +4 -4
  236. package/dist/src/{pythonUtils-Bzwbgpbg.js → pythonUtils-DMO68Jg7.js} +3 -3
  237. package/dist/src/{pythonUtils-wIqk7zAf.js → pythonUtils-DNqbnRdx.js} +3 -3
  238. package/dist/src/{quiverai-BeofbLVc.js → quiverai-BSS9a7wV.js} +4 -4
  239. package/dist/src/{quiverai-DVSEqJiq.js → quiverai-Bk1KrvL6.js} +4 -4
  240. package/dist/src/{quiverai-CcUhPIBg.cjs → quiverai-Bpx6MZ7T.cjs} +4 -4
  241. package/dist/src/{quiverai-CCQn73lq.js → quiverai-CPKhWgaT.js} +4 -5
  242. package/dist/src/render-7uNJ2V14.js +135 -0
  243. package/dist/src/render-DlscvAUJ.js +135 -0
  244. package/dist/src/render-eui5p5mL.js +136 -0
  245. package/dist/src/{render-BHl6QVq9.js → render-nj-UaPdn.js} +2 -3
  246. package/dist/src/render-tG6ir9_g.cjs +165 -0
  247. package/dist/src/{responses-CgNyTPsY.js → responses-1ztiVYsx.js} +56 -17
  248. package/dist/src/{responses-BKP_WYis.js → responses-B8haB-mD.js} +56 -17
  249. package/dist/src/{responses-CQb1Tj69.js → responses-BiaBguAu.js} +56 -17
  250. package/dist/src/{responses-mo0KQDbu.cjs → responses-CF-ayauu.cjs} +56 -17
  251. package/dist/src/rubyUtils-4hjGxvju.js +3 -0
  252. package/dist/src/{rubyUtils-DECSbsfY.js → rubyUtils-BI0p46eZ.js} +3 -3
  253. package/dist/src/{rubyUtils-CiVfln3g.js → rubyUtils-CIQFnVz4.js} +3 -3
  254. package/dist/src/rubyUtils-CO-tuszQ.cjs +2 -0
  255. package/dist/src/{rubyUtils-PgU-gHmx.js → rubyUtils-DGnoCYL2.js} +4 -4
  256. package/dist/src/{rubyUtils-CGeUtCfW.cjs → rubyUtils-DoifqkiA.cjs} +5 -4
  257. package/dist/src/{sagemaker-CqeASYE5.js → sagemaker-BDLeW29y.js} +14 -18
  258. package/dist/src/{sagemaker-MUbD5V3v.js → sagemaker-C5T60MKf.js} +14 -19
  259. package/dist/src/{sagemaker-CVv8W7so.js → sagemaker-ClS_NB07.js} +14 -18
  260. package/dist/src/{sagemaker-jiw1wQa-.cjs → sagemaker-ljtY12VM.cjs} +14 -18
  261. package/dist/src/{scanner-DVDeUz1r.js → scanner-nOCWNIXa.js} +130 -35
  262. package/dist/src/server/golang/wrapper.go +1 -1
  263. package/dist/src/server/index.js +4829 -2529
  264. package/dist/src/server/python/persistent_wrapper.py +0 -5
  265. package/dist/src/{server-BtoCXeXI.cjs → server-BEECpeGG.cjs} +140 -6
  266. package/dist/src/{server-DZ9MtCn0.js → server-ByiF3qlg.js} +129 -9
  267. package/dist/src/{server-Cns05F1j.js → server-ByxbqAcQ.js} +128 -8
  268. package/dist/src/server-C0XKRNB_.cjs +2 -0
  269. package/dist/src/server-C_15p79-.js +3 -0
  270. package/dist/src/{server-CP9qKM40.js → server-gyd6d4Hc.js} +126 -7
  271. package/dist/src/{signal-C3ZTsUgi.js → signal-DTtUuU3l.js} +3 -3
  272. package/dist/src/{slack-DCEV-vWP.js → slack-4zZX1OKP.js} +2 -2
  273. package/dist/src/{slack-94iG3T0s.cjs → slack-BLlsDpfG.cjs} +2 -2
  274. package/dist/src/{slack-BR0HtO3K.js → slack-BPYLQLgb.js} +2 -2
  275. package/dist/src/{slack-2sdpGzbt.js → slack-Bamy_7te.js} +2 -2
  276. package/dist/src/{store-CLyU7AtI.cjs → store-2K0kDi80.cjs} +3 -3
  277. package/dist/src/{store-VB0GP46K.js → store-2OXm_eBY.js} +3 -3
  278. package/dist/src/store-BELqNwvz.js +3 -0
  279. package/dist/src/{store-Cj258DgL.js → store-BPkzEyFM.js} +3 -3
  280. package/dist/src/{store-P8OKm19S.js → store-CPh25336.js} +3 -3
  281. package/dist/src/store-uQZ4AjPe.cjs +2 -0
  282. package/dist/src/{tables-BEIFz2tM.js → tables-BMSOS2Gg.js} +3 -3
  283. package/dist/src/{tables-BdZQEpRz.cjs → tables-CXbaZ9y1.cjs} +3 -3
  284. package/dist/src/{tables-DmzvLbeZ.js → tables-NlvH23ky.js} +3 -3
  285. package/dist/src/{tables-kC7R5kiK.js → tables-WgdUZ8Ck.js} +3 -3
  286. package/dist/src/{telemetry-DPXLd7UE.js → telemetry--iqaGyaS.js} +5 -4
  287. package/dist/src/{telemetry-re627Lre.cjs → telemetry-CEQxGnMZ.cjs} +8 -7
  288. package/dist/src/{telemetry-BugWqKiu.js → telemetry-CgdVGV8N.js} +5 -4
  289. package/dist/src/{telemetry-BnH5VJAU.js → telemetry-DWdGHvEf.js} +5 -4
  290. package/dist/src/telemetry-DjNoC_n3.cjs +2 -0
  291. package/dist/src/telemetry-ZdPZc0fm.js +3 -0
  292. package/dist/src/{text-CW1cyrwj.cjs → text-BiNME7QG.cjs} +1 -1
  293. package/dist/src/{text-Db-Wt2u2.js → text-D4lz-Jg_.js} +1 -1
  294. package/dist/src/{text-TIv0QYnd.js → text-DDQP0tuQ.js} +1 -1
  295. package/dist/src/{text-B_UCRPp2.js → text-NWvfMfkF.js} +1 -1
  296. package/dist/src/{tokenUsageUtils-DflFMjS0.js → tokenUsageUtils-2wIvAhB3.js} +7 -3
  297. package/dist/src/{tokenUsageUtils-BDGe-iyI.js → tokenUsageUtils-4c780gFd.js} +7 -3
  298. package/dist/src/{tokenUsageUtils-NYT-WKS6.js → tokenUsageUtils-BjVkdk18.js} +7 -3
  299. package/dist/src/{tokenUsageUtils-bVa1ga6f.cjs → tokenUsageUtils-C9odhsbW.cjs} +7 -3
  300. package/dist/src/{transcription-CaMivnjG.js → transcription-84t4ALo2.js} +7 -11
  301. package/dist/src/{transcription-Hb3VnC4M.js → transcription-Bm2emLmJ.js} +8 -11
  302. package/dist/src/{transcription-BvtsrzRG.cjs → transcription-CZ4LG5hQ.cjs} +9 -13
  303. package/dist/src/{transcription-DOMMTu01.js → transcription-D7Q0vJsh.js} +7 -13
  304. package/dist/src/{transform-DrleutM3.js → transform-B-b6Cq-q.js} +8 -6
  305. package/dist/src/transform-BQt0BeAW.js +3 -0
  306. package/dist/src/transform-Bq5oqC0s.cjs +2 -0
  307. package/dist/src/{transform-ZrG2dvlo.cjs → transform-C9izGX54.cjs} +5 -5
  308. package/dist/src/{transform-BzK09Q_9.js → transform-CwbAZ84V.js} +5 -5
  309. package/dist/src/{transform-0BwoBsvO.cjs → transform-Dg4LcO1Y.cjs} +18 -10
  310. package/dist/src/{transform-B2-jIv68.js → transform-DtooZqYY.js} +8 -6
  311. package/dist/src/{transform-ljLYHEPh.js → transform-DzCF-wqV.js} +5 -5
  312. package/dist/src/{transform-DyDAwEpE.js → transform-_DpNB4qp.js} +9 -7
  313. package/dist/src/{transform-BqPkNPYm.js → transform-eGiUAv86.js} +5 -5
  314. package/dist/src/{transformersAvailability-DKoRtQLy.cjs → transformersAvailability-B22swDxr.cjs} +1 -1
  315. package/dist/src/{transformersAvailability-BGkzavwb.js → transformersAvailability-lvCCvuPT.js} +1 -1
  316. package/dist/src/{transformersAvailability-D6c6ROpT.js → transformersAvailability-rJGPccjr.js} +1 -1
  317. package/dist/src/{types-Cd3ygw8W.js → types-BDjGOq4E.js} +354 -24
  318. package/dist/src/{types-CIhFeUC4.js → types-BVH9hjgW.js} +364 -23
  319. package/dist/src/{types-D8cGDZbL.cjs → types-CgG2rKiW.cjs} +534 -167
  320. package/dist/src/{types-q8GXGF65.js → types-DNRZVOue.js} +498 -167
  321. package/dist/src/{util-BLvy9qfE.js → util-3pBZZb_H.js} +151 -149
  322. package/dist/src/{util-CFj4YKIn.cjs → util-A5_ZsQUn.cjs} +66 -44
  323. package/dist/src/{util-BtoGs5Cb.js → util-B9CNhyac.js} +66 -44
  324. package/dist/src/{util-Bm3E9jpK.js → util-BQOCAHQC.js} +692 -690
  325. package/dist/src/{util-vNmDL5DT.js → util-BVXcTwXu.js} +138 -36
  326. package/dist/src/{util-CgDCK4KI.js → util-BlFVL0UF.js} +66 -44
  327. package/dist/src/{util-DM2rTn_6.js → util-C-kmRosx.js} +66 -44
  328. package/dist/src/{util-DbVG-yZU.js → util-DFPeFkiV.js} +138 -36
  329. package/dist/src/{util-DMFeUvLz.js → util-DN0-b81k.js} +138 -36
  330. package/dist/src/{util--9u9UVCt.cjs → util-Dpmm_dAI.cjs} +143 -35
  331. package/dist/src/{util-CMMkIxfU.js → util-Dub0f_ej.js} +693 -691
  332. package/dist/src/{util-CuLo2pMR.cjs → util-DvpHnLt0.cjs} +714 -719
  333. package/dist/src/{utils-DOjD4dTC.js → utils-BUMN8orw.js} +6 -4
  334. package/dist/src/{utils-DKw8mrgr.cjs → utils-DkVeShIB.cjs} +6 -4
  335. package/dist/src/{utils-DEuL4VNB.js → utils-kt7lv30R.js} +6 -4
  336. package/dist/src/{utils-CFxO9KGo.js → utils-o8S5huU2.js} +6 -4
  337. package/dist/src/version-0frU0UTr.js +16 -0
  338. package/dist/src/version-CbpiUINz.js +17 -0
  339. package/dist/src/version-CbuBKu2U.js +16 -0
  340. package/dist/src/version-D9zu9FWB.cjs +27 -0
  341. package/dist/tsconfig.tsbuildinfo +1 -1
  342. package/package.json +57 -46
  343. package/dist/src/app/assets/index-B6l9CVVb.js +0 -439
  344. package/dist/src/app/assets/index-DyZ0Ep37.css +0 -1
  345. package/dist/src/app/assets/scroll-timeline-BdJZVXlz.js +0 -1
  346. package/dist/src/app/assets/sync-CStkzc6u.js +0 -4
  347. package/dist/src/app/assets/vendor-charts-BnDWwBlI.js +0 -36
  348. package/dist/src/app/assets/vendor-markdown-Bz7N-ca6.js +0 -29
  349. package/dist/src/app/assets/vendor-react-AtKqiNEf.js +0 -4
  350. package/dist/src/app/assets/vendor-syntax-D06x6TQF.js +0 -2
  351. package/dist/src/app/assets/vendor-utils-BvMHZmO7.js +0 -37
  352. package/dist/src/cache-C5yFZ4gC.cjs +0 -816
  353. package/dist/src/cache-CaT5tPgo.js +0 -756
  354. package/dist/src/cache-CyCanoMu.js +0 -6
  355. package/dist/src/cache-DSqR6ezl.js +0 -726
  356. package/dist/src/cache-Df_QFDNu.cjs +0 -5
  357. package/dist/src/cache-HP0NP4k3.js +0 -756
  358. package/dist/src/cloud-DE3t1-ZI.js +0 -4
  359. package/dist/src/codex-sdk-BQEw16R_.js +0 -834
  360. package/dist/src/codex-sdk-C_07GuVS.js +0 -834
  361. package/dist/src/codex-sdk-DE5G18dx.js +0 -835
  362. package/dist/src/codex-sdk-ZLKfDjqP.cjs +0 -838
  363. package/dist/src/eval-7aEqoMs3.js +0 -15
  364. package/dist/src/evalResult-CYNHkk5A.js +0 -12
  365. package/dist/src/evalResult-CuvJeNiM.js +0 -10
  366. package/dist/src/evalResult-tGdilrWt.cjs +0 -10
  367. package/dist/src/evaluator-BBUqRhz1.js +0 -36
  368. package/dist/src/fetch-UWU706qb.js +0 -5
  369. package/dist/src/graders-BxfEguVY.js +0 -32
  370. package/dist/src/graders-CzVMbEnv.js +0 -34
  371. package/dist/src/graders-DjCXfj0l.cjs +0 -32
  372. package/dist/src/graders-kHzIWOKu.js +0 -32
  373. package/dist/src/messages-DJNo37Ko.js +0 -246
  374. package/dist/src/messages-Dy9QecMs.js +0 -245
  375. package/dist/src/messages-HJsyEh4o.cjs +0 -257
  376. package/dist/src/messages-biC_ex-p.js +0 -245
  377. package/dist/src/openclaw-0Sv7AK3O.js +0 -580
  378. package/dist/src/openclaw-CXxbKgDH.cjs +0 -586
  379. package/dist/src/openclaw-D1FSCps-.js +0 -580
  380. package/dist/src/openclaw-D2ENvu7a.js +0 -582
  381. package/dist/src/providers-BSLEaIQG.js +0 -32
  382. package/dist/src/providers-D-FnDg8k.cjs +0 -31
  383. package/dist/src/providers-DEYiFVAo.js +0 -30
  384. package/dist/src/providers-sS2WI8YD.js +0 -30
  385. package/dist/src/rubyUtils-B1HXG4ej.cjs +0 -4
  386. package/dist/src/rubyUtils-Rt6pKA96.js +0 -5
  387. package/dist/src/server-B0Xh1Gx-.js +0 -7
  388. package/dist/src/server-DJTKu9IR.cjs +0 -5
  389. package/dist/src/store-C5u6MgC8.js +0 -6
  390. package/dist/src/store-CNHk-De4.cjs +0 -5
  391. package/dist/src/telemetry-Yig0Tino.js +0 -7
  392. package/dist/src/telemetry-p8Pwqm1i.cjs +0 -5
  393. package/dist/src/transform-ChNIpHz7.js +0 -6
  394. package/dist/src/transform-PtQ6rAE3.cjs +0 -5
@@ -1,580 +0,0 @@
1
- import { C as getEnvString, a as logger } from "./logger-BnkjG2jt.js";
2
- import { P as VERSION, p as REQUEST_TIMEOUT_MS, t as fetchWithProxy } from "./fetch-BiYv2BZc.js";
3
- import "./esm-CKWP3u_P.js";
4
- import "./types-Cd3ygw8W.js";
5
- import "./cache-HP0NP4k3.js";
6
- import "./genaiTracer-70Z8BIuV.js";
7
- import "./pythonUtils-Bzwbgpbg.js";
8
- import "./util-BLvy9qfE.js";
9
- import { t as OpenAiChatCompletionProvider } from "./chat-B0iaWhoh.js";
10
- import "./transform-B2-jIv68.js";
11
- import { t as OpenAiResponsesProvider } from "./responses-CgNyTPsY.js";
12
- import "./openai-D6wITiVn.js";
13
- import "./util-BtoGs5Cb.js";
14
- import fs from "fs";
15
- import path from "path";
16
- import os from "os";
17
- import crypto from "crypto";
18
- import WebSocket from "ws";
19
- import JSON5 from "json5";
20
- //#region src/providers/openclaw/shared.ts
21
- const DEFAULT_GATEWAY_PORT = 18789;
22
- const DEFAULT_GATEWAY_HOST = "127.0.0.1";
23
- /**
24
- * Cached config to avoid re-reading the file multiple times during provider init.
25
- */
26
- let cachedConfig;
27
- let cachedConfigPath;
28
- function resolveConfigPath(env) {
29
- return env?.OPENCLAW_CONFIG_PATH || getEnvString("OPENCLAW_CONFIG_PATH") || path.join(os.homedir(), ".openclaw", "openclaw.json");
30
- }
31
- function normalizeGatewayUrl(url, transport) {
32
- const trimmed = url.trim();
33
- if (!trimmed) return;
34
- if (transport === "http") {
35
- if (trimmed.startsWith("wss://")) return `https://${trimmed.slice(6)}`;
36
- if (trimmed.startsWith("ws://")) return `http://${trimmed.slice(5)}`;
37
- return trimmed;
38
- }
39
- if (trimmed.startsWith("https://")) return `wss://${trimmed.slice(8)}`;
40
- if (trimmed.startsWith("http://")) return `ws://${trimmed.slice(7)}`;
41
- return trimmed;
42
- }
43
- function resolveGatewayHost(gatewayConfig) {
44
- const bind = gatewayConfig?.bind?.trim();
45
- const customBindHost = gatewayConfig?.customBindHost?.trim();
46
- 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;
47
- if (bind === "custom") {
48
- if (!customBindHost || customBindHost === "0.0.0.0" || customBindHost === "::" || customBindHost === "127.0.0.1" || customBindHost === "localhost" || customBindHost === "::1") return DEFAULT_GATEWAY_HOST;
49
- return customBindHost;
50
- }
51
- return bind;
52
- }
53
- function buildLocalGatewayUrl(gatewayConfig, transport) {
54
- const scheme = transport === "ws" ? gatewayConfig?.tls?.enabled ? "wss" : "ws" : gatewayConfig?.tls?.enabled ? "https" : "http";
55
- const port = gatewayConfig?.port ?? 18789;
56
- return `${scheme}://${resolveGatewayHost(gatewayConfig)}:${port}`;
57
- }
58
- function resolveGatewayUrlFromConfig(openclawConfig, transport) {
59
- const gatewayConfig = openclawConfig?.gateway;
60
- if (!gatewayConfig) return;
61
- if (gatewayConfig.mode === "remote") {
62
- const remoteUrl = normalizeGatewayUrl(gatewayConfig.remote?.url ?? "", transport);
63
- if (remoteUrl) return remoteUrl;
64
- }
65
- return buildLocalGatewayUrl(gatewayConfig, transport);
66
- }
67
- function toAuthSecret(kind, value) {
68
- const trimmed = value?.trim();
69
- return trimmed ? {
70
- kind,
71
- value: trimmed
72
- } : void 0;
73
- }
74
- function resolveAuthSecretFromConfig(openclawConfig) {
75
- const gatewayConfig = openclawConfig?.gateway;
76
- const authMode = gatewayConfig?.auth?.mode?.trim();
77
- const preferRemoteCredentials = gatewayConfig?.mode === "remote";
78
- const localToken = toAuthSecret("token", gatewayConfig?.auth?.token);
79
- const localPassword = toAuthSecret("password", gatewayConfig?.auth?.password);
80
- const remoteToken = toAuthSecret("token", gatewayConfig?.remote?.token);
81
- const remotePassword = toAuthSecret("password", gatewayConfig?.remote?.password);
82
- if (preferRemoteCredentials) {
83
- if (authMode === "password") return remotePassword || localPassword || remoteToken || localToken;
84
- if (authMode === "token") return remoteToken || localToken || remotePassword || localPassword;
85
- return remoteToken || remotePassword || localToken || localPassword;
86
- }
87
- if (authMode === "password") return localPassword || remotePassword || localToken || remoteToken;
88
- if (authMode === "token") return localToken || remoteToken || localPassword || remotePassword;
89
- return localToken || localPassword || remoteToken || remotePassword;
90
- }
91
- /**
92
- * Read and parse the active OpenClaw configuration file.
93
- * Results are cached based on file modification time.
94
- * Returns undefined if the file doesn't exist or can't be parsed.
95
- */
96
- function readOpenClawConfig(env) {
97
- const configPath = resolveConfigPath(env);
98
- try {
99
- if (!fs.existsSync(configPath)) return;
100
- const mtime = fs.statSync(configPath).mtimeMs;
101
- if (cachedConfig && cachedConfigPath === configPath && cachedConfig.mtime === mtime) return cachedConfig.config;
102
- const raw = fs.readFileSync(configPath, "utf-8");
103
- const config = JSON5.parse(raw);
104
- cachedConfig = {
105
- config,
106
- mtime
107
- };
108
- cachedConfigPath = configPath;
109
- return config;
110
- } catch (err) {
111
- logger.debug(`Failed to read OpenClaw config at ${configPath}: ${err}`);
112
- return;
113
- }
114
- }
115
- /**
116
- * Auto-detect the OpenClaw gateway URL from config, env overrides, or the active config file.
117
- */
118
- function resolveGatewayUrl(config, env) {
119
- return resolveGatewayTransportUrl(config, env, "http");
120
- }
121
- function resolveGatewayWsUrl(config, env) {
122
- return resolveGatewayTransportUrl(config, env, "ws");
123
- }
124
- function resolveGatewayTransportUrl(config, env, transport) {
125
- const configUrl = config?.gateway_url?.trim();
126
- if (configUrl) return normalizeGatewayUrl(configUrl, transport) || configUrl;
127
- const trimmedEnvUrl = (env?.OPENCLAW_GATEWAY_URL || getEnvString("OPENCLAW_GATEWAY_URL") || env?.CLAWDBOT_GATEWAY_URL || getEnvString("CLAWDBOT_GATEWAY_URL"))?.trim();
128
- if (trimmedEnvUrl) return normalizeGatewayUrl(trimmedEnvUrl, transport) || trimmedEnvUrl;
129
- const resolvedUrl = resolveGatewayUrlFromConfig(readOpenClawConfig(env), transport);
130
- if (resolvedUrl) return resolvedUrl;
131
- return `${transport === "ws" ? "ws" : "http"}://${DEFAULT_GATEWAY_HOST}:${DEFAULT_GATEWAY_PORT}`;
132
- }
133
- function resolveAuthSecret(config, env) {
134
- if (config?.auth_token) return {
135
- kind: "token",
136
- value: config.auth_token
137
- };
138
- if (config?.auth_password) return {
139
- kind: "password",
140
- value: config.auth_password
141
- };
142
- const envToken = env?.OPENCLAW_GATEWAY_TOKEN || getEnvString("OPENCLAW_GATEWAY_TOKEN") || env?.CLAWDBOT_GATEWAY_TOKEN || getEnvString("CLAWDBOT_GATEWAY_TOKEN");
143
- if (envToken) return {
144
- kind: "token",
145
- value: envToken
146
- };
147
- const envPassword = env?.OPENCLAW_GATEWAY_PASSWORD || getEnvString("OPENCLAW_GATEWAY_PASSWORD") || env?.CLAWDBOT_GATEWAY_PASSWORD || getEnvString("CLAWDBOT_GATEWAY_PASSWORD");
148
- if (envPassword) return {
149
- kind: "password",
150
- value: envPassword
151
- };
152
- return resolveAuthSecretFromConfig(readOpenClawConfig(env));
153
- }
154
- /**
155
- * Auto-detect the OpenClaw gateway bearer secret from config, env overrides, or the active
156
- * config file. OpenClaw accepts either a token or password as the HTTP bearer secret.
157
- */
158
- function resolveAuthToken(config, env) {
159
- return resolveAuthSecret(config, env)?.value;
160
- }
161
- /**
162
- * Build common OpenClaw headers for agent-id and session-key.
163
- * Note: thinking_level is only supported by the WS Agent provider and is
164
- * passed as an RPC param there, not as an HTTP header.
165
- */
166
- function buildOpenClawHeaders(agentId, config) {
167
- const headers = { "x-openclaw-agent-id": agentId };
168
- if (config?.session_key) headers["x-openclaw-session-key"] = config.session_key;
169
- return headers;
170
- }
171
- /**
172
- * Build provider options for OpenAI-compatible OpenClaw providers (chat, responses).
173
- * Resolves gateway URL, auth token, and merges OpenClaw-specific headers.
174
- */
175
- function buildOpenClawProviderOptions(agentId, providerOptions) {
176
- const config = providerOptions.config || {};
177
- const env = providerOptions.env;
178
- const gatewayUrl = resolveGatewayUrl(config, env);
179
- const authToken = resolveAuthToken(config, env);
180
- return {
181
- ...providerOptions,
182
- config: {
183
- ...config,
184
- apiBaseUrl: `${gatewayUrl}/v1`,
185
- ...authToken && { apiKey: authToken },
186
- apiKeyRequired: false,
187
- headers: {
188
- ...config.headers,
189
- ...buildOpenClawHeaders(agentId, config)
190
- }
191
- }
192
- };
193
- }
194
- //#endregion
195
- //#region src/providers/openclaw/agent.ts
196
- const OPENCLAW_PROTOCOL_VERSION = 3;
197
- /**
198
- * OpenClaw WebSocket Agent Provider
199
- *
200
- * Custom provider that uses the native OpenClaw WS RPC protocol to invoke agents.
201
- * Supports full streaming with event accumulation.
202
- *
203
- * Protocol flow:
204
- * 1. Open WS connection to gateway
205
- * 2. Receive connect.challenge event → send connect request
206
- * 3. Receive hello-ok response → send agent request
207
- * 4. Receive agent accepted response → send agent.wait
208
- * 5. Accumulate streaming "agent" events (stream: "assistant")
209
- * 6. Resolve on agent.wait response
210
- *
211
- * Usage:
212
- * openclaw:agent - default agent (main)
213
- * openclaw:agent:main - explicit agent ID
214
- * openclaw:agent:my-agent - custom agent ID
215
- */
216
- var OpenClawAgentProvider = class {
217
- agentId;
218
- gatewayUrl;
219
- authKind;
220
- authSecret;
221
- openclawConfig;
222
- timeoutMs;
223
- activeConnections = /* @__PURE__ */ new Set();
224
- constructor(agentId, providerOptions = {}) {
225
- this.agentId = agentId;
226
- this.openclawConfig = providerOptions.config || {};
227
- const env = providerOptions.env;
228
- this.gatewayUrl = resolveGatewayWsUrl(this.openclawConfig, env);
229
- const authSecret = resolveAuthSecret(this.openclawConfig, env);
230
- this.authKind = authSecret?.kind;
231
- this.authSecret = authSecret?.value;
232
- this.timeoutMs = this.openclawConfig.timeoutMs ?? REQUEST_TIMEOUT_MS;
233
- }
234
- id() {
235
- return `openclaw:agent:${this.agentId}`;
236
- }
237
- toString() {
238
- return `[OpenClaw Agent Provider ${this.agentId}]`;
239
- }
240
- toJSON() {
241
- return { provider: this.id() };
242
- }
243
- async cleanup() {
244
- for (const ws of this.activeConnections) ws.close();
245
- this.activeConnections.clear();
246
- }
247
- async callApi(prompt) {
248
- const sessionKey = this.openclawConfig.session_key || `promptfoo-${crypto.randomUUID()}`;
249
- return new Promise((resolve) => {
250
- const ws = new WebSocket(this.gatewayUrl);
251
- this.activeConnections.add(ws);
252
- const agentRequestId = crypto.randomUUID();
253
- const waitRequestId = crypto.randomUUID();
254
- const idempotencyKey = crypto.randomUUID();
255
- let lastText = "";
256
- let runId;
257
- let connected = false;
258
- let resolved = false;
259
- const finish = (result, closeSocket = true) => {
260
- if (resolved) return;
261
- resolved = true;
262
- clearTimeout(timeout);
263
- this.activeConnections.delete(ws);
264
- if (closeSocket) ws.close();
265
- resolve(result);
266
- };
267
- const timeout = setTimeout(() => {
268
- finish({ error: `OpenClaw agent request timed out after ${this.timeoutMs}ms` });
269
- }, this.timeoutMs);
270
- ws.on("error", (err) => {
271
- finish({ error: `OpenClaw WebSocket error: ${err.message}` });
272
- });
273
- ws.on("close", () => {
274
- this.activeConnections.delete(ws);
275
- if (!resolved) finish({ error: "OpenClaw WebSocket connection closed unexpectedly" }, false);
276
- });
277
- ws.on("message", (data) => {
278
- let frame;
279
- try {
280
- frame = JSON.parse(data.toString());
281
- } catch {
282
- logger.debug("[OpenClaw Agent] Failed to parse WS frame");
283
- return;
284
- }
285
- logger.debug("[OpenClaw Agent] Frame received", {
286
- type: frame.type,
287
- event: frame.event,
288
- id: frame.id
289
- });
290
- if (frame.type === "event" && frame.event === "connect.challenge") {
291
- ws.send(JSON.stringify({
292
- type: "req",
293
- id: crypto.randomUUID(),
294
- method: "connect",
295
- params: {
296
- minProtocol: OPENCLAW_PROTOCOL_VERSION,
297
- maxProtocol: OPENCLAW_PROTOCOL_VERSION,
298
- client: {
299
- id: "gateway-client",
300
- displayName: "promptfoo",
301
- version: VERSION,
302
- platform: process.platform,
303
- mode: "cli"
304
- },
305
- role: "operator",
306
- scopes: ["operator.read", "operator.write"],
307
- caps: [],
308
- commands: [],
309
- permissions: {},
310
- ...this.authSecret && this.authKind && { auth: this.authKind === "password" ? { password: this.authSecret } : { token: this.authSecret } }
311
- }
312
- }));
313
- return;
314
- }
315
- if (frame.type === "res" && !connected) {
316
- if (!frame.ok) {
317
- finish({ error: `OpenClaw connect failed: ${frame.error?.message || "unknown error"}` });
318
- return;
319
- }
320
- connected = true;
321
- ws.send(JSON.stringify({
322
- type: "req",
323
- id: agentRequestId,
324
- method: "agent",
325
- params: {
326
- message: prompt,
327
- agentId: this.agentId,
328
- idempotencyKey,
329
- sessionKey,
330
- ...this.openclawConfig.thinking_level && { thinking: this.openclawConfig.thinking_level },
331
- ...this.openclawConfig.extra_system_prompt && { extraSystemPrompt: this.openclawConfig.extra_system_prompt }
332
- }
333
- }));
334
- return;
335
- }
336
- if (frame.type === "res" && frame.id === agentRequestId) {
337
- if (!frame.ok) {
338
- finish({ error: `OpenClaw agent error: ${frame.error?.message || "unknown error"}` });
339
- return;
340
- }
341
- const payload = frame.payload;
342
- runId = typeof payload?.runId === "string" && payload.runId.trim() ? payload.runId : void 0;
343
- if (!runId) {
344
- logger.warn("[OpenClaw Agent] Missing runId in accepted response", {
345
- agentId: this.agentId,
346
- payload
347
- });
348
- finish({ error: "OpenClaw agent error: gateway accepted request without a runId" });
349
- return;
350
- }
351
- ws.send(JSON.stringify({
352
- type: "req",
353
- id: waitRequestId,
354
- method: "agent.wait",
355
- params: {
356
- runId,
357
- timeoutMs: this.timeoutMs
358
- }
359
- }));
360
- return;
361
- }
362
- if (frame.type === "event" && frame.event === "agent") {
363
- const payload = frame.payload;
364
- if (payload?.runId && runId && payload.runId !== runId) return;
365
- if (payload?.stream === "assistant" && payload?.data?.text) lastText = payload.data.text;
366
- return;
367
- }
368
- if (frame.type === "res" && frame.id === waitRequestId) {
369
- if (frame.ok) finish({ output: lastText || "No output from agent" });
370
- else finish({ error: `OpenClaw agent error: ${frame.error?.message || "unknown error"}` });
371
- return;
372
- }
373
- });
374
- });
375
- }
376
- };
377
- //#endregion
378
- //#region src/providers/openclaw/chat.ts
379
- /**
380
- * OpenClaw chat provider extends OpenAI chat completion provider.
381
- *
382
- * OpenClaw exposes an OpenAI-compatible HTTP API at /v1/chat/completions.
383
- * This provider auto-detects gateway URL and bearer auth from:
384
- * 1. Explicit config (gateway_url, auth_token, auth_password)
385
- * 2. Environment variables (OPENCLAW_GATEWAY_URL, OPENCLAW_GATEWAY_TOKEN, OPENCLAW_GATEWAY_PASSWORD)
386
- * 3. The active OpenClaw config file (OPENCLAW_CONFIG_PATH or ~/.openclaw/openclaw.json),
387
- * including gateway.remote.url and gateway.tls.enabled
388
- *
389
- * Usage:
390
- * openclaw - default agent (main)
391
- * openclaw:main - specific agent
392
- * openclaw:coding-agent - named agent
393
- */
394
- var OpenClawChatProvider = class extends OpenAiChatCompletionProvider {
395
- agentId;
396
- constructor(agentId, providerOptions = {}) {
397
- super(`openclaw:${agentId}`, buildOpenClawProviderOptions(agentId, providerOptions));
398
- this.agentId = agentId;
399
- }
400
- id() {
401
- return `openclaw:${this.agentId}`;
402
- }
403
- toString() {
404
- return `[OpenClaw Provider ${this.agentId}]`;
405
- }
406
- getApiUrlDefault() {
407
- return `http://${DEFAULT_GATEWAY_HOST}:${DEFAULT_GATEWAY_PORT}/v1`;
408
- }
409
- getApiKey() {
410
- return this.config.apiKey;
411
- }
412
- getApiUrl() {
413
- return this.config.apiBaseUrl || this.getApiUrlDefault();
414
- }
415
- };
416
- //#endregion
417
- //#region src/providers/openclaw/responses.ts
418
- /**
419
- * OpenClaw Responses API Provider
420
- *
421
- * Extends OpenAI Responses API provider with OpenClaw-specific configuration.
422
- * Routes through the OpenClaw gateway's /v1/responses endpoint.
423
- *
424
- * Requires `gateway.http.endpoints.responses.enabled=true` in OpenClaw config.
425
- *
426
- * Usage:
427
- * openclaw:responses - default agent (main)
428
- * openclaw:responses:main - explicit agent ID
429
- * openclaw:responses:X - custom agent ID
430
- */
431
- var OpenClawResponsesProvider = class extends OpenAiResponsesProvider {
432
- agentId;
433
- constructor(agentId, providerOptions = {}) {
434
- super(`openclaw:${agentId}`, buildOpenClawProviderOptions(agentId, providerOptions));
435
- this.agentId = agentId;
436
- }
437
- id() {
438
- return `openclaw:responses:${this.agentId}`;
439
- }
440
- toString() {
441
- return `[OpenClaw Responses Provider ${this.agentId}]`;
442
- }
443
- getApiUrlDefault() {
444
- return `http://${DEFAULT_GATEWAY_HOST}:${DEFAULT_GATEWAY_PORT}/v1`;
445
- }
446
- getApiKey() {
447
- return this.config.apiKey;
448
- }
449
- getApiUrl() {
450
- return this.config.apiBaseUrl || this.getApiUrlDefault();
451
- }
452
- async getOpenAiBody(prompt, context, callApiOptions) {
453
- const result = await super.getOpenAiBody(prompt, context, callApiOptions);
454
- if ("text" in result.body) delete result.body.text;
455
- return result;
456
- }
457
- };
458
- //#endregion
459
- //#region src/providers/openclaw/tools.ts
460
- /**
461
- * OpenClaw Tool Invoke Provider
462
- *
463
- * Simple HTTP provider for direct tool invocation via POST /tools/invoke.
464
- * The tool name is extracted from the provider path:
465
- * openclaw:tools:sessions_list → tool="sessions_list"
466
- *
467
- * The prompt is parsed as JSON for tool arguments. If it's not valid JSON,
468
- * it's passed as a single `input` argument.
469
- *
470
- * Usage:
471
- * openclaw:tools:sessions_list - invoke the sessions_list tool
472
- * openclaw:tools:session_status - invoke the session_status tool
473
- *
474
- * Optional config:
475
- * action - tool sub-action, forwarded as body.action
476
- * dry_run - dry-run hint, forwarded as body.dryRun
477
- */
478
- var OpenClawToolInvokeProvider = class {
479
- toolName;
480
- gatewayUrl;
481
- authToken;
482
- openclawConfig;
483
- timeoutMs;
484
- constructor(toolName, providerOptions = {}) {
485
- this.toolName = toolName;
486
- this.openclawConfig = providerOptions.config || {};
487
- const env = providerOptions.env;
488
- this.gatewayUrl = resolveGatewayUrl(this.openclawConfig, env);
489
- this.authToken = resolveAuthToken(this.openclawConfig, env);
490
- this.timeoutMs = this.openclawConfig.timeoutMs ?? REQUEST_TIMEOUT_MS;
491
- }
492
- id() {
493
- return `openclaw:tools:${this.toolName}`;
494
- }
495
- toString() {
496
- return `[OpenClaw Tool Provider ${this.toolName}]`;
497
- }
498
- toJSON() {
499
- return { provider: this.id() };
500
- }
501
- async callApi(prompt) {
502
- let args;
503
- try {
504
- args = JSON.parse(prompt);
505
- } catch {
506
- args = { input: prompt };
507
- }
508
- const url = `${this.gatewayUrl}/tools/invoke`;
509
- const headers = {
510
- "Content-Type": "application/json",
511
- ...this.openclawConfig.headers || {}
512
- };
513
- if (this.authToken) headers["Authorization"] = `Bearer ${this.authToken}`;
514
- const body = {
515
- tool: this.toolName,
516
- ...this.openclawConfig.action && { action: this.openclawConfig.action },
517
- args,
518
- ...typeof this.openclawConfig.dry_run === "boolean" && { dryRun: this.openclawConfig.dry_run },
519
- ...this.openclawConfig.session_key && { sessionKey: this.openclawConfig.session_key }
520
- };
521
- logger.debug(`[OpenClaw Tool] POST ${url}`, {
522
- tool: this.toolName,
523
- args
524
- });
525
- try {
526
- const controller = new AbortController();
527
- const fetchTimeout = setTimeout(() => controller.abort(), this.timeoutMs);
528
- const response = await fetchWithProxy(url, {
529
- method: "POST",
530
- headers,
531
- body: JSON.stringify(body),
532
- signal: controller.signal
533
- }).finally(() => clearTimeout(fetchTimeout));
534
- if (!response.ok) {
535
- const text = await response.text();
536
- return { error: `OpenClaw tool invoke failed (${response.status}): ${text}` };
537
- }
538
- const data = await response.json();
539
- if (data.ok) return { output: typeof data.result === "string" ? data.result : JSON.stringify(data.result) };
540
- return { error: data.error || "Unknown tool error" };
541
- } catch (err) {
542
- return { error: `OpenClaw tool invoke error: ${err instanceof Error ? err.message : String(err)}` };
543
- }
544
- }
545
- };
546
- //#endregion
547
- //#region src/providers/openclaw/index.ts
548
- /**
549
- * Create an OpenClaw provider from a provider path string.
550
- *
551
- * Routing:
552
- * openclaw → OpenClawChatProvider('main')
553
- * openclaw:main → OpenClawChatProvider('main')
554
- * openclaw:my-agent → OpenClawChatProvider('my-agent')
555
- * openclaw:responses → OpenClawResponsesProvider('main')
556
- * openclaw:responses:X → OpenClawResponsesProvider('X')
557
- * openclaw:agent → OpenClawAgentProvider('main')
558
- * openclaw:agent:X → OpenClawAgentProvider('X')
559
- * openclaw:tools:sessions_list → OpenClawToolInvokeProvider('sessions_list')
560
- */
561
- function createOpenClawProvider(providerPath, providerOptions = {}, env) {
562
- const splits = providerPath.split(":");
563
- const keyword = splits[1];
564
- const opts = {
565
- ...providerOptions,
566
- env
567
- };
568
- if (keyword === "responses") return new OpenClawResponsesProvider(splits[2] || "main", opts);
569
- if (keyword === "agent") return new OpenClawAgentProvider(splits[2] || "main", opts);
570
- if (keyword === "tools") {
571
- const toolName = splits.slice(2).join(":");
572
- if (!toolName) throw new Error("OpenClaw tools provider requires a tool name: openclaw:tools:<tool-name>");
573
- return new OpenClawToolInvokeProvider(toolName, opts);
574
- }
575
- return new OpenClawChatProvider(splits.length > 1 ? splits.slice(1).join(":") : "main", opts);
576
- }
577
- //#endregion
578
- export { createOpenClawProvider };
579
-
580
- //# sourceMappingURL=openclaw-D1FSCps-.js.map