Some checks failed
Forge CI / smoke-and-build (pull_request) Failing after 1m25s
1. New cron/ssh_dispatch.py — validated SSH dispatch: - SSHEnvironment probes remote hermes binary via test -x - DispatchResult returns success=False on broken paths - dispatch_to_hosts / format_dispatch_report for multi-host ops 2. cron/scheduler.py — 7 new failure phrases: - no such file or directory, command not found - hermes binary not found, hermes not found - ssh: connect to host, connection timed out, host key verification failed 3. cron/__init__.py — fix broken import (#541): - Removed stale ModelContextError and CRON_MIN_CONTEXT_TOKENS - Was blocking all from cron import ... calls Closes #561 (Closes #350, #541)
43 lines
1.0 KiB
Python
43 lines
1.0 KiB
Python
"""
|
|
Cron job scheduling system for Hermes Agent.
|
|
|
|
This module provides scheduled task execution, allowing the agent to:
|
|
- Run automated tasks on schedules (cron expressions, intervals, one-shot)
|
|
- Self-schedule reminders and follow-up tasks
|
|
- Execute tasks in isolated sessions (no prior context)
|
|
|
|
Cron jobs are executed automatically by the gateway daemon:
|
|
hermes gateway install # Install as a user service
|
|
sudo hermes gateway install --system # Linux servers: boot-time system service
|
|
hermes gateway # Or run in foreground
|
|
|
|
The gateway ticks the scheduler every 60 seconds. A file lock prevents
|
|
duplicate execution if multiple processes overlap.
|
|
"""
|
|
|
|
from cron.jobs import (
|
|
create_job,
|
|
get_job,
|
|
list_jobs,
|
|
remove_job,
|
|
update_job,
|
|
pause_job,
|
|
resume_job,
|
|
trigger_job,
|
|
JOBS_FILE,
|
|
)
|
|
from cron.scheduler import tick
|
|
|
|
__all__ = [
|
|
"create_job",
|
|
"get_job",
|
|
"list_jobs",
|
|
"remove_job",
|
|
"update_job",
|
|
"pause_job",
|
|
"resume_job",
|
|
"trigger_job",
|
|
"tick",
|
|
"JOBS_FILE",
|
|
]
|