/ config / pf-chat-prompt.js
pf-chat-prompt.js
 1  // promptfoo dynamic prompt — reads a prompt file as system message, adds task as user message
 2  // promptfoo calls this with context = { vars, provider, config }
 3  import { readFileSync } from 'fs';
 4  import { resolve } from 'path';
 5  
 6  export default function (context) {
 7    // promptfoo passes { vars, provider, config } — extract vars defensively
 8    const vars = context && context.vars ? context.vars : context;
 9    const promptPath = resolve(process.cwd(), vars.promptFile);
10    const systemContent = readFileSync(promptPath, 'utf8');
11    return JSON.stringify([
12      { role: 'system', content: systemContent },
13      { role: 'user', content: vars.task },
14    ]);
15  }