// Message send command registration, including media and presentation/delivery options. import type { Command } from "commander"; import type { MessageCliHelpers } from "./helpers.js"; /** Register `message send` and route execution through shared message helpers. */ export function registerMessageSendCommand(message: Command, helpers: MessageCliHelpers) { helpers .withMessageBase( helpers .withRequiredMessageTarget( message .command("send") .description("Send a message") .option( "-m, --message ", "Message body (required unless --media or --presentation is set)", ), ) .option( "--media ", "Attach media (image/audio/video/document). Accepts local paths or URLs.", ) .option( "--presentation ", "Shared presentation payload as JSON (text, context, dividers, charts, tables, buttons, selects)", ) .option("--delivery ", "Shared delivery preferences as JSON") .option("--pin", "Request that the delivered message be pinned when supported", false) .option("--reply-to ", "Reply-to message id") .option("--thread-id ", "Thread id (Telegram forum thread)") .option("--gif-playback", "Treat video media as GIF playback (WhatsApp only).", false) .option( "--force-document", "Preserve original image bytes on Slack, or send images, GIFs, and videos as documents on Telegram and WhatsApp, to avoid channel compression.", false, ) .option( "--silent", "Send message silently without notification (Telegram + Discord)", false, ), ) .action((opts) => helpers.runMessageAction("send", opts)); }