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
17 lines
547 B
JavaScript
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',
|
|
});
|
|
}
|
|
});
|
|
}
|