promptfoo 0.121.3 → 0.121.4

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 (378) hide show
  1. package/README.md +1 -1
  2. package/dist/src/{ListApp-Du7YVwj5.js → ListApp-DQkFNqE9.js} +1 -1
  3. package/dist/src/{accounts-Xatc0RYb.js → accounts-DdJ2pHMI.js} +5 -5
  4. package/dist/src/{accounts-B2XmGjty.js → accounts-DhMYUUbu.js} +5 -5
  5. package/dist/src/{accounts-BPyfpSeU.cjs → accounts-Dy17bs4D.cjs} +5 -5
  6. package/dist/src/{accounts-CFLK3mnD.js → accounts-F9d_5sMC.js} +6 -6
  7. package/dist/src/{agentic-utils-DAVsChuB.cjs → agentic-utils-BpX5b23w.cjs} +3 -3
  8. package/dist/src/{agentic-utils-DIYAAYE7.js → agentic-utils-P172hM8B.js} +3 -3
  9. package/dist/src/{agentic-utils-D8yXo5Lm.js → agentic-utils-qFlm6zes.js} +4 -4
  10. package/dist/src/{agentic-utils-36epdqwB.js → agentic-utils-w68v6_Dz.js} +3 -3
  11. package/dist/src/{agents-CLQ-P15P.js → agents-8FDnTriG.js} +6 -7
  12. package/dist/src/{agents-CAYbM7qD.cjs → agents-BahDpe5G.cjs} +34 -12
  13. package/dist/src/{agents-DSSTV4bv.js → agents-C-R_jfzI.js} +35 -13
  14. package/dist/src/{agents-wg3ohknq.js → agents-CgaMXvLM.js} +5 -7
  15. package/dist/src/{agents-BBWxKSM0.cjs → agents-D7-HGxUj.cjs} +5 -7
  16. package/dist/src/{agents-BBVJCIYr.js → agents-DJ35I3Nt.js} +35 -13
  17. package/dist/src/{agents-CgBniSlI.js → agents-aYPQLf8W.js} +5 -9
  18. package/dist/src/{agents-Bqgfdokm.js → agents-pQeBEXMm.js} +35 -14
  19. package/dist/src/{aimlapi-BwGC1TtS.js → aimlapi-BCq3MHeL.js} +8 -14
  20. package/dist/src/{aimlapi-MgSLdvy7.js → aimlapi-BD6J9oKt.js} +7 -14
  21. package/dist/src/{aimlapi-Bv8Fmc-b.cjs → aimlapi-qcK4OT55.cjs} +8 -15
  22. package/dist/src/{aimlapi-DaC3qZ-o.js → aimlapi-sgYnkE54.js} +7 -16
  23. package/dist/src/app/app/tsconfig.app.tsbuildinfo +1 -0
  24. package/dist/src/app/assets/Report-CQYFezYu.js +1 -0
  25. package/dist/src/app/assets/index-BXGkeMwh.css +1 -0
  26. package/dist/src/app/assets/index-BzJt18Jz.js +385 -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 +7 -7
  35. package/dist/src/{audio-DjU9GswO.js → audio-B7izf48x.js} +4 -5
  36. package/dist/src/{audio-DVFjQ67_.cjs → audio-BQtNuYBj.cjs} +4 -4
  37. package/dist/src/{audio-Bn44pQxv.js → audio-COrn8rM6.js} +4 -4
  38. package/dist/src/{audio-DDA5WHdx.js → audio-DcVKoInv.js} +4 -4
  39. package/dist/src/{base-BboXIF_0.cjs → base-D-670DX8.cjs} +3 -3
  40. package/dist/src/{base-CqzQ4K8j.js → base-PYJvBE1i.js} +3 -3
  41. package/dist/src/{base-CKjwebIH.js → base-fZ9wgg50.js} +3 -3
  42. package/dist/src/{base-Cz2ZC_iA.js → base-yrI1Yal4.js} +3 -3
  43. package/dist/src/{blobs-BUWmKWzo.js → blobs-BCZavS8s.js} +4 -4
  44. package/dist/src/{blobs-B1JriOyi.js → blobs-BQWqnnvL.js} +4 -4
  45. package/dist/src/{blobs-DXTl6J3H.js → blobs-C-F78Kfn.js} +3 -3
  46. package/dist/src/{blobs-C6j0bvFz.cjs → blobs-D2FAd1Q5.cjs} +3 -3
  47. package/dist/src/cache-BIyPcp5v.cjs +376 -0
  48. package/dist/src/cache-C4Xb-hNb.js +310 -0
  49. package/dist/src/cache-Cr9oLMUa.js +3 -0
  50. package/dist/src/cache-D5NZmMiT.js +310 -0
  51. package/dist/src/cache-DbLsVWB2.cjs +3 -0
  52. package/dist/src/cache-mb7c8hbp.js +280 -0
  53. package/dist/src/{chat-DK1U-eZ-.js → chat-0bwXjVP0.js} +3 -13
  54. package/dist/src/{chat-BtIKkLKx.cjs → chat-BPXSW8Bv.cjs} +3 -13
  55. package/dist/src/{chat-B0iaWhoh.js → chat-BfPaS15_.js} +63 -37
  56. package/dist/src/{chat-CM8qWR3_.cjs → chat-CclRbxGf.cjs} +63 -37
  57. package/dist/src/{chat-BEwdgGEg.js → chat-Dr3DUQ0D.js} +63 -37
  58. package/dist/src/{chat-pxmiVpWe.js → chat-I9izLm49.js} +62 -36
  59. package/dist/src/{chat-B-52XYI1.js → chat-MKxMnZJZ.js} +3 -13
  60. package/dist/src/{chat-BE0qTA8e.js → chat-mW0ORo8G.js} +3 -14
  61. package/dist/src/{chatkit-Cx174XI3.cjs → chatkit-BoWoSgXl.cjs} +4 -4
  62. package/dist/src/{chatkit-BYGQlHlV.js → chatkit-CJnHRRMM.js} +4 -4
  63. package/dist/src/{chatkit-a2D6mY6s.js → chatkit-Cv6AhukM.js} +4 -4
  64. package/dist/src/{chatkit-_8eJqKcD.js → chatkit-zUIVoDos.js} +4 -4
  65. package/dist/src/{claude-agent-sdk-CMjh4LFH.js → claude-agent-sdk-BQNuLaAK.js} +19 -14
  66. package/dist/src/{claude-agent-sdk-8ddRp1L2.cjs → claude-agent-sdk-CPJo3dBQ.cjs} +21 -16
  67. package/dist/src/{claude-agent-sdk-HgbFioFw.js → claude-agent-sdk-Dtq_L-Sc.js} +20 -15
  68. package/dist/src/{claude-agent-sdk-Bq5EArsX.js → claude-agent-sdk-nfAIcxNf.js} +21 -17
  69. package/dist/src/{cloud-z8KZpUoa.js → cloud-DQZ5sVjW.js} +25 -13
  70. package/dist/src/cloud-Hphvo8kr.js +3 -0
  71. package/dist/src/{cloudflare-ai-Bbp26N0L.js → cloudflare-ai-BIB567w6.js} +5 -14
  72. package/dist/src/{cloudflare-ai-BGyXlpXJ.js → cloudflare-ai-DGLte7Py.js} +5 -14
  73. package/dist/src/{cloudflare-ai-C62x6MQG.cjs → cloudflare-ai-Dl3N9OVD.cjs} +6 -15
  74. package/dist/src/{cloudflare-ai-DdKP9TKT.js → cloudflare-ai-DlKr0rY7.js} +5 -15
  75. package/dist/src/{cloudflare-gateway-D-e9i1Sn.js → cloudflare-gateway-BDZrYydE.js} +4 -16
  76. package/dist/src/{cloudflare-gateway-Dx36ftqF.cjs → cloudflare-gateway-BYDp495F.cjs} +4 -15
  77. package/dist/src/{cloudflare-gateway-DXhtXDRb.js → cloudflare-gateway-CiIZHU0Q.js} +4 -15
  78. package/dist/src/{cloudflare-gateway-BwAaUgeW.js → cloudflare-gateway-DI1HNP5F.js} +4 -15
  79. package/dist/src/codex-sdk-BAmYE7qy.js +3 -0
  80. package/dist/src/codex-sdk-C2_M2pl_.cjs +1172 -0
  81. package/dist/src/codex-sdk-CErXn7qh.js +1165 -0
  82. package/dist/src/codex-sdk-CWEnH70W.cjs +2 -0
  83. package/dist/src/codex-sdk-CpqiOqDO.js +1164 -0
  84. package/dist/src/codex-sdk-Rtky3M4I.js +1165 -0
  85. package/dist/src/{cometapi-BDyV-NNm.js → cometapi-BUlt_ELa.js} +8 -15
  86. package/dist/src/{cometapi-hhL4TAh3.js → cometapi-CtJ-mS8R.js} +9 -15
  87. package/dist/src/{cometapi-sp7sJpBD.js → cometapi-DT-jlVCB.js} +8 -17
  88. package/dist/src/{cometapi-C3hOlM7-.cjs → cometapi-UVOryo4W.cjs} +9 -16
  89. package/dist/src/{completion-DlXUhj5c.cjs → completion-BozdoXba.cjs} +7 -62
  90. package/dist/src/{completion-BCimtq-h.js → completion-Dnxn7E-j.js} +8 -57
  91. package/dist/src/{completion-DCjv7RZ3.js → completion-HUe8wDhZ.js} +8 -57
  92. package/dist/src/{completion-DoYy49ti.js → completion-x0a_c2y1.js} +8 -57
  93. package/dist/src/{createHash-CTQmL3G2.js → createHash-4gFQpDDv.js} +3 -3
  94. package/dist/src/{createHash-BYwImsYv.cjs → createHash-B7KvgoOD.cjs} +4 -4
  95. package/dist/src/{createHash-Da8fMwqB.js → createHash-ChI45QR1.js} +3 -3
  96. package/dist/src/{createHash-DmPQkvBh.js → createHash-CwDVU5xr.js} +3 -3
  97. package/dist/src/{docker-FeBni2dw.js → docker-CQmlA2NU.js} +7 -14
  98. package/dist/src/{docker-CxCkwMzc.js → docker-ClnmCf1Z.js} +6 -14
  99. package/dist/src/{docker-DpguQj-w.js → docker-DCgsveLD.js} +6 -16
  100. package/dist/src/{docker-Cqj2-QVi.cjs → docker-DS4_Osau.cjs} +7 -15
  101. package/dist/src/embedding-D3xTseo7.js +59 -0
  102. package/dist/src/embedding-DD9wa3ae.js +58 -0
  103. package/dist/src/embedding-I45KG3o7.cjs +63 -0
  104. package/dist/src/embedding-nFbumxcv.js +58 -0
  105. package/dist/src/entrypoint.js +69 -6
  106. package/dist/src/{errors-P6ll7XSJ.js → errors-Cw810C93.js} +1 -1
  107. package/dist/src/{esm-SUNIX1x3.js → esm-C7PnfdF8.js} +15 -6
  108. package/dist/src/{esm-CipptfDu.cjs → esm-CtEPLdAj.cjs} +15 -6
  109. package/dist/src/{esm-CKWP3u_P.js → esm-Dh4dOLlt.js} +16 -7
  110. package/dist/src/{esm-7UIl0pPM.js → esm-tVgYPY-f.js} +27 -18
  111. package/dist/src/eval-CzJFfFO9.js +3 -0
  112. package/dist/src/{eval-BTqTn7lb.js → eval-u4UVafl6.js} +49 -20
  113. package/dist/src/{evalResult-BkIhRdTe.js → evalResult-Bgm9ZH31.js} +7 -7
  114. package/dist/src/{evalResult-DUDShQrm.js → evalResult-D3hVYFis.js} +7 -7
  115. package/dist/src/evalResult-D8MT9p0s.js +3 -0
  116. package/dist/src/evalResult-DElBuddX.js +2 -0
  117. package/dist/src/evalResult-Dvc-iucu.cjs +2 -0
  118. package/dist/src/{evalResult-DpARzUCb.cjs → evalResult-KZqXl4XP.cjs} +7 -7
  119. package/dist/src/evaluator-CVessDWe.js +3 -0
  120. package/dist/src/{evaluator-BcvOGaam.js → evaluator-IvuDYSvQ.js} +3178 -2102
  121. package/dist/src/{extractor-C8XwivI9.js → extractor-CAfTSraf.js} +6 -6
  122. package/dist/src/{extractor-CAZ2G3Kh.js → extractor-DNSeBVOJ.js} +6 -6
  123. package/dist/src/{extractor-D_wd8jxt.js → extractor-Dk6bRWkv.js} +6 -6
  124. package/dist/src/{extractor-DG3sSfXE.cjs → extractor-WVPOrH43.cjs} +6 -6
  125. package/dist/src/{fetch-BiYv2BZc.js → fetch-B0Z3Oe4k.js} +218 -55
  126. package/dist/src/{fetch-DoVRJZhJ.js → fetch-BEWnXrrG.js} +195 -45
  127. package/dist/src/fetch-C7bGKDlQ.js +3 -0
  128. package/dist/src/{fetch-BnR9wSnm.cjs → fetch-CJU5ELPa.cjs} +223 -48
  129. package/dist/src/{fetch-CVAtKnI3.js → fetch-Di00EQrc.js} +218 -55
  130. package/dist/src/{fileExtensions-Ds-foDzt.js → fileExtensions-AWa2ZML4.js} +1 -1
  131. package/dist/src/{fileExtensions-LcDYkU4v.js → fileExtensions-BArZuxsI.js} +1 -1
  132. package/dist/src/{formatDuration-DgBVMN65.js → formatDuration-DZzPsexs.js} +1 -1
  133. package/dist/src/{genaiTracer-70Z8BIuV.js → genaiTracer-COYDi-tC.js} +6 -2
  134. package/dist/src/{genaiTracer-C1rxGO8Q.js → genaiTracer-DWdZ28hY.js} +6 -2
  135. package/dist/src/{genaiTracer-D3fD9dNV.js → genaiTracer-XnrcgDCe.js} +6 -2
  136. package/dist/src/{genaiTracer-BfxrvSUb.cjs → genaiTracer-yRuxj9-L.cjs} +7 -3
  137. package/dist/src/golang/wrapper.go +1 -1
  138. package/dist/src/{graders-BElhu9ZY.cjs → graders--zknU_uk.cjs} +3772 -1302
  139. package/dist/src/graders-BOAzQEUe.cjs +2 -0
  140. package/dist/src/graders-D4BTsZdG2.js +3 -0
  141. package/dist/src/graders-DOJK1XpV.js +2 -0
  142. package/dist/src/graders-NAv9LcBn.js +2 -0
  143. package/dist/src/{graders-DG7mhg-b.js → graders-Zy3x0zqX.js} +5691 -3247
  144. package/dist/src/{graders-RjHF8VfG.js → graders-eIHhRqoC.js} +5683 -3239
  145. package/dist/src/{graders-BXAJ0sbS.js → graders-pvbReLLn.js} +5692 -3248
  146. package/dist/src/{image-6WQXK8m8.js → image-9302QVqR.js} +4 -4
  147. package/dist/src/{image-B8b6f36E.js → image-B5Mv-Z3h.js} +8 -8
  148. package/dist/src/{image-PoF6DN3x.js → image-DVz2RiMF.js} +8 -8
  149. package/dist/src/{image-fza3zuKs.cjs → image-De2FBmYV.cjs} +4 -4
  150. package/dist/src/{image-DO0RYnjH.js → image-dnoUgPrC.js} +4 -5
  151. package/dist/src/{image-CoxZp9PZ.js → image-qUpPvmNZ.js} +8 -8
  152. package/dist/src/{image-xNbw5ph2.js → image-u7-rKnYU.js} +4 -4
  153. package/dist/src/{image--F58eEIn.cjs → image-x6KqLQl4.cjs} +8 -8
  154. package/dist/src/index.cjs +3641 -2144
  155. package/dist/src/index.d.cts +2660 -20
  156. package/dist/src/index.d.ts +2660 -20
  157. package/dist/src/index.js +3649 -2152
  158. package/dist/src/{interactiveCheck-BnMYOjMu.js → interactiveCheck-CLERUB0c.js} +2 -2
  159. package/dist/src/{knowledgeBase-DqrLX8fy.cjs → knowledgeBase-Bpoe_nLu.cjs} +6 -8
  160. package/dist/src/{knowledgeBase-Bi7CmDbx.js → knowledgeBase-Dgc7CBWF.js} +6 -8
  161. package/dist/src/{knowledgeBase-DFRXPZl_.js → knowledgeBase-RhFPGWDc.js} +6 -8
  162. package/dist/src/{knowledgeBase-Ce3ofVan.js → knowledgeBase-lm9RXSAm.js} +6 -9
  163. package/dist/src/{litellm-CKiAxnoM.js → litellm-C2kqjxqp.js} +6 -14
  164. package/dist/src/{litellm-CnHI69aj.cjs → litellm-CoyI4IAl.cjs} +6 -15
  165. package/dist/src/{litellm-Tc294Jhj.js → litellm-DRjpcSa7.js} +5 -14
  166. package/dist/src/{litellm-Bo2gQXpo.js → litellm-p37R1dzQ.js} +5 -16
  167. package/dist/src/{logger-BnkjG2jt.js → logger-B88EkIn6.js} +40 -11
  168. package/dist/src/{logger-D5iKBpu_.cjs → logger-COuQb2xB.cjs} +51 -10
  169. package/dist/src/{logger-DO8_zM18.js → logger-Ct2S6Yx-.js} +40 -11
  170. package/dist/src/{logger-BcJBzSSA.js → logger-DksKw1Qc.js} +40 -11
  171. package/dist/src/{luma-ray-C9q8rdQe.js → luma-ray-B863CmuZ.js} +6 -10
  172. package/dist/src/{luma-ray-DP0QA9qn.js → luma-ray-BTTLtqQ8.js} +7 -10
  173. package/dist/src/{luma-ray-m9Ku2meV.cjs → luma-ray-BxVKaW2a.cjs} +6 -10
  174. package/dist/src/{luma-ray-0ehMPt5N.js → luma-ray-KgTCXrZC.js} +6 -12
  175. package/dist/src/main.d.ts +1 -26
  176. package/dist/src/main.js +985 -520
  177. package/dist/src/{messages-HJsyEh4o.cjs → messages-811uVVW5.cjs} +69 -19
  178. package/dist/src/{messages-Dy9QecMs.js → messages-BTQz42fn.js} +69 -19
  179. package/dist/src/{messages-biC_ex-p.js → messages-MYTQ2TWp.js} +69 -19
  180. package/dist/src/{messages-DJNo37Ko.js → messages-zWbkLLHz.js} +69 -19
  181. package/dist/src/{meteor-D-SotUw9.js → meteor-CU5UAE-H.js} +1 -1
  182. package/dist/src/{meteor-DLZZ3osF.cjs → meteor-Co1VQ1u5.cjs} +1 -1
  183. package/dist/src/{meteor-44VjEACX.js → meteor-DHdzY1Ss.js} +1 -1
  184. package/dist/src/{meteor-DUiCJRC-.js → meteor-DuAFv6gF.js} +1 -1
  185. package/dist/src/{modelslab-B5J-ZM5c.js → modelslab-D0erNWKe.js} +7 -10
  186. package/dist/src/{modelslab-BTOT8FUO.js → modelslab-DIq-6y7x.js} +7 -10
  187. package/dist/src/{modelslab-IQbNg-r7.cjs → modelslab-Dk1JAtVo.cjs} +7 -10
  188. package/dist/src/{modelslab-BI458moT.js → modelslab-wu9yi5GE.js} +7 -11
  189. package/dist/src/{nova-reel-BZ9y-Y5s.js → nova-reel-CCFRfeRb.js} +7 -10
  190. package/dist/src/{nova-reel-CE5etkv9.cjs → nova-reel-CrLXVKQf.cjs} +6 -10
  191. package/dist/src/{nova-reel-Xw1SXLpg.js → nova-reel-DQrm74ng.js} +6 -10
  192. package/dist/src/{nova-reel-DEeQlnOJ.js → nova-reel-gr11WG7f.js} +6 -12
  193. package/dist/src/{nova-sonic-Ogqf-csn.js → nova-sonic-BYdp-QLs.js} +5 -7
  194. package/dist/src/{nova-sonic-DXTLpi-r.js → nova-sonic-B_ZXcUJB.js} +4 -7
  195. package/dist/src/{nova-sonic-DWswpN1E.js → nova-sonic-TDgrlTk7.js} +4 -9
  196. package/dist/src/{nova-sonic-N0yCm0vb.cjs → nova-sonic-i5tUvXKn.cjs} +4 -7
  197. package/dist/src/{openai-BcB5KlTk.js → openai-DhVEmgeZ.js} +6 -3
  198. package/dist/src/{openai-BMcwgD5C.js → openai-Qsvz25mV.js} +6 -3
  199. package/dist/src/{openai-CoxGAQwn.cjs → openai-URNyItar.cjs} +6 -3
  200. package/dist/src/{openai-D6wITiVn.js → openai-iYtrXzOX.js} +6 -3
  201. package/dist/src/openclaw-CLWrW03k.js +1200 -0
  202. package/dist/src/openclaw-CnQ363Wi.js +1199 -0
  203. package/dist/src/openclaw-CwzlQSQX.js +1199 -0
  204. package/dist/src/openclaw-wX9rtfke.cjs +1205 -0
  205. package/dist/src/{opencode-sdk-CHCs7dEb.js → opencode-sdk-BUu5Nevv.js} +6 -8
  206. package/dist/src/{opencode-sdk-WWJhnbKr.cjs → opencode-sdk-BZ2idgYA.cjs} +6 -8
  207. package/dist/src/{opencode-sdk-DDxj4QqH.js → opencode-sdk-BxD8vXp_.js} +7 -8
  208. package/dist/src/{opencode-sdk-C71Z0ehR.js → opencode-sdk-GI2KaAXq.js} +6 -10
  209. package/dist/src/{otlpReceiver-CZL48YfC.js → otlpReceiver-B2z58l4e.js} +154 -98
  210. package/dist/src/{otlpReceiver-DHKqJlsz.cjs → otlpReceiver-BfcVq2Nq.cjs} +154 -98
  211. package/dist/src/{otlpReceiver-CavGAA6k.js → otlpReceiver-BntK801g.js} +154 -98
  212. package/dist/src/{otlpReceiver-C9KlUtxh.js → otlpReceiver-DmVulbhC.js} +154 -98
  213. package/dist/src/{providerRegistry-BkzVH5Ba.js → providerRegistry-Bvh8mv85.js} +2 -2
  214. package/dist/src/{providerRegistry-CUWki5mQ.js → providerRegistry-CPQ_CmVO.js} +2 -2
  215. package/dist/src/{providerRegistry-BTDgfV5h.cjs → providerRegistry-CQMdTmHP.cjs} +2 -2
  216. package/dist/src/{providerRegistry-B9lh-_tx.js → providerRegistry-CWoPjKFZ.js} +2 -2
  217. package/dist/src/{providers-CScd1wN6.cjs → providers-1eKkXBKp.cjs} +792 -556
  218. package/dist/src/{providers-Ch6Mr0gn.js → providers-BV_KMZje.js} +699 -493
  219. package/dist/src/providers-Bp4S-FvO.js +2 -0
  220. package/dist/src/providers-DV3ax9e_.cjs +3 -0
  221. package/dist/src/{providers-DvddrgxL.js → providers-Domz_llv.js} +707 -501
  222. package/dist/src/{providers-Cn73d5sr.js → providers-DruaQfwu.js} +704 -498
  223. package/dist/src/providers-iUt5fbAN.js +3 -0
  224. package/dist/src/providers-u9Enmfok.js +2 -0
  225. package/dist/src/python/persistent_wrapper.py +0 -5
  226. package/dist/src/{pythonUtils-Cpo0Ez1p.js → pythonUtils-C2UQ30Rz.js} +3 -3
  227. package/dist/src/{pythonUtils-Bzwbgpbg.js → pythonUtils-Cldx7huE.js} +3 -3
  228. package/dist/src/{pythonUtils-wIqk7zAf.js → pythonUtils-CnndUbW-.js} +3 -3
  229. package/dist/src/{pythonUtils-dAVigVK-.cjs → pythonUtils-tAJvvpS-.cjs} +3 -3
  230. package/dist/src/{quiverai-BeofbLVc.js → quiverai-CtWi6x_g.js} +4 -4
  231. package/dist/src/{quiverai-CcUhPIBg.cjs → quiverai-DFotyafY.cjs} +4 -4
  232. package/dist/src/{quiverai-DVSEqJiq.js → quiverai-DR0SnIQV.js} +4 -4
  233. package/dist/src/{quiverai-CCQn73lq.js → quiverai-aPPvXOgn.js} +4 -5
  234. package/dist/src/render-CH-62LbA.js +135 -0
  235. package/dist/src/render-CMEpfLaO.js +136 -0
  236. package/dist/src/{render-BHl6QVq9.js → render-CgVDrJmM.js} +2 -3
  237. package/dist/src/render-DHIZ6_k8.js +135 -0
  238. package/dist/src/render-DfQSFxGE.cjs +165 -0
  239. package/dist/src/{responses-CQb1Tj69.js → responses--OsX2aYW.js} +17 -12
  240. package/dist/src/{responses-mo0KQDbu.cjs → responses-Bi9vBuW_.cjs} +18 -13
  241. package/dist/src/{responses-CgNyTPsY.js → responses-C-flexAY.js} +18 -13
  242. package/dist/src/{responses-BKP_WYis.js → responses-DL9m8CyY.js} +18 -13
  243. package/dist/src/{rubyUtils-CGeUtCfW.cjs → rubyUtils-B6eljPuh.cjs} +3 -3
  244. package/dist/src/{rubyUtils-DECSbsfY.js → rubyUtils-CYSQEG4a.js} +3 -3
  245. package/dist/src/rubyUtils-D1L2d3jb.js +3 -0
  246. package/dist/src/rubyUtils-DUbq4tff.cjs +2 -0
  247. package/dist/src/{rubyUtils-PgU-gHmx.js → rubyUtils-DVLeA2jg.js} +3 -3
  248. package/dist/src/{rubyUtils-CiVfln3g.js → rubyUtils-DsGrTx8R.js} +3 -3
  249. package/dist/src/{sagemaker-CqeASYE5.js → sagemaker-BVkaG2-l.js} +14 -18
  250. package/dist/src/{sagemaker-CVv8W7so.js → sagemaker-BveBvuxm.js} +14 -18
  251. package/dist/src/{sagemaker-MUbD5V3v.js → sagemaker-D67yzMzs.js} +14 -19
  252. package/dist/src/{sagemaker-jiw1wQa-.cjs → sagemaker-XnfhheQv.cjs} +14 -18
  253. package/dist/src/{scanner-DVDeUz1r.js → scanner-1DqWi1Ej.js} +130 -35
  254. package/dist/src/server/golang/wrapper.go +1 -1
  255. package/dist/src/server/index.js +3596 -2098
  256. package/dist/src/server/python/persistent_wrapper.py +0 -5
  257. package/dist/src/{server-DZ9MtCn0.js → server-BNYztJkh.js} +128 -9
  258. package/dist/src/{server-Cns05F1j.js → server-BSB45Nt9.js} +127 -8
  259. package/dist/src/{server-CP9qKM40.js → server-D6Il2Sob.js} +126 -7
  260. package/dist/src/server-DCtHUqlp.js +3 -0
  261. package/dist/src/server-DaA2eR26.cjs +2 -0
  262. package/dist/src/{server-BtoCXeXI.cjs → server-Dx2TyCH2.cjs} +140 -6
  263. package/dist/src/{signal-C3ZTsUgi.js → signal-CE5G3a7x.js} +3 -3
  264. package/dist/src/{slack-94iG3T0s.cjs → slack-1Rhq0EoV.cjs} +2 -2
  265. package/dist/src/{slack-BR0HtO3K.js → slack-D5Wpy8LM.js} +2 -2
  266. package/dist/src/{slack-DCEV-vWP.js → slack-DDUe-5MC.js} +2 -2
  267. package/dist/src/{slack-2sdpGzbt.js → slack-acRb0IqQ.js} +2 -2
  268. package/dist/src/store-CWOSz6D_.cjs +2 -0
  269. package/dist/src/{store-P8OKm19S.js → store-CYEy5J2D.js} +3 -3
  270. package/dist/src/{store-CLyU7AtI.cjs → store-DAAyxcy6.cjs} +3 -3
  271. package/dist/src/store-DCDBhv7B.js +3 -0
  272. package/dist/src/{store-VB0GP46K.js → store-Dn9HUkdW.js} +3 -3
  273. package/dist/src/{store-Cj258DgL.js → store-M0b1WfYb.js} +3 -3
  274. package/dist/src/{tables-DmzvLbeZ.js → tables-C4CH3zRr.js} +3 -3
  275. package/dist/src/{tables-BEIFz2tM.js → tables-CsWou1Bx.js} +3 -3
  276. package/dist/src/{tables-kC7R5kiK.js → tables-DQ4WU5tX.js} +3 -3
  277. package/dist/src/{tables-BdZQEpRz.cjs → tables-DUfh1F7Z.cjs} +3 -3
  278. package/dist/src/telemetry-C1IqxcdW.js +3 -0
  279. package/dist/src/telemetry-C4ZEa_es.cjs +2 -0
  280. package/dist/src/{telemetry-BnH5VJAU.js → telemetry-CQPez_Jp.js} +4 -4
  281. package/dist/src/{telemetry-re627Lre.cjs → telemetry-Dsw_faFj.cjs} +4 -4
  282. package/dist/src/{telemetry-BugWqKiu.js → telemetry-Dvqxv3YC.js} +4 -4
  283. package/dist/src/{telemetry-DPXLd7UE.js → telemetry-dbaJ0E98.js} +4 -4
  284. package/dist/src/{text-CW1cyrwj.cjs → text-BVi-cLPJ.cjs} +1 -1
  285. package/dist/src/{text-B_UCRPp2.js → text-CZr46tp_.js} +1 -1
  286. package/dist/src/{text-TIv0QYnd.js → text-DHxdyQqT.js} +1 -1
  287. package/dist/src/{text-Db-Wt2u2.js → text-KvuD2Iko.js} +1 -1
  288. package/dist/src/{tokenUsageUtils-bVa1ga6f.cjs → tokenUsageUtils-Bb7DkZPz.cjs} +7 -3
  289. package/dist/src/{tokenUsageUtils-BDGe-iyI.js → tokenUsageUtils-C-bmyHoE.js} +7 -3
  290. package/dist/src/{tokenUsageUtils-DflFMjS0.js → tokenUsageUtils-CXrvO-wA.js} +7 -3
  291. package/dist/src/{transcription-BvtsrzRG.cjs → transcription-BvjmiYB1.cjs} +9 -13
  292. package/dist/src/{transcription-Hb3VnC4M.js → transcription-CJspiD2c.js} +8 -11
  293. package/dist/src/{transcription-CaMivnjG.js → transcription-DuWDupG7.js} +7 -11
  294. package/dist/src/{transcription-DOMMTu01.js → transcription-V2HaAmy2.js} +7 -13
  295. package/dist/src/{transform-BqPkNPYm.js → transform-Bbg6A8Jk.js} +4 -4
  296. package/dist/src/{transform-DrleutM3.js → transform-CG0ehZNG.js} +9 -8
  297. package/dist/src/{transform-0BwoBsvO.cjs → transform-CTeuTR3S.cjs} +16 -8
  298. package/dist/src/{transform-ZrG2dvlo.cjs → transform-CUnzlsbn.cjs} +4 -4
  299. package/dist/src/{transform-BzK09Q_9.js → transform-DYX1_Xnh.js} +5 -5
  300. package/dist/src/transform-DgKlRr73.cjs +2 -0
  301. package/dist/src/transform-M6ITAESf.js +3 -0
  302. package/dist/src/{transform-ljLYHEPh.js → transform-UN5UGu8U.js} +5 -5
  303. package/dist/src/{transform-B2-jIv68.js → transform-lQrDE1BQ.js} +8 -6
  304. package/dist/src/{transform-DyDAwEpE.js → transform-zDhMmzwX.js} +10 -7
  305. package/dist/src/{transformersAvailability-BGkzavwb.js → transformersAvailability-CcHusyhw.js} +1 -1
  306. package/dist/src/{transformersAvailability-DKoRtQLy.cjs → transformersAvailability-Cju9mHgR.cjs} +1 -1
  307. package/dist/src/{transformersAvailability-D6c6ROpT.js → transformersAvailability-DLlROWhg.js} +1 -1
  308. package/dist/src/{types-q8GXGF65.js → types-BGQDAP8i.js} +351 -22
  309. package/dist/src/{types-Cd3ygw8W.js → types-Bgh5SOn6.js} +352 -24
  310. package/dist/src/{types-D8cGDZbL.cjs → types-CeaeaZdP.cjs} +387 -22
  311. package/dist/src/{types-CIhFeUC4.js → types-Dm9JM6Vb.js} +362 -23
  312. package/dist/src/{util-vNmDL5DT.js → util-BYvQUPp7.js} +138 -36
  313. package/dist/src/{util-CuLo2pMR.cjs → util-Bxn8emtE.cjs} +14 -167
  314. package/dist/src/{util-BLvy9qfE.js → util-C8e5uydV.js} +18 -141
  315. package/dist/src/{util-DM2rTn_6.js → util-C9J8ahRn.js} +4 -4
  316. package/dist/src/{util-CFj4YKIn.cjs → util-CN3SrLT4.cjs} +4 -4
  317. package/dist/src/{util-BtoGs5Cb.js → util-D3q0WQ-0.js} +4 -4
  318. package/dist/src/{util-CgDCK4KI.js → util-D9TisOyk.js} +4 -4
  319. package/dist/src/{util-DMFeUvLz.js → util-DDs-7g6-.js} +138 -36
  320. package/dist/src/{util-DbVG-yZU.js → util-DvU2Pw8c.js} +138 -36
  321. package/dist/src/{util-Bm3E9jpK.js → util-DxWpWjhc.js} +12 -135
  322. package/dist/src/{util-CMMkIxfU.js → util-oGMLA7vc.js} +16 -139
  323. package/dist/src/{util--9u9UVCt.cjs → util-olYL5C6N.cjs} +143 -35
  324. package/dist/src/{utils-DKw8mrgr.cjs → utils-B05gLxER.cjs} +6 -4
  325. package/dist/src/{utils-DEuL4VNB.js → utils-BLJKfv0y.js} +6 -4
  326. package/dist/src/{utils-DOjD4dTC.js → utils-DJfvjyMj.js} +6 -4
  327. package/dist/src/{utils-CFxO9KGo.js → utils-hXtCYanr.js} +6 -4
  328. package/dist/tsconfig.tsbuildinfo +1 -1
  329. package/package.json +51 -42
  330. package/dist/src/app/assets/index-B6l9CVVb.js +0 -439
  331. package/dist/src/app/assets/index-DyZ0Ep37.css +0 -1
  332. package/dist/src/app/assets/scroll-timeline-BdJZVXlz.js +0 -1
  333. package/dist/src/app/assets/sync-CStkzc6u.js +0 -4
  334. package/dist/src/app/assets/vendor-charts-BnDWwBlI.js +0 -36
  335. package/dist/src/app/assets/vendor-markdown-Bz7N-ca6.js +0 -29
  336. package/dist/src/app/assets/vendor-react-AtKqiNEf.js +0 -4
  337. package/dist/src/app/assets/vendor-syntax-D06x6TQF.js +0 -2
  338. package/dist/src/app/assets/vendor-utils-BvMHZmO7.js +0 -37
  339. package/dist/src/cache-C5yFZ4gC.cjs +0 -816
  340. package/dist/src/cache-CaT5tPgo.js +0 -756
  341. package/dist/src/cache-CyCanoMu.js +0 -6
  342. package/dist/src/cache-DSqR6ezl.js +0 -726
  343. package/dist/src/cache-Df_QFDNu.cjs +0 -5
  344. package/dist/src/cache-HP0NP4k3.js +0 -756
  345. package/dist/src/cloud-DE3t1-ZI.js +0 -4
  346. package/dist/src/codex-sdk-BQEw16R_.js +0 -834
  347. package/dist/src/codex-sdk-C_07GuVS.js +0 -834
  348. package/dist/src/codex-sdk-DE5G18dx.js +0 -835
  349. package/dist/src/codex-sdk-ZLKfDjqP.cjs +0 -838
  350. package/dist/src/eval-7aEqoMs3.js +0 -15
  351. package/dist/src/evalResult-CYNHkk5A.js +0 -12
  352. package/dist/src/evalResult-CuvJeNiM.js +0 -10
  353. package/dist/src/evalResult-tGdilrWt.cjs +0 -10
  354. package/dist/src/evaluator-BBUqRhz1.js +0 -36
  355. package/dist/src/fetch-UWU706qb.js +0 -5
  356. package/dist/src/graders-BxfEguVY.js +0 -32
  357. package/dist/src/graders-CzVMbEnv.js +0 -34
  358. package/dist/src/graders-DjCXfj0l.cjs +0 -32
  359. package/dist/src/graders-kHzIWOKu.js +0 -32
  360. package/dist/src/openclaw-0Sv7AK3O.js +0 -580
  361. package/dist/src/openclaw-CXxbKgDH.cjs +0 -586
  362. package/dist/src/openclaw-D1FSCps-.js +0 -580
  363. package/dist/src/openclaw-D2ENvu7a.js +0 -582
  364. package/dist/src/providers-BSLEaIQG.js +0 -32
  365. package/dist/src/providers-D-FnDg8k.cjs +0 -31
  366. package/dist/src/providers-DEYiFVAo.js +0 -30
  367. package/dist/src/providers-sS2WI8YD.js +0 -30
  368. package/dist/src/rubyUtils-B1HXG4ej.cjs +0 -4
  369. package/dist/src/rubyUtils-Rt6pKA96.js +0 -5
  370. package/dist/src/server-B0Xh1Gx-.js +0 -7
  371. package/dist/src/server-DJTKu9IR.cjs +0 -5
  372. package/dist/src/store-C5u6MgC8.js +0 -6
  373. package/dist/src/store-CNHk-De4.cjs +0 -5
  374. package/dist/src/telemetry-Yig0Tino.js +0 -7
  375. package/dist/src/telemetry-p8Pwqm1i.cjs +0 -5
  376. package/dist/src/tokenUsageUtils-NYT-WKS6.js +0 -138
  377. package/dist/src/transform-ChNIpHz7.js +0 -6
  378. package/dist/src/transform-PtQ6rAE3.cjs +0 -5
@@ -1,7 +1,14 @@
1
- import { m as calculateCost } from "./fetch-CVAtKnI3.js";
2
- import { C as parseDataUrl } from "./transform-DyDAwEpE.js";
1
+ import { g as calculateCost } from "./fetch-B0Z3Oe4k.js";
2
+ import { w as parseDataUrl } from "./transform-lQrDE1BQ.js";
3
3
  //#region src/providers/anthropic/util.ts
4
4
  const ANTHROPIC_MODELS = [
5
+ ...["claude-mythos-preview"].map((model) => ({
6
+ id: model,
7
+ cost: {
8
+ input: 25 / 1e6,
9
+ output: 125 / 1e6
10
+ }
11
+ })),
5
12
  ...["claude-sonnet-4-6", "claude-sonnet-4-6-latest"].map((model) => ({
6
13
  id: model,
7
14
  cost: {
@@ -16,7 +23,11 @@ const ANTHROPIC_MODELS = [
16
23
  output: 25 / 1e6
17
24
  }
18
25
  })),
19
- ...["claude-opus-4-5-20251101", "claude-opus-4-5-latest"].map((model) => ({
26
+ ...[
27
+ "claude-opus-4-5",
28
+ "claude-opus-4-5-20251101",
29
+ "claude-opus-4-5-latest"
30
+ ].map((model) => ({
20
31
  id: model,
21
32
  cost: {
22
33
  input: 5 / 1e6,
@@ -24,6 +35,7 @@ const ANTHROPIC_MODELS = [
24
35
  }
25
36
  })),
26
37
  ...[
38
+ "claude-opus-4-1",
27
39
  "claude-opus-4-1-20250805",
28
40
  "claude-opus-4-20250514",
29
41
  "claude-opus-4-0",
@@ -36,6 +48,7 @@ const ANTHROPIC_MODELS = [
36
48
  }
37
49
  })),
38
50
  ...[
51
+ "claude-sonnet-4-5",
39
52
  "claude-sonnet-4-5-20250929",
40
53
  "claude-sonnet-4-5-latest",
41
54
  "claude-sonnet-4-20250514",
@@ -48,7 +61,11 @@ const ANTHROPIC_MODELS = [
48
61
  output: 15 / 1e6
49
62
  }
50
63
  })),
51
- ...["claude-haiku-4-5-20251001", "claude-haiku-4-5-latest"].map((model) => ({
64
+ ...[
65
+ "claude-haiku-4-5",
66
+ "claude-haiku-4-5-20251001",
67
+ "claude-haiku-4-5-latest"
68
+ ].map((model) => ({
52
69
  id: model,
53
70
  cost: {
54
71
  input: 1 / 1e6,
@@ -209,31 +226,72 @@ function parseMessages(messages) {
209
226
  thinking
210
227
  };
211
228
  }
212
- function calculateAnthropicCost(modelName, config, promptTokens, completionTokens) {
229
+ /**
230
+ * Compute input cost with Anthropic cache pricing applied.
231
+ * Anthropic docs: input_tokens is the non-cached portion; cache_read and cache_creation are additive.
232
+ * Cache reads cost 10% of base rate (90% discount), cache writes cost 125% of base rate (25% surcharge).
233
+ */
234
+ function calculateCacheInputCost(baseInputRate, uncachedInputTokens, cacheRead, cacheCreation) {
235
+ return uncachedInputTokens * baseInputRate + cacheRead * baseInputRate * .1 + cacheCreation * baseInputRate * 1.25;
236
+ }
237
+ function calculateAnthropicCost(modelName, config, promptTokens, completionTokens, cacheReadTokens, cacheCreationTokens) {
238
+ if (config.cost != null) return calculateCost(modelName, config, promptTokens, completionTokens, ANTHROPIC_MODELS);
239
+ if (!Number.isFinite(promptTokens) || !Number.isFinite(completionTokens) || typeof promptTokens === "undefined" || typeof completionTokens === "undefined") return calculateCost(modelName, config, promptTokens, completionTokens, ANTHROPIC_MODELS);
240
+ const cacheRead = cacheReadTokens ?? 0;
241
+ const cacheCreation = cacheCreationTokens ?? 0;
242
+ const effectiveInputTokens = promptTokens + cacheRead + cacheCreation;
213
243
  if ([
244
+ "claude-sonnet-4-5",
214
245
  "claude-sonnet-4-5-20250929",
215
246
  "claude-sonnet-4-5-latest",
216
247
  "claude-sonnet-4-6",
217
248
  "claude-sonnet-4-6-latest"
218
- ].includes(modelName) && Number.isFinite(promptTokens) && Number.isFinite(completionTokens) && typeof promptTokens !== "undefined" && typeof completionTokens !== "undefined") {
219
- const inputCost = config.cost ?? (promptTokens > 2e5 ? 6 / 1e6 : 3 / 1e6);
220
- const outputCost = config.cost ?? (promptTokens > 2e5 ? 22.5 / 1e6 : 15 / 1e6);
221
- return inputCost * promptTokens + outputCost * completionTokens;
249
+ ].includes(modelName)) {
250
+ const isLongContext = effectiveInputTokens > 2e5;
251
+ const baseInputRate = isLongContext ? 6 / 1e6 : 3 / 1e6;
252
+ const outputRate = isLongContext ? 22.5 / 1e6 : 15 / 1e6;
253
+ return calculateCacheInputCost(baseInputRate, promptTokens, cacheRead, cacheCreation) + completionTokens * outputRate;
254
+ }
255
+ if (cacheRead || cacheCreation) {
256
+ const modelInfo = ANTHROPIC_MODELS.find((m) => m.id === modelName);
257
+ if (modelInfo) return calculateCacheInputCost(modelInfo.cost.input, promptTokens, cacheRead, cacheCreation) + completionTokens * modelInfo.cost.output;
222
258
  }
223
259
  return calculateCost(modelName, config, promptTokens, completionTokens, ANTHROPIC_MODELS);
224
260
  }
261
+ /**
262
+ * Extract refusal details from the Anthropic stop_details field.
263
+ * Returns a human-readable string if the response was refused, or undefined otherwise.
264
+ */
265
+ function getRefusalDetails(data) {
266
+ if (data.stop_reason !== "refusal" || !data.stop_details) return;
267
+ const details = data.stop_details;
268
+ const parts = ["Content refused by Anthropic safety filters"];
269
+ if (details.category) parts.push(`category: ${details.category}`);
270
+ if (details.explanation) parts.push(`explanation: ${details.explanation}`);
271
+ return parts.join(" — ");
272
+ }
225
273
  function getTokenUsage(data, cached) {
226
274
  if (data.usage) {
227
- const total_tokens = data.usage.input_tokens + data.usage.output_tokens;
275
+ const cacheRead = data.usage.cache_read_input_tokens ?? 0;
276
+ const cacheCreation = data.usage.cache_creation_input_tokens ?? 0;
277
+ const allInputTokens = (data.usage.input_tokens ?? 0) + cacheRead + cacheCreation;
278
+ const total_tokens = allInputTokens + (data.usage.output_tokens ?? 0);
228
279
  if (cached) return {
229
280
  cached: total_tokens,
230
281
  total: total_tokens
231
282
  };
232
- else return {
233
- total: total_tokens,
234
- prompt: data.usage.input_tokens || 0,
235
- completion: data.usage.output_tokens || 0
236
- };
283
+ else {
284
+ const usage = {
285
+ total: total_tokens,
286
+ prompt: allInputTokens,
287
+ completion: data.usage.output_tokens ?? 0
288
+ };
289
+ if (data.usage.cache_read_input_tokens != null || data.usage.cache_creation_input_tokens != null) usage.completionDetails = {
290
+ cacheReadInputTokens: cacheRead,
291
+ cacheCreationInputTokens: cacheCreation
292
+ };
293
+ return usage;
294
+ }
237
295
  }
238
296
  return {};
239
297
  }
@@ -243,16 +301,20 @@ function getTokenUsage(data, cached) {
243
301
  function processAnthropicTools(tools = []) {
244
302
  const processedTools = [];
245
303
  const requiredBetaFeatures = [];
246
- for (const tool of tools) if ("type" in tool) if (tool.type === "web_fetch_20250910") {
247
- processedTools.push(transformWebFetchTool(tool));
248
- if (!requiredBetaFeatures.includes("web-fetch-2025-09-10")) requiredBetaFeatures.push("web-fetch-2025-09-10");
249
- } else if (tool.type === "web_search_20250305") processedTools.push(transformWebSearchTool(tool));
250
- else processedTools.push(tool);
251
- else {
252
- processedTools.push(tool);
253
- if ("strict" in tool && tool.strict === true) {
254
- if (!requiredBetaFeatures.includes("structured-outputs-2025-11-13")) requiredBetaFeatures.push("structured-outputs-2025-11-13");
255
- }
304
+ const addRequiredBetaFeature = (feature) => {
305
+ if (!requiredBetaFeatures.includes(feature)) requiredBetaFeatures.push(feature);
306
+ };
307
+ for (const tool of tools) {
308
+ if ("type" in tool) if (tool.type === "web_fetch_20250910") {
309
+ processedTools.push(transformWebFetchTool(tool));
310
+ addRequiredBetaFeature("web-fetch-2025-09-10");
311
+ } else if (tool.type === "web_fetch_20260209") processedTools.push(transformWebFetchTool20260209(tool));
312
+ else if (tool.type === "web_fetch_20260309") processedTools.push(transformWebFetchToolV2(tool));
313
+ else if (tool.type === "web_search_20250305") processedTools.push(transformWebSearchTool(tool));
314
+ else if (tool.type === "web_search_20260209") processedTools.push(transformWebSearchTool20260209(tool));
315
+ else processedTools.push(tool);
316
+ else processedTools.push(tool);
317
+ if ("strict" in tool && tool.strict === true) addRequiredBetaFeature("structured-outputs-2025-11-13");
256
318
  }
257
319
  return {
258
320
  processedTools,
@@ -260,21 +322,54 @@ function processAnthropicTools(tools = []) {
260
322
  };
261
323
  }
262
324
  /**
263
- * Transform web fetch tool config to Anthropic beta tool format
325
+ * Apply shared web fetch tool fields from config onto the SDK tool object.
264
326
  */
327
+ function applyWebFetchFields(tool, config) {
328
+ if (config.allowed_callers !== void 0) tool.allowed_callers = config.allowed_callers;
329
+ if (config.max_uses !== void 0) tool.max_uses = config.max_uses;
330
+ if (config.allowed_domains !== void 0) tool.allowed_domains = config.allowed_domains;
331
+ if (config.blocked_domains !== void 0) tool.blocked_domains = config.blocked_domains;
332
+ if (config.citations !== void 0) tool.citations = config.citations;
333
+ if (config.max_content_tokens !== void 0) tool.max_content_tokens = config.max_content_tokens;
334
+ if (config.cache_control !== void 0) tool.cache_control = config.cache_control;
335
+ if (config.defer_loading !== void 0) tool.defer_loading = config.defer_loading;
336
+ if (config.strict !== void 0) tool.strict = config.strict;
337
+ }
265
338
  function transformWebFetchTool(config) {
266
339
  const tool = {
267
340
  type: "web_fetch_20250910",
268
341
  name: "web_fetch"
269
342
  };
270
- if (config.max_uses !== void 0) tool.max_uses = config.max_uses;
271
- if (config.allowed_domains) tool.allowed_domains = config.allowed_domains;
272
- if (config.blocked_domains) tool.blocked_domains = config.blocked_domains;
273
- if (config.citations) tool.citations = config.citations;
274
- if (config.max_content_tokens !== void 0) tool.max_content_tokens = config.max_content_tokens;
275
- if (config.cache_control) tool.cache_control = config.cache_control;
343
+ applyWebFetchFields(tool, config);
344
+ return tool;
345
+ }
346
+ function transformWebFetchTool20260209(config) {
347
+ const tool = {
348
+ type: "web_fetch_20260209",
349
+ name: "web_fetch"
350
+ };
351
+ applyWebFetchFields(tool, config);
352
+ return tool;
353
+ }
354
+ function transformWebFetchToolV2(config) {
355
+ const tool = {
356
+ type: "web_fetch_20260309",
357
+ name: "web_fetch"
358
+ };
359
+ applyWebFetchFields(tool, config);
360
+ if (config.use_cache !== void 0) tool.use_cache = config.use_cache;
276
361
  return tool;
277
362
  }
363
+ function applyWebSearchFields(tool, config) {
364
+ if (config.allowed_callers !== void 0) tool.allowed_callers = config.allowed_callers;
365
+ if (config.allowed_domains !== void 0) tool.allowed_domains = config.allowed_domains;
366
+ if (config.blocked_domains !== void 0) tool.blocked_domains = config.blocked_domains;
367
+ if (config.cache_control !== void 0) tool.cache_control = config.cache_control;
368
+ if (config.defer_loading !== void 0) tool.defer_loading = config.defer_loading;
369
+ if (config.max_uses !== void 0) tool.max_uses = config.max_uses;
370
+ if (config.strict !== void 0) tool.strict = config.strict;
371
+ if (config.user_location !== void 0) tool.user_location = config.user_location;
372
+ }
278
373
  /**
279
374
  * Transform web search tool config to Anthropic beta tool format
280
375
  */
@@ -283,11 +378,18 @@ function transformWebSearchTool(config) {
283
378
  type: "web_search_20250305",
284
379
  name: "web_search"
285
380
  };
286
- if (config.max_uses !== void 0) tool.max_uses = config.max_uses;
287
- if (config.cache_control) tool.cache_control = config.cache_control;
381
+ applyWebSearchFields(tool, config);
382
+ return tool;
383
+ }
384
+ function transformWebSearchTool20260209(config) {
385
+ const tool = {
386
+ type: "web_search_20260209",
387
+ name: "web_search"
388
+ };
389
+ applyWebSearchFields(tool, config);
288
390
  return tool;
289
391
  }
290
392
  //#endregion
291
- export { parseMessages as a, outputFromMessage as i, calculateAnthropicCost as n, processAnthropicTools as o, getTokenUsage as r, ANTHROPIC_MODELS as t };
393
+ export { outputFromMessage as a, getTokenUsage as i, calculateAnthropicCost as n, parseMessages as o, getRefusalDetails as r, processAnthropicTools as s, ANTHROPIC_MODELS as t };
292
394
 
293
- //# sourceMappingURL=util-vNmDL5DT.js.map
395
+ //# sourceMappingURL=util-BYvQUPp7.js.map
@@ -1,10 +1,11 @@
1
- const require_logger = require("./logger-D5iKBpu_.cjs");
1
+ const require_logger = require("./logger-COuQb2xB.cjs");
2
2
  const require_invariant = require("./invariant-kfQ8Bu82.cjs");
3
- const require_esm = require("./esm-CipptfDu.cjs");
4
- const require_pythonUtils = require("./pythonUtils-dAVigVK-.cjs");
3
+ const require_esm = require("./esm-CtEPLdAj.cjs");
4
+ const require_pythonUtils = require("./pythonUtils-tAJvvpS-.cjs");
5
5
  const require_fileExtensions = require("./fileExtensions-bYh77CN8.cjs");
6
- const require_types = require("./types-D8cGDZbL.cjs");
7
- const require_fetch = require("./fetch-BnR9wSnm.cjs");
6
+ const require_types = require("./types-CeaeaZdP.cjs");
7
+ const require_render = require("./render-DfQSFxGE.cjs");
8
+ const require_fetch = require("./fetch-CJU5ELPa.cjs");
8
9
  let fs = require("fs");
9
10
  fs = require_logger.__toESM(fs);
10
11
  let path = require("path");
@@ -378,130 +379,6 @@ function parseFileUrl(fileUrl) {
378
379
  return { filePath: urlWithoutProtocol };
379
380
  }
380
381
  //#endregion
381
- //#region src/util/templates.ts
382
- /**
383
- * Get a Nunjucks engine instance with optional filters and configuration.
384
- * @param filters - Optional map of custom Nunjucks filters.
385
- * @param throwOnUndefined - Whether to throw an error on undefined variables.
386
- * @param isGrader - Whether this engine is being used in a grader context.
387
- * Nunjucks is always enabled in grader mode.
388
- * @returns A configured Nunjucks environment.
389
- */
390
- function getNunjucksEngine(filters, throwOnUndefined = false, isGrader = false) {
391
- if (!isGrader && require_logger.getEnvBool("PROMPTFOO_DISABLE_TEMPLATING")) return { renderString: (template) => template };
392
- const env = nunjucks.default.configure({
393
- autoescape: false,
394
- throwOnUndefined
395
- });
396
- const envGlobals = {
397
- ...require_logger.getEnvBool("PROMPTFOO_DISABLE_TEMPLATE_ENV_VARS", require_logger.getEnvBool("PROMPTFOO_SELF_HOSTED", false)) ? {} : process.env,
398
- ...require_logger.state.config?.env
399
- };
400
- env.addGlobal("env", envGlobals);
401
- env.addFilter("load", function(str) {
402
- return JSON.parse(str);
403
- });
404
- if (filters) for (const [name, filter] of Object.entries(filters)) env.addFilter(name, filter);
405
- return env;
406
- }
407
- /**
408
- * Parse Nunjucks template to extract variables.
409
- * @param template - The Nunjucks template string.
410
- * @returns An array of variables used in the template.
411
- */
412
- function extractVariablesFromTemplate(template) {
413
- const variableSet = /* @__PURE__ */ new Set();
414
- const regex = /\{\{[\s]*([^{}\s|]+)[\s]*(?:\|[^}]+)?\}\}|\{%[\s]*(?:if|for)[\s]+([^{}\s]+)[\s]*.*?%\}/g;
415
- template = template.replace(/\{#[\s\S]*?#\}/g, "");
416
- let match;
417
- while ((match = regex.exec(template)) !== null) {
418
- const variable = match[1] || match[2];
419
- if (variable) variableSet.add(variable);
420
- }
421
- const forLoopRegex = /\{%[\s]*for[\s]+(\w+)[\s]+in[\s]+(\w+)[\s]*%\}/g;
422
- while ((match = forLoopRegex.exec(template)) !== null) {
423
- variableSet.delete(match[1]);
424
- variableSet.add(match[2]);
425
- }
426
- return Array.from(variableSet);
427
- }
428
- /**
429
- * Extract variables from multiple Nunjucks templates.
430
- * @param templates - An array of Nunjucks template strings.
431
- * @returns An array of variables used in the templates.
432
- */
433
- function extractVariablesFromTemplates(templates) {
434
- const variableSet = /* @__PURE__ */ new Set();
435
- for (const template of templates) extractVariablesFromTemplate(template).forEach((variable) => variableSet.add(variable));
436
- return Array.from(variableSet);
437
- }
438
- //#endregion
439
- //#region src/util/render.ts
440
- /**
441
- * Renders ONLY environment variable templates in an object, leaving all other templates untouched.
442
- * This allows env vars to be resolved at provider load time while preserving runtime var templates.
443
- *
444
- * Supports full Nunjucks syntax for env vars including filters and expressions:
445
- * - {{ env.VAR_NAME }}
446
- * - {{ env['VAR-NAME'] }}
447
- * - {{ env["VAR-NAME"] }}
448
- * - {{ env.VAR | default('fallback') }}
449
- * - {{ env.VAR | upper }}
450
- *
451
- * Preserves non-env templates for runtime rendering:
452
- * - {{ vars.x }} - preserved as literal
453
- * - {{ prompt }} - preserved as literal
454
- *
455
- * Implementation: Uses regex to find env templates, delegates to Nunjucks for rendering.
456
- * This ensures full Nunjucks feature support while preserving non-env templates.
457
- *
458
- * @param obj - The object to process
459
- * @param envOverrides - Optional env vars to merge with (or replace) the base env
460
- * @param replaceBase - If true, envOverrides replaces the base env entirely instead of merging
461
- * @returns The object with only env templates rendered
462
- */
463
- function renderEnvOnlyInObject(obj, envOverrides, replaceBase) {
464
- if (require_logger.getEnvBool("PROMPTFOO_DISABLE_TEMPLATING")) return obj;
465
- if (typeof obj === "string") {
466
- const nunjucks = getNunjucksEngine();
467
- const baseEnvGlobals = nunjucks.getGlobal("env");
468
- const envGlobals = replaceBase ? envOverrides ?? {} : envOverrides ? {
469
- ...baseEnvGlobals,
470
- ...envOverrides
471
- } : baseEnvGlobals;
472
- return obj.replace(/\{\{(?:[^}]|\}(?!\}))*\}\}/g, (match) => {
473
- if (!match.match(/\benv\.|env\[/)) return match;
474
- const varMatch = match.match(/env\.(\w+)|env\[['"]([^'"]+)['"]\]/);
475
- const varName = varMatch?.[1] || varMatch?.[2];
476
- if (match.includes("|") || varName && varName in envGlobals && envGlobals[varName] !== void 0) try {
477
- return nunjucks.renderString(match, { env: envGlobals });
478
- } catch (error) {
479
- require_logger.logger.debug(`Failed to render env template "${match}": ${error instanceof Error ? error.message : String(error)}`);
480
- return match;
481
- }
482
- return match;
483
- });
484
- }
485
- if (Array.isArray(obj)) return obj.map((item) => renderEnvOnlyInObject(item, envOverrides, replaceBase));
486
- if (typeof obj === "object" && obj !== null) {
487
- const result = {};
488
- for (const key in obj) result[key] = renderEnvOnlyInObject(obj[key], envOverrides, replaceBase);
489
- return result;
490
- }
491
- return obj;
492
- }
493
- function renderVarsInObject(obj, vars) {
494
- if (!vars || require_logger.getEnvBool("PROMPTFOO_DISABLE_TEMPLATING")) return obj;
495
- if (typeof obj === "string") return getNunjucksEngine().renderString(obj, vars);
496
- if (Array.isArray(obj)) return obj.map((item) => renderVarsInObject(item, vars));
497
- if (typeof obj === "object" && obj !== null) {
498
- const result = {};
499
- for (const key in obj) result[key] = renderVarsInObject(obj[key], vars);
500
- return result;
501
- } else if (typeof obj === "function") return renderVarsInObject(obj({ vars }));
502
- return obj;
503
- }
504
- //#endregion
505
382
  //#region src/util/file.ts
506
383
  /**
507
384
  * Simple Nunjucks engine specifically for file paths
@@ -626,10 +503,10 @@ function getResolvedRelativePath(filePath, isCloudConfig) {
626
503
  */
627
504
  function maybeLoadConfigFromExternalFile(config, context) {
628
505
  if (Array.isArray(config)) return config.map((item) => maybeLoadConfigFromExternalFile(item, context));
629
- if (config && typeof config === "object" && config !== null) {
506
+ if (typeof config === "object" && config !== null) {
630
507
  const result = {};
631
508
  for (const key of Object.keys(config)) {
632
- const childContext = key === "value" && typeof config === "object" && config && "type" in config && typeof config.type === "string" && (config.type === "python" || config.type === "javascript") ? "assertion" : key === "vars" ? "vars" : context;
509
+ const childContext = key === "value" && "type" in config && typeof config.type === "string" && (config.type === "python" || config.type === "javascript") ? "assertion" : key === "vars" ? "vars" : context;
633
510
  result[key] = maybeLoadConfigFromExternalFile(config[key], childContext);
634
511
  }
635
512
  return result;
@@ -712,7 +589,7 @@ async function readFilters(filters, basePath = "") {
712
589
  * @returns The processed configuration with variables rendered and files loaded
713
590
  */
714
591
  function maybeLoadFromExternalFileWithVars(config, vars) {
715
- return maybeLoadFromExternalFile(renderVarsInObject(config, vars));
592
+ return maybeLoadFromExternalFile(require_render.renderVarsInObject(config, vars));
716
593
  }
717
594
  /**
718
595
  * Loads response_format configuration from an external file with variable rendering.
@@ -729,12 +606,12 @@ function maybeLoadFromExternalFileWithVars(config, vars) {
729
606
  */
730
607
  function maybeLoadResponseFormatFromExternalFile(responseFormat, vars) {
731
608
  if (responseFormat === void 0 || responseFormat === null) return responseFormat;
732
- const loaded = maybeLoadFromExternalFile(renderVarsInObject(responseFormat, vars));
609
+ const loaded = maybeLoadFromExternalFile(require_render.renderVarsInObject(responseFormat, vars));
733
610
  if (!loaded || typeof loaded !== "object") return loaded;
734
611
  if (loaded.type === "json_schema") {
735
612
  const nestedSchema = loaded.schema || loaded.json_schema?.schema;
736
613
  if (nestedSchema) {
737
- const loadedSchema = maybeLoadFromExternalFile(renderVarsInObject(nestedSchema, vars));
614
+ const loadedSchema = maybeLoadFromExternalFile(require_render.renderVarsInObject(nestedSchema, vars));
738
615
  if (loaded.schema !== void 0) return {
739
616
  ...loaded,
740
617
  schema: loadedSchema
@@ -763,7 +640,7 @@ function maybeLoadResponseFormatFromExternalFile(responseFormat, vars) {
763
640
  * @throws {Error} If the loaded tools are in an invalid format
764
641
  */
765
642
  async function maybeLoadToolsFromExternalFile(tools, vars) {
766
- const rendered = renderVarsInObject(tools, vars);
643
+ const rendered = require_render.renderVarsInObject(tools, vars);
767
644
  if (typeof rendered === "string" && rendered.startsWith("file://")) {
768
645
  const { filePath, functionName } = parseFileUrl(rendered);
769
646
  if (functionName && (filePath.endsWith(".py") || require_fileExtensions.isJavascriptFile(filePath))) {
@@ -1254,7 +1131,7 @@ async function writeOutput(outputPath, evalRecord, shareableUrl) {
1254
1131
  const redactedConfig = sanitizeConfigForOutput(evalRecord.config);
1255
1132
  const template = await fs_promises.readFile(path.join(require_esm.getDirectory(), "tableOutput.html"), "utf-8");
1256
1133
  const htmlTable = [[...table.head.vars, ...table.head.prompts.map((prompt) => `[${prompt.provider}] ${prompt.label}`)], ...table.body.map((row) => [...row.vars, ...row.outputs.map(outputToSimpleString)])];
1257
- const htmlOutput = getNunjucksEngine().renderString(template, {
1134
+ const htmlOutput = require_render.getNunjucksEngine().renderString(template, {
1258
1135
  config: redactedConfig,
1259
1136
  table: htmlTable,
1260
1137
  results: summary
@@ -1328,18 +1205,6 @@ Object.defineProperty(exports, "extractRuntimeVars", {
1328
1205
  return extractRuntimeVars;
1329
1206
  }
1330
1207
  });
1331
- Object.defineProperty(exports, "extractVariablesFromTemplate", {
1332
- enumerable: true,
1333
- get: function() {
1334
- return extractVariablesFromTemplate;
1335
- }
1336
- });
1337
- Object.defineProperty(exports, "extractVariablesFromTemplates", {
1338
- enumerable: true,
1339
- get: function() {
1340
- return extractVariablesFromTemplates;
1341
- }
1342
- });
1343
1208
  Object.defineProperty(exports, "fetchCsvFromGoogleSheet", {
1344
1209
  enumerable: true,
1345
1210
  get: function() {
@@ -1352,12 +1217,6 @@ Object.defineProperty(exports, "filterRuntimeVars", {
1352
1217
  return filterRuntimeVars;
1353
1218
  }
1354
1219
  });
1355
- Object.defineProperty(exports, "getNunjucksEngine", {
1356
- enumerable: true,
1357
- get: function() {
1358
- return getNunjucksEngine;
1359
- }
1360
- });
1361
1220
  Object.defineProperty(exports, "getNunjucksEngineForFilePath", {
1362
1221
  enumerable: true,
1363
1222
  get: function() {
@@ -1472,18 +1331,6 @@ Object.defineProperty(exports, "readOutput", {
1472
1331
  return readOutput;
1473
1332
  }
1474
1333
  });
1475
- Object.defineProperty(exports, "renderEnvOnlyInObject", {
1476
- enumerable: true,
1477
- get: function() {
1478
- return renderEnvOnlyInObject;
1479
- }
1480
- });
1481
- Object.defineProperty(exports, "renderVarsInObject", {
1482
- enumerable: true,
1483
- get: function() {
1484
- return renderVarsInObject;
1485
- }
1486
- });
1487
1334
  Object.defineProperty(exports, "resultIsForTestCase", {
1488
1335
  enumerable: true,
1489
1336
  get: function() {
@@ -1509,4 +1356,4 @@ Object.defineProperty(exports, "writeOutput", {
1509
1356
  }
1510
1357
  });
1511
1358
 
1512
- //# sourceMappingURL=util-CuLo2pMR.cjs.map
1359
+ //# sourceMappingURL=util-Bxn8emtE.cjs.map