Skip to content

Add AgentMail plugin (paid-member mailbox client for humans + agents)#73

Merged
ralyodio merged 1 commit into
masterfrom
feat/agentmail-plugin
Jun 14, 2026
Merged

Add AgentMail plugin (paid-member mailbox client for humans + agents)#73
ralyodio merged 1 commit into
masterfrom
feat/agentmail-plugin

Conversation

@ralyodio

Copy link
Copy Markdown
Contributor

What

New @logicsrc/plugin-agentmail — an agent-native mailbox client for Founding Lifetime (paid) members: read, search, compose, send, reply, flag, delete. Every method returns plain JSON-serializable domain objects, so the same API is ergonomic for a human TUI, the CLI, MCP, and bots.

Design (mirrors the agentgit plugin)

  • domain.ts — transport-agnostic types (Mailbox/MessageSummary/Message/Draft/MailAddress) + pure helpers (parseAddress, formatAddress, normalizeDraft, isValidEmail, snippet).
  • ports.ts — the MailTransport seam (service talks only to this).
  • service.tsAgentMailService: paid-gated inbox/list/read/search/send/reply/flag/delete.
  • access.ts — mail is a paid perk; every call runs assertPaid.
  • transports/memory.ts — complete dependency-free backend (tests/dev/reference).
  • transports/mailu.ts — self-hosted Mailu seam (mail.profullstack.com IMAP + smtp.profullstack.com submission) with injected IMAP/SMTP drivers, keeping heavy network libs out of the plugin (repo convention).
  • index.tsPluginDefinition (manifest, routes, capabilities, tuiPanels); registered in the root build.

Verification

tsc build clean; 20 vitest tests pass (domain + service against the in-memory transport).

Related

  • The real network drivers + the Go TUI reader live on the BBS side (separate task).
  • Pairs with the self-hosted Mailu stack at mail.profullstack.com (DNS for mail./smtp.profullstack.com already added).

🤖 Generated with Claude Code

@logicsrc/plugin-agentmail provides read/search/compose/send/flag/delete
over an injected MailTransport, gated to Founding Lifetime (paid) members.
Returns plain JSON-serializable domain objects so the same API serves a
human TUI, the CLI, MCP, and bots.

- domain.ts: transport-agnostic types + pure helpers (parse/format address,
  normalizeDraft, isValidEmail, snippet)
- ports.ts: MailTransport seam
- service.ts: AgentMailService (inbox/list/read/search/send/reply/flag/delete)
- access.ts: paid-member gate (assertPaid) + capability constants
- transports/memory.ts: complete in-memory backend (tests/dev/reference)
- transports/mailu.ts: self-hosted Mailu seam (mail.profullstack.com IMAP +
  smtp.profullstack.com submission) with injected IMAP/SMTP drivers
- index.ts: PluginDefinition (manifest, routes, capabilities, tuiPanels)
- registered in the root build; 20 vitest tests pass

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

vu1nz Security Review

0 finding(s) in PR #?

No security issues found.

@ralyodio ralyodio merged commit cb05a64 into master Jun 14, 2026
3 of 5 checks passed
@ralyodio ralyodio deleted the feat/agentmail-plugin branch June 14, 2026 16:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant