Spaces:
Running
Running
| import type { ChannelOutboundAdapter } from "../types.js"; | |
| import { chunkText } from "../../../auto-reply/chunk.js"; | |
| import { sendMessageIMessage } from "../../../imessage/send.js"; | |
| import { resolveChannelMediaMaxBytes } from "../media-limits.js"; | |
| export const imessageOutbound: ChannelOutboundAdapter = { | |
| deliveryMode: "direct", | |
| chunker: chunkText, | |
| chunkerMode: "text", | |
| textChunkLimit: 4000, | |
| sendText: async ({ cfg, to, text, accountId, deps }) => { | |
| const send = deps?.sendIMessage ?? sendMessageIMessage; | |
| const maxBytes = resolveChannelMediaMaxBytes({ | |
| cfg, | |
| resolveChannelLimitMb: ({ cfg, accountId }) => | |
| cfg.channels?.imessage?.accounts?.[accountId]?.mediaMaxMb ?? | |
| cfg.channels?.imessage?.mediaMaxMb, | |
| accountId, | |
| }); | |
| const result = await send(to, text, { | |
| maxBytes, | |
| accountId: accountId ?? undefined, | |
| }); | |
| return { channel: "imessage", ...result }; | |
| }, | |
| sendMedia: async ({ cfg, to, text, mediaUrl, accountId, deps }) => { | |
| const send = deps?.sendIMessage ?? sendMessageIMessage; | |
| const maxBytes = resolveChannelMediaMaxBytes({ | |
| cfg, | |
| resolveChannelLimitMb: ({ cfg, accountId }) => | |
| cfg.channels?.imessage?.accounts?.[accountId]?.mediaMaxMb ?? | |
| cfg.channels?.imessage?.mediaMaxMb, | |
| accountId, | |
| }); | |
| const result = await send(to, text, { | |
| mediaUrl, | |
| maxBytes, | |
| accountId: accountId ?? undefined, | |
| }); | |
| return { channel: "imessage", ...result }; | |
| }, | |
| }; | |