hermes-agent/tools
teknium1 d29249b8fa feat: local browser backend — zero-cost headless Chromium via agent-browser
Add local browser mode as an automatic fallback when Browserbase
credentials are not configured. Uses the same agent-browser CLI with
--session (local Chromium) instead of --cdp (cloud Browserbase).

The agent-facing API is completely unchanged — all 10 browser_* tools
produce identical output in both modes. Auto-detection:
  - BROWSERBASE_API_KEY set → cloud mode (existing behavior)
  - No key → local mode (new, free, headless Chromium)

Changes:
- _is_local_mode(): auto-detect based on env vars
- _create_local_session(): lightweight session (no API call)
- _get_session_info(): branches on local vs cloud
- _run_browser_command(): --session in local, --cdp in cloud
- check_browser_requirements(): only needs agent-browser CLI in local mode
- _emergency_cleanup: CLI close in local, API release in cloud
- cleanup_browser/browser_close: skip BB API calls in local mode
- Registry: removed requires_env — check_fn handles both modes

Setup for local mode:
  npm install -g agent-browser
  agent-browser install              # downloads Chromium
  agent-browser install --with-deps  # also installs system libs (Docker/Debian)

Closes #374 (Phase 1)
2026-03-07 01:14:57 -08:00
..
environments fix(daytona): use shell timeout wrapper instead of broken SDK exec timeout 2026-03-05 13:12:41 -08:00
__init__.py docs: complete Daytona backend documentation coverage 2026-03-06 03:37:05 -08:00
approval.py feat(terminal): integrate Daytona backend into tool pipeline 2026-03-05 10:02:21 -08:00
browser_tool.py feat: local browser backend — zero-cost headless Chromium via agent-browser 2026-03-07 01:14:57 -08:00
clarify_tool.py More major refactor/tech debt removal! 2026-02-21 20:22:33 -08:00
code_execution_tool.py Merge PR #309: fix(timezone): timezone-aware now() for prompt, cron, and execute_code 2026-03-07 00:04:41 -08:00
cronjob_tools.py fix: cron prompt injection scanner bypass for multi-word variants 2026-02-26 13:55:54 +03:00
debug_helpers.py refactor: consolidate debug logging across tools with shared DebugSession class 2026-02-21 03:53:24 -08:00
delegate_tool.py fix: execute_code and delegate_task now respect disabled toolsets 2026-03-06 17:36:14 -08:00
file_operations.py docs: complete Daytona backend documentation coverage 2026-03-06 03:37:05 -08:00
file_tools.py feat(terminal): integrate Daytona backend into tool pipeline 2026-03-05 10:02:21 -08:00
fuzzy_match.py Cleanup time! 2026-02-20 23:23:32 -08:00
homeassistant_tool.py feat: enhance Home Assistant integration with service discovery and setup 2026-03-03 05:16:53 -08:00
honcho_tools.py feat: add Honcho AI-native memory integration 2026-02-26 18:07:17 -05:00
image_generation_tool.py More major refactor/tech debt removal! 2026-02-21 20:22:33 -08:00
interrupt.py feat: enhance interrupt handling and container resource configuration 2026-02-23 02:11:33 -08:00
mcp_tool.py feat(mcp): banner integration, /reload-mcp command, resources & prompts 2026-03-02 19:15:59 -08:00
memory_tool.py Fix memory tool entry parsing when content contains section sign 2026-02-28 01:33:41 +03:00
mixture_of_agents_tool.py More major refactor/tech debt removal! 2026-02-21 20:22:33 -08:00
openrouter_client.py fix(headers): update X-OpenRouter-Categories to include 'productivity' 2026-02-28 10:38:49 -08:00
patch_parser.py fix: align _apply_delete comment with actual behavior 2026-02-28 22:58:01 +02:00
process_registry.py refactor: extract atomic_json_write helper, add 24 checkpoint tests 2026-03-06 05:50:12 -08:00
registry.py Merge PR #275: fix(batch_runner): preserve traceback when batch worker fails 2026-03-05 01:44:05 -08:00
rl_training_tool.py Update MiniMax model ID from m2.1 to m2.5 2026-03-06 16:47:48 +08:00
send_message_tool.py feat: enhance interrupt handling and container resource configuration 2026-02-23 02:11:33 -08:00
session_search_tool.py refactor: clean up type hints and docstrings in session_search_tool 2026-03-04 21:25:54 -08:00
skill_manager_tool.py Harden agent attack surface: scan writes to memory, skills, cron, and context files 2026-02-25 23:43:15 -05:00
skills_guard.py feat: optional skills — official skills shipped but not activated by default 2026-03-06 01:24:11 -08:00
skills_hub.py fix: review fixes — path traversal guard, trust_style consistency, edge cases 2026-03-06 01:40:01 -08:00
skills_sync.py fix: prevent data loss in skills sync on copy/update failure 2026-03-07 03:58:32 +03:00
skills_tool.py feat: platform-conditional skill loading + Apple/macOS skills 2026-03-07 00:47:54 -08:00
terminal_tool.py feat(terminal): integrate Daytona backend into tool pipeline 2026-03-05 10:02:21 -08:00
todo_tool.py More major refactor/tech debt removal! 2026-02-21 20:22:33 -08:00
transcription_tools.py refactor: clean up transcription_tools after PR #262 merge 2026-03-04 21:35:04 -08:00
tts_tool.py refactor: streamline API key retrieval in transcription and TTS tools 2026-02-26 19:56:42 -08:00
vision_tools.py fix(headers): update X-OpenRouter-Categories to include 'productivity' 2026-02-28 10:38:49 -08:00
web_tools.py fix: allow self-hosted Firecrawl without API key + add self-hosting docs 2026-03-05 16:44:21 -08:00