lol
1{
2 buildNpmPackage,
3 fetchFromGitHub,
4 lib,
5}:
6
7buildNpmPackage (finalAttrs: {
8 pname = "promptfoo";
9 version = "0.117.4";
10
11 src = fetchFromGitHub {
12 owner = "promptfoo";
13 repo = "promptfoo";
14 tag = finalAttrs.version;
15 hash = "sha256-0QF6sJ0SI6NA0yBdB7a4+ae8CcD0IiWYuFJNteZxvN8=";
16 };
17
18 # npm error code ENOTCACHED
19 # npm error request to https://registry.npmjs.org/undici-types failed: cache mode is 'only-if-cached' but no cached response is available
20 # deleted package-lock.json and ran `npm update` to get a new lock file
21 postPatch = ''
22 cp ${./package-lock.json} package-lock.json
23 '';
24 npmDepsHash = "sha256-sRTnIZqXbtiwk/jSTLIWLYwsNbR5nOL2d8Qsa3iF/Sg=";
25
26 # don't fetch playwright binary
27 env.PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD = "1";
28
29 # cleanup dangling symlinks for workspaces
30 preFixup = ''
31 rm -rf $out/lib/node_modules/promptfoo/node_modules/app $out/lib/node_modules/promptfoo/node_modules/promptfoo-docs
32 '';
33
34 meta = {
35 description = "Test your prompts, models, RAGs. Evaluate and compare LLM outputs, catch regressions, and improve prompt quality";
36 mainProgram = "promptfoo";
37 homepage = "https://www.promptfoo.dev/";
38 changelog = "https://github.com/promptfoo/promptfoo/releases/tag/${finalAttrs.version}";
39 license = lib.licenses.mit;
40 maintainers = with lib.maintainers; [
41 nathanielbrough
42 jk
43 ];
44 };
45})