/**
 * OpenClaw Email Channel Plugin
 *
 * Registers "email" as a native channel with:
 * - HTTP route POST /api/email/inbound for receiving emails from backend
 * - Outbound adapter sendText() for delivering agent replies via backend MailChannels
 * - Proper MsgContext with OriginatingChannel/OriginatingTo for native reply routing
 *
 * Flow:
 *   Backend POST → /api/email/inbound → plugin parses + dispatches to agent
 *   → agent replies → Gateway routeReply("email") → plugin sendText()
 *   → POST backend /api/openclaw/email/send → MailChannels → recipient inbox
 */

import { emailPlugin } from "./src/channel.js";
import { registerEmailInboundRoute } from "./src/inbound.js";
import { setEmailRuntime } from "./src/runtime.js";

const plugin = {
  id: "genspark-email",
  name: "Genspark Email Channel",
  description: "Email channel for OpenClaw via genspark.email / MailChannels",
  configSchema: { type: "object" as const, properties: {} },
  register(api: any) {
    setEmailRuntime(api.runtime);
    api.registerChannel({ plugin: emailPlugin });
    registerEmailInboundRoute(api);
    api.logger.info("[email-channel] Email channel plugin registered");
  },
};

export default plugin;

