arela
Version:
AI-powered CTO with multi-agent orchestration, code summarization, visual testing (web + mobile) for blazing fast development.
131 lines • 3.4 kB
TypeScript
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