@conclave-ai/integration-email
v0.6.22
Published
Conclave AI email notifier — pluggable transport (Resend default; SMTP/SES/nodemailer drop-ins).
Readme
@conclave-ai/integration-email
Email notifier for Conclave AI council reviews. Implements the
Notifier interface from @conclave-ai/core.
Decision #24: equal-weight integration alongside Telegram / Discord / Slack / CLI.
Install
pnpm add @conclave-ai/integration-email @conclave-ai/coreDefault transport — Resend
import { EmailNotifier } from "@conclave-ai/integration-email";
const email = new EmailNotifier({
from: "[email protected]",
to: "[email protected]",
// RESEND_API_KEY is read from env automatically
});No Resend SDK dependency — a single fetch call to the REST API.
Swapping transports
EmailNotifier accepts any object implementing EmailTransport
({ id, send(msg) }). Drop-in examples:
// nodemailer SMTP
import nodemailer from "nodemailer";
const smtp = nodemailer.createTransport({ host, port, auth });
const transport = {
id: "smtp",
send: (m) => smtp.sendMail(m).then(() => undefined),
};
new EmailNotifier({ from, to, transport });
// @aws-sdk/client-ses — similar wrapper
// postmark / sendgrid / mailgun — implement send() the same wayEnv
| Var | Purpose |
|---|---|
| RESEND_API_KEY | Default transport (Resend API) |
| CONCLAVE_EMAIL_FROM | From address fallback |
| CONCLAVE_EMAIL_TO | Comma-separated recipient list fallback |
Message shape
- Subject:
[conclave] VERDICT — repo #N(override viasubjectOverride) - Plaintext body + HTML body; both rendered from the same source
- HTML is self-contained (inline styles, email-client safe)
- Cost + episodic id in footer
