How naroh091/hermes-proactive-radar works
Hermes Radar is a proactive assistant that turns mail, calendar, repository, and conversation activity into tracked tasks, decides what merits attention, and either handles work or asks the owner. The README documents this principal workflow and additional capabilities including warmup, trust-governed jobs, reminders, feedback learning, and dashboard/desktop views. Source excerpts are partial, so unsampled subsystem links below rely on README statements rather than inspected implementation details.
Main entry points: process.py Task processing · service.py Job service · triage.py Signal triage · dispatch.py Notice dispatch
Components 29
Signals & setup
- Mail source
radar/sources/gmail.py - Calendar source
radar/sources/calendar.py - GitHub source
radar/sources/github.py - Chat signals
radar/sources/session.py - Cron signals
radar/sources/cron_output.py - Push ingress
radar/ingress/gmail_push_receiver.py - Connectors
radar/providers/registry.py - Profile warmup
radar/warmup.py - Runtime scheduler
radar/scheduler.py
Task reasoning
- Signal triage
radar/pipeline/triage.py - Task processing
radar/pipeline/process.py - Task checklists
radar/pipeline/checklists.py - Pipeline schemas
radar/pipeline/schemas.py - Radar state
radar/store.py
Actions & trust
- Job service
radar/jobs/service.py - Job runner
radar/jobs/runner.py - Execution firewall
radar/jobs/firewall.py - Native operations
radar/operations/native.py - Trust policy
radar/trust.py
Delivery & learning
- Notice cadence
radar/delivery/cadence.py - Notice dispatch
radar/delivery/dispatch.py - Notice content
radar/delivery/notice.py - Mail context
radar/delivery/context.py - Feedback learning
radar/delivery/learn.py - User preferences
radar/preferences.py
User surfaces
- Dashboard panel
dashboard/plugin_api.py - Desktop panel
desktop/plugin.js
Other components
- Owner
- Messaging gateway
Connections 33
- Mail source → Signal triage: emits signals
- Calendar source → Signal triage: emits signals
- GitHub source → Signal triage: emits signals
radar/sources/github.py - Chat signals → Signal triage: emits signals
- Cron signals → Signal triage: emits signals
- Push ingress → Mail source: receives push
- Connectors → Mail source: connects source
- Connectors → Calendar source: connects source
- Profile warmup → Mail source: learns habits
- Profile warmup → Calendar source: learns habits
- Signal triage → Task processing: filters signals
- Task processing → Radar state: updates tasks
- Task processing → Task checklists: builds checks
- Task processing → Pipeline schemas: uses schemas
- Runtime scheduler → Task processing: runs pipeline
- Task processing → Job service: proposes work
- Job service → Trust policy: checks permission
radar/jobs/service.py - Job service → Execution firewall: applies safeguards
radar/jobs/service.py - Job service → Job runner: starts delegated job
radar/jobs/service.py - Job service → Native operations: routes native work
radar/jobs/service.py - Runtime scheduler → Job service: starts approved work
- Radar state → Notice dispatch: supplies task state
- Notice dispatch → Notice cadence: schedules notices
- Notice dispatch → Notice content: prepares messages
- Notice content → Mail context: adds email context
- Owner → Messaging gateway: replies to notices
- Notice dispatch → Messaging gateway: sends notices
- Messaging gateway → Feedback learning: captures feedback
- Feedback learning → User preferences: updates preferences
- Owner → Dashboard panel: reviews tasks
- Dashboard panel → Radar state: reads and records decisions
dashboard/plugin_api.py - Owner → Desktop panel: views task panel
- Desktop panel → Dashboard panel: uses shared panel API