openclaw / src /cli /program /message /register.send.ts
SaylorTwift's picture
SaylorTwift HF Staff
Add files using upload-large-folder tool
eb3f11e verified
Raw
History Blame Contribute Delete
1.86 kB
// 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 <text>",
"Message body (required unless --media or --presentation is set)",
),
)
.option(
"--media <path-or-url>",
"Attach media (image/audio/video/document). Accepts local paths or URLs.",
)
.option(
"--presentation <json>",
"Shared presentation payload as JSON (text, context, dividers, charts, tables, buttons, selects)",
)
.option("--delivery <json>", "Shared delivery preferences as JSON")
.option("--pin", "Request that the delivered message be pinned when supported", false)
.option("--reply-to <id>", "Reply-to message id")
.option("--thread-id <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));
}