brainy/dist/storage/backwardCompatibility.d.ts
David Snelling f8c45f2d8d Initial commit: Brainy - Multi-Dimensional AI Database
Open source vector database with HNSW indexing, graph relationships,
and metadata facets. Features CLI with professional augmentation registry
integration for discovering extensions and capabilities.
2025-08-18 17:35:06 -07:00

84 lines
2.7 KiB
TypeScript

/**
* Backward Compatibility Layer for Storage Migration
*
* Handles the transition from 'index' to '_system' directory
* Ensures services running different versions can coexist
*/
import { StatisticsData } from '../coreTypes.js';
export interface MigrationMetadata {
schemaVersion: number;
migrationStarted?: string;
migrationCompleted?: string;
lastUpdatedBy?: string;
}
/**
* Backward compatibility strategy for directory migration
*/
export declare class StorageCompatibilityLayer {
private migrationMetadata;
/**
* Determines the read strategy based on what's available
* @returns Priority-ordered list of directories to try
*/
static getReadPriority(): string[];
/**
* Determines write strategy based on migration state
* @param migrationComplete Whether migration is complete
* @returns List of directories to write to
*/
static getWriteTargets(migrationComplete?: boolean): string[];
/**
* Check if we should perform migration based on service coordination
* @param existingStats Statistics from storage
* @returns Whether to initiate migration
*/
static shouldMigrate(existingStats: StatisticsData | null): boolean;
/**
* Creates migration metadata
*/
static createMigrationMetadata(): MigrationMetadata;
/**
* Merge statistics from multiple locations (deduplication)
*/
static mergeStatistics(primary: StatisticsData | null, fallback: StatisticsData | null): StatisticsData | null;
/**
* Determines if dual-write is needed based on environment
* @param storageType The type of storage being used
* @returns Whether to write to both old and new locations
*/
static needsDualWrite(storageType: string): boolean;
/**
* Grace period for migration (30 days default)
* After this period, services can stop reading from old location
*/
static getMigrationGracePeriodMs(): number;
/**
* Check if migration grace period has expired
*/
static isGracePeriodExpired(migrationStarted: string): boolean;
/**
* Log migration events for monitoring
*/
static logMigrationEvent(event: string, details?: any): void;
}
/**
* Storage paths helper for migration
*/
export declare class StoragePaths {
/**
* Get the statistics file path for a given directory
*/
static getStatisticsPath(baseDir: string, filename?: string): string;
/**
* Get distributed config path
*/
static getDistributedConfigPath(baseDir: string): string;
/**
* Check if a path is using the old structure
*/
static isLegacyPath(path: string): boolean;
/**
* Convert legacy path to new structure
*/
static modernizePath(path: string): string;
}