MCPcopy Create free account
hub / github.com/openai/plugins / compareResults

Function compareResults

plugins/plugin-eval/src/core/compare.js:3–38  ·  view source on GitHub ↗
(before, after)

Source from the content-addressed store, hash-verified

1import { createComparisonNextAction } from "./presentation.js";
2
3export function compareResults(before, after) {
4 const beforeFailures = new Set(
5 before.checks.filter((check) => check.status === "fail").map((check) => check.id),
6 );
7 const afterFailures = new Set(
8 after.checks.filter((check) => check.status === "fail").map((check) => check.id),
9 );
10
11 const resolvedFailures = [...beforeFailures].filter((id) => !afterFailures.has(id));
12 const newFailures = [...afterFailures].filter((id) => !beforeFailures.has(id));
13
14 const payload = {
15 kind: "comparison",
16 createdAt: new Date().toISOString(),
17 target: after.target,
18 scoreDelta: after.summary.score - before.summary.score,
19 gradeBefore: before.summary.grade,
20 gradeAfter: after.summary.grade,
21 riskBefore: before.summary.riskLevel,
22 riskAfter: after.summary.riskLevel,
23 budgetDelta: {
24 trigger_cost_tokens:
25 (after.budgets.trigger_cost_tokens?.value || 0) - (before.budgets.trigger_cost_tokens?.value || 0),
26 invoke_cost_tokens:
27 (after.budgets.invoke_cost_tokens?.value || 0) - (before.budgets.invoke_cost_tokens?.value || 0),
28 deferred_cost_tokens:
29 (after.budgets.deferred_cost_tokens?.value || 0) - (before.budgets.deferred_cost_tokens?.value || 0),
30 },
31 resolvedFailures,
32 newFailures,
33 beforeSummary: before.summary,
34 afterSummary: after.summary,
35 };
36 payload.nextAction = createComparisonNextAction(payload);
37 return payload;
38}

Callers 2

runCliFunction · 0.90

Calls 4

mapMethod · 0.80
filterMethod · 0.80
hasMethod · 0.45

Tested by

no test coverage detected