/** * Shared Runtime Logging - Harmonized Startup/Shutdown/Tool Logging * * Provides consistent logging behavior across CLI, server entry points, * and tool executions. */ import type { Logger } from 'pino'; import type { TransportConfig } from '../app/index.js'; import type { MCPServer } from '../mcp/mcp-server.js'; /** * Runtime startup information */ export interface StartupInfo { /** Application name */ appName: string; /** Application version */ version: string; /** Workspace directory */ workspace: string; /** Log level */ logLevel: string; /** Transport configuration */ transport: TransportConfig; /** Development mode flag */ devMode?: boolean; /** Number of tools loaded */ toolCount: number; } /** * Runtime shutdown information */ export interface ShutdownInfo { /** Shutdown signal received */ signal: string; /** Duration of operation in milliseconds */ duration: number; /** Exit code */ exitCode: number; /** Whether shutdown was graceful */ graceful: boolean; } /** * Log startup messages in a consistent format */ export declare function logStartup(info: StartupInfo, logger: Logger, quiet?: boolean): void; /** * Log successful startup */ export declare function logStartupSuccess(transport: TransportConfig, logger: Logger, quiet?: boolean): void; /** * Log startup failure */ export declare function logStartupFailure(error: Error, logger: Logger, quiet?: boolean): void; /** * Log shutdown initiation * @public */ export declare function logShutdownStart(signal: string, logger: Logger, quiet?: boolean): void; /** * Log successful shutdown * @public */ export declare function logShutdownSuccess(info: ShutdownInfo, logger: Logger, quiet?: boolean): void; /** * Log shutdown failure * @public */ export declare function logShutdownFailure(error: Error, info: Partial, logger: Logger, quiet?: boolean): void; /** * Log forced shutdown due to timeout * @public */ export declare function logForcedShutdown(logger: Logger, quiet?: boolean): void; /** * Create a shutdown handler with proper logging * @public */ export declare function createShutdownHandler(server: MCPServer | { stop: () => Promise; }, logger: Logger, quiet?: boolean, timeoutMs?: number): (signal: string) => Promise; /** * Install signal handlers for graceful shutdown */ export declare function installShutdownHandlers(server: MCPServer | { stop: () => Promise; }, logger: Logger, quiet?: boolean): void; /** * Standard log message format constants for tool execution * Ensures all tools use consistent "starting"/"completed" phrasing */ export declare const LOG_FORMAT: { /** Tool execution started */ readonly STARTING: "starting"; /** Tool execution completed successfully */ readonly COMPLETED: "completed"; /** Tool execution failed */ readonly FAILED: "failed"; }; /** * Log tool execution start with consistent format * @param toolName - Name of the tool being executed * @param params - Key parameters for the operation * @param logger - Pino logger instance * * @example * ```typescript * logToolStart('build-image', { path: './app', tags: ['myapp:latest'] }, logger); * // Logs: "Starting build-image" with structured params * ``` */ export declare function logToolStart(toolName: string, params: Record, logger: Logger): void; /** * Log tool execution completion with consistent format * @param toolName - Name of the tool that completed * @param result - Key results from the operation * @param durationMs - Optional execution duration in milliseconds * @param logger - Pino logger instance * * @example * ```typescript * logToolComplete('build-image', { imageId: 'sha256:abc...' }, 1234, logger); * // Logs: "Completed build-image" with structured result and duration * ``` */ export declare function logToolComplete(toolName: string, result: Record, logger: Logger, durationMs?: number): void; /** * Log tool execution failure with consistent format * @param toolName - Name of the tool that failed * @param error - Error message or object * @param context - Optional context about the failure * @param logger - Pino logger instance * * @example * ```typescript * logToolFailure('build-image', 'Docker daemon not running', { path: './app' }, logger); * // Logs: "Failed build-image" with error and context * ``` */ export declare function logToolFailure(toolName: string, error: string | Error, logger: Logger, context?: Record): void; //# sourceMappingURL=runtime-logging.d.ts.map