* fix: skip user budget/model validation for org-scoped teams
When creating a team with organization_id, budget and model constraints
should be validated against the organization's limits, not the user's
personal limits. This allows org admins with restrictive personal
budgets to create teams within their organization's more generous limits.
Adds 4 unit tests to verify:
- Org-scoped teams bypass user budget validation
- Org-scoped teams bypass user model validation
- Standalone teams still validate against user limits
* fix: enforce user budget/model limits for standalone teams in update_team
- Add user-level budget and model validation to update_team endpoint for standalone teams,
matching the existing pattern in new_team
- Org-scoped teams correctly bypass user validation and use organization limits instead
- Add 5 new comprehensive tests covering standalone/org team budget/model validation
* fix: Add direct TPM/RPM org limit validation and consolidate user team limit checks
- Add direct TPM/RPM comparison against org limits in _check_org_team_limits()
- Consolidate budget/models/TPM/RPM user validation into _check_user_team_limits() helper
- Ensure user limits only apply to standalone teams (organization_id=None)
- Org-scoped teams now validate TPM/RPM against org limits (not user limits)
- Add 8 tests for TPM/RPM validation scenarios (org and user limits)
- Reduce code duplication between new_team() and update_team()
* feat(generic_guardrail_api.py): new generic api for guardrails
Allows guardrail providers to work with litellm for guardrails without needing to make a PR to LiteLLM
* docs(generic_guardrail_api.md): document new generic guardrail api
* Fix: Improve PII detection and guardrail API integration
Co-authored-by: krrishdholakia <krrishdholakia@gmail.com>
* feat: correctly extract raw request from guardrail api
* docs(generic_guardrail_api.md): document this is a beta feature
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
* feat: allow fetching OIDC user info
* test: use test_auth_builder_with_oidc_userinfo_enabled gets user info when enabled
* fix tool permission doc
* docs fix diagram
* store and fetch lasso-conversation id from cache
* include gateway/v# in the baseUrl to allow simpler version migrations in the future
* add tests for cached conversation ID
* Enhance error handling in OpenAIResponsesAPIConfig to coalesce null error codes into a default string, preventing validation errors and improving stability during streaming iterations.
* Add test for coalescing null error codes in streaming responses
This test ensures that when a streaming error event has error.code set to None, the system correctly transforms it to 'unknown_error' and returns an ErrorEvent instance without raising a ValidationError.
---------
Co-authored-by: Ku Wei Chiet <chietkuw@fpt.com>