UNPKG

llmverify

Version:

AI Output Verification Toolkit — Local-first LLM safety, hallucination detection, PII redaction, prompt injection defense, and runtime monitoring. Zero telemetry. OWASP LLM Top 10 aligned.

90 lines 8.87 kB
"use strict"; /** * llmverify Error Classes * * Custom error types for clear error handling. * * @module errors * @author Haiec * @license MIT */ Object.defineProperty(exports, "__esModule", { value: true }); exports.EngineError = exports.ConfigurationError = exports.VerificationError = exports.ValidationError = exports.PrivacyViolationError = exports.LLMVerifyError = void 0; const codes_1 = require("./errors/codes"); /** * Base error class for llmverify */ class LLMVerifyError extends Error { constructor(message, code, details, requestId) { super(message); this.name = 'LLMVerifyError'; this.code = code; this.requestId = requestId; if (code) { this.metadata = (0, codes_1.getErrorMetadata)(code, details, requestId); } Error.captureStackTrace(this, this.constructor); } toJSON() { return { name: this.name, message: this.message, code: this.code, metadata: this.metadata, stack: this.stack }; } } exports.LLMVerifyError = LLMVerifyError; /** * Privacy violation error */ class PrivacyViolationError extends LLMVerifyError { constructor(message, details, requestId) { super(message, codes_1.ErrorCode.PRIVACY_VIOLATION, details, requestId); this.name = 'PrivacyViolationError'; } } exports.PrivacyViolationError = PrivacyViolationError; /** * Validation error */ class ValidationError extends LLMVerifyError { constructor(message, code, details, requestId) { super(message, code || codes_1.ErrorCode.INVALID_INPUT, details, requestId); this.name = 'ValidationError'; } } exports.ValidationError = ValidationError; /** * Verification error */ class VerificationError extends LLMVerifyError { constructor(message, code, details, requestId) { super(message, code || codes_1.ErrorCode.ENGINE_FAILURE, details, requestId); this.name = 'VerificationError'; } } exports.VerificationError = VerificationError; /** * Configuration error */ class ConfigurationError extends LLMVerifyError { constructor(message, code, details, requestId) { super(message, code || codes_1.ErrorCode.INVALID_CONFIG, details, requestId); this.name = 'ConfigurationError'; } } exports.ConfigurationError = ConfigurationError; /** * Engine error */ class EngineError extends LLMVerifyError { constructor(engineName, message, details, requestId) { super(`[${engineName}] ${message}`, codes_1.ErrorCode.ENGINE_FAILURE, { ...details, engineName }, requestId); this.name = 'EngineError'; this.engineName = engineName; } } exports.EngineError = EngineError; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7O0dBUUc7OztBQUVILDBDQUE0RTtBQUU1RTs7R0FFRztBQUNILE1BQWEsY0FBZSxTQUFRLEtBQUs7SUFLdkMsWUFBWSxPQUFlLEVBQUUsSUFBZ0IsRUFBRSxPQUFhLEVBQUUsU0FBa0I7UUFDOUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxnQkFBZ0IsQ0FBQztRQUM3QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUUzQixJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFBLHdCQUFnQixFQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDN0QsQ0FBQztRQUVELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1NBQ2xCLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUEzQkQsd0NBMkJDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLHFCQUFzQixTQUFRLGNBQWM7SUFDdkQsWUFBWSxPQUFlLEVBQUUsT0FBYSxFQUFFLFNBQWtCO1FBQzVELEtBQUssQ0FBQyxPQUFPLEVBQUUsaUJBQVMsQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLElBQUksR0FBRyx1QkFBdUIsQ0FBQztJQUN0QyxDQUFDO0NBQ0Y7QUFMRCxzREFLQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxlQUFnQixTQUFRLGNBQWM7SUFDakQsWUFBWSxPQUFlLEVBQUUsSUFBZ0IsRUFBRSxPQUFhLEVBQUUsU0FBa0I7UUFDOUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksaUJBQVMsQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztDQUNGO0FBTEQsMENBS0M7QUFFRDs7R0FFRztBQUNILE1BQWEsaUJBQWtCLFNBQVEsY0FBYztJQUNuRCxZQUFZLE9BQWUsRUFBRSxJQUFnQixFQUFFLE9BQWEsRUFBRSxTQUFrQjtRQUM5RSxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksSUFBSSxpQkFBUyxDQUFDLGNBQWMsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLElBQUksR0FBRyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0NBQ0Y7QUFMRCw4Q0FLQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxrQkFBbUIsU0FBUSxjQUFjO0lBQ3BELFlBQVksT0FBZSxFQUFFLElBQWdCLEVBQUUsT0FBYSxFQUFFLFNBQWtCO1FBQzlFLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxJQUFJLGlCQUFTLENBQUMsY0FBYyxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsSUFBSSxHQUFHLG9CQUFvQixDQUFDO0lBQ25DLENBQUM7Q0FDRjtBQUxELGdEQUtDO0FBRUQ7O0dBRUc7QUFDSCxNQUFhLFdBQVksU0FBUSxjQUFjO0lBRzdDLFlBQVksVUFBa0IsRUFBRSxPQUFlLEVBQUUsT0FBYSxFQUFFLFNBQWtCO1FBQ2hGLEtBQUssQ0FBQyxJQUFJLFVBQVUsS0FBSyxPQUFPLEVBQUUsRUFBRSxpQkFBUyxDQUFDLGNBQWMsRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3JHLElBQUksQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7Q0FDRjtBQVJELGtDQVFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBsbG12ZXJpZnkgRXJyb3IgQ2xhc3Nlc1xuICogXG4gKiBDdXN0b20gZXJyb3IgdHlwZXMgZm9yIGNsZWFyIGVycm9yIGhhbmRsaW5nLlxuICogXG4gKiBAbW9kdWxlIGVycm9yc1xuICogQGF1dGhvciBIYWllY1xuICogQGxpY2Vuc2UgTUlUXG4gKi9cblxuaW1wb3J0IHsgRXJyb3JDb2RlLCBFcnJvck1ldGFkYXRhLCBnZXRFcnJvck1ldGFkYXRhIH0gZnJvbSAnLi9lcnJvcnMvY29kZXMnO1xuXG4vKipcbiAqIEJhc2UgZXJyb3IgY2xhc3MgZm9yIGxsbXZlcmlmeVxuICovXG5leHBvcnQgY2xhc3MgTExNVmVyaWZ5RXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIHB1YmxpYyByZWFkb25seSBjb2RlPzogRXJyb3JDb2RlO1xuICBwdWJsaWMgcmVhZG9ubHkgbWV0YWRhdGE/OiBFcnJvck1ldGFkYXRhO1xuICBwdWJsaWMgcmVhZG9ubHkgcmVxdWVzdElkPzogc3RyaW5nO1xuICBcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBjb2RlPzogRXJyb3JDb2RlLCBkZXRhaWxzPzogYW55LCByZXF1ZXN0SWQ/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB0aGlzLm5hbWUgPSAnTExNVmVyaWZ5RXJyb3InO1xuICAgIHRoaXMuY29kZSA9IGNvZGU7XG4gICAgdGhpcy5yZXF1ZXN0SWQgPSByZXF1ZXN0SWQ7XG4gICAgXG4gICAgaWYgKGNvZGUpIHtcbiAgICAgIHRoaXMubWV0YWRhdGEgPSBnZXRFcnJvck1ldGFkYXRhKGNvZGUsIGRldGFpbHMsIHJlcXVlc3RJZCk7XG4gICAgfVxuICAgIFxuICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsIHRoaXMuY29uc3RydWN0b3IpO1xuICB9XG4gIFxuICB0b0pTT04oKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgIG1lc3NhZ2U6IHRoaXMubWVzc2FnZSxcbiAgICAgIGNvZGU6IHRoaXMuY29kZSxcbiAgICAgIG1ldGFkYXRhOiB0aGlzLm1ldGFkYXRhLFxuICAgICAgc3RhY2s6IHRoaXMuc3RhY2tcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogUHJpdmFjeSB2aW9sYXRpb24gZXJyb3JcbiAqL1xuZXhwb3J0IGNsYXNzIFByaXZhY3lWaW9sYXRpb25FcnJvciBleHRlbmRzIExMTVZlcmlmeUVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBkZXRhaWxzPzogYW55LCByZXF1ZXN0SWQ/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlLCBFcnJvckNvZGUuUFJJVkFDWV9WSU9MQVRJT04sIGRldGFpbHMsIHJlcXVlc3RJZCk7XG4gICAgdGhpcy5uYW1lID0gJ1ByaXZhY3lWaW9sYXRpb25FcnJvcic7XG4gIH1cbn1cblxuLyoqXG4gKiBWYWxpZGF0aW9uIGVycm9yXG4gKi9cbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBMTE1WZXJpZnlFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgY29kZT86IEVycm9yQ29kZSwgZGV0YWlscz86IGFueSwgcmVxdWVzdElkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSwgY29kZSB8fCBFcnJvckNvZGUuSU5WQUxJRF9JTlBVVCwgZGV0YWlscywgcmVxdWVzdElkKTtcbiAgICB0aGlzLm5hbWUgPSAnVmFsaWRhdGlvbkVycm9yJztcbiAgfVxufVxuXG4vKipcbiAqIFZlcmlmaWNhdGlvbiBlcnJvclxuICovXG5leHBvcnQgY2xhc3MgVmVyaWZpY2F0aW9uRXJyb3IgZXh0ZW5kcyBMTE1WZXJpZnlFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgY29kZT86IEVycm9yQ29kZSwgZGV0YWlscz86IGFueSwgcmVxdWVzdElkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSwgY29kZSB8fCBFcnJvckNvZGUuRU5HSU5FX0ZBSUxVUkUsIGRldGFpbHMsIHJlcXVlc3RJZCk7XG4gICAgdGhpcy5uYW1lID0gJ1ZlcmlmaWNhdGlvbkVycm9yJztcbiAgfVxufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZXJyb3JcbiAqL1xuZXhwb3J0IGNsYXNzIENvbmZpZ3VyYXRpb25FcnJvciBleHRlbmRzIExMTVZlcmlmeUVycm9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBjb2RlPzogRXJyb3JDb2RlLCBkZXRhaWxzPzogYW55LCByZXF1ZXN0SWQ/OiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlLCBjb2RlIHx8IEVycm9yQ29kZS5JTlZBTElEX0NPTkZJRywgZGV0YWlscywgcmVxdWVzdElkKTtcbiAgICB0aGlzLm5hbWUgPSAnQ29uZmlndXJhdGlvbkVycm9yJztcbiAgfVxufVxuXG4vKipcbiAqIEVuZ2luZSBlcnJvclxuICovXG5leHBvcnQgY2xhc3MgRW5naW5lRXJyb3IgZXh0ZW5kcyBMTE1WZXJpZnlFcnJvciB7XG4gIHB1YmxpYyByZWFkb25seSBlbmdpbmVOYW1lOiBzdHJpbmc7XG4gIFxuICBjb25zdHJ1Y3RvcihlbmdpbmVOYW1lOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZywgZGV0YWlscz86IGFueSwgcmVxdWVzdElkPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoYFske2VuZ2luZU5hbWV9XSAke21lc3NhZ2V9YCwgRXJyb3JDb2RlLkVOR0lORV9GQUlMVVJFLCB7IC4uLmRldGFpbHMsIGVuZ2luZU5hbWUgfSwgcmVxdWVzdElkKTtcbiAgICB0aGlzLm5hbWUgPSAnRW5naW5lRXJyb3InO1xuICAgIHRoaXMuZW5naW5lTmFtZSA9IGVuZ2luZU5hbWU7XG4gIH1cbn1cbiJdfQ==