hermes-bsd/hermes_cli
ShawnPana d44b6b7f1b feat(browser): multi-provider cloud browser support + Browser Use integration
Introduce a cloud browser provider abstraction so users can switch
between Local Browser, Browserbase, and Browser Use (or future providers)
via hermes tools / hermes setup.

Cloud browser providers are behind an ABC (tools/browser_providers/base.py)
so adding a new provider is a single-file addition with no changes to
browser_tool.py internals.

Changes:
- tools/browser_providers/ package with ABC, Browserbase extraction,
  and Browser Use provider
- browser_tool.py refactored to use _PROVIDER_REGISTRY + _get_cloud_provider()
  (cached) instead of hardcoded _is_local_mode() / _create_browserbase_session()
- tools_config.py: generic _is_provider_active() / _detect_active_provider_index()
  replace TTS-only logic; Browser Use added as third browser option
- config.py: BROWSER_USE_API_KEY added to OPTIONAL_ENV_VARS + show_config + allowlist
- subprocess pipe hang fix: agent-browser daemon inherits pipe fds,
  communicate() blocks. Replaced with Popen + temp files.

Original PR: #1208
Co-authored-by: ShawnPana <shawnpana@users.noreply.github.com>
2026-03-17 00:16:34 -07:00
..
__init__.py
auth.py feat: auto-detect provider when switching models via /model (#1506) 2026-03-16 04:34:45 -07:00
banner.py fix(cli): non-blocking startup update check and banner deduplication 2026-03-14 21:45:50 -07:00
callbacks.py refactor(cli): implement approval locking mechanism to serialize concurrent requests 2026-03-13 23:59:18 -07:00
checklist.py
claw.py
clipboard.py
codex_models.py
colors.py
commands.py refactor: centralize slash command registry (#1603) 2026-03-16 23:21:03 -07:00
config.py feat(browser): multi-provider cloud browser support + Browser Use integration 2026-03-17 00:16:34 -07:00
cron.py docs: clarify gateway service scopes (#1378) 2026-03-14 21:17:41 -07:00
curses_ui.py
default_soul.py feat: seed a default global SOUL.md 2026-03-14 08:05:30 -07:00
doctor.py fix(gateway): surface missing linger in status and doctor (#1296) 2026-03-14 06:11:33 -07:00
env_loader.py fix(config): reload .env over stale shell overrides 2026-03-15 06:46:28 -07:00
gateway.py fix: auto-detect D-Bus session bus for systemctl --user on headless servers (#1601) 2026-03-16 17:45:48 -07:00
main.py fix: auto-detect D-Bus session bus for systemctl --user on headless servers (#1601) 2026-03-16 17:45:48 -07:00
models.py feat: auto-detect provider when switching models via /model (#1506) 2026-03-16 04:34:45 -07:00
pairing.py
plugins.py feat: first-class plugin architecture (#1555) 2026-03-16 07:17:36 -07:00
runtime_provider.py fix: restore config-saved custom endpoint resolution 2026-03-14 20:58:12 -07:00
setup.py fix(setup): defer config.yaml write until after model selection 2026-03-16 00:18:30 -07:00
skills_config.py
skills_hub.py fix(skills): honor policy table for dangerous verdicts 2026-03-14 11:27:02 -07:00
skin_engine.py feat(tools): centralize tool emoji metadata in registry + skin integration 2026-03-15 20:21:21 -07:00
status.py feat(gateway): scope systemd service name to HERMES_HOME 2026-03-16 04:42:46 -07:00
tools_config.py feat(browser): multi-provider cloud browser support + Browser Use integration 2026-03-17 00:16:34 -07:00
uninstall.py feat(gateway): scope systemd service name to HERMES_HOME 2026-03-16 04:42:46 -07:00