diff --git a/tests/run_agent/test_run_agent.py b/tests/run_agent/test_run_agent.py index 7aec0e3dde25..c218e75564ee 100644 --- a/tests/run_agent/test_run_agent.py +++ b/tests/run_agent/test_run_agent.py @@ -1995,23 +1995,38 @@ class TestBuildApiKwargs: ) assert kwargs["extra_body"]["reasoning"] == {"effort": "medium"} - def test_reasoning_xhigh_normalized_for_copilot(self, agent): - """xhigh effort should normalize to high for Copilot GitHub Models.""" + def test_reasoning_xhigh_preserved_for_copilot_when_supported(self, agent, monkeypatch): + """The registered Copilot profile must preserve a supported xhigh.""" from agent.transports import get_transport from providers import get_provider_profile + monkeypatch.setattr( + "hermes_cli.models.github_model_reasoning_efforts", + lambda _model: ["none", "low", "medium", "high", "xhigh"], + ) transport = get_transport("chat_completions") profile = get_provider_profile("copilot") msgs = [{"role": "user", "content": "hi"}] kwargs = transport.build_kwargs( - model="gpt-5.4", + model="gpt-5.5", messages=msgs, tools=None, supports_reasoning=True, reasoning_config={"enabled": True, "effort": "xhigh"}, provider_profile=profile, ) - assert kwargs["extra_body"]["reasoning"] == {"effort": "high"} + assert kwargs["extra_body"]["reasoning"] == {"effort": "xhigh"} + + def test_core_responses_preserves_supported_xhigh(self, agent, monkeypatch): + """The core GitHub Responses path must preserve a supported xhigh.""" + monkeypatch.setattr( + "hermes_cli.models.github_model_reasoning_efforts", + lambda _model: ["none", "low", "medium", "high", "xhigh"], + ) + agent.model = "gpt-5.5" + agent.reasoning_config = {"enabled": True, "effort": "xhigh"} + + assert agent._github_models_reasoning_extra_body() == {"effort": "xhigh"} def test_reasoning_omitted_for_non_reasoning_copilot_model(self, agent): agent.base_url = "https://api.githubcopilot.com"