crewai-ts
Version:
TypeScript port of crewAI for agent-based workflows
80 lines • 2.07 kB
TypeScript
/**
* InMemoryStorageAdapter
*
* An in-memory implementation of the StorageAdapter interface
* Optimized for performance in development environments
*/
import { BaseStorageAdapter, StorageAdapterOptions } from './StorageAdapter.js';
/**
* InMemoryStorageAdapter Options
*/
export interface InMemoryStorageOptions extends StorageAdapterOptions {
/**
* Maximum number of items to store in memory
* When exceeded, least recently used items are evicted
*/
maxItems?: number;
/**
* Whether to persist items between process restarts (if localStorage is available)
*/
persistent?: boolean;
}
/**
* InMemoryStorageAdapter implements the StorageAdapter interface
* using an in-memory Map with optional LRU eviction
*/
export declare class InMemoryStorageAdapter extends BaseStorageAdapter {
private storage;
private accessOrder;
private maxItems;
private persistent;
constructor(options?: InMemoryStorageOptions);
/**
* Save a value with optimized memory usage
*/
save(key: string, value: any): Promise<void>;
/**
* Load a value with optimized retrieval
*/
load(key: string): Promise<any | null>;
/**
* Delete a value with cleanup
*/
delete(key: string): Promise<boolean>;
/**
* Clear all values
*/
clear(): Promise<void>;
/**
* Get all keys with namespace removed
*/
keys(): Promise<string[]>;
/**
* Get memory usage statistics
*/
getStats(): {
size: number;
memoryUsage: number;
};
/**
* Helper: Update access order for LRU tracking
*/
private updateAccessOrder;
/**
* Helper: Evict least recently used item
*/
private evictLRU;
/**
* Helper: Persist to disk (if possible)
*/
private persistToDisk;
/**
* Helper: Load from persistence
*/
private loadFromPersistence;
/**
* Helper: Clear persistence data
*/
private clearPersistence;
}
//# sourceMappingURL=InMemoryStorageAdapter.d.ts.map