export class MuseError extends Error { fmt(): string { return this.message; } } export class FileError extends MuseError { filePath: string; details?: string; constructor(message: string, filePath: string, details?: string) { super(message); this.filePath = filePath; this.details = details; } fmt(): string { return `-- ${this.message} --\nFile Path: ${this.filePath}\nDetails: ${this.details}`; } } export class FileNotFoundError extends FileError { constructor(filePath: string) { super("File not found", filePath); this.message = "File not found"; this.filePath = filePath; } } export class CLIError extends MuseError {}