promptfoo 0.121.3 → 0.121.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (394) hide show
  1. package/README.md +1 -1
  2. package/dist/src/{ListApp-Du7YVwj5.js → ListApp-BRUsT43Y.js} +1 -1
  3. package/dist/src/{accounts-BPyfpSeU.cjs → accounts-BIFntVWB.cjs} +5 -5
  4. package/dist/src/{accounts-CFLK3mnD.js → accounts-CLJHCDDb.js} +6 -6
  5. package/dist/src/{accounts-B2XmGjty.js → accounts-CaLNYnf7.js} +5 -5
  6. package/dist/src/{accounts-Xatc0RYb.js → accounts-bnyHT7Ju.js} +5 -5
  7. package/dist/src/{agentic-utils-36epdqwB.js → agentic-utils-B5krlibj.js} +3 -3
  8. package/dist/src/{agentic-utils-DIYAAYE7.js → agentic-utils-Ba67xmgs.js} +3 -3
  9. package/dist/src/{agentic-utils-D8yXo5Lm.js → agentic-utils-BclbiXiq.js} +4 -4
  10. package/dist/src/{agentic-utils-DAVsChuB.cjs → agentic-utils-D2x0wGhB.cjs} +3 -3
  11. package/dist/src/{agents-CLQ-P15P.js → agents-BGqaTDnr.js} +5 -7
  12. package/dist/src/{agents-wg3ohknq.js → agents-BV9yFpXX.js} +6 -7
  13. package/dist/src/{agents-CgBniSlI.js → agents-BYdMl1UE.js} +5 -9
  14. package/dist/src/{agents-Bqgfdokm.js → agents-DhxWMCtH.js} +35 -14
  15. package/dist/src/{agents-BBWxKSM0.cjs → agents-DiWmQYH9.cjs} +5 -7
  16. package/dist/src/{agents-CAYbM7qD.cjs → agents-WULPVjbH.cjs} +34 -12
  17. package/dist/src/{agents-DSSTV4bv.js → agents-emVcx3yh.js} +35 -13
  18. package/dist/src/{agents-BBVJCIYr.js → agents-n6vPqV3i.js} +35 -13
  19. package/dist/src/{aimlapi-BwGC1TtS.js → aimlapi-BxqK9HF_.js} +8 -14
  20. package/dist/src/{aimlapi-Bv8Fmc-b.cjs → aimlapi-BzLjZI_m.cjs} +8 -15
  21. package/dist/src/{aimlapi-MgSLdvy7.js → aimlapi-DR4pgeiC.js} +7 -14
  22. package/dist/src/{aimlapi-DaC3qZ-o.js → aimlapi-uPGp0Zdo.js} +7 -16
  23. package/dist/src/app/app/tsconfig.app.tsbuildinfo +1 -0
  24. package/dist/src/app/assets/Report-vjzrbgce.js +1 -0
  25. package/dist/src/app/assets/index-B3NQ8HTd.js +385 -0
  26. package/dist/src/app/assets/index-Cli2yAXv.css +1 -0
  27. package/dist/src/app/assets/rolldown-runtime-COnpUsM8.js +1 -0
  28. package/dist/src/app/assets/scroll-timeline-D9IT_e8Z.js +1 -0
  29. package/dist/src/app/assets/sync-IjzpWrOE.js +4 -0
  30. package/dist/src/app/assets/vendor-charts-BNdH8TCw.js +36 -0
  31. package/dist/src/app/assets/vendor-markdown-Ch00wnNI.js +29 -0
  32. package/dist/src/app/assets/vendor-react-CVvmk1UB.js +9 -0
  33. package/dist/src/app/assets/vendor-utils-BnEYbx2Q.js +37 -0
  34. package/dist/src/app/index.html +32 -7
  35. package/dist/src/{audio-Bn44pQxv.js → audio-BvpTOArF.js} +4 -4
  36. package/dist/src/{audio-DVFjQ67_.cjs → audio-C0vDeS0j.cjs} +4 -4
  37. package/dist/src/{audio-DjU9GswO.js → audio-CScmnmEB.js} +4 -5
  38. package/dist/src/{audio-DDA5WHdx.js → audio-Da8U9IS5.js} +4 -4
  39. package/dist/src/{base-CKjwebIH.js → base-BOMaNEes.js} +3 -3
  40. package/dist/src/{base-CqzQ4K8j.js → base-BTux96b1.js} +3 -3
  41. package/dist/src/{base-BboXIF_0.cjs → base-Tw6uhH8K.cjs} +3 -3
  42. package/dist/src/{base-Cz2ZC_iA.js → base-dYsl2hmL.js} +3 -3
  43. package/dist/src/{blobs-C6j0bvFz.cjs → blobs-B95F_7vE.cjs} +3 -3
  44. package/dist/src/{blobs-DXTl6J3H.js → blobs-BW4U31ue.js} +3 -3
  45. package/dist/src/{blobs-BUWmKWzo.js → blobs-D_gg8nbm.js} +4 -4
  46. package/dist/src/{blobs-B1JriOyi.js → blobs-DjLby-uP.js} +4 -4
  47. package/dist/src/cache-BI5BY7ey.js +280 -0
  48. package/dist/src/cache-BRkhlH3k.cjs +3 -0
  49. package/dist/src/cache-BlC6aeJ0.js +3 -0
  50. package/dist/src/cache-Bzttsk0X.js +310 -0
  51. package/dist/src/cache-Cr-qWIbP.js +310 -0
  52. package/dist/src/cache-DGg-yTZG.cjs +376 -0
  53. package/dist/src/{chat-BEwdgGEg.js → chat-BLOdH60v.js} +63 -37
  54. package/dist/src/{chat-B0iaWhoh.js → chat-Cx_LkwvZ.js} +63 -37
  55. package/dist/src/{chat-DK1U-eZ-.js → chat-D9nudO9b.js} +5 -14
  56. package/dist/src/{chat-pxmiVpWe.js → chat-DChSH_Es.js} +63 -37
  57. package/dist/src/{chat-B-52XYI1.js → chat-DG2LkwLq.js} +3 -13
  58. package/dist/src/{chat-BtIKkLKx.cjs → chat-DH97tVV9.cjs} +3 -13
  59. package/dist/src/{chat-BE0qTA8e.js → chat-aMQZw6R7.js} +4 -16
  60. package/dist/src/{chat-CM8qWR3_.cjs → chat-vYqqv1gP.cjs} +64 -38
  61. package/dist/src/{chatkit-_8eJqKcD.js → chatkit-B8X34dQc.js} +4 -4
  62. package/dist/src/{chatkit-BYGQlHlV.js → chatkit-BXu42Qwt.js} +4 -4
  63. package/dist/src/{chatkit-a2D6mY6s.js → chatkit-CbMRoeYw.js} +4 -4
  64. package/dist/src/{chatkit-Cx174XI3.cjs → chatkit-D44VyUyB.cjs} +4 -4
  65. package/dist/src/{claude-agent-sdk-8ddRp1L2.cjs → claude-agent-sdk-BRq0bbIK.cjs} +23 -18
  66. package/dist/src/{claude-agent-sdk-CMjh4LFH.js → claude-agent-sdk-BjriSVRZ.js} +20 -15
  67. package/dist/src/{claude-agent-sdk-HgbFioFw.js → claude-agent-sdk-BzNZeZ0N.js} +20 -15
  68. package/dist/src/{claude-agent-sdk-Bq5EArsX.js → claude-agent-sdk-DYv_AJ8u.js} +21 -17
  69. package/dist/src/cloud-CoD5OacT.js +3 -0
  70. package/dist/src/{cloud-z8KZpUoa.js → cloud-Da0bofJd.js} +25 -13
  71. package/dist/src/{cloudflare-ai-Bbp26N0L.js → cloudflare-ai-CXC4b1EU.js} +5 -14
  72. package/dist/src/{cloudflare-ai-BGyXlpXJ.js → cloudflare-ai-CyBoIs1Q.js} +7 -15
  73. package/dist/src/{cloudflare-ai-DdKP9TKT.js → cloudflare-ai-DGOwgexC.js} +6 -17
  74. package/dist/src/{cloudflare-ai-C62x6MQG.cjs → cloudflare-ai-DJv5qnyb.cjs} +6 -15
  75. package/dist/src/{cloudflare-gateway-DXhtXDRb.js → cloudflare-gateway-1sAoOyft.js} +6 -16
  76. package/dist/src/{cloudflare-gateway-D-e9i1Sn.js → cloudflare-gateway-D-dnkzCF.js} +5 -18
  77. package/dist/src/{cloudflare-gateway-Dx36ftqF.cjs → cloudflare-gateway-DKVjkDav.cjs} +4 -15
  78. package/dist/src/{cloudflare-gateway-BwAaUgeW.js → cloudflare-gateway-TJkVrZlB.js} +4 -15
  79. package/dist/src/codex-app-server-CCLjqCh9.js +1915 -0
  80. package/dist/src/codex-app-server-CCe0TiDc.js +1915 -0
  81. package/dist/src/codex-app-server-CPW1LFwh.js +1916 -0
  82. package/dist/src/codex-app-server-VMRnjZ68.cjs +1920 -0
  83. package/dist/src/codex-sdk-1jm_qPHf.js +3 -0
  84. package/dist/src/codex-sdk-Bd8UbO9q.cjs +1172 -0
  85. package/dist/src/codex-sdk-BgEFQ70r.js +1164 -0
  86. package/dist/src/codex-sdk-Bzb_TqX9.js +1165 -0
  87. package/dist/src/codex-sdk-Danroptg.cjs +2 -0
  88. package/dist/src/codex-sdk-DfvDTN33.js +1165 -0
  89. package/dist/src/{cometapi-BDyV-NNm.js → cometapi-B5ImDlSm.js} +9 -15
  90. package/dist/src/{cometapi-C3hOlM7-.cjs → cometapi-BgAkuYCw.cjs} +9 -16
  91. package/dist/src/{cometapi-hhL4TAh3.js → cometapi-CC7hWxmX.js} +8 -15
  92. package/dist/src/{cometapi-sp7sJpBD.js → cometapi-CCbpHkuF.js} +8 -17
  93. package/dist/src/{completion-DoYy49ti.js → completion-2iuYVxwi.js} +8 -57
  94. package/dist/src/{completion-BCimtq-h.js → completion-CrD6MQ93.js} +8 -57
  95. package/dist/src/{completion-DlXUhj5c.cjs → completion-DtQ72Bm3.cjs} +7 -62
  96. package/dist/src/{completion-DCjv7RZ3.js → completion-Vq_ad618.js} +8 -57
  97. package/dist/src/{createHash-CTQmL3G2.js → createHash-4gFQpDDv.js} +3 -3
  98. package/dist/src/{createHash-Da8fMwqB.js → createHash-DPpsZgFF.js} +3 -3
  99. package/dist/src/{createHash-DmPQkvBh.js → createHash-Un4Q_huE.js} +3 -3
  100. package/dist/src/{createHash-BYwImsYv.cjs → createHash-VvBIc-AW.cjs} +4 -4
  101. package/dist/src/{docker-CxCkwMzc.js → docker--3qzPa-6.js} +6 -14
  102. package/dist/src/{docker-Cqj2-QVi.cjs → docker-D3AY-5F5.cjs} +7 -15
  103. package/dist/src/{docker-FeBni2dw.js → docker-DCsCDvwM.js} +7 -14
  104. package/dist/src/{docker-DpguQj-w.js → docker-Dorv4_Dg.js} +6 -16
  105. package/dist/src/embedding-BXhN5lCH.cjs +63 -0
  106. package/dist/src/embedding-ChS1ivFS.js +58 -0
  107. package/dist/src/embedding-DNRvZwRN.js +59 -0
  108. package/dist/src/embedding-D_bI4NDq.js +58 -0
  109. package/dist/src/entrypoint.js +69 -6
  110. package/dist/src/{errors-P6ll7XSJ.js → errors-DFHe4L-n.js} +1 -1
  111. package/dist/src/{esm-SUNIX1x3.js → esm-B6whoAcf.js} +15 -6
  112. package/dist/src/{esm-CKWP3u_P.js → esm-BRkfNsYs.js} +16 -7
  113. package/dist/src/{esm-7UIl0pPM.js → esm-BX8fwlAO.js} +27 -18
  114. package/dist/src/{esm-CipptfDu.cjs → esm-B_rGuPTo.cjs} +15 -6
  115. package/dist/src/eval-BQPLBJbw.js +3 -0
  116. package/dist/src/{eval-BTqTn7lb.js → eval-DJ_4A-tr.js} +50 -21
  117. package/dist/src/evalResult-BBJAHAtw.cjs +2 -0
  118. package/dist/src/evalResult-BBK58h2B.js +3 -0
  119. package/dist/src/{evalResult-DpARzUCb.cjs → evalResult-Cx-8OWkb.cjs} +29 -11
  120. package/dist/src/{evalResult-DUDShQrm.js → evalResult-D6P5I5il.js} +29 -11
  121. package/dist/src/{evalResult-BkIhRdTe.js → evalResult-pSvGWFMo.js} +29 -11
  122. package/dist/src/evalResult-spPqh1G_.js +2 -0
  123. package/dist/src/{evaluator-BcvOGaam.js → evaluator-D-UIbbYq.js} +3975 -2152
  124. package/dist/src/evaluator-DgLKaZk8.js +3 -0
  125. package/dist/src/{extractor-D_wd8jxt.js → extractor-BM3jRERL.js} +6 -6
  126. package/dist/src/{extractor-DG3sSfXE.cjs → extractor-Dxr2J_wK.cjs} +6 -6
  127. package/dist/src/{extractor-CAZ2G3Kh.js → extractor-DxyiFhPk.js} +6 -6
  128. package/dist/src/{extractor-C8XwivI9.js → extractor-YlZbUMsL.js} +6 -6
  129. package/dist/src/fetch-8viavNv8.js +3 -0
  130. package/dist/src/{fetch-DoVRJZhJ.js → fetch-B6ch2nU2.js} +199 -60
  131. package/dist/src/{fetch-CVAtKnI3.js → fetch-D9xxyC1p.js} +404 -252
  132. package/dist/src/{fetch-BnR9wSnm.cjs → fetch-NuqXW1Xb.cjs} +415 -263
  133. package/dist/src/{fetch-BiYv2BZc.js → fetch-Y5qX_kST.js} +222 -70
  134. package/dist/src/{fileExtensions-LcDYkU4v.js → fileExtensions-8CjoL7vB.js} +1 -1
  135. package/dist/src/{fileExtensions-DnqA1y9x.js → fileExtensions-BGh-W-HT.js} +1 -1
  136. package/dist/src/{fileExtensions-bYh77CN8.cjs → fileExtensions-D9h-8Wxg.cjs} +1 -1
  137. package/dist/src/{fileExtensions-Ds-foDzt.js → fileExtensions-DysCsxNG.js} +1 -1
  138. package/dist/src/{formatDuration-DgBVMN65.js → formatDuration-Ch4A7G3o.js} +1 -1
  139. package/dist/src/{genaiTracer-BfxrvSUb.cjs → genaiTracer-BokHC-MW.cjs} +7 -3
  140. package/dist/src/{genaiTracer-C1rxGO8Q.js → genaiTracer-C3ZPQU60.js} +6 -2
  141. package/dist/src/{genaiTracer-70Z8BIuV.js → genaiTracer-CFny3gOy.js} +6 -2
  142. package/dist/src/{genaiTracer-D3fD9dNV.js → genaiTracer-DxODqT9e.js} +6 -2
  143. package/dist/src/golang/wrapper.go +1 -1
  144. package/dist/src/{graders-DG7mhg-b.js → graders-BoUqsCEm.js} +7402 -5699
  145. package/dist/src/{graders-BElhu9ZY.cjs → graders-Bw1wk_21.cjs} +5220 -3437
  146. package/dist/src/graders-C84JI-m5.js +2 -0
  147. package/dist/src/graders-CBbd0K0Q.cjs +2 -0
  148. package/dist/src/graders-CbQqpHSN.js +3 -0
  149. package/dist/src/{graders-RjHF8VfG.js → graders-CgPn32yp.js} +7400 -5697
  150. package/dist/src/{graders-BXAJ0sbS.js → graders-CwrbifOo.js} +6136 -4433
  151. package/dist/src/graders-DS42d3ZG.js +2 -0
  152. package/dist/src/{image-6WQXK8m8.js → image-BeWaInPF.js} +4 -4
  153. package/dist/src/{image-PoF6DN3x.js → image-BmilRNqO.js} +8 -8
  154. package/dist/src/{image--F58eEIn.cjs → image-CxJoa3aW.cjs} +8 -8
  155. package/dist/src/{image-fza3zuKs.cjs → image-D10dNAav.cjs} +4 -4
  156. package/dist/src/{image-DO0RYnjH.js → image-Dr_3I3nK.js} +4 -5
  157. package/dist/src/{image-B8b6f36E.js → image-DsGRlkh7.js} +8 -8
  158. package/dist/src/{image-CoxZp9PZ.js → image-a_SGUobh.js} +8 -8
  159. package/dist/src/{image-xNbw5ph2.js → image-qjO6FWPs.js} +4 -4
  160. package/dist/src/index.cjs +4835 -2582
  161. package/dist/src/index.d.cts +2782 -31
  162. package/dist/src/index.d.ts +2783 -32
  163. package/dist/src/index.js +4817 -2564
  164. package/dist/src/{interactiveCheck-BnMYOjMu.js → interactiveCheck-CCICw2cy.js} +2 -2
  165. package/dist/src/{invariant-BtWWVVhl.js → invariant-B2Rf6avk.js} +1 -1
  166. package/dist/src/{invariant-vgHWClmd.js → invariant-DIYf9sP1.js} +1 -1
  167. package/dist/src/{knowledgeBase-Bi7CmDbx.js → knowledgeBase-BBETc5-S.js} +6 -8
  168. package/dist/src/{knowledgeBase-DqrLX8fy.cjs → knowledgeBase-C8qOo26M.cjs} +6 -8
  169. package/dist/src/{knowledgeBase-DFRXPZl_.js → knowledgeBase-CzAi2rUI.js} +7 -8
  170. package/dist/src/{knowledgeBase-Ce3ofVan.js → knowledgeBase-Dr3Kib7F.js} +6 -10
  171. package/dist/src/{litellm-CKiAxnoM.js → litellm-BLSiANhk.js} +6 -14
  172. package/dist/src/{litellm-CnHI69aj.cjs → litellm-CaUmV7Mk.cjs} +6 -15
  173. package/dist/src/{litellm-Tc294Jhj.js → litellm-DQGo_juI.js} +5 -14
  174. package/dist/src/{litellm-Bo2gQXpo.js → litellm-DRc4qWfc.js} +5 -16
  175. package/dist/src/{logger-BcJBzSSA.js → logger-BbY6ypFL.js} +41 -12
  176. package/dist/src/{logger-D5iKBpu_.cjs → logger-COuQb2xB.cjs} +51 -10
  177. package/dist/src/{logger-DO8_zM18.js → logger-Ct2S6Yx-.js} +40 -11
  178. package/dist/src/{logger-BnkjG2jt.js → logger-KD8JjCRJ.js} +41 -12
  179. package/dist/src/{luma-ray-C9q8rdQe.js → luma-ray-B-tNZzqW.js} +6 -10
  180. package/dist/src/{luma-ray-DP0QA9qn.js → luma-ray-CtS3OlGq.js} +6 -10
  181. package/dist/src/{luma-ray-0ehMPt5N.js → luma-ray-PJJgUjOc.js} +6 -11
  182. package/dist/src/{luma-ray-m9Ku2meV.cjs → luma-ray-if-Ml4R9.cjs} +6 -10
  183. package/dist/src/main.d.ts +1 -26
  184. package/dist/src/main.js +1188 -679
  185. package/dist/src/messages-B9dSjrNf.js +544 -0
  186. package/dist/src/messages-BnsVHUnm.cjs +558 -0
  187. package/dist/src/messages-CI69Lasb.js +543 -0
  188. package/dist/src/messages-CewuNcNS.js +543 -0
  189. package/dist/src/{meteor-DLZZ3osF.cjs → meteor-BBGcGeCa.cjs} +1 -1
  190. package/dist/src/{meteor-DUiCJRC-.js → meteor-BKTM-7KS.js} +1 -1
  191. package/dist/src/{meteor-44VjEACX.js → meteor-CeGo0Lu2.js} +2 -2
  192. package/dist/src/{meteor-D-SotUw9.js → meteor-Wc_aUVvu.js} +2 -2
  193. package/dist/src/{modelslab-B5J-ZM5c.js → modelslab-BCLOtfek.js} +8 -10
  194. package/dist/src/{modelslab-IQbNg-r7.cjs → modelslab-BkapYJhh.cjs} +7 -10
  195. package/dist/src/{modelslab-BTOT8FUO.js → modelslab-D73OnKSx.js} +7 -10
  196. package/dist/src/{modelslab-BI458moT.js → modelslab-zpz9JcK0.js} +7 -12
  197. package/dist/src/{nova-reel-BZ9y-Y5s.js → nova-reel-B8F_TK5w.js} +7 -10
  198. package/dist/src/{nova-reel-Xw1SXLpg.js → nova-reel-Bx0NFV2f.js} +6 -10
  199. package/dist/src/{nova-reel-DEeQlnOJ.js → nova-reel-CNGJTLtG.js} +6 -12
  200. package/dist/src/{nova-reel-CE5etkv9.cjs → nova-reel-DkT7tnoB.cjs} +6 -10
  201. package/dist/src/{nova-sonic-Ogqf-csn.js → nova-sonic-BaXRN1cr.js} +5 -7
  202. package/dist/src/{nova-sonic-DXTLpi-r.js → nova-sonic-BeTRaFOh.js} +4 -7
  203. package/dist/src/{nova-sonic-DWswpN1E.js → nova-sonic-CL7Zqv0G.js} +4 -9
  204. package/dist/src/{nova-sonic-N0yCm0vb.cjs → nova-sonic-YT426juD.cjs} +4 -7
  205. package/dist/src/{openai-BcB5KlTk.js → openai-BMHD2Huo.js} +6 -3
  206. package/dist/src/{openai-BMcwgD5C.js → openai-BT-JvDse.js} +6 -3
  207. package/dist/src/{openai-CoxGAQwn.cjs → openai-Cy1XLs0c.cjs} +6 -3
  208. package/dist/src/{openai-D6wITiVn.js → openai-D4fxGvRx.js} +6 -3
  209. package/dist/src/openclaw-Bq7RVR3k.js +1200 -0
  210. package/dist/src/openclaw-DA8U4DsD.js +1201 -0
  211. package/dist/src/openclaw-DObVgpjC.js +1200 -0
  212. package/dist/src/openclaw-DUBZP3GL.cjs +1206 -0
  213. package/dist/src/{opencode-sdk-CHCs7dEb.js → opencode-sdk-BB40Wir1.js} +6 -8
  214. package/dist/src/{opencode-sdk-DDxj4QqH.js → opencode-sdk-BM1UAIv1.js} +6 -8
  215. package/dist/src/{opencode-sdk-WWJhnbKr.cjs → opencode-sdk-CeqiOcOU.cjs} +7 -9
  216. package/dist/src/{opencode-sdk-C71Z0ehR.js → opencode-sdk-ChdK7F7z.js} +6 -9
  217. package/dist/src/{otlpReceiver-CZL48YfC.js → otlpReceiver-C6thJRXi.js} +154 -98
  218. package/dist/src/{otlpReceiver-C9KlUtxh.js → otlpReceiver-CcdIikOu.js} +154 -98
  219. package/dist/src/{otlpReceiver-DHKqJlsz.cjs → otlpReceiver-DNSQj6bf.cjs} +154 -98
  220. package/dist/src/{otlpReceiver-CavGAA6k.js → otlpReceiver-UYMQx3sy.js} +154 -98
  221. package/dist/src/{providerRegistry-BkzVH5Ba.js → providerRegistry-1gB5vtzQ.js} +2 -2
  222. package/dist/src/{providerRegistry-BTDgfV5h.cjs → providerRegistry-BESeALrr.cjs} +2 -2
  223. package/dist/src/{providerRegistry-CUWki5mQ.js → providerRegistry-DoACwqhD.js} +2 -2
  224. package/dist/src/{providerRegistry-B9lh-_tx.js → providerRegistry-PMsleEzs.js} +2 -2
  225. package/dist/src/providers-BuyzKt7C.js +2 -0
  226. package/dist/src/providers-C7lNVBjX.cjs +3 -0
  227. package/dist/src/providers-CCE2COJi2.js +2 -0
  228. package/dist/src/{providers-Cn73d5sr.js → providers-CJh7iriU.js} +17180 -16823
  229. package/dist/src/providers-Ctcc592x.js +3 -0
  230. package/dist/src/{providers-DvddrgxL.js → providers-DRrerKra.js} +1052 -695
  231. package/dist/src/{providers-Ch6Mr0gn.js → providers-DT-GtF2t.js} +16716 -16359
  232. package/dist/src/{providers-CScd1wN6.cjs → providers-eDShy16E.cjs} +19893 -19506
  233. package/dist/src/python/persistent_wrapper.py +0 -5
  234. package/dist/src/{pythonUtils-Cpo0Ez1p.js → pythonUtils-C4tltmIn.js} +4 -4
  235. package/dist/src/{pythonUtils-dAVigVK-.cjs → pythonUtils-CoLaCwNY.cjs} +4 -4
  236. package/dist/src/{pythonUtils-Bzwbgpbg.js → pythonUtils-DMO68Jg7.js} +3 -3
  237. package/dist/src/{pythonUtils-wIqk7zAf.js → pythonUtils-DNqbnRdx.js} +3 -3
  238. package/dist/src/{quiverai-BeofbLVc.js → quiverai-BSS9a7wV.js} +4 -4
  239. package/dist/src/{quiverai-DVSEqJiq.js → quiverai-Bk1KrvL6.js} +4 -4
  240. package/dist/src/{quiverai-CcUhPIBg.cjs → quiverai-Bpx6MZ7T.cjs} +4 -4
  241. package/dist/src/{quiverai-CCQn73lq.js → quiverai-CPKhWgaT.js} +4 -5
  242. package/dist/src/render-7uNJ2V14.js +135 -0
  243. package/dist/src/render-DlscvAUJ.js +135 -0
  244. package/dist/src/render-eui5p5mL.js +136 -0
  245. package/dist/src/{render-BHl6QVq9.js → render-nj-UaPdn.js} +2 -3
  246. package/dist/src/render-tG6ir9_g.cjs +165 -0
  247. package/dist/src/{responses-CgNyTPsY.js → responses-1ztiVYsx.js} +56 -17
  248. package/dist/src/{responses-BKP_WYis.js → responses-B8haB-mD.js} +56 -17
  249. package/dist/src/{responses-CQb1Tj69.js → responses-BiaBguAu.js} +56 -17
  250. package/dist/src/{responses-mo0KQDbu.cjs → responses-CF-ayauu.cjs} +56 -17
  251. package/dist/src/rubyUtils-4hjGxvju.js +3 -0
  252. package/dist/src/{rubyUtils-DECSbsfY.js → rubyUtils-BI0p46eZ.js} +3 -3
  253. package/dist/src/{rubyUtils-CiVfln3g.js → rubyUtils-CIQFnVz4.js} +3 -3
  254. package/dist/src/rubyUtils-CO-tuszQ.cjs +2 -0
  255. package/dist/src/{rubyUtils-PgU-gHmx.js → rubyUtils-DGnoCYL2.js} +4 -4
  256. package/dist/src/{rubyUtils-CGeUtCfW.cjs → rubyUtils-DoifqkiA.cjs} +5 -4
  257. package/dist/src/{sagemaker-CqeASYE5.js → sagemaker-BDLeW29y.js} +14 -18
  258. package/dist/src/{sagemaker-MUbD5V3v.js → sagemaker-C5T60MKf.js} +14 -19
  259. package/dist/src/{sagemaker-CVv8W7so.js → sagemaker-ClS_NB07.js} +14 -18
  260. package/dist/src/{sagemaker-jiw1wQa-.cjs → sagemaker-ljtY12VM.cjs} +14 -18
  261. package/dist/src/{scanner-DVDeUz1r.js → scanner-nOCWNIXa.js} +130 -35
  262. package/dist/src/server/golang/wrapper.go +1 -1
  263. package/dist/src/server/index.js +4829 -2529
  264. package/dist/src/server/python/persistent_wrapper.py +0 -5
  265. package/dist/src/{server-BtoCXeXI.cjs → server-BEECpeGG.cjs} +140 -6
  266. package/dist/src/{server-DZ9MtCn0.js → server-ByiF3qlg.js} +129 -9
  267. package/dist/src/{server-Cns05F1j.js → server-ByxbqAcQ.js} +128 -8
  268. package/dist/src/server-C0XKRNB_.cjs +2 -0
  269. package/dist/src/server-C_15p79-.js +3 -0
  270. package/dist/src/{server-CP9qKM40.js → server-gyd6d4Hc.js} +126 -7
  271. package/dist/src/{signal-C3ZTsUgi.js → signal-DTtUuU3l.js} +3 -3
  272. package/dist/src/{slack-DCEV-vWP.js → slack-4zZX1OKP.js} +2 -2
  273. package/dist/src/{slack-94iG3T0s.cjs → slack-BLlsDpfG.cjs} +2 -2
  274. package/dist/src/{slack-BR0HtO3K.js → slack-BPYLQLgb.js} +2 -2
  275. package/dist/src/{slack-2sdpGzbt.js → slack-Bamy_7te.js} +2 -2
  276. package/dist/src/{store-CLyU7AtI.cjs → store-2K0kDi80.cjs} +3 -3
  277. package/dist/src/{store-VB0GP46K.js → store-2OXm_eBY.js} +3 -3
  278. package/dist/src/store-BELqNwvz.js +3 -0
  279. package/dist/src/{store-Cj258DgL.js → store-BPkzEyFM.js} +3 -3
  280. package/dist/src/{store-P8OKm19S.js → store-CPh25336.js} +3 -3
  281. package/dist/src/store-uQZ4AjPe.cjs +2 -0
  282. package/dist/src/{tables-BEIFz2tM.js → tables-BMSOS2Gg.js} +3 -3
  283. package/dist/src/{tables-BdZQEpRz.cjs → tables-CXbaZ9y1.cjs} +3 -3
  284. package/dist/src/{tables-DmzvLbeZ.js → tables-NlvH23ky.js} +3 -3
  285. package/dist/src/{tables-kC7R5kiK.js → tables-WgdUZ8Ck.js} +3 -3
  286. package/dist/src/{telemetry-DPXLd7UE.js → telemetry--iqaGyaS.js} +5 -4
  287. package/dist/src/{telemetry-re627Lre.cjs → telemetry-CEQxGnMZ.cjs} +8 -7
  288. package/dist/src/{telemetry-BugWqKiu.js → telemetry-CgdVGV8N.js} +5 -4
  289. package/dist/src/{telemetry-BnH5VJAU.js → telemetry-DWdGHvEf.js} +5 -4
  290. package/dist/src/telemetry-DjNoC_n3.cjs +2 -0
  291. package/dist/src/telemetry-ZdPZc0fm.js +3 -0
  292. package/dist/src/{text-CW1cyrwj.cjs → text-BiNME7QG.cjs} +1 -1
  293. package/dist/src/{text-Db-Wt2u2.js → text-D4lz-Jg_.js} +1 -1
  294. package/dist/src/{text-TIv0QYnd.js → text-DDQP0tuQ.js} +1 -1
  295. package/dist/src/{text-B_UCRPp2.js → text-NWvfMfkF.js} +1 -1
  296. package/dist/src/{tokenUsageUtils-DflFMjS0.js → tokenUsageUtils-2wIvAhB3.js} +7 -3
  297. package/dist/src/{tokenUsageUtils-BDGe-iyI.js → tokenUsageUtils-4c780gFd.js} +7 -3
  298. package/dist/src/{tokenUsageUtils-NYT-WKS6.js → tokenUsageUtils-BjVkdk18.js} +7 -3
  299. package/dist/src/{tokenUsageUtils-bVa1ga6f.cjs → tokenUsageUtils-C9odhsbW.cjs} +7 -3
  300. package/dist/src/{transcription-CaMivnjG.js → transcription-84t4ALo2.js} +7 -11
  301. package/dist/src/{transcription-Hb3VnC4M.js → transcription-Bm2emLmJ.js} +8 -11
  302. package/dist/src/{transcription-BvtsrzRG.cjs → transcription-CZ4LG5hQ.cjs} +9 -13
  303. package/dist/src/{transcription-DOMMTu01.js → transcription-D7Q0vJsh.js} +7 -13
  304. package/dist/src/{transform-DrleutM3.js → transform-B-b6Cq-q.js} +8 -6
  305. package/dist/src/transform-BQt0BeAW.js +3 -0
  306. package/dist/src/transform-Bq5oqC0s.cjs +2 -0
  307. package/dist/src/{transform-ZrG2dvlo.cjs → transform-C9izGX54.cjs} +5 -5
  308. package/dist/src/{transform-BzK09Q_9.js → transform-CwbAZ84V.js} +5 -5
  309. package/dist/src/{transform-0BwoBsvO.cjs → transform-Dg4LcO1Y.cjs} +18 -10
  310. package/dist/src/{transform-B2-jIv68.js → transform-DtooZqYY.js} +8 -6
  311. package/dist/src/{transform-ljLYHEPh.js → transform-DzCF-wqV.js} +5 -5
  312. package/dist/src/{transform-DyDAwEpE.js → transform-_DpNB4qp.js} +9 -7
  313. package/dist/src/{transform-BqPkNPYm.js → transform-eGiUAv86.js} +5 -5
  314. package/dist/src/{transformersAvailability-DKoRtQLy.cjs → transformersAvailability-B22swDxr.cjs} +1 -1
  315. package/dist/src/{transformersAvailability-BGkzavwb.js → transformersAvailability-lvCCvuPT.js} +1 -1
  316. package/dist/src/{transformersAvailability-D6c6ROpT.js → transformersAvailability-rJGPccjr.js} +1 -1
  317. package/dist/src/{types-Cd3ygw8W.js → types-BDjGOq4E.js} +354 -24
  318. package/dist/src/{types-CIhFeUC4.js → types-BVH9hjgW.js} +364 -23
  319. package/dist/src/{types-D8cGDZbL.cjs → types-CgG2rKiW.cjs} +534 -167
  320. package/dist/src/{types-q8GXGF65.js → types-DNRZVOue.js} +498 -167
  321. package/dist/src/{util-BLvy9qfE.js → util-3pBZZb_H.js} +151 -149
  322. package/dist/src/{util-CFj4YKIn.cjs → util-A5_ZsQUn.cjs} +66 -44
  323. package/dist/src/{util-BtoGs5Cb.js → util-B9CNhyac.js} +66 -44
  324. package/dist/src/{util-Bm3E9jpK.js → util-BQOCAHQC.js} +692 -690
  325. package/dist/src/{util-vNmDL5DT.js → util-BVXcTwXu.js} +138 -36
  326. package/dist/src/{util-CgDCK4KI.js → util-BlFVL0UF.js} +66 -44
  327. package/dist/src/{util-DM2rTn_6.js → util-C-kmRosx.js} +66 -44
  328. package/dist/src/{util-DbVG-yZU.js → util-DFPeFkiV.js} +138 -36
  329. package/dist/src/{util-DMFeUvLz.js → util-DN0-b81k.js} +138 -36
  330. package/dist/src/{util--9u9UVCt.cjs → util-Dpmm_dAI.cjs} +143 -35
  331. package/dist/src/{util-CMMkIxfU.js → util-Dub0f_ej.js} +693 -691
  332. package/dist/src/{util-CuLo2pMR.cjs → util-DvpHnLt0.cjs} +714 -719
  333. package/dist/src/{utils-DOjD4dTC.js → utils-BUMN8orw.js} +6 -4
  334. package/dist/src/{utils-DKw8mrgr.cjs → utils-DkVeShIB.cjs} +6 -4
  335. package/dist/src/{utils-DEuL4VNB.js → utils-kt7lv30R.js} +6 -4
  336. package/dist/src/{utils-CFxO9KGo.js → utils-o8S5huU2.js} +6 -4
  337. package/dist/src/version-0frU0UTr.js +16 -0
  338. package/dist/src/version-CbpiUINz.js +17 -0
  339. package/dist/src/version-CbuBKu2U.js +16 -0
  340. package/dist/src/version-D9zu9FWB.cjs +27 -0
  341. package/dist/tsconfig.tsbuildinfo +1 -1
  342. package/package.json +57 -46
  343. package/dist/src/app/assets/index-B6l9CVVb.js +0 -439
  344. package/dist/src/app/assets/index-DyZ0Ep37.css +0 -1
  345. package/dist/src/app/assets/scroll-timeline-BdJZVXlz.js +0 -1
  346. package/dist/src/app/assets/sync-CStkzc6u.js +0 -4
  347. package/dist/src/app/assets/vendor-charts-BnDWwBlI.js +0 -36
  348. package/dist/src/app/assets/vendor-markdown-Bz7N-ca6.js +0 -29
  349. package/dist/src/app/assets/vendor-react-AtKqiNEf.js +0 -4
  350. package/dist/src/app/assets/vendor-syntax-D06x6TQF.js +0 -2
  351. package/dist/src/app/assets/vendor-utils-BvMHZmO7.js +0 -37
  352. package/dist/src/cache-C5yFZ4gC.cjs +0 -816
  353. package/dist/src/cache-CaT5tPgo.js +0 -756
  354. package/dist/src/cache-CyCanoMu.js +0 -6
  355. package/dist/src/cache-DSqR6ezl.js +0 -726
  356. package/dist/src/cache-Df_QFDNu.cjs +0 -5
  357. package/dist/src/cache-HP0NP4k3.js +0 -756
  358. package/dist/src/cloud-DE3t1-ZI.js +0 -4
  359. package/dist/src/codex-sdk-BQEw16R_.js +0 -834
  360. package/dist/src/codex-sdk-C_07GuVS.js +0 -834
  361. package/dist/src/codex-sdk-DE5G18dx.js +0 -835
  362. package/dist/src/codex-sdk-ZLKfDjqP.cjs +0 -838
  363. package/dist/src/eval-7aEqoMs3.js +0 -15
  364. package/dist/src/evalResult-CYNHkk5A.js +0 -12
  365. package/dist/src/evalResult-CuvJeNiM.js +0 -10
  366. package/dist/src/evalResult-tGdilrWt.cjs +0 -10
  367. package/dist/src/evaluator-BBUqRhz1.js +0 -36
  368. package/dist/src/fetch-UWU706qb.js +0 -5
  369. package/dist/src/graders-BxfEguVY.js +0 -32
  370. package/dist/src/graders-CzVMbEnv.js +0 -34
  371. package/dist/src/graders-DjCXfj0l.cjs +0 -32
  372. package/dist/src/graders-kHzIWOKu.js +0 -32
  373. package/dist/src/messages-DJNo37Ko.js +0 -246
  374. package/dist/src/messages-Dy9QecMs.js +0 -245
  375. package/dist/src/messages-HJsyEh4o.cjs +0 -257
  376. package/dist/src/messages-biC_ex-p.js +0 -245
  377. package/dist/src/openclaw-0Sv7AK3O.js +0 -580
  378. package/dist/src/openclaw-CXxbKgDH.cjs +0 -586
  379. package/dist/src/openclaw-D1FSCps-.js +0 -580
  380. package/dist/src/openclaw-D2ENvu7a.js +0 -582
  381. package/dist/src/providers-BSLEaIQG.js +0 -32
  382. package/dist/src/providers-D-FnDg8k.cjs +0 -31
  383. package/dist/src/providers-DEYiFVAo.js +0 -30
  384. package/dist/src/providers-sS2WI8YD.js +0 -30
  385. package/dist/src/rubyUtils-B1HXG4ej.cjs +0 -4
  386. package/dist/src/rubyUtils-Rt6pKA96.js +0 -5
  387. package/dist/src/server-B0Xh1Gx-.js +0 -7
  388. package/dist/src/server-DJTKu9IR.cjs +0 -5
  389. package/dist/src/store-C5u6MgC8.js +0 -6
  390. package/dist/src/store-CNHk-De4.cjs +0 -5
  391. package/dist/src/telemetry-Yig0Tino.js +0 -7
  392. package/dist/src/telemetry-p8Pwqm1i.cjs +0 -5
  393. package/dist/src/transform-ChNIpHz7.js +0 -6
  394. package/dist/src/transform-PtQ6rAE3.cjs +0 -5
@@ -1,7 +1,14 @@
1
- import { m as calculateCost } from "./fetch-BiYv2BZc.js";
2
- import { C as parseDataUrl } from "./transform-B2-jIv68.js";
1
+ import { g as calculateCost } from "./fetch-Y5qX_kST.js";
2
+ import { w as parseDataUrl } from "./transform-DtooZqYY.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-DbVG-yZU.js.map
395
+ //# sourceMappingURL=util-DFPeFkiV.js.map
@@ -1,8 +1,15 @@
1
1
  #!/usr/bin/env node
2
- import { p as calculateCost } from "./fetch-DoVRJZhJ.js";
3
- import { C as parseDataUrl } from "./transform-DrleutM3.js";
2
+ import { h as calculateCost } from "./fetch-B6ch2nU2.js";
3
+ import { w as parseDataUrl } from "./transform-B-b6Cq-q.js";
4
4
  //#region src/providers/anthropic/util.ts
5
5
  const ANTHROPIC_MODELS = [
6
+ ...["claude-mythos-preview"].map((model) => ({
7
+ id: model,
8
+ cost: {
9
+ input: 25 / 1e6,
10
+ output: 125 / 1e6
11
+ }
12
+ })),
6
13
  ...["claude-sonnet-4-6", "claude-sonnet-4-6-latest"].map((model) => ({
7
14
  id: model,
8
15
  cost: {
@@ -17,7 +24,11 @@ const ANTHROPIC_MODELS = [
17
24
  output: 25 / 1e6
18
25
  }
19
26
  })),
20
- ...["claude-opus-4-5-20251101", "claude-opus-4-5-latest"].map((model) => ({
27
+ ...[
28
+ "claude-opus-4-5",
29
+ "claude-opus-4-5-20251101",
30
+ "claude-opus-4-5-latest"
31
+ ].map((model) => ({
21
32
  id: model,
22
33
  cost: {
23
34
  input: 5 / 1e6,
@@ -25,6 +36,7 @@ const ANTHROPIC_MODELS = [
25
36
  }
26
37
  })),
27
38
  ...[
39
+ "claude-opus-4-1",
28
40
  "claude-opus-4-1-20250805",
29
41
  "claude-opus-4-20250514",
30
42
  "claude-opus-4-0",
@@ -37,6 +49,7 @@ const ANTHROPIC_MODELS = [
37
49
  }
38
50
  })),
39
51
  ...[
52
+ "claude-sonnet-4-5",
40
53
  "claude-sonnet-4-5-20250929",
41
54
  "claude-sonnet-4-5-latest",
42
55
  "claude-sonnet-4-20250514",
@@ -49,7 +62,11 @@ const ANTHROPIC_MODELS = [
49
62
  output: 15 / 1e6
50
63
  }
51
64
  })),
52
- ...["claude-haiku-4-5-20251001", "claude-haiku-4-5-latest"].map((model) => ({
65
+ ...[
66
+ "claude-haiku-4-5",
67
+ "claude-haiku-4-5-20251001",
68
+ "claude-haiku-4-5-latest"
69
+ ].map((model) => ({
53
70
  id: model,
54
71
  cost: {
55
72
  input: 1 / 1e6,
@@ -210,31 +227,72 @@ function parseMessages(messages) {
210
227
  thinking
211
228
  };
212
229
  }
213
- function calculateAnthropicCost(modelName, config, promptTokens, completionTokens) {
230
+ /**
231
+ * Compute input cost with Anthropic cache pricing applied.
232
+ * Anthropic docs: input_tokens is the non-cached portion; cache_read and cache_creation are additive.
233
+ * Cache reads cost 10% of base rate (90% discount), cache writes cost 125% of base rate (25% surcharge).
234
+ */
235
+ function calculateCacheInputCost(baseInputRate, uncachedInputTokens, cacheRead, cacheCreation) {
236
+ return uncachedInputTokens * baseInputRate + cacheRead * baseInputRate * .1 + cacheCreation * baseInputRate * 1.25;
237
+ }
238
+ function calculateAnthropicCost(modelName, config, promptTokens, completionTokens, cacheReadTokens, cacheCreationTokens) {
239
+ if (config.cost != null) return calculateCost(modelName, config, promptTokens, completionTokens, ANTHROPIC_MODELS);
240
+ if (!Number.isFinite(promptTokens) || !Number.isFinite(completionTokens) || typeof promptTokens === "undefined" || typeof completionTokens === "undefined") return calculateCost(modelName, config, promptTokens, completionTokens, ANTHROPIC_MODELS);
241
+ const cacheRead = cacheReadTokens ?? 0;
242
+ const cacheCreation = cacheCreationTokens ?? 0;
243
+ const effectiveInputTokens = promptTokens + cacheRead + cacheCreation;
214
244
  if ([
245
+ "claude-sonnet-4-5",
215
246
  "claude-sonnet-4-5-20250929",
216
247
  "claude-sonnet-4-5-latest",
217
248
  "claude-sonnet-4-6",
218
249
  "claude-sonnet-4-6-latest"
219
- ].includes(modelName) && Number.isFinite(promptTokens) && Number.isFinite(completionTokens) && typeof promptTokens !== "undefined" && typeof completionTokens !== "undefined") {
220
- const inputCost = config.cost ?? (promptTokens > 2e5 ? 6 / 1e6 : 3 / 1e6);
221
- const outputCost = config.cost ?? (promptTokens > 2e5 ? 22.5 / 1e6 : 15 / 1e6);
222
- return inputCost * promptTokens + outputCost * completionTokens;
250
+ ].includes(modelName)) {
251
+ const isLongContext = effectiveInputTokens > 2e5;
252
+ const baseInputRate = isLongContext ? 6 / 1e6 : 3 / 1e6;
253
+ const outputRate = isLongContext ? 22.5 / 1e6 : 15 / 1e6;
254
+ return calculateCacheInputCost(baseInputRate, promptTokens, cacheRead, cacheCreation) + completionTokens * outputRate;
255
+ }
256
+ if (cacheRead || cacheCreation) {
257
+ const modelInfo = ANTHROPIC_MODELS.find((m) => m.id === modelName);
258
+ if (modelInfo) return calculateCacheInputCost(modelInfo.cost.input, promptTokens, cacheRead, cacheCreation) + completionTokens * modelInfo.cost.output;
223
259
  }
224
260
  return calculateCost(modelName, config, promptTokens, completionTokens, ANTHROPIC_MODELS);
225
261
  }
262
+ /**
263
+ * Extract refusal details from the Anthropic stop_details field.
264
+ * Returns a human-readable string if the response was refused, or undefined otherwise.
265
+ */
266
+ function getRefusalDetails(data) {
267
+ if (data.stop_reason !== "refusal" || !data.stop_details) return;
268
+ const details = data.stop_details;
269
+ const parts = ["Content refused by Anthropic safety filters"];
270
+ if (details.category) parts.push(`category: ${details.category}`);
271
+ if (details.explanation) parts.push(`explanation: ${details.explanation}`);
272
+ return parts.join(" — ");
273
+ }
226
274
  function getTokenUsage(data, cached) {
227
275
  if (data.usage) {
228
- const total_tokens = data.usage.input_tokens + data.usage.output_tokens;
276
+ const cacheRead = data.usage.cache_read_input_tokens ?? 0;
277
+ const cacheCreation = data.usage.cache_creation_input_tokens ?? 0;
278
+ const allInputTokens = (data.usage.input_tokens ?? 0) + cacheRead + cacheCreation;
279
+ const total_tokens = allInputTokens + (data.usage.output_tokens ?? 0);
229
280
  if (cached) return {
230
281
  cached: total_tokens,
231
282
  total: total_tokens
232
283
  };
233
- else return {
234
- total: total_tokens,
235
- prompt: data.usage.input_tokens || 0,
236
- completion: data.usage.output_tokens || 0
237
- };
284
+ else {
285
+ const usage = {
286
+ total: total_tokens,
287
+ prompt: allInputTokens,
288
+ completion: data.usage.output_tokens ?? 0
289
+ };
290
+ if (data.usage.cache_read_input_tokens != null || data.usage.cache_creation_input_tokens != null) usage.completionDetails = {
291
+ cacheReadInputTokens: cacheRead,
292
+ cacheCreationInputTokens: cacheCreation
293
+ };
294
+ return usage;
295
+ }
238
296
  }
239
297
  return {};
240
298
  }
@@ -244,16 +302,20 @@ function getTokenUsage(data, cached) {
244
302
  function processAnthropicTools(tools = []) {
245
303
  const processedTools = [];
246
304
  const requiredBetaFeatures = [];
247
- for (const tool of tools) if ("type" in tool) if (tool.type === "web_fetch_20250910") {
248
- processedTools.push(transformWebFetchTool(tool));
249
- if (!requiredBetaFeatures.includes("web-fetch-2025-09-10")) requiredBetaFeatures.push("web-fetch-2025-09-10");
250
- } else if (tool.type === "web_search_20250305") processedTools.push(transformWebSearchTool(tool));
251
- else processedTools.push(tool);
252
- else {
253
- processedTools.push(tool);
254
- if ("strict" in tool && tool.strict === true) {
255
- if (!requiredBetaFeatures.includes("structured-outputs-2025-11-13")) requiredBetaFeatures.push("structured-outputs-2025-11-13");
256
- }
305
+ const addRequiredBetaFeature = (feature) => {
306
+ if (!requiredBetaFeatures.includes(feature)) requiredBetaFeatures.push(feature);
307
+ };
308
+ for (const tool of tools) {
309
+ if ("type" in tool) if (tool.type === "web_fetch_20250910") {
310
+ processedTools.push(transformWebFetchTool(tool));
311
+ addRequiredBetaFeature("web-fetch-2025-09-10");
312
+ } else if (tool.type === "web_fetch_20260209") processedTools.push(transformWebFetchTool20260209(tool));
313
+ else if (tool.type === "web_fetch_20260309") processedTools.push(transformWebFetchToolV2(tool));
314
+ else if (tool.type === "web_search_20250305") processedTools.push(transformWebSearchTool(tool));
315
+ else if (tool.type === "web_search_20260209") processedTools.push(transformWebSearchTool20260209(tool));
316
+ else processedTools.push(tool);
317
+ else processedTools.push(tool);
318
+ if ("strict" in tool && tool.strict === true) addRequiredBetaFeature("structured-outputs-2025-11-13");
257
319
  }
258
320
  return {
259
321
  processedTools,
@@ -261,21 +323,54 @@ function processAnthropicTools(tools = []) {
261
323
  };
262
324
  }
263
325
  /**
264
- * Transform web fetch tool config to Anthropic beta tool format
326
+ * Apply shared web fetch tool fields from config onto the SDK tool object.
265
327
  */
328
+ function applyWebFetchFields(tool, config) {
329
+ if (config.allowed_callers !== void 0) tool.allowed_callers = config.allowed_callers;
330
+ if (config.max_uses !== void 0) tool.max_uses = config.max_uses;
331
+ if (config.allowed_domains !== void 0) tool.allowed_domains = config.allowed_domains;
332
+ if (config.blocked_domains !== void 0) tool.blocked_domains = config.blocked_domains;
333
+ if (config.citations !== void 0) tool.citations = config.citations;
334
+ if (config.max_content_tokens !== void 0) tool.max_content_tokens = config.max_content_tokens;
335
+ if (config.cache_control !== void 0) tool.cache_control = config.cache_control;
336
+ if (config.defer_loading !== void 0) tool.defer_loading = config.defer_loading;
337
+ if (config.strict !== void 0) tool.strict = config.strict;
338
+ }
266
339
  function transformWebFetchTool(config) {
267
340
  const tool = {
268
341
  type: "web_fetch_20250910",
269
342
  name: "web_fetch"
270
343
  };
271
- if (config.max_uses !== void 0) tool.max_uses = config.max_uses;
272
- if (config.allowed_domains) tool.allowed_domains = config.allowed_domains;
273
- if (config.blocked_domains) tool.blocked_domains = config.blocked_domains;
274
- if (config.citations) tool.citations = config.citations;
275
- if (config.max_content_tokens !== void 0) tool.max_content_tokens = config.max_content_tokens;
276
- if (config.cache_control) tool.cache_control = config.cache_control;
344
+ applyWebFetchFields(tool, config);
345
+ return tool;
346
+ }
347
+ function transformWebFetchTool20260209(config) {
348
+ const tool = {
349
+ type: "web_fetch_20260209",
350
+ name: "web_fetch"
351
+ };
352
+ applyWebFetchFields(tool, config);
353
+ return tool;
354
+ }
355
+ function transformWebFetchToolV2(config) {
356
+ const tool = {
357
+ type: "web_fetch_20260309",
358
+ name: "web_fetch"
359
+ };
360
+ applyWebFetchFields(tool, config);
361
+ if (config.use_cache !== void 0) tool.use_cache = config.use_cache;
277
362
  return tool;
278
363
  }
364
+ function applyWebSearchFields(tool, config) {
365
+ if (config.allowed_callers !== void 0) tool.allowed_callers = config.allowed_callers;
366
+ if (config.allowed_domains !== void 0) tool.allowed_domains = config.allowed_domains;
367
+ if (config.blocked_domains !== void 0) tool.blocked_domains = config.blocked_domains;
368
+ if (config.cache_control !== void 0) tool.cache_control = config.cache_control;
369
+ if (config.defer_loading !== void 0) tool.defer_loading = config.defer_loading;
370
+ if (config.max_uses !== void 0) tool.max_uses = config.max_uses;
371
+ if (config.strict !== void 0) tool.strict = config.strict;
372
+ if (config.user_location !== void 0) tool.user_location = config.user_location;
373
+ }
279
374
  /**
280
375
  * Transform web search tool config to Anthropic beta tool format
281
376
  */
@@ -284,11 +379,18 @@ function transformWebSearchTool(config) {
284
379
  type: "web_search_20250305",
285
380
  name: "web_search"
286
381
  };
287
- if (config.max_uses !== void 0) tool.max_uses = config.max_uses;
288
- if (config.cache_control) tool.cache_control = config.cache_control;
382
+ applyWebSearchFields(tool, config);
383
+ return tool;
384
+ }
385
+ function transformWebSearchTool20260209(config) {
386
+ const tool = {
387
+ type: "web_search_20260209",
388
+ name: "web_search"
389
+ };
390
+ applyWebSearchFields(tool, config);
289
391
  return tool;
290
392
  }
291
393
  //#endregion
292
- export { parseMessages as a, outputFromMessage as i, calculateAnthropicCost as n, processAnthropicTools as o, getTokenUsage as r, ANTHROPIC_MODELS as t };
394
+ export { outputFromMessage as a, getTokenUsage as i, calculateAnthropicCost as n, parseMessages as o, getRefusalDetails as r, processAnthropicTools as s, ANTHROPIC_MODELS as t };
293
395
 
294
- //# sourceMappingURL=util-DMFeUvLz.js.map
396
+ //# sourceMappingURL=util-DN0-b81k.js.map