Skip to content

SnapshotStorage

Defined in: src/session/storage.ts:47

Interface for snapshot persistence. Implementations provide storage backends (S3, filesystem, etc.).

File layout convention:

sessions/<session_id>/
scopes/
agent/<scope_id>/
snapshots/
snapshot_latest.json
immutable_history/
snapshot_<uuid>.json
snapshot_<uuid>.json
saveSnapshot(params): Promise<void>;

Defined in: src/session/storage.ts:51

Persists a snapshot to storage.

ParameterType
params{ location: SnapshotLocation; snapshotId: string; isLatest: boolean; snapshot: Snapshot; }
params.locationSnapshotLocation
params.snapshotIdstring
params.isLatestboolean
params.snapshotSnapshot

Promise<void>


loadSnapshot(params): Promise<Snapshot>;

Defined in: src/session/storage.ts:61

Loads a snapshot from storage.

ParameterType
params{ location: SnapshotLocation; snapshotId?: string; }
params.locationSnapshotLocation
params.snapshotId?string

Promise<Snapshot>


listSnapshotIds(params): Promise<string[]>;

Defined in: src/session/storage.ts:76

Lists all available snapshot IDs for a session scope.

TODO: Add pagination support for long-running agents with many snapshots. Future signature could be:

listSnapshots(params: {
location: SnapshotLocation
limit?: number // Max results to return (e.g., 100)
startAfter?: string // Snapshot ID to start after (for cursor-based pagination)
}): Promise<{ snapshotIds: string[]; nextToken?: string }>
ParameterType
params{ location: SnapshotLocation; }
params.locationSnapshotLocation

Promise<string[]>


loadManifest(params): Promise<SnapshotManifest>;

Defined in: src/session/storage.ts:81

Loads the snapshot manifest.

ParameterType
params{ location: SnapshotLocation; }
params.locationSnapshotLocation

Promise<SnapshotManifest>


saveManifest(params): Promise<void>;

Defined in: src/session/storage.ts:86

Saves the snapshot manifest.

ParameterType
params{ location: SnapshotLocation; manifest: SnapshotManifest; }
params.locationSnapshotLocation
params.manifestSnapshotManifest

Promise<void>