/** * Semantic Meta Storage - File-based persistence for phase meta-analysis * * Storage structure (Hybrid): * ~/.claude/meta/{phase}/recent/{sessionId}.json - Recent 10 sessions * ~/.claude/meta/{phase}/patterns.json - Cumulative patterns */ import type { Phase } from '../../types/pattern.js'; import type { SemanticPhaseMeta } from '../../types/semantic-meta.js'; /** * Generate a new session ID * Format: YYYY-MM-DD-HHmmss-XXXX */ export declare function generateSessionId(): string; /** * Save recent session meta * Automatically cleans up old sessions if > 10 * * @param sessionId - Session identifier * @param phase - Phase that completed * @param meta - Semantic meta data to save */ export declare function saveRecentSession(sessionId: string, phase: Phase, meta: SemanticPhaseMeta): Promise; /** * Load recent session meta * * @param sessionId - Session identifier * @param phase - Phase to load * @returns SemanticPhaseMeta or null if not found */ export declare function loadRecentSession(sessionId: string, phase: Phase): Promise; /** * List recent session IDs for a phase * Returns sorted newest first * * @param phase - Phase to list sessions for * @returns Array of session IDs */ export declare function listRecentSessions(phase: Phase): Promise; /** * Pattern metadata types */ export interface SequentialDepPattern { id: string; frequency: number; confidence: number; firstSeen: string; lastSeen: string; examples: string[]; } export interface ParallelSuccessPattern { group: string[]; frequency: number; confidence: number; cooccurringTasks: number; examples: string[]; } export interface AccomplishmentPattern { category: string; keywords: string[]; frequency: number; } export interface RiskPattern { severity: 'P0' | 'P1' | 'P2' | 'P3'; description: string; frequency: number; mitigation?: string; } export interface PhasePatterns { version: number; phase: Phase; lastUpdated: string; totalSessions: number; sequentialDeps: SequentialDepPattern[]; parallelSuccesses: ParallelSuccessPattern[]; accomplishmentPatterns: AccomplishmentPattern[]; riskPatterns: RiskPattern[]; metadata: { avgSessionsPerDay: number; successRate: number; }; } /** * Load cumulative patterns for a phase * Returns empty patterns if not found * * @param phase - Phase to load patterns for * @returns PhasePatterns */ export declare function loadPatterns(phase: Phase): Promise; /** * Save cumulative patterns for a phase * * @param phase - Phase to save patterns for * @param patterns - Pattern data to save */ export declare function savePatterns(phase: Phase, patterns: PhasePatterns): Promise; /** * Merge sequential dependencies into patterns * * @param patterns - Existing patterns * @param newDeps - New dependencies from session * @param sessionId - Session identifier */ export declare function mergeSequentialDeps(patterns: PhasePatterns, newDeps: string[], sessionId: string): void; /** * Merge parallel successes into patterns * * @param patterns - Existing patterns * @param newSuccesses - New parallel tasks from session * @param sessionId - Session identifier */ export declare function mergeParallelSuccesses(patterns: PhasePatterns, newSuccesses: string[], sessionId: string): void; /** * Save session and update patterns (main entry point) * * @param sessionId - Session identifier * @param phase - Phase that completed * @param meta - Semantic meta from phase */ export declare function saveSemanticMeta(sessionId: string, phase: Phase, meta: SemanticPhaseMeta): Promise; /** * Load semantic meta (tries recent, falls back to patterns) * * @param sessionId - Session identifier * @param phase - Phase to load * @returns SemanticPhaseMeta or null */ export declare function loadSemanticMeta(sessionId: string, phase: Phase): Promise; /** * Get storage statistics */ export declare function getStorageStats(): Promise<{ totalSessions: number; recentByPhase: Record; totalPatterns: number; }>; //# sourceMappingURL=storage.d.ts.map