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

Function matchSignals

src/eval/discovery-harness.ts:146–170  ·  view source on GitHub ↗
(
  payload: string,
  expectedSignals: string[],
  forbiddenSignals: string[] | undefined
)

Source from the content-addressed store, hash-verified

144}
145
146export function matchSignals(
147 payload: string,
148 expectedSignals: string[],
149 forbiddenSignals: string[] | undefined
150): {
151 matchedSignals: string[];
152 missingSignals: string[];
153 forbiddenHits: string[];
154 usefulnessScore: number;
155} {
156 const normalizedPayload = normalizeText(payload);
157 const matchedSignals = expectedSignals.filter((signal) =>
158 normalizedPayload.includes(normalizeText(signal))
159 );
160 const missingSignals = expectedSignals.filter((signal) => !matchedSignals.includes(signal));
161 const forbiddenHits = (forbiddenSignals ?? []).filter((signal) =>
162 normalizedPayload.includes(normalizeText(signal))
163 );
164 const usefulnessDenominator = Math.max(expectedSignals.length, 1);
165 const usefulnessScore = Math.max(
166 0,
167 (matchedSignals.length - forbiddenHits.length) / usefulnessDenominator
168 );
169 return { matchedSignals, missingSignals, forbiddenHits, usefulnessScore };
170}
171
172function evaluateDiscoveryTask(
173 task: DiscoveryTaskType,

Callers 1

evaluateDiscoveryTaskFunction · 0.70

Calls 1

normalizeTextFunction · 0.70

Tested by

no test coverage detected