crewai-ts
Version:
TypeScript port of crewAI for agent-based workflows
90 lines • 2.64 kB
TypeScript
/**
* CompressedMemoryStorage implementation
* Provides memory compression to reduce memory footprint for long-term storage
*/
import { BaseMemory, MemoryItem, MemorySearchParams, MemorySearchResult } from '../BaseMemory.js';
/**
* Options for configuring CompressedMemoryStorage
*/
export interface CompressedMemoryStorageOptions {
/**
* Compression level (1-9, where 9 is maximum compression)
* @default 6
*/
compressionLevel?: number;
/**
* Size threshold in bytes for when to compress items
* Items smaller than this will not be compressed
* @default 1024 (1KB)
*/
compressionThreshold?: number;
/**
* Whether to track statistics about compression
* @default true
*/
trackStats?: boolean;
/**
* Backing memory storage to use for storing compressed items
* If not provided, items will be stored in memory
*/
backingStorage?: BaseMemory;
}
/**
* CompressedMemoryStorage class
* Provides transparent compression/decompression for memory items
*/
export declare class CompressedMemoryStorage implements BaseMemory {
private items;
private metadata;
private itemMetadata;
private compressionLevel;
private compressionThreshold;
private trackStats;
private backingStorage?;
private stats;
constructor(options?: CompressedMemoryStorageOptions);
/**
* Add a new item to memory with compression
*/
add(content: string, metadata?: Record<string, any>): Promise<MemoryItem>;
/**
* Search for items in memory
* Note: This performs a basic search in memory - for more advanced searching,
* use a specialized backing storage with vector search capabilities
*/
search(params: MemorySearchParams): Promise<MemorySearchResult>;
/**
* Get an item by its ID
*/
get(id: string): Promise<MemoryItem | null>;
/**
* Update an existing memory item
*/
update(id: string, updates: Partial<Omit<MemoryItem, 'id' | 'createdAt'>>): Promise<MemoryItem | null>;
/**
* Remove an item from memory
*/
remove(id: string): Promise<boolean>;
/**
* Clear all items from memory
*/
clear(): Promise<void>;
/**
* Reset memory (same as clear for this implementation)
*/
reset(): Promise<void>;
/**
* Get memory statistics
*/
getStats(): Record<string, any>;
/**
* Get the current number of items in memory
*/
get size(): number;
/**
* Decompress content
* @private
*/
private decompress;
}
//# sourceMappingURL=CompressedMemoryStorage.d.ts.map