Interface IStorageSchema<T>

Interface representing the schema for storage configuration. Defines how storage behaves, including persistence, indexing, and data access.

interface IStorageSchema<T extends IStorageData = IStorageData> {
    callbacks?: Partial<IStorageCallbacks<T>>;
    createIndex(
        item: T,
    ):
        | string
        | Record<string, string>
        | Promise<string>
        | Promise<Record<string, string>>;
    docDescription?: string;
    embedding: string;
    getData?: (
        clientId: string,
        storageName: string,
        defaultValue: T[],
    ) => T[] | Promise<T[]>;
    getDefaultData?: (
        clientId: string,
        storageName: string,
    ) => T[] | Promise<T[]>;
    persist?: boolean;
    setData?: (
        data: T[],
        clientId: string,
        storageName: string,
    ) => void | Promise<void>;
    shared?: boolean;
    storageName: string;
}

Type Parameters

Properties

callbacks?: Partial<IStorageCallbacks<T>>

Optional partial set of lifecycle callbacks for storage events, allowing customization.

docDescription?: string

Optional description for documentation purposes, aiding in storage usage understanding.

embedding: string

The name of the embedding mechanism used for indexing and searching storage data.

getData?: (
    clientId: string,
    storageName: string,
    defaultValue: T[],
) => T[] | Promise<T[]>

Optional function to retrieve data from the storage, overriding default behavior.

getDefaultData?: (clientId: string, storageName: string) => T[] | Promise<T[]>

Optional function to provide the default data for the storage, resolved in persistence logic.

persist?: boolean

Optional flag to enable serialization of storage data to persistent storage (e.g., hard drive).

setData?: (
    data: T[],
    clientId: string,
    storageName: string,
) => void | Promise<void>

Optional function to persist storage data to the hard drive, overriding default behavior.

If persistence fails (e.g., due to disk errors).

shared?: boolean

Optional flag indicating whether the storage instance is shared across all agents for a client.

storageName: string

The unique name of the storage within the swarm.

Methods

  • Function to generate an index for a storage item, used for search and retrieval.

    Parameters

    • item: T

    Returns
        | string
        | Record<string, string>
        | Promise<string>
        | Promise<Record<string, string>>