UNPKG

@neuroequalityorg/knightcode

Version:

Knightcode CLI - Your local AI coding assistant using Ollama, LM Studio, and more

84 lines (78 loc) 1.87 kB
/** * Error Handling Types * * Type definitions for the error handling system. */ /** * Error levels */ export enum ErrorLevel { DEBUG = 'debug', INFO = 'info', WARNING = 'warning', ERROR = 'error', FATAL = 'fatal', MAJOR = 'major', MINOR = 'minor', INFORMATIONAL = 'informational', CRITICAL = 'critical' } /** * Error categories */ export enum ErrorCategory { AUTHENTICATION = 'authentication', CONNECTION = 'connection', CONFIGURATION = 'configuration', VALIDATION = 'validation', EXECUTION = 'execution', AI_SERVICE = 'ai_service', FILE_SYSTEM = 'file_system', UNKNOWN = 'unknown', TIMEOUT = 'timeout', API = 'api', RATE_LIMIT = 'rate_limit', SERVER = 'server', INITIALIZATION = 'initialization', FILE_NOT_FOUND = 'file_not_found', FILE_READ = 'file_read', FILE_WRITE = 'file_write', COMMAND = 'command', COMMAND_EXECUTION = 'command_execution', APPLICATION = 'application' } /** * Error options */ export interface ErrorOptions { category?: ErrorCategory; level?: ErrorLevel; resolution?: string; details?: Record<string, any>; cause?: unknown; } /** * Error manager interface */ export interface ErrorManager { handleError(error: unknown, options?: ErrorOptions): void; handleFatalError(error: unknown, options?: ErrorOptions): never; formatError(error: unknown, options?: ErrorOptions): string; } /** * User error class */ export class UserError extends Error { category: ErrorCategory; level: ErrorLevel; resolution?: string; details?: Record<string, any>; constructor(message: string, options: ErrorOptions = {}) { super(message); this.name = 'UserError'; this.category = options.category || ErrorCategory.UNKNOWN; this.level = options.level || ErrorLevel.ERROR; this.resolution = options.resolution; this.details = options.details; } }