promptfoo 0.125.0 → 0.125.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (869) hide show
  1. package/README.md +3 -3
  2. package/dist/src/accounts-BOxNYxVN.js +229 -0
  3. package/dist/src/accounts-BezXLdAW.cjs +276 -0
  4. package/dist/src/accounts-CPISMNlh.js +227 -0
  5. package/dist/src/accounts-vJBPs89d.js +222 -0
  6. package/dist/src/agentWorkspace-Bom7SpF2.js +592 -0
  7. package/dist/src/agentWorkspace-CEomAcws.cjs +619 -0
  8. package/dist/src/agentWorkspace-DPtMLrlI.js +593 -0
  9. package/dist/src/agentWorkspace-DkAeEYLz.js +592 -0
  10. package/dist/src/agentic-utils-121v7mJo.js +197 -0
  11. package/dist/src/agentic-utils-CBWD_rcd.cjs +237 -0
  12. package/dist/src/agentic-utils-D8wyQwPG.js +198 -0
  13. package/dist/src/agentic-utils-EP1QkQCs.js +197 -0
  14. package/dist/src/agents-Br3ah8iA.js +778 -0
  15. package/dist/src/agents-C5wj_UTv.js +777 -0
  16. package/dist/src/agents-C9Efp4mC.js +266 -0
  17. package/dist/src/agents-CQYwaVCO.js +267 -0
  18. package/dist/src/agents-CjCd4Vo8.js +777 -0
  19. package/dist/src/agents-DRWiCHYz.js +266 -0
  20. package/dist/src/agents-F2rhx0iL.cjs +266 -0
  21. package/dist/src/agents-RTYyy69h.cjs +777 -0
  22. package/dist/src/agents-api-CY72O86e.js +711 -0
  23. package/dist/src/agents-api-CsSsC21b.js +710 -0
  24. package/dist/src/agents-api-DN-ibDc8.js +710 -0
  25. package/dist/src/agents-api-cNDsCCv1.cjs +710 -0
  26. package/dist/src/ai.studio-Bj6Dyi6o.js +2 -0
  27. package/dist/src/ai.studio-C-e0LzyW.js +369 -0
  28. package/dist/src/ai.studio-CR8M6Aqf.cjs +391 -0
  29. package/dist/src/ai.studio-YKk7F0tv.js +374 -0
  30. package/dist/src/aimlapi-BGunsuTu.js +30 -0
  31. package/dist/src/aimlapi-BkzcfBsL.js +29 -0
  32. package/dist/src/aimlapi-DXFcEdP8.js +28 -0
  33. package/dist/src/aimlapi-r-8iCcAw.cjs +29 -0
  34. package/dist/src/anthropicMessages-7-YNRgQR.js +114 -0
  35. package/dist/src/anthropicMessages-C8m9Whrd.cjs +114 -0
  36. package/dist/src/anthropicMessages-DS1vXD0f.js +115 -0
  37. package/dist/src/anthropicMessages-DmvGkz-0.js +114 -0
  38. package/dist/src/app/assets/index-CrdXWTXm.js +392 -0
  39. package/dist/src/app/browser-inventory.json +4 -4
  40. package/dist/src/app/index.html +1 -1
  41. package/dist/src/audio-BLgFgyw-.cjs +104 -0
  42. package/dist/src/audio-C2sibT7Q.js +104 -0
  43. package/dist/src/audio-DXEXb03H.js +104 -0
  44. package/dist/src/audio-TkvojpwO.js +105 -0
  45. package/dist/src/authoritativeMarkupInjection-BAT9B-Wj.js +79 -0
  46. package/dist/src/authoritativeMarkupInjection-B_yHETKT.js +78 -0
  47. package/dist/src/authoritativeMarkupInjection-BfjecQ3Q.cjs +78 -0
  48. package/dist/src/authoritativeMarkupInjection-D-hDKrhD.js +78 -0
  49. package/dist/src/aws-B_9unI_-.js +1149 -0
  50. package/dist/src/aws-D0FY3qkc.js +2433 -0
  51. package/dist/src/aws-Dh1-a90n.js +2433 -0
  52. package/dist/src/aws-qskKGczY.cjs +2454 -0
  53. package/dist/src/base-CaWlBkVz.js +462 -0
  54. package/dist/src/base-CcViNwVs.js +255 -0
  55. package/dist/src/base-CsVbPJkU.cjs +467 -0
  56. package/dist/src/base-DNK9py25.js +255 -0
  57. package/dist/src/base-DlH5tjEZ.js +463 -0
  58. package/dist/src/base-DyLOZ_iX.js +256 -0
  59. package/dist/src/base-RRYXfG7l.cjs +305 -0
  60. package/dist/src/base-oXVgvtVn.js +462 -0
  61. package/dist/src/bedrock-BP17ZXbR.cjs +2 -0
  62. package/dist/src/bedrock-CsjM1dOt.js +1300 -0
  63. package/dist/src/bedrock-CzPwj8GO.js +1 -0
  64. package/dist/src/bedrock-eGXZw8oh.js +1 -0
  65. package/dist/src/bedrock-tSWjmXdj.js +2 -0
  66. package/dist/src/bestOfN-BQ93nUKV.js +160 -0
  67. package/dist/src/bestOfN-ByGGwlcb.cjs +161 -0
  68. package/dist/src/bestOfN-CbP7csHr.js +159 -0
  69. package/dist/src/bestOfN-xn6i2Xs2.js +159 -0
  70. package/dist/src/cache-CHq9hPz9.js +2 -0
  71. package/dist/src/cache-D-9eZN3I.js +754 -0
  72. package/dist/src/cache-DSm6t1MZ.js +741 -0
  73. package/dist/src/cache-DeF5zIEN.js +782 -0
  74. package/dist/src/cache-iG87oYan.cjs +856 -0
  75. package/dist/src/cerebras-CTtM4yMH.js +98 -0
  76. package/dist/src/cerebras-CogcJ3ce.cjs +97 -0
  77. package/dist/src/cerebras-DmkRypTh.js +97 -0
  78. package/dist/src/cerebras-GUp0B8JY.js +97 -0
  79. package/dist/src/chat-B4ihd3fw.js +226 -0
  80. package/dist/src/chat-B9cAQ_rS.js +227 -0
  81. package/dist/src/chat-BU7EB4R-.cjs +76 -0
  82. package/dist/src/chat-C8yxJ2-s.cjs +226 -0
  83. package/dist/src/chat-ClTFM3qq.js +934 -0
  84. package/dist/src/chat-Cnq0Is68.js +123 -0
  85. package/dist/src/chat-CwrurR57.cjs +987 -0
  86. package/dist/src/chat-D0lsojPv.js +124 -0
  87. package/dist/src/chat-D7_8yFIx.js +76 -0
  88. package/dist/src/chat-DCoETlLG.js +226 -0
  89. package/dist/src/chat-DHE7xaTR.js +76 -0
  90. package/dist/src/chat-DmhT6rz2.cjs +123 -0
  91. package/dist/src/chat-DvfMe8KI.js +123 -0
  92. package/dist/src/chat-DwP5kVnl.js +935 -0
  93. package/dist/src/chat-MB7U-QE2.js +77 -0
  94. package/dist/src/chat-zCWuBKAj.js +934 -0
  95. package/dist/src/claude-agent-sdk-23bIVI75.js +999 -0
  96. package/dist/src/claude-agent-sdk-BACpnIJi.cjs +1005 -0
  97. package/dist/src/claude-agent-sdk-BlYlmcEr.js +999 -0
  98. package/dist/src/claude-agent-sdk-Cr-jqJZl.js +1000 -0
  99. package/dist/src/client-BktbiPx9.cjs +357 -0
  100. package/dist/src/client-CjztEBmW.js +351 -0
  101. package/dist/src/client-mRs2UvH9.js +351 -0
  102. package/dist/src/client-uCz0ydjC.js +352 -0
  103. package/dist/src/cloud-BtYF555L.js +2 -0
  104. package/dist/src/cloud-CVSUEmAy.js +287 -0
  105. package/dist/src/cloud-D7Ifb-Fl.js +599 -0
  106. package/dist/src/cloud-DB5oK5NX.cjs +666 -0
  107. package/dist/src/cloud-ecu989Em.js +657 -0
  108. package/dist/src/cloud-ramjGURF.js +599 -0
  109. package/dist/src/cloudflare-ai-BfDkIjO8.js +133 -0
  110. package/dist/src/cloudflare-ai-D9HaXz1M.js +134 -0
  111. package/dist/src/cloudflare-ai-HrD5WUK8.js +132 -0
  112. package/dist/src/cloudflare-ai-Qdj8aKP2.cjs +133 -0
  113. package/dist/src/cloudflare-gateway-C81uKETQ.js +276 -0
  114. package/dist/src/cloudflare-gateway-CX5Z9X0k.js +276 -0
  115. package/dist/src/cloudflare-gateway-DW-og8gb.js +277 -0
  116. package/dist/src/cloudflare-gateway-iRyXo9n2.cjs +276 -0
  117. package/dist/src/codex-app-server-BFIrSgdy.js +2155 -0
  118. package/dist/src/codex-app-server-By1eDVD4.js +2 -0
  119. package/dist/src/codex-app-server-DKsF4qmY.js +2156 -0
  120. package/dist/src/codex-app-server-n7n4uZzC.cjs +2162 -0
  121. package/dist/src/codex-app-server-xAoELVxu.js +2155 -0
  122. package/dist/src/codex-sdk-C2ZLxa6r.js +1552 -0
  123. package/dist/src/codex-sdk-CzG02tQt.cjs +1588 -0
  124. package/dist/src/codex-sdk-DNxAOhiV.js +2 -0
  125. package/dist/src/codex-sdk-DT3aQezK.js +1557 -0
  126. package/dist/src/codex-sdk-pw9DpcJP.js +1557 -0
  127. package/dist/src/codex-security-B0bLmXJF.js +406 -0
  128. package/dist/src/codex-security-BhYs-3iY.js +406 -0
  129. package/dist/src/codex-security-DQcOfxYW.js +407 -0
  130. package/dist/src/codex-security-DsCWr6GZ.cjs +411 -0
  131. package/dist/src/cometapi-B16asPLX.cjs +55 -0
  132. package/dist/src/cometapi-MgTbZA_H.js +53 -0
  133. package/dist/src/cometapi-i33vKzPV.js +55 -0
  134. package/dist/src/cometapi-wK2UWK0X.js +56 -0
  135. package/dist/src/compatible-COj8ZCy9.js +24 -0
  136. package/dist/src/compatible-CRSsIUGb.cjs +24 -0
  137. package/dist/src/compatible-Dy1vCcNF.js +25 -0
  138. package/dist/src/compatible-aUItQrpk.js +24 -0
  139. package/dist/src/completion-Bn7COFMk.js +119 -0
  140. package/dist/src/completion-Bub2N48b.js +118 -0
  141. package/dist/src/completion-Cf2G9OlM.cjs +123 -0
  142. package/dist/src/conversationScoring-BiTYJ9MD.js +374 -0
  143. package/dist/src/conversationScoring-CKL47uIu.js +373 -0
  144. package/dist/src/conversationScoring-DCvQKp6k.cjs +398 -0
  145. package/dist/src/conversationScoring-DLNJtDZI.js +373 -0
  146. package/dist/src/crescendo-5iLk9WiJ.cjs +734 -0
  147. package/dist/src/crescendo-B5ylG7kW.js +733 -0
  148. package/dist/src/crescendo-BD7k6TIx.js +730 -0
  149. package/dist/src/crescendo-DqO2Ch0P.js +732 -0
  150. package/dist/src/custom-8rv_aG2K.js +617 -0
  151. package/dist/src/custom-BOtrIHFN.js +619 -0
  152. package/dist/src/custom-BvN8seCs.cjs +620 -0
  153. package/dist/src/custom-Cld9v_Y4.js +618 -0
  154. package/dist/src/dataUrl-BdHUey2l.cjs +3187 -0
  155. package/dist/src/dataUrl-DBMifX6C.js +3133 -0
  156. package/dist/src/dataUrl-DUSr-ZvI.js +2868 -0
  157. package/dist/src/decisions-CLazADTw.js +516 -0
  158. package/dist/src/decisions-D5X93awq.js +515 -0
  159. package/dist/src/decisions-DmaeArEn.js +515 -0
  160. package/dist/src/decisions-DyQJyHJz.cjs +514 -0
  161. package/dist/src/docker-C9NYQFeu.js +94 -0
  162. package/dist/src/docker-CGq3mMol.cjs +94 -0
  163. package/dist/src/docker-DOm7nmpl.js +95 -0
  164. package/dist/src/docker-skFN-Kfo.js +93 -0
  165. package/dist/src/embedding-0UbzkTk9.js +82 -0
  166. package/dist/src/embedding-DTrSDt7k.cjs +86 -0
  167. package/dist/src/embedding-j2ORNl5H.js +81 -0
  168. package/dist/src/envoy-BvS8XTQO.js +60 -0
  169. package/dist/src/envoy-Cn6Hzw0e.js +60 -0
  170. package/dist/src/envoy-DC3KWcUY.cjs +60 -0
  171. package/dist/src/envoy-DetHjo5B.js +61 -0
  172. package/dist/src/eval-Cer9dPe9.js +1920 -0
  173. package/dist/src/eval-CytYmI2Z.js +2 -0
  174. package/dist/src/evalResult-DzOq5wt9.js +1300 -0
  175. package/dist/src/evaluator-BxCmvGtv.js +10578 -0
  176. package/dist/src/evaluator-Ct7YDELm.js +2 -0
  177. package/dist/src/evaluatorHelpers-B_AwIrsl.js +600 -0
  178. package/dist/src/evaluatorHelpers-D1Tpc7gd.js +601 -0
  179. package/dist/src/evaluatorHelpers-DRR3rLq0.cjs +622 -0
  180. package/dist/src/fetch-B5KxZuKu.js +1559 -0
  181. package/dist/src/fetch-BG_Jl7ty.js +1556 -0
  182. package/dist/src/fetch-BKlgUg08.cjs +1853 -0
  183. package/dist/src/fetch-C9Fsja0R.js +2 -0
  184. package/dist/src/fetch-CM7P8KWA.cjs +14 -0
  185. package/dist/src/fetch-D0FkIB3G.js +9 -0
  186. package/dist/src/fetch-RXHsZF-J.js +1280 -0
  187. package/dist/src/fetch-rSECy8jR.js +10 -0
  188. package/dist/src/functionCallbackUtils-BB9tmf6a.cjs +262 -0
  189. package/dist/src/functionCallbackUtils-BXk2iY01.js +246 -0
  190. package/dist/src/functionCallbackUtils-B_cYp7P5.js +245 -0
  191. package/dist/src/functionCallbackUtils-BfXnPo0o.js +245 -0
  192. package/dist/src/gemini-image-BXLMADDz.js +471 -0
  193. package/dist/src/gemini-image-BYUZyEUx.js +472 -0
  194. package/dist/src/gemini-image-DSt1QubZ.cjs +471 -0
  195. package/dist/src/gemini-image-DdNDMiZ_.js +471 -0
  196. package/dist/src/goat-9b-uU_k6.js +514 -0
  197. package/dist/src/goat-BCJuiDd0.js +515 -0
  198. package/dist/src/goat-CmAHbemm.js +512 -0
  199. package/dist/src/goat-DdOTdyoS.cjs +515 -0
  200. package/dist/src/goblin-Bp5C5lyb.js +22 -0
  201. package/dist/src/goblin-Dmr7GItI.js +23 -0
  202. package/dist/src/goblin-DpM8wxlf.cjs +22 -0
  203. package/dist/src/goblin-cJyH6Pq-.js +22 -0
  204. package/dist/src/google-B6eaPAbE.js +142 -0
  205. package/dist/src/google-D-FStdN6.cjs +142 -0
  206. package/dist/src/google-DAC7BsCW.js +142 -0
  207. package/dist/src/google-Id18H0Va.js +143 -0
  208. package/dist/src/graders-BjNQWkaB.js +2 -0
  209. package/dist/src/graders-CqdIp_vl.js +15470 -0
  210. package/dist/src/hydra-6Ouh74DE.js +610 -0
  211. package/dist/src/hydra-BHjhZnLB.cjs +612 -0
  212. package/dist/src/hydra-BL6k2REV.js +2 -0
  213. package/dist/src/hydra-BWUc0o67.js +613 -0
  214. package/dist/src/hydra-CUkEOLKw.js +612 -0
  215. package/dist/src/image-B6hG_xhb.js +481 -0
  216. package/dist/src/image-BFaq7Krd.cjs +209 -0
  217. package/dist/src/image-Bql5C0N9.cjs +504 -0
  218. package/dist/src/image-BtZfI2pT.js +163 -0
  219. package/dist/src/image-CIM4oN7Z.cjs +163 -0
  220. package/dist/src/image-CbAl7Jpu.js +209 -0
  221. package/dist/src/image-CiYm_yFw.js +209 -0
  222. package/dist/src/image-DCMNvBiV.js +163 -0
  223. package/dist/src/image-DL7pIuUZ.js +210 -0
  224. package/dist/src/image-ey0kxF8o.js +164 -0
  225. package/dist/src/image-smgIk3rE.js +482 -0
  226. package/dist/src/index.cjs +27 -27
  227. package/dist/src/index.d.cts +8 -8
  228. package/dist/src/index.js +27 -27
  229. package/dist/src/indirectWebPwn-B_-UpWY5.js +285 -0
  230. package/dist/src/indirectWebPwn-Cz3SLiEq.js +434 -0
  231. package/dist/src/indirectWebPwn-D2s8zGiM.cjs +463 -0
  232. package/dist/src/indirectWebPwn-DXbj2wGu.cjs +285 -0
  233. package/dist/src/indirectWebPwn-D_4H44E6.js +285 -0
  234. package/dist/src/indirectWebPwn-L044SrpV.js +434 -0
  235. package/dist/src/indirectWebPwn-cnmvdavH.js +435 -0
  236. package/dist/src/indirectWebPwn-zUBzsqTt.js +286 -0
  237. package/dist/src/interactions-Bu3oVQ-j.js +850 -0
  238. package/dist/src/interactions-CND010Lh.cjs +850 -0
  239. package/dist/src/interactions-DAx7tqUz.js +851 -0
  240. package/dist/src/interactions-DPkIumeh.js +850 -0
  241. package/dist/src/iterative-BO4JRnpG.js +545 -0
  242. package/dist/src/iterative-CAK-k9rz.js +548 -0
  243. package/dist/src/iterative-CDgHc0xO.cjs +549 -0
  244. package/dist/src/iterative-CXJlHLl9.js +547 -0
  245. package/dist/src/iterativeImage-BEdGKSmh.cjs +419 -0
  246. package/dist/src/iterativeImage-BfL0QZw5.js +417 -0
  247. package/dist/src/iterativeImage-C9KhnibC.js +417 -0
  248. package/dist/src/iterativeImage-btjkOfWG.js +418 -0
  249. package/dist/src/iterativeMeta-B5Bdw6QA.js +437 -0
  250. package/dist/src/iterativeMeta-C3mI4gpT.js +440 -0
  251. package/dist/src/iterativeMeta-Co2BKyqS.cjs +439 -0
  252. package/dist/src/iterativeMeta-DD8ihRWD.js +439 -0
  253. package/dist/src/iterativeTree-AMi4GV2O.js +878 -0
  254. package/dist/src/iterativeTree-C8FJOEje.cjs +879 -0
  255. package/dist/src/iterativeTree-CvrY1f2Z.js +877 -0
  256. package/dist/src/iterativeTree-bPtESmaD.js +876 -0
  257. package/dist/src/knowledgeBase-Cf5871e3.js +163 -0
  258. package/dist/src/knowledgeBase-D2PQhqLH.js +164 -0
  259. package/dist/src/knowledgeBase-DpoMw1IH.cjs +163 -0
  260. package/dist/src/knowledgeBase-npGFl763.js +163 -0
  261. package/dist/src/litellm-BBB5DQdt.cjs +146 -0
  262. package/dist/src/litellm-Bo43ow7r.js +145 -0
  263. package/dist/src/litellm-CaU8CMLS.js +146 -0
  264. package/dist/src/litellm-wY7Unh8o.js +147 -0
  265. package/dist/src/live-5g2w-M-E.js +891 -0
  266. package/dist/src/live-BfaXsDyD.cjs +891 -0
  267. package/dist/src/live-C1xewnGD.js +2 -0
  268. package/dist/src/live-DaF7nYy5.js +892 -0
  269. package/dist/src/live-lp3urLUw.js +891 -0
  270. package/dist/src/luma-ray-B7zvKGVG.js +309 -0
  271. package/dist/src/luma-ray-DCf5fnrz.cjs +309 -0
  272. package/dist/src/luma-ray-DepBcn6z.js +309 -0
  273. package/dist/src/luma-ray-XQC4M1pt.js +310 -0
  274. package/dist/src/main.js +26 -26
  275. package/dist/src/mantleChat-7xm95vSV.js +154 -0
  276. package/dist/src/mantleChat-CXhAs5RD.js +155 -0
  277. package/dist/src/mantleChat-CcE-zjfj.cjs +154 -0
  278. package/dist/src/mantleChat-Cpefl7Zm.js +154 -0
  279. package/dist/src/mcp-B0V0ikdM.js +84 -0
  280. package/dist/src/mcp-CV2k2gwj.js +85 -0
  281. package/dist/src/memoryPoisoning-BC5FQQWZ.js +111 -0
  282. package/dist/src/memoryPoisoning-BDwrtZKX.js +111 -0
  283. package/dist/src/memoryPoisoning-BFemS_FF.js +112 -0
  284. package/dist/src/memoryPoisoning-DRs2rbVV.cjs +111 -0
  285. package/dist/src/messages-Bc5oZoAJ.js +1128 -0
  286. package/dist/src/messages-BkaH8fRW.js +1127 -0
  287. package/dist/src/messages-CoHlziS5.js +1127 -0
  288. package/dist/src/messages-Cv_m6kYs.cjs +1161 -0
  289. package/dist/src/mischievousUser-BcyFxrqJ.js +51 -0
  290. package/dist/src/mischievousUser-BlhOQSd2.js +52 -0
  291. package/dist/src/mischievousUser-BuQiKE8D.js +51 -0
  292. package/dist/src/mischievousUser-ChIOk6cT.cjs +51 -0
  293. package/dist/src/modelslab-BXIWBTgX.js +171 -0
  294. package/dist/src/modelslab-ChVsUiaJ.js +170 -0
  295. package/dist/src/modelslab-DZ6BFlDv.js +170 -0
  296. package/dist/src/modelslab-DhRr-vyo.cjs +170 -0
  297. package/dist/src/nova-reel-BL8DrN4_.js +272 -0
  298. package/dist/src/nova-reel-BiOMUm5q.cjs +272 -0
  299. package/dist/src/nova-reel-CTsya1hV.js +273 -0
  300. package/dist/src/nova-reel-kgBY4Svd.js +272 -0
  301. package/dist/src/nova-sonic-CaSSA3Jq.cjs +374 -0
  302. package/dist/src/nova-sonic-DLpmoGsR.js +375 -0
  303. package/dist/src/nova-sonic-DwWc4SoN.js +374 -0
  304. package/dist/src/nova-sonic-qnReTaXm.js +374 -0
  305. package/dist/src/novita-B5mAt3Ui.js +114 -0
  306. package/dist/src/novita-D57vCjDD.js +116 -0
  307. package/dist/src/novita-ITRtG8IJ.js +115 -0
  308. package/dist/src/novita-Rh3T13YO.cjs +115 -0
  309. package/dist/src/nscale-8V7iZ_pI.js +210 -0
  310. package/dist/src/nscale-BQnMv4pH.cjs +209 -0
  311. package/dist/src/nscale-BWZXHZVF.js +209 -0
  312. package/dist/src/nscale-BqrHiUqU.js +207 -0
  313. package/dist/src/openaiResponses-BMtGTu8R.js +317 -0
  314. package/dist/src/openaiResponses-CvcI_viE.js +318 -0
  315. package/dist/src/openaiResponses-DYPZEMX1.cjs +318 -0
  316. package/dist/src/openaiResponses-DZTg1-kb.js +319 -0
  317. package/dist/src/openclaw-BeKuig4g.js +1338 -0
  318. package/dist/src/openclaw-COkdQ83y.js +1337 -0
  319. package/dist/src/openclaw-CSoX_HQ5.cjs +1344 -0
  320. package/dist/src/openclaw-DJlhPGCb.js +1336 -0
  321. package/dist/src/opencode-sdk-BEJftEs6.cjs +1018 -0
  322. package/dist/src/opencode-sdk-DMvBB3V7.js +1013 -0
  323. package/dist/src/opencode-sdk-Df7hMjLO.js +1012 -0
  324. package/dist/src/opencode-sdk-bQp5Xf3W.js +1012 -0
  325. package/dist/src/openinterpreter-B3GgVZjK.js +431 -0
  326. package/dist/src/openinterpreter-BiGcU-HN.cjs +435 -0
  327. package/dist/src/openinterpreter-Buj2l3Eh.js +432 -0
  328. package/dist/src/openinterpreter-C3_Cg5b_.js +431 -0
  329. package/dist/src/pricing-0Pampf0q.cjs +999 -0
  330. package/dist/src/pricing-B8VdhEhY.js +976 -0
  331. package/dist/src/pricing-CtLA-rKA.js +976 -0
  332. package/dist/src/promptfoo-4OkHtH9P.cjs +341 -0
  333. package/dist/src/promptfoo-Bhpm7sH6.js +286 -0
  334. package/dist/src/promptfoo-BqV8ogVA.js +285 -0
  335. package/dist/src/promptfoo-S1Q9OHk_.js +286 -0
  336. package/dist/src/providers-B5zs1ZRv.js +24437 -0
  337. package/dist/src/providers-Cd6CJh6m.js +2 -0
  338. package/dist/src/providers-CpJlgHET.js +24039 -0
  339. package/dist/src/providers-CzvLvK6G.cjs +24180 -0
  340. package/dist/src/quiverai-1E_IvLHn.js +325 -0
  341. package/dist/src/quiverai-BXH004Vv.js +325 -0
  342. package/dist/src/quiverai-Ccya2z8Y.cjs +325 -0
  343. package/dist/src/quiverai-Cez57oe-.js +326 -0
  344. package/dist/src/registry-3zX_M9Ik.js +131 -0
  345. package/dist/src/registry-AuCrKTvS.js +132 -0
  346. package/dist/src/registry-CxXWKtQG.js +131 -0
  347. package/dist/src/registry-DG3o66JQ.cjs +131 -0
  348. package/dist/src/remoteGeneration-CAtvamG6.js +370 -0
  349. package/dist/src/remoteGeneration-CF225pDl.cjs +482 -0
  350. package/dist/src/remoteGeneration-DtnqocnL.js +370 -0
  351. package/dist/src/remoteGeneration-g3KvW-sP.js +371 -0
  352. package/dist/src/responses-BMbaUXQI.js +1098 -0
  353. package/dist/src/responses-B_TOSof-.js +1099 -0
  354. package/dist/src/responses-v-yANwTA.cjs +1109 -0
  355. package/dist/src/runtimeTransform-BBZv-oUZ.js +156 -0
  356. package/dist/src/runtimeTransform-DT2v5ovW.js +156 -0
  357. package/dist/src/runtimeTransform-GXXEIXdS.cjs +161 -0
  358. package/dist/src/runtimeTransform-JTwBQc-P.js +157 -0
  359. package/dist/src/sagemaker-B8D0L4rj.cjs +716 -0
  360. package/dist/src/sagemaker-CR2_AGdB.js +713 -0
  361. package/dist/src/sagemaker-Cd9qSQUV.js +714 -0
  362. package/dist/src/sagemaker-mKlltN4p.js +713 -0
  363. package/dist/src/scanner-PG_8lh8r.js +1971 -0
  364. package/dist/src/server/index.js +55 -55
  365. package/dist/src/server-Bmh7sd9F.js +155 -0
  366. package/dist/src/server-C7b8z6aC.js +63 -0
  367. package/dist/src/server-CAcovgtL.js +2 -0
  368. package/dist/src/server-CuuMfKlh.cjs +74 -0
  369. package/dist/src/server-DMPCj9jy.js +189 -0
  370. package/dist/src/session-BksXvRH_.cjs +69 -0
  371. package/dist/src/session-DOxUjqGQ.js +63 -0
  372. package/dist/src/session-Dujsc-b9.js +62 -0
  373. package/dist/src/session-VjtIxREd.js +62 -0
  374. package/dist/src/shared-Bkyz_7e5.cjs +2185 -0
  375. package/dist/src/shared-DDJg8ycC.js +1929 -0
  376. package/dist/src/shared-Dh3yfRBd.js +1927 -0
  377. package/dist/src/shared-tfPT8Tna.js +1928 -0
  378. package/dist/src/simulatedUser-6JdkyL3k.cjs +252 -0
  379. package/dist/src/simulatedUser-CFr2mr3M.js +248 -0
  380. package/dist/src/simulatedUser-DjwwUqx-.js +247 -0
  381. package/dist/src/slack-C_gIYiUs.js +144 -0
  382. package/dist/src/slack-DhNbz9CM.cjs +144 -0
  383. package/dist/src/slack-Dm2iI1zu.js +145 -0
  384. package/dist/src/strategies-BIY-bNul.js +2248 -0
  385. package/dist/src/strategies-C1KQQj9G.cjs +2420 -0
  386. package/dist/src/strategies-DM_3mReG.js +2385 -0
  387. package/dist/src/telemetry-BhMTibZO.js +2 -0
  388. package/dist/src/telemetry-C04d25BM.cjs +216 -0
  389. package/dist/src/telemetry-CIqy4fSC.js +201 -0
  390. package/dist/src/telemetry-CXozp_6C.js +205 -0
  391. package/dist/src/telemetry-g7PkBxmY.js +205 -0
  392. package/dist/src/togetherai-BvCim68-.js +50 -0
  393. package/dist/src/togetherai-CWyDCA9m.cjs +49 -0
  394. package/dist/src/togetherai-CeSE31vK.js +49 -0
  395. package/dist/src/togetherai-_2W0URf8.js +48 -0
  396. package/dist/src/traceContext-Brw3Oe41.js +1016 -0
  397. package/dist/src/traceContext-DpAYv27G.js +1015 -0
  398. package/dist/src/traceContext-KSqhzZI2.cjs +1032 -0
  399. package/dist/src/transcription-BySopazW.js +175 -0
  400. package/dist/src/transcription-DO4UPkRI.cjs +178 -0
  401. package/dist/src/transcription-RJGBa-pC.js +176 -0
  402. package/dist/src/transcription-fZenF3G5.js +175 -0
  403. package/dist/src/transform-BzhRc5z2.js +125 -0
  404. package/dist/src/transform-CPQu05u6.cjs +154 -0
  405. package/dist/src/transform-DAED8imp.js +126 -0
  406. package/dist/src/transform-DIOIQDmM.js +125 -0
  407. package/dist/src/typesafe-ByE0Kxfg.js +253 -0
  408. package/dist/src/typesafe-CFqGFY34.js +253 -0
  409. package/dist/src/typesafe-DCWIw-CP.cjs +253 -0
  410. package/dist/src/typesafe-DyHFV5Qk.js +254 -0
  411. package/dist/src/util-BHkj9joz.js +2049 -0
  412. package/dist/src/util-CICwIpmu.cjs +934 -0
  413. package/dist/src/util-CePiY2xZ.js +286 -0
  414. package/dist/src/util-CgT3uf4p.js +743 -0
  415. package/dist/src/util-Cj9drvOY.js +1770 -0
  416. package/dist/src/util-ClJRjlQA.cjs +357 -0
  417. package/dist/src/util-Cxf8VF2M.js +395 -0
  418. package/dist/src/util-D7RdV7rS.js +395 -0
  419. package/dist/src/util-DMNFhk47.js +351 -0
  420. package/dist/src/util-DNzh3M0z.js +396 -0
  421. package/dist/src/util-Df7rfMGb.cjs +2305 -0
  422. package/dist/src/util-Kf0KnG_6.js +2051 -0
  423. package/dist/src/util-LEbeiYw_.js +743 -0
  424. package/dist/src/util-WH8CgVs4.js +352 -0
  425. package/dist/src/util-cx6Xw8Lw.cjs +478 -0
  426. package/dist/src/util-qzBqirBH.js +2050 -0
  427. package/dist/src/vertex-CBAMfRz3.js +854 -0
  428. package/dist/src/vertex-CMP2IpN9.js +2 -0
  429. package/dist/src/vertex-CZ5YOotT.js +848 -0
  430. package/dist/src/vertex-DNsh1F1M.cjs +871 -0
  431. package/dist/src/vertexLive-BTXYj3-F.js +55 -0
  432. package/dist/src/vertexLive-Ba_LAqEF.cjs +55 -0
  433. package/dist/src/vertexLive-DM4sFaaj.js +56 -0
  434. package/dist/src/vertexLive-JqZOw7HC.js +55 -0
  435. package/dist/src/video-BY7Q2Gii.cjs +706 -0
  436. package/dist/src/video-CYElP-CK.js +703 -0
  437. package/dist/src/video-C_AdEDH0.js +702 -0
  438. package/dist/src/video-DGvjQ_4j.js +702 -0
  439. package/package.json +1 -1
  440. package/dist/src/accounts-Dpb43yde.cjs +0 -276
  441. package/dist/src/accounts-GKrO1olH.js +0 -229
  442. package/dist/src/accounts-e4FGOsji.js +0 -227
  443. package/dist/src/accounts-sUiEJfkB.js +0 -222
  444. package/dist/src/agentWorkspace-B8A_wuMR.cjs +0 -619
  445. package/dist/src/agentWorkspace-DSPIscXR.js +0 -593
  446. package/dist/src/agentWorkspace-DxUqd-XK.js +0 -592
  447. package/dist/src/agentWorkspace-n0uOJXhD.js +0 -592
  448. package/dist/src/agentic-utils-9bCj4twQ.js +0 -197
  449. package/dist/src/agentic-utils-CyCLuLoj.js +0 -197
  450. package/dist/src/agentic-utils-D23qtOlx.cjs +0 -237
  451. package/dist/src/agentic-utils-DuBMMNCw.js +0 -198
  452. package/dist/src/agents-6hDRNoYD.js +0 -777
  453. package/dist/src/agents-B8w2o7Sc.cjs +0 -777
  454. package/dist/src/agents-Ck0NXl7v.js +0 -777
  455. package/dist/src/agents-CwT3B1qB.js +0 -778
  456. package/dist/src/agents-DOLjfOEq.js +0 -266
  457. package/dist/src/agents-OcF9hq--.js +0 -267
  458. package/dist/src/agents-api-CnZZt8bn.cjs +0 -710
  459. package/dist/src/agents-api-D04u3bmL.js +0 -711
  460. package/dist/src/agents-api-DWw0_Vio.js +0 -710
  461. package/dist/src/agents-api-IWHEwp8i.js +0 -710
  462. package/dist/src/agents-mHt2Mh9O.cjs +0 -266
  463. package/dist/src/agents-sICccZCA.js +0 -266
  464. package/dist/src/ai.studio-Ci4rypDT.js +0 -2
  465. package/dist/src/ai.studio-KkQ6KaHa.js +0 -369
  466. package/dist/src/ai.studio-gSXK2cGI.js +0 -374
  467. package/dist/src/ai.studio-nQF_B4DH.cjs +0 -391
  468. package/dist/src/aimlapi-BeSk5BDV.js +0 -30
  469. package/dist/src/aimlapi-CzNUhdKu.cjs +0 -29
  470. package/dist/src/aimlapi-DCkazDPI.js +0 -29
  471. package/dist/src/aimlapi-WeH5B6K1.js +0 -28
  472. package/dist/src/anthropicMessages-AcNWTpYO.js +0 -115
  473. package/dist/src/anthropicMessages-BUtvzbpL.js +0 -114
  474. package/dist/src/anthropicMessages-DTWhZDCd.js +0 -114
  475. package/dist/src/anthropicMessages-lGVnSgyx.cjs +0 -114
  476. package/dist/src/app/assets/index-CyEI5aDN.js +0 -392
  477. package/dist/src/audio-BE_Duiu1.js +0 -104
  478. package/dist/src/audio-CiUd00k2.cjs +0 -104
  479. package/dist/src/audio-Dop6omna.js +0 -105
  480. package/dist/src/audio-EZNTInr_.js +0 -104
  481. package/dist/src/authoritativeMarkupInjection-BUqH6hNk.js +0 -78
  482. package/dist/src/authoritativeMarkupInjection-BmbJdJO0.cjs +0 -78
  483. package/dist/src/authoritativeMarkupInjection-Cpz12Y3w.js +0 -78
  484. package/dist/src/authoritativeMarkupInjection-W4XfcH91.js +0 -79
  485. package/dist/src/aws-B2Jqbnet.js +0 -2433
  486. package/dist/src/aws-DHtuUIzQ.js +0 -1149
  487. package/dist/src/aws-DLqXP6wY.js +0 -2433
  488. package/dist/src/aws-DfduhmwL.cjs +0 -2454
  489. package/dist/src/base-B9L2Xvpc.js +0 -255
  490. package/dist/src/base-BTZnIsuH.cjs +0 -305
  491. package/dist/src/base-BhaWNQPJ.js +0 -462
  492. package/dist/src/base-Br-G_Xou.js +0 -256
  493. package/dist/src/base-Bzo8hiUS.cjs +0 -467
  494. package/dist/src/base-C82fd2jq.js +0 -463
  495. package/dist/src/base-CRdQwC1W.js +0 -462
  496. package/dist/src/base-CjGwZNOQ.js +0 -255
  497. package/dist/src/bedrock-BdMru_ro.js +0 -1300
  498. package/dist/src/bedrock-CBUmfLX1.cjs +0 -2
  499. package/dist/src/bedrock-DBDxBaF9.js +0 -2
  500. package/dist/src/bedrock-DDrECM21.js +0 -1
  501. package/dist/src/bedrock-DVwkgvRS.js +0 -1
  502. package/dist/src/bestOfN-AKF5beq4.js +0 -159
  503. package/dist/src/bestOfN-C1UIVGJV.js +0 -160
  504. package/dist/src/bestOfN-DlkETbXy.cjs +0 -161
  505. package/dist/src/bestOfN-XIfEgU-g.js +0 -159
  506. package/dist/src/cache-BZaVoKaA.js +0 -2
  507. package/dist/src/cache-CEYhFUsH.js +0 -741
  508. package/dist/src/cache-Cbw1zH6q.js +0 -782
  509. package/dist/src/cache-CdaZNb75.js +0 -754
  510. package/dist/src/cache-DpuIzPxh.cjs +0 -856
  511. package/dist/src/cerebras-Bpn6FPkJ.js +0 -97
  512. package/dist/src/cerebras-CqJ0BRCJ.cjs +0 -97
  513. package/dist/src/cerebras-D4ILa_TY.js +0 -97
  514. package/dist/src/cerebras-DR8uc7ee.js +0 -98
  515. package/dist/src/chat-B7PZfaYp.cjs +0 -987
  516. package/dist/src/chat-BVuSjdEb.js +0 -227
  517. package/dist/src/chat-BsaZRjXN.js +0 -76
  518. package/dist/src/chat-C5liqe3Y.js +0 -226
  519. package/dist/src/chat-C9hyHf5B.js +0 -124
  520. package/dist/src/chat-CFLalAck.js +0 -226
  521. package/dist/src/chat-CN8JGrHu.js +0 -76
  522. package/dist/src/chat-CaHBBpCb.js +0 -123
  523. package/dist/src/chat-CcbLSghx.js +0 -123
  524. package/dist/src/chat-CoSN6sr2.js +0 -934
  525. package/dist/src/chat-CsJRFX8a.cjs +0 -226
  526. package/dist/src/chat-DFoZLvO_.js +0 -934
  527. package/dist/src/chat-DiLQvL7r.js +0 -77
  528. package/dist/src/chat-F6qVSDk3.cjs +0 -123
  529. package/dist/src/chat-Oq4FaJgI.cjs +0 -76
  530. package/dist/src/chat-knMfQUKz.js +0 -935
  531. package/dist/src/claude-agent-sdk-CJkOLpnI.js +0 -999
  532. package/dist/src/claude-agent-sdk-Ckn76PRD.js +0 -999
  533. package/dist/src/claude-agent-sdk-DX0gTr11.cjs +0 -1005
  534. package/dist/src/claude-agent-sdk-LMeikxoR.js +0 -1000
  535. package/dist/src/client-BFf1r6Z8.js +0 -352
  536. package/dist/src/client-CdXyDdDi.js +0 -351
  537. package/dist/src/client-DV8XMu7i.js +0 -351
  538. package/dist/src/client-iEXtOBKW.cjs +0 -357
  539. package/dist/src/cloud-B02qcpjf.js +0 -2
  540. package/dist/src/cloud-BlHP-g1v.cjs +0 -666
  541. package/dist/src/cloud-C9BI4isF.js +0 -287
  542. package/dist/src/cloud-CTTLNdvj.js +0 -657
  543. package/dist/src/cloud-D5X5yQ_d.js +0 -599
  544. package/dist/src/cloud-QxPkpsHA.js +0 -599
  545. package/dist/src/cloudflare-ai-DRTRT1fc.js +0 -132
  546. package/dist/src/cloudflare-ai-DgaXapAV.cjs +0 -133
  547. package/dist/src/cloudflare-ai-DkuJXijS.js +0 -134
  548. package/dist/src/cloudflare-ai-wy9QCHku.js +0 -133
  549. package/dist/src/cloudflare-gateway-9cAN8g29.cjs +0 -276
  550. package/dist/src/cloudflare-gateway-BVFMD292.js +0 -277
  551. package/dist/src/cloudflare-gateway-BuUI4p6I.js +0 -276
  552. package/dist/src/cloudflare-gateway-TlYHizbW.js +0 -276
  553. package/dist/src/codex-app-server-BPz_feug.cjs +0 -2162
  554. package/dist/src/codex-app-server-C9noXM9C.js +0 -2155
  555. package/dist/src/codex-app-server-CEmD-Y5U.js +0 -2
  556. package/dist/src/codex-app-server-DZolc18r.js +0 -2156
  557. package/dist/src/codex-app-server-Dd0A37nO.js +0 -2155
  558. package/dist/src/codex-sdk-BbxjBvBk.cjs +0 -1588
  559. package/dist/src/codex-sdk-BpXeIs-_.js +0 -1557
  560. package/dist/src/codex-sdk-BtQp5X0f.js +0 -1552
  561. package/dist/src/codex-sdk-CH0v9Bk1.js +0 -2
  562. package/dist/src/codex-sdk-CgrN7JB8.js +0 -1557
  563. package/dist/src/codex-security-B5fENNUr.js +0 -406
  564. package/dist/src/codex-security-C6uuJx-y.cjs +0 -411
  565. package/dist/src/codex-security-CifWtZR_.js +0 -407
  566. package/dist/src/codex-security-Kg2bOEKy.js +0 -406
  567. package/dist/src/cometapi-BFpIDLIx.js +0 -55
  568. package/dist/src/cometapi-C6O2PIrN.js +0 -56
  569. package/dist/src/cometapi-D5Yupc6F.js +0 -53
  570. package/dist/src/cometapi-DzgIwJzJ.cjs +0 -55
  571. package/dist/src/compatible-0jhmVfOp.js +0 -25
  572. package/dist/src/compatible-DdtwWdJi.cjs +0 -24
  573. package/dist/src/compatible-Di4nR3sU.js +0 -24
  574. package/dist/src/compatible-iJKLWdnf.js +0 -24
  575. package/dist/src/completion-B0_hVUDG.js +0 -119
  576. package/dist/src/completion-BdI6v0-Q.cjs +0 -123
  577. package/dist/src/completion-CWcJscwv.js +0 -118
  578. package/dist/src/conversationScoring-99EOPJRa.js +0 -373
  579. package/dist/src/conversationScoring-BIq4J0Cq.js +0 -374
  580. package/dist/src/conversationScoring-DARyeATr.cjs +0 -398
  581. package/dist/src/conversationScoring-DS48t4Hb.js +0 -373
  582. package/dist/src/crescendo-CebvXIu4.js +0 -730
  583. package/dist/src/crescendo-CxrLS0oo.js +0 -732
  584. package/dist/src/crescendo-DZQXBSkj.js +0 -733
  585. package/dist/src/crescendo-wjEx68uD.cjs +0 -734
  586. package/dist/src/custom-BiQ-aUNw.cjs +0 -620
  587. package/dist/src/custom-ByyB5Z93.js +0 -619
  588. package/dist/src/custom-C5jOevNb.js +0 -617
  589. package/dist/src/custom-CCrsCz8o.js +0 -618
  590. package/dist/src/dataUrl-C9J7wz9H.js +0 -3133
  591. package/dist/src/dataUrl-CGsBT7UZ.cjs +0 -3187
  592. package/dist/src/dataUrl-CzKvvWNO.js +0 -2868
  593. package/dist/src/decisions-BTusXCUx.cjs +0 -514
  594. package/dist/src/decisions-BYtL9edD.js +0 -515
  595. package/dist/src/decisions-jYix_gCF.js +0 -515
  596. package/dist/src/decisions-nxxfHRAN.js +0 -516
  597. package/dist/src/docker-DDIv4zkg.js +0 -93
  598. package/dist/src/docker-DVLp_5OG.js +0 -94
  599. package/dist/src/docker-INm9w0SY.cjs +0 -94
  600. package/dist/src/docker-sGuoCul_.js +0 -95
  601. package/dist/src/embedding-CAhqLLrR.js +0 -82
  602. package/dist/src/embedding-D94GAsti.cjs +0 -86
  603. package/dist/src/embedding-zb4MAzQy.js +0 -81
  604. package/dist/src/envoy-BMPszwEa.cjs +0 -60
  605. package/dist/src/envoy-Bp-s39_8.js +0 -60
  606. package/dist/src/envoy-BswDt-Ou.js +0 -61
  607. package/dist/src/envoy-rVbYcV80.js +0 -60
  608. package/dist/src/eval-B1-XfrC7.js +0 -2
  609. package/dist/src/eval-pC4qCvLw.js +0 -1920
  610. package/dist/src/evalResult-CzjCb5bd.js +0 -1300
  611. package/dist/src/evaluator-CNq2K7J_.js +0 -10578
  612. package/dist/src/evaluator-LtfxdxEu.js +0 -2
  613. package/dist/src/evaluatorHelpers-C5J0NYpQ.js +0 -601
  614. package/dist/src/evaluatorHelpers-DcdCglCs.cjs +0 -622
  615. package/dist/src/evaluatorHelpers-Rvb88W6B.js +0 -600
  616. package/dist/src/fetch-5HtnNhHg.js +0 -1556
  617. package/dist/src/fetch-BCwjoIFd.js +0 -1559
  618. package/dist/src/fetch-BhfUnKen.js +0 -1280
  619. package/dist/src/fetch-C08w4vVl.js +0 -9
  620. package/dist/src/fetch-DBxy8Tlb.cjs +0 -14
  621. package/dist/src/fetch-DYte6oQX.cjs +0 -1853
  622. package/dist/src/fetch-ElpfcAVG.js +0 -10
  623. package/dist/src/fetch-lM1OIaSt.js +0 -2
  624. package/dist/src/functionCallbackUtils-BCAdWfHO.js +0 -246
  625. package/dist/src/functionCallbackUtils-BYq9qOhG.js +0 -245
  626. package/dist/src/functionCallbackUtils-ByWkmVud.cjs +0 -262
  627. package/dist/src/functionCallbackUtils-D_C_JaFd.js +0 -245
  628. package/dist/src/gemini-image-CAlwaJhZ.js +0 -471
  629. package/dist/src/gemini-image-DJoVoOnZ.cjs +0 -471
  630. package/dist/src/gemini-image-Waio-9Xx.js +0 -472
  631. package/dist/src/gemini-image-vbY6Ftbf.js +0 -471
  632. package/dist/src/goat-BWbtyY9c.js +0 -512
  633. package/dist/src/goat-CXzzeCOQ.cjs +0 -515
  634. package/dist/src/goat-CfgvzSgZ.js +0 -514
  635. package/dist/src/goat-DLeoIHBp.js +0 -515
  636. package/dist/src/goblin-CmfCfwqk.cjs +0 -22
  637. package/dist/src/goblin-CtcaORRH.js +0 -22
  638. package/dist/src/goblin-DF6DDhM-.js +0 -22
  639. package/dist/src/goblin-Nai0xxBV.js +0 -23
  640. package/dist/src/google-ClpkLtKL.cjs +0 -142
  641. package/dist/src/google-CrFgKu9k.js +0 -143
  642. package/dist/src/google-Dj_EIBqS.js +0 -142
  643. package/dist/src/google-e4-vARv6.js +0 -142
  644. package/dist/src/graders-BN1IIa71.js +0 -15470
  645. package/dist/src/graders-C5sCfSP5.js +0 -2
  646. package/dist/src/hydra-B7RfXVBK.js +0 -2
  647. package/dist/src/hydra-C1cFN-Jg.js +0 -613
  648. package/dist/src/hydra-CK6Uc1ia.js +0 -612
  649. package/dist/src/hydra-Dg65rAP_.js +0 -610
  650. package/dist/src/hydra-Fqx8l_Xu.cjs +0 -612
  651. package/dist/src/image-BdlUDAtp.js +0 -163
  652. package/dist/src/image-C-KwEhwt.cjs +0 -163
  653. package/dist/src/image-C76fp6NK.cjs +0 -209
  654. package/dist/src/image-D75ehv3D.js +0 -482
  655. package/dist/src/image-DKtc5v5W.js +0 -209
  656. package/dist/src/image-DT_xOkJY.js +0 -163
  657. package/dist/src/image-DVpdllEE.js +0 -209
  658. package/dist/src/image-DXZ8AzMf.js +0 -481
  659. package/dist/src/image-DZl_1mvy.js +0 -164
  660. package/dist/src/image-DcTD7Ak0.cjs +0 -504
  661. package/dist/src/image-ndxEvBKB.js +0 -210
  662. package/dist/src/indirectWebPwn-70WA5x_q.js +0 -435
  663. package/dist/src/indirectWebPwn-BRVyd3qV.cjs +0 -463
  664. package/dist/src/indirectWebPwn-BsJVsu0q.js +0 -285
  665. package/dist/src/indirectWebPwn-Cw6yJu0i.js +0 -285
  666. package/dist/src/indirectWebPwn-D-PhJzo4.js +0 -286
  667. package/dist/src/indirectWebPwn-DRPHt2I8.js +0 -434
  668. package/dist/src/indirectWebPwn-DXtfFhd9.cjs +0 -285
  669. package/dist/src/indirectWebPwn-DvpNouzc.js +0 -434
  670. package/dist/src/interactions-5ixfW7Cl.js +0 -850
  671. package/dist/src/interactions-BOUzfmg1.cjs +0 -850
  672. package/dist/src/interactions-CSSXcGNc.js +0 -851
  673. package/dist/src/interactions-WB_sgkN0.js +0 -850
  674. package/dist/src/iterative-BShRNqjC.cjs +0 -549
  675. package/dist/src/iterative-BcW_ELtB.js +0 -548
  676. package/dist/src/iterative-BpHbHz8B.js +0 -547
  677. package/dist/src/iterative-YcchP12d.js +0 -545
  678. package/dist/src/iterativeImage-BMFE5Hl7.cjs +0 -419
  679. package/dist/src/iterativeImage-CkSaYLMY.js +0 -417
  680. package/dist/src/iterativeImage-DAEUlQX_.js +0 -418
  681. package/dist/src/iterativeImage-DeUSkEnj.js +0 -417
  682. package/dist/src/iterativeMeta-DbdaKdEO.cjs +0 -439
  683. package/dist/src/iterativeMeta-DcF9JWEK.js +0 -437
  684. package/dist/src/iterativeMeta-DkfPqWIC.js +0 -439
  685. package/dist/src/iterativeMeta-DkrpnVSs.js +0 -440
  686. package/dist/src/iterativeTree-CEMY1FhE.cjs +0 -879
  687. package/dist/src/iterativeTree-Cv5W4tX9.js +0 -877
  688. package/dist/src/iterativeTree-DGvomd3M.js +0 -876
  689. package/dist/src/iterativeTree-KbtC2Mkz.js +0 -878
  690. package/dist/src/knowledgeBase-AYRXn4wO.js +0 -163
  691. package/dist/src/knowledgeBase-BNqQfx01.js +0 -163
  692. package/dist/src/knowledgeBase-C0IaCCVs.js +0 -164
  693. package/dist/src/knowledgeBase-C2uj6wK4.cjs +0 -163
  694. package/dist/src/litellm-CN1ScAwZ.js +0 -147
  695. package/dist/src/litellm-CTjwiKSa.js +0 -146
  696. package/dist/src/litellm-Cd4Nj5ue.js +0 -145
  697. package/dist/src/litellm-DMqLpEBg.cjs +0 -146
  698. package/dist/src/live-Bt50-InO.cjs +0 -891
  699. package/dist/src/live-Bu2ujadG.js +0 -2
  700. package/dist/src/live-C3M52i3p.js +0 -891
  701. package/dist/src/live-CRfHMO3B.js +0 -892
  702. package/dist/src/live-iCIpO14m.js +0 -891
  703. package/dist/src/luma-ray-B8eHC4c8.cjs +0 -309
  704. package/dist/src/luma-ray-BIvkPw0s.js +0 -309
  705. package/dist/src/luma-ray-ChsiBxMA.js +0 -309
  706. package/dist/src/luma-ray-DAvKrInz.js +0 -310
  707. package/dist/src/mantleChat-5YeEXAZI.js +0 -154
  708. package/dist/src/mantleChat-D--mW3hl.js +0 -154
  709. package/dist/src/mantleChat-DHP3siNg.cjs +0 -154
  710. package/dist/src/mantleChat-wBfAX46o.js +0 -155
  711. package/dist/src/mcp-49jlEcTQ.js +0 -85
  712. package/dist/src/mcp-__PIz81I.js +0 -84
  713. package/dist/src/memoryPoisoning-Chxge74M.js +0 -111
  714. package/dist/src/memoryPoisoning-QH6NCUVE.js +0 -112
  715. package/dist/src/memoryPoisoning-tCxZt8Nz.js +0 -111
  716. package/dist/src/memoryPoisoning-ymrRItRR.cjs +0 -111
  717. package/dist/src/messages-BE_eZ7NA.js +0 -1127
  718. package/dist/src/messages-Bo638ShI.js +0 -1127
  719. package/dist/src/messages-BzR0-NQ1.js +0 -1128
  720. package/dist/src/messages-Cbg5Pfd0.cjs +0 -1161
  721. package/dist/src/mischievousUser-BtED2Z5Z.cjs +0 -51
  722. package/dist/src/mischievousUser-KqSOjrDJ.js +0 -51
  723. package/dist/src/mischievousUser-YMD41YNZ.js +0 -51
  724. package/dist/src/mischievousUser-zBxlNdCu.js +0 -52
  725. package/dist/src/modelslab-B8gZxtfE.js +0 -171
  726. package/dist/src/modelslab-C7bmVpTB.js +0 -170
  727. package/dist/src/modelslab-CCeQCTZg.js +0 -170
  728. package/dist/src/modelslab-CvBJGv7y.cjs +0 -170
  729. package/dist/src/nova-reel-BOEWsEKA.cjs +0 -272
  730. package/dist/src/nova-reel-BtyBXq5M.js +0 -273
  731. package/dist/src/nova-reel-C1eF3-EE.js +0 -272
  732. package/dist/src/nova-reel-YhgrxEKT.js +0 -272
  733. package/dist/src/nova-sonic-BaERP20w.js +0 -374
  734. package/dist/src/nova-sonic-CxgM3O-P.cjs +0 -374
  735. package/dist/src/nova-sonic-DJS22fC3.js +0 -375
  736. package/dist/src/nova-sonic-DwvwHyRX.js +0 -374
  737. package/dist/src/novita-D1l2tG0O.js +0 -116
  738. package/dist/src/novita-D84VM3v0.cjs +0 -115
  739. package/dist/src/novita-DGInvwfR.js +0 -115
  740. package/dist/src/novita-vXHkXhTg.js +0 -114
  741. package/dist/src/nscale-CU0Ldr00.js +0 -209
  742. package/dist/src/nscale-ClfKlQeM.cjs +0 -209
  743. package/dist/src/nscale-DxaVnF0x.js +0 -210
  744. package/dist/src/nscale-_poVxIrO.js +0 -207
  745. package/dist/src/openaiResponses-CJGsneNj.js +0 -317
  746. package/dist/src/openaiResponses-CKSl5Sdg.js +0 -319
  747. package/dist/src/openaiResponses-DC8rzFUc.js +0 -318
  748. package/dist/src/openaiResponses-rMHIA3dV.cjs +0 -318
  749. package/dist/src/openclaw-CCbvsNFW.cjs +0 -1344
  750. package/dist/src/openclaw-CZw1lCDZ.js +0 -1336
  751. package/dist/src/openclaw-ChFLgC-a.js +0 -1338
  752. package/dist/src/openclaw-DrPMoRrH.js +0 -1337
  753. package/dist/src/opencode-sdk-2EfIDhFp.cjs +0 -1018
  754. package/dist/src/opencode-sdk-CHw3F845.js +0 -1013
  755. package/dist/src/opencode-sdk-D0EGGxvy.js +0 -1012
  756. package/dist/src/opencode-sdk-jSS7NI2Q.js +0 -1012
  757. package/dist/src/openinterpreter-CY622xHC.js +0 -431
  758. package/dist/src/openinterpreter-DATyhuhP.js +0 -432
  759. package/dist/src/openinterpreter-DDUMyIf1.js +0 -431
  760. package/dist/src/openinterpreter-s5Tz6Lid.cjs +0 -435
  761. package/dist/src/pricing-C498twd2.js +0 -976
  762. package/dist/src/pricing-DBd_bMIh.cjs +0 -999
  763. package/dist/src/pricing-ISrMCskv.js +0 -976
  764. package/dist/src/promptfoo-6p0WG2ih.js +0 -286
  765. package/dist/src/promptfoo-BQRfgNs_.js +0 -285
  766. package/dist/src/promptfoo-Bqo88z20.cjs +0 -341
  767. package/dist/src/promptfoo-Cq5AVI3I.js +0 -286
  768. package/dist/src/providers-ATbeMX5E.cjs +0 -24180
  769. package/dist/src/providers-B7F1FiNI.js +0 -2
  770. package/dist/src/providers-DazIw8mI.js +0 -24039
  771. package/dist/src/providers-QvGlNAD0.js +0 -24437
  772. package/dist/src/quiverai-BPlNcLkV.cjs +0 -325
  773. package/dist/src/quiverai-By99-YmJ.js +0 -325
  774. package/dist/src/quiverai-CmmByDqo.js +0 -325
  775. package/dist/src/quiverai-HZkoJJqw.js +0 -326
  776. package/dist/src/registry-BLTnTfjT.cjs +0 -131
  777. package/dist/src/registry-BMC-COHT.js +0 -132
  778. package/dist/src/registry-C8UZtmBp.js +0 -131
  779. package/dist/src/registry-CfwEUYXG.js +0 -131
  780. package/dist/src/remoteGeneration-Bgg6kC5V.js +0 -370
  781. package/dist/src/remoteGeneration-CKJFE960.cjs +0 -482
  782. package/dist/src/remoteGeneration-DaxwJDKv.js +0 -370
  783. package/dist/src/remoteGeneration-vHMGVKr1.js +0 -371
  784. package/dist/src/responses-BvnyIHrq.js +0 -1099
  785. package/dist/src/responses-CERAgvf-.js +0 -1098
  786. package/dist/src/responses-CwgjeuOg.cjs +0 -1109
  787. package/dist/src/runtimeTransform-3RF9Avyg.cjs +0 -161
  788. package/dist/src/runtimeTransform-C51Z5j4H.js +0 -156
  789. package/dist/src/runtimeTransform-CKE_Iyv8.js +0 -157
  790. package/dist/src/runtimeTransform-Cs11xJpj.js +0 -156
  791. package/dist/src/sagemaker-BJ4dOCxE.js +0 -713
  792. package/dist/src/sagemaker-Bt3JUAWq.js +0 -714
  793. package/dist/src/sagemaker-QVKyLgLF.cjs +0 -716
  794. package/dist/src/sagemaker-l3IB8iTs.js +0 -713
  795. package/dist/src/scanner-DGjIiTZ1.js +0 -1971
  796. package/dist/src/server-BNaLZH6u.js +0 -63
  797. package/dist/src/server-CBMuQul3.js +0 -189
  798. package/dist/src/server-CMKKIzKv.cjs +0 -74
  799. package/dist/src/server-CN2IS9Cs.js +0 -155
  800. package/dist/src/server-ua4cqbjC.js +0 -2
  801. package/dist/src/session-CQIjq_HZ.cjs +0 -69
  802. package/dist/src/session-FTlg8sEu.js +0 -62
  803. package/dist/src/session-GBQXtPWp.js +0 -63
  804. package/dist/src/session-_0-rTdwY.js +0 -62
  805. package/dist/src/shared-BtuO-OAM.js +0 -1927
  806. package/dist/src/shared-Ci78wTZX.js +0 -1928
  807. package/dist/src/shared-Dd3rimdM.js +0 -1929
  808. package/dist/src/shared-KAjFxRre.cjs +0 -2185
  809. package/dist/src/simulatedUser--OjW6xCx.js +0 -247
  810. package/dist/src/simulatedUser-D0-slRye.cjs +0 -252
  811. package/dist/src/simulatedUser-D1Kh_cwA.js +0 -248
  812. package/dist/src/slack-BX0FUevO.js +0 -144
  813. package/dist/src/slack-CcwXFiJE.cjs +0 -144
  814. package/dist/src/slack-CnfqKfXp.js +0 -145
  815. package/dist/src/strategies-2ntcK4tN.js +0 -2248
  816. package/dist/src/strategies-DZIW7Zcs.js +0 -2385
  817. package/dist/src/strategies-YRDF2j-N.cjs +0 -2420
  818. package/dist/src/telemetry-CL8CVA4p.js +0 -205
  819. package/dist/src/telemetry-Cix90qqz.js +0 -201
  820. package/dist/src/telemetry-CkmlqTjV.js +0 -205
  821. package/dist/src/telemetry-DQH7l5bb.js +0 -2
  822. package/dist/src/telemetry-DUCXc1-r.cjs +0 -216
  823. package/dist/src/togetherai-3yUt5Ck7.js +0 -49
  824. package/dist/src/togetherai-BJUByLwt.cjs +0 -49
  825. package/dist/src/togetherai-Bh6KZkmd.js +0 -50
  826. package/dist/src/togetherai-DDl9yk3b.js +0 -48
  827. package/dist/src/traceContext-BiJVppjT.cjs +0 -1032
  828. package/dist/src/traceContext-CKKluULP.js +0 -1016
  829. package/dist/src/traceContext-D3Sk8fO-.js +0 -1015
  830. package/dist/src/transcription-BoVQKIVz.js +0 -175
  831. package/dist/src/transcription-Bs5u8780.js +0 -175
  832. package/dist/src/transcription-Dl654d1p.cjs +0 -178
  833. package/dist/src/transcription-VEvhM1Fu.js +0 -176
  834. package/dist/src/transform-BAbkGpvl.js +0 -125
  835. package/dist/src/transform-C_j4hUH8.js +0 -126
  836. package/dist/src/transform-Da86hs4M.cjs +0 -154
  837. package/dist/src/transform-_i1raQNo.js +0 -125
  838. package/dist/src/typesafe-CKXBeh82.cjs +0 -253
  839. package/dist/src/typesafe-D3VaGeNm.js +0 -253
  840. package/dist/src/typesafe-DYM-SFNH.js +0 -253
  841. package/dist/src/typesafe-LXmSbw8F.js +0 -254
  842. package/dist/src/util-41rb0XHX.js +0 -743
  843. package/dist/src/util-B0WlHYFM.js +0 -2049
  844. package/dist/src/util-BD1R_PsR.js +0 -1770
  845. package/dist/src/util-BLbM_ItC.js +0 -395
  846. package/dist/src/util-C72P0iIa.js +0 -352
  847. package/dist/src/util-C7MpGlJ6.cjs +0 -2305
  848. package/dist/src/util-CCtqagKc.js +0 -286
  849. package/dist/src/util-CM2Ec_uY.js +0 -2051
  850. package/dist/src/util-CSSAWO8v.js +0 -351
  851. package/dist/src/util-CkQc-fx3.cjs +0 -934
  852. package/dist/src/util-DcOlFTFa.cjs +0 -478
  853. package/dist/src/util-DluGTGVB.js +0 -395
  854. package/dist/src/util-PfQ60chz.js +0 -743
  855. package/dist/src/util-f14-CPij.js +0 -396
  856. package/dist/src/util-l9pXX3Eu.cjs +0 -357
  857. package/dist/src/util-o_BnlYqS.js +0 -2050
  858. package/dist/src/vertex-B_-gQgzc.js +0 -2
  859. package/dist/src/vertex-CU4gqoYa.js +0 -854
  860. package/dist/src/vertex-DZ42UHb3.js +0 -848
  861. package/dist/src/vertex-DsYQJA0T.cjs +0 -871
  862. package/dist/src/vertexLive-BvIaHKGB.js +0 -55
  863. package/dist/src/vertexLive-CTULqNx7.js +0 -56
  864. package/dist/src/vertexLive-DjJ_YQBe.cjs +0 -55
  865. package/dist/src/vertexLive-STUGcteB.js +0 -55
  866. package/dist/src/video-CAQGmtEV.js +0 -703
  867. package/dist/src/video-_FSTWlwX.js +0 -702
  868. package/dist/src/video-aBPJPWdt.js +0 -702
  869. package/dist/src/video-gDjkWv5m.cjs +0 -706
@@ -0,0 +1,743 @@
1
+ import { r as parseDataUrl } from "./dataUrl-DUSr-ZvI.js";
2
+ import { n as calculateCost } from "./shared-BnN4RWgk.js";
3
+ //#region src/providers/anthropic/util.ts
4
+ const ANTHROPIC_MODELS = [
5
+ ...modelsWithCost([
6
+ "claude-fable-5-1",
7
+ "claude-mythos-5-1",
8
+ "claude-fable-5",
9
+ "claude-mythos-5"
10
+ ], {
11
+ input: 10 / 1e6,
12
+ output: 50 / 1e6
13
+ }),
14
+ ...modelsWithCost(["claude-opus-5-5"], {
15
+ input: 4 / 1e6,
16
+ output: 20 / 1e6
17
+ }),
18
+ ...modelsWithCost(["claude-opus-5"], {
19
+ input: 5 / 1e6,
20
+ output: 25 / 1e6
21
+ }),
22
+ ...modelsWithCost(["claude-sonnet-5-5"], {
23
+ input: 2 / 1e6,
24
+ output: 10 / 1e6
25
+ }),
26
+ ...modelsWithCost(["claude-sonnet-5"], {
27
+ input: 2 / 1e6,
28
+ output: 10 / 1e6
29
+ }),
30
+ ...modelsWithCost(["claude-mythos-preview"], {
31
+ input: 25 / 1e6,
32
+ output: 125 / 1e6
33
+ }),
34
+ ...modelsWithCost(["claude-opus-4-8"], {
35
+ input: 5 / 1e6,
36
+ output: 25 / 1e6
37
+ }),
38
+ ...modelsWithCost(["claude-opus-4-7"], {
39
+ input: 5 / 1e6,
40
+ output: 25 / 1e6
41
+ }),
42
+ ...modelsWithCost(["claude-sonnet-4-6"], {
43
+ input: 3 / 1e6,
44
+ output: 15 / 1e6
45
+ }),
46
+ ...modelsWithCost(["claude-opus-4-6"], {
47
+ input: 5 / 1e6,
48
+ output: 25 / 1e6
49
+ }),
50
+ ...modelsWithCost(["claude-opus-4-5", "claude-opus-4-5-20251101"], {
51
+ input: 5 / 1e6,
52
+ output: 25 / 1e6
53
+ }),
54
+ ...modelsWithCost([
55
+ "claude-opus-4-1",
56
+ "claude-opus-4-1-20250805",
57
+ "claude-opus-4-20250514",
58
+ "claude-opus-4-0"
59
+ ], {
60
+ input: 15 / 1e6,
61
+ output: 75 / 1e6
62
+ }),
63
+ ...modelsWithCost([
64
+ "claude-sonnet-4-5",
65
+ "claude-sonnet-4-5-20250929",
66
+ "claude-sonnet-4-5-latest",
67
+ "claude-sonnet-4-20250514",
68
+ "claude-sonnet-4-0"
69
+ ], {
70
+ input: 3 / 1e6,
71
+ output: 15 / 1e6
72
+ }),
73
+ ...modelsWithCost(["claude-haiku-4-5", "claude-haiku-4-5-20251001"], {
74
+ input: 1 / 1e6,
75
+ output: 5 / 1e6
76
+ }),
77
+ ...modelsWithCost(["claude-2.0"], {
78
+ input: .008 / 1e3,
79
+ output: .024 / 1e3
80
+ }),
81
+ ...modelsWithCost(["claude-2.1"], {
82
+ input: .008 / 1e3,
83
+ output: .024 / 1e3
84
+ }),
85
+ ...modelsWithCost(["claude-3-haiku-20240307"], {
86
+ input: 25e-5 / 1e3,
87
+ output: .00125 / 1e3
88
+ }),
89
+ ...modelsWithCost(["claude-3-opus-20240229"], {
90
+ input: .015 / 1e3,
91
+ output: .075 / 1e3
92
+ }),
93
+ ...modelsWithCost(["claude-3-5-haiku-20241022"], {
94
+ input: .8 / 1e6,
95
+ output: 4 / 1e6
96
+ }),
97
+ ...modelsWithCost([
98
+ "claude-3-5-sonnet-20240620",
99
+ "claude-3-5-sonnet-20241022",
100
+ "claude-3-7-sonnet-20250219"
101
+ ], {
102
+ input: 3 / 1e6,
103
+ output: 15 / 1e6
104
+ })
105
+ ];
106
+ const ANTHROPIC_COMPATIBILITY_ALIAS_MODELS = [
107
+ ...modelsWithCost(["claude-opus-4-6-latest", "claude-opus-4-5-latest"], {
108
+ input: 5 / 1e6,
109
+ output: 25 / 1e6
110
+ }),
111
+ ...modelsWithCost(["claude-sonnet-4-6-latest"], {
112
+ input: 3 / 1e6,
113
+ output: 15 / 1e6
114
+ }),
115
+ ...modelsWithCost(["claude-haiku-4-5-latest"], {
116
+ input: 1 / 1e6,
117
+ output: 5 / 1e6
118
+ }),
119
+ ...modelsWithCost(["claude-opus-4-latest"], {
120
+ input: 15 / 1e6,
121
+ output: 75 / 1e6
122
+ }),
123
+ ...modelsWithCost(["claude-sonnet-4-latest"], {
124
+ input: 3 / 1e6,
125
+ output: 15 / 1e6
126
+ })
127
+ ];
128
+ const ANTHROPIC_SHORTHAND_MODEL_IDS = /* @__PURE__ */ new Set([...ANTHROPIC_MODELS.map((model) => model.id), ...ANTHROPIC_COMPATIBILITY_ALIAS_MODELS.map((model) => model.id)]);
129
+ const CLAUDE_FABLE_MYTHOS_5_PATTERN = /(^|[^a-z0-9])claude-(?:fable|mythos)-5(?![a-z0-9])/i;
130
+ const CLAUDE_MYTHOS_PREVIEW_RE = /(^|[^a-z0-9])claude-mythos-preview(?![a-z0-9])/i;
131
+ const CLAUDE_FABLE_MYTHOS_51_PATTERN = /(^|[^a-z0-9])claude-(?:fable|mythos)-5-1(?![a-z0-9])/i;
132
+ const CLAUDE_OPUS_55_PATTERN = /(^|[^a-z0-9])claude-opus-5-5(?![a-z0-9])/i;
133
+ const CLAUDE_OPUS_5_PATTERN = /(^|[^a-z0-9])claude-opus-5(?!-[0-9](?![0-9]))(?![a-z0-9])/i;
134
+ const CLAUDE_SONNET_55_PATTERN = /(^|[^a-z0-9])claude-sonnet-5-5(?![a-z0-9])/i;
135
+ const CLAUDE_SONNET_5_PATTERN = /(^|[^a-z0-9])claude-sonnet-5(?!-[0-9](?![0-9]))(?![a-z0-9])/i;
136
+ const CLAUDE_OPUS_48_PATTERN = /(^|[^a-z0-9])claude-opus-4-8(?![0-9])/i;
137
+ const CLAUDE_OPUS_47_PATTERN = /(^|[^a-z0-9])claude-opus-4-7(?![0-9])/i;
138
+ const CLAUDE_5_OR_LATER_PATTERN = /(^|[^a-z0-9])claude-[a-z][a-z0-9]*(?:-[a-z][a-z0-9]*){0,4}-(?:[5-9]|[1-9][0-9])(?![a-z0-9])/i;
139
+ /**
140
+ * Single source of truth for Claude model capabilities. Adding a model is a new row here
141
+ * (plus, if a provider branches on it by name, a thin `isClaude<Model>Model` accessor)
142
+ * instead of editing several parallel OR-chains. Regional-premium coverage follows
143
+ * Anthropic's "Claude 4.5 models and beyond" pricing (Sonnet 4.5, Haiku 4.5, Opus 4.5, and
144
+ * every later model); Opus 4.1 and earlier retain base pricing on all endpoints.
145
+ */
146
+ const CLAUDE_MODEL_FAMILIES = [
147
+ {
148
+ match: CLAUDE_MYTHOS_PREVIEW_RE,
149
+ warningName: "Claude Mythos Preview",
150
+ samplingParamsDeprecated: true,
151
+ alwaysOnAdaptiveThinking: true
152
+ },
153
+ {
154
+ match: CLAUDE_FABLE_MYTHOS_51_PATTERN,
155
+ warningName: "Claude Fable 5.1 and Claude Mythos 5.1",
156
+ samplingParamsDeprecated: true,
157
+ alwaysOnAdaptiveThinking: true,
158
+ forcedToolChoiceUnsupported: true,
159
+ regionalPremium: true,
160
+ cacheReadMultiplier: .025
161
+ },
162
+ {
163
+ match: CLAUDE_FABLE_MYTHOS_5_PATTERN,
164
+ warningName: "Claude Fable 5 and Claude Mythos 5",
165
+ samplingParamsDeprecated: true,
166
+ alwaysOnAdaptiveThinking: true,
167
+ regionalPremium: true
168
+ },
169
+ {
170
+ match: CLAUDE_OPUS_55_PATTERN,
171
+ warningName: "Claude Opus 5.5",
172
+ samplingParamsDeprecated: true,
173
+ alwaysOnAdaptiveThinking: true,
174
+ forcedToolChoiceUnsupported: true,
175
+ regionalPremium: true,
176
+ cacheReadMultiplier: .05
177
+ },
178
+ {
179
+ match: CLAUDE_OPUS_5_PATTERN,
180
+ warningName: "Claude Opus 5",
181
+ samplingParamsDeprecated: true,
182
+ thinkingOnByDefault: true,
183
+ disabledThinkingEffortCapped: true,
184
+ regionalPremium: true
185
+ },
186
+ {
187
+ match: CLAUDE_SONNET_55_PATTERN,
188
+ warningName: "Claude Sonnet 5.5",
189
+ samplingParamsDeprecated: true,
190
+ thinkingOnByDefault: true,
191
+ disabledThinkingEffortCapped: true,
192
+ betweenToolsReplacesDisabledThinking: true,
193
+ forcedToolChoiceUnsupported: true,
194
+ regionalPremium: true
195
+ },
196
+ {
197
+ match: CLAUDE_SONNET_5_PATTERN,
198
+ warningName: "Claude Sonnet 5",
199
+ samplingParamsDeprecated: true,
200
+ thinkingOnByDefault: true,
201
+ regionalPremium: true
202
+ },
203
+ {
204
+ match: CLAUDE_OPUS_48_PATTERN,
205
+ warningName: "Claude Opus 4.7 and 4.8",
206
+ samplingParamsDeprecated: true,
207
+ regionalPremium: true
208
+ },
209
+ {
210
+ match: CLAUDE_OPUS_47_PATTERN,
211
+ warningName: "Claude Opus 4.7 and 4.8",
212
+ samplingParamsDeprecated: true,
213
+ regionalPremium: true
214
+ },
215
+ {
216
+ match: /(^|[^a-z0-9])claude-(?:opus|sonnet|haiku)-4-(?:5|6)(?![0-9])/i,
217
+ regionalPremium: true
218
+ }
219
+ ];
220
+ function hasClaudeCapability(modelId, capability) {
221
+ return CLAUDE_MODEL_FAMILIES.some((family) => family[capability] && family.match.test(modelId));
222
+ }
223
+ /** Matches Claude Opus 5.5 model IDs. */
224
+ function isClaudeOpus55Model(modelId) {
225
+ return CLAUDE_OPUS_55_PATTERN.test(modelId);
226
+ }
227
+ /** Matches Claude Opus 5 model IDs (not `claude-opus-4-5`, `-5-5`, or `-50`). */
228
+ function isClaudeOpus5Model(modelId) {
229
+ return CLAUDE_OPUS_5_PATTERN.test(modelId);
230
+ }
231
+ /** Matches the Claude 5 Fable and Mythos model IDs. */
232
+ function isClaudeFableOrMythos5Model(modelId) {
233
+ return CLAUDE_FABLE_MYTHOS_5_PATTERN.test(modelId);
234
+ }
235
+ /** Matches Claude Sonnet 5.5 model IDs. */
236
+ function isClaudeSonnet55Model(modelId) {
237
+ return CLAUDE_SONNET_55_PATTERN.test(modelId);
238
+ }
239
+ /** Matches Claude Sonnet 5 model IDs (not `claude-sonnet-4-5`, `-5-5`, or `-50`). */
240
+ function isClaudeSonnet5Model(modelId) {
241
+ return CLAUDE_SONNET_5_PATTERN.test(modelId);
242
+ }
243
+ function isForcedToolChoiceUnsupportedClaudeModel(modelId) {
244
+ return hasClaudeCapability(modelId, "forcedToolChoiceUnsupported");
245
+ }
246
+ /**
247
+ * Name for a model in user-facing deprecation warnings, or `undefined` when it is not a
248
+ * recognized family (callers fall back to a generic phrase).
249
+ */
250
+ function getClaudeModelWarningName(modelId) {
251
+ return CLAUDE_MODEL_FAMILIES.find((family) => family.warningName && family.match.test(modelId))?.warningName;
252
+ }
253
+ /**
254
+ * Claude models that carry a 10% premium on Bedrock regional and Vertex regional/multi-region
255
+ * endpoints (vs the global endpoint), per Anthropic's "Claude 4.5 models and beyond" pricing.
256
+ */
257
+ function isClaudeRegionalPremiumModel(modelId) {
258
+ return hasClaudeCapability(modelId, "regionalPremium");
259
+ }
260
+ function isAlwaysOnAdaptiveThinkingClaudeModel(modelId) {
261
+ return hasClaudeCapability(modelId, "alwaysOnAdaptiveThinking");
262
+ }
263
+ /** True when `between_tools`, not `disabled`, is the model's lowest thinking setting. */
264
+ function isBetweenToolsLowestThinkingClaudeModel(modelId) {
265
+ return hasClaudeCapability(modelId, "betweenToolsReplacesDisabledThinking");
266
+ }
267
+ /**
268
+ * True when omitting `thinking` still runs adaptive thinking (Claude Opus 5 / Sonnet 5). Callers use this
269
+ * so that thinking-token headroom (e.g. the default `max_tokens`) reflects what the API will
270
+ * actually do rather than assuming an absent `thinking` field means thinking is off.
271
+ */
272
+ function isThinkingOnByDefaultClaudeModel(modelId) {
273
+ return hasClaudeCapability(modelId, "thinkingOnByDefault");
274
+ }
275
+ /**
276
+ * Whether a request will spend output tokens on thinking, given the thinking config as
277
+ * normalized by {@link normalizeClaudeThinkingConfig}. Thinking shares the `max_tokens`
278
+ * budget with the answer, so providers size their default `max_tokens` off this — get it
279
+ * wrong and responses truncate mid-answer.
280
+ *
281
+ * Note this is deliberately NOT the same question as "is thinking enabled". A model that
282
+ * thinks by default consumes tokens without the request ever saying so, but must not be
283
+ * treated as explicitly-enabled thinking: that would trigger the legacy extended-thinking
284
+ * incompatibilities (forced `tool_choice` suppression, `top_p` clamping) which do not apply
285
+ * to adaptive thinking. Callers that need that second question keep their own predicate.
286
+ */
287
+ function claudeThinkingConsumesTokens(modelId, resolvedThinking) {
288
+ return isAlwaysOnAdaptiveThinkingClaudeModel(modelId) || resolvedThinking?.type === "enabled" || resolvedThinking?.type === "adaptive" || resolvedThinking == null && isThinkingOnByDefaultClaudeModel(modelId);
289
+ }
290
+ /**
291
+ * True when the request cannot turn thinking off at this effort level. Claude Opus 5 only
292
+ * accepts `disabled` at effort `high` or below, and Claude Sonnet 5.5 its `between_tools`
293
+ * replacement, so either with `xhigh`/`max` is a 400. An unset effort uses the API default
294
+ * (`high`), which is within the cap.
295
+ */
296
+ function isDisabledThinkingRejectedAtEffort(modelId, effort) {
297
+ return hasClaudeCapability(modelId, "disabledThinkingEffortCapped") && (effort === "xhigh" || effort === "max");
298
+ }
299
+ /**
300
+ * Whether a bare Anthropic model id has the shape of a Claude model.
301
+ *
302
+ * Used by the `anthropic:<model>` shorthand so a model released after this build still
303
+ * resolves instead of being rejected at config load. Anthropic is the authority on which
304
+ * ids exist and returns a clear `not_found_error` for one that does not, so gating the
305
+ * shorthand on a local catalog only delays that answer to the next promptfoo release.
306
+ *
307
+ * The shape check is what keeps a genuine typo (`anthropic:sonnet-5`) failing at config
308
+ * load with the usage message, rather than surfacing as a request-time 404.
309
+ */
310
+ function looksLikeClaudeModelId(modelId) {
311
+ return /^claude-[a-z0-9]/i.test(modelId);
312
+ }
313
+ /**
314
+ * Raise `max_tokens` above a manual thinking budget.
315
+ *
316
+ * Anthropic rejects any request where `max_tokens <= thinking.budget_tokens` with
317
+ * "`max_tokens` must be greater than `thinking.budget_tokens`" — thinking draws from the
318
+ * same output budget as the answer, so a budget at or above the cap leaves no room to reply.
319
+ * The rule is the API's, not a platform's, so every Claude route needs it: a user who sets
320
+ * `thinking: { type: 'enabled', budget_tokens: 8000 }` and leaves `max_tokens` at the
321
+ * provider default otherwise gets a 400 rather than a longer think.
322
+ *
323
+ * Headroom of 1024 above the budget matches what the Vertex path has always used. Callers
324
+ * keep their own `max_tokens` defaults, which legitimately differ per platform; this only
325
+ * enforces the floor.
326
+ */
327
+ function clampMaxTokensForThinkingBudget(maxTokens, thinking) {
328
+ if (thinking?.type !== "enabled" || !thinking.budget_tokens) return maxTokens;
329
+ return maxTokens <= thinking.budget_tokens ? thinking.budget_tokens + 1024 : maxTokens;
330
+ }
331
+ function normalizeAnthropicModelName(modelName) {
332
+ return modelName.replace(/^(?:(?:global|us|eu|jp|au)\.)?anthropic\./, "");
333
+ }
334
+ /**
335
+ * Claude Opus 4.7/4.8 and Claude 5+ models deprecate manual sampling controls at the model
336
+ * level — `temperature`, `top_p`, and `top_k` return 400 `invalid_request_error` (including
337
+ * promptfoo's built-in `temperature` default of 0). Shared by the Anthropic, Bedrock, Vertex,
338
+ * and Azure providers. Known families use the capability table above; the generation fallback
339
+ * keeps newly released Claude 5+ family names safe before their model-specific rows land.
340
+ * Arbitrary deployment and inference-profile aliases cannot safely use the fallback.
341
+ */
342
+ function isSamplingParamsDeprecatedClaudeModel(modelId, options = {}) {
343
+ const isApplicationInferenceProfileArn = modelId.startsWith("arn:") && modelId.includes(":application-inference-profile/");
344
+ return hasClaudeCapability(modelId, "samplingParamsDeprecated") || options.allowGenerationFallback !== false && !isApplicationInferenceProfileArn && CLAUDE_5_OR_LATER_PATTERN.test(modelId);
345
+ }
346
+ /** Whether a Claude thinking config turns extended thinking on. */
347
+ function isClaudeThinkingEnabled(thinking) {
348
+ return thinking?.type === "enabled" || thinking?.type === "adaptive";
349
+ }
350
+ /**
351
+ * The sampling controls Claude accepts for one request, shared by every provider that sends
352
+ * Claude a Messages body (Anthropic, Vertex, Bedrock). Claude rejects `temperature` together
353
+ * with `top_p`; with thinking on it rejects `temperature` and `top_k` and needs `top_p` of at
354
+ * least 0.95; models that deprecate sampling reject all three. `defaultTemperature` fills in
355
+ * only where a temperature is allowed. Returns what to send and a warning per dropped value.
356
+ */
357
+ function resolveClaudeSamplingParams({ temperature, top_p, top_k }, { thinkingEnabled, samplingParamsDeprecated, defaultTemperature }) {
358
+ if (samplingParamsDeprecated) return {
359
+ sampling: {},
360
+ warnings: []
361
+ };
362
+ const warnings = [];
363
+ if (thinkingEnabled) {
364
+ if (top_k != null) warnings.push("top_k is incompatible with extended thinking and will be omitted. Remove top_k from your config or disable thinking.");
365
+ if (temperature != null) warnings.push("temperature is incompatible with extended thinking and will be omitted. Remove temperature from your config or disable thinking.");
366
+ if (top_p == null) return {
367
+ sampling: {},
368
+ warnings
369
+ };
370
+ if (top_p < .95 || top_p > 1) warnings.push(`top_p must be between 0.95 and 1.0 with extended thinking (got ${top_p}). Clamping to valid range.`);
371
+ return {
372
+ sampling: { top_p: Math.max(.95, Math.min(1, top_p)) },
373
+ warnings
374
+ };
375
+ }
376
+ if (top_p != null && temperature != null) warnings.push("temperature is incompatible with top_p on Claude and will be omitted. Remove one of these parameters.");
377
+ const resolvedTemperature = top_p == null ? temperature ?? defaultTemperature : void 0;
378
+ return {
379
+ sampling: {
380
+ ...resolvedTemperature == null ? {} : { temperature: resolvedTemperature },
381
+ ...top_p == null ? {} : { top_p },
382
+ ...top_k == null ? {} : { top_k }
383
+ },
384
+ warnings
385
+ };
386
+ }
387
+ /**
388
+ * Normalize a Claude thinking config for models that deprecate manual
389
+ * budget-based thinking: an `enabled` budget converts to adaptive thinking
390
+ * (preserving `display`), and `disabled` is omitted on always-on adaptive
391
+ * thinking models (Fable 5 / Mythos 5), which reject it. `disabled` is also
392
+ * omitted on effort-capped models (Opus 5, Sonnet 5.5) when `effort` is high
393
+ * enough that turning thinking off would 400, and otherwise becomes
394
+ * `between_tools` on models that use it in place of `disabled` (Sonnet 5.5).
395
+ * An explicit `between_tools` is omitted above that effort cap too.
396
+ * The Anthropic, Bedrock InvokeModel/Converse, and Vertex paths all share this
397
+ * transform; user-facing warnings stay at the call sites that surface them.
398
+ */
399
+ function normalizeClaudeThinkingConfig(modelId, thinking, effort, options = {}) {
400
+ if (thinking?.type === "enabled" && (isSamplingParamsDeprecatedClaudeModel(modelId, options) || isAlwaysOnAdaptiveThinkingClaudeModel(modelId))) return {
401
+ type: "adaptive",
402
+ ...thinking.display ? { display: thinking.display } : {}
403
+ };
404
+ if (thinking?.type === "disabled") {
405
+ if (isAlwaysOnAdaptiveThinkingClaudeModel(modelId) || isDisabledThinkingRejectedAtEffort(modelId, effort)) return;
406
+ if (isBetweenToolsLowestThinkingClaudeModel(modelId)) return { type: "between_tools" };
407
+ }
408
+ if (thinking?.type === "between_tools" && isBetweenToolsLowestThinkingClaudeModel(modelId) && isDisabledThinkingRejectedAtEffort(modelId, effort)) return;
409
+ return thinking;
410
+ }
411
+ const CLAUDE_REGIONAL_ENDPOINT_PREMIUM = 1.1;
412
+ const CLAUDE_US_INFERENCE_GEO_MULTIPLIER = 1.1;
413
+ const CLAUDE_46_OR_LATER_MODEL_PATTERN = /^claude-(?:(?:opus|sonnet)-4-(?:6|7|8)(?:-|$)|(?:fable|mythos|opus|sonnet)-5(?:-|$))/;
414
+ /**
415
+ * Mark a cost config for the Claude regional endpoint premium (see isClaudeRegionalPremiumModel),
416
+ * unless the user supplied an explicit `cost`/`inputCost`/`outputCost` override. The premium is a
417
+ * flat multiplier that calculateAnthropicCost applies to the *final* computed cost, so it composes
418
+ * with provider-selected long-context and cache pricing rather than overriding either. Callers
419
+ * decide whether the request is regional.
420
+ */
421
+ function applyClaudeRegionalPremium(modelName, config) {
422
+ if (!isClaudeRegionalPremiumModel(modelName) || config.cost != null || config.inputCost != null || config.outputCost != null) return config;
423
+ return {
424
+ ...config,
425
+ regionalPremiumMultiplier: CLAUDE_REGIONAL_ENDPOINT_PREMIUM
426
+ };
427
+ }
428
+ function getFileReferences(block) {
429
+ if (block.type === "container_upload") return [{
430
+ type: block.type,
431
+ file_id: block.file_id
432
+ }];
433
+ if ((block.type === "code_execution_tool_result" || block.type === "bash_code_execution_tool_result") && "content" in block.content) return block.content.content.map(({ type, file_id }) => ({
434
+ type,
435
+ file_id
436
+ }));
437
+ return [];
438
+ }
439
+ function outputFromMessage(message, showThinking) {
440
+ const segments = [];
441
+ let previousBlockWasText = false;
442
+ for (const block of message.content) {
443
+ if (block.type === "text") {
444
+ if (previousBlockWasText) segments[segments.length - 1] += block.text;
445
+ else segments.push(block.text);
446
+ previousBlockWasText = true;
447
+ continue;
448
+ }
449
+ previousBlockWasText = false;
450
+ if (block.type === "thinking" && showThinking && block.thinking.trim() !== "") segments.push(`Thinking: ${block.thinking}\nSignature: ${block.signature}`);
451
+ else if (block.type === "redacted_thinking" && showThinking) segments.push(`Redacted Thinking: ${block.data}`);
452
+ else if (block.type === "tool_use" || message.stop_reason === "pause_turn" && block.type !== "thinking" && block.type !== "redacted_thinking") segments.push(JSON.stringify(block));
453
+ else for (const file of getFileReferences(block)) segments.push(JSON.stringify(file));
454
+ }
455
+ return segments.filter((segment) => segment !== "").join("\n\n");
456
+ }
457
+ /**
458
+ * Automatically extracts base64 data from data URLs for Anthropic image content.
459
+ * This ensures compatibility with our universal data URL generation without requiring
460
+ * users to modify their prompt templates with Nunjucks filters.
461
+ */
462
+ function processAnthropicImageContent(content) {
463
+ return content.map((item) => {
464
+ if (item.type === "image" && item.source && item.source.type === "base64") {
465
+ const parsed = parseDataUrl(item.source.data);
466
+ if (parsed) return {
467
+ ...item,
468
+ source: {
469
+ ...item.source,
470
+ media_type: item.source.media_type || parsed.mimeType,
471
+ data: parsed.base64Data
472
+ }
473
+ };
474
+ }
475
+ return item;
476
+ });
477
+ }
478
+ function parseMessages(messages) {
479
+ try {
480
+ const parsed = JSON.parse(messages);
481
+ if (Array.isArray(parsed)) {
482
+ const systemMessage = parsed.find((msg) => msg.role === "system");
483
+ const thinking = parsed.find((msg) => msg.thinking)?.thinking;
484
+ return {
485
+ extractedMessages: parsed.filter((msg) => msg.role && msg.role !== "system").map((msg) => ({
486
+ role: msg.role,
487
+ content: Array.isArray(msg.content) ? processAnthropicImageContent(msg.content) : [{
488
+ type: "text",
489
+ text: msg.content
490
+ }]
491
+ })),
492
+ system: systemMessage ? Array.isArray(systemMessage.content) ? systemMessage.content : [{
493
+ type: "text",
494
+ text: systemMessage.content
495
+ }] : void 0,
496
+ thinking
497
+ };
498
+ }
499
+ } catch {}
500
+ const lines = messages.split("\n").map((line) => line.trim()).filter((line) => line);
501
+ let system;
502
+ let thinking;
503
+ const extractedMessages = [];
504
+ let currentRole = null;
505
+ let currentContent = [];
506
+ const pushMessage = () => {
507
+ if (currentRole && currentContent.length > 0) {
508
+ extractedMessages.push({
509
+ role: currentRole,
510
+ content: [{
511
+ type: "text",
512
+ text: currentContent.join("\n")
513
+ }]
514
+ });
515
+ currentContent = [];
516
+ }
517
+ };
518
+ for (const line of lines) if (line.startsWith("system:")) system = [{
519
+ type: "text",
520
+ text: line.slice(7).trim()
521
+ }];
522
+ else if (line.startsWith("thinking:")) try {
523
+ thinking = JSON.parse(line.slice(9).trim());
524
+ } catch {}
525
+ else if (line.startsWith("user:") || line.startsWith("assistant:")) {
526
+ pushMessage();
527
+ currentRole = line.startsWith("user:") ? "user" : "assistant";
528
+ currentContent.push(line.slice(line.indexOf(":") + 1).trim());
529
+ } else if (currentRole) currentContent.push(line);
530
+ else {
531
+ currentRole = "user";
532
+ currentContent.push(line);
533
+ }
534
+ pushMessage();
535
+ if (extractedMessages.length === 0 && !system) extractedMessages.push({
536
+ role: "user",
537
+ content: [{
538
+ type: "text",
539
+ text: messages.trim()
540
+ }]
541
+ });
542
+ return {
543
+ system,
544
+ extractedMessages,
545
+ thinking
546
+ };
547
+ }
548
+ /**
549
+ * Compute input cost with Anthropic cache pricing applied.
550
+ * Anthropic docs: input_tokens is the non-cached portion; cache_read and cache_creation are additive.
551
+ * Cache read rates come from the model family. Five-minute cache writes cost
552
+ * 125% of the base input rate; one-hour writes cost 200%.
553
+ */
554
+ function calculateCacheInputCost(baseInputRate, uncachedInputTokens, cacheRead, cacheCreation, modelId = "", cacheCreation1h = 0) {
555
+ const cacheReadMultiplier = CLAUDE_MODEL_FAMILIES.find((family) => family.cacheReadMultiplier !== void 0 && family.match.test(modelId))?.cacheReadMultiplier ?? .1;
556
+ const oneHourCacheCreation = Math.min(Math.max(cacheCreation1h, 0), cacheCreation);
557
+ const fiveMinuteCacheCreation = Math.max(cacheCreation - oneHourCacheCreation, 0);
558
+ return uncachedInputTokens * baseInputRate + cacheRead * baseInputRate * cacheReadMultiplier + fiveMinuteCacheCreation * baseInputRate * 1.25 + oneHourCacheCreation * baseInputRate * 2;
559
+ }
560
+ function calculateAnthropicCost(modelName, config, promptTokens, completionTokens, cacheReadTokens, cacheCreationTokens, cacheCreation1hTokens, reportedInferenceGeo) {
561
+ const pricingModelName = normalizeAnthropicModelName(modelName);
562
+ const hasExplicitPricing = config.cost != null || config.inputCost != null || config.outputCost != null;
563
+ const registeredModel = ANTHROPIC_MODELS.find((model) => model.id === pricingModelName) ?? (hasExplicitPricing ? ANTHROPIC_COMPATIBILITY_ALIAS_MODELS.find((model) => model.id === pricingModelName) : void 0);
564
+ const modelInfo = pricingModelName !== modelName && pricingModelName === "claude-sonnet-5" ? {
565
+ id: pricingModelName,
566
+ cost: {
567
+ input: 3 / 1e6,
568
+ output: 15 / 1e6
569
+ }
570
+ } : registeredModel;
571
+ const effectiveConfig = pricingModelName !== modelName && !modelName.startsWith("global.") ? applyClaudeRegionalPremium(modelName, config) : config;
572
+ const regionalPremiumMultiplier = effectiveConfig.regionalPremiumMultiplier ?? 1;
573
+ const inferenceGeo = reportedInferenceGeo ?? effectiveConfig?.extra_body?.inference_geo;
574
+ const inferenceGeoMultiplier = pricingModelName === modelName && inferenceGeo === "us" && CLAUDE_46_OR_LATER_MODEL_PATTERN.test(pricingModelName) && effectiveConfig.cost == null && effectiveConfig.inputCost == null && effectiveConfig.outputCost == null ? CLAUDE_US_INFERENCE_GEO_MULTIPLIER : 1;
575
+ const withPricingMultipliers = (cost) => cost == null ? cost : cost * regionalPremiumMultiplier * inferenceGeoMultiplier;
576
+ const usesFlatCost = effectiveConfig.cost != null && effectiveConfig.inputCost == null && effectiveConfig.outputCost == null;
577
+ const cacheRead = cacheReadTokens ?? 0;
578
+ const cacheCreation = cacheCreationTokens ?? 0;
579
+ const cacheCreation1h = cacheCreation1hTokens ?? 0;
580
+ if (!usesFlatCost && modelInfo && (cacheRead || cacheCreation) && typeof promptTokens !== "undefined" && typeof completionTokens !== "undefined" && Number.isFinite(promptTokens) && Number.isFinite(completionTokens)) {
581
+ const inputCost = effectiveConfig.inputCost ?? effectiveConfig.cost ?? modelInfo.cost.input;
582
+ const outputCost = effectiveConfig.outputCost ?? effectiveConfig.cost ?? modelInfo.cost.output;
583
+ return withPricingMultipliers(calculateCacheInputCost(inputCost, promptTokens, cacheRead, cacheCreation, pricingModelName, cacheCreation1h) + completionTokens * outputCost);
584
+ }
585
+ return withPricingMultipliers(calculateCost(pricingModelName, effectiveConfig, promptTokens, completionTokens, modelInfo ? [modelInfo] : []));
586
+ }
587
+ /**
588
+ * Extract refusal details from the Anthropic stop_details field.
589
+ * Returns a human-readable string if the response was refused, or undefined otherwise.
590
+ */
591
+ function getRefusalDetails(data) {
592
+ if (data.stop_reason !== "refusal" || !data.stop_details) return;
593
+ const details = data.stop_details;
594
+ const parts = ["Content refused by Anthropic safety filters"];
595
+ if (details.category) parts.push(`category: ${details.category}`);
596
+ if (details.explanation) parts.push(`explanation: ${details.explanation}`);
597
+ return parts.join(" — ");
598
+ }
599
+ /**
600
+ * Coerce a token count that may arrive as a numeric string.
601
+ *
602
+ * Bedrock's InvokeModel responses have been observed serializing counts as strings, and
603
+ * plain `?? 0` would make the sums below concatenate rather than add ("15" + 0 -> "150").
604
+ */
605
+ function toTokenCount(value) {
606
+ const parsed = typeof value === "string" ? Number(value) : value;
607
+ return typeof parsed === "number" && Number.isFinite(parsed) ? parsed : 0;
608
+ }
609
+ function getTokenUsage(data, cached) {
610
+ if (data.usage) {
611
+ const cacheRead = toTokenCount(data.usage.cache_read_input_tokens);
612
+ const cacheCreation = toTokenCount(data.usage.cache_creation_input_tokens);
613
+ const allInputTokens = toTokenCount(data.usage.input_tokens) + cacheRead + cacheCreation;
614
+ const total_tokens = allInputTokens + toTokenCount(data.usage.output_tokens);
615
+ if (cached) return {
616
+ cached: total_tokens,
617
+ total: total_tokens
618
+ };
619
+ else {
620
+ const usage = {
621
+ total: total_tokens,
622
+ prompt: allInputTokens,
623
+ completion: toTokenCount(data.usage.output_tokens)
624
+ };
625
+ const thinkingTokens = data.usage.output_tokens_details?.thinking_tokens;
626
+ const hasCacheDetails = data.usage.cache_read_input_tokens != null || data.usage.cache_creation_input_tokens != null;
627
+ if (thinkingTokens != null || hasCacheDetails) usage.completionDetails = {
628
+ ...thinkingTokens != null && { reasoning: toTokenCount(thinkingTokens) },
629
+ ...hasCacheDetails && {
630
+ cacheReadInputTokens: cacheRead,
631
+ cacheCreationInputTokens: cacheCreation
632
+ }
633
+ };
634
+ return usage;
635
+ }
636
+ }
637
+ return {};
638
+ }
639
+ const WEB_FETCH_FIELDS = [
640
+ "allowed_callers",
641
+ "max_uses",
642
+ "allowed_domains",
643
+ "blocked_domains",
644
+ "citations",
645
+ "max_content_tokens",
646
+ "cache_control",
647
+ "defer_loading",
648
+ "strict",
649
+ "url_sources"
650
+ ];
651
+ const WEB_FETCH_20260309_FIELDS = [...WEB_FETCH_FIELDS, "use_cache"];
652
+ const WEB_FETCH_20260318_FIELDS = [...WEB_FETCH_20260309_FIELDS, "response_inclusion"];
653
+ const WEB_SEARCH_FIELDS = [
654
+ "allowed_callers",
655
+ "allowed_domains",
656
+ "blocked_domains",
657
+ "cache_control",
658
+ "defer_loading",
659
+ "max_uses",
660
+ "strict",
661
+ "user_location"
662
+ ];
663
+ const WEB_SEARCH_20260318_FIELDS = [...WEB_SEARCH_FIELDS, "response_inclusion"];
664
+ /**
665
+ * Anthropic server tools promptfoo rebuilds from config, keyed by tool `type`.
666
+ *
667
+ * A Map rather than an object literal so a config with a prototype-shaped `type`
668
+ * (`constructor`, `toString`, `__proto__`, …) misses cleanly and falls through to
669
+ * pass-through, instead of resolving to an Object.prototype member and throwing.
670
+ */
671
+ const SERVER_TOOL_SPECS = /* @__PURE__ */ new Map([
672
+ ["web_fetch_20250910", {
673
+ name: "web_fetch",
674
+ fields: WEB_FETCH_FIELDS,
675
+ betaFeature: "web-fetch-2025-09-10"
676
+ }],
677
+ ["web_fetch_20260209", {
678
+ name: "web_fetch",
679
+ fields: WEB_FETCH_FIELDS
680
+ }],
681
+ ["web_fetch_20260309", {
682
+ name: "web_fetch",
683
+ fields: WEB_FETCH_20260309_FIELDS
684
+ }],
685
+ ["web_fetch_20260318", {
686
+ name: "web_fetch",
687
+ fields: WEB_FETCH_20260318_FIELDS
688
+ }],
689
+ ["web_search_20250305", {
690
+ name: "web_search",
691
+ fields: WEB_SEARCH_FIELDS
692
+ }],
693
+ ["web_search_20260209", {
694
+ name: "web_search",
695
+ fields: WEB_SEARCH_FIELDS
696
+ }],
697
+ ["web_search_20260318", {
698
+ name: "web_search",
699
+ fields: WEB_SEARCH_20260318_FIELDS
700
+ }]
701
+ ]);
702
+ /**
703
+ * Processes tools configuration to handle web fetch and web search tools
704
+ */
705
+ function processAnthropicTools(tools = []) {
706
+ const processedTools = [];
707
+ const requiredBetaFeatures = [];
708
+ const addRequiredBetaFeature = (feature) => {
709
+ if (!requiredBetaFeatures.includes(feature)) requiredBetaFeatures.push(feature);
710
+ };
711
+ for (const tool of tools) {
712
+ const toolType = "type" in tool && typeof tool.type === "string" ? tool.type : void 0;
713
+ const spec = toolType === void 0 ? void 0 : SERVER_TOOL_SPECS.get(toolType);
714
+ if (spec) {
715
+ const source = tool;
716
+ const built = {
717
+ type: toolType,
718
+ name: spec.name
719
+ };
720
+ for (const field of spec.fields) {
721
+ const value = source[field];
722
+ if (value !== void 0) built[field] = value;
723
+ }
724
+ processedTools.push(built);
725
+ if (spec.betaFeature) addRequiredBetaFeature(spec.betaFeature);
726
+ } else processedTools.push(tool);
727
+ if ("strict" in tool && tool.strict === true) addRequiredBetaFeature("structured-outputs-2025-11-13");
728
+ }
729
+ return {
730
+ processedTools,
731
+ requiredBetaFeatures
732
+ };
733
+ }
734
+ function modelsWithCost(ids, cost) {
735
+ return ids.map((id) => ({
736
+ id,
737
+ cost: { ...cost }
738
+ }));
739
+ }
740
+ //#endregion
741
+ export { parseMessages as A, isForcedToolChoiceUnsupportedClaudeModel as C, normalizeAnthropicModelName as D, looksLikeClaudeModelId as E, resolveClaudeSamplingParams as M, normalizeClaudeThinkingConfig as O, isDisabledThinkingRejectedAtEffort as S, isThinkingOnByDefaultClaudeModel as T, isClaudeOpus5Model as _, calculateAnthropicCost as a, isClaudeSonnet5Model as b, claudeThinkingConsumesTokens as c, getRefusalDetails as d, getTokenUsage as f, isClaudeOpus55Model as g, isClaudeFableOrMythos5Model as h, applyClaudeRegionalPremium as i, processAnthropicTools as j, outputFromMessage as k, getClaudeModelWarningName as l, isBetweenToolsLowestThinkingClaudeModel as m, ANTHROPIC_SHORTHAND_MODEL_IDS as n, calculateCacheInputCost as o, isAlwaysOnAdaptiveThinkingClaudeModel as p, CLAUDE_REGIONAL_ENDPOINT_PREMIUM as r, clampMaxTokensForThinkingBudget as s, ANTHROPIC_MODELS as t, getFileReferences as u, isClaudeRegionalPremiumModel as v, isSamplingParamsDeprecatedClaudeModel as w, isClaudeThinkingEnabled as x, isClaudeSonnet55Model as y };
742
+
743
+ //# sourceMappingURL=util-LEbeiYw_.js.map