Circadian (bundled plugin, off by default)
Publishes the phase of day in four places:
- the
circadian.phasesignal (read by other plugins, e.g. a proactive-triggers rule withsignalEquals: { name: "circadian.phase", path: "phase", value: "deep-night" }); - the agent tool
circadian_phase(phase, local time, weekend flag and the behaviour flags); <state>/signals/circadian.jsonfor anything outside the gateway (writeFile: true);- a system event to
notifySessionKeyon every phase change (optional).
Each phase carries flags: monitoring (reduced / normal / heightened), alertThreshold
(critical-only / all), cleanupAllowed, expectedActivity (minimal / low / normal / high).
Phase changes are audited (circadian.phase_changed).
Default table (local time, wraps midnight):
| phase | hours | monitoring | alerts | cleanup | activity |
|---|---|---|---|---|---|
| dawn | 06-09 | normal | all | no | low |
| morning | 09-12 | heightened | all | no | high |
| midday | 12-14 | normal | all | no | normal |
| afternoon | 14-18 | heightened | all | no | high |
| evening | 18-21 | normal | all | no | normal |
| night | 21-02 | reduced | all | yes | low |
| deep-night | 02-06 | reduced | critical-only | yes | minimal |
Config
Section titled “Config”{ plugins: { entries: { circadian: { enabled: true, config: { intervalMs: 60000, timezone: "Asia/Tokyo", // IANA; default: the process zone notifySessionKey: "agent:main:main", writeFile: true, phases: [ // optional: replaces the default table { name: "work", from: 8, to: 18, monitoring: "heightened", expectedActivity: "high" }, { name: "off", from: 18, to: 8, monitoring: "reduced", alertThreshold: "critical-only", cleanupAllowed: true, expectedActivity: "minimal" }, ], }, }, }, },}Audit source: plugin:circadian. Signal: circadian.phase = the full snapshot.