/************************** * Error Collector for Dev Server * * Aggregates compilation, bundle, and runtime errors from the dev server * for exposure via MCP to coding agents. **************************/ import { type ErrorCategory } from "../errors/index.js"; /** Public API contract for error type. */ export type ErrorType = "compile" | "runtime" | "bundle" | "hmr" | "module"; /** Error shape for dev. */ export interface DevError { /** Unique error identifier */ id: string; /** Error category from slug registry (BUILD, RUNTIME, DEV, MODULE, etc.) */ category: ErrorCategory; /** Error type */ type: ErrorType; /** Error slug from registry (if available) */ slug?: string; /** Human-readable error message */ message: string; /** Source file path (if available) */ file?: string; /** Line number (if available) */ line?: number; /** Column number (if available) */ column?: number; /** Full stack trace (if available) */ stack?: string; /** When the error occurred */ timestamp: number; /** Additional context/metadata */ context?: Record; } /** Public API contract for error filter. */ export interface ErrorFilter { /** Filter by type */ type?: ErrorType | ErrorType[]; /** Filter by error category (BUILD, RUNTIME, DEV, MODULE, etc.) */ category?: ErrorCategory | ErrorCategory[]; /** Filter by error slug */ slug?: string | string[]; file?: string | RegExp; since?: number; } /** Public API contract for error subscriber. */ export type ErrorSubscriber = (error: DevError) => void; /** Implement error collector. */ export declare class ErrorCollector { private errors; private subscribers; private idCounter; private maxErrors; constructor(options?: { maxErrors?: number; }); private generateId; add(error: Omit): DevError; private addTypedError; /** * Add a compile/build error * @param message Error message * @param file Source file path * @param line Line number * @param column Column number * @param slug Error slug from registry (optional) */ addCompileError(message: string, file?: string, line?: number, column?: number, slug?: string): DevError; /** * Add a runtime error * @param message Error message * @param stack Stack trace * @param context Additional context * @param slug Error slug from registry (optional) */ addRuntimeError(message: string, stack?: string, context?: Record, slug?: string): DevError; private addFileContextError; /** * Add a bundle error * @param message Error message * @param file Source file path * @param context Additional context * @param slug Error slug from registry (optional) */ addBundleError(message: string, file?: string, context?: Record, slug?: string): DevError; /** * Add an HMR error * @param message Error message * @param file Source file path * @param context Additional context * @param slug Error slug from registry (optional) */ addHMRError(message: string, file?: string, context?: Record, slug?: string): DevError; /** * Add a module error * @param message Error message * @param file Source file path * @param context Additional context * @param slug Error slug from registry (optional) */ addModuleError(message: string, file?: string, context?: Record, slug?: string): DevError; getAll(filter?: ErrorFilter): DevError[]; get(id: string): DevError | undefined; clearFile(file: string): number; clearType(type: ErrorType): number; /** * Clear all errors of a specific category */ clearCategory(category: ErrorCategory): number; clear(): void; get count(): number; countByType(): Record; /** * Count errors by category (preferred method) */ countByCategory(): Record; subscribe(callback: ErrorSubscriber): () => void; toJSON(): DevError[]; private clearWhere; } /** Return error collector. */ export declare function getErrorCollector(): ErrorCollector; /** Reset captured runtime errors. */ export declare function resetErrorCollector(): void; /** Error shape for parse compile. */ export declare function parseCompileError(output: string): Partial | null; //# sourceMappingURL=error-collector.d.ts.map