3273678ff9
Salvaged from PR #956 (teknium1) onto current main. Adds an OpenAI-compatible HTTP server as a new gateway platform adapter. Any frontend that speaks the OpenAI format — Open WebUI, LobeChat, LibreChat, AnythingLLM, NextChat, ChatBox, etc. — can connect to hermes-agent by pointing at http://localhost:8642/v1. Endpoints: - POST /v1/chat/completions — stateless chat (full conversation per request) - POST /v1/responses — stateful via previous_response_id or named conversations - GET/DELETE /v1/responses/{id} — retrieve/delete stored responses - GET /v1/models — model discovery - GET /health — health check Key features: - Real SSE streaming via stream_delta_callback - Responses API with server-side conversation state (in-memory LRU, max 100) - Named conversations via 'conversation' parameter - System prompt layering (frontend prompts add to core agent prompt) - Bearer token auth (optional, via HTTP_SERVER_KEY) - CORS support for browser-based frontends - Binds to 127.0.0.1 by default (secure) - Uses aiohttp (existing dependency, no new deps) Files: - gateway/platforms/http_server.py — adapter implementation - gateway/config.py — Platform.HTTP_SERVER enum + env var overrides - gateway/run.py — adapter factory branch - toolsets.py — hermes-http_server toolset - hermes_cli/config.py — setup env vars - .env.example — HTTP server env vars - tests/gateway/test_http_server.py — 72 tests - website/docs/ — HTTP server guide, Open WebUI integration guide Closes #956
Website
This website is built using Docusaurus, a modern static website generator.
Installation
yarn
Local Development
yarn start
This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
Build
yarn build
This command generates static content into the build directory and can be served using any static contents hosting service.
Deployment
Using SSH:
USE_SSH=true yarn deploy
Not using SSH:
GIT_USER=<Your GitHub username> yarn deploy
If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the gh-pages branch.