BrowserUse_and_ComputerUse_.../hermes_cli
Teknium f2414bfd45
feat: allow custom endpoints to use responses API via api_mode override (#1651)
Add HERMES_API_MODE env var and model.api_mode config field to let
custom OpenAI-compatible endpoints opt into codex_responses mode
without requiring the OpenAI Codex OAuth provider path.

- _get_configured_api_mode() reads HERMES_API_MODE env (precedence)
  then model.api_mode from config.yaml; validates against whitelist
- Applied in both _resolve_openrouter_runtime() and
  _resolve_named_custom_runtime() (original PR only covered openrouter)
- Fix _dump_api_request_debug() to show /responses URL when in
  codex_responses mode instead of always showing /chat/completions
- Tests for config override, env override, invalid values, named
  custom providers, and debug dump URL for both API modes

Inspired by PR #1041 by @mxyhi.

Co-authored-by: mxyhi <mxyhi@users.noreply.github.com>
2026-03-17 02:04:36 -07:00
..
__init__.py chore: release v0.3.0 (v2026.3.17) 2026-03-17 00:38:48 -07:00
auth.py feat(provider): add OpenCode Zen and OpenCode Go providers 2026-03-17 02:02:43 -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 fix: skip hanging tests + add global test timeout 2026-03-12 01:23:28 -07:00
claw.py feat: add 'hermes claw migrate' command + migration docs 2026-03-12 08:20:12 -07:00
clipboard.py fix: clean up empty file after failed wl-paste clipboard extraction 2026-03-11 02:56:19 -07:00
codex_models.py fix: add codex forward-compat model listing 2026-03-13 21:34:01 -07:00
colors.py Cleanup time! 2026-02-20 23:23:32 -08:00
commands.py feat(cli): two-stage /model autocomplete with ghost text suggestions (#1641) 2026-03-17 01:47:32 -07:00
config.py feat(provider): add OpenCode Zen and OpenCode Go providers 2026-03-17 02:02:43 -07:00
cron.py docs: clarify gateway service scopes (#1378) 2026-03-14 21:17:41 -07:00
curses_ui.py refactor: extract shared curses checklist, fix skill discovery perf 2026-03-11 03:06:15 -07:00
default_soul.py feat: seed a default global SOUL.md 2026-03-14 08:05:30 -07:00
doctor.py feat: add Vercel AI Gateway provider (#1628) 2026-03-17 00:12:16 -07:00
env_loader.py fix(config): reload .env over stale shell overrides 2026-03-15 06:46:28 -07:00
gateway.py fix(gateway): Recover stale service state 2026-03-17 11:05:28 +08:00
main.py feat(provider): add OpenCode Zen and OpenCode Go providers 2026-03-17 02:02:43 -07:00
models.py feat(provider): add OpenCode Zen and OpenCode Go providers 2026-03-17 02:02:43 -07:00
pairing.py Cleanup time! 2026-02-20 23:23:32 -08:00
plugins.py feat: first-class plugin architecture (#1555) 2026-03-16 07:17:36 -07:00
runtime_provider.py feat: allow custom endpoints to use responses API via api_mode override (#1651) 2026-03-17 02:04:36 -07:00
setup.py feat(provider): add OpenCode Zen and OpenCode Go providers 2026-03-17 02:02:43 -07:00
skills_config.py fix: wire email platform into toolset mappings + add documentation 2026-03-11 06:34:32 -07:00
skills_hub.py fix: add --yes flag to bypass confirmation in /skills install and uninstall (#1647) 2026-03-17 01:59:07 -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