@codai/memorai-core
Version:
Simplified advanced memory engine - no tiers, just powerful semantic search with persistence
119 lines • 3.89 kB
TypeScript
/**
* @fileoverview Storage adapter for persistent memory storage
*/
import type { MemoryMetadata } from '../types/index.js';
/**
* Storage adapter interface for different storage backends
*/
export interface StorageAdapter {
/**
* Store a memory entry
*/
store(memory: MemoryMetadata): Promise<void>;
/**
* Retrieve a memory by ID
*/
retrieve(id: string): Promise<MemoryMetadata | null>;
/**
* Update a memory entry
*/
update(id: string, updates: Partial<MemoryMetadata>): Promise<void>;
/**
* Delete a memory entry
*/
delete(id: string): Promise<void>;
/**
* List memories with optional filtering
*/
list(filters?: MemoryFilters): Promise<MemoryMetadata[]>;
/**
* Clear all memories (with optional tenant filter)
*/
clear(tenantId?: string): Promise<void>;
}
/**
* Memory filtering options
*/
export interface MemoryFilters {
tenantId?: string;
agentId?: string;
type?: string;
importance?: number;
minImportance?: number;
maxImportance?: number;
tags?: string[];
since?: Date;
until?: Date;
startDate?: Date;
endDate?: Date;
sortBy?: 'created' | 'updated' | 'accessed' | 'importance';
offset?: number;
limit?: number;
}
/**
* In-memory storage adapter for development and testing
*/
export declare class InMemoryStorageAdapter implements StorageAdapter {
private memories;
store(memory: MemoryMetadata): Promise<void>;
retrieve(id: string): Promise<MemoryMetadata | null>;
update(id: string, updates: Partial<MemoryMetadata>): Promise<void>;
delete(id: string): Promise<void>;
list(filters?: MemoryFilters): Promise<MemoryMetadata[]>;
clear(tenantId?: string): Promise<void>;
}
/**
* PostgreSQL storage adapter (production implementation available)
* @deprecated Use ProductionPostgreSQLAdapter for production deployments
*/
/**
* PostgreSQL storage adapter - Enhanced implementation
* @deprecated Use ProductionPostgreSQLAdapter for new implementations
*/
export declare class PostgreSQLStorageAdapter implements StorageAdapter {
private adapter;
constructor(connectionString: string);
private parseConnectionString;
store(memory: MemoryMetadata): Promise<void>;
retrieve(id: string): Promise<MemoryMetadata | null>;
update(id: string, updates: Partial<MemoryMetadata>): Promise<void>;
delete(id: string): Promise<void>;
list(filters?: MemoryFilters): Promise<MemoryMetadata[]>;
clear(tenantId?: string): Promise<void>;
}
/**
* Redis storage adapter - Production implementation
*/
export declare class RedisStorageAdapter implements StorageAdapter {
private redisUrl;
private redis;
constructor(redisUrl: string);
private initializeRedis;
private ensureConnected;
store(memory: MemoryMetadata): Promise<void>;
retrieve(id: string): Promise<MemoryMetadata | null>;
update(id: string, updates: Partial<MemoryMetadata>): Promise<void>;
delete(id: string): Promise<void>;
list(filters?: MemoryFilters): Promise<MemoryMetadata[]>;
clear(tenantId?: string): Promise<void>;
}
/**
* File-based storage adapter for shared persistent storage
*/
export declare class FileStorageAdapter implements StorageAdapter {
private filePath;
private lockPath;
constructor(dataDirectory?: string);
private ensureDirectory;
private acquireLock;
private releaseLock;
private readMemories;
private writeMemories;
store(memory: MemoryMetadata): Promise<void>;
retrieve(id: string): Promise<MemoryMetadata | null>;
update(id: string, updates: Partial<MemoryMetadata>): Promise<void>;
delete(id: string): Promise<void>;
list(filters?: MemoryFilters): Promise<MemoryMetadata[]>;
clear(tenantId?: string): Promise<void>;
}
//# sourceMappingURL=StorageAdapter.d.ts.map