(
*,
api_format: str,
endpoint_name: str,
selected_model: str,
provider_entry: Any,
upstream_provider: str,
upstream_base: str,
step_type: str,
has_tools: bool,
has_tool_results: bool,
anthropic_beta_present: bool,
)
| 2168 | |
| 2169 | |
| 2170 | def _choose_transport( |
| 2171 | *, |
| 2172 | api_format: str, |
| 2173 | endpoint_name: str, |
| 2174 | selected_model: str, |
| 2175 | provider_entry: Any, |
| 2176 | upstream_provider: str, |
| 2177 | upstream_base: str, |
| 2178 | step_type: str, |
| 2179 | has_tools: bool, |
| 2180 | has_tool_results: bool, |
| 2181 | anthropic_beta_present: bool, |
| 2182 | ) -> TransportDecision: |
| 2183 | requested_transport = _requested_transport_name( |
| 2184 | api_format=api_format, |
| 2185 | endpoint_name=endpoint_name, |
| 2186 | ) |
| 2187 | family = provider_family_for_model( |
| 2188 | selected_model, |
| 2189 | provider_name=getattr(provider_entry, "name", None), |
| 2190 | upstream_provider=upstream_provider, |
| 2191 | ) |
| 2192 | native_available = _supports_native_anthropic_transport( |
| 2193 | selected_model=selected_model, |
| 2194 | provider_entry=provider_entry, |
| 2195 | upstream_provider=upstream_provider, |
| 2196 | upstream_base=upstream_base, |
| 2197 | ) |
| 2198 | if requested_transport == "openai-responses": |
| 2199 | return TransportDecision( |
| 2200 | requested_transport=requested_transport, |
| 2201 | selected_transport="openai-chat", |
| 2202 | reason="responses ingress currently normalizes to openai chat upstream", |
| 2203 | preference_source="responses-compat", |
| 2204 | native_anthropic_transport=False, |
| 2205 | ) |
| 2206 | if family == "anthropic" and native_available: |
| 2207 | return TransportDecision( |
| 2208 | requested_transport=requested_transport, |
| 2209 | selected_transport="anthropic-messages", |
| 2210 | reason=( |
| 2211 | "anthropic ingress preserved for anthropic-native provider" |
| 2212 | if requested_transport == "anthropic-messages" |
| 2213 | else "provider-native anthropic transport preferred" |
| 2214 | ), |
| 2215 | preference_source=( |
| 2216 | "ingress+provider" |
| 2217 | if requested_transport == "anthropic-messages" |
| 2218 | else "provider-family" |
| 2219 | ), |
| 2220 | native_anthropic_transport=True, |
| 2221 | ) |
| 2222 | if family == "minimax" and requested_transport == "anthropic-messages" and native_available: |
| 2223 | if step_type == "tool-result-followup": |
| 2224 | reason = "anthropic tool-result follow-up preserved for minimax anthropic transport" |
| 2225 | source = "agentic-ingress" |
| 2226 | elif has_tools or has_tool_results or anthropic_beta_present: |
| 2227 | reason = "anthropic tool semantics preserved for minimax anthropic-compatible provider" |
no test coverage detected