Header menu logo Nao

Nao.Runtime.Orleans Namespace

Type/Module Description

ConversationMeta

Metadata about a persisted conversation

FileConversationStore

 File-based conversation store.
 Layout:
   {baseDir}/
     {sessionDir}/
       conversations.json                  — index: every conversation's metadata
       conversations/
         {conversationId}/
           messages.json                   — the full message history (JSON array)
           meta.json                       — conversation-level metadata

 A conversation's id is its (possibly hierarchical) name flattened to a single safe
 folder name, so sub-agent delegations — named "parent/child-turn-n" — each get their
 own folder listed in the index rather than nesting physically. The full name is kept in
 each meta's `ConversationName`.

 {baseDir} is the shared `sessions/` root and paths resolve through `SessionPaths.sessionDir`,
 so a session's conversations nest alongside its tasks, files, observability and feedback
 under one folder, and a task-spawned sub-session's conversations nest beneath that task.

FileTaskStore

 File-based task store.
 Layout:
   {baseDir}/
     {sessionDir}/
       tasks.json            — index: all task records, ordered by Sequence
       tasks/
         {taskId}/
           meta.json         — one task's full record
           sessions/         — the sub-session(s) this task spawned (written by their grains)

 {baseDir} is the shared `sessions/` root. Paths resolve through `SessionPaths.sessionDir`
 so a task's metadata and the sub-session it starts nest together under tasks//,
 and everything for a session shares one parent folder.

IConversationStore

Pluggable interface for external conversation persistence. Implementations can store to files, databases, or cloud storage. All methods are organized by session ID for grouping.

ITaskStore

Pluggable store for externalized task state, grouped by parent session key.

IWorkspaceRegistry

Registry that manages multiple workspaces within a single silo. Customers register workspaces at silo startup or dynamically at runtime. Grains resolve workspace definitions by key on each request.

PersistedMessage

A single persisted message in a conversation

PublishingConversationStore

Tee conversation store: every WRITE is persisted to the wrapped backing store (so history reads stay correct) and ALSO published to the bus as a `ConversationCaptured` event, so the transcript stream flows through the same event pipeline as feedback and observability. The producer (the `SessionGrain`) keeps depending only on `IConversationStore`; swapping the backing store for a database/cloud implementation needs no producer change, and any subscriber can persist or forward the events independently.

SessionPaths

 Single source of truth for mapping a session grain key to its on-disk directory.

 A session key is a '/'-separated path:
   "userId/sessionId"                  → a primary (top-level) session
   "userId/sessionId/taskId"           → the sub-session a task spawned
   "userId/sessionId/taskId/taskId2"   → a sub-session of that sub-session (recursive)

 The first two segments name the primary session folder ("userId_sessionId"). Every
 further segment is a task id, so its sub-session nests beneath the task that started it:
   sessions/userId_sessionId/tasks//sessions//
 keeping a task's own metadata (tasks//meta.json) and the session it spawned
 (tasks//sessions/...) together under one folder. Every storage subsystem
 (conversations, tasks, files, observability, feedback) resolves paths through this
 module so all of a session's data shares one parent folder, nested identically.

TaskRecord

On-disk, grain-independent record of an async task. This is the externalized copy of a task's authoritative state, written by the owning task grain so the full task history is readable straight from the filesystem (for tracking/debugging) without activating a grain.

TurnStepRecord

A single step in the process an agent ran to produce a turn's answer (a tool invocation or a sub-agent delegation). Surfaced to the frontend so the whole process — not just the final answer — is visible.

WorkspaceId (Module)

WorkspaceId (Type)

Identifies a loaded workspace

WorkspaceRegistry (Module)

WorkspaceRegistry (Type)

In-memory workspace registry backed by a concurrent dictionary. Designed to be registered as a singleton in the Orleans DI container.

Type something to start searching.