NOIR
Reference

Messages and output

Reference for normalized inbound events, attachments, channel locations, rich output, and delivery status.

Every event includes a unique ID, channel location, provider timestamp, and event-specific fields.

Inbound kinds

  • message: actor text, attachments, and optional reply target
  • approval: approval ID and approve/deny decision
  • reaction: message target, reaction, and removal state
  • edit: edited message text and attachments
  • file: one file event and optional associated message
  • card: action ID, value, and message target
  • typing: actor and active state
  • read-receipt: message ID and read time
  • delivery: message ID, accepted/sent/delivered/read/failed status, and error

Adapters may emit only the event kinds supported by the provider.

Attachments

An inbound attachment is metadata and an opaque provider reference. resolveAttachment returns bounded bytes only after the channel verifies the reference belongs to the current event. Do not treat url as permission to fetch an arbitrary host.

Outbound kinds

message, status, edit, reaction, file, card, media-group, typing, and read-receipt share channel location, event ID, text, and optional metadata. Approval output adds an ApprovalPrompt with labels and expiration.

Files carry UTF-8 or base64 data. Cards contain a title, body, fields, and actions. Media groups contain opaque media references and fallback text. The adapter maps these into the richest safe provider representation.

Delivery

send returns accepted or sent plus an optional external message ID. Later provider receipts can update delivered, read, or failed state through inbound delivery events. The outbox records completion independently from the model turn.

Channel capabilities are authoritative. A runtime or capability should not emit reactions, edits, cards, typing, or read receipts when the selected adapter declares them unsupported.

On this page