Skip to main content
Session objects are typed, aliased values stored in a session’s context. Any workflow processor or external caller can read and write session objects to share state across executions within the same session.

Envelope

Every session object is stored as an envelope — a JSON document with the following top-level fields: The value object always begins with a type string that determines the payload shape:

Alias grammar (the namespace)

An alias is a path — one or more /-separated segments — so a session’s objects form a filesystem-like namespace (e.g. README.md, missions/a1b2c3/graph, system/config.v2). Uppercase, dots (including leading dots such as .gitignore), and @ are allowed, so aliases can mirror real repository paths. The grammar is enforced when an object is created or overwritten; reads, deletes, and listing accept any alias, so objects predating the grammar remain accessible. This is a session object’s own alias, not to be confused with a session’s or schedule’s alias — the short, stable name used in place of an id, documented in Alias Grammar. The two grammars are deliberately incompatible and never share a value. List Session Objects navigates this namespace with prefix (scope a subtree), delimiter: "/" (browse one level as folders), and cursor pagination.

Managing Session Objects

Uploading an object fires a 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. The 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.