Commit graph

42355 commits

Author SHA1 Message Date
Krish Dholakia
e8ec9eb44a
Merge pull request #24220 from milan-berri/fix/streaming-metadata-hidden-params
fix(logging): merge hidden_params into metadata for streaming requests
2026-03-20 11:25:45 -07:00
Sameer Kankute
45f322caef Fix ruff PLR0915 error 2026-03-20 23:52:54 +05:30
Sameer Kankute
8cb3a0f1d2 Fix ruff PLR0915 error 2026-03-20 23:42:07 +05:30
Sameer Kankute
7c168ab173 Fix gpt-5.4 using remote model cost map for tests 2026-03-20 23:35:00 +05:30
Sameer Kankute
92e98a2fd5 Fix test_aaamodel_prices_and_context_window_json_is_valid 2026-03-20 23:35:00 +05:30
Sameer Kankute
2a69426e2f Fix mypy and code qa issues 2026-03-20 23:34:59 +05:30
Sameer Kankute
0673c57fef
Merge pull request #23939 from Sameerlite/Sameerlite/azure-ai-annotations
fix(azure-ai-agents): preserve annotations in Bing Search grounding responses
2026-03-20 23:33:08 +05:30
Sameer Kankute
8d843fd93b
Merge pull request #23957 from Sameerlite/litellm_vertex-cancel-batch
fix(vertex-ai): support batch cancel via Vertex API
2026-03-20 23:32:50 +05:30
Christopher Baer
589c6cdad0
fix(gemini-embeddings): convert task_type to camelCase taskType for Gemini API (#24191)
The Gemini REST API documents the embedding task type parameter as
camelCase `taskType`. The existing transformation functions convert
`dimensions` to `outputDimensionality` but miss the parallel
`task_type` to `taskType` conversion. This adds that conversion to
both `transform_openai_input_gemini_content` (batchEmbedContents path)
and `transform_openai_input_gemini_embed_content` (embedContent path).

Fixes #24190
2026-03-20 22:32:22 +05:30
Klaus
330ef5e579 docs: add Gemini/Vertex AI to prompt caching docs
Add Google AI Studio (gemini/) and Vertex AI (vertex_ai/) as
supported providers for prompt caching. Same cache_control format
as Anthropic works - LiteLLM translates it to Google's context
caching API under the hood.

Includes SDK + proxy examples for both providers.
2026-03-20 09:48:31 -07:00
milan-berri
5372334233
Merge branch 'main' into fix/streaming-metadata-hidden-params 2026-03-20 16:32:36 +00:00
Milan
f36a59d196 fix(logging): merge hidden_params into metadata for streaming completions
Non-streaming paths call _process_hidden_params_and_response_cost; streaming
assembles the full response later and skipped that, so litellm_params.metadata
 lacked hidden_params (e.g. response_cost for OTEL/OpenSearch).

- Add _merge_hidden_params_from_response_into_metadata and call it from
  success_handler and async_success_handler after cost is set, before
  _build_standard_logging_payload.
- Unit tests for merge helper.

Tests: pytest tests/test_litellm/litellm_core_utils/test_litellm_logging.py
Made-with: Cursor
2026-03-20 16:27:41 +00:00
yuneng-jiang
1cd7a48c33 Add tests for edit and delete MCP server manager paths
Addresses Greptile feedback about missing integration tests for PUT/DELETE
when invoked by mcp_server_manager role. Adds tests for edit success/403,
delete success with team cleanup/403, and the _remove_mcp_server_from_team
helper directly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-20 09:19:53 -07:00
Krish Dholakia
523fbed233
Merge pull request #24199 from stias/fix/bedrock-count-tokens-custom-endpoint
fix(bedrock): respect api_base and aws_bedrock_runtime_endpoint in count_tokens endpoint
2026-03-20 09:10:30 -07:00
yuneng-jiang
b8c9bf7d25 refactor: extract _auto_assign and _remove helpers, use team_endpoints helper
- Replace raw prisma_client.db.litellm_teamtable.update with
  handle_update_object_permission from team_endpoints (follows
  established helper-function pattern)
- Extract _auto_assign_mcp_server_to_team and
  _remove_mcp_server_from_team helpers for reuse and testability
- Update tests to mock at the correct boundaries

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-20 09:05:18 -07:00
Seokjun Yang
d3afaf613d
Update tests/litellm_utils_tests/test_bedrock_token_counter.py
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-03-20 22:21:22 +09:00
Seokjun Yang
eb733702fc
Update tests/litellm_utils_tests/test_bedrock_token_counter.py
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-03-20 22:21:15 +09:00
Sameer Kankute
9272483f77
Merge pull request #24015 from Sameerlite/litellm_fix_ensure_alternating_roles
Litellm fix ensure alternating roles
2026-03-20 18:37:23 +05:30
Sameer Kankute
8da3efdfbe Fix code qa and mypy lint issues 2026-03-20 18:21:01 +05:30
Sameer Kankute
de217150d1
Merge pull request #24110 from BerriAI/Sameerlite/model-level-affinity
feat(router): add per-model-group deployment affinity
2026-03-20 18:05:46 +05:30
Sameer Kankute
55d815b84c
Merge pull request #23854 from milan-berri/docs/encrypted-content-affinity-min-version
docs: note min version for encrypted_content_affinity
2026-03-20 17:42:02 +05:30
Sameer Kankute
8ad2068711
Merge pull request #24106 from BerriAI/Sameerlite/pre-ratelimit-bg
fix(polling): check rate limits before creating polling ID
2026-03-20 17:41:24 +05:30
Sameer Kankute
7bf16b25d2
Merge pull request #24079 from Sameerlite/Sameerlite/passthrough-auth-fix
fix(proxy): pass-through subpath auth for non-admin users
2026-03-20 17:37:13 +05:30
Sameer Kankute
af036efe03
Merge pull request #23969 from Sameerlite/litellm_file-search-emulated-alignment
feat(file_search): align emulated Responses behavior with native output
2026-03-20 17:05:00 +05:30
Sameer Kankute
1104f928df
Merge pull request #24009 from Sameerlite/litellm_vertex_paygo_tutorial
docs(vertex): add PayGo/Priority tutorial and cost tracking flow diagramLitellm vertex paygo tutorial
2026-03-20 16:55:04 +05:30
Sameer Kankute
aafe9da7fc
Merge pull request #23999 from Sameerlite/litellm_feat_prompt_responses
[feat]Add prompt management support for responses api
2026-03-20 16:54:36 +05:30
Sameer Kankute
4d06b1cf0a fix doc 2026-03-20 16:48:27 +05:30
Sameer Kankute
ec7c94c61f Add about managed ids in the doc 2026-03-20 16:39:18 +05:30
Sameer Kankute
2634088354
Merge branch 'litellm_dev_sameer_16_march_week' into litellm_file-search-emulated-alignment 2026-03-20 16:37:15 +05:30
Sameer Kankute
2d02eaaa4e
Merge pull request #23958 from Sameerlite/litellm_gpt-5.4_mini
Day 0: gpt 5.4 mini and nano support
2026-03-20 16:28:32 +05:30
Sameer Kankute
ab8675dd12
Merge branch 'main' into litellm_oss_staging_03_05_2026 2026-03-20 14:50:21 +05:30
Sameer Kankute
4088f2b6da
Merge branch 'main' into litellm_oss_staging_03_19_2026 2026-03-20 14:46:58 +05:30
Sameer Kankute
009cbfa799
Merge pull request #24088 from Point72/ephrimstanley/limits
feat: add proxy-wide default api key tpm/rpm limits
2026-03-20 14:46:38 +05:30
Seokjun Yang
72902c39c5
Remove extra newline in common_utils.py 2026-03-20 18:09:52 +09:00
stias
bc4608e718
fix(bedrock): respect api_base and aws_bedrock_runtime_endpoint in count_tokens endpoint
The /v1/messages/count_tokens endpoint was hardcoding the Bedrock runtime
URL, ignoring api_base and aws_bedrock_runtime_endpoint settings. This
aligns it with invoke/converse handlers by using the existing
get_runtime_endpoint() method for consistent endpoint resolution.

Signed-off-by: stias <seokjun.yang@mycraft.kr>
2026-03-20 17:58:20 +09:00
yuneng-jiang
8c396e5ca9
Merge pull request #24172 from BerriAI/litellm_extract_useChatHistory_hook
[Refactor] Extract useChatHistory hook from ChatUI.tsx
2026-03-20 00:17:07 -07:00
yuneng-jiang
bdf24757c0
Merge pull request #24189 from BerriAI/litellm_teams_table_modernize
[Feature] UI - Teams: Modernize Teams Table
2026-03-20 00:16:47 -07:00
yuneng-jiang
9b519c4754
Merge pull request #24192 from BerriAI/litellm_migrate_antd_message_to_context_api
[Fix] UI: AntD Messages Not Rendering
2026-03-20 00:16:04 -07:00
Sameer Kankute
f003c9c865
Merge branch 'main' into litellm_oss_staging_03_17_2026 2026-03-20 12:33:02 +05:30
Mavik
be2c679f2d
fix: resolve recursion in OVHCloud get_supported_openai_params (#24118)
* fix: resolve recursion in OVHCloud get_supported_openai_params (#24111)

Root cause: OVHCloudChatConfig.get_supported_openai_params() called
get_model_info() which called back into get_supported_openai_params(),
causing infinite recursion and falling back to no tools support.

Made-with: Cursor

* fix: use .get() for TypedDict + don't hardcode function_calling support

Made-with: Cursor

---------

Co-authored-by: themavik <themavik@users.noreply.github.com>
2026-03-20 12:14:47 +05:30
Joe Reyna
d7c419bfee
Merge pull request #24179 from joereyna/fix/upgrade-mcp-1.26.0
fix: upgrade mcp to 1.26.0 and bump version to 1.82.5
2026-03-19 23:37:10 -07:00
yuneng-jiang
34d954f8cb [Fix] UI: Migrate AntD message API to use context-based MessageManager
AntD v5 static message API doesn't render without an App wrapper or
useMessage() context holder. Mirrors the existing notification pattern
by adding message.useMessage() to AntdGlobalProvider and routing all
calls through a new MessageManager module.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 23:29:38 -07:00
yuneng-jiang
65bfd449e9 address greptile review feedback (greploop iteration 2)
- Remove dead get_team_object mock in test (now reuses team_obj from _assert)
- Add test for existing_permission_id=None branch (team linkage)
- Remaining P1s are by-design per spec (admin blocked from MCP, team_id
  ignored for proxy admin)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 23:23:18 -07:00
yuneng-jiang
e714104702 fix: address Greptile review feedback
- P0: Separate try/except for auto-assign so server creation succeeds
  even if team permission update fails
- P1: Clean up team permission entry on MCP server delete
- P1: Add MCP_AVAILABLE skip guard to tests
- P2: Return team_obj from _assert_can_manage_team_mcp_server to
  eliminate redundant get_team_object call in create endpoint

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 23:10:44 -07:00
yuneng-jiang
dfc4401e1c fix: use check_db_only=True in _assert_can_manage_team_mcp_server
Cached team objects may have stale object_permission data. Bypassing
cache ensures the server-in-team check uses fresh data.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 23:00:38 -07:00
yuneng-jiang
6c06e6dc80 fix: link new object_permission_id back to team on first MCP server create
When a team has no object_permission_id yet, the auto-assign logic creates
an ObjectPermissionTable row but never linked it to the team. Now updates
the team's object_permission_id after creation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 22:57:27 -07:00
yuneng-jiang
f4e5fb2b4a fix: exclude team_id from Prisma create payload in _prepare_mcp_server_data
team_id is a request-level field, not a DB column. Excluding it prevents
Prisma from rejecting the create call.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 22:50:35 -07:00
Ryan Crabbe
ad43a35d76 feat: add control plane for multi-proxy worker management
Adds a control plane capability that enables a central admin instance
to manage multiple regional worker proxies from a single UI.

Backend:
- Worker registry loaded from YAML config (worker_id, name, url)
- /.well-known/litellm-ui-config exposes is_control_plane and workers list
- /v3/login + /v3/login/exchange: opaque code exchange for cross-origin
  username/password auth (JWT never in URL/logs, single-use 60s TTL)
- SSO cookie handoff with return_to → opaque code → exchange
- _validate_return_to: full origin validation (scheme+hostname+port)
- Startup warning when control_plane_url set without Redis
- Both /v3 endpoints gated behind control_plane_url config

Frontend:
- Worker selector dropdown on login page (gated behind is_control_plane)
- Cross-origin SSO code exchange handling on callback
- switchToWorkerUrl: localStorage-persisted worker URL for API calls
- useWorker hook: shared worker state management
- WorkerDropdown in navbar for switching workers
- Logout/switch clears worker state from localStorage

Tests:
- 7 tests for /v3/login + /v3/login/exchange
- 10 tests for _validate_return_to
- 2 tests for control plane discovery endpoint
2026-03-19 22:50:19 -07:00
yuneng-jiang
883611aa91 [Feature] UI - Teams: Modernize teams table with AntD, server-side pagination, and v2 API
Migrate the OldTeams table from Tremor to Ant Design components, matching the
Access Groups page pattern. Switch from /team/list to /v2/team/list for
server-side pagination, filtering, and sorting.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 22:42:15 -07:00
Sameer Kankute
784f9431ad
Merge pull request #24188 from BerriAI/main
merge main 0319
2026-03-20 11:03:54 +05:30