virtue-cli
Version:
Personal character development CLI tool for tracking virtues and philosophical alignment
101 lines • 2.79 kB
TypeScript
import { Database } from '../database/Database.js';
import { ExportManager } from './ExportManager.js';
import { Profile, DailyEntry } from '../types/index.js';
export interface AutoExportConfig {
enabled: boolean;
targetPath: string;
format: 'summary' | 'detailed' | 'journal';
frequency: 'daily' | 'manual';
}
export interface ExportResult {
success: boolean;
filePath?: string;
error?: string;
}
export declare class AutoExportManager {
private database;
private exportManager;
constructor(database: Database, exportManager?: ExportManager);
/**
* Trigger automatic export after daily check-in
*/
triggerDailyExport(profileId: string, dailyEntry: DailyEntry): Promise<ExportResult>;
/**
* Trigger weekly export
*/
triggerWeeklyExport(profileId: string): Promise<ExportResult>;
/**
* Trigger monthly export
*/
triggerMonthlyExport(profileId: string): Promise<ExportResult>;
/**
* Configure automatic exports for a profile
*/
configureAutoExport(profileId: string, config: Partial<AutoExportConfig>): boolean;
/**
* Get current export configuration for a profile
*/
getExportConfig(profile: Profile): AutoExportConfig;
/**
* Test export configuration (validate paths, permissions, etc.)
*/
testExportConfig(config: AutoExportConfig): {
valid: boolean;
error?: string;
};
/**
* Get export history for a profile
*/
getExportHistory(profileId: string): Array<{
date: string;
type: string;
status: string;
}>;
/**
* Perform the actual export operation
*/
private performExport;
/**
* Generate export content based on type and format
*/
private generateExportContent;
/**
* Generate daily export content
*/
private generateDailyContent;
/**
* Generate daily summary format
*/
private generateDailySummary;
/**
* Generate weekly and monthly content (simplified for now)
*/
private generateWeeklyContent;
private generateMonthlyContent;
/**
* Generate detailed and journal formats (simplified for now)
*/
private generateDailyDetailed;
private generateDailyJournal;
/**
* Validate export path accessibility and writability
*/
private validateExportPath;
/**
* Ensure directory exists
*/
private ensureDirectoryExists;
/**
* Generate filename based on export type and format
*/
private generateFilename;
/**
* Get subdirectory for export type
*/
private getSubdirectory;
/**
* Get week number of the year
*/
private getWeekNumber;
}
//# sourceMappingURL=AutoExportManager.d.ts.map