The email worker speaks SMTP and IMAP through persistent per-account
connections. Every callable surface lives under the email::* namespace.
The transport is chosen per account in config.yaml — provider: smtp
for send-only accounts, provider: imap for two-way accounts that also
need to read and react to inbound mail.
The worker refuses to fall back to polling. If an IMAP server does not
advertise the IDLE capability, the supervisor fails at startup with
E610. Inbound messages flow through the email::new-mail trigger type,
fanned out by an IDLE-driven dispatcher the moment a server-side
EXISTS notification lands. Credentials never live in this worker —
every IMAP login and every email::send calls auth::get_token against
harness/auth-credentials under provider key email::<account>.