UNPKG

@nanocollective/nanocoder

Version:

A local-first CLI coding agent that brings the power of agentic coding tools like Claude Code and Gemini CLI to local models or controlled APIs like OpenRouter

166 lines 4.79 kB
/** * Type definitions for the structured logging system */ export type LogLevel = 'silent' | 'fatal' | 'error' | 'warn' | 'info' | 'http' | 'debug' | 'trace'; export interface LoggerConfig { level: LogLevel; destination?: string; pretty: boolean; redact: string[]; correlation: boolean; serialize: boolean; transport?: unknown; } export interface LogEntry { level: LogLevel; time: string; pid: number; hostname: string; correlationId?: string; nodeVersion?: string; platform?: string; arch?: string; service?: string; version?: string; environment?: string; msg: string; [key: string]: unknown; } export interface EnhancedLoggerConfig extends LoggerConfig { options?: EnhancedTransportOptions; [key: string]: unknown; } export interface EnhancedTransportOptions { destination?: string | number; level?: LogLevel; translateTime?: string; ignore?: string; messageFormat?: string; customPrettifiers?: Record<string, (data: unknown) => string>; levelFirst?: boolean; singleLine?: boolean; colorize?: boolean; [key: string]: unknown; } export interface Logger { fatal: ((msg: string, ...args: unknown[]) => void) & ((obj: object, msg?: string) => void); error: ((msg: string, ...args: unknown[]) => void) & ((obj: object, msg?: string) => void); warn: ((msg: string, ...args: unknown[]) => void) & ((obj: object, msg?: string) => void); info: ((msg: string, ...args: unknown[]) => void) & ((obj: object, msg?: string) => void); http: ((msg: string, ...args: unknown[]) => void) & ((obj: object, msg?: string) => void); debug: ((msg: string, ...args: unknown[]) => void) & ((obj: object, msg?: string) => void); trace: ((msg: string, ...args: unknown[]) => void) & ((obj: object, msg?: string) => void); child(bindings: Record<string, unknown>): Logger; isLevelEnabled(level: LogLevel): boolean; flush(): Promise<void>; flushSync(): void; end(): Promise<void>; _destination?: unknown; } export interface PiiRedactionRules { patterns: RegExp[]; customPaths: string[]; emailRedaction: boolean; userIdRedaction: boolean; } export interface CorrelationContext { id: string; parentId?: string; metadata?: Record<string, unknown>; } export interface CorrelationMetadata { source?: string; version?: string; environment?: string; requestId?: string; [key: string]: unknown; } export interface PerformanceMetrics { startTime: number; duration?: number; memoryUsage?: NodeJS.MemoryUsage; cpuUsage?: NodeJS.CpuUsage; } export interface TransportConfig { target: string; options: { destination?: string; level?: LogLevel; formatters?: Record<string, (data: unknown) => unknown>; redact?: string[]; frequency?: string | number; size?: string | number; limit?: { count: number; removeOtherLogFiles?: boolean; }; dateFormat?: string; extension?: string; symlink?: boolean; mkdir?: boolean; compress?: boolean; sync?: boolean; minLength?: number; maxLength?: number; periodicFlush?: number; }; } /** * Environment-specific transport configuration */ export interface EnvironmentTransportConfig { enableFile: boolean; enableConsole: boolean; } /** * Pino transport options type */ export interface PinoTransportOptions { target: string; options?: { destination?: string; mkdir?: boolean; append?: boolean; [key: string]: unknown; }; } /** * Type for console method arguments */ export type ConsoleArgument = string | number | boolean | null | undefined | Error | Record<string, unknown> | Array<unknown>; /** * Type for console method arguments array */ export type ConsoleArguments = ConsoleArgument[]; /** * Typed object for console log data */ export interface ConsoleLogData extends Record<string, unknown> { correlationId: string; source: string; argumentCount?: number; stringArgs?: number; objectArgs?: number; primitiveArgs?: number; objects?: unknown[]; errorLikeObjects?: unknown[]; moduleName?: string; allArgs?: ConsoleArguments; } /** * Type for HTTP request object in correlation tracking */ export interface CorrelationHttpRequest { method?: string; url?: string; headers?: Record<string, string>; } /** * Type for HTTP response object in correlation tracking */ export interface CorrelationHttpResponse { statusCode?: number; headers?: Record<string, string>; setHeader?: (name: string, value: string) => void; } //# sourceMappingURL=types.d.ts.map