456a7effd0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
60 lines
2.2 KiB
Markdown
60 lines
2.2 KiB
Markdown
# Official Hermes Dashboard API Integration
|
|
|
|
Branch: `feat/official-api`
|
|
|
|
## Overview
|
|
Integrate with the official Hermes REST API (`hermes dashboard` on `127.0.0.1:9119`) to replace or supplement CLI-based data fetching.
|
|
|
|
Reference: https://hermes-agent.nousresearch.com/docs/user-guide/features/web-dashboard
|
|
|
|
## Priority
|
|
|
|
### High
|
|
1. **Config management page** — `GET/PUT /api/config`, `GET /api/config/schema`
|
|
- New settings page with form-based config editor
|
|
- All config fields auto-discovered from schema
|
|
- Save, reset to defaults, export/import
|
|
2. **API Key management** — `GET/PUT/DELETE /api/env`
|
|
- View, set, delete API keys
|
|
- Grouped by category (LLM, Tools, Messaging)
|
|
- Redacted value display
|
|
3. **Session search** — `GET /api/sessions/search?q=...`
|
|
- Full-text search across all message content
|
|
- Highlighted snippets
|
|
|
|
### Medium
|
|
4. **Analytics** — `GET /api/analytics/usage?days=30`
|
|
- Use official API data instead of computing from session list
|
|
- More accurate cost/cache stats
|
|
5. **Cron job management** — Full CRUD
|
|
- Create, pause/resume, trigger, delete scheduled jobs
|
|
- Job list with status, schedule, run history
|
|
6. **Skills toggle** — `PUT /api/skills/toggle`
|
|
- Enable/disable skills directly from UI
|
|
7. **Status enhancement** — `GET /api/status`
|
|
- Platform connection states
|
|
- Active session count
|
|
|
|
### Low
|
|
8. **Toolsets** — `GET /api/tools/toolsets`
|
|
- Display available toolsets with status
|
|
|
|
## Architecture
|
|
- BFF (Koa) proxies requests to official API at `127.0.0.1:9119`
|
|
- Fallback to CLI when official API is not available
|
|
- User can configure official dashboard address in settings
|
|
- CORS: official API restricts to localhost, our BFF handles this
|
|
|
|
## API Endpoints to Integrate
|
|
- `GET /api/status`
|
|
- `GET /api/sessions`, `GET /api/sessions/{id}`, `GET /api/sessions/{id}/messages`
|
|
- `GET /api/sessions/search?q=...`
|
|
- `DELETE /api/sessions/{id}`
|
|
- `GET /api/config`, `GET /api/config/defaults`, `GET /api/config/schema`, `PUT /api/config`
|
|
- `GET /api/env`, `PUT /api/env`, `DELETE /api/env`
|
|
- `GET /api/logs`
|
|
- `GET /api/analytics/usage?days=N`
|
|
- `GET /api/cron/jobs`, `POST /api/cron/jobs`, `POST/DELETE /api/cron/jobs/{id}/*`
|
|
- `GET /api/skills`, `PUT /api/skills/toggle`
|
|
- `GET /api/tools/toolsets`
|