kerry
954dfa6ba7
test(utils): allow modality batch cost fields in cost map schema test
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 02:38:53 +00:00
kerry
7761d04450
test(vertex): cover malformed batch usage details
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 02:37:51 +00:00
Devin AI
123b76e2d8
fix(health): annotate credential resolution casts
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 02:34:49 +00:00
mateo-berri
8b80971586
Merge remote-tracking branch 'origin/main' into litellm_anthropic_guardrail_system_and_tool_use
2026-09-14 19:27:58 -07:00
kerry
168d0d3d99
fix(cost): drop remaining unnecessary cast in batch cost calculator
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 02:26:19 +00:00
mateo-berri
0a0a9509dc
test(bedrock): type the session policy test helpers with the policy TypedDict
2026-09-14 19:21:23 -07:00
mateo-berri
22b377fe2a
fix(proxy): log the provider usage on deferred /v1/messages calls and price cache writes without a creation rate
...
With a post-call guardrail the proxy defers async success logging, and every nested wrapper on a
/v1/messages call bridged to the Responses API overwrote the stored closure, so the spend log was
built from the outermost Anthropic-shaped reply under Responses semantics and recorded the prompt
tokens without the cache hit. The first wrapper to exit now keeps the slot, which is the innermost
provider response, the same one the non-deferred path logs.
The flat cost path also billed cache-creation tokens at 0 when the model had no
cache_creation_input_token_cost. It now falls back to the input rate, and the 1h rate to the
creation rate, matching the tiered path and the custom pricing helper.
2026-09-14 19:21:03 -07:00
Devin AI
7255a201a3
fix(health): resolve stored credentials for realtime checks
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 02:19:15 +00:00
kerry
a5f00b9189
fix(cost): drop unnecessary cast in batch rate lookup
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 02:15:22 +00:00
yassin
b9dd397746
fix(prometheus): count 401 auth failures in litellm_proxy_failed_requests_metric
...
Invalid or unknown virtual keys were filtered out of the proxy failed and total
request counters entirely. Count them with hashed_api_key unset so caller-chosen
key strings cannot create unbounded label series, and normalize the request
route on the auth failure path so dynamic path ids do not leak into the route
label either.
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 02:09:00 +00:00
kerry
bf1bdb3045
fix(ci): keep cost map schema generated by the base branch generator
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 02:07:44 +00:00
mateo-berri
8d5d5d5824
fix(bedrock): grant rerank, retrieve, agent, and agentcore actions in the web identity session policy
2026-09-14 19:03:55 -07:00
kerry
a5fc880c90
refactor(vertex): move batch usage modality parsing under llms
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 02:03:32 +00:00
kerry
ca7364fb05
fix(batches): avoid strict lint violation in usage parser
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 02:00:48 +00:00
kerry
c0c5044c45
fix(batches): keep modality token details in raw vertex batch usage
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 01:57:50 +00:00
kerry
2b32f586c0
refactor(cost): extract batch modality rate lookup
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 01:51:41 +00:00
kerry
ce83fac351
fix(cost): bill batch embeddings per modality token rate
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 01:50:21 +00:00
mateo-berri
16c326537f
fix(guardrails): define UnappliableRequestRewrite in the shared guardrail translation utils
...
The three guardrail translation handlers imported the exception from the proxy policy engine through a function-local import, which CodeQL flagged as a cyclic import. The exception and its helper now live next to the handlers in the shared guardrail translation utils, and the tests import it from there.
The Prompt Security modify-mode helper is also restructured into early-return TypedDict displays so the LIT002 budget stays at its limit
2026-09-14 18:39:54 -07:00
Mateo Wang
d2859e18d7
Merge pull request #40988 from BerriAI/litellm_responses_stream_error_exception_mapping
...
fix(responses): route mid-stream error events through exception_type so content_policy_fallbacks fire
2026-09-14 18:36:20 -07:00
kerry
a28ea22ec1
fix(cost): move gemini-embedding-2-preview to per-token rates
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 01:34:22 +00:00
kerry
27a486e4d3
test(cost): cover modality guards and image detection fallbacks
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 01:34:17 +00:00
Mateo Wang
1ba97665b2
Merge pull request #41046 from BerriAI/devin/1789368982-cli-strenum-py310
...
fix(cli): drop enum.StrEnum so the CLI imports on Python 3.10
2026-09-14 18:32:30 -07:00
mateo-berri
931bdb8c0b
fix(compression): protect part-level cache_control rows in compress() too
...
compress() scores text-only copies of the rows, so a content-part cache_control marker was gone by the time get_protected_indices ran and the pinned row could still be stubbed. Read protection from the original rows, which are index-aligned with the normalized copies, and add a regression test that fails without the change.
2026-09-14 18:19:51 -07:00
mateo-berri
6574d83eae
Merge remote-tracking branch 'origin/main' into HEAD
...
# Conflicts:
# litellm/proxy/guardrails/guardrail_hooks/prompt_security/prompt_security.py
2026-09-14 18:19:38 -07:00
kerry
4a8ec7b9d8
fix(cost): bill gemini-embedding-2-preview per token like the GA entries
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 01:18:50 +00:00
kerry
6a18105275
fix(vertex): only bill image rate without modality details when every input is an image
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 01:16:00 +00:00
jesus
e390dfbb64
fix(headroom): format protected index assignment
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 01:13:17 +00:00
kerry
6cbed7b4c0
fix(vertex): drop Final image_tokens redeclaration flagged by basedpyright
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 01:10:27 +00:00
jesus
9c59feee7c
fix(headroom): protect the cached prefix through the last cache_control breakpoint
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 01:07:41 +00:00
kerry
ac8e1a355c
test(vertex): load local pricing in embedding billing tests
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 01:00:32 +00:00
Mateo Wang
dad6e9be4a
Merge branch 'main' into fix/headroom-protect-cache-control-rows
2026-09-14 17:58:17 -07:00
yucheng-berri
8481bc27f9
Merge pull request #41132 from BerriAI/litellm_bedrock_grounding_from_plain_messages
...
fix(bedrock guardrails): derive contextual grounding source and query from plain messages
2026-09-14 17:56:58 -07:00
kerry
e31c64d2e0
fix(schema): sync model price schema with cost map
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 00:54:58 +00:00
kerry
e5845c17ff
fix(vertex): bill image inputs at the image rate when usage lacks modality details
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 00:51:49 +00:00
yassin
1943667fef
fix(router): run sync pre-call checks when a model_name collides with a deployment id
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 00:51:13 +00:00
kerry
6c9fe65608
style(cost): apply ruff formatting to modality guards
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 00:47:30 +00:00
kerry
0c91d9157c
refactor(vertex): drop unused resolved_files from embed response parsing
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 00:45:08 +00:00
kerry
e26a4970dd
fix(test): complete synthetic model metadata
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 00:42:21 +00:00
yassin
bdc63d590e
fix(router): keep weighted routing when a deployment id equals a model_name
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 00:42:18 +00:00
kerry
d4f2119b03
fix(cost): bill gemini-embedding-2 per token and stop double charging audio
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 00:41:46 +00:00
yucheng
0d03ea3154
Merge remote-tracking branch 'origin/main' into litellm_agent365_mcp_guardrail
LiteLLM Rust / rust-lint (push) Has been cancelled
ai-gateway image / ai-gateway release image (push) Has been cancelled
LiteLLM Rust / rust-test (push) Has been cancelled
2026-09-15 00:30:12 +00:00
yucheng
4bfaf74edc
refactor(guardrails): keep Agent 365 PR to the guardrail, move MCP changes to stacked PRs
...
The listed-tool metadata and per-caller catalog cache move to a follow-up PR
stacked on this one, and the RFC 9728 sign-in challenge and discovery metadata
move to a second PR stacked on that. On its own the guardrail evaluates the
tool name and arguments and the caller presents its Entra token
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 00:29:58 +00:00
Yuneng Jiang
37bde0bdbe
test: keep provider request snapshots immutable
2026-09-14 17:27:18 -07:00
yucheng
b030164f73
Merge remote-tracking branch 'origin/main' into litellm_agent365_mcp_guardrail
2026-09-15 00:26:03 +00:00
yucheng-berri
b67137b67f
Merge pull request #40702 from BerriAI/litellm_model_armor_logging_only_streaming
...
feat(model_armor): logging_only mode scans completed streams after delivery
2026-09-14 17:23:32 -07:00
Yuneng Jiang
51db940514
test: relocate strict replay harness coverage
2026-09-14 17:20:58 -07:00
Yuneng Jiang
b9c194076a
test: preserve strict replay numeric spelling
2026-09-14 17:11:56 -07:00
ryan
98ea14758f
fix(proxy): only widen an id-only bulk member delete to its email when the user lists the team
...
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 00:09:57 +00:00
yucheng
5ceec4c21e
fix(guardrails): cite message scoping only when an unscoped pass finds content
...
The not_run reason now says after message scoping only when the same messages carry text or tool calls without the skip flags applied. A request that is empty to begin with, whatever the flags, records no scannable content
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-15 00:03:02 +00:00
yucheng
52da64a45b
fix(guardrails): only cite message scoping in the not_run reason when scoping is on
...
A request whose messages carry no scannable content at all, with no skip flag set, now records the neutral reason no scannable content instead of blaming configuration
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-14 23:56:32 +00:00