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

Function normalizeSnapshot

plugins/plugin-eval/src/core/observed-usage.js:87–120  ·  view source on GitHub ↗
(candidate, sourcePath, index)

Source from the content-addressed store, hash-verified

85}
86
87function normalizeSnapshot(candidate, sourcePath, index) {
88 const extracted = extractUsagePayload(candidate);
89 if (!extracted) {
90 return null;
91 }
92
93 const usage = extracted.usage || {};
94 const inputTokens = toNumber(usage.input_tokens);
95 const outputTokens = toNumber(usage.output_tokens);
96 const totalTokens = toNumber(usage.total_tokens) ?? ((inputTokens || 0) + (outputTokens || 0));
97 const cachedTokens =
98 toNumber(usage.input_token_details?.cached_tokens) ??
99 toNumber(usage.cached_tokens) ??
100 0;
101 const reasoningTokens =
102 toNumber(usage.output_tokens_details?.reasoning_tokens) ??
103 toNumber(usage.reasoning_tokens) ??
104 0;
105
106 if (inputTokens === null && outputTokens === null && totalTokens === null) {
107 return null;
108 }
109
110 return {
111 id: extracted.responseId || `${path.basename(sourcePath)}#${index + 1}`,
112 label: extracted.label || null,
113 sourcePath,
114 inputTokens: inputTokens ?? 0,
115 outputTokens: outputTokens ?? 0,
116 totalTokens,
117 cachedTokens,
118 reasoningTokens,
119 };
120}
121
122function collectSnapshots(value, sourcePath, results) {
123 if (Array.isArray(value)) {

Callers 1

collectSnapshotsFunction · 0.85

Calls 2

extractUsagePayloadFunction · 0.85
toNumberFunction · 0.70

Tested by

no test coverage detected