earendil-works/pi · error · Error
Select a harness model explicitly or set both PI_PROVIDER an
Error message
Select a harness model explicitly or set both PI_PROVIDER and PI_MODEL as defaults.
What it means
Error "Select a harness model explicitly or set both PI_PROVIDER and PI_MODEL as defaults." thrown in earendil-works/pi.
Source
Thrown at packages/evals/src/pi-harness.ts:53
type PiCodingAgentHarnessOptions = {
name?: string;
model?: PiCodingAgentModelSelection;
noTools?: CreateAgentSessionOptions["noTools"];
transformSystemPrompt?: (defaultPrompt: string) => string;
};
type PiCodingAgentHarnessWithOutput<TOutput extends JsonValue> = PiCodingAgentHarnessOptions & {
output: (args: { response: string; session: AgentSession }) => TOutput | Promise<TOutput>;
};
export function resolveModelSelection(
explicitModel: PiCodingAgentModelSelection | undefined,
environment: { PI_PROVIDER?: string; PI_MODEL?: string } = process.env,
): PiCodingAgentModelSelection {
const provider = (explicitModel?.provider ?? environment.PI_PROVIDER)?.trim();
const id = (explicitModel?.id ?? environment.PI_MODEL)?.trim();
if (!provider || !id) {
throw new Error("Select a harness model explicitly or set both PI_PROVIDER and PI_MODEL as defaults.");
}
return { provider, id };
}
function toTranscriptEvents(messages: AgentSession["messages"]): TranscriptEvent[] {
const events: TranscriptEvent[] = [];
for (const message of messages) {
if (message.role === "user") {
events.push({ type: "message", role: "user", content: contentText(message.content) });
} else if (message.role === "assistant") {
const text = contentText(message.content);
if (text) events.push({ type: "message", role: "assistant", content: text });
for (const part of message.content) {
if (part.type === "toolCall") {
events.push({
type: "tool_call",
id: part.id,
name: part.name,View on GitHub (pinned to 4af9d21d3b)
When it happens
Trigger: Thrown at packages/evals/src/pi-harness.ts:53 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/68fb6776a8faeb6e.
Report an issue: GitHub.