fix(managed-gateway): keep tool availability scans off the Nous token-refresh path

This commit is contained in:
Sylw3ster
2026-05-30 07:58:08 -07:00
committed by Teknium
parent 96643b4a52
commit 6a72af044c
7 changed files with 159 additions and 14 deletions
@@ -234,6 +234,44 @@ def test_browserbase_does_not_use_gateway_only_configuration():
assert provider.is_available() is False
def test_browser_use_availability_skips_refresh_for_expired_cached_gateway_token(tmp_path, monkeypatch):
_install_fake_tools_package()
monkeypatch.delenv("TOOL_GATEWAY_USER_TOKEN", raising=False)
expired_at = "2000-01-01T00:00:00+00:00"
(tmp_path / "auth.json").write_text(
'{"providers":{"nous":{"access_token":"expired-token","refresh_token":"refresh-token","expires_at":"%s"}}}'
% expired_at,
encoding="utf-8",
)
refresh_calls = []
def _record_refresh(*, refresh_skew_seconds=120, **_kwargs):
refresh_calls.append(refresh_skew_seconds)
return "fresh-token"
monkeypatch.setattr(
"hermes_cli.auth.resolve_nous_access_token",
_record_refresh,
)
env = os.environ.copy()
env.pop("BROWSER_USE_API_KEY", None)
env.update({
"HERMES_HOME": str(tmp_path),
"BROWSER_USE_GATEWAY_URL": "http://127.0.0.1:3009",
})
with patch.dict(os.environ, env, clear=True):
browser_use_module = _load_plugin_module(
"plugins.browser.browser_use.provider",
"browser/browser_use/provider.py",
)
provider = browser_use_module.BrowserUseBrowserProvider()
assert provider.is_available() is True
assert refresh_calls == []
def test_browser_use_managed_gateway_adds_idempotency_key_and_persists_external_call_id():
_install_fake_tools_package()
env = os.environ.copy()