From 68fbcdaa0659449246794bbc924226b54b1cc3b1 Mon Sep 17 00:00:00 2001 From: 0xbyt4 <0xbyt4@users.noreply.github.com> Date: Tue, 17 Mar 2026 02:02:49 -0700 Subject: [PATCH] fix: add browser_console to browser toolset and core tools list (#1084) browser_console was registered in the tool registry but missing from all toolset definitions (TOOLSETS, _HERMES_CORE_TOOLS, _LEGACY_TOOLSET_MAP), so the agent could never discover or use it. Added to all 4 locations + 4 wiring tests. Cherry-picked from PR #1084 by @0xbyt4 (authorship preserved in tests). --- model_tools.py | 2 +- tests/tools/test_browser_console.py | 21 +++++++++++++++++++++ toolsets.py | 6 +++--- 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/model_tools.py b/model_tools.py index f95ecddef..c8682dacb 100644 --- a/model_tools.py +++ b/model_tools.py @@ -149,7 +149,7 @@ _LEGACY_TOOLSET_MAP = { "browser_navigate", "browser_snapshot", "browser_click", "browser_type", "browser_scroll", "browser_back", "browser_press", "browser_close", "browser_get_images", - "browser_vision" + "browser_vision", "browser_console" ], "cronjob_tools": ["cronjob"], "rl_tools": [ diff --git a/tests/tools/test_browser_console.py b/tests/tools/test_browser_console.py index f5f54a0b2..1b9bb462b 100644 --- a/tests/tools/test_browser_console.py +++ b/tests/tools/test_browser_console.py @@ -117,6 +117,27 @@ class TestBrowserConsoleSchema: assert props["clear"]["type"] == "boolean" +class TestBrowserConsoleToolsetWiring: + """browser_console must be reachable via toolset resolution.""" + + def test_in_browser_toolset(self): + from toolsets import TOOLSETS + assert "browser_console" in TOOLSETS["browser"]["tools"] + + def test_in_hermes_core_tools(self): + from toolsets import _HERMES_CORE_TOOLS + assert "browser_console" in _HERMES_CORE_TOOLS + + def test_in_legacy_toolset_map(self): + from model_tools import _LEGACY_TOOLSET_MAP + assert "browser_console" in _LEGACY_TOOLSET_MAP["browser_tools"] + + def test_in_registry(self): + from tools.registry import registry + from tools import browser_tool # noqa: F401 + assert "browser_console" in registry._tools + + # ── browser_vision annotate ────────────────────────────────────────── diff --git a/toolsets.py b/toolsets.py index cd811d376..1a73ff1b8 100644 --- a/toolsets.py +++ b/toolsets.py @@ -45,7 +45,7 @@ _HERMES_CORE_TOOLS = [ "browser_navigate", "browser_snapshot", "browser_click", "browser_type", "browser_scroll", "browser_back", "browser_press", "browser_close", "browser_get_images", - "browser_vision", + "browser_vision", "browser_console", # Text-to-speech "text_to_speech", # Planning & memory @@ -119,7 +119,7 @@ TOOLSETS = { "browser_navigate", "browser_snapshot", "browser_click", "browser_type", "browser_scroll", "browser_back", "browser_press", "browser_close", "browser_get_images", - "browser_vision", "web_search" + "browser_vision", "browser_console", "web_search" ], "includes": [] }, @@ -236,7 +236,7 @@ TOOLSETS = { "browser_navigate", "browser_snapshot", "browser_click", "browser_type", "browser_scroll", "browser_back", "browser_press", "browser_close", "browser_get_images", - "browser_vision", + "browser_vision", "browser_console", "todo", "memory", "session_search", "execute_code", "delegate_task",