/** * Standardized logging interface for openlore * * Provides semantic log levels with specific visual treatments: * - DISCOVERY: Finding files, detecting patterns, scanning directories * - ANALYSIS: Parsing AST, building graphs, scoring significance * - INFERENCE: LLM generating content, making decisions * - SUCCESS: Tasks complete successfully * - WARNING: Non-fatal issues, skipped files, fallback behavior * - ERROR: Fatal errors, missing requirements */ import { type Ora } from 'ora'; export type LogLevel = 'discovery' | 'analysis' | 'inference' | 'success' | 'warning' | 'error' | 'debug'; export interface LoggerOptions { quiet: boolean; verbose: boolean; noColor: boolean; timestamps: boolean; } /** * Logger class providing semantic log levels and spinner support */ export declare class Logger { private options; private activeSpinner; constructor(options?: Partial); /** * Update logger options */ configure(options: Partial): void; /** * Get current options */ getOptions(): LoggerOptions; /** * Format a message with optional timestamp */ private formatMessage; /** * Core log method */ private log; /** * DISCOVERY - Finding files, detecting patterns, scanning directories * @example logger.discovery("Discovered 847 files across 23 directories") */ discovery(message: string): void; /** * ANALYSIS - Parsing AST, building graphs, scoring significance * @example logger.analysis("Analyzing dependency graph...") */ analysis(message: string): void; /** * INFERENCE - LLM is generating content, making decisions * @example logger.inference("Inferring system intent from core modules...") */ inference(message: string): void; /** * SUCCESS - Tasks complete successfully * @example logger.success("Generated openspec/specs/auth/spec.md") */ success(message: string): void; /** * WARNING - Non-fatal issues, skipped files, fallback behavior * @example logger.warning("Skipped 12 binary files") */ warning(message: string): void; /** * ERROR - Fatal errors, missing requirements * @example logger.error("No .git directory found. Is this a repository?") */ error(message: string): void; /** * DEBUG - Verbose debug information (only shown with --verbose) * @example logger.debug("Processing file: src/utils/helper.ts") */ debug(message: string): void; /** * Start a spinner for long-running operations * @returns Spinner control object with succeed/fail/stop methods */ spinner(message: string): SpinnerController; /** * Register an external spinner so log calls pause/resume it correctly */ setActiveSpinner(spinner: Ora | null): void; /** * Clear the active spinner reference */ clearSpinner(): void; /** * Print a blank line (respects quiet mode) */ blank(): void; /** * Print a section header */ section(title: string): void; /** * Print a key-value pair for summaries */ info(key: string, value: string | number): void; /** * Print a list item */ listItem(item: string, indent?: number): void; } /** * Controller for spinner operations */ export declare class SpinnerController { private spinner; private logger; constructor(spinner: Ora | null, logger: Logger); /** * Update spinner text */ update(message: string): void; /** * Mark spinner as succeeded */ succeed(message?: string): void; /** * Mark spinner as failed */ fail(message?: string): void; /** * Mark spinner as warning */ warn(message?: string): void; /** * Stop spinner without status */ stop(): void; /** * Stop spinner and show info */ info(message?: string): void; } /** * Singleton logger instance for use across the application */ export declare const logger: Logger; /** * Configure the global logger instance */ export declare function configureLogger(options: Partial): void; export default logger; //# sourceMappingURL=logger.d.ts.map