Envelope
Every session object is stored as an envelope — a JSON document with the following top-level fields:| Field | Type | Description |
|---|---|---|
revision_id | string | Revision that owns this object. |
session_id | string | Session that owns this object. |
alias | string | Unique name for this object within the session. |
updated_at | string | ISO 8601 timestamp of the last upload_session_object call. |
value | object | The typed payload. Must contain at minimum "type" as a discriminator. |
value object always begins with a type string that determines the payload shape:
Managing Session Objects
| Operation | Description |
|---|---|
| Upload Session Object | Create or replace an object (envelope only). |
| Download Session Object | Read back the full envelope. |
| List Session Objects | List aliases of all objects present in the session. |
session_object_modified
session event. Deleting it fires
session_object_deleted.
Types
Some types have additional incremental operations and real-time events beyond the basic upload/download/list.| Type | Description | Details |
|---|---|---|
message | A single generative-AI message (role + content + providers + metadata). | See Data Types |
messages | An ordered sequence of message objects representing a conversation log. | See Data Types |
thread | An append-only stream of structured items. Items live in a separate store with their own API. | See thread |
graph | A mutable property graph of vertices and edges. Elements live in a separate store with their own API. | See graph |
thread and graph types are envelope-based: uploading the envelope creates the container,
and dedicated commands manage the items or elements. Deleting the envelope via
delete_session_object cascades and removes all associated items or elements.
