mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-04-25 00:51:20 +00:00
fix: URL-based auth for third-party Anthropic endpoints + CI test fixes (#4148)
* fix(tests): mock sys.stdin.isatty for cmd_model TTY guard * fix(tests): update camofox snapshot format + trajectory compressor mock path - test_browser_camofox: mock response now uses snapshot format (accessibility tree) - test_trajectory_compressor: mock _get_async_client instead of setting async_client directly * fix: URL-based auth detection for third-party Anthropic endpoints + test fixes Reverts the key-prefix approach from #4093 which broke JWT and managed key OAuth detection. Instead, detects third-party endpoints by URL: if base_url is set and isn't anthropic.com, it's a proxy (Azure AI Foundry, AWS Bedrock, etc.) that uses x-api-key regardless of key format. Auth decision chain is now: 1. _requires_bearer_auth(url) → MiniMax → Bearer 2. _is_third_party_anthropic_endpoint(url) → Azure/Bedrock → x-api-key 3. _is_oauth_token(key) → OAuth on direct Anthropic → Bearer 4. else → x-api-key Also includes test fixes from PR #4051 by @erosika: - Mock sys.stdin.isatty for cmd_model TTY guard - Update camofox snapshot format mock - Fix trajectory compressor async client mock path --------- Co-authored-by: Erosika <eri@plasticlabs.ai>
This commit is contained in:
parent
fb4b87f4af
commit
d30ea65c9b
5 changed files with 36 additions and 10 deletions
|
|
@ -405,12 +405,13 @@ class TestGenerateSummary:
|
|||
@pytest.mark.asyncio
|
||||
async def test_generate_summary_async_handles_none_content(self):
|
||||
tc = _make_compressor()
|
||||
tc.async_client = MagicMock()
|
||||
tc.async_client.chat.completions.create = AsyncMock(
|
||||
mock_client = MagicMock()
|
||||
mock_client.chat.completions.create = AsyncMock(
|
||||
return_value=SimpleNamespace(
|
||||
choices=[SimpleNamespace(message=SimpleNamespace(content=None))]
|
||||
)
|
||||
)
|
||||
tc._get_async_client = MagicMock(return_value=mock_client)
|
||||
metrics = TrajectoryMetrics()
|
||||
|
||||
summary = await tc._generate_summary_async("Turn content", metrics)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue