Skip to main content
Group-membership management content. Universal content — providers dispatch by content.type in their send action and decide their own support story (e.g. iMessage only supports it for remote group chats; on a DM it surfaces an UnsupportedError telling the caller to create a group via space.create instead). space.send(addMember(users)) is the canonical form; space.add(...), space.remove(...), and space.leave() are universal sugar that delegate here. All three are fire-and-forget — no Message is produced. Bidirectional: providers also surface platform membership events as inbound Messages carrying this content. message.sender is the acting user — who added/removed the members — and may be undefined when the platform recorded no actor. For leaveSpace the sender is the leaver (the content carries no members). The agent’s own actions are suppressed: space.add(...) does not echo back as an inbound event. Members are id strings (or Users, normalized to their id) in the same platform handle format space.create accepts. No async resolution happens in the builder — ids reach the provider verbatim.