From c56f43006afd17048f6ad3001d4e42f17e78518f Mon Sep 17 00:00:00 2001 From: Konstantin Date: Mon, 7 Sep 2026 20:19:16 +0300 Subject: [PATCH] fix(hubris): carry the behaviour flags each model's canonical entry declares MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CI caught this and was right to. Three tests failed on six parametrisations: test_opus_5_all_variants_carry_adaptive_thinking_flag, test_opus_5_all_variants_carry_512_token_cache_minimum and test_sonnet_5_all_variants_carry_adaptive_thinking_flag. They select variants by substring, so hubris/anthropic/claude-opus-5 and hubris/anthropic/claude-sonnet-5 are swept in, and mine carried none of the flags. This is not a formality. The opus-5 test says so in as many words: adaptive thinking detection is cost-map driven, and a variant missing the flag silently sends the legacy thinking.type='enabled' shape, which the model rejects with a 400. Shipping those entries as they were would have broken exactly the users this PR is meant to serve. Rather than patch the three assertions, every Hubris entry now carries the supports_* flags and prompt_cache_min_tokens from its model's canonical vendor-native entry — the same models are behind the gateway, so the same behaviour applies. Twelve of the fourteen have such an entry; minimax-m3 and grok-4.6 have no vendor-native entry in the map (only fireworks_ai and azure_ai ones), so they are left alone rather than given another provider's claims. Cost fields, deprecation_date, provider_specific_entry and source are not copied: those are the canonical provider's, not ours. Context windows and output limits stay as they were, from the gateway's own catalogue. Verified by replaying the three assertions against both files: opus-5, 15 variants, none missing the flag, none with the wrong cache minimum; sonnet-5, 18 variants, none missing the flag. No Hubris entry matches the claude-fable-5 or claude-opus-4-8 filters. --- ...odel_prices_and_context_window_backup.json | 110 ++++++++++++++++-- model_prices_and_context_window.json | 110 ++++++++++++++++-- 2 files changed, 206 insertions(+), 14 deletions(-) diff --git a/litellm/model_prices_and_context_window_backup.json b/litellm/model_prices_and_context_window_backup.json index e295d563dfc..9124b795fd0 100644 --- a/litellm/model_prices_and_context_window_backup.json +++ b/litellm/model_prices_and_context_window_backup.json @@ -59150,8 +59150,14 @@ "max_output_tokens": 64000, "max_tokens": 64000, "mode": "chat", + "prompt_cache_min_tokens": 4096, "source": "https://hubris.pw/models", + "supports_assistant_prefill": true, + "supports_computer_use": true, "supports_function_calling": true, + "supports_native_structured_output": true, + "supports_pdf_input": true, + "supports_prompt_caching": true, "supports_reasoning": true, "supports_response_schema": true, "supports_tool_choice": true, @@ -59163,12 +59169,25 @@ "max_output_tokens": 128000, "max_tokens": 128000, "mode": "chat", + "prompt_cache_min_tokens": 512, "source": "https://hubris.pw/models", + "supports_adaptive_thinking": true, + "supports_assistant_prefill": false, + "supports_computer_use": true, "supports_function_calling": true, + "supports_max_reasoning_effort": true, + "supports_mid_conversation_system": true, + "supports_native_structured_output": true, + "supports_output_config": true, + "supports_pdf_input": true, + "supports_prompt_caching": true, "supports_reasoning": true, "supports_response_schema": true, + "supports_sampling_params": false, + "supports_speed": true, "supports_tool_choice": true, - "supports_vision": true + "supports_vision": true, + "supports_xhigh_reasoning_effort": true }, "hubris/anthropic/claude-sonnet-5": { "litellm_provider": "hubris", @@ -59176,12 +59195,24 @@ "max_output_tokens": 128000, "max_tokens": 128000, "mode": "chat", + "prompt_cache_min_tokens": 1024, "source": "https://hubris.pw/models", + "supports_adaptive_thinking": true, + "supports_assistant_prefill": false, + "supports_computer_use": true, "supports_function_calling": true, + "supports_max_reasoning_effort": true, + "supports_mid_conversation_system": true, + "supports_native_structured_output": true, + "supports_output_config": true, + "supports_pdf_input": true, + "supports_prompt_caching": true, "supports_reasoning": true, "supports_response_schema": true, + "supports_sampling_params": false, "supports_tool_choice": true, - "supports_vision": true + "supports_vision": true, + "supports_xhigh_reasoning_effort": true }, "hubris/deepseek/deepseek-v4-flash": { "litellm_provider": "hubris", @@ -59190,9 +59221,14 @@ "max_tokens": 384000, "mode": "chat", "source": "https://hubris.pw/models", + "supports_assistant_prefill": true, "supports_function_calling": true, + "supports_native_streaming": true, + "supports_parallel_function_calling": true, + "supports_prompt_caching": true, "supports_reasoning": true, "supports_response_schema": true, + "supports_system_messages": true, "supports_tool_choice": true, "supports_vision": false }, @@ -59203,9 +59239,14 @@ "max_tokens": 384000, "mode": "chat", "source": "https://hubris.pw/models", + "supports_assistant_prefill": true, "supports_function_calling": true, + "supports_native_streaming": true, + "supports_parallel_function_calling": true, + "supports_prompt_caching": true, "supports_reasoning": true, "supports_response_schema": true, + "supports_system_messages": true, "supports_tool_choice": true, "supports_vision": false }, @@ -59215,12 +59256,23 @@ "max_output_tokens": 65536, "max_tokens": 65536, "mode": "chat", + "prompt_cache_min_tokens": 4096, "source": "https://hubris.pw/models", + "supports_audio_input": true, + "supports_audio_output": false, "supports_function_calling": true, + "supports_native_streaming": true, + "supports_parallel_function_calling": true, + "supports_pdf_input": true, + "supports_prompt_caching": true, "supports_reasoning": true, "supports_response_schema": true, + "supports_system_messages": true, "supports_tool_choice": true, - "supports_vision": true + "supports_url_context": true, + "supports_video_input": true, + "supports_vision": true, + "supports_web_search": true }, "hubris/google/gemini-3.8-flash": { "litellm_provider": "hubris", @@ -59228,12 +59280,23 @@ "max_output_tokens": 65536, "max_tokens": 65536, "mode": "chat", + "prompt_cache_min_tokens": 4096, "source": "https://hubris.pw/models", + "supports_audio_input": true, + "supports_audio_output": false, "supports_function_calling": true, + "supports_native_streaming": true, + "supports_parallel_function_calling": true, + "supports_pdf_input": true, + "supports_prompt_caching": true, "supports_reasoning": true, "supports_response_schema": true, + "supports_system_messages": true, "supports_tool_choice": true, - "supports_vision": true + "supports_url_context": true, + "supports_video_input": true, + "supports_vision": true, + "supports_web_search": true }, "hubris/minimax/minimax-m3": { "litellm_provider": "hubris", @@ -59259,6 +59322,7 @@ "supports_reasoning": true, "supports_response_schema": true, "supports_tool_choice": true, + "supports_video_input": true, "supports_vision": true }, "hubris/openai/gpt-5.4-mini": { @@ -59269,10 +59333,19 @@ "mode": "chat", "source": "https://hubris.pw/models", "supports_function_calling": true, + "supports_minimal_reasoning_effort": false, + "supports_native_streaming": true, + "supports_none_reasoning_effort": true, + "supports_parallel_function_calling": true, + "supports_pdf_input": true, + "supports_prompt_caching": true, "supports_reasoning": true, "supports_response_schema": true, + "supports_system_messages": true, "supports_tool_choice": true, - "supports_vision": true + "supports_vision": true, + "supports_web_search": true, + "supports_xhigh_reasoning_effort": true }, "hubris/openai/gpt-5.6-luna": { "litellm_provider": "hubris", @@ -59282,10 +59355,20 @@ "mode": "chat", "source": "https://hubris.pw/models", "supports_function_calling": true, + "supports_minimal_reasoning_effort": false, + "supports_native_streaming": true, + "supports_none_reasoning_effort": true, + "supports_parallel_function_calling": true, + "supports_pdf_input": true, + "supports_prompt_cache_breakpoint": true, + "supports_prompt_caching": true, "supports_reasoning": true, "supports_response_schema": true, + "supports_system_messages": true, "supports_tool_choice": true, - "supports_vision": true + "supports_vision": true, + "supports_web_search": true, + "supports_xhigh_reasoning_effort": true }, "hubris/openai/gpt-6-astra": { "litellm_provider": "hubris", @@ -59294,11 +59377,23 @@ "max_tokens": 128000, "mode": "chat", "source": "https://hubris.pw/models", + "supports_computer_use": true, "supports_function_calling": true, + "supports_max_reasoning_effort": true, + "supports_minimal_reasoning_effort": false, + "supports_native_streaming": true, + "supports_none_reasoning_effort": false, + "supports_parallel_function_calling": true, + "supports_pdf_input": true, + "supports_prompt_cache_breakpoint": true, + "supports_prompt_caching": true, "supports_reasoning": true, "supports_response_schema": true, + "supports_system_messages": true, "supports_tool_choice": true, - "supports_vision": true + "supports_vision": true, + "supports_web_search": true, + "supports_xhigh_reasoning_effort": true }, "hubris/x-ai/grok-4.6": { "litellm_provider": "hubris", @@ -59321,6 +59416,7 @@ "mode": "chat", "source": "https://hubris.pw/models", "supports_function_calling": true, + "supports_prompt_caching": true, "supports_reasoning": true, "supports_response_schema": true, "supports_tool_choice": true, diff --git a/model_prices_and_context_window.json b/model_prices_and_context_window.json index e295d563dfc..9124b795fd0 100644 --- a/model_prices_and_context_window.json +++ b/model_prices_and_context_window.json @@ -59150,8 +59150,14 @@ "max_output_tokens": 64000, "max_tokens": 64000, "mode": "chat", + "prompt_cache_min_tokens": 4096, "source": "https://hubris.pw/models", + "supports_assistant_prefill": true, + "supports_computer_use": true, "supports_function_calling": true, + "supports_native_structured_output": true, + "supports_pdf_input": true, + "supports_prompt_caching": true, "supports_reasoning": true, "supports_response_schema": true, "supports_tool_choice": true, @@ -59163,12 +59169,25 @@ "max_output_tokens": 128000, "max_tokens": 128000, "mode": "chat", + "prompt_cache_min_tokens": 512, "source": "https://hubris.pw/models", + "supports_adaptive_thinking": true, + "supports_assistant_prefill": false, + "supports_computer_use": true, "supports_function_calling": true, + "supports_max_reasoning_effort": true, + "supports_mid_conversation_system": true, + "supports_native_structured_output": true, + "supports_output_config": true, + "supports_pdf_input": true, + "supports_prompt_caching": true, "supports_reasoning": true, "supports_response_schema": true, + "supports_sampling_params": false, + "supports_speed": true, "supports_tool_choice": true, - "supports_vision": true + "supports_vision": true, + "supports_xhigh_reasoning_effort": true }, "hubris/anthropic/claude-sonnet-5": { "litellm_provider": "hubris", @@ -59176,12 +59195,24 @@ "max_output_tokens": 128000, "max_tokens": 128000, "mode": "chat", + "prompt_cache_min_tokens": 1024, "source": "https://hubris.pw/models", + "supports_adaptive_thinking": true, + "supports_assistant_prefill": false, + "supports_computer_use": true, "supports_function_calling": true, + "supports_max_reasoning_effort": true, + "supports_mid_conversation_system": true, + "supports_native_structured_output": true, + "supports_output_config": true, + "supports_pdf_input": true, + "supports_prompt_caching": true, "supports_reasoning": true, "supports_response_schema": true, + "supports_sampling_params": false, "supports_tool_choice": true, - "supports_vision": true + "supports_vision": true, + "supports_xhigh_reasoning_effort": true }, "hubris/deepseek/deepseek-v4-flash": { "litellm_provider": "hubris", @@ -59190,9 +59221,14 @@ "max_tokens": 384000, "mode": "chat", "source": "https://hubris.pw/models", + "supports_assistant_prefill": true, "supports_function_calling": true, + "supports_native_streaming": true, + "supports_parallel_function_calling": true, + "supports_prompt_caching": true, "supports_reasoning": true, "supports_response_schema": true, + "supports_system_messages": true, "supports_tool_choice": true, "supports_vision": false }, @@ -59203,9 +59239,14 @@ "max_tokens": 384000, "mode": "chat", "source": "https://hubris.pw/models", + "supports_assistant_prefill": true, "supports_function_calling": true, + "supports_native_streaming": true, + "supports_parallel_function_calling": true, + "supports_prompt_caching": true, "supports_reasoning": true, "supports_response_schema": true, + "supports_system_messages": true, "supports_tool_choice": true, "supports_vision": false }, @@ -59215,12 +59256,23 @@ "max_output_tokens": 65536, "max_tokens": 65536, "mode": "chat", + "prompt_cache_min_tokens": 4096, "source": "https://hubris.pw/models", + "supports_audio_input": true, + "supports_audio_output": false, "supports_function_calling": true, + "supports_native_streaming": true, + "supports_parallel_function_calling": true, + "supports_pdf_input": true, + "supports_prompt_caching": true, "supports_reasoning": true, "supports_response_schema": true, + "supports_system_messages": true, "supports_tool_choice": true, - "supports_vision": true + "supports_url_context": true, + "supports_video_input": true, + "supports_vision": true, + "supports_web_search": true }, "hubris/google/gemini-3.8-flash": { "litellm_provider": "hubris", @@ -59228,12 +59280,23 @@ "max_output_tokens": 65536, "max_tokens": 65536, "mode": "chat", + "prompt_cache_min_tokens": 4096, "source": "https://hubris.pw/models", + "supports_audio_input": true, + "supports_audio_output": false, "supports_function_calling": true, + "supports_native_streaming": true, + "supports_parallel_function_calling": true, + "supports_pdf_input": true, + "supports_prompt_caching": true, "supports_reasoning": true, "supports_response_schema": true, + "supports_system_messages": true, "supports_tool_choice": true, - "supports_vision": true + "supports_url_context": true, + "supports_video_input": true, + "supports_vision": true, + "supports_web_search": true }, "hubris/minimax/minimax-m3": { "litellm_provider": "hubris", @@ -59259,6 +59322,7 @@ "supports_reasoning": true, "supports_response_schema": true, "supports_tool_choice": true, + "supports_video_input": true, "supports_vision": true }, "hubris/openai/gpt-5.4-mini": { @@ -59269,10 +59333,19 @@ "mode": "chat", "source": "https://hubris.pw/models", "supports_function_calling": true, + "supports_minimal_reasoning_effort": false, + "supports_native_streaming": true, + "supports_none_reasoning_effort": true, + "supports_parallel_function_calling": true, + "supports_pdf_input": true, + "supports_prompt_caching": true, "supports_reasoning": true, "supports_response_schema": true, + "supports_system_messages": true, "supports_tool_choice": true, - "supports_vision": true + "supports_vision": true, + "supports_web_search": true, + "supports_xhigh_reasoning_effort": true }, "hubris/openai/gpt-5.6-luna": { "litellm_provider": "hubris", @@ -59282,10 +59355,20 @@ "mode": "chat", "source": "https://hubris.pw/models", "supports_function_calling": true, + "supports_minimal_reasoning_effort": false, + "supports_native_streaming": true, + "supports_none_reasoning_effort": true, + "supports_parallel_function_calling": true, + "supports_pdf_input": true, + "supports_prompt_cache_breakpoint": true, + "supports_prompt_caching": true, "supports_reasoning": true, "supports_response_schema": true, + "supports_system_messages": true, "supports_tool_choice": true, - "supports_vision": true + "supports_vision": true, + "supports_web_search": true, + "supports_xhigh_reasoning_effort": true }, "hubris/openai/gpt-6-astra": { "litellm_provider": "hubris", @@ -59294,11 +59377,23 @@ "max_tokens": 128000, "mode": "chat", "source": "https://hubris.pw/models", + "supports_computer_use": true, "supports_function_calling": true, + "supports_max_reasoning_effort": true, + "supports_minimal_reasoning_effort": false, + "supports_native_streaming": true, + "supports_none_reasoning_effort": false, + "supports_parallel_function_calling": true, + "supports_pdf_input": true, + "supports_prompt_cache_breakpoint": true, + "supports_prompt_caching": true, "supports_reasoning": true, "supports_response_schema": true, + "supports_system_messages": true, "supports_tool_choice": true, - "supports_vision": true + "supports_vision": true, + "supports_web_search": true, + "supports_xhigh_reasoning_effort": true }, "hubris/x-ai/grok-4.6": { "litellm_provider": "hubris", @@ -59321,6 +59416,7 @@ "mode": "chat", "source": "https://hubris.pw/models", "supports_function_calling": true, + "supports_prompt_caching": true, "supports_reasoning": true, "supports_response_schema": true, "supports_tool_choice": true,