earendil-works/pi · error · TypeError
Invalid eval artifact name: ${attachment.name}
Error message
Invalid eval artifact name: ${attachment.name} What it means
Error "Invalid eval artifact name: ${attachment.name}" thrown in earendil-works/pi.
Source
Thrown at packages/evals/src/vitest-evals/artifacts.ts:104
export async function persistEvalArtifactReferences(
artifacts: ReadonlyArray<TestArtifact>,
runId: string,
artifactDirectory: string,
): Promise<Array<{ name: string; path: string }>> {
const references: Array<{ name: string; path: string }> = [];
for (const artifact of artifacts) {
if (
(artifact.type !== "@earendil-works/pi-evals:session" &&
artifact.type !== "@earendil-works/pi-evals:source") ||
artifact.runId !== runId
) {
continue;
}
const category = artifact.type === "@earendil-works/pi-evals:session" ? "sessions" : "sources";
for (const attachment of artifact.attachments) {
const name = basename(attachment.name);
if (name !== attachment.name) throw new TypeError(`Invalid eval artifact name: ${attachment.name}`);
const directory = join(artifactDirectory, category, createHash("sha256").update(runId).digest("hex"));
await mkdir(directory, { recursive: true, mode: 0o700 });
const path = join(directory, name);
await writeFile(path, attachment.body, { encoding: "utf8", mode: 0o600 });
references.push({ name, path: relative(artifactDirectory, path) });
}
}
return references;
}
View on GitHub (pinned to 4af9d21d3b)
When it happens
Trigger: Thrown at packages/evals/src/vitest-evals/artifacts.ts:104 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/67241b154b6f6c40.
Report an issue: GitHub.