Commit graph

18968 commits

Author SHA1 Message Date
mateo-berri
ba93c4943c Merge remote-tracking branch 'origin/main' into litellm_mistral_codex_reasoning_effort_client_metadata 2026-09-17 18:21:24 -07:00
mateo-berri
b506305feb Merge remote-tracking branch 'origin/main' into litellm_vertex_chirp3_streaming_stt
# Conflicts:
#	uv.lock
2026-09-17 18:21:05 -07:00
Yuneng Jiang
349e8b9358
test(proxy): forward each method through the typesafe route to a mocked upstream
The route test only resolved route names. It now sends every method through
the proxy with a virtual key and asserts the upstream receives that method,
the proxy's TypeSafe key and the caller's body
2026-09-17 18:19:42 -07:00
yassin
393d084db7 feat(proxy): restrict Transcribe media and output buckets per operator allowlist
Non-admin keys may only start transcription jobs whose media and transcript output live in the S3 buckets listed in general_settings.transcribe_media_buckets, and may not supply DataAccessRoleArn or JobExecutionSettings. The setting is editable from the Admin UI general settings table (new List editor) and DB values load into the running proxy when config.yaml does not set it

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-18 01:18:07 +00:00
yassin
659b85ea80 Merge remote-tracking branch 'origin/main' into litellm_deepgram_listen_websocket_passthrough
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

# Conflicts:
#	litellm/proxy/pass_through_endpoints/pass_through_endpoints.py
2026-09-18 01:17:36 +00:00
yassin
37091c2bc7 Merge remote-tracking branch 'origin/main' into litellm_lazy_fastapi_bpe_imports 2026-09-18 01:14:48 +00:00
mateo-berri
e5744c5d88 fix(azure_ai): mint an oidc Entra token only from the agent's own ids
The OIDC branch of the agent token mint handed a missing tenant_id or
client_id to the shared helper, which fills them from the host's
AZURE_TENANT_ID and AZURE_CLIENT_ID, so an agent carrying only an
oidc/ token could be authenticated with the host's identity. The
branch now needs both ids on the agent and otherwise fails with the
credential help, which names the requirement
2026-09-17 18:13:41 -07:00
Joshua Valluru
21beb9b7b1 fix(ci): verify coverage uploads and normalize dependency inventories 2026-09-17 18:11:49 -07:00
Yuneng Jiang
e8c1fe884e
Merge remote-tracking branch 'origin/main' into litellm_/circleci-specific-sha-0cf414 2026-09-17 18:05:39 -07:00
Yuneng Jiang
acc375a2a9
fix(proxy): forward every method on the typesafe pass-through route
#41607 registered the typesafe pass-through with a route that only accepted
GET and POST, so a PUT, DELETE or PATCH to /typesafe/... came back 405
before reaching the upstream. CircleCI's pass-through method test caught it,
but that lane does not run on the PR gate, so the mapped unit test now
covers the same invariant for typesafe

The same CircleCI run also failed test_models_by_provider because typesafe
is not a key of models_by_provider. Registering it there would satisfy the
assertion without changing behaviour: typesafe has no LlmProviders member,
so a typesafe/* deployment never loads and get_valid_models returns nothing,
and its spend is priced straight from model_cost. The test already skips
search-mode providers for that reason, so it now skips evaluation mode too
2026-09-17 18:04:58 -07:00
Mateo Wang
c25c098bc1
Merge pull request #41469 from BerriAI/litellm_bedrock_mantle_responses_drop_top_p
fix(responses): drop top_p for gpt-5 reasoning models when drop_params is set
2026-09-17 18:04:19 -07:00
Mateo Wang
3424390101
Merge pull request #41448 from BerriAI/litellm_fix_passthrough_empty_query_params_drop_url_query
fix(passthrough): keep target URL query when client sends no query params
2026-09-17 18:02:48 -07:00
yassin
ea37596b88 feat(mcp): let proxy admins force-close live MCP sessions and revoke stored user credentials
Adds an admin-only DELETE /v1/mcp/sessions that terminates stateful MCP gateway sessions on the current worker by session id prefix and/or by the LiteLLM user that opened them, tombstones the terminated ids so a client reusing one gets 404 instead of a silently recreated stateless session, and lets PROXY_ADMIN name a user_id on the BYOK and OAuth credential delete routes. Full and view-only admins can list every user's stored credential metadata for a server (never the secret). The dashboard gains Disconnect controls on the Live Connections tab and a User Credentials tab with Revoke controls, both hidden from read-only admins.

Resolves LIT-8001

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-18 01:01:26 +00:00
mateo-berri
788e6eb737 merge: origin/main into litellm_jwt_token_exchange_grant 2026-09-17 17:59:23 -07:00
mateo-berri
e82d15a3aa feat(vertex_ai): stream Chirp speech-to-text over /v1/realtime
Bridge OpenAI Realtime transcription sessions on vertex_ai/chirp_* models to
Google Speech-to-Text v2 StreamingRecognize over gRPC, so partial and final
transcripts stream back while audio is still being sent. Interim results become
delta events, finals become completed events carrying billed seconds, the gRPC
stream rotates at 240 s under Google's five-minute cap with billed time chained
across rotations, and audio is split into 25 KB requests.

The OpenAI transcription protocol helpers move into a shared module that Meta
Muse now uses too, google-cloud-speech ships behind a new stt-vertex-chirp extra
bundled into the proxy runtime, and the cost map lists /v1/realtime for chirp_3.
2026-09-17 17:57:40 -07:00
Mateo Wang
706f69af50
Merge pull request #41665 from BerriAI/litellm_remove_dead_vertex_v1beta1_stub
refactor(vertex_ai): remove constant-False is_using_v1beta1_features stub and its dead call sites
2026-09-17 17:56:22 -07:00
Mateo Wang
151a92a230
Merge pull request #41662 from BerriAI/litellm_remove_retired_provider_streaming_handlers
chore(streaming): remove retired ai21/maritalk/baseten/azure raw-bytes handlers and dead palm completion code
2026-09-17 17:56:15 -07:00
Mateo Wang
98b3564a5b
Merge pull request #41660 from BerriAI/litellm_remove_commented_out_proxy_tests
chore(tests): remove fully commented-out proxy test files and their CI entries
2026-09-17 17:56:02 -07:00
Mateo Wang
2e195c5f70
Merge pull request #41654 from BerriAI/litellm_remove_commented_out_test_files
test: remove 15 fully commented-out test files that collect no tests
2026-09-17 17:55:55 -07:00
Mateo Wang
9966d9d1a8
Merge pull request #41652 from BerriAI/litellm_remove_dead_langfuse_v1_path
refactor(langfuse): remove unreachable langfuse v1 logging path
2026-09-17 17:55:47 -07:00
Mateo Wang
cb14dee357
Merge pull request #41648 from BerriAI/litellm_remove_commented_streaming_tests
test(streaming): remove commented-out retired-provider streaming tests
2026-09-17 17:55:40 -07:00
Mateo Wang
a7dc6551c0
Merge pull request #41640 from BerriAI/litellm_remove_dead_provider_config_test_blocks
chore(tests): remove commented-out hf, petals and vertex ai completion blocks
2026-09-17 17:55:12 -07:00
kerry-berri
f51f01fb54
Merge pull request #41443 from BerriAI/litellm_remove_brittle_price_pinning_tests
test: delete unit-test assertions that pin cost-map prices, limits and deprecation dates
2026-09-17 17:52:42 -07:00
Joshua Valluru
daff22a884 test(mcp): grant the guardrail control team its server 2026-09-17 17:50:01 -07:00
ryan-crabbe-berri
85fe646776
Merge pull request #41694 from BerriAI/litellm_rename_model_sync_allowlists
fix(proxy): propagate db model renames to key, team, org, project and user model allowlists
2026-09-17 17:42:06 -07:00
Joshua Valluru
6aa921c1bc fix(ci): run dependency tests in an isolated Python environment 2026-09-17 17:42:01 -07:00
Joshua Valluru
640b0e5fa9 test(mcp): discover concrete tools through a catalog key 2026-09-17 17:41:57 -07:00
kerry
8504c51f6c Revert "test: keep prompt cache prediction logic tests and drop only their price pins"
This reverts commit 810df257d8.
2026-09-18 00:40:38 +00:00
Mateo Wang
2fb502a556
Merge pull request #41702 from BerriAI/litellm_bedrock_invoke_tool_search_opus48_gen5
fix(bedrock): gate Invoke tool search on the model map for Opus 4.8 and gen 5 Claude
2026-09-17 17:39:34 -07:00
kerry
810df257d8 test: keep prompt cache prediction logic tests and drop only their price pins
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-18 00:39:34 +00:00
Joshua Valluru
15b45839e1 test(mcp): enforce security regression contracts through live gateway 2026-09-17 17:37:40 -07:00
ryan-crabbe-berri
03ba5634a2
Merge pull request #40632 from BerriAI/litellm_fix_ui_disable_cache_control_injection_points
fix(ui): persist disabling cache control injection points on model update
2026-09-17 17:35:07 -07:00
kerry-berri
2842a2fb05
Merge pull request #41678 from BerriAI/litellm_auto-merge-drop-bot-gates
ci(auto-merge): stop requiring Greptile and Bugbot on price sync pull requests
2026-09-17 17:32:35 -07:00
kerry
b97c2d6307 test: drop pinned bedrock invoke cost literals
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-18 00:31:11 +00:00
Mateo Wang
cf42b607c3
Merge pull request #41615 from BerriAI/litellm_jev_complexity_classifier
feat(router): add TypeSafe Jev as a complexity router classifier
2026-09-17 17:31:08 -07:00
kerry
84d4d17bf8 Merge remote-tracking branch 'origin/main' into litellm_remove_brittle_price_pinning_tests
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

# Conflicts:
#	tests/test_litellm/llms/bedrock/chat/test_converse_transformation.py
2026-09-18 00:29:52 +00:00
kerry
c4620170ca test: delete assertions that pin vendor cost map facts
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-18 00:28:49 +00:00
yucheng-berri
a9bea4f64d
Merge pull request #41571 from BerriAI/litellm_policy_attachment_priority
feat(policy_engine): explicit priority for policy attachment execution order
2026-09-17 17:27:55 -07:00
mateo-berri
9ae5bde829 fix(bedrock_mantle): resolve gpt-5 sampling rules from the OpenAI catalogue entry 2026-09-17 17:25:59 -07:00
kerry
5d5f191a9c Merge remote-tracking branch 'origin/main' into litellm_auto-merge-drop-bot-gates 2026-09-18 00:20:29 +00:00
ryan
696587c4ab fix(ui): persist disabling cache control injection points on model update
Turning Cache Control off on the model edit screen omitted the field from the
PATCH body, which the backend reads as leave unchanged, so the stored
cache_control_injection_points list survived the save. The dashboard now sends
an explicit null when a stored list is being disabled, and update_db_model
clears that field on null the same way it already clears the mirrored pricing
fields. Omitted keys keep the stored value

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-18 00:20:22 +00:00
mateo-berri
82d252210e fix(proxy): word the token exchange's 503 by whether the database fault can clear
A permanent database fault (a missing or version-skewed query engine)
in the subject_token check was answered with the same "retry" wording
as a transient outage. The status stays 503 temporarily_unavailable,
the only OAuth error a client reads as the server's fault and what the
mint path already answers to the same fault, but the description now
says retrying will not help until the deployment is repaired, using
PrismaDBExceptionHandler.is_permanent_database_fault the way the mint
path does.
2026-09-17 17:20:17 -07:00
mateo-berri
853fd04bd5 test(router): price the unpriced Jev cost test off a model the registry never ships 2026-09-17 17:18:03 -07:00
yassin
4f8a5b5e12 Merge remote-tracking branch 'origin/main' into litellm_transcribe_passthrough
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

# Conflicts:
#	litellm/proxy/_lazy_features.py
#	litellm/proxy/_lazy_openapi_snapshot.json
#	litellm/proxy/pass_through_endpoints/success_handler.py
#	ui/litellm-dashboard/src/lib/http/schema.d.ts
2026-09-18 00:17:47 +00:00
ryan
761e0775b9 test(proxy): share the jwt key mapping test doubles across the deletion endpoint tests
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-18 00:17:45 +00:00
mateo-berri
d4b5f05f97 chore: merge main into litellm_foundry_a2a_entra_agents 2026-09-17 17:17:21 -07:00
Joshua Valluru
3519d01549 test(mcp): add isolated SDK2 dependency compatibility gate 2026-09-17 17:16:47 -07:00
yassin
ea1fd5f288 fix(proxy): price deleted Transcribe jobs from their start response and read media length without loading it
Restrict signed media fetches to https URLs, treat a job AWS no longer knows as
priceable from the media named in its StartTranscriptionJob response instead of
polling to the eight hour maximum, and read the media length with libsndfile
headers instead of decoding the whole file into memory

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-18 00:16:18 +00:00
Mateo Wang
02a20fe264
Merge pull request #41699 from BerriAI/litellm_fireworks_minimax_m3_supports_vision
fix(fireworks_ai): restore supports_vision on minimax-m3 in the cost map
2026-09-17 17:15:56 -07:00
kerry
68f2c64114 test: drop the cost map mutation gate script, its tests and the price relationship invariants
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-18 00:13:48 +00:00