agente-toolkit
Version:
A barebones TypeScript library for building AI agents with intelligent tool execution and self-correction capabilities
65 lines (62 loc) • 2.15 kB
JavaScript
;
/**
* Console-based logger implementation.
* Outputs structured logs to console with optional formatting.
*/
class ConsoleLogger {
constructor(options = {}) {
var _a, _b;
this.enableTimestamps = (_a = options.enableTimestamps) !== null && _a !== void 0 ? _a : true;
this.enableColors = (_b = options.enableColors) !== null && _b !== void 0 ? _b : true;
}
info(message, meta) {
this.log('INFO', message, meta, this.enableColors ? '\x1b[36m' : ''); // Cyan
}
warn(message, meta) {
this.log('WARN', message, meta, this.enableColors ? '\x1b[33m' : ''); // Yellow
}
error(message, meta) {
this.log('ERROR', message, meta, this.enableColors ? '\x1b[31m' : ''); // Red
}
debug(message, meta) {
this.log('DEBUG', message, meta, this.enableColors ? '\x1b[90m' : ''); // Gray
}
log(level, message, meta, color = '') {
const reset = this.enableColors ? '\x1b[0m' : '';
const timestamp = this.enableTimestamps ? new Date().toISOString() : '';
let output = `${color}${timestamp ? `[${timestamp}] ` : ''}[${level}] ${message}${reset}`;
if (meta && Object.keys(meta).length > 0) {
output += `\n${JSON.stringify(meta, null, 2)}`;
}
console.log(output);
}
}
/**
* Silent logger implementation that discards all log messages.
* Useful for testing or when logging should be completely disabled.
*/
class SilentLogger {
info(message, meta) {
// Intentionally empty
}
warn(message, meta) {
// Intentionally empty
}
error(message, meta) {
// Intentionally empty
}
debug(message, meta) {
// Intentionally empty
}
}
/**
* Creates a default logger instance suitable for most use cases.
* Uses ConsoleLogger with reasonable defaults.
*/
function createDefaultLogger() {
return new ConsoleLogger({ enableTimestamps: true, enableColors: true });
}
exports.ConsoleLogger = ConsoleLogger;
exports.SilentLogger = SilentLogger;
exports.createDefaultLogger = createDefaultLogger;
//# sourceMappingURL=defaultLoggers.js.map