pub(crate) const CRON_CREATE_TOOL: &str = r#"{
"name": "CronCreate",
"description": "AgentMux's own cross-agent cron — NOT the same tool as the native (non-mcp__agentmux__-prefixed) CronCreate your harness may also expose, which schedules only your own session's future turn. Use this one specifically to target a DIFFERENT agent (or when you need AgentMux-persisted delivery independent of any single session). Creates a persistent scheduled cron job that survives agent pane restarts. Fires the prompt on a UTC cron schedule by injecting it into the target agent. Unlike Loop, cron jobs persist as long as agentmux-srv is running. Returns a job id and the next scheduled fire time. If you're scheduling your OWN future turn instead, prefer the native CronCreate/ScheduleWakeup tools — no cross-agent envelope overhead.",
"inputSchema": {
"type": "object",
"properties": {
"name": { "type": "string", "description": "Human-readable label for the job (e.g. 'daily-standup-check')" },
"expression": { "type": "string", "description": "5-field UTC cron expression: 'min hour dom month dow' (e.g. '0 9 * * 1-5' = 9am weekdays). Standard cron syntax; ranges, lists, and step values are supported." },
"prompt": { "type": "string", "description": "The prompt or slash command to inject at each scheduled fire" },
"to": { "type": "string", "description": "Target agent, by name or by uid. Required. A name held by several agents is refused with the candidates; retry with the uid — the job then fires by uid, so renaming the agent later cannot break it." },
"max_fires": { "type": "integer", "description": "Auto-disable after this many fires (the job row stays in DB for audit; use CronDelete to remove it). Omit for unlimited." },
"max_age_secs": { "type": "integer", "description": "Auto-disable this many seconds after creation, regardless of fire count (a hard staleness/stuck-loop bound, matching the spirit of native CronCreate's 7-day auto-expiry). Omit for no expiry — appropriate for genuinely long-running cross-agent automations; set this when babysitting something that should have a natural end (e.g. 'stop checking this PR after 6 hours even if it's still open')." }
},
"required": ["name", "expression", "prompt", "to"]
}
}"#;