Files
hermes-agent/gateway/web_console/static.py
Alexander Whitestone 8e0f24db3f
Some checks failed
Forge CI / smoke-and-build (pull_request) Failing after 59s
feat(web-console): cherry-pick React web console GUI from gary-the-ai fork
Cherry-pick the Hermes Web Console from gary-the-ai/hermes-web-console-gui.
React + TypeScript frontend with Vite, Python aiohttp backend API.

Components:
- web_console/ — React frontend (chat, sessions, memory, settings, skills,
  gateway config, cron, workspace, tools, browser, insights pages)
- gateway/web_console/ — Python backend API (23 endpoints, SSE event bus,
  11 service modules)
- gateway/platforms/api_server_ui.py — embedded browser UI for API server
- gateway/platforms/api_server.py — route registration refactored into
  _register_routes(), web console mounted via maybe_register_web_console()
- run-gui.sh / setup-gui.sh — one-command launch and setup scripts
- tests/gateway/test_api_server_gui_mount.py — 4 integration tests (passing)
- tests/web_console/ — 13 backend test files (51 passing)
- docs/plans/ — implementation plan, API schema, frontend architecture

Fix: added missing ModelContextError class and CRON_MIN_CONTEXT_TOKENS to
cron/scheduler.py (pre-existing import bug).

Closes #325
2026-04-13 18:01:51 -04:00

53 lines
1.3 KiB
Python

"""Static placeholder content for the Hermes Web Console."""
def get_web_console_placeholder_html() -> str:
"""Return a minimal placeholder page for the GUI app shell."""
return """<!doctype html>
<html lang=\"en\">
<head>
<meta charset=\"utf-8\" />
<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />
<title>Hermes Web Console</title>
<style>
body {
margin: 0;
font-family: system-ui, sans-serif;
background: #0b1020;
color: #edf2ff;
display: grid;
place-items: center;
min-height: 100vh;
}
main {
max-width: 42rem;
padding: 2rem;
border: 1px solid rgba(255, 255, 255, 0.14);
border-radius: 1rem;
background: rgba(18, 25, 45, 0.92);
box-shadow: 0 18px 40px rgba(0, 0, 0, 0.35);
}
h1 {
margin-top: 0;
}
p {
line-height: 1.5;
color: #cbd5f5;
}
code {
background: rgba(255, 255, 255, 0.08);
padding: 0.15rem 0.35rem;
border-radius: 0.35rem;
}
</style>
</head>
<body>
<main>
<h1>Hermes Web Console</h1>
<p>This is the initial GUI backend placeholder mounted by the API server.</p>
<p>Backend status endpoints are available at <code>/api/gui/health</code> and <code>/api/gui/meta</code>.</p>
</main>
</body>
</html>
"""