UNPKG

@ai2070/l0

Version:

L0: The Missing Reliability Substrate for AI

139 lines (138 loc) 3.82 kB
import { z } from "zod4"; const ComparisonStyleSchema = z.enum([ "strict", "lenient" ]); const ComparisonTypeSchema = z.enum([ "exact", "schema", "structural", "fuzzy", "numeric", "mixed" ]); const DifferenceTypeSchema = z.enum([ "missing", "extra", "different", "type-mismatch", "structure-mismatch", "schema-violation" ]); const DifferenceSeveritySchema = z.enum([ "error", "warning", "info" ]); const ComparisonFunctionSchema = z.function(); const DifferenceSchema = z.object({ path: z.string(), expected: z.any(), actual: z.any(), type: DifferenceTypeSchema, severity: DifferenceSeveritySchema, message: z.string(), similarity: z.number().optional() }); const EvaluationDetailsSchema = z.object({ exactMatch: z.boolean(), schemaValid: z.boolean(), structureMatch: z.boolean(), contentSimilarity: z.number(), fieldsCompared: z.number(), fieldsMatched: z.number(), comparisonType: ComparisonTypeSchema }); const EvaluationResultSchema = z.object({ match: z.boolean(), score: z.number(), differences: z.array(DifferenceSchema), details: EvaluationDetailsSchema, metadata: z.record(z.string(), z.any()).optional() }); const EvaluationOptionsSchema = z.object({ expected: z.any(), actual: z.any(), style: ComparisonStyleSchema.optional(), threshold: z.number().optional(), numericTolerance: z.number().optional(), ignoreArrayOrder: z.boolean().optional(), ignoreExtraFields: z.boolean().optional(), customComparisons: z.record(z.string(), ComparisonFunctionSchema).optional(), metadata: z.record(z.string(), z.any()).optional() }); const EvaluationTestSchema = z.object({ name: z.string(), expected: z.any(), actual: z.any(), style: ComparisonStyleSchema.optional(), threshold: z.number().optional(), metadata: z.record(z.string(), z.any()).optional() }); const EvaluationTestResultSchema = z.object({ name: z.string(), passed: z.boolean(), result: EvaluationResultSchema, metadata: z.record(z.string(), z.any()).optional() }); const BatchEvaluationResultSchema = z.object({ passed: z.boolean(), passCount: z.number(), failCount: z.number(), total: z.number(), averageScore: z.number(), results: z.array(EvaluationTestResultSchema), summary: z.object({ exactMatches: z.number(), schemaValid: z.number(), fuzzyMatches: z.number(), totalDifferences: z.number() }) }); const StringComparisonOptionsSchema = z.object({ caseSensitive: z.boolean().optional(), normalizeWhitespace: z.boolean().optional(), algorithm: z.enum(["levenshtein", "jaro-winkler", "cosine"]).optional(), threshold: z.number().optional() }); const ObjectComparisonOptionsSchema = z.object({ style: ComparisonStyleSchema, ignoreExtraFields: z.boolean(), ignoreArrayOrder: z.boolean(), numericTolerance: z.number(), customComparisons: z.record(z.string(), ComparisonFunctionSchema).optional() }); const SchemaValidationResultSchema = z.object({ valid: z.boolean(), data: z.any().optional(), errors: z.any().optional(), // z.ZodError differences: z.array(DifferenceSchema) }); const EvaluationPresetSchema = z.object({ name: z.string(), style: ComparisonStyleSchema, threshold: z.number(), ignoreArrayOrder: z.boolean(), ignoreExtraFields: z.boolean(), numericTolerance: z.number() }); export { BatchEvaluationResultSchema, ComparisonFunctionSchema, ComparisonStyleSchema, ComparisonTypeSchema, DifferenceSchema, DifferenceSeveritySchema, DifferenceTypeSchema, EvaluationDetailsSchema, EvaluationOptionsSchema, EvaluationPresetSchema, EvaluationResultSchema, EvaluationTestResultSchema, EvaluationTestSchema, ObjectComparisonOptionsSchema, SchemaValidationResultSchema, StringComparisonOptionsSchema }; //# sourceMappingURL=evaluate.js.map