CI publishes with `pnpm install` per package; commit pnpm-lock.yaml for
core and mcp (previously missing) and refresh cli's after the @moemail/core
dependency was added, so installs are reproducible.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Extract the HTTP client and config into a new @moemail/core package shared
by the CLI and a new @moemail/mcp server, so both frontends talk to the same
MoeMail API through one code path.
- core: api client (now throws typed ConfigError/AuthError/PermissionError/
QuotaError instead of process.exit), config, msToIso, and a transport-
agnostic pollForNewMessage helper.
- cli: consume @moemail/core; route command errors through a shared fail()
that preserves exit codes (config/auth = 2, else = 1). Bump to 1.0.0.
- mcp: new stdio MCP server exposing 8 tools (create/list/read/wait/send/
delete); wait_for_email is bounded and returns a timeout status to retry.
Configured via MOEMAIL_API_KEY / MOEMAIL_API_URL env. Release 1.0.0.
Docs:
- Fix packages/cli/README.md (config set, send --content not --body, full
flag table).
- Add MCP section to both root READMEs; complete the CLI command list
(send, list, message-level delete).
- SKILL.md: --json works before or after the subcommand.
- Ignore bun.lock in package gitignores.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>