We have a custom channel extension whatsapp-cloud using Meta Cloud API, not the built-in Baileys whatsapp.
Inbound media is downloaded successfully to a local file path. We dispatch via dispatchReplyWithBufferedBlockDispatcher({ ctx, cfg, dispatcherOptions }).
Question: for custom channel extensions, what is the officially supported way to pass inbound media into OpenClaw so native model media/tool calls see it?
Should ctx include:
- MediaPath / MediaPaths / MediaType / MediaTypes
- mediaPath / mediaPaths / mediaType / mediaTypes
- attachments / Attachments
- metadata.message.MediaPath
- or a separate dispatcher/chat attachment field?
Current failure before patch:
- WhatsApp image/PDF downloaded to
/app/data/whatsapp-media/... - model called
imagewithoutimageparam and gotimage required - model called
pdfwithoutpdfparam and gotpdf required
Docs mention MediaPath / MediaUrl, but I want to confirm the correct extension-channel contract for 2026.4.23+.