import {
parseContractFromYaml,
parseEvalFile,
evaluate,
} from "@geval-labs/core";
import { readFileSync } from "fs";
const contract = parseContractFromYaml(
readFileSync("comprehensive-gate.yaml", "utf-8")
);
const evalResults = [
parseEvalFile(readFileSync("accuracy-suite.json", "utf-8"), "accuracy-suite.json", contract),
parseEvalFile(readFileSync("performance-suite.json", "utf-8"), "performance-suite.json", contract),
parseEvalFile(readFileSync("cost-suite.json", "utf-8"), "cost-suite.json", contract),
parseEvalFile(readFileSync("user-experience-suite.json", "utf-8"), "user-experience-suite.json", contract),
];
const baselineCost = JSON.parse(readFileSync("baseline-cost-suite.json", "utf-8"));
const decision = evaluate({
contract,
evalResults,
baselines: {
"cost-suite": {
type: "previous",
metrics: baselineCost.metrics,
source: { runId: baselineCost.runId },
},
},
});
console.log(`Status: ${decision.status}`);
decision.violations.forEach(v => {
console.log(`Violation: ${v.evalName} → ${v.metric}`);
});