litellm/tests/e2e/llm_translation
devin-ai-integration[bot] 3a6744cd02
feat(sail): add Sail as a provider with service_tier mapped to its completion window (#42840)
Register Sail (providers.json, LlmProviders.SAIL, OpenAI-compatible lists,
ProviderConfigManager) for chat, Responses and /v1/messages, and add its 12
models to both cost maps with asap, balanced and flex price columns.

Sail picks speed and price with metadata.completion_window and rejects
service_tier, so the Sail chat and Responses configs translate the tier:
default and priority to asap, flex to flex, balanced to balanced, auto to no
window. Billing prices the window that was sent. A tier Sail has no window
for, or a window or tier set where billing cannot see it (request metadata,
extra_body), is a 400 unless drop_params is set.

Add balanced to ServiceTier and its _balanced price columns to the model
info types, the Rust catalog and the dashboard schema. A transform_extra_body
hook on the chat and Responses base configs, which returns extra_body
unchanged by default, lets Sail keep the window when a caller also sends
extra_body.metadata. Sail is listed in the Add Model form and model picker.

Co-authored-by: shrey kharbanda <shrey@berri.ai>
2026-09-26 12:57:48 -07:00
..
fixtures test(e2e): serve the vision image from our own fixture 2026-08-27 14:29:53 -07:00
realtime fix(realtime): surface an upstream handshake refusal as an error event and policy close (#42388) 2026-09-22 11:31:15 -07:00
conftest.py test(e2e): replace custom endpoints_client with provider SDK clients 2026-07-23 03:43:20 +00:00
conversational_matrix.py test(e2e): add conversational matrix across chat, messages and responses (#42359) 2026-09-21 22:32:56 -07:00
LLM_TRANSLATION_COVERAGE_MATRIX.md fix(proxy): record streamed /v1/responses container ownership before the response.completed frame (#43140) 2026-09-25 13:45:43 -07:00
passthrough_client.py test(e2e): correlate anthropic passthrough spend rows by the served message id 2026-09-03 00:46:07 -07:00
sdk_clients.py test(e2e): send no-cache on cacheable SDK calls and accept Bedrock's 400 on the responses leg 2026-09-21 12:39:16 -07:00
test_audio_speech_e2e.py Merge branch 'main' into litellm_e2e_provider_sdk_clients 2026-09-15 06:34:31 -07:00
test_audio_transcriptions_e2e.py Merge branch 'main' into litellm_e2e_provider_sdk_clients 2026-09-15 06:34:31 -07:00
test_bedrock_native_e2e.py test(e2e): vendor API testing coverage (#34557) 2026-08-12 01:07:52 +00:00
test_bedrock_provider_matrix_e2e.py fix(bedrock): route unmapped openai family model ids to converse (#42713) 2026-09-24 13:08:27 -07:00
test_bedrock_web_search_server_tool_e2e.py test(e2e): send no-cache on cacheable SDK calls and accept Bedrock's 400 on the responses leg 2026-09-21 12:39:16 -07:00
test_cache_control.py test(e2e): tolerate provider-side flakes on five full-suite cells (#42628) 2026-09-22 20:12:14 -07:00
test_chat_completions_contract_e2e.py ci(e2e): record the e2e suite weekly and replay it on weekdays with zero egress (#38163) 2026-08-24 23:49:03 -04:00
test_chat_completions_regression_e2e.py test(e2e): tolerate provider-side flakes on five full-suite cells (#42628) 2026-09-22 20:12:14 -07:00
test_chat_mid_conversation_system_e2e.py fix(anthropic): keep the replayed prefix byte-stable for preserved thinking on chat completions (#42630) 2026-09-24 22:01:20 -07:00
test_chat_stream_contract_e2e.py test(e2e): verify streamed answers and tool continuation 2026-09-14 22:46:55 -07:00
test_completions_endpoint_e2e.py test(e2e): send no-cache on cacheable SDK calls and accept Bedrock's 400 on the responses leg 2026-09-21 12:39:16 -07:00
test_containers_e2e.py fix(proxy): record streamed /v1/responses container ownership before the response.completed frame (#43140) 2026-09-25 13:45:43 -07:00
test_conversational_matrix_e2e.py test(e2e): add conversational matrix across chat, messages and responses (#42359) 2026-09-21 22:32:56 -07:00
test_credential_messages_e2e.py fix(e2e): route credential, cost map, and UI login calls to the control plane (#42506) 2026-09-22 12:59:56 -07:00
test_custom_pricing_e2e.py test(e2e): replace custom endpoints_client with provider SDK clients 2026-07-23 03:43:20 +00:00
test_deepseek_reasoning_e2e.py test(e2e): point four suites at models the providers still serve (#34567) 2026-07-25 10:32:08 -07:00
test_embeddings_endpoint_e2e.py test(e2e): send no-cache on cacheable SDK calls and accept Bedrock's 400 on the responses leg 2026-09-21 12:39:16 -07:00
test_files_batches_contract_e2e.py test(e2e): unskip four tests whose blockers no longer hold 2026-08-28 00:01:51 -07:00
test_google_native_e2e.py Merge branch 'main' into litellm_e2e_provider_sdk_clients 2026-09-15 06:34:31 -07:00
test_image_edits_e2e.py Merge branch 'main' into litellm_e2e_provider_sdk_clients 2026-09-15 06:34:31 -07:00
test_image_generation_e2e.py Merge branch 'main' into litellm_e2e_provider_sdk_clients 2026-09-15 06:34:31 -07:00
test_messages_azure_foundry_e2e.py test(e2e): send no-cache on cacheable SDK calls and accept Bedrock's 400 on the responses leg 2026-09-21 12:39:16 -07:00
test_messages_e2e.py fix(proxy): send a real error event when a /v1/messages stream fails (#41826) 2026-09-25 15:36:35 -07:00
test_messages_mid_conversation_system_e2e.py test(e2e): send no-cache on cacheable SDK calls and accept Bedrock's 400 on the responses leg 2026-09-21 12:39:16 -07:00
test_messages_mid_conversation_system_native_providers_e2e.py test(e2e): send no-cache on cacheable SDK calls and accept Bedrock's 400 on the responses leg 2026-09-21 12:39:16 -07:00
test_moderations_e2e.py Merge branch 'main' into litellm_e2e_provider_sdk_clients 2026-09-15 06:34:31 -07:00
test_ocr_rust_e2e.py test(e2e): tolerate provider-side flakes on five full-suite cells (#42628) 2026-09-22 20:12:14 -07:00
test_passthrough_e2e.py style(e2e): wrap the openai passthrough content assertion under 120 columns 2026-09-05 11:47:15 -07:00
test_passthrough_headers_e2e.py Merge branch 'main' into litellm_e2e_provider_sdk_clients 2026-09-15 06:34:31 -07:00
test_provider_features_e2e.py test(e2e): rename Gateway to ProxyClient and expose it as a session-scoped fixture (#33750) 2026-07-18 18:41:18 +00:00
test_realtime_http_e2e.py test(e2e): vendor API testing coverage (#34557) 2026-08-12 01:07:52 +00:00
test_rerank_e2e.py Merge branch 'main' into litellm_e2e_provider_sdk_clients 2026-09-15 06:34:31 -07:00
test_responses_bridge_streaming_e2e.py fix(mcp): honor an explicit null on toolset update, cover MCP lifecycle e2e (#40022) 2026-09-08 22:50:13 -07:00
test_responses_e2e.py Merge branch 'main' into litellm_wt_0918_138e 2026-09-21 17:05:35 -07:00
test_responses_retrieve_e2e.py test(e2e): vendor API testing coverage (#34557) 2026-08-12 01:07:52 +00:00
test_sail_e2e.py feat(sail): add Sail as a provider with service_tier mapped to its completion window (#42840) 2026-09-26 12:57:48 -07:00
test_together_ai_e2e.py feat(e2e): cache exact provider responses for 24 hours 2026-09-15 18:14:18 -07:00
test_token_counter_gemini_contents_e2e.py test: take keys out of the legacy proxy, enterprise and mcp unit tests before moving them (#42901) 2026-09-24 14:56:52 -07:00
test_vector_stores_e2e.py test(e2e): vendor API testing coverage (#34557) 2026-08-12 01:07:52 +00:00
test_vertex_passthrough_e2e.py test(e2e): settle control-plane writes across every replica, not just one 2026-08-07 19:36:30 -07:00