UNPKG

arela

Version:

AI-powered CTO with multi-agent orchestration, code summarization, visual testing (web + mobile) for blazing fast development.

131 lines 3.4 kB
import type { UserPreferences, Expertise, UserPattern, ProjectRef, UserStats } from "./types.js"; /** * User Memory Layer (Layer 6 - Hexi-Memory) * * Stores long-term context about the user across ALL projects: * - User preferences and coding style * - Expertise levels across different domains * - Learned patterns from all projects * - Global conventions * - Project history * - Arbitrary metadata * * Features: * - Global SQLite database (~/.arela/user.db) * - Pattern learning across projects * - Project history tracking * - Top patterns by frequency * - Recent projects query * - Fast queries (<100ms) * * Lifespan: Forever (until explicitly deleted) */ export declare class UserMemory { private db?; private dbPath; private userId?; private initialized; constructor(); /** * Initialize user memory * - Sets up global SQLite database * - Creates tables if needed * - Loads or creates user record */ init(): Promise<void>; /** * Create database tables */ private createTables; /** * Initialize or load user record */ private initUser; /** * Get current user ID */ getUserId(): string; /** * Set a user preference */ setPreference(key: string, value: string): Promise<void>; /** * Get a preference value */ getPreference(key: string): Promise<string | undefined>; /** * Get all preferences */ getAllPreferences(): Promise<UserPreferences>; /** * Set expertise level for a domain */ setExpertise(domain: string, level: string): Promise<void>; /** * Get expertise level for a domain */ getExpertise(domain: string): Promise<string | undefined>; /** * Get all expertise levels */ getAllExpertise(): Promise<Expertise>; /** * Add a user pattern */ addPattern(pattern: Omit<UserPattern, "id"> & { id?: string; }): Promise<void>; /** * Get all patterns */ getPatterns(): Promise<UserPattern[]>; /** * Increment pattern usage and add project to learned_from */ incrementPatternUsage(patternId: string, projectId: string): Promise<void>; /** * Get top patterns by frequency */ getTopPatterns(limit: number): Promise<UserPattern[]>; /** * Set a global convention */ setConvention(key: string, value: string): Promise<void>; /** * Get a convention value */ getConvention(key: string): Promise<string | undefined>; /** * Get all conventions */ getAllConventions(): Promise<Record<string, string>>; /** * Track a project (adds or updates project history) */ trackProject(projectId: string, projectPath: string): Promise<void>; /** * Get recent projects */ getRecentProjects(limit: number): Promise<ProjectRef[]>; /** * Increment session count for a project */ incrementSessionCount(projectId: string): Promise<void>; /** * Set metadata value */ setMetadata(key: string, value: any): Promise<void>; /** * Get metadata value */ getMetadata(key: string): Promise<any>; /** * Get user statistics */ getStats(): Promise<UserStats>; /** * Close database connection */ close(): void; } //# sourceMappingURL=user.d.ts.map