fix(hubris): carry the behaviour flags each model's canonical entry declares

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.
This commit is contained in:
Konstantin 2026-09-07 20:19:16 +03:00
parent 692226e334
commit c56f43006a
2 changed files with 206 additions and 14 deletions

View file

@ -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,

View file

@ -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,