@codai/cbd
Version:
Codai Better Database - High-Performance Vector Memory System with HPKV-inspired architecture and MCP server
108 lines • 3.21 kB
TypeScript
/**
* CBD (Codai Better Database) Core Types
* HPKV-inspired vector memory system with semantic search
*/
export interface ConversationExchange {
id?: string;
structuredKey: string;
projectName: string;
sessionName: string;
sequenceNumber: number;
agentId: string;
userRequest: string;
assistantResponse: string;
conversationContext?: string | undefined;
metadata: Record<string, any>;
vectorEmbedding?: Float32Array | undefined;
confidenceScore: number;
createdAt: Date;
updatedAt: Date;
}
export interface MemorySearchResult {
memory: ConversationExchange;
relevanceScore: number;
confidence: number;
summary?: string;
}
export interface SearchQuery {
query: string;
limit?: number;
confidenceThreshold?: number;
projectFilter?: string;
sessionFilter?: string;
agentFilter?: string;
timeRange?: {
start: Date;
end: Date;
};
}
export interface VectorSearchOptions {
topK?: number;
minScore?: number;
includeMetadata?: boolean;
}
export interface EmbeddingModel {
name: string;
dimensions: number;
generateEmbedding(text: string): Promise<Float32Array>;
generateBatchEmbeddings(texts: string[]): Promise<Float32Array[]>;
}
export interface VectorStore {
addVector(id: string, vector: Float32Array, metadata?: Record<string, any>): Promise<void>;
searchSimilar(queryVector: Float32Array, options?: VectorSearchOptions): Promise<VectorSearchResult[]>;
removeVector(id: string): Promise<boolean>;
getVector(id: string): Promise<Float32Array | null>;
}
export interface VectorSearchResult {
id: string;
score: number;
metadata?: Record<string, any> | undefined;
}
export interface StorageAdapter {
connect(): Promise<void>;
disconnect(): Promise<void>;
storeConversation(exchange: ConversationExchange): Promise<string>;
getConversation(structuredKey: string): Promise<ConversationExchange | null>;
searchConversations(query: SearchQuery): Promise<ConversationExchange[]>;
updateConversation(structuredKey: string, updates: Partial<ConversationExchange>): Promise<boolean>;
deleteConversation(structuredKey: string): Promise<boolean>;
getStats(): Promise<DatabaseStats>;
}
export interface DatabaseStats {
totalMemories: number;
uniqueAgents: number;
uniqueProjects: number;
uniqueSessions: number;
averageConfidence: number;
databaseSize: number;
lastUpdated: Date;
}
export interface CBDConfig {
storage: {
type: 'cbd-native' | 'hybrid';
dataPath?: string;
};
embedding: {
model: 'openai' | 'local' | 'custom';
apiKey?: string | undefined;
modelName?: string;
dimensions?: number;
};
vector: {
indexType: 'faiss' | 'approximate';
dimensions: number;
similarityMetric: 'cosine' | 'euclidean' | 'dot';
};
cache: {
enabled: boolean;
maxSize: number;
ttl: number;
};
}
export interface MemorySummary {
summary: string;
sourceMemories: string[];
confidenceScore: number;
relevantTopics: string[];
}
//# sourceMappingURL=index.d.ts.map