@2501-ai/cli
Version:
[](https://www.npmjs.com/package/@2501-ai/cli) [](https://www.2501.ai/research/full-humaneval-benchmark) [); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.errorHandler = exports.ErrorHandler = void 0;
const telemetry_1 = require("../telemetry");
const logger_1 = __importDefault(require("../utils/logger"));
class ErrorHandler {
constructor() { }
static getInstance() {
if (!ErrorHandler.instance) {
ErrorHandler.instance = new ErrorHandler();
}
return ErrorHandler.instance;
}
initializeGlobalHandlers() {
process.on('uncaughtException', (error) => __awaiter(this, void 0, void 0, function* () {
logger_1.default.error('Uncaught Exception:', error.message);
logger_1.default.debug('Stack trace:', error.stack || 'No stack trace available');
yield this.handleError(error, {
type: 'uncaughtException',
fatal: true,
});
yield this.gracefulShutdown(1);
}));
process.on('unhandledRejection', (reason, promise) => __awaiter(this, void 0, void 0, function* () {
const error = reason instanceof Error ? reason : new Error(String(reason));
logger_1.default.error('Unhandled Rejection at:', promise, 'reason:', error.message);
logger_1.default.debug('Stack trace:', error.stack || 'No stack trace available');
yield this.handleError(error, {
type: 'unhandledRejection',
fatal: true,
metadata: { reason: String(reason) },
});
yield this.gracefulShutdown(1);
}));
process.on('warning', (warning) => {
logger_1.default.warn(`Warning: ${warning.name}: ${warning.message}`);
if (warning.stack) {
logger_1.default.debug('Warning stack:', warning.stack);
}
});
}
handleCommandError(error, commandName, options) {
return __awaiter(this, void 0, void 0, function* () {
const { silent = false } = options || {};
if (!silent) {
logger_1.default.error(`Command failed${commandName ? ` (${commandName})` : ''}: ${error.message}`);
logger_1.default.debug('Error details:', error.stack || 'No stack trace available');
}
yield this.handleError(error, {
type: 'commandError',
fatal: false,
metadata: {
commandName,
},
});
});
}
handleError(error, context) {
return __awaiter(this, void 0, void 0, function* () {
yield (0, telemetry_1.trackError)(error, {
metadata: Object.assign({ errorType: context.type, fatal: context.fatal, timestamp: new Date().toISOString() }, context.metadata),
});
});
}
gracefulShutdown(exitCode) {
return __awaiter(this, void 0, void 0, function* () {
try {
logger_1.default.debug('Initiating graceful shutdown...');
logger_1.default.debug('Graceful shutdown completed');
}
catch (shutdownError) {
logger_1.default.error('Error during shutdown:', shutdownError);
}
finally {
process.exit(exitCode);
}
});
}
}
exports.ErrorHandler = ErrorHandler;
exports.errorHandler = ErrorHandler.getInstance();