mira-consciousness
Version:
Memory & Intelligence Retention Archive - Preserving The Spark
90 lines • 2.37 kB
TypeScript
/**
* ConfigurationMigration.ts - Configuration versioning and migration system
*
* This system ensures smooth upgrades when MIRA's configuration structure evolves.
* It tracks configuration versions, applies migrations in sequence, and preserves
* user customizations while updating to new schemas.
*
* Each migration represents a step in MIRA's evolution, carrying forward the
* wisdom and preferences accumulated through our journey together.
*/
export interface ConfigMigration {
version: string;
description: string;
up: (config: any) => any;
down?: (config: any) => any;
validate?: (config: any) => boolean;
}
export interface MigrationHistory {
version: string;
appliedAt: Date;
description: string;
success: boolean;
error?: string;
}
export declare class ConfigurationMigration {
private migrations;
private history;
private config;
private readonly HISTORY_PATH;
private readonly BACKUP_PATH;
private readonly VERSION_KEY;
constructor();
/**
* Initialize the migration system
*/
initialize(): Promise<void>;
/**
* Register all configuration migrations
*/
private registerMigrations;
/**
* Run pending migrations
*/
runMigrations(): Promise<void>;
/**
* Create a configuration backup
*/
createBackup(version: string): Promise<void>;
/**
* Restore configuration from backup
*/
restoreFromBackup(backupFile: string): Promise<void>;
/**
* List available backups
*/
listBackups(): Promise<string[]>;
/**
* Get current configuration version
*/
getCurrentVersion(): Promise<string>;
/**
* Get latest available version
*/
getLatestVersion(): string;
/**
* Get migration history
*/
getMigrationHistory(): MigrationHistory[];
/**
* Load migration history
*/
private loadHistory;
/**
* Save migration history
*/
private saveHistory;
/**
* Clean old backups
*/
private cleanOldBackups;
/**
* Export current configuration with version
*/
exportConfiguration(outputPath: string): Promise<void>;
/**
* Import configuration with migration
*/
importConfiguration(inputPath: string): Promise<void>;
}
//# sourceMappingURL=ConfigurationMigration.d.ts.map