Commit graph

41449 commits

Author SHA1 Message Date
yuneng-jiang
bdf47eb0f0 Adding tests 2026-02-04 17:01:48 -08:00
yuneng-jiang
28bae2264c ai hub req auth working 2026-02-04 16:57:46 -08:00
yuneng-jiang
c47866afb9 useAuthorized refactor 2026-02-04 16:37:45 -08:00
Ishaan Jaff
2a3843aa57
[Fix] inconsistent response format in anthropic.messages.acreate() when using non anthropic providers (#20442)
* _translate_openai_content_to_anthropic

* test_response_format_consistency

* test fixes unit tests

* test fix

* fix: use dict access for anthropic content blocks in tests (#20447)

The translate_openai_response_to_anthropic method returns dicts, not objects.
Changed .type/.text/.thinking attribute access to dict ['key'] access.

---------

Co-authored-by: shin-bot-litellm <shin-bot-litellm@berri.ai>
2026-02-04 16:37:40 -08:00
Ishaan Jaff
6a73e5bd37
Revert "fix(a2a): use text/event-stream SSE format for message/stream endpoin…" (#20446)
This reverts commit 0209b214ac.
2026-02-04 16:08:22 -08:00
shin-bot-litellm
0209b214ac
fix(a2a): use text/event-stream SSE format for message/stream endpoint (#20365)
* fix(a2a): use text/event-stream SSE format for message/stream endpoint

The A2A gateway's streaming response was using application/x-ndjson
Content-Type and raw NDJSON body format. The A2A protocol spec requires
text/event-stream with SSE framing (data: ...\n\n).

The official a2a-sdk client validates the Content-Type header and raises
SSEError when it doesn't contain text/event-stream.

Changes:
- Changed media_type from application/x-ndjson to text/event-stream
- Updated response body to use SSE framing (data: prefix + \n\n suffix)
- Added tests validating Content-Type and SSE body format

Fixes #20278

* Potential fix for code scanning alert no. 4045: Information exposure through an exception

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

* test(a2a): add manual SSE format validation script

Adds a manual test script that:
1. Starts a real A2A agent on port 10001
2. Starts LiteLLM proxy with the agent registered
3. Makes a streaming request to the proxy's A2A gateway
4. Validates Content-Type header is text/event-stream
5. Validates body uses SSE framing (data: ...\n\n)

Run: python tests/a2a_manual/test_a2a_sse_manual.py

---------

Co-authored-by: shin-bot-litellm <shin-bot-litellm@users.noreply.github.com>
Co-authored-by: Ishaan Jaff <ishaanjaffer0324@gmail.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-02-04 16:07:17 -08:00
Shivam Rawat
795ba8efe3
Merge pull request #20443 from BerriAI/docs_langfuse_multi_project_cred_support
langfuse doc update
2026-02-04 15:55:04 -08:00
shivam
555e1da9b4 langfuse doc update 2026-02-04 15:53:24 -08:00
yuneng-jiang
ec4f7a38ff Add option for authentication for public AI Hub 2026-02-04 15:49:05 -08:00
shin-bot-litellm
d1994a148d
Fix mypy type error in fireworks_ai transformation (#20391)
Cast message to dict before calling pop() to satisfy mypy's type checker.
The message is typed as a Union of TypedDicts which don't have the
'provider_specific_fields' key, but the runtime check already confirms
it's a dict with this key.
2026-02-04 15:44:45 -08:00
yuneng-jiang
d2e113111f
Merge pull request #20436 from BerriAI/litellm_search_tools_config_ui
[Feature] UI - Search Tools: Show Config Defined Search Tools
2026-02-04 13:56:19 -08:00
yuneng-jiang
cd9466a50c Adding tests 2026-02-04 12:35:58 -08:00
yuneng-jiang
609c423314 migrate to antd table 2026-02-04 12:22:57 -08:00
yuneng-jiang
208cf5e86d refactor - rename search tools files 2026-02-04 11:53:03 -08:00
yuneng-jiang
a16faa9e0a
Merge pull request #20394 from BerriAI/litellm_spend_fix_2
[Fix] Unique Constraint on Daily Tables + Logging When Updates Fail
2026-02-04 09:42:46 -08:00
Lucky-Lodhi2004
e4b45dc32e
Merge branch 'main' into ttl-prompt-caching-bedrock 2026-02-04 18:52:28 +05:30
Lucky Lodhi
31e2e727e3 fixed linting 2026-02-04 13:20:40 +00:00
Kris Xia
bfabb39fc6
fix: Fix Vertex AI Gemini streaming content_filter handling
- Add promptFeedback.blockReason check in chunk_parser
- Return content_filter finish_reason when blocked
- Extract content filter logic into _check_prompt_level_content_filter() method
- Update unit tests to reflect simplified implementation

Signed-off-by: Kris Xia <xiajiayi0506@gmail.com>
2026-02-04 21:11:47 +08:00
Lucky Lodhi
1e55e61907 made changes suggested by agent 2026-02-04 13:10:37 +00:00
Sameer Kankute
8b563a7641
Merge pull request #20402 from BerriAI/litellm_responses_tools_file_ids
Add mapping for responses tools in file ids
2026-02-04 18:09:39 +05:30
Sameer Kankute
8a3b253e62
Merge pull request #20390 from BerriAI/litellm_fix_empty_message
Fix: empty assistant message for converse API
2026-02-04 18:05:37 +05:30
Sameer Kankute
18a524a1dc
Merge pull request #20408 from BerriAI/litellm_fix_model+map_streaming
Fix supports_native_streaming for gemini and vertex ai and claude models
2026-02-04 17:56:48 +05:30
Sameer Kankute
a86e501632
Merge pull request #20407 from BerriAI/litellm_key_mcp_permissions
Add Key info endpoint object permission data
2026-02-04 17:56:05 +05:30
Sameer Kankute
1a5f2a566f Fix: test_bedrock_no_default_message 2026-02-04 17:52:28 +05:30
Sameer Kankute
b2feedc469
Merge pull request #20318 from BerriAI/litellm_oss_staging_02_03_2026
feat(guardrails): implement team-based isolation guardrails mgmnt (#1…
2026-02-04 17:49:30 +05:30
Sameer Kankute
54b5c7d2cd Fix: litellm/tests/test_litellm/proxy/guardrails/guardrail_hooks/test_grayswan.py 2026-02-04 17:35:26 +05:30
Sameer Kankute
f8b6af5577 Fix test_transform_messages_disable_copilot_system_to_assistant 2026-02-04 17:29:55 +05:30
Sameer Kankute
674593e4d7
Merge pull request #20413 from BerriAI/revert-20145-fix/proxy_failure_cases
Revert "fix: proxy failure cases, now log ip and user agent, key hash, name"
2026-02-04 17:17:39 +05:30
Sameer Kankute
6b25e37309
Revert "fix: proxy failure cases, now log ip and user agent, key hash, name (…"
This reverts commit ec279eb426.
2026-02-04 17:16:51 +05:30
Sameer Kankute
5cec5c3bef fix model map json 2026-02-04 14:48:49 +05:30
Sameer Kankute
0ed5e51f9b Fix supports_native_streaming for anthropic models 2026-02-04 14:44:31 +05:30
Sameer Kankute
20c21c63d9 Fix supports_native_streaming for gemini and vertex ai models 2026-02-04 14:41:32 +05:30
Sameer Kankute
fc873d8867 Fix mypy issues 2026-02-04 14:40:08 +05:30
Sameer Kankute
42561729ee Add Key info endpoint object permission data 2026-02-04 14:21:19 +05:30
Sameer Kankute
bfc0c4b4ab
Merge pull request #20396 from BerriAI/litellm_copilot_kit_sdk
[DOCS]Add copilotkit sdk doc as supported agents sdk
2026-02-04 13:41:08 +05:30
Sameer Kankute
4d90767d82
Merge pull request #20406 from BerriAI/litellm_deepreasearch_agent_gemini
Add gemini deep research in model cost map
2026-02-04 13:39:55 +05:30
Sameer Kankute
216cf4cac5 Add gemini deep research in model cost map 2026-02-04 13:38:13 +05:30
Sameer Kankute
e4c1cfff9d Fix mypy issues 2026-02-04 13:25:21 +05:30
Sameer Kankute
2698c9218c Fix mypy issues 2026-02-04 13:24:00 +05:30
Sameer Kankute
5413f584f5 Fix code quality issues 2026-02-04 13:17:05 +05:30
Sameer Kankute
8b3213ce5c Add mapping for responses tools in file ids 2026-02-04 13:12:45 +05:30
akraines
774a015aad
fix: Preserve streaming content on guardrail-sampled chunks (#20027)
The unified guardrail's streaming iterator hook processes every Nth
chunk (sampling_rate, default 5). On each sampled chunk it calls
process_output_streaming_response, which combines all accumulated text
into the first chunk and clears all subsequent chunks to "".

The hook then yielded `processed_items[-1]` — the last item, whose
content had been cleared to "". This permanently lost every Nth
chunk's content, causing random missing words/tokens in the client
output (observed in Roo Code, Open WebUI, etc.).

Fix: deep-copy the current chunk before guardrail processing runs,
then yield the original (unmodified) chunk. The guardrail validation
still executes and can block if it detects a problem, but the stream
content is preserved.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 22:44:30 -08:00
Harshit Jain
13130ea3e1
Litellm fix langfuse otel trace (#20382)
* fix: support multi-project keys and fix trace leakage

* fix: Langfuse otel handle

* fix lint errors mypy

* passing all test case

---------

Co-authored-by: Krish Dholakia <krrishdholakia@gmail.com>
2026-02-03 22:40:19 -08:00
Krish Dholakia
607c9f02d7
Merge branch 'litellm_oss_staging_02_04_2026' into litellm_fix_langfuse_otel_trace 2026-02-03 22:40:10 -08:00
jquinter
18f4b7219b
feat: add faster linting targets for development workflow (#19729)
* feat: add faster linting targets for development workflow

- Add lint-dev target that only checks changed files vs origin/main
- Add lint-format-changed to format only modified Python lines
- Add lint-ruff-dev using diff-quality for incremental lint checks
- Upgrade ruff from 0.1.x to 0.2.x for --range formatting support
- Add pylint and diff-cover as dev dependencies
- Use portable PIP variable for cross-platform compatibility
- Suppress poetry warnings in install-dev target

* fix(mypy): fix type: ignore placement for OTEL LogRecord import

The type: ignore[attr-defined] comment was on the import alias line
inside parentheses, but mypy reports the error on the `from` line.
Collapse to single-line imports so the suppression is on the correct
line. Also add no-redef to the fallback branch.

* fix: address review issues in faster linting PR

- Remove poetry lock/check from install-dev (slow, can mutate lockfile)
- Remove misplaced [virtualenvs] and [installer] from pyproject.toml
  (these belong in poetry.toml, not project metadata)
- Remove unused pylint dev dependency (diff-quality uses pylint output
  format, not the pylint package itself)
- Fix trailing whitespace in .PHONY declaration
- Use mktemp instead of hardcoded /tmp/ruff.txt in lint-ruff-dev
- Guard lint-ruff-FULL-dev against empty file list from git diff
- Fix incorrect comment on lint-dev target
- Regenerate poetry.lock

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: address review issues in faster linting PR

- Remove poetry lock/check from install-dev (slow, can mutate lockfile)
- Remove misplaced [virtualenvs] and [installer] from pyproject.toml
  (these belong in poetry.toml, not project metadata)
- Remove unused pylint dev dependency (diff-quality uses pylint output
  format, not the pylint package itself)
- Fix trailing whitespace in .PHONY declaration
- Use mktemp instead of hardcoded /tmp/ruff.txt in lint-ruff-dev
- Guard lint-ruff-FULL-dev against empty file list from git diff
- Fix incorrect comment on lint-dev target
- Regenerate poetry.lock

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 22:29:29 -08:00
Sameer Kankute
cdd4569064
Apply suggestion from @greptile-apps[bot]
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-02-04 11:56:17 +05:30
Sameer Kankute
465bbf3514 Add copilotkit sdk doc as supported agents sdk 2026-02-04 11:53:49 +05:30
Sameer Kankute
8109413a54 Add copilotkit sdk doc as supported agents sdk 2026-02-04 11:52:17 +05:30
Krish Dholakia
58cc6248ab
Skip test_e2e_semantic_filter when OPENAI_API_KEY is not set (#20387)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-02-03 22:09:47 -08:00
Krish Dholakia
ca34b4ee13
Revert "feat(guardrails): implement team-based isolation guardrails mgmnt (#1…" (#20393)
This reverts commit 76a399ba69.
2026-02-03 20:55:46 -08:00