/** * V1 Intelligence Module — LocalReasoningBank * Split out of intelligence.ts (file-size sweep). Pure move. * * @module v1/cli/intelligence */ import type { StoredPattern } from './intelligence-types.js'; /** * Lightweight ReasoningBank * Uses Map for O(1) storage and array for similarity search * Supports persistence to disk */ export declare class LocalReasoningBank { private patterns; private patternList; private maxSize; private persistenceEnabled; private dirty; private saveTimeout; constructor(options: { maxSize: number; persistence?: boolean; }); /** * Load patterns from disk */ private loadFromDisk; /** * Save patterns to disk (debounced) */ private saveToDisk; /** * Immediately flush patterns to disk */ flushToDisk(): void; /** * Store a pattern - O(1) */ store(pattern: Omit & Partial): void; /** * Find similar patterns by embedding. * * This is a pure read operation: it does NOT mutate usageCount or * lastUsedAt, so no disk save is triggered. Callers that need to record * a usage hit should call `recordUsage(id)` explicitly after consuming * the results. */ findSimilar(queryEmbedding: number[], options: { k?: number; threshold?: number; type?: string; }): StoredPattern[]; /** * Record that a pattern was used, updating its usage metrics and scheduling * a debounced disk save. Separated from findSimilar to keep searches pure. */ recordUsage(id: string): void; /** * Cosine similarity — delegates to shared utility * (see src/utils/cosine-similarity.ts) */ private cosineSim; /** * Get statistics */ stats(): { size: number; patternCount: number; }; /** * Get pattern by ID */ get(id: string): StoredPattern | undefined; /** * Get all patterns */ getAll(): StoredPattern[]; /** * Get patterns by type */ getByType(type: string): StoredPattern[]; /** * Delete a pattern by ID */ delete(id: string): boolean; /** * Clear all patterns */ clear(): void; } //# sourceMappingURL=intelligence-reasoning-bank.d.ts.map