{"record":{"id":"03604d888f91b007","repo":"earendil-works/pi","slug":"pi-eval-input-must-include-at-least-one-prompt-ste","errorCode":null,"errorMessage":"Pi eval input must include at least one prompt step.","messagePattern":"Pi eval input must include at least one prompt step\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/evals/src/pi-harness.ts","lineNumber":178,"sourceCode":"\t\tconst abort = () => {\n\t\t\tabortPromise ??= evalSession.abort();\n\t\t};\n\t\tsignal?.addEventListener(\"abort\", abort, { once: true });\n\t\ttry {\n\t\t\tsignal?.throwIfAborted();\n\t\t\tif (evalSession.extensionRunner.getExtensionPaths().length !== 0) {\n\t\t\t\tthrow new Error(\"Expected an isolated eval session to start without extensions.\");\n\t\t\t}\n\t\t\tconst steps = typeof input === \"string\" ? [{ type: \"prompt\" as const, content: input }] : input;\n\t\t\tlet response: string | undefined;\n\t\t\tfor (const step of steps) {\n\t\t\t\tif (step.type === \"prompt\") {\n\t\t\t\t\tresponse = await promptAgent(evalSession, step.content, signal);\n\t\t\t\t} else {\n\t\t\t\t\tawait evalSession.reload();\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (response === undefined) throw new Error(\"Pi eval input must include at least one prompt step.\");\n\t\t\tconst output = \"output\" in options ? await options.output({ response, session: evalSession }) : response;\n\t\t\tconst stats = evalSession.getSessionStats();\n\t\t\tconst hasPricing = [model.cost, ...(model.cost.tiers ?? [])].some(\n\t\t\t\t({ input, output, cacheRead, cacheWrite }) => input > 0 || output > 0 || cacheRead > 0 || cacheWrite > 0,\n\t\t\t);\n\t\t\toutcome = {\n\t\t\t\tsuccess: true,\n\t\t\t\tresult: {\n\t\t\t\t\toutput,\n\t\t\t\t\tevents: toTranscriptEvents(evalSession.messages),\n\t\t\t\t\tusage: {\n\t\t\t\t\t\tprovider: model.provider,\n\t\t\t\t\t\tmodel: model.id,\n\t\t\t\t\t\tinputTokens: stats.tokens.input,\n\t\t\t\t\t\toutputTokens: stats.tokens.output,\n\t\t\t\t\t\ttotalTokens: stats.tokens.total,\n\t\t\t\t\t\ttoolCalls: stats.toolCalls,\n\t\t\t\t\t\tmetadata: {","sourceCodeStart":160,"sourceCodeEnd":196,"githubUrl":"https://github.com/earendil-works/pi/blob/4af9d21d3b4d664e4a29fcabfec85171077248e3/packages/evals/src/pi-harness.ts#L160-L196","documentation":"Error \"Pi eval input must include at least one prompt step.\" thrown in earendil-works/pi.","triggerScenarios":"Thrown at packages/evals/src/pi-harness.ts:178 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"4af9d21d3b4d664e4a29fcabfec85171077248e3","analyzedAt":"2026-08-24T13:07:14.692Z","schemaVersion":2},"datasetVersion":"2026-08-24T17:17:21.512Z"}