promptfoo 0.121.2 → 0.121.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (379) hide show
  1. package/README.md +2 -0
  2. package/dist/src/{ListApp-Du7YVwj5.js → ListApp-DQkFNqE9.js} +1 -1
  3. package/dist/src/{accounts-B0pgC1oV.js → accounts-DdJ2pHMI.js} +5 -5
  4. package/dist/src/{accounts-CiBLOnA7.js → accounts-DhMYUUbu.js} +5 -5
  5. package/dist/src/{accounts-gtkH-5KX.cjs → accounts-Dy17bs4D.cjs} +5 -5
  6. package/dist/src/{accounts-Bm2D8Db9.js → accounts-F9d_5sMC.js} +6 -6
  7. package/dist/src/{cometapi-C4xSqeID.cjs → agentic-utils-BpX5b23w.cjs} +24 -62
  8. package/dist/src/{cometapi-CUQq3H_a.js → agentic-utils-P172hM8B.js} +4 -61
  9. package/dist/src/agentic-utils-qFlm6zes.js +153 -0
  10. package/dist/src/{agentic-utils-DS1g3GLF.js → agentic-utils-w68v6_Dz.js} +3 -3
  11. package/dist/src/{agents-CmvBq8LV.js → agents-8FDnTriG.js} +6 -7
  12. package/dist/src/{agents-DbRtpYxR.cjs → agents-BahDpe5G.cjs} +255 -20
  13. package/dist/src/{agents-DgF2zDag.js → agents-C-R_jfzI.js} +255 -20
  14. package/dist/src/{agents-9qiOy0ho.js → agents-CgaMXvLM.js} +5 -7
  15. package/dist/src/{agents-Di9DKPzn.cjs → agents-D7-HGxUj.cjs} +5 -7
  16. package/dist/src/{agents-CBr9A01V.js → agents-DJ35I3Nt.js} +255 -20
  17. package/dist/src/{agents-cLXA8a_8.js → agents-aYPQLf8W.js} +5 -9
  18. package/dist/src/{agents-D__IdAlg.js → agents-pQeBEXMm.js} +255 -21
  19. package/dist/src/{aimlapi-B4rcnZgv.js → aimlapi-BCq3MHeL.js} +8 -14
  20. package/dist/src/{aimlapi-DHJU_kcV.js → aimlapi-BD6J9oKt.js} +7 -14
  21. package/dist/src/{aimlapi-BvlNH0gr.cjs → aimlapi-qcK4OT55.cjs} +8 -15
  22. package/dist/src/{aimlapi-CnkC2HqE.js → aimlapi-sgYnkE54.js} +7 -16
  23. package/dist/src/app/app/tsconfig.app.tsbuildinfo +1 -0
  24. package/dist/src/app/assets/Report-CQYFezYu.js +1 -0
  25. package/dist/src/app/assets/index-BXGkeMwh.css +1 -0
  26. package/dist/src/app/assets/index-BzJt18Jz.js +385 -0
  27. package/dist/src/app/assets/rolldown-runtime-COnpUsM8.js +1 -0
  28. package/dist/src/app/assets/scroll-timeline-D9IT_e8Z.js +1 -0
  29. package/dist/src/app/assets/sync-IjzpWrOE.js +4 -0
  30. package/dist/src/app/assets/vendor-charts-BNdH8TCw.js +36 -0
  31. package/dist/src/app/assets/vendor-markdown-Ch00wnNI.js +29 -0
  32. package/dist/src/app/assets/vendor-react-CVvmk1UB.js +9 -0
  33. package/dist/src/app/assets/vendor-utils-BnEYbx2Q.js +37 -0
  34. package/dist/src/app/index.html +7 -7
  35. package/dist/src/{audio-Dz3z7s3J.js → audio-B7izf48x.js} +4 -5
  36. package/dist/src/{audio-CGMyULza.cjs → audio-BQtNuYBj.cjs} +4 -4
  37. package/dist/src/{audio-Bkv46et0.js → audio-COrn8rM6.js} +4 -4
  38. package/dist/src/{audio-ClI_AFre.js → audio-DcVKoInv.js} +4 -4
  39. package/dist/src/{base-CGrhspbK.cjs → base-D-670DX8.cjs} +3 -3
  40. package/dist/src/{base-CpjcHe4e.js → base-PYJvBE1i.js} +3 -3
  41. package/dist/src/{base-Dy1V8--Z.js → base-fZ9wgg50.js} +3 -3
  42. package/dist/src/{base-DLKtKMFh.js → base-yrI1Yal4.js} +3 -3
  43. package/dist/src/{blobs-BDbfYdrJ.js → blobs-BCZavS8s.js} +4 -4
  44. package/dist/src/{blobs-CMHN0Qcz.js → blobs-BQWqnnvL.js} +4 -4
  45. package/dist/src/{blobs-CBO20krR.js → blobs-C-F78Kfn.js} +3 -3
  46. package/dist/src/{blobs-D23XLin-.cjs → blobs-D2FAd1Q5.cjs} +3 -3
  47. package/dist/src/cache-BIyPcp5v.cjs +376 -0
  48. package/dist/src/cache-C4Xb-hNb.js +310 -0
  49. package/dist/src/cache-Cr9oLMUa.js +3 -0
  50. package/dist/src/cache-D5NZmMiT.js +310 -0
  51. package/dist/src/cache-DbLsVWB2.cjs +3 -0
  52. package/dist/src/cache-mb7c8hbp.js +280 -0
  53. package/dist/src/{chat-C2jrdPMx.js → chat-0bwXjVP0.js} +3 -13
  54. package/dist/src/{chat-C1Qst7jL.cjs → chat-BPXSW8Bv.cjs} +3 -13
  55. package/dist/src/{chat-DJIw17u0.js → chat-BfPaS15_.js} +68 -42
  56. package/dist/src/{chat-CgF-J-Jj.cjs → chat-CclRbxGf.cjs} +68 -42
  57. package/dist/src/{chat-BiKyneZl.js → chat-Dr3DUQ0D.js} +68 -42
  58. package/dist/src/{chat-DqxYYtWA.js → chat-I9izLm49.js} +67 -41
  59. package/dist/src/{chat-CzkrVDfz.js → chat-MKxMnZJZ.js} +3 -13
  60. package/dist/src/{chat-qmatte1u.js → chat-mW0ORo8G.js} +3 -14
  61. package/dist/src/{chatkit-DKyPi1Gs.cjs → chatkit-BoWoSgXl.cjs} +4 -4
  62. package/dist/src/{chatkit-65VXf5SR.js → chatkit-CJnHRRMM.js} +4 -4
  63. package/dist/src/{chatkit-Be-Q-a9F.js → chatkit-Cv6AhukM.js} +4 -4
  64. package/dist/src/{chatkit-BxFvW8KY.js → chatkit-zUIVoDos.js} +4 -4
  65. package/dist/src/{claude-agent-sdk-Apiy0iaz.js → claude-agent-sdk-BQNuLaAK.js} +41 -18
  66. package/dist/src/{claude-agent-sdk-D9Z5Pr9X.cjs → claude-agent-sdk-CPJo3dBQ.cjs} +45 -22
  67. package/dist/src/{claude-agent-sdk-D2bJee9S.js → claude-agent-sdk-Dtq_L-Sc.js} +40 -17
  68. package/dist/src/{claude-agent-sdk-DfCoW0E6.js → claude-agent-sdk-nfAIcxNf.js} +42 -20
  69. package/dist/src/{cloud-C0dlstV_.js → cloud-DQZ5sVjW.js} +25 -13
  70. package/dist/src/cloud-Hphvo8kr.js +3 -0
  71. package/dist/src/{cloudflare-ai-8TDxHR0x.js → cloudflare-ai-BIB567w6.js} +5 -14
  72. package/dist/src/{cloudflare-ai-g7PB6VHR.js → cloudflare-ai-DGLte7Py.js} +5 -14
  73. package/dist/src/{cloudflare-ai-CknbZ5LJ.cjs → cloudflare-ai-Dl3N9OVD.cjs} +6 -15
  74. package/dist/src/{cloudflare-ai-BxAGvfju.js → cloudflare-ai-DlKr0rY7.js} +5 -15
  75. package/dist/src/{cloudflare-gateway-B9HWA5wf.js → cloudflare-gateway-BDZrYydE.js} +4 -16
  76. package/dist/src/{cloudflare-gateway-BSnDmHYo.cjs → cloudflare-gateway-BYDp495F.cjs} +4 -15
  77. package/dist/src/{cloudflare-gateway-CKDb4dJ8.js → cloudflare-gateway-CiIZHU0Q.js} +5 -164
  78. package/dist/src/{cloudflare-gateway-CP9QEWYS.js → cloudflare-gateway-DI1HNP5F.js} +4 -15
  79. package/dist/src/codex-sdk-BAmYE7qy.js +3 -0
  80. package/dist/src/codex-sdk-C2_M2pl_.cjs +1172 -0
  81. package/dist/src/codex-sdk-CErXn7qh.js +1165 -0
  82. package/dist/src/codex-sdk-CWEnH70W.cjs +2 -0
  83. package/dist/src/codex-sdk-CpqiOqDO.js +1164 -0
  84. package/dist/src/codex-sdk-Rtky3M4I.js +1165 -0
  85. package/dist/src/{cometapi-BL9yvj_f.js → cometapi-BUlt_ELa.js} +8 -15
  86. package/dist/src/{cometapi-DFNiKmSz.js → cometapi-CtJ-mS8R.js} +8 -16
  87. package/dist/src/cometapi-DT-jlVCB.js +55 -0
  88. package/dist/src/cometapi-UVOryo4W.cjs +55 -0
  89. package/dist/src/{completion-CM6oK8PS.cjs → completion-BozdoXba.cjs} +7 -62
  90. package/dist/src/{completion-5MzrpJxT.js → completion-Dnxn7E-j.js} +8 -57
  91. package/dist/src/{completion-qRoZAYRB.js → completion-HUe8wDhZ.js} +8 -57
  92. package/dist/src/{completion-DZ083F31.js → completion-x0a_c2y1.js} +8 -57
  93. package/dist/src/{createHash-CTQmL3G2.js → createHash-4gFQpDDv.js} +3 -3
  94. package/dist/src/{createHash-CfZSc0b4.cjs → createHash-B7KvgoOD.cjs} +4 -4
  95. package/dist/src/{createHash-Da8fMwqB.js → createHash-ChI45QR1.js} +3 -3
  96. package/dist/src/{createHash-DmPQkvBh.js → createHash-CwDVU5xr.js} +3 -3
  97. package/dist/src/{docker-ExVyLp0S.js → docker-CQmlA2NU.js} +7 -14
  98. package/dist/src/{docker-Bb5dcxr8.js → docker-ClnmCf1Z.js} +6 -14
  99. package/dist/src/{docker-BvfL2BrW.js → docker-DCgsveLD.js} +6 -16
  100. package/dist/src/{docker-DcF2pRrj.cjs → docker-DS4_Osau.cjs} +7 -15
  101. package/dist/src/embedding-D3xTseo7.js +59 -0
  102. package/dist/src/embedding-DD9wa3ae.js +58 -0
  103. package/dist/src/embedding-I45KG3o7.cjs +63 -0
  104. package/dist/src/embedding-nFbumxcv.js +58 -0
  105. package/dist/src/entrypoint.js +69 -6
  106. package/dist/src/{errors-P6ll7XSJ.js → errors-Cw810C93.js} +1 -1
  107. package/dist/src/{esm-CaIwzWR5.js → esm-C7PnfdF8.js} +16 -7
  108. package/dist/src/{esm-CnNt7sI4.cjs → esm-CtEPLdAj.cjs} +15 -6
  109. package/dist/src/{esm-Cd1AjG1D.js → esm-Dh4dOLlt.js} +15 -6
  110. package/dist/src/{esm-C03C-mv3.js → esm-tVgYPY-f.js} +27 -18
  111. package/dist/src/eval-CzJFfFO9.js +3 -0
  112. package/dist/src/{eval-Dg2nG4v2.js → eval-u4UVafl6.js} +49 -20
  113. package/dist/src/{evalResult-BDMqrapS.js → evalResult-Bgm9ZH31.js} +7 -7
  114. package/dist/src/{evalResult-BBRNtX4I.js → evalResult-D3hVYFis.js} +7 -7
  115. package/dist/src/evalResult-D8MT9p0s.js +3 -0
  116. package/dist/src/evalResult-DElBuddX.js +2 -0
  117. package/dist/src/evalResult-Dvc-iucu.cjs +2 -0
  118. package/dist/src/{evalResult-fuaI8HkH.cjs → evalResult-KZqXl4XP.cjs} +7 -7
  119. package/dist/src/evaluator-CVessDWe.js +3 -0
  120. package/dist/src/{evaluator-BhoWwp5b.js → evaluator-IvuDYSvQ.js} +3080 -1254
  121. package/dist/src/{extractor-D25qpmGX.js → extractor-CAfTSraf.js} +6 -6
  122. package/dist/src/{extractor-DReVID0K.js → extractor-DNSeBVOJ.js} +6 -6
  123. package/dist/src/{extractor-C0EVHewb.js → extractor-Dk6bRWkv.js} +6 -6
  124. package/dist/src/{extractor-pYLLi3wS.cjs → extractor-WVPOrH43.cjs} +6 -6
  125. package/dist/src/{fetch-HaqdX7U1.js → fetch-B0Z3Oe4k.js} +218 -55
  126. package/dist/src/{fetch-Dxpd4_sr.js → fetch-BEWnXrrG.js} +195 -45
  127. package/dist/src/fetch-C7bGKDlQ.js +3 -0
  128. package/dist/src/{fetch-BPkYtG8K.cjs → fetch-CJU5ELPa.cjs} +223 -48
  129. package/dist/src/{fetch-Cwxnd8zz.js → fetch-Di00EQrc.js} +218 -55
  130. package/dist/src/{fileExtensions-Ds-foDzt.js → fileExtensions-AWa2ZML4.js} +1 -1
  131. package/dist/src/{fileExtensions-LcDYkU4v.js → fileExtensions-BArZuxsI.js} +1 -1
  132. package/dist/src/{formatDuration-DgBVMN65.js → formatDuration-DZzPsexs.js} +1 -1
  133. package/dist/src/{genaiTracer-D3fD9dNV.js → genaiTracer-COYDi-tC.js} +6 -2
  134. package/dist/src/{genaiTracer-C1rxGO8Q.js → genaiTracer-DWdZ28hY.js} +6 -2
  135. package/dist/src/{genaiTracer-70Z8BIuV.js → genaiTracer-XnrcgDCe.js} +6 -2
  136. package/dist/src/{genaiTracer-DN4dQywX.cjs → genaiTracer-yRuxj9-L.cjs} +7 -3
  137. package/dist/src/golang/wrapper.go +1 -1
  138. package/dist/src/{graders-DU49_J8Y.cjs → graders--zknU_uk.cjs} +5747 -3206
  139. package/dist/src/graders-BOAzQEUe.cjs +2 -0
  140. package/dist/src/graders-D4BTsZdG2.js +3 -0
  141. package/dist/src/graders-DOJK1XpV.js +2 -0
  142. package/dist/src/graders-NAv9LcBn.js +2 -0
  143. package/dist/src/{graders-BTeBGqjJ.js → graders-Zy3x0zqX.js} +5727 -3218
  144. package/dist/src/{graders-Bj_Odv7c.js → graders-eIHhRqoC.js} +5719 -3210
  145. package/dist/src/{graders-DP7KFFo-.js → graders-pvbReLLn.js} +5728 -3219
  146. package/dist/src/{image-B0h9VEMc.js → image-9302QVqR.js} +4 -4
  147. package/dist/src/{image-CHfWvljl.js → image-B5Mv-Z3h.js} +8 -8
  148. package/dist/src/{image-DS-o-0ph.js → image-DVz2RiMF.js} +8 -8
  149. package/dist/src/{image-C1madmKh.cjs → image-De2FBmYV.cjs} +4 -4
  150. package/dist/src/{image-B02ogr_b.js → image-dnoUgPrC.js} +4 -5
  151. package/dist/src/{image-Dpxa1Jt6.js → image-qUpPvmNZ.js} +8 -8
  152. package/dist/src/{image-Bb4vWQLM.js → image-u7-rKnYU.js} +4 -4
  153. package/dist/src/{image-BLmROtN3.cjs → image-x6KqLQl4.cjs} +8 -8
  154. package/dist/src/index.cjs +3728 -1482
  155. package/dist/src/index.d.cts +3232 -79
  156. package/dist/src/index.d.ts +3232 -79
  157. package/dist/src/index.js +3735 -1490
  158. package/dist/src/{interactiveCheck-BgLZUIt3.js → interactiveCheck-CLERUB0c.js} +2 -2
  159. package/dist/src/{knowledgeBase-DOO_BM9b.cjs → knowledgeBase-Bpoe_nLu.cjs} +6 -8
  160. package/dist/src/{knowledgeBase-D33Ty2l6.js → knowledgeBase-Dgc7CBWF.js} +6 -8
  161. package/dist/src/{knowledgeBase-B3OoKIej.js → knowledgeBase-RhFPGWDc.js} +6 -8
  162. package/dist/src/{knowledgeBase-CYTLHOt1.js → knowledgeBase-lm9RXSAm.js} +6 -9
  163. package/dist/src/{litellm-NbjknEh6.js → litellm-C2kqjxqp.js} +6 -14
  164. package/dist/src/{litellm-I_hbp_dc.cjs → litellm-CoyI4IAl.cjs} +6 -15
  165. package/dist/src/{litellm-TrljxD9G.js → litellm-DRjpcSa7.js} +5 -14
  166. package/dist/src/{litellm-AaeZcZQF.js → litellm-p37R1dzQ.js} +5 -16
  167. package/dist/src/{logger-DLcq4dWf.js → logger-B88EkIn6.js} +48 -23
  168. package/dist/src/{logger-Cp1GPUjj.cjs → logger-COuQb2xB.cjs} +77 -22
  169. package/dist/src/{logger-CT3IKMKA.js → logger-Ct2S6Yx-.js} +48 -23
  170. package/dist/src/{logger-KkObSCzq.js → logger-DksKw1Qc.js} +48 -23
  171. package/dist/src/{luma-ray-f6I2fft-.js → luma-ray-B863CmuZ.js} +6 -10
  172. package/dist/src/{luma-ray-DDsjcgZZ.js → luma-ray-BTTLtqQ8.js} +7 -10
  173. package/dist/src/{luma-ray-Due0n7di.cjs → luma-ray-BxVKaW2a.cjs} +6 -10
  174. package/dist/src/{luma-ray-BS2_tY8L.js → luma-ray-KgTCXrZC.js} +6 -12
  175. package/dist/src/main.d.ts +1 -26
  176. package/dist/src/main.js +1011 -548
  177. package/dist/src/{messages-Bs1kC7P4.cjs → messages-811uVVW5.cjs} +74 -19
  178. package/dist/src/{messages-BS17jdMx.js → messages-BTQz42fn.js} +74 -19
  179. package/dist/src/{messages-ZJk778GH.js → messages-MYTQ2TWp.js} +74 -19
  180. package/dist/src/{messages-D0lx5qK7.js → messages-zWbkLLHz.js} +74 -19
  181. package/dist/src/{meteor-D-SotUw9.js → meteor-CU5UAE-H.js} +1 -1
  182. package/dist/src/{meteor-DLZZ3osF.cjs → meteor-Co1VQ1u5.cjs} +1 -1
  183. package/dist/src/{meteor-44VjEACX.js → meteor-DHdzY1Ss.js} +1 -1
  184. package/dist/src/{meteor-DUiCJRC-.js → meteor-DuAFv6gF.js} +1 -1
  185. package/dist/src/{modelslab-Bmni6skY.js → modelslab-D0erNWKe.js} +7 -10
  186. package/dist/src/{modelslab-DRb74SP4.js → modelslab-DIq-6y7x.js} +7 -10
  187. package/dist/src/{modelslab-CoUX6Jc_.cjs → modelslab-Dk1JAtVo.cjs} +7 -10
  188. package/dist/src/{modelslab-Bx9IrZfS.js → modelslab-wu9yi5GE.js} +7 -11
  189. package/dist/src/{nova-reel-BfPq-0Yk.js → nova-reel-CCFRfeRb.js} +7 -10
  190. package/dist/src/{nova-reel-C_QM18Xn.cjs → nova-reel-CrLXVKQf.cjs} +6 -10
  191. package/dist/src/{nova-reel-bgjxilYW.js → nova-reel-DQrm74ng.js} +6 -10
  192. package/dist/src/{nova-reel-D_W1tjMH.js → nova-reel-gr11WG7f.js} +6 -12
  193. package/dist/src/{nova-sonic-DIGQNR07.js → nova-sonic-BYdp-QLs.js} +5 -7
  194. package/dist/src/{nova-sonic-CFb5GYhg.js → nova-sonic-B_ZXcUJB.js} +4 -7
  195. package/dist/src/{nova-sonic-De1HW5fD.js → nova-sonic-TDgrlTk7.js} +4 -9
  196. package/dist/src/{nova-sonic-zfcljeRp.cjs → nova-sonic-i5tUvXKn.cjs} +4 -7
  197. package/dist/src/{openai-DElQ-fPX.js → openai-DhVEmgeZ.js} +6 -3
  198. package/dist/src/{openai-DhbB7eWK.js → openai-Qsvz25mV.js} +6 -3
  199. package/dist/src/{openai-Cuif0GEt.cjs → openai-URNyItar.cjs} +6 -3
  200. package/dist/src/{openai-j-sE2O7r.js → openai-iYtrXzOX.js} +6 -3
  201. package/dist/src/openclaw-CLWrW03k.js +1200 -0
  202. package/dist/src/openclaw-CnQ363Wi.js +1199 -0
  203. package/dist/src/openclaw-CwzlQSQX.js +1199 -0
  204. package/dist/src/openclaw-wX9rtfke.cjs +1205 -0
  205. package/dist/src/{opencode-sdk-B3CWY9h_.js → opencode-sdk-BUu5Nevv.js} +12 -14
  206. package/dist/src/{opencode-sdk-BL764Jdi.cjs → opencode-sdk-BZ2idgYA.cjs} +16 -18
  207. package/dist/src/{opencode-sdk-0j6rTWNb.js → opencode-sdk-BxD8vXp_.js} +12 -15
  208. package/dist/src/{opencode-sdk-C2y6UkP2.js → opencode-sdk-GI2KaAXq.js} +12 -14
  209. package/dist/src/{otlpReceiver-C99PPb48.js → otlpReceiver-B2z58l4e.js} +154 -98
  210. package/dist/src/{otlpReceiver-CGq6LspY.cjs → otlpReceiver-BfcVq2Nq.cjs} +154 -98
  211. package/dist/src/{otlpReceiver-D89fR-rC.js → otlpReceiver-BntK801g.js} +154 -98
  212. package/dist/src/{otlpReceiver-CdNBdbsk.js → otlpReceiver-DmVulbhC.js} +154 -98
  213. package/dist/src/{providerRegistry-CD8MEar9.js → providerRegistry-Bvh8mv85.js} +2 -2
  214. package/dist/src/{providerRegistry-DM8rZYol.js → providerRegistry-CPQ_CmVO.js} +2 -2
  215. package/dist/src/{providerRegistry-Civky8Ar.cjs → providerRegistry-CQMdTmHP.cjs} +2 -2
  216. package/dist/src/{providerRegistry-B0RUOLI_.js → providerRegistry-CWoPjKFZ.js} +2 -2
  217. package/dist/src/{providers-CgKOSgTR.cjs → providers-1eKkXBKp.cjs} +1435 -930
  218. package/dist/src/{providers-BlqUifFg.js → providers-BV_KMZje.js} +1419 -944
  219. package/dist/src/providers-Bp4S-FvO.js +2 -0
  220. package/dist/src/providers-DV3ax9e_.cjs +3 -0
  221. package/dist/src/{providers-D8lF1sqW.js → providers-Domz_llv.js} +1427 -952
  222. package/dist/src/{providers-Dk_6ocUX.js → providers-DruaQfwu.js} +1424 -949
  223. package/dist/src/providers-iUt5fbAN.js +3 -0
  224. package/dist/src/providers-u9Enmfok.js +2 -0
  225. package/dist/src/python/persistent_wrapper.py +0 -5
  226. package/dist/src/{pythonUtils-D6fwaDSg.js → pythonUtils-C2UQ30Rz.js} +4 -4
  227. package/dist/src/{pythonUtils-D5nxkQ0P.js → pythonUtils-Cldx7huE.js} +4 -4
  228. package/dist/src/{pythonUtils-C3py6GC1.js → pythonUtils-CnndUbW-.js} +3 -3
  229. package/dist/src/{pythonUtils-CTU3Y3lw.cjs → pythonUtils-tAJvvpS-.cjs} +3 -3
  230. package/dist/src/{quiverai-CIaELU_m.js → quiverai-CtWi6x_g.js} +4 -4
  231. package/dist/src/{quiverai-PdShCPox.cjs → quiverai-DFotyafY.cjs} +4 -4
  232. package/dist/src/{quiverai-BbOUOn2L.js → quiverai-DR0SnIQV.js} +4 -4
  233. package/dist/src/{quiverai-uH-dcTIr.js → quiverai-aPPvXOgn.js} +4 -5
  234. package/dist/src/render-CH-62LbA.js +135 -0
  235. package/dist/src/render-CMEpfLaO.js +136 -0
  236. package/dist/src/{render-Drod8m7K.js → render-CgVDrJmM.js} +2 -3
  237. package/dist/src/render-DHIZ6_k8.js +135 -0
  238. package/dist/src/render-DfQSFxGE.cjs +165 -0
  239. package/dist/src/{responses-DIR9Ud3j.js → responses--OsX2aYW.js} +23 -14
  240. package/dist/src/{responses-D8SBTL64.cjs → responses-Bi9vBuW_.cjs} +24 -15
  241. package/dist/src/{responses-CB2jwoAr.js → responses-C-flexAY.js} +24 -15
  242. package/dist/src/{responses-WNGNYe3K.js → responses-DL9m8CyY.js} +24 -15
  243. package/dist/src/{rubyUtils-DhCAlxZr.cjs → rubyUtils-B6eljPuh.cjs} +3 -3
  244. package/dist/src/{rubyUtils-BcuGX77l.js → rubyUtils-CYSQEG4a.js} +3 -3
  245. package/dist/src/rubyUtils-D1L2d3jb.js +3 -0
  246. package/dist/src/rubyUtils-DUbq4tff.cjs +2 -0
  247. package/dist/src/{rubyUtils-BUVePouc.js → rubyUtils-DVLeA2jg.js} +3 -3
  248. package/dist/src/{rubyUtils-Boc4HZzX.js → rubyUtils-DsGrTx8R.js} +3 -3
  249. package/dist/src/{sagemaker-CNBxx5CJ.js → sagemaker-BVkaG2-l.js} +14 -18
  250. package/dist/src/{sagemaker-CemTFp2h.js → sagemaker-BveBvuxm.js} +14 -18
  251. package/dist/src/{sagemaker-YSyBXQQh.js → sagemaker-D67yzMzs.js} +14 -19
  252. package/dist/src/{sagemaker-Cl28mZU2.cjs → sagemaker-XnfhheQv.cjs} +14 -18
  253. package/dist/src/{scanner-BsBlNXNn.js → scanner-1DqWi1Ej.js} +130 -35
  254. package/dist/src/server/golang/wrapper.go +1 -1
  255. package/dist/src/server/index.js +3757 -1511
  256. package/dist/src/server/python/persistent_wrapper.py +0 -5
  257. package/dist/src/{server-CqzrVGpF.js → server-BNYztJkh.js} +128 -9
  258. package/dist/src/{server-CuxBbeSY.js → server-BSB45Nt9.js} +127 -8
  259. package/dist/src/{server-VWgWb00X.js → server-D6Il2Sob.js} +126 -7
  260. package/dist/src/server-DCtHUqlp.js +3 -0
  261. package/dist/src/server-DaA2eR26.cjs +2 -0
  262. package/dist/src/{server-C_7Ax-hA.cjs → server-Dx2TyCH2.cjs} +140 -6
  263. package/dist/src/{signal-4U3mfRvL.js → signal-CE5G3a7x.js} +3 -3
  264. package/dist/src/{slack-BmVAVGaK.cjs → slack-1Rhq0EoV.cjs} +2 -2
  265. package/dist/src/{slack-DCUPTzS2.js → slack-D5Wpy8LM.js} +2 -2
  266. package/dist/src/{slack-DXMKtA-f.js → slack-DDUe-5MC.js} +2 -2
  267. package/dist/src/{slack-DOdy_kyv.js → slack-acRb0IqQ.js} +2 -2
  268. package/dist/src/store-CWOSz6D_.cjs +2 -0
  269. package/dist/src/{store-Dim__MDd.js → store-CYEy5J2D.js} +17 -5
  270. package/dist/src/{store-DLlFCC4h.cjs → store-DAAyxcy6.cjs} +17 -5
  271. package/dist/src/store-DCDBhv7B.js +3 -0
  272. package/dist/src/{store-CXGFv4aR.js → store-Dn9HUkdW.js} +17 -5
  273. package/dist/src/{store-DXilxTl-.js → store-M0b1WfYb.js} +17 -5
  274. package/dist/src/{tables-gftXzE9I.js → tables-C4CH3zRr.js} +3 -3
  275. package/dist/src/{tables-DLJPUdUE.js → tables-CsWou1Bx.js} +3 -3
  276. package/dist/src/{tables-6YKwjN9-.js → tables-DQ4WU5tX.js} +3 -3
  277. package/dist/src/{tables-DPi7wKeM.cjs → tables-DUfh1F7Z.cjs} +3 -3
  278. package/dist/src/telemetry-C1IqxcdW.js +3 -0
  279. package/dist/src/telemetry-C4ZEa_es.cjs +2 -0
  280. package/dist/src/{telemetry-CMrFgtPB.js → telemetry-CQPez_Jp.js} +4 -4
  281. package/dist/src/{telemetry-DaX14Chu.cjs → telemetry-Dsw_faFj.cjs} +4 -4
  282. package/dist/src/{telemetry-Dthj_BbD.js → telemetry-Dvqxv3YC.js} +4 -4
  283. package/dist/src/{telemetry-Cps3mIU-.js → telemetry-dbaJ0E98.js} +4 -4
  284. package/dist/src/{text-CW1cyrwj.cjs → text-BVi-cLPJ.cjs} +1 -1
  285. package/dist/src/{text-B_UCRPp2.js → text-CZr46tp_.js} +1 -1
  286. package/dist/src/{text-TIv0QYnd.js → text-DHxdyQqT.js} +1 -1
  287. package/dist/src/{text-Db-Wt2u2.js → text-KvuD2Iko.js} +1 -1
  288. package/dist/src/{tokenUsageUtils-bVa1ga6f.cjs → tokenUsageUtils-Bb7DkZPz.cjs} +7 -3
  289. package/dist/src/{tokenUsageUtils-NYT-WKS6.js → tokenUsageUtils-C-bmyHoE.js} +7 -3
  290. package/dist/src/{tokenUsageUtils-DflFMjS0.js → tokenUsageUtils-CXrvO-wA.js} +7 -3
  291. package/dist/src/{transcription-NLVG9MT1.cjs → transcription-BvjmiYB1.cjs} +12 -16
  292. package/dist/src/{transcription-BNYURcXg.js → transcription-CJspiD2c.js} +11 -14
  293. package/dist/src/{transcription-B_OdaHp7.js → transcription-DuWDupG7.js} +10 -14
  294. package/dist/src/{transcription-s6A-bNrZ.js → transcription-V2HaAmy2.js} +10 -16
  295. package/dist/src/{transform-DECvGmzp.js → transform-Bbg6A8Jk.js} +4 -4
  296. package/dist/src/{transform-vNucnNr0.js → transform-CG0ehZNG.js} +11 -7
  297. package/dist/src/{transform-DuHvhZpj.cjs → transform-CTeuTR3S.cjs} +31 -9
  298. package/dist/src/{transform-CzK1Q0zl.cjs → transform-CUnzlsbn.cjs} +4 -4
  299. package/dist/src/{transform-aa6tmVpZ.js → transform-DYX1_Xnh.js} +5 -5
  300. package/dist/src/transform-DgKlRr73.cjs +2 -0
  301. package/dist/src/transform-M6ITAESf.js +3 -0
  302. package/dist/src/{transform-DilY9wbS.js → transform-UN5UGu8U.js} +5 -5
  303. package/dist/src/{transform-uAytVuyX.js → transform-lQrDE1BQ.js} +11 -7
  304. package/dist/src/{transform-D5HsjduX.js → transform-zDhMmzwX.js} +11 -7
  305. package/dist/src/{transformersAvailability-CEVM2GNQ.js → transformersAvailability-CcHusyhw.js} +1 -1
  306. package/dist/src/{transformersAvailability-CwayUSlh.cjs → transformersAvailability-Cju9mHgR.cjs} +1 -1
  307. package/dist/src/{transformersAvailability-D6c6ROpT.js → transformersAvailability-DLlROWhg.js} +1 -1
  308. package/dist/src/{types-DmyIJ-sR.js → types-BGQDAP8i.js} +357 -22
  309. package/dist/src/{types-CzW2QFyi.js → types-Bgh5SOn6.js} +358 -24
  310. package/dist/src/{types-C_7nyzr1.cjs → types-CeaeaZdP.cjs} +393 -22
  311. package/dist/src/{types-Cbd8uOMq.js → types-Dm9JM6Vb.js} +368 -23
  312. package/dist/src/{util-BHGHw5G1.js → util-BYvQUPp7.js} +138 -36
  313. package/dist/src/{util-B9vlHIIh.cjs → util-Bxn8emtE.cjs} +15 -168
  314. package/dist/src/{util-ZzmqNPlg.js → util-C8e5uydV.js} +19 -142
  315. package/dist/src/{util-CMy69ZgQ.js → util-C9J8ahRn.js} +18 -4
  316. package/dist/src/{util-BzMcevZc.cjs → util-CN3SrLT4.cjs} +18 -4
  317. package/dist/src/{util-BV4XUC0n.js → util-D3q0WQ-0.js} +18 -4
  318. package/dist/src/{util-Dnmk2mBQ.js → util-D9TisOyk.js} +18 -4
  319. package/dist/src/{util-B3xGByQh.js → util-DDs-7g6-.js} +138 -36
  320. package/dist/src/{util-Bv6uGDfH.js → util-DvU2Pw8c.js} +138 -36
  321. package/dist/src/{util-C1CeHl-P.js → util-DxWpWjhc.js} +13 -136
  322. package/dist/src/{util-BRYkYPTd.js → util-oGMLA7vc.js} +17 -140
  323. package/dist/src/{util-DGNOS1db.cjs → util-olYL5C6N.cjs} +143 -35
  324. package/dist/src/{utils-Cz9qXqII.cjs → utils-B05gLxER.cjs} +6 -4
  325. package/dist/src/{utils-f2-Moju7.js → utils-BLJKfv0y.js} +6 -4
  326. package/dist/src/{utils-dLokC-eR.js → utils-DJfvjyMj.js} +6 -4
  327. package/dist/src/{utils-XiOAgly5.js → utils-hXtCYanr.js} +6 -4
  328. package/dist/tsconfig.tsbuildinfo +1 -1
  329. package/package.json +66 -57
  330. package/dist/src/app/assets/index-4LKxG2CG.js +0 -439
  331. package/dist/src/app/assets/index-C3zcsZFQ.css +0 -1
  332. package/dist/src/app/assets/scroll-timeline-BdJZVXlz.js +0 -1
  333. package/dist/src/app/assets/sync-9qqYcY-B.js +0 -4
  334. package/dist/src/app/assets/vendor-charts-BnDWwBlI.js +0 -36
  335. package/dist/src/app/assets/vendor-markdown-0tekx3KX.js +0 -29
  336. package/dist/src/app/assets/vendor-react-AtKqiNEf.js +0 -4
  337. package/dist/src/app/assets/vendor-syntax-D06x6TQF.js +0 -2
  338. package/dist/src/app/assets/vendor-utils-BvMHZmO7.js +0 -37
  339. package/dist/src/app/tsconfig.app.tsbuildinfo +0 -1
  340. package/dist/src/cache-BVeDlD87.js +0 -726
  341. package/dist/src/cache-C4Nxf52C.js +0 -756
  342. package/dist/src/cache-CeUpFm3M.cjs +0 -5
  343. package/dist/src/cache-Dh5WtQps.cjs +0 -816
  344. package/dist/src/cache-i1P6crbO.js +0 -756
  345. package/dist/src/cache-n-RCJ-hL.js +0 -6
  346. package/dist/src/cloud-BBh91EUK.js +0 -4
  347. package/dist/src/codex-sdk-C6UMlxwV.js +0 -665
  348. package/dist/src/codex-sdk-DUwKWezN.js +0 -665
  349. package/dist/src/codex-sdk-GGAw0qbD.js +0 -666
  350. package/dist/src/codex-sdk-fAO0c3yA.cjs +0 -669
  351. package/dist/src/eval-B3r2CVXr.js +0 -15
  352. package/dist/src/evalResult-5xwYnECe.js +0 -12
  353. package/dist/src/evalResult-71lY93Kj.cjs +0 -10
  354. package/dist/src/evalResult-Dx5P5cIv.js +0 -10
  355. package/dist/src/evaluator-Jx6bRZV6.js +0 -36
  356. package/dist/src/fetch-BxNb_Lp3.js +0 -5
  357. package/dist/src/graders-B_pgMLS2.js +0 -34
  358. package/dist/src/graders-DErokPDO.cjs +0 -32
  359. package/dist/src/graders-DR_uNe54.js +0 -32
  360. package/dist/src/graders-w3176Wz-.js +0 -32
  361. package/dist/src/openclaw-CSugPYAr.cjs +0 -586
  362. package/dist/src/openclaw-DiSz3I5L.js +0 -582
  363. package/dist/src/openclaw-DuvJKEW5.js +0 -580
  364. package/dist/src/openclaw-tiVYRtr-.js +0 -580
  365. package/dist/src/providers-B7V0njNs.js +0 -32
  366. package/dist/src/providers-BEwbhv0X.js +0 -30
  367. package/dist/src/providers-CH3C7zf7.js +0 -30
  368. package/dist/src/providers-zyB6k_38.cjs +0 -31
  369. package/dist/src/rubyUtils-BUHu6PhO.js +0 -5
  370. package/dist/src/rubyUtils-CP42kMvq.cjs +0 -4
  371. package/dist/src/server-DA4Cyrrq.js +0 -7
  372. package/dist/src/server-Dulb-4-K.cjs +0 -5
  373. package/dist/src/store-CXS-Q_91.js +0 -6
  374. package/dist/src/store-eYkaKMwq.cjs +0 -5
  375. package/dist/src/telemetry-BpMfhthR.cjs +0 -5
  376. package/dist/src/telemetry-Dw38hanS.js +0 -7
  377. package/dist/src/tokenUsageUtils-BDGe-iyI.js +0 -138
  378. package/dist/src/transform-DTGDnAzW.js +0 -6
  379. package/dist/src/transform-m3qNw4KP.cjs +0 -5
@@ -1,12 +1,12 @@
1
- const require_logger = require("./logger-Cp1GPUjj.cjs");
2
- const require_util = require("./util-B9vlHIIh.cjs");
3
- const require_fetch = require("./fetch-BPkYtG8K.cjs");
4
- const require_cache = require("./cache-Dh5WtQps.cjs");
5
- const require_genaiTracer = require("./genaiTracer-DN4dQywX.cjs");
6
- const require_chat = require("./chat-CgF-J-Jj.cjs");
7
- const require_tokenUsageUtils = require("./tokenUsageUtils-bVa1ga6f.cjs");
8
- const require_transform = require("./transform-DuHvhZpj.cjs");
9
- const require_util$1 = require("./util-DGNOS1db.cjs");
1
+ const require_logger = require("./logger-COuQb2xB.cjs");
2
+ const require_util = require("./util-Bxn8emtE.cjs");
3
+ const require_fetch = require("./fetch-CJU5ELPa.cjs");
4
+ const require_cache = require("./cache-BIyPcp5v.cjs");
5
+ const require_genaiTracer = require("./genaiTracer-yRuxj9-L.cjs");
6
+ const require_chat = require("./chat-CclRbxGf.cjs");
7
+ const require_tokenUsageUtils = require("./tokenUsageUtils-Bb7DkZPz.cjs");
8
+ const require_transform = require("./transform-CTeuTR3S.cjs");
9
+ const require_util$1 = require("./util-olYL5C6N.cjs");
10
10
  let _anthropic_ai_sdk = require("@anthropic-ai/sdk");
11
11
  _anthropic_ai_sdk = require_logger.__toESM(_anthropic_ai_sdk);
12
12
  //#region src/providers/anthropic/generic.ts
@@ -56,6 +56,17 @@ var AnthropicGenericProvider = class {
56
56
  };
57
57
  //#endregion
58
58
  //#region src/providers/anthropic/messages.ts
59
+ function parseEnvFloat(value) {
60
+ if (value === void 0) return;
61
+ const parsed = Number.parseFloat(value);
62
+ return Number.isNaN(parsed) ? void 0 : parsed;
63
+ }
64
+ function resolveThinkingConfig(configThinking, promptThinking) {
65
+ return configThinking ?? promptThinking;
66
+ }
67
+ function isThinkingEnabled(thinking) {
68
+ return thinking?.type === "enabled" || thinking?.type === "adaptive";
69
+ }
59
70
  var AnthropicMessagesProvider = class AnthropicMessagesProvider extends AnthropicGenericProvider {
60
71
  mcpClient = null;
61
72
  initializationPromise = null;
@@ -105,7 +116,8 @@ var AnthropicMessagesProvider = class AnthropicMessagesProvider extends Anthropi
105
116
  prompt: response.tokenUsage.prompt,
106
117
  completion: response.tokenUsage.completion,
107
118
  total: response.tokenUsage.total,
108
- cached: response.tokenUsage.cached
119
+ cached: response.tokenUsage.cached,
120
+ completionDetails: response.tokenUsage.completionDetails
109
121
  };
110
122
  if (response.finishReason) result.finishReasons = [response.finishReason];
111
123
  if (response.cached !== void 0) result.cacheHit = response.cached;
@@ -128,17 +140,42 @@ var AnthropicMessagesProvider = class AnthropicMessagesProvider extends Anthropi
128
140
  const { processedTools: processedConfigTools, requiredBetaFeatures } = require_util$1.processAnthropicTools(require_fetch.transformTools(await require_util.maybeLoadToolsFromExternalFile(config.tools, context?.vars) || [], "anthropic"));
129
141
  const allTools = [...mcpTools, ...processedConfigTools];
130
142
  const processedOutputFormat = require_util.maybeLoadResponseFormatFromExternalFile(config.output_format, context?.vars);
143
+ const resolvedThinking = resolveThinkingConfig(config.thinking, thinking);
144
+ const thinkingEnabled = isThinkingEnabled(resolvedThinking);
145
+ if (thinkingEnabled) {
146
+ if (config.top_k != null) require_logger.logger.warn("top_k is incompatible with extended thinking and will be omitted. Remove top_k from your config or disable thinking.");
147
+ if (config.temperature != null) require_logger.logger.warn("temperature is incompatible with extended thinking and will be omitted. Remove temperature from your config or disable thinking.");
148
+ if (config.top_p != null && (config.top_p < .95 || config.top_p > 1)) require_logger.logger.warn(`top_p must be between 0.95 and 1.0 with extended thinking (got ${config.top_p}). Clamping to valid range.`);
149
+ }
150
+ let resolvedToolChoice;
151
+ if (config.tool_choice) {
152
+ const transformed = require_fetch.transformToolChoice(config.tool_choice, "anthropic");
153
+ if (thinkingEnabled && (transformed.type === "any" || transformed.type === "tool")) require_logger.logger.warn(`tool_choice type '${transformed.type}' (forced tool use) is incompatible with extended thinking and will be omitted. Use 'auto' or remove tool_choice.`);
154
+ else resolvedToolChoice = transformed;
155
+ }
156
+ let resolvedTopP;
157
+ if (config.top_p != null) resolvedTopP = thinkingEnabled ? Math.max(.95, Math.min(1, config.top_p)) : config.top_p;
158
+ if (config.temperature != null && resolvedTopP != null && !thinkingEnabled) require_logger.logger.warn("temperature is incompatible with top_p on Anthropic and will be omitted. Remove one of these parameters.");
159
+ if (this.modelName.startsWith("claude-opus-4-6") && extractedMessages.length > 0) {
160
+ if (extractedMessages[extractedMessages.length - 1].role === "assistant") require_logger.logger.warn("Assistant message prefilling is not supported on Claude Opus 4.6 and will cause a 400 error. Remove the trailing assistant message from your prompt.");
161
+ }
131
162
  const shouldStream = config.stream ?? false;
132
163
  const params = {
133
164
  model: this.modelName,
134
165
  ...system ? { system } : {},
135
- max_tokens: config?.max_tokens || require_logger.getEnvInt("ANTHROPIC_MAX_TOKENS", config.thinking || thinking ? 2048 : 1024),
166
+ max_tokens: config.max_tokens ?? require_logger.getEnvInt("ANTHROPIC_MAX_TOKENS", thinkingEnabled ? 2048 : 1024),
136
167
  messages: extractedMessages,
137
168
  stream: shouldStream,
138
- temperature: config.thinking || thinking ? config.temperature : config.temperature || require_logger.getEnvFloat("ANTHROPIC_TEMPERATURE", 0),
169
+ ...resolvedTopP != null || thinkingEnabled ? {} : { temperature: config.temperature ?? parseEnvFloat(this.env?.ANTHROPIC_TEMPERATURE) ?? require_logger.getEnvFloat("ANTHROPIC_TEMPERATURE", 0) },
170
+ ...resolvedTopP == null ? {} : { top_p: resolvedTopP },
171
+ ...config.top_k == null || thinkingEnabled ? {} : { top_k: config.top_k },
172
+ ...config.cache_control ? { cache_control: config.cache_control } : {},
173
+ ...config.service_tier ? { service_tier: config.service_tier } : {},
174
+ ...config.stop_sequences?.length ? { stop_sequences: config.stop_sequences } : {},
175
+ ...config.metadata ? { metadata: config.metadata } : {},
139
176
  ...allTools.length > 0 ? { tools: allTools } : {},
140
- ...config.tool_choice ? { tool_choice: require_fetch.transformToolChoice(config.tool_choice, "anthropic") } : {},
141
- ...config.thinking || thinking ? { thinking: config.thinking || thinking } : {},
177
+ ...resolvedToolChoice ? { tool_choice: resolvedToolChoice } : {},
178
+ ...resolvedThinking ? { thinking: resolvedThinking } : {},
142
179
  ...processedOutputFormat || config.effort ? { output_config: {
143
180
  ...processedOutputFormat ? { format: processedOutputFormat } : {},
144
181
  ...config.effort ? { effort: config.effort } : {}
@@ -152,7 +189,8 @@ var AnthropicMessagesProvider = class AnthropicMessagesProvider extends Anthropi
152
189
  allBetaFeatures = [...new Set(allBetaFeatures)];
153
190
  if (allBetaFeatures.length > 0) headers["anthropic-beta"] = allBetaFeatures.join(",");
154
191
  const cache = await require_cache.getCache();
155
- const cacheKey = `anthropic:${JSON.stringify(params)}`;
192
+ const { metadata: _metadata, ...cacheKeyParams } = params;
193
+ const cacheKey = `anthropic:${JSON.stringify(cacheKeyParams)}`;
156
194
  if (require_cache.isCacheEnabled()) {
157
195
  const cachedResponse = await cache.get(cacheKey);
158
196
  if (cachedResponse) {
@@ -166,11 +204,16 @@ var AnthropicMessagesProvider = class AnthropicMessagesProvider extends Anthropi
166
204
  } catch (error) {
167
205
  require_logger.logger.error(`Failed to parse JSON output from structured outputs: ${error}`);
168
206
  }
207
+ const cachedRefusalDetails = require_util$1.getRefusalDetails(parsedCachedResponse);
169
208
  return {
170
209
  output,
171
210
  tokenUsage: require_util$1.getTokenUsage(parsedCachedResponse, true),
172
211
  ...finishReason && { finishReason },
173
- cost: require_util$1.calculateAnthropicCost(this.modelName, config, parsedCachedResponse.usage?.input_tokens, parsedCachedResponse.usage?.output_tokens),
212
+ ...cachedRefusalDetails && { guardrails: {
213
+ flagged: true,
214
+ reason: cachedRefusalDetails
215
+ } },
216
+ cost: require_util$1.calculateAnthropicCost(this.modelName, config, parsedCachedResponse.usage?.input_tokens, parsedCachedResponse.usage?.output_tokens, parsedCachedResponse.usage?.cache_read_input_tokens ?? void 0, parsedCachedResponse.usage?.cache_creation_input_tokens ?? void 0),
174
217
  cached: true
175
218
  };
176
219
  } catch {
@@ -197,11 +240,17 @@ var AnthropicMessagesProvider = class AnthropicMessagesProvider extends Anthropi
197
240
  } catch (error) {
198
241
  require_logger.logger.error(`Failed to parse JSON output from structured outputs: ${error}`);
199
242
  }
243
+ const refusalDetails = require_util$1.getRefusalDetails(finalMessage);
244
+ if (refusalDetails) require_logger.logger.warn(refusalDetails);
200
245
  return {
201
246
  output,
202
247
  tokenUsage: require_util$1.getTokenUsage(finalMessage, false),
203
248
  ...finishReason && { finishReason },
204
- cost: require_util$1.calculateAnthropicCost(this.modelName, config, finalMessage.usage?.input_tokens, finalMessage.usage?.output_tokens)
249
+ ...refusalDetails && { guardrails: {
250
+ flagged: true,
251
+ reason: refusalDetails
252
+ } },
253
+ cost: require_util$1.calculateAnthropicCost(this.modelName, config, finalMessage.usage?.input_tokens, finalMessage.usage?.output_tokens, finalMessage.usage?.cache_read_input_tokens ?? void 0, finalMessage.usage?.cache_creation_input_tokens ?? void 0)
205
254
  };
206
255
  } else {
207
256
  const response = await this.anthropic.messages.create(params, { ...typeof headers === "object" && Object.keys(headers).length > 0 ? { headers } : {} });
@@ -218,11 +267,17 @@ var AnthropicMessagesProvider = class AnthropicMessagesProvider extends Anthropi
218
267
  } catch (error) {
219
268
  require_logger.logger.error(`Failed to parse JSON output from structured outputs: ${error}`);
220
269
  }
270
+ const refusalDetails = require_util$1.getRefusalDetails(response);
271
+ if (refusalDetails) require_logger.logger.warn(refusalDetails);
221
272
  return {
222
273
  output,
223
274
  tokenUsage: require_util$1.getTokenUsage(response, false),
224
275
  ...finishReason && { finishReason },
225
- cost: require_util$1.calculateAnthropicCost(this.modelName, config, response.usage?.input_tokens, response.usage?.output_tokens)
276
+ ...refusalDetails && { guardrails: {
277
+ flagged: true,
278
+ reason: refusalDetails
279
+ } },
280
+ cost: require_util$1.calculateAnthropicCost(this.modelName, config, response.usage?.input_tokens, response.usage?.output_tokens, response.usage?.cache_read_input_tokens ?? void 0, response.usage?.cache_creation_input_tokens ?? void 0)
226
281
  };
227
282
  }
228
283
  } catch (err) {
@@ -249,4 +304,4 @@ Object.defineProperty(exports, "AnthropicMessagesProvider", {
249
304
  }
250
305
  });
251
306
 
252
- //# sourceMappingURL=messages-Bs1kC7P4.cjs.map
307
+ //# sourceMappingURL=messages-811uVVW5.cjs.map
@@ -1,12 +1,12 @@
1
- import { b as getEnvString, i as logger, v as getEnvFloat, y as getEnvInt } from "./logger-CT3IKMKA.js";
2
- import { d as maybeLoadToolsFromExternalFile, u as maybeLoadResponseFormatFromExternalFile } from "./util-BRYkYPTd.js";
3
- import { C as transformTools, S as transformToolChoice } from "./fetch-Cwxnd8zz.js";
4
- import { a as isCacheEnabled, i as getCache } from "./cache-C4Nxf52C.js";
5
- import { n as withGenAISpan } from "./genaiTracer-D3fD9dNV.js";
6
- import { i as normalizeFinishReason, n as MCPClient } from "./chat-DqxYYtWA.js";
7
- import { a as createEmptyTokenUsage } from "./tokenUsageUtils-NYT-WKS6.js";
8
- import { n as transformMCPToolsToAnthropic } from "./transform-vNucnNr0.js";
9
- import { a as parseMessages, i as outputFromMessage, n as calculateAnthropicCost, o as processAnthropicTools, r as getTokenUsage, t as ANTHROPIC_MODELS } from "./util-BHGHw5G1.js";
1
+ import { C as getEnvFloat, T as getEnvString, a as logger, w as getEnvInt } from "./logger-Ct2S6Yx-.js";
2
+ import { d as maybeLoadToolsFromExternalFile, u as maybeLoadResponseFormatFromExternalFile } from "./util-oGMLA7vc.js";
3
+ import { T as transformTools, w as transformToolChoice } from "./fetch-Di00EQrc.js";
4
+ import { a as isCacheEnabled, i as getCache } from "./cache-D5NZmMiT.js";
5
+ import { n as withGenAISpan } from "./genaiTracer-XnrcgDCe.js";
6
+ import { i as normalizeFinishReason, n as MCPClient } from "./chat-I9izLm49.js";
7
+ import { a as createEmptyTokenUsage } from "./tokenUsageUtils-C-bmyHoE.js";
8
+ import { n as transformMCPToolsToAnthropic } from "./transform-CG0ehZNG.js";
9
+ import { a as outputFromMessage, i as getTokenUsage, n as calculateAnthropicCost, o as parseMessages, r as getRefusalDetails, s as processAnthropicTools, t as ANTHROPIC_MODELS } from "./util-DvU2Pw8c.js";
10
10
  import Anthropic, { APIError } from "@anthropic-ai/sdk";
11
11
  //#region src/providers/anthropic/generic.ts
12
12
  /**
@@ -55,6 +55,17 @@ var AnthropicGenericProvider = class {
55
55
  };
56
56
  //#endregion
57
57
  //#region src/providers/anthropic/messages.ts
58
+ function parseEnvFloat(value) {
59
+ if (value === void 0) return;
60
+ const parsed = Number.parseFloat(value);
61
+ return Number.isNaN(parsed) ? void 0 : parsed;
62
+ }
63
+ function resolveThinkingConfig(configThinking, promptThinking) {
64
+ return configThinking ?? promptThinking;
65
+ }
66
+ function isThinkingEnabled(thinking) {
67
+ return thinking?.type === "enabled" || thinking?.type === "adaptive";
68
+ }
58
69
  var AnthropicMessagesProvider = class AnthropicMessagesProvider extends AnthropicGenericProvider {
59
70
  mcpClient = null;
60
71
  initializationPromise = null;
@@ -104,7 +115,8 @@ var AnthropicMessagesProvider = class AnthropicMessagesProvider extends Anthropi
104
115
  prompt: response.tokenUsage.prompt,
105
116
  completion: response.tokenUsage.completion,
106
117
  total: response.tokenUsage.total,
107
- cached: response.tokenUsage.cached
118
+ cached: response.tokenUsage.cached,
119
+ completionDetails: response.tokenUsage.completionDetails
108
120
  };
109
121
  if (response.finishReason) result.finishReasons = [response.finishReason];
110
122
  if (response.cached !== void 0) result.cacheHit = response.cached;
@@ -127,17 +139,42 @@ var AnthropicMessagesProvider = class AnthropicMessagesProvider extends Anthropi
127
139
  const { processedTools: processedConfigTools, requiredBetaFeatures } = processAnthropicTools(transformTools(await maybeLoadToolsFromExternalFile(config.tools, context?.vars) || [], "anthropic"));
128
140
  const allTools = [...mcpTools, ...processedConfigTools];
129
141
  const processedOutputFormat = maybeLoadResponseFormatFromExternalFile(config.output_format, context?.vars);
142
+ const resolvedThinking = resolveThinkingConfig(config.thinking, thinking);
143
+ const thinkingEnabled = isThinkingEnabled(resolvedThinking);
144
+ if (thinkingEnabled) {
145
+ if (config.top_k != null) logger.warn("top_k is incompatible with extended thinking and will be omitted. Remove top_k from your config or disable thinking.");
146
+ if (config.temperature != null) logger.warn("temperature is incompatible with extended thinking and will be omitted. Remove temperature from your config or disable thinking.");
147
+ if (config.top_p != null && (config.top_p < .95 || config.top_p > 1)) logger.warn(`top_p must be between 0.95 and 1.0 with extended thinking (got ${config.top_p}). Clamping to valid range.`);
148
+ }
149
+ let resolvedToolChoice;
150
+ if (config.tool_choice) {
151
+ const transformed = transformToolChoice(config.tool_choice, "anthropic");
152
+ if (thinkingEnabled && (transformed.type === "any" || transformed.type === "tool")) logger.warn(`tool_choice type '${transformed.type}' (forced tool use) is incompatible with extended thinking and will be omitted. Use 'auto' or remove tool_choice.`);
153
+ else resolvedToolChoice = transformed;
154
+ }
155
+ let resolvedTopP;
156
+ if (config.top_p != null) resolvedTopP = thinkingEnabled ? Math.max(.95, Math.min(1, config.top_p)) : config.top_p;
157
+ if (config.temperature != null && resolvedTopP != null && !thinkingEnabled) logger.warn("temperature is incompatible with top_p on Anthropic and will be omitted. Remove one of these parameters.");
158
+ if (this.modelName.startsWith("claude-opus-4-6") && extractedMessages.length > 0) {
159
+ if (extractedMessages[extractedMessages.length - 1].role === "assistant") logger.warn("Assistant message prefilling is not supported on Claude Opus 4.6 and will cause a 400 error. Remove the trailing assistant message from your prompt.");
160
+ }
130
161
  const shouldStream = config.stream ?? false;
131
162
  const params = {
132
163
  model: this.modelName,
133
164
  ...system ? { system } : {},
134
- max_tokens: config?.max_tokens || getEnvInt("ANTHROPIC_MAX_TOKENS", config.thinking || thinking ? 2048 : 1024),
165
+ max_tokens: config.max_tokens ?? getEnvInt("ANTHROPIC_MAX_TOKENS", thinkingEnabled ? 2048 : 1024),
135
166
  messages: extractedMessages,
136
167
  stream: shouldStream,
137
- temperature: config.thinking || thinking ? config.temperature : config.temperature || getEnvFloat("ANTHROPIC_TEMPERATURE", 0),
168
+ ...resolvedTopP != null || thinkingEnabled ? {} : { temperature: config.temperature ?? parseEnvFloat(this.env?.ANTHROPIC_TEMPERATURE) ?? getEnvFloat("ANTHROPIC_TEMPERATURE", 0) },
169
+ ...resolvedTopP == null ? {} : { top_p: resolvedTopP },
170
+ ...config.top_k == null || thinkingEnabled ? {} : { top_k: config.top_k },
171
+ ...config.cache_control ? { cache_control: config.cache_control } : {},
172
+ ...config.service_tier ? { service_tier: config.service_tier } : {},
173
+ ...config.stop_sequences?.length ? { stop_sequences: config.stop_sequences } : {},
174
+ ...config.metadata ? { metadata: config.metadata } : {},
138
175
  ...allTools.length > 0 ? { tools: allTools } : {},
139
- ...config.tool_choice ? { tool_choice: transformToolChoice(config.tool_choice, "anthropic") } : {},
140
- ...config.thinking || thinking ? { thinking: config.thinking || thinking } : {},
176
+ ...resolvedToolChoice ? { tool_choice: resolvedToolChoice } : {},
177
+ ...resolvedThinking ? { thinking: resolvedThinking } : {},
141
178
  ...processedOutputFormat || config.effort ? { output_config: {
142
179
  ...processedOutputFormat ? { format: processedOutputFormat } : {},
143
180
  ...config.effort ? { effort: config.effort } : {}
@@ -151,7 +188,8 @@ var AnthropicMessagesProvider = class AnthropicMessagesProvider extends Anthropi
151
188
  allBetaFeatures = [...new Set(allBetaFeatures)];
152
189
  if (allBetaFeatures.length > 0) headers["anthropic-beta"] = allBetaFeatures.join(",");
153
190
  const cache = await getCache();
154
- const cacheKey = `anthropic:${JSON.stringify(params)}`;
191
+ const { metadata: _metadata, ...cacheKeyParams } = params;
192
+ const cacheKey = `anthropic:${JSON.stringify(cacheKeyParams)}`;
155
193
  if (isCacheEnabled()) {
156
194
  const cachedResponse = await cache.get(cacheKey);
157
195
  if (cachedResponse) {
@@ -165,11 +203,16 @@ var AnthropicMessagesProvider = class AnthropicMessagesProvider extends Anthropi
165
203
  } catch (error) {
166
204
  logger.error(`Failed to parse JSON output from structured outputs: ${error}`);
167
205
  }
206
+ const cachedRefusalDetails = getRefusalDetails(parsedCachedResponse);
168
207
  return {
169
208
  output,
170
209
  tokenUsage: getTokenUsage(parsedCachedResponse, true),
171
210
  ...finishReason && { finishReason },
172
- cost: calculateAnthropicCost(this.modelName, config, parsedCachedResponse.usage?.input_tokens, parsedCachedResponse.usage?.output_tokens),
211
+ ...cachedRefusalDetails && { guardrails: {
212
+ flagged: true,
213
+ reason: cachedRefusalDetails
214
+ } },
215
+ cost: calculateAnthropicCost(this.modelName, config, parsedCachedResponse.usage?.input_tokens, parsedCachedResponse.usage?.output_tokens, parsedCachedResponse.usage?.cache_read_input_tokens ?? void 0, parsedCachedResponse.usage?.cache_creation_input_tokens ?? void 0),
173
216
  cached: true
174
217
  };
175
218
  } catch {
@@ -196,11 +239,17 @@ var AnthropicMessagesProvider = class AnthropicMessagesProvider extends Anthropi
196
239
  } catch (error) {
197
240
  logger.error(`Failed to parse JSON output from structured outputs: ${error}`);
198
241
  }
242
+ const refusalDetails = getRefusalDetails(finalMessage);
243
+ if (refusalDetails) logger.warn(refusalDetails);
199
244
  return {
200
245
  output,
201
246
  tokenUsage: getTokenUsage(finalMessage, false),
202
247
  ...finishReason && { finishReason },
203
- cost: calculateAnthropicCost(this.modelName, config, finalMessage.usage?.input_tokens, finalMessage.usage?.output_tokens)
248
+ ...refusalDetails && { guardrails: {
249
+ flagged: true,
250
+ reason: refusalDetails
251
+ } },
252
+ cost: calculateAnthropicCost(this.modelName, config, finalMessage.usage?.input_tokens, finalMessage.usage?.output_tokens, finalMessage.usage?.cache_read_input_tokens ?? void 0, finalMessage.usage?.cache_creation_input_tokens ?? void 0)
204
253
  };
205
254
  } else {
206
255
  const response = await this.anthropic.messages.create(params, { ...typeof headers === "object" && Object.keys(headers).length > 0 ? { headers } : {} });
@@ -217,11 +266,17 @@ var AnthropicMessagesProvider = class AnthropicMessagesProvider extends Anthropi
217
266
  } catch (error) {
218
267
  logger.error(`Failed to parse JSON output from structured outputs: ${error}`);
219
268
  }
269
+ const refusalDetails = getRefusalDetails(response);
270
+ if (refusalDetails) logger.warn(refusalDetails);
220
271
  return {
221
272
  output,
222
273
  tokenUsage: getTokenUsage(response, false),
223
274
  ...finishReason && { finishReason },
224
- cost: calculateAnthropicCost(this.modelName, config, response.usage?.input_tokens, response.usage?.output_tokens)
275
+ ...refusalDetails && { guardrails: {
276
+ flagged: true,
277
+ reason: refusalDetails
278
+ } },
279
+ cost: calculateAnthropicCost(this.modelName, config, response.usage?.input_tokens, response.usage?.output_tokens, response.usage?.cache_read_input_tokens ?? void 0, response.usage?.cache_creation_input_tokens ?? void 0)
225
280
  };
226
281
  }
227
282
  } catch (err) {
@@ -237,4 +292,4 @@ var AnthropicMessagesProvider = class AnthropicMessagesProvider extends Anthropi
237
292
  //#endregion
238
293
  export { AnthropicGenericProvider as n, AnthropicMessagesProvider as t };
239
294
 
240
- //# sourceMappingURL=messages-BS17jdMx.js.map
295
+ //# sourceMappingURL=messages-BTQz42fn.js.map
@@ -1,12 +1,12 @@
1
- import { b as getEnvString, i as logger, v as getEnvFloat, y as getEnvInt } from "./logger-DLcq4dWf.js";
2
- import { C as transformTools, S as transformToolChoice } from "./fetch-HaqdX7U1.js";
3
- import { a as isCacheEnabled, i as getCache } from "./cache-i1P6crbO.js";
4
- import { a as createEmptyTokenUsage } from "./tokenUsageUtils-BDGe-iyI.js";
5
- import { n as withGenAISpan } from "./genaiTracer-70Z8BIuV.js";
6
- import { D as maybeLoadResponseFormatFromExternalFile, O as maybeLoadToolsFromExternalFile } from "./util-ZzmqNPlg.js";
7
- import { i as normalizeFinishReason, n as MCPClient } from "./chat-DJIw17u0.js";
8
- import { n as transformMCPToolsToAnthropic } from "./transform-uAytVuyX.js";
9
- import { a as parseMessages, i as outputFromMessage, n as calculateAnthropicCost, o as processAnthropicTools, r as getTokenUsage, t as ANTHROPIC_MODELS } from "./util-Bv6uGDfH.js";
1
+ import { C as getEnvFloat, T as getEnvString, a as logger, w as getEnvInt } from "./logger-B88EkIn6.js";
2
+ import { T as transformTools, w as transformToolChoice } from "./fetch-B0Z3Oe4k.js";
3
+ import { n as withGenAISpan } from "./genaiTracer-COYDi-tC.js";
4
+ import { a as isCacheEnabled, i as getCache } from "./cache-C4Xb-hNb.js";
5
+ import { a as createEmptyTokenUsage } from "./tokenUsageUtils-C-bmyHoE.js";
6
+ import { D as maybeLoadResponseFormatFromExternalFile, O as maybeLoadToolsFromExternalFile } from "./util-C8e5uydV.js";
7
+ import { i as normalizeFinishReason, n as MCPClient } from "./chat-BfPaS15_.js";
8
+ import { n as transformMCPToolsToAnthropic } from "./transform-lQrDE1BQ.js";
9
+ import { a as outputFromMessage, i as getTokenUsage, n as calculateAnthropicCost, o as parseMessages, r as getRefusalDetails, s as processAnthropicTools, t as ANTHROPIC_MODELS } from "./util-BYvQUPp7.js";
10
10
  import Anthropic, { APIError } from "@anthropic-ai/sdk";
11
11
  //#region src/providers/anthropic/generic.ts
12
12
  /**
@@ -55,6 +55,17 @@ var AnthropicGenericProvider = class {
55
55
  };
56
56
  //#endregion
57
57
  //#region src/providers/anthropic/messages.ts
58
+ function parseEnvFloat(value) {
59
+ if (value === void 0) return;
60
+ const parsed = Number.parseFloat(value);
61
+ return Number.isNaN(parsed) ? void 0 : parsed;
62
+ }
63
+ function resolveThinkingConfig(configThinking, promptThinking) {
64
+ return configThinking ?? promptThinking;
65
+ }
66
+ function isThinkingEnabled(thinking) {
67
+ return thinking?.type === "enabled" || thinking?.type === "adaptive";
68
+ }
58
69
  var AnthropicMessagesProvider = class AnthropicMessagesProvider extends AnthropicGenericProvider {
59
70
  mcpClient = null;
60
71
  initializationPromise = null;
@@ -104,7 +115,8 @@ var AnthropicMessagesProvider = class AnthropicMessagesProvider extends Anthropi
104
115
  prompt: response.tokenUsage.prompt,
105
116
  completion: response.tokenUsage.completion,
106
117
  total: response.tokenUsage.total,
107
- cached: response.tokenUsage.cached
118
+ cached: response.tokenUsage.cached,
119
+ completionDetails: response.tokenUsage.completionDetails
108
120
  };
109
121
  if (response.finishReason) result.finishReasons = [response.finishReason];
110
122
  if (response.cached !== void 0) result.cacheHit = response.cached;
@@ -127,17 +139,42 @@ var AnthropicMessagesProvider = class AnthropicMessagesProvider extends Anthropi
127
139
  const { processedTools: processedConfigTools, requiredBetaFeatures } = processAnthropicTools(transformTools(await maybeLoadToolsFromExternalFile(config.tools, context?.vars) || [], "anthropic"));
128
140
  const allTools = [...mcpTools, ...processedConfigTools];
129
141
  const processedOutputFormat = maybeLoadResponseFormatFromExternalFile(config.output_format, context?.vars);
142
+ const resolvedThinking = resolveThinkingConfig(config.thinking, thinking);
143
+ const thinkingEnabled = isThinkingEnabled(resolvedThinking);
144
+ if (thinkingEnabled) {
145
+ if (config.top_k != null) logger.warn("top_k is incompatible with extended thinking and will be omitted. Remove top_k from your config or disable thinking.");
146
+ if (config.temperature != null) logger.warn("temperature is incompatible with extended thinking and will be omitted. Remove temperature from your config or disable thinking.");
147
+ if (config.top_p != null && (config.top_p < .95 || config.top_p > 1)) logger.warn(`top_p must be between 0.95 and 1.0 with extended thinking (got ${config.top_p}). Clamping to valid range.`);
148
+ }
149
+ let resolvedToolChoice;
150
+ if (config.tool_choice) {
151
+ const transformed = transformToolChoice(config.tool_choice, "anthropic");
152
+ if (thinkingEnabled && (transformed.type === "any" || transformed.type === "tool")) logger.warn(`tool_choice type '${transformed.type}' (forced tool use) is incompatible with extended thinking and will be omitted. Use 'auto' or remove tool_choice.`);
153
+ else resolvedToolChoice = transformed;
154
+ }
155
+ let resolvedTopP;
156
+ if (config.top_p != null) resolvedTopP = thinkingEnabled ? Math.max(.95, Math.min(1, config.top_p)) : config.top_p;
157
+ if (config.temperature != null && resolvedTopP != null && !thinkingEnabled) logger.warn("temperature is incompatible with top_p on Anthropic and will be omitted. Remove one of these parameters.");
158
+ if (this.modelName.startsWith("claude-opus-4-6") && extractedMessages.length > 0) {
159
+ if (extractedMessages[extractedMessages.length - 1].role === "assistant") logger.warn("Assistant message prefilling is not supported on Claude Opus 4.6 and will cause a 400 error. Remove the trailing assistant message from your prompt.");
160
+ }
130
161
  const shouldStream = config.stream ?? false;
131
162
  const params = {
132
163
  model: this.modelName,
133
164
  ...system ? { system } : {},
134
- max_tokens: config?.max_tokens || getEnvInt("ANTHROPIC_MAX_TOKENS", config.thinking || thinking ? 2048 : 1024),
165
+ max_tokens: config.max_tokens ?? getEnvInt("ANTHROPIC_MAX_TOKENS", thinkingEnabled ? 2048 : 1024),
135
166
  messages: extractedMessages,
136
167
  stream: shouldStream,
137
- temperature: config.thinking || thinking ? config.temperature : config.temperature || getEnvFloat("ANTHROPIC_TEMPERATURE", 0),
168
+ ...resolvedTopP != null || thinkingEnabled ? {} : { temperature: config.temperature ?? parseEnvFloat(this.env?.ANTHROPIC_TEMPERATURE) ?? getEnvFloat("ANTHROPIC_TEMPERATURE", 0) },
169
+ ...resolvedTopP == null ? {} : { top_p: resolvedTopP },
170
+ ...config.top_k == null || thinkingEnabled ? {} : { top_k: config.top_k },
171
+ ...config.cache_control ? { cache_control: config.cache_control } : {},
172
+ ...config.service_tier ? { service_tier: config.service_tier } : {},
173
+ ...config.stop_sequences?.length ? { stop_sequences: config.stop_sequences } : {},
174
+ ...config.metadata ? { metadata: config.metadata } : {},
138
175
  ...allTools.length > 0 ? { tools: allTools } : {},
139
- ...config.tool_choice ? { tool_choice: transformToolChoice(config.tool_choice, "anthropic") } : {},
140
- ...config.thinking || thinking ? { thinking: config.thinking || thinking } : {},
176
+ ...resolvedToolChoice ? { tool_choice: resolvedToolChoice } : {},
177
+ ...resolvedThinking ? { thinking: resolvedThinking } : {},
141
178
  ...processedOutputFormat || config.effort ? { output_config: {
142
179
  ...processedOutputFormat ? { format: processedOutputFormat } : {},
143
180
  ...config.effort ? { effort: config.effort } : {}
@@ -151,7 +188,8 @@ var AnthropicMessagesProvider = class AnthropicMessagesProvider extends Anthropi
151
188
  allBetaFeatures = [...new Set(allBetaFeatures)];
152
189
  if (allBetaFeatures.length > 0) headers["anthropic-beta"] = allBetaFeatures.join(",");
153
190
  const cache = await getCache();
154
- const cacheKey = `anthropic:${JSON.stringify(params)}`;
191
+ const { metadata: _metadata, ...cacheKeyParams } = params;
192
+ const cacheKey = `anthropic:${JSON.stringify(cacheKeyParams)}`;
155
193
  if (isCacheEnabled()) {
156
194
  const cachedResponse = await cache.get(cacheKey);
157
195
  if (cachedResponse) {
@@ -165,11 +203,16 @@ var AnthropicMessagesProvider = class AnthropicMessagesProvider extends Anthropi
165
203
  } catch (error) {
166
204
  logger.error(`Failed to parse JSON output from structured outputs: ${error}`);
167
205
  }
206
+ const cachedRefusalDetails = getRefusalDetails(parsedCachedResponse);
168
207
  return {
169
208
  output,
170
209
  tokenUsage: getTokenUsage(parsedCachedResponse, true),
171
210
  ...finishReason && { finishReason },
172
- cost: calculateAnthropicCost(this.modelName, config, parsedCachedResponse.usage?.input_tokens, parsedCachedResponse.usage?.output_tokens),
211
+ ...cachedRefusalDetails && { guardrails: {
212
+ flagged: true,
213
+ reason: cachedRefusalDetails
214
+ } },
215
+ cost: calculateAnthropicCost(this.modelName, config, parsedCachedResponse.usage?.input_tokens, parsedCachedResponse.usage?.output_tokens, parsedCachedResponse.usage?.cache_read_input_tokens ?? void 0, parsedCachedResponse.usage?.cache_creation_input_tokens ?? void 0),
173
216
  cached: true
174
217
  };
175
218
  } catch {
@@ -196,11 +239,17 @@ var AnthropicMessagesProvider = class AnthropicMessagesProvider extends Anthropi
196
239
  } catch (error) {
197
240
  logger.error(`Failed to parse JSON output from structured outputs: ${error}`);
198
241
  }
242
+ const refusalDetails = getRefusalDetails(finalMessage);
243
+ if (refusalDetails) logger.warn(refusalDetails);
199
244
  return {
200
245
  output,
201
246
  tokenUsage: getTokenUsage(finalMessage, false),
202
247
  ...finishReason && { finishReason },
203
- cost: calculateAnthropicCost(this.modelName, config, finalMessage.usage?.input_tokens, finalMessage.usage?.output_tokens)
248
+ ...refusalDetails && { guardrails: {
249
+ flagged: true,
250
+ reason: refusalDetails
251
+ } },
252
+ cost: calculateAnthropicCost(this.modelName, config, finalMessage.usage?.input_tokens, finalMessage.usage?.output_tokens, finalMessage.usage?.cache_read_input_tokens ?? void 0, finalMessage.usage?.cache_creation_input_tokens ?? void 0)
204
253
  };
205
254
  } else {
206
255
  const response = await this.anthropic.messages.create(params, { ...typeof headers === "object" && Object.keys(headers).length > 0 ? { headers } : {} });
@@ -217,11 +266,17 @@ var AnthropicMessagesProvider = class AnthropicMessagesProvider extends Anthropi
217
266
  } catch (error) {
218
267
  logger.error(`Failed to parse JSON output from structured outputs: ${error}`);
219
268
  }
269
+ const refusalDetails = getRefusalDetails(response);
270
+ if (refusalDetails) logger.warn(refusalDetails);
220
271
  return {
221
272
  output,
222
273
  tokenUsage: getTokenUsage(response, false),
223
274
  ...finishReason && { finishReason },
224
- cost: calculateAnthropicCost(this.modelName, config, response.usage?.input_tokens, response.usage?.output_tokens)
275
+ ...refusalDetails && { guardrails: {
276
+ flagged: true,
277
+ reason: refusalDetails
278
+ } },
279
+ cost: calculateAnthropicCost(this.modelName, config, response.usage?.input_tokens, response.usage?.output_tokens, response.usage?.cache_read_input_tokens ?? void 0, response.usage?.cache_creation_input_tokens ?? void 0)
225
280
  };
226
281
  }
227
282
  } catch (err) {
@@ -237,4 +292,4 @@ var AnthropicMessagesProvider = class AnthropicMessagesProvider extends Anthropi
237
292
  //#endregion
238
293
  export { AnthropicGenericProvider as n, AnthropicMessagesProvider as t };
239
294
 
240
- //# sourceMappingURL=messages-ZJk778GH.js.map
295
+ //# sourceMappingURL=messages-MYTQ2TWp.js.map