Commit graph

52131 commits

Author SHA1 Message Date
mateo-berri
61fcfd986d fix(anthropic): map the dangerous-tool-use beta for Bedrock Mantle so safeguards never reach it without the beta 2026-09-21 13:24:52 -07:00
mateo-berri
b0651d52ec Merge remote-tracking branch 'origin/main' into litellm_safeguards_bedrock_vertex_messages 2026-09-21 13:15:33 -07:00
kerry-berri
d79eadfe8c
Merge pull request #42297 from BerriAI/litellm-providers/price-sync-openrouter
chore(prices): sync OpenRouter prices: 1 model
2026-09-21 13:11:01 -07:00
kerry-berri
dd73c9fe3d
Merge pull request #42298 from BerriAI/litellm-providers/price-sync-aws-bedrock
chore(prices): sync AWS Bedrock prices: 1 model [enrichment failed: AWS Bedrock, 16 held]
2026-09-21 13:10:57 -07:00
kerry-berri
246a6ea54a
Merge pull request #42282 from BerriAI/litellm_fal_price_from_response_dims
fix(fal_ai): price images from the dimensions fal returns
2026-09-21 13:08:49 -07:00
yujonglee
18f77e96b5
Merge pull request #42196 from BerriAI/litellm_cache_static_dispatch
feat(rust): scaffold cache foundation for Python parity
2026-09-21 13:05:41 -07:00
berriai-litellm-provider-info-sync[bot]
4a825a7259
chore(prices): sync AWS Bedrock prices: 1 model [enrichment failed: AWS Bedrock, 16 held]
zai.glm-5: supports_vision, supports_audio_input, supports_response_schema
2026-09-21 20:01:35 +00:00
berriai-litellm-provider-info-sync[bot]
a2bb1f7e57
chore(prices): sync OpenRouter prices: 1 model
openrouter/deepseek/deepseek-v4-pro: input_cost_per_token, output_cost_per_token, cache_read_input_token_cost
2026-09-21 20:01:21 +00:00
yucheng-berri
42519a7680
Merge pull request #42262 from BerriAI/litellm_bedrock_batch_s3_bucket_owner
* fix(bedrock): send s3BucketOwner on batch input and output data config

Resolve s3_bucket_owner from litellm_params, then optional_params, then
AWS_S3_BUCKET_OWNER and emit it on both S3 data configs so cross-account
batch buckets pass Bedrock ownership validation. Omitted when unset

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* refactor(bedrock): build batch output config with explicit returns

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

---------

Co-authored-by: yucheng <yucheng@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 12:59:08 -07:00
kerry
b53f9ad658 fix(fal_ai): validate returned image dimensions
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 19:58:59 +00:00
joshua-berri
3549143bcd
Merge pull request #34919 from BerriAI/litellm_fix_mcp_peek_utf8_boundary
fix(mcp): handle split UTF-8 routing previews
2026-09-21 19:56:50 +00:00
yucheng-berri
884407dad4
Merge pull request #42119 from BerriAI/litellm_default_policy_attachments
* feat(policy_engine): add default fallback policy attachments

A policy attachment with default: true applies only when no non-default
attachment matches the request, so an opt-in guardrail policy replaces the
fallback one instead of running alongside it. Supported in config.yaml,
/policies/attachments, the Admin UI Attachments tab and the resolver
(matched_via is prefixed with default:).

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix(policy_engine): ignore inapplicable non-default attachments when selecting defaults

A non-default attachment whose policy is missing or whose condition does not match the request
no longer suppresses default attachments. The impact preview marks default counts as an upper bound

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* refactor(policy_engine): accept any sequence of policy names in condition matching

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

* fix(policy_engine): resolve policies once and apply fallback semantics in get_matching_policies

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

---------

Co-authored-by: yucheng <yucheng@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 12:55:42 -07:00
mateo-berri
21b5e2d8a1 fix(anthropic): add the dangerous-tool-use beta when safeguards arrive without it on Bedrock Invoke and Vertex 2026-09-21 12:52:38 -07:00
Mateo Wang
2e35ae1065
Merge pull request #42049 from BerriAI/litellm_mantle_native_anthropic_messages
feat(bedrock_mantle): serve /v1/messages for Claude models on Mantle's native Anthropic Messages API
2026-09-21 12:52:16 -07:00
Yujong Lee
991108cc48 refactor(rust): align cache foundation with Python backends 2026-09-21 12:50:21 -07:00
tin-berri
457b01e96d
Merge pull request #42055 from BerriAI/litellm_prompt_caching_request_table
feat(ui): show prompt caching requests and net savings
2026-09-21 12:45:11 -07:00
Mateo Wang
e8d97d381a
Merge pull request #42080 from BerriAI/litellm_prompt_caching_affinity_lookback
fix(router): keep prompt caching affinity when the breakpoint moves
2026-09-21 12:44:34 -07:00
kerry-berri
c3663aaac8
Merge pull request #42289 from BerriAI/litellm-providers/price-sync-openrouter
chore(prices): sync OpenRouter prices: 1 model
2026-09-21 12:41:02 -07:00
kerry-berri
2692a275fa
Merge pull request #42290 from BerriAI/litellm-providers/price-sync-aws-bedrock
chore(prices): sync AWS Bedrock prices: 3 models [enrichment failed: AWS Bedrock, 18 held]
2026-09-21 12:40:58 -07:00
joshua-berri
211ff96943
Merge pull request #39189 from BerriAI/litellm_mcp_list_pagination_lit5594
fix(mcp): paginate prompt and resource discovery
2026-09-21 19:35:17 +00:00
Mateo Wang
0e7cf5113e
Merge pull request #42069 from BerriAI/litellm_redacted_thinking_prompt_caching_pin
fix(token_counter): count replayed redacted_thinking blocks so prompt_caching keeps pinning
2026-09-21 12:35:14 -07:00
berriai-litellm-provider-info-sync[bot]
f851e6ddb7
chore(prices): sync AWS Bedrock prices: 3 models [enrichment failed: AWS Bedrock, 18 held]
us.moonshotai.kimi-k3: 
zai.glm-4.7: max_tokens, supports_vision, max_input_tokens, max_output_tokens, supports_audio_input, supports_response_schema
zai.glm-4.7-flash: max_tokens, supports_vision, max_input_tokens, max_output_tokens, supports_audio_input, supports_response_schema
2026-09-21 19:31:34 +00:00
berriai-litellm-provider-info-sync[bot]
cbf5bb5e71
chore(prices): sync OpenRouter prices: 1 model
openrouter/deepseek/deepseek-v4-pro: input_cost_per_token, output_cost_per_token, cache_read_input_token_cost
2026-09-21 19:31:29 +00:00
Joshua Valluru
2da7e6dfe2 ci: trigger MCP fix checks against main 2026-09-21 12:31:18 -07:00
Yujong Lee
efcafa7f12 fix(rust): invalidate changed Redis pool settings 2026-09-21 12:30:17 -07:00
mateo-berri
deca6aea79 test(bedrock): assert safeguard_results survive message_start and check the beta by membership 2026-09-21 12:30:11 -07:00
Mateo Wang
d8267d507d
Merge pull request #41956 from BerriAI/litellm_explicit_cache_injection_points_survive_client_marks
fix: apply configured cache_control_injection_points beside client cache_control marks
2026-09-21 12:28:02 -07:00
Joshua Valluru
a835e75620 fix(mcp): handle split UTF-8 routing previews in place 2026-09-21 12:24:19 -07:00
Yujong Lee
14febcc878 fix(rust): shrink cache configuration bridge 2026-09-21 12:22:18 -07:00
kerry
3429348305 fix(types): avoid mutable image serializer annotations
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 19:21:53 +00:00
mateo-berri
0e16050100 fix(anthropic): forward Claude Code safeguards and dangerous-tool-use beta to Bedrock Invoke and Vertex on /v1/messages
Claude Code's server-side auto-mode classifier sends a `safeguards` body field
together with the `dangerous-tool-use-2026-09-03` beta. PR #42152 made the
first-party anthropic route pass them through, but the beta header mapping
left the other two Claude platforms at null, so Bedrock Invoke dropped both
(classifier silently disabled) and Vertex forwarded the body field without
the beta, which the platform rejects with "safeguards: Extra inputs are not
permitted" (a 400 Claude Code hides by retrying without them).

Map the beta for bedrock and vertex_ai in the beta headers config and add
`safeguards` to the Bedrock Invoke request allowlist so the pair reaches
both platforms unchanged. Nothing is injected: a client that sends
`safeguards` without the beta still gets the platform's 400, exactly as
api.anthropic.com answers it.
2026-09-21 12:21:50 -07:00
Mateo Wang
e7e4df9098
Merge pull request #42041 from BerriAI/litellm_azure_ai_gpt5_tools_responses_bridge
fix(azure_ai): bridge gpt-5.4+ function tools with reasoning to the Foundry Responses API
2026-09-21 12:21:02 -07:00
Joshua Valluru
bf5dff8986 chore: sync MCP UTF-8 fix with main 2026-09-21 12:15:57 -07:00
kerry-berri
f92ff60ebd
Merge pull request #42280 from BerriAI/litellm-providers/price-sync-openrouter
chore(prices): sync OpenRouter prices: 3 models
2026-09-21 12:11:43 -07:00
kerry-berri
b619cc22bd
Merge pull request #42279 from BerriAI/litellm-providers/price-sync-aws-bedrock
chore(prices): sync AWS Bedrock prices: 4 models [enrichment failed: AWS Bedrock, 26 held]
2026-09-21 12:11:39 -07:00
kerry
c12c20083f fix(fal_ai): keep image data serializer none safe
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 19:10:33 +00:00
kerry
9b54c4b077 refactor(fal_ai): bill flux dev per 1024x1024 megapixel and drop ImageResponse retyping
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 19:10:33 +00:00
kerry
adc4e6a132 fix(fal_ai): price images from the dimensions fal returns
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-21 19:10:32 +00:00
Yujong Lee
59dbbe5ce7 fix(cache): outline Python configuration extraction 2026-09-21 12:10:06 -07:00
Yujong Lee
cda8904382 fix(cache): keep native wheel within size budget 2026-09-21 12:03:13 -07:00
Mateo Wang
9a90adad32
Merge pull request #42275 from BerriAI/litellm_claude_platform_messages_beta_passthrough
fix(bedrock): forward anthropic-beta headers verbatim on the Claude platform messages path
2026-09-21 12:01:39 -07:00
berriai-litellm-provider-info-sync[bot]
a6842da112
chore(prices): sync OpenRouter prices: 3 models
openrouter/~deepseek/deepseek-pro-latest: max_tokens, max_output_tokens, off_peak_pricing, input_cost_per_token, output_cost_per_token, cache_read_input_token_cost
openrouter/deepseek/deepseek-v4-pro: input_cost_per_token, output_cost_per_token, cache_read_input_token_cost
openrouter/deepseek/deepseek-v4-pro-0813: max_tokens, max_output_tokens, off_peak_pricing, input_cost_per_token, output_cost_per_token, cache_read_input_token_cost
2026-09-21 19:01:36 +00:00
berriai-litellm-provider-info-sync[bot]
ae06a6478f
chore(prices): sync AWS Bedrock prices: 4 models [enrichment failed: AWS Bedrock, 26 held]
global.moonshotai.kimi-k3: 
qwen.qwen3-coder-next: max_tokens, supports_vision, max_input_tokens, max_output_tokens, supports_audio_input, supports_response_schema
qwen.qwen3-next-80b-a3b: max_tokens, supports_vision, max_input_tokens, max_output_tokens, supports_audio_input, supports_response_schema
qwen.qwen3-vl-235b-a22b: max_tokens, max_input_tokens, max_output_tokens, supports_audio_input, supports_response_schema
2026-09-21 19:01:36 +00:00
Yassin Kortam
5673f67727
Merge pull request #42022 from BerriAI/litellm_redis_durable_spend_log_buffer
fix(proxy): park requeued spend logs in Redis so they survive a pod restart during a DB outage
2026-09-21 14:01:34 -05:00
mateo-berri
5db2a97829 chore: keep main's lazy OpenAPI snapshot
The snapshot check runs on Python 3.12, which keeps the indentation of a route docstring that Python 3.13+ strips at compile time, so regenerating it locally on 3.14 produces a file CI rejects.
2026-09-21 12:01:26 -07:00
mateo-berri
2fe5c8990e fix(bedrock_mantle): bill Mantle's un-versioned Claude ids from a Mantle cost row
Mantle serves anthropic.claude-haiku-4-5 without the dated -20251001-v1:0
suffix the Bedrock row carries, so the native route billed it at 0. Add a
bedrock_mantle/anthropic.claude-haiku-4-5 row and let a
bedrock_mantle/<region>/<model> name fall back to the region-free
bedrock_mantle/<model> row before the provider-prefixed lookup. Also
satisfy the mutable-collection gate in the native messages transformation.
2026-09-21 12:00:38 -07:00
mateo-berri
4eed951e6f Merge commit '36b8be7d81b' into litellm_mantle_native_anthropic_messages_b4dc
# Conflicts:
#	tests/test_litellm/llms/anthropic/experimental_pass_through/messages/test_anthropic_experimental_pass_through_messages_handler.py
2026-09-21 12:00:37 -07:00
Yujong Lee
a7bc8e373e feat(cache): project Python backend configuration 2026-09-21 11:56:04 -07:00
mateo-berri
5ea4fe620f test(router): give each prompt caching check test a fresh callback registry 2026-09-21 11:55:58 -07:00
moe-berri
a83773cfa5
Merge pull request #41886 from BerriAI/litellm_jev_autorouter_launch_1789767495
feat(auto-router): add JEV classifier alongside LLM classifier
2026-09-21 11:55:44 -07:00