MCPcopy Create free account
hub / github.com/PatrickSys/codebase-context / evaluateComparatorGate

Function evaluateComparatorGate

src/eval/discovery-harness.ts:369–401  ·  view source on GitHub ↗
(
  summary: DiscoverySummaryType,
  comparatorName: string,
  protocol: DiscoveryBenchmarkProtocol,
  comparatorEvidence: DiscoveryComparatorEvidence | undefined
)

Source from the content-addressed store, hash-verified

367}
368
369function evaluateComparatorGate(
370 summary: DiscoverySummaryType,
371 comparatorName: string,
372 protocol: DiscoveryBenchmarkProtocol,
373 comparatorEvidence: DiscoveryComparatorEvidence | undefined
374): DiscoveryComparatorGateResult {
375 const tolerancePercent = protocol.shipGate.comparators.tolerancePercent;
376 const comparatorMetrics = comparatorEvidence?.[comparatorName];
377 const comparisons = protocol.shipGate.comparators.usefulnessMetrics.map((metric) =>
378 compareMetricWithinTolerance(
379 getDiscoveryMetricValue(summary, metric),
380 getDiscoveryMetricValue(comparatorMetrics, metric),
381 metric,
382 tolerancePercent
383 )
384 );
385 const missingMetrics = comparisons
386 .filter((comparison) => comparison.comparatorValue === null)
387 .map((comparison) => comparison.metric);
388
389 return {
390 comparatorName,
391 status:
392 missingMetrics.length > 0
393 ? 'pending_evidence'
394 : comparisons.every((comparison) => comparison.passes)
395 ? 'passed'
396 : 'failed',
397 tolerancePercent,
398 missingMetrics,
399 comparisons
400 };
401}
402
403export function combineDiscoverySummaries(summaries: DiscoverySummaryType[]): DiscoverySummaryType {
404 return summarizeDiscoveryResults(summaries.flatMap((summary) => summary.results));

Callers 1

evaluateDiscoveryGateFunction · 0.85

Calls 2

getDiscoveryMetricValueFunction · 0.85

Tested by

no test coverage detected