Skip to content

S3Storage

Defined in: src/session/s3-storage.ts:31

S3-based implementation of SnapshotStorage for persisting session snapshots

new S3Storage(config): S3Storage;

Defined in: src/session/s3-storage.ts:42

Creates new S3Storage instance

ParameterTypeDescription
configS3StorageConfigConfiguration options

S3Storage

saveSnapshot(params): Promise<void>;

Defined in: src/session/s3-storage.ts:65

Saves snapshot to S3, optionally marking as latest

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

Promise<void>

SnapshotStorage.saveSnapshot


loadSnapshot(params): Promise<Snapshot>;

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

Loads snapshot by ID or latest if undefined

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

Promise<Snapshot>

SnapshotStorage.loadSnapshot


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

Defined in: src/session/s3-storage.ts:103

Lists all snapshot IDs for a session scope.

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

listSnapshots(params: {
sessionId: string
scope: Scope
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[]>

SnapshotStorage.listSnapshotIds


loadManifest(params): Promise<SnapshotManifest>;

Defined in: src/session/s3-storage.ts:124

Loads manifest or returns default if not found

ParameterType
params{ location: SnapshotLocation; }
params.locationSnapshotLocation

Promise<SnapshotManifest>

SnapshotStorage.loadManifest


saveManifest(params): Promise<void>;

Defined in: src/session/s3-storage.ts:139

Saves manifest to S3

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

Promise<void>

SnapshotStorage.saveManifest