2 Commits

Author SHA1 Message Date
teknium1
44e6ea3ceb fix(web): openai-native backend docs name the real login command, English picker tag, registry test lists the plugin
Trim of the salvaged openai-native marker provider (#107377):
- `hermes auth --provider openai-codex` does not exist; the login command is
  `hermes auth add openai-codex` (hermes_cli/subcommands/auth.py). Fixed in
  plugin.yaml, provider.py docstring and the web-search docs (2 spots).
- `hermes tools` picker tag was Chinese; now English like every other provider.
- tests/plugins/web/test_web_search_provider_plugins.py enumerates the bundled
  registry exactly, so the new plugin made it fail; it now lists openai-native
  with capability flags (search=True, extract=False) — the search-only
  invariant that keeps web_extract on its own backend.
- contributors/emails mapping for the salvaged author.
2026-09-19 01:51:23 -07:00
lyswty
82c77ff9b9 feat(web): add openai-native backend for Codex server-side web_search
Declares OpenAI's provider-executed Responses `web_search` built-in in place of
the client-side `web_search` function, mirroring the existing xAI native-search
path. Selected via `web.search_backend: openai-native`; search-only, so
`web_extract` keeps resolving to its own backend.

The Responses adapter already recognises built-in tool types
(`_RESPONSES_BUILTIN_TOOL_TYPES`) and preflight passes them through, so the only
missing piece was the swap itself plus a provider name for the config to point at.

Gating is deliberate: two-sided (Codex backend AND a selected openai-native
backend) and fail-closed, so a custom OpenAI-compatible endpoint or an
unresolved provider leaves the client tool untouched.
2026-09-19 01:44:49 -07:00