earendil-works/pi · error · TypeError
Eval input must contain only plain objects and arrays.
Error message
Eval input must contain only plain objects and arrays.
What it means
Error "Eval input must contain only plain objects and arrays." thrown in earendil-works/pi.
Source
Thrown at packages/evals/src/vitest-evals/harness-table.ts:87
if (!Number.isFinite(value)) throw new TypeError("Eval input must contain only finite numbers.");
return value;
}
if (typeof value !== "object") throw new TypeError("Eval input must be JSON-serializable.");
if (ancestors.has(value)) throw new TypeError("Eval input must not contain circular references.");
ancestors.add(value);
try {
if (Array.isArray(value)) {
const result: JsonValue[] = [];
for (let index = 0; index < value.length; index += 1) {
if (!Object.hasOwn(value, index)) throw new TypeError("Eval input arrays must not be sparse.");
result.push(canonicalizeJson(value[index], ancestors));
}
return result;
}
const prototype = Object.getPrototypeOf(value);
if (prototype !== Object.prototype && prototype !== null) {
throw new TypeError("Eval input must contain only plain objects and arrays.");
}
const entries: Array<[string, unknown]> = Object.entries(value);
return Object.fromEntries(
entries
.sort(([left], [right]) => (left < right ? -1 : left > right ? 1 : 0))
.map(([key, item]): [string, JsonValue] => [key, canonicalizeJson(item, ancestors)]),
);
} finally {
ancestors.delete(value);
}
}
function deriveInputKey(input: unknown): string {
if (typeof input === "object" && input !== null && !Array.isArray(input) && "id" in input) {
const id = input.id;
if (typeof id === "string" && id.trim()) return id.trim();
}
const canonicalInput = JSON.stringify(canonicalizeJson(input, new WeakSet()));View on GitHub (pinned to 4af9d21d3b)
When it happens
Trigger: Thrown at packages/evals/src/vitest-evals/harness-table.ts:87 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of earendil-works/pi@4af9d21d3b (2026-08-24).
Data as JSON: /api/errors/7c06275b9cade989.
Report an issue: GitHub.