Adds a new 'directMessage' cron payload type that sends text directly to
a channel without spinning up an AI session. Zero token cost.
- New sessionTarget 'none' for non-AI cron jobs
- New payload kind 'directMessage' with text, channel, and to fields
- Auto-inference: directMessage payload auto-sets sessionTarget to 'none'
- Gateway sendDirectMessage wired through runMessageAction
- Schema, normalization, and tool docs updated
Closes the efficiency gap where simple text reminders (birthdays, nudges)
previously required a full agentTurn session (~5-10K tokens each).