UNPKG

codecrucible-synth

Version:

Production-Ready AI Development Platform with Multi-Voice Synthesis, Smithery MCP Integration, Enterprise Security, and Zero-Timeout Reliability

165 lines 4.21 kB
import { SynthesisResult } from '../types.js'; import { ProjectContext } from './project-memory.js'; export interface StoredInteraction { id: string; sessionId: string; timestamp: number; prompt: string; response: string; voicesUsed: string[]; confidence: number; latency: number; userFeedback?: 'positive' | 'negative' | 'neutral'; topics: string[]; contextHash: string; embedding?: number[]; metadata: Record<string, any>; } export interface ConversationSession { id: string; startTime: number; endTime?: number; totalInteractions: number; averageConfidence: number; topics: string[]; workspaceRoot: string; userAgent?: string; } export interface SearchQuery { text?: string; sessionId?: string; timeRange?: { start: number; end: number; }; topics?: string[]; voices?: string[]; minConfidence?: number; limit?: number; offset?: number; } export interface SearchResult { interactions: StoredInteraction[]; total: number; relevanceScores?: number[]; } export interface ConversationAnalytics { totalInteractions: number; totalSessions: number; averageConfidence: number; topTopics: Array<{ topic: string; count: number; }>; voiceUsage: Array<{ voice: string; count: number; }>; dailyActivity: Array<{ date: string; interactions: number; }>; averageLatency: number; } /** * Persistent conversation storage with semantic search capabilities * Provides SQL-based storage with embeddings for intelligent retrieval */ export declare class ConversationStore { private db?; private dbPath; private initialized; constructor(workspaceRoot: string); /** * Initialize database and create tables */ initialize(): Promise<void>; /** * Store interaction with optional semantic embedding */ storeInteraction(prompt: string, response: SynthesisResult, context: ProjectContext, sessionId: string, userFeedback?: 'positive' | 'negative' | 'neutral'): Promise<string>; /** * Search interactions with text and semantic similarity */ searchInteractions(query: SearchQuery): Promise<SearchResult>; /** * Get conversation session by ID */ getSession(sessionId: string): Promise<ConversationSession | null>; /** * Start a new conversation session */ startSession(workspaceRoot: string, userAgent?: string): Promise<string>; /** * End a conversation session */ endSession(sessionId: string): Promise<void>; /** * Get conversation analytics */ getAnalytics(timeRange?: { start: number; end: number; }): Promise<ConversationAnalytics>; /** * Update user feedback for an interaction */ updateFeedback(interactionId: string, feedback: 'positive' | 'negative' | 'neutral'): Promise<void>; /** * Create database tables */ private createTables; /** * Create database indexes for performance */ private createIndexes; /** * Map database row to StoredInteraction */ private mapRowToInteraction; /** * Update session statistics */ private updateSessionStats; /** * Generate simple embedding for semantic search */ private generateEmbedding; /** * Calculate relevance scores for search results */ private calculateRelevanceScores; /** * Calculate cosine similarity between vectors */ private cosineSimilarity; /** * Calculate text similarity (fallback) */ private calculateTextSimilarity; /** * Extract topics from text */ private extractTopics; /** * Generate hash for context */ private hashContext; /** * Simple hash function */ private simpleHash; /** * Generate unique ID */ private generateId; /** * Ensure database is initialized */ private ensureInitialized; /** * Close database connection */ dispose(): Promise<void>; } //# sourceMappingURL=conversation-store.d.ts.map