feat: add imessage rpc adapter

This commit is contained in:
Peter Steinberger
2026-01-02 01:19:13 +01:00
parent 3ee27a00c7
commit cbac34347b
23 changed files with 1451 additions and 15 deletions

View File

@@ -155,7 +155,7 @@ export function registerCronCli(program: Command) {
.option("--deliver", "Deliver agent output", false)
.option(
"--channel <channel>",
"Delivery channel (last|whatsapp|telegram|discord|signal)",
"Delivery channel (last|whatsapp|telegram|discord|signal|imessage)",
"last",
)
.option(
@@ -414,7 +414,7 @@ export function registerCronCli(program: Command) {
.option("--deliver", "Deliver agent output", false)
.option(
"--channel <channel>",
"Delivery channel (last|whatsapp|telegram|discord|signal)",
"Delivery channel (last|whatsapp|telegram|discord|signal|imessage)",
)
.option(
"--to <dest>",

View File

@@ -1,4 +1,5 @@
import { sendMessageDiscord } from "../discord/send.js";
import { sendMessageIMessage } from "../imessage/send.js";
import { logWebSelfId, sendMessageWhatsApp } from "../providers/web/index.js";
import { sendMessageSignal } from "../signal/send.js";
import { sendMessageTelegram } from "../telegram/send.js";
@@ -8,6 +9,7 @@ export type CliDeps = {
sendMessageTelegram: typeof sendMessageTelegram;
sendMessageDiscord: typeof sendMessageDiscord;
sendMessageSignal: typeof sendMessageSignal;
sendMessageIMessage: typeof sendMessageIMessage;
};
export function createDefaultDeps(): CliDeps {
@@ -16,6 +18,7 @@ export function createDefaultDeps(): CliDeps {
sendMessageTelegram,
sendMessageDiscord,
sendMessageSignal,
sendMessageIMessage,
};
}

View File

@@ -282,10 +282,12 @@ export function buildProgram() {
program
.command("send")
.description("Send a message (WhatsApp Web, Telegram bot, Discord, Signal)")
.description(
"Send a message (WhatsApp Web, Telegram bot, Discord, Signal, iMessage)",
)
.requiredOption(
"-t, --to <number>",
"Recipient: E.164 for WhatsApp/Signal, Telegram chat id/@username, or Discord channel/user",
"Recipient: E.164 for WhatsApp/Signal, Telegram chat id/@username, Discord channel/user, or iMessage handle/chat_id",
)
.requiredOption("-m, --message <text>", "Message body")
.option(
@@ -294,7 +296,7 @@ export function buildProgram() {
)
.option(
"--provider <provider>",
"Delivery provider: whatsapp|telegram|discord|signal (default: whatsapp)",
"Delivery provider: whatsapp|telegram|discord|signal|imessage (default: whatsapp)",
)
.option("--dry-run", "Print payload and skip sending", false)
.option("--json", "Output result as JSON", false)
@@ -337,7 +339,7 @@ Examples:
.option("--verbose <on|off>", "Persist agent verbose level for the session")
.option(
"--provider <provider>",
"Delivery provider: whatsapp|telegram|discord|signal (default: whatsapp)",
"Delivery provider: whatsapp|telegram|discord|signal|imessage (default: whatsapp)",
)
.option(
"--deliver",