inbox_type:"user".
Disambiguation: these tools address the human inbox. Agent-to-agent traffic lives in the agent_inbox data view — query it with data_query.
inbox_list
List the user’s inbox items. Default status=unread.
Returns:
{ items: [...], count }. Each item: id, from_actor, category, tags, subject, body, priority, status, source_table, source_record_id, thread_id, created_at, read_at, responded_at, plus inbox_type:"user" on every row (distinguishes this human inbox from the agent_inbox data view).
Permissions: read; own inbox only.
inbox_get
One inbox item in full (body + payload) with its thread (the conversation on the same thread id).
Returns:
{ item, thread }. item is the full row (list columns plus payload, parent_id, inbox_type); thread is the sibling rows on the same thread_id, oldest first (up to 50), each tagged inbox_type:"user". Not found → { error: "Inbox item not found" }.
Permissions: read; own inbox only.
inbox_mark_read
Mark an inbox item as read.
Returns:
{ ok:true, id, status:"read" }. Only unread items are marked (an already-responded item is left untouched → { error: "Inbox item not found (or already responded)" }).
Permissions: write; own inbox only.
inbox_reply
Reply to an inbox item. The reply is addressed back to the original sender (the agent) and the item is marked responded. Caution: only call when the human user dictated the reply.
Returns:
{ ok:true, reply_id, note } — the reply row is addressed back to the original sender and the parent item is marked responded. (Reply text is capped at 10000 chars.)
Permissions: write; own inbox only; human-dictated replies only.
