Files
bot-hermes be159dac19 feat: add Hermes integration panel to Settings → Integrations
Server-side:
- New hermes-integration module (runtime.js + routes.js + tests)
  exposing GET /api/openchamber/hermes/status
- Reports availability of agent-activity, session-steer, and plan-gate
  runtimes plus plan-gate default config
- Wired into feature-routes-runtime.js alongside existing integrations

UI:
- New HermesIntegration.tsx collapsible panel in Integrations page
- Connection status indicator (green/red dot) with 30s polling
- Plan gate default toggle (persists via updateDesktopSettings +
  recordDeferredOpenCodeRestart)
- Read-only status rows for activity stream, steer channel, plan gate
- Server version and uptime display

Settings:
- hermesPlanGateDefault field in settings registry and useUIStore
- Search index entry with keywords: hermes, agent, integration, etc.
- i18n keys for all 12 locales (English text as fallback)

Verification:
- Server tests: 7/7 passed (runtime + routes)
- UI tests: 4/4 passed (HermesIntegration.test.tsx)
- Typecheck: clean (no new errors)
- oxlint: clean on all new/modified files
2026-09-10 11:25:51 +00:00

17 lines
547 B
JavaScript

import express from 'express';
export function registerHermesIntegrationRoutes(app, hermesIntegrationRuntime) {
app.get('/api/openchamber/hermes/status', async (req, res) => {
try {
const status = await hermesIntegrationRuntime.getStatus();
return res.json(status);
} catch (error) {
const statusCode = Number.isFinite(error?.status) ? error.status : 500;
return res.status(statusCode).json({
ok: false,
error: error?.message ?? 'Failed to get Hermes integration status',
});
}
});
}