{"_id":"promptfoo","_rev":"419-6d9d39a46ea2a02ca52c3687b733da9b","name":"promptfoo","dist-tags":{"latest":"0.121.17"},"versions":{"0.1.0":{"name":"promptfoo","version":"0.1.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.1.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/main.js"},"dist":{"shasum":"783ef7147bbf69215b90ab1885f4151fb01ef7b1","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.1.0.tgz","fileCount":50,"integrity":"sha512-wHVc3MnJFCFXQQ9jCsK4F6IE8sNmFJRvI6MwfKoAS4v5hH6Qdbxy/XibuZdnaGUmb1JCjTdNhQfFdC2f5VIf2Q==","signatures":[{"sig":"MEYCIQDTTlrQVJcF5FQBNZ+d5eyUnAYZ6oTnZ5YilIQkYWkU+gIhAOt6eJYImM1X3fq391BK+hVKx9yAqYj26U6lBHWV5adX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":82724,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkUrumACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpaHw/+JX4Lph8UvyXXPPCgbi+edLUCL2fqJnc6uqVvaoCozkkg01SP\r\nkOFd8JVSaM7QAFetoDXV5MAupT5yrcTP+i9lefj8ch12NykJ69l9Xl9NQn0h\r\nqVwS1HBMf5Pfy8fxIyVIEkALPmr9h6H8TStQ0nHWkbjAeYx7groGpEBeyCqQ\r\nY6XBbVPMe+OO6EwknFb7hSfivUCib7MFXZ0cinlj8iWlY0o0i3noptEvy/nw\r\nIYrgqgW7bCiD0q3v68fwblLkT7lkrn+DIp+37UV7s23NO5b3Dmm6cskmDvKK\r\nixJVcbd4/oHjVvKbez8z4WZ1G+pTnyj7/7kRNTH4Gs4tnQp4yudpl9l3hrP3\r\nRe0rLBaUBld2RBIo+HkyxoSjhw6Dl/gLNzM2nq7dzIMvRNsk2QTSOb8pBv86\r\nGT2Ww/mU+hcLa1KtyFP0mlLxRCgh8q2U2Pf2CNlhXjH3NL9A/A2dPbbxmHHg\r\n2TXKN466eqw1ackyAnXAD55YRq2MCm2t02fcsA7MKzut4E5/glyLGKxmobao\r\n9lrBVP80YGwC1ltyauTm3cwSA+4YHAVciS5XR5HZ1Ad3yMjnjfH96kNnGjv8\r\nnBrox1RqKBVM4P0+PE1zY5rtVxSfNPAKQ3DN2Ic81Sm8ixWeD+rhX2BWOZQy\r\nM3UJ9szo1RFgvGPdbCBsqSARS7r9MZSIUa0=\r\n=QzGb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=12"},"gitHead":"124e2a2d0cb8a6cc3912825e45768eb54db973ef","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/","local":"ts-node --esm src/main.ts","format":"prettier -w .","prepare":"tsc","test:watch":"jest --watch","build:watch":"tsc --watch"},"typings":"dist/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"8.11.0","description":"`promptfoo` is a library and command-line tool that helps you evaluate LLM prompt & model quality with a systematic approach to comparing model outputs.","directories":{},"_nodeVersion":"16.16.0","dependencies":{"async":"^3.2.4","chalk":"^4.1.2","js-yaml":"^4.1.0","winston":"^3.8.2","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","cli-table3":"^0.6.3","node-fetch":"^3.3.1","cli-progress":"^3.12.0","csv-stringify":"^6.3.2"},"_hasShrinkwrap":false,"devDependencies":{"ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/js-yaml":"^4.0.5","@types/nunjucks":"^3.2.2","@types/cli-progress":"^3.11.0","jest-watch-typeahead":"^2.2.2"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.1.0_1683143590283_0.7188252104432871","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"promptfoo","version":"0.2.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.2.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/main.js"},"dist":{"shasum":"7295a613f346e9d721d99d87510c115158ec7afe","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.2.0.tgz","fileCount":50,"integrity":"sha512-fiwAVswwFQDAeUbeXEYTJOW+VReBExmgs++HFBohqbHyuigHnGY/Be8KhmT/0wvXNrEy0cNpqqsmL/6LpXVgag==","signatures":[{"sig":"MEUCICu/8gHg455L3Bt2Ff8LbskOWdHPFG7HmsxBsH0RwisFAiEA3u+0chhCeN8VOUZBCl10VKO4/iUSvT2S/QWo1BbqEFM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":90677,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkUvyhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpkmw/9GL+bpiw0R/6pMP2llso3CH+unhjmna5xW8d9J+KJUqF44NZ8\r\nEUcFA0FxnV4gWosefDlEd+QW8TDBc5tD+rBJo5z+HitlesDBObdpyE1XQ5Rg\r\nWMfhRUc7qPFV6Bx7jJ6GsQS3YIfEnaLcl3CMmTowZA73RaHHT/DxR04y3L3H\r\n0+xqVu1dRvnCosLlfChIGa06UJlJYXciTwGYuNcutsQqwKKRjPhBgN1IlwAB\r\nc19UsA9NpYE7Hq2fYw3Ca9woLRId2O2e5yN9//SotKz4t2xEB0A7uu6A0Pmf\r\npRlxj1RqHUeXCFYxNwzOZ5zWqlmRxTZKAZg3szc9l2lO4RkVmhRTXZKsiS/r\r\nZqiEJzcNI/EAd2DNoiII9HKRLHsdSUj+BaeDEev1Ac8EsSAPWRHIKUd3mZ9s\r\nr9hV5mx8aYmQeaHwYlUuFxo0D0xAR0nOlNzxNw6ZPVN+6hPJbSpuztTpx8sJ\r\n9kq9TQ2w35FOdT2/BN2u3DJWqraHsVK+AYAioPEHDIUpetPC5eT1vOqpNYHD\r\nEBlmSKSXvRR2OVIxfPm/fOYWH553vf74jacWHabJI3xCTjV2XZ57pDZo5hqu\r\nOqfMtCWZPYnf0ocr+74E4p8rtt9VdFu/MvEcgY2+x0+CS4io6ALJJLNTbY76\r\nrqLuDBnp0Zd6FGXEdFKjwjUbECcXVsbWvAg=\r\n=uw6z\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=12"},"gitHead":"a7a696c22666119ed682ea4a9fe150435fbcc2b7","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/","local":"ts-node --esm src/main.ts","format":"prettier -w .","prepare":"tsc","test:watch":"jest --watch","build:watch":"tsc --watch"},"typings":"dist/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"8.11.0","description":"[![npm](https://img.shields.io/npm/v/promptfoo)](https://npmjs.com/package/promptfoo) ![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/typpo/promptfoo/main.yml)","directories":{},"_nodeVersion":"16.16.0","dependencies":{"async":"^3.2.4","chalk":"^4.1.2","js-yaml":"^4.1.0","winston":"^3.8.2","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","cli-table3":"^0.6.3","node-fetch":"^3.3.1","cli-progress":"^3.12.0","csv-stringify":"^6.3.2"},"_hasShrinkwrap":false,"devDependencies":{"ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/js-yaml":"^4.0.5","@types/nunjucks":"^3.2.2","@types/cli-progress":"^3.11.0","jest-watch-typeahead":"^2.2.2"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.2.0_1683160225626_0.8601698388145713","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"promptfoo","version":"0.2.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.2.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/main.js"},"dist":{"shasum":"a18531b242175aab77ad4bfd3f7085c412bb22ec","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.2.1.tgz","fileCount":50,"integrity":"sha512-9o+e2TWavDuIqLlk0nMto3oJfc1u4N/4U4msvl8g5FUb4W8LPcQuQ/KhtA88VRI/c2l9KE7/5emzPpxVL+Yubg==","signatures":[{"sig":"MEUCIBFN8dp6ZjGPZHvHgZmnU0QWXovV4vrENqzEi8LntI0cAiEAtnQe5OL4oY+JRocIjb6/s0U8UZk5+fFZE6itKI7dFZ0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":90781,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkU0tzACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpIaQ/+Mcfki/NwXMHIXiub0lqe2KvHlcg2dEqhLeJmUijcVYMWf+T1\r\no/nDGRT14QCdxZeMIms2UEHTPx3LAiErwUulnjeDxr3emT8cq/+lFhpxwE8J\r\nLDsoxJMx8+Hhg18D0A8SCo+JQpF8bR2xLB9ryTnIz6PyF7m0MMh1UEf9Ks5e\r\nvWe+ueOA+NlWoGk3vfSl40KIpo090vJRneMbL0XBdbiNd53c77AB/eBeIjIh\r\nRXC3yBEShj7NBxeNthw8hUVRJhs44cytJWWX13M7JheGJodYzXI3R7Lb93DL\r\nCkPakJMGcIzsVcCKuHhyXgiOTuqAQpOqSns0wVJhafDJ+9ae4nXrPFmRk1BZ\r\nDI4fUrDWKJJz0bIPki6TRVsj89gkG2r4thUO1yEN9hOX6l8zaXTFZhgkcmT+\r\nIDVFdIJvCoDOh32Mkrxj6MocrZtVh3JJbM5aCOvGfKt8zon+zPvMiUT+c5pZ\r\nq6G/g451Nvlj8siEbWTji8HMxGjsKBnskjLMx710L1w4RNIe+qqZllKKlW2Z\r\n1JiP29pCoC6gwaXuD0oeEXBPmBXnEDq2mJmuL+7dw84TReh7CSrL44sHMnsB\r\nfPboJndFAphR8hq0q7tvixwiikY584VWGUmVkOD8BlzksblCZgZALRF1dubT\r\ns2aObWkwcNCmVRkrnbkGTYGIZ5Wfbk0Oyhw=\r\n=s9DD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=12"},"gitHead":"194a778d28d1724535fc850d1d62f83e4dd1b79d","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/","local":"ts-node --esm src/main.ts","format":"prettier -w .","prepare":"tsc","test:watch":"jest --watch","build:watch":"tsc --watch"},"typings":"dist/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"8.11.0","description":"[![npm](https://img.shields.io/npm/v/promptfoo)](https://npmjs.com/package/promptfoo) ![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/typpo/promptfoo/main.yml)","directories":{},"_nodeVersion":"16.16.0","dependencies":{"async":"^3.2.4","chalk":"^4.1.2","js-yaml":"^4.1.0","winston":"^3.8.2","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","cli-table3":"^0.6.3","node-fetch":"^3.3.1","cli-progress":"^3.12.0","csv-stringify":"^6.3.2"},"_hasShrinkwrap":false,"devDependencies":{"ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/js-yaml":"^4.0.5","@types/nunjucks":"^3.2.2","@types/cli-progress":"^3.11.0","jest-watch-typeahead":"^2.2.2"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.2.1_1683180403418_0.8803499465187272","host":"s3://npm-registry-packages"}},"0.2.2":{"name":"promptfoo","version":"0.2.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.2.2","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/main.js"},"dist":{"shasum":"b2eddc39287e7350aab645d25fceef997a57fcc8","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.2.2.tgz","fileCount":50,"integrity":"sha512-udDXmJgOMOgAju/S7DMrykGCrUwQWMX4v/4rKG8Gfr50/WWbFF5wd/blUOG8oSCQ29C94PMzhwtbMK/Yep5Bww==","signatures":[{"sig":"MEQCIBvtUWvshlDAgftIUfjHcjXwosw2nIB7QuFPt9p2AMKOAiB2EADe04/o9jXNYIrerOhHDab2ZPMxjcU0O4/D6imIGQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":94616,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkVBVPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoL0A//UbExTv4NOLREIqTH6JRTWAypv5jxk5WLzVse/3dhXMW1FdPN\r\n92byI4pFnQj/07Fv9qJiYlUG9R0oBH68tRv99p5P+aWMqwUMEQmEKV/pEeDD\r\nuNR/VsAewCMV3WC3YoPZAvyto24xekuhhdmPqGAlfTUaj0Q0oBT+F1cXK83h\r\nc1RbyiSy4xMxxvg0a2fn2bReAxeodSwtDI5S81G/xjX6xg4WozPadLJ/u4lJ\r\nKxpjE8UlqLuFiFaVthMmVccP12UaACrErCgGFXwPTn2eekfh25ESnJZEogzN\r\no/FbIh1PgUDB+tInFFtn6yuyNhR3JT7EHAksx61riMnKRV26xQKbNw/P+a+j\r\nL8VxR6c8NGFB2324lj0W92yYAX9sJT3Zzwx78jI7ArHCpTvfRpuPqS4hpLKK\r\ncpCQ8grj+/4+CRo5M75p5bKAlaPqc3SqrWWHpJIUdr8I5xF8ApO2rilHGw6o\r\n2Jz4KEfncVcOGEPR/6COT5mhJ39ccHnLEjhsrstfKmoqmEMmpPYUd79M+bgA\r\nUJry1QCPouss9iLl7pgz5bbmdPIz8BtXIPIUwCGEcSPVmpGgSD3Bsgoiq6f9\r\nQYSkEQJwDCN0y/0hqs23b/BH/PzDkS+EQ7SnqpxObrxSaSBOvGfEI8RKY+vV\r\nsPr/aaEjIQ2D4Rjtl80/qj+4hOznnwT2wOk=\r\n=KEcJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=12"},"gitHead":"92ad07229fb52113c268740062569925e4713e13","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/","local":"ts-node --esm src/main.ts","format":"prettier -w .","prepare":"tsc","test:watch":"jest --watch","build:watch":"tsc --watch"},"typings":"dist/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"8.11.0","description":"[![npm](https://img.shields.io/npm/v/promptfoo)](https://npmjs.com/package/promptfoo) ![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/typpo/promptfoo/main.yml)","directories":{},"_nodeVersion":"16.16.0","dependencies":{"async":"^3.2.4","chalk":"^4.1.2","js-yaml":"^4.1.0","winston":"^3.8.2","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","cli-table3":"^0.6.3","node-fetch":"^3.3.1","cli-progress":"^3.12.0","csv-stringify":"^6.3.2"},"_hasShrinkwrap":false,"devDependencies":{"ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/js-yaml":"^4.0.5","@types/nunjucks":"^3.2.2","@types/cli-progress":"^3.11.0","jest-watch-typeahead":"^2.2.2"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.2.2_1683232078920_0.8910564758210942","host":"s3://npm-registry-packages"}},"0.3.0":{"name":"promptfoo","version":"0.3.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.3.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/main.js"},"dist":{"shasum":"1fc367c554b65f2fb524aeff58682fda5a2db8e2","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.3.0.tgz","fileCount":55,"integrity":"sha512-f/txFRcVBZUv7dsH8o5StKWfTYM8I+yUATsAcY2BM29ezhblm+yGjz8eBl6OgaV2iMphQhxbpvynTz5VusDp+Q==","signatures":[{"sig":"MEQCICQNU+yp+cQLGj0UDEZErkFVt08hX2Fa1lpx2R4c4v6tAiBWohkI1meD9SgliBtYbcgwzgzqcQiqliU6pleoyl+0Mw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113045},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=12"},"gitHead":"80fc39aa0beb3166f80fcc2d7fd8044b113c6159","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/","local":"ts-node --esm src/main.ts","format":"prettier -w .","prepare":"tsc","test:watch":"jest --watch","build:watch":"tsc --watch"},"typings":"dist/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"8.11.0","description":"[![npm](https://img.shields.io/npm/v/promptfoo)](https://npmjs.com/package/promptfoo) ![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/typpo/promptfoo/main.yml)","directories":{},"_nodeVersion":"16.16.0","dependencies":{"async":"^3.2.4","chalk":"^4.1.2","js-yaml":"^4.1.0","winston":"^3.8.2","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","cli-table3":"^0.6.3","node-fetch":"^3.3.1","cli-progress":"^3.12.0","csv-stringify":"^6.3.2"},"_hasShrinkwrap":false,"devDependencies":{"ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/js-yaml":"^4.0.5","@types/nunjucks":"^3.2.2","@types/cli-progress":"^3.11.0","jest-watch-typeahead":"^2.2.2"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.3.0_1683482993202_0.5193458198800471","host":"s3://npm-registry-packages"}},"0.4.0":{"name":"promptfoo","version":"0.4.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.4.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/main.js"},"dist":{"shasum":"07c239b929c36d459756a5334f8f16a5c66ed0f6","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.4.0.tgz","fileCount":87,"integrity":"sha512-15IaQ1fvIQrZmPDtVKL0vMWr57319thazYHIXLK3X6On9S0oCkC8OwVUL+qIsqz+lK/W/fFP18aEgtIJ/ScFgA==","signatures":[{"sig":"MEUCIQCcIqerkzweoTCApAfasT+C1XsZsv61VaVBXX8ZEP9ZDAIgRKRiB7N5pvA1ZFEsEZETZVc9Lr0nAMTqq48YeK8OkEE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":593939},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=12"},"gitHead":"4dd385117319bb2ace6ec5d3e3c3b78713118ce0","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/ && npm run build:client","local":"ts-node --esm src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist ../../../dist/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"8.11.0","description":"[![npm](https://img.shields.io/npm/v/promptfoo)](https://npmjs.com/package/promptfoo) ![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/typpo/promptfoo/main.yml)","directories":{},"_nodeVersion":"16.16.0","dependencies":{"cors":"^2.8.5","open":"^9.1.0","async":"^3.2.4","chalk":"^4.1.2","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^3.3.1","cli-progress":"^3.12.0","csv-stringify":"^6.3.2"},"_hasShrinkwrap":false,"devDependencies":{"ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/cli-progress":"^3.11.0","jest-watch-typeahead":"^2.2.2"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.4.0_1683991157647_0.553866244169859","host":"s3://npm-registry-packages"}},"0.5.0":{"name":"promptfoo","version":"0.5.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.5.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/main.js"},"dist":{"shasum":"0a9986e3bc646a9aa2f871b52ecf147fbc36fe74","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.5.0.tgz","fileCount":102,"integrity":"sha512-1jGOfTG9Nd4bfUD/Ozo1NsS/E1awZORBn+BOb29QOlMeRzNtXa4QHglQEyJY0tl9hlaoO09CPij0kG3tBOmovQ==","signatures":[{"sig":"MEYCIQDFNjxKoATrt20U3RRbj7H7H+QM8teV9sHrtHfCwlcTYQIhAO1xePJ3EbBKd+st867kTPyHvCdTLmRC9H19z4bGyGvH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":623935},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=12"},"gitHead":"e80b8ff7f150d53015647e501333302ea8bf5dab","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/ && npm run build:client","local":"ts-node --esm src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist ../../../dist/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"8.11.0","description":"[![npm](https://img.shields.io/npm/v/promptfoo)](https://npmjs.com/package/promptfoo) ![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/typpo/promptfoo/main.yml)","directories":{},"_nodeVersion":"16.16.0","dependencies":{"cors":"^2.8.5","open":"^9.1.0","async":"^3.2.4","chalk":"^4.1.2","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","lru-cache":"^9.1.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^3.3.1","cli-progress":"^3.12.0","csv-stringify":"^6.3.2"},"_hasShrinkwrap":false,"devDependencies":{"ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/cli-progress":"^3.11.0","jest-watch-typeahead":"^2.2.2"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.5.0_1684773893247_0.7475650295105647","host":"s3://npm-registry-packages"}},"0.5.1":{"name":"promptfoo","version":"0.5.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.5.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/main.js"},"dist":{"shasum":"66216c60677edb1eddad0541a50bf73b17917588","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.5.1.tgz","fileCount":102,"integrity":"sha512-OSDfp0QDb2H/aRpTqtSHtmg7HU3udUi3FQBtQa9pBjU2K+6Qh9cQIPYcpBOxg6HIEqqwM0MZGtCLge6hOC8ZaQ==","signatures":[{"sig":"MEYCIQDmrYHFx4akrZpO4e4vJVzUJjc6Ac+rzjB0CsZsQ57BaAIhAKXYgzjEQWL89ABgKI4Q30wTEfCI7Q5fFSgxSq6kRWSk","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":624348},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=12"},"gitHead":"99fa422bea4a7da1293f0cdc7e9541e3656c7a82","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/ && npm run build:client","local":"ts-node --esm src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist ../../../dist/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"8.11.0","description":"[![npm](https://img.shields.io/npm/v/promptfoo)](https://npmjs.com/package/promptfoo) ![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/typpo/promptfoo/main.yml)","directories":{},"_nodeVersion":"16.16.0","dependencies":{"cors":"^2.8.5","open":"^9.1.0","async":"^3.2.4","chalk":"^4.1.2","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","lru-cache":"^9.1.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^3.3.1","cli-progress":"^3.12.0","csv-stringify":"^6.3.2"},"_hasShrinkwrap":false,"devDependencies":{"ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/cli-progress":"^3.11.0","jest-watch-typeahead":"^2.2.2"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.5.1_1684852089380_0.7428781737753498","host":"s3://npm-registry-packages"}},"0.6.0":{"name":"promptfoo","version":"0.6.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.6.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/main.js"},"dist":{"shasum":"1ffc55c50b06970dba5a77a5e555bca545a261bc","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.6.0.tgz","fileCount":112,"integrity":"sha512-sJbMId4SFfJcoYRx4oeC3uEs1ZoagjqBugfdIJLwVDbab10mnJKueE3YvYxlGiFKYwDBtiQP5deRZxovSZ4lSQ==","signatures":[{"sig":"MEUCIEecGQ2DR9KB88OoljQ11jYJdxsKKIM+S992bCx26NO9AiEA429MNhkZZ5iNcIH0Ru6XAA9136wsFGxOtIo8wgVuTzo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":662003},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=12"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"a842713b32b0b251c895c1f7cf9063d9b63fee93","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/ && npm run build:client","local":"ts-node --esm src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist ../../../dist/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"8.19.2","description":"[![npm](https://img.shields.io/npm/v/promptfoo)](https://npmjs.com/package/promptfoo) ![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/typpo/promptfoo/main.yml)","directories":{},"_nodeVersion":"16.18.1","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","opener":"^1.5.2","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","lru-cache":"^9.1.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","csv-stringify":"^6.3.2"},"_hasShrinkwrap":false,"devDependencies":{"ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","jest-watch-typeahead":"^2.2.2"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.6.0_1685244233556_0.6524736188021212","host":"s3://npm-registry-packages"}},"0.7.0":{"name":"promptfoo","version":"0.7.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.7.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/main.js"},"dist":{"shasum":"cbff29b451e0ff9c36ac19860ccccc4214c167d1","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.7.0.tgz","fileCount":117,"integrity":"sha512-Frghu9GGHaGqRkMpcXxpe9tT1S6hTJ4bonT3PXL0XpaqO24u9tI+SDmCo9FwB4AurWJQgc/tC3UK1yjqe/HRmg==","signatures":[{"sig":"MEQCIB+sByWB7J1YI4SszlgWyW+jt34lCAkKodvL/RJst1heAiBjEnz6kZu8IDsTf85EtdwNETJjsykjm6cff9wnNA9s5g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":672197},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=12"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"f259969051f039d1f85b56b4ff7aa81c95493916","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/ && npm run build:client","local":"ts-node --esm src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist ../../../dist/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"8.19.2","description":"Prompt engineering toolkit","directories":{},"_nodeVersion":"16.18.1","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","opener":"^1.5.2","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","cache-manager-fs-hash":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.7.0_1685329124643_0.7929504156977532","host":"s3://npm-registry-packages"}},"0.8.0":{"name":"promptfoo","version":"0.8.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.8.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/main.js"},"dist":{"shasum":"08ec98f6f587ea7b1116382609c90cc5ec3ab33c","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.8.0.tgz","fileCount":122,"integrity":"sha512-sx3JIEWtV59tQaI8/tZ3IGBeBCzJLETBW4y0dg8YcDtOTRCNo2ZTg+ZH6STdW4j7JUkyigejdU2kcz+SQQb5BQ==","signatures":[{"sig":"MEUCIQC+bahfw4br5VFyq7SiFBh/r0Q8QxV5PrIegq32L8hyrQIgNxLtrP1q7hJ801QTu3X0fvcJfo4PgaKMZ0kELpT/9Sw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":705902},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=12"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"57a12bdbf59758783b0a08f2639c1c18ef5dc276","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/ && npm run build:client","local":"ts-node --esm src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist ../../../dist/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"8.19.2","description":"Prompt engineering toolkit","directories":{},"_nodeVersion":"16.18.1","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","opener":"^1.5.2","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","cache-manager-fs-hash":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.8.0_1685452048515_0.984057723397213","host":"s3://npm-registry-packages"}},"0.8.1":{"name":"promptfoo","version":"0.8.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.8.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/main.js"},"dist":{"shasum":"8c951881fcade6babd9a3c00a321de5d39b9d142","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.8.1.tgz","fileCount":122,"integrity":"sha512-6JXgR430m7OF2Rt/MqOcBQVo4o3k1/CRNRkvsX3DxgE9VWIH8hWEMaelqpe4/4IINL0ESDWkfQ0bwRa9BqY8Yw==","signatures":[{"sig":"MEUCIQCcsLpmH5qaVrMji/JxH3x+mT9BNfNqaX4kJfgiu+g2CgIgX8raq2WATzcCAae6c5uNevRrkXjXtNnsRH4aQ08kpHo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":708435},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=12"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"85551e74a4f44d0eab911a37ffd5c0a6deb8ddec","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/ && npm run build:client","local":"ts-node --esm src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist ../../../dist/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"8.19.2","description":"Prompt engineering toolkit","directories":{},"_nodeVersion":"16.18.1","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","opener":"^1.5.2","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","cache-manager-fs-hash":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.8.1_1685458246079_0.23455260664828015","host":"s3://npm-registry-packages"}},"0.8.2":{"name":"promptfoo","version":"0.8.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.8.2","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/main.js"},"dist":{"shasum":"c08eebb157a6cdb330646685c6d438063d2e69be","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.8.2.tgz","fileCount":122,"integrity":"sha512-hfyB/FsSGoP4w9iIiCA+XSQQrVT2xl3il567QeSGxACdQj2plLlZUCiDVhavKSOM5RugoDqJ1AcpjR4tZMViYg==","signatures":[{"sig":"MEUCIC0uYlVMvX/1v5xzxhkZiBB33p3uUkcRfj1MfcjqrsszAiEAqnKsTx6h7uipE7QgO7p62ObXSGvrqc/gpxhQo/r0/xI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":708548},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=12"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"fef0ea4503e2f43dca565bde7ca20816df5cf319","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/ && npm run build:client","local":"ts-node --esm src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist ../../../dist/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"8.19.2","description":"Prompt engineering toolkit","directories":{},"_nodeVersion":"16.18.1","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","opener":"^1.5.2","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","cache-manager-fs-hash":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.8.2_1685463207756_0.690442288058174","host":"s3://npm-registry-packages"}},"0.8.3":{"name":"promptfoo","version":"0.8.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.8.3","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/main.js"},"dist":{"shasum":"76f2d66ef0a2bd3ad2052eb1efefb87dcc575901","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.8.3.tgz","fileCount":122,"integrity":"sha512-AtxSt5WnkrwIW+gcW1zBjKPk+pV22y325Fjlz9hFIhWzxCG8xbrRyGMcb8nMu5lpNfUk7ZlSEJo7ITIhRxZRtA==","signatures":[{"sig":"MEUCIHhrmmHX5syRquDwZ3mcFhtlHpIBRw6u9ywUPc2n3GjLAiEAvzAGqjLW3FWqUowdQrRmWaQ0Je5OSNxkVfMtECrOqH8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":708979},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=12"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"91faaf82f12b51f3e7027fa6658305102841a523","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/ && npm run build:client","local":"ts-node --esm src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist ../../../dist/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"8.19.2","description":"Prompt engineering toolkit","directories":{},"_nodeVersion":"16.18.1","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","opener":"^1.5.2","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","cache-manager-fs-hash":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.8.3_1685563603563_0.31818022734752316","host":"s3://npm-registry-packages"}},"0.9.0":{"name":"promptfoo","version":"0.9.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.9.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/main.js"},"dist":{"shasum":"7adf95fffc5a30346a3bf8c4b59f2e7dd3563798","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.9.0.tgz","fileCount":122,"integrity":"sha512-RV8utXfPncGLPCcIHS6tn6HmKexL/ZTryTXxNbFJS9Gxqfc7RUoBAWf3doEVOjcSxG5NSknZbBhgp3S0NnfTYQ==","signatures":[{"sig":"MEUCIDvEFOerXtp36VGYInwwCgRDtxPu8ToWrKYDgt/7mhBrAiEAzd+T0vr6jWemQMz94gsSQnnrY3F08hVRr9JYPX4z1Y4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":711602},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=12"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"d6fb66106e49d4a9098c82d7fe3d99db2f2d2985","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/ && npm run build:client","local":"ts-node --esm src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist ../../../dist/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"8.19.2","description":"Prompt engineering toolkit","directories":{},"_nodeVersion":"16.18.1","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","opener":"^1.5.2","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","cache-manager-fs-hash":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.9.0_1685932859193_0.09172198209229454","host":"s3://npm-registry-packages"}},"0.10.0":{"name":"promptfoo","version":"0.10.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.10.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/main.js"},"dist":{"shasum":"739708a31ead72e02f33ec4605020fb695b12611","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.10.0.tgz","fileCount":123,"integrity":"sha512-DV1hBt3mkjNjq4F3gxRpFnRF7f0e5W1djw1qS2BsznpZd7Nd9QARft0jiyiBDB7s/SM25WlMsC9jQrhavY/O6A==","signatures":[{"sig":"MEQCIAU732gfDZoHXQX6Mqjyi6UOMsOcB6FsSRUHx5WR2+7MAiACdzeFV4QeApeKou+nxoPs/9/Whmb7bIq4+eLXKokkFQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":936897},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=12"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"6cd3459c53ff147f6ad874710bb0720356168ddc","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/ && npm run build:client","local":"ts-node --esm src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist ../../../dist/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"9.6.7","description":"Prompt engineering toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","opener":"^1.5.2","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","cache-manager-fs-hash":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.10.0_1686334870500_0.5262823575874871","host":"s3://npm-registry-packages"}},"0.11.0":{"name":"promptfoo","version":"0.11.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.11.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/main.js"},"dist":{"shasum":"59441f0bdd39744eba9a6c54f5a5aef3f1104747","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.11.0.tgz","fileCount":123,"integrity":"sha512-xxm1AsOByc8eByv+KE8yACKg08aU8simIkvJlBiA3xIUMVZ2Pd3aYgHgRzin5jxBM1vMKzrqhurNO8el7aJkeA==","signatures":[{"sig":"MEUCIQDp/Nc44NaQiCTryQe3w6HVgowqbkjvY4bz/cYjNEddDQIgFq9/+9z1hHgXmsrAiUElY07sC21Qx9ntcRuruNIdfwo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1001865},"main":"dist/index.js","type":"commonjs","types":"dist/index.d.ts","engines":{"node":">=12"},"exports":{".":{"import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"15aa3084a0848273c1cd45be59350dd2a5632758","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/ && npm run build:client","local":"ts-node --esm src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist ../../../dist/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"9.6.7","description":"Prompt engineering toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.11.0_1686442907957_0.14657337359883038","host":"s3://npm-registry-packages"}},"0.12.0":{"name":"promptfoo","version":"0.12.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.12.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"9ee8faa1b2dbd720c88c1118b9ba5de82783da3f","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.12.0.tgz","fileCount":137,"integrity":"sha512-AjistLkVDSPDjdQL2WA8h/zBec0u2chKTLdow+GXq13vKjuiZdy5JhlMxCg6JKFLdCZr5ma3PWyPD1ZoIXNBiQ==","signatures":[{"sig":"MEYCIQDfqVHwhnieeIjcGGk5cyQiPc4YDyZmN0qc66LstezsmQIhAJHViurmerahenauQkChjdwP3nbW5YJZQmhIseaxcI/3","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1092784},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=12"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"7a5d2dbc6be773b955ff80e6567c8375440d7c9c","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/ && npm run build:client && chmod +x dist/src/main.js","local":"ts-node --esm src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist/ ../../../dist/src/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"9.6.7","description":"Prompt engineering toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.1","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.12.0_1686547874249_0.8666461029229378","host":"s3://npm-registry-packages"}},"0.13.0":{"name":"promptfoo","version":"0.13.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.13.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"5aae10869caf3fac9a599abf88497311b723392f","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.13.0.tgz","fileCount":141,"integrity":"sha512-5m5NbW0lwQJ+WcypufMoS9UiwpOO3WnU5TAv5aj6GNvDlp873YyRVam5hvJy/R6uf1yvetiR7pAdJArOakqt5Q==","signatures":[{"sig":"MEYCIQC4sm1NlkQc28qvIJm3xvrTfV9qYZLhnYc6j7fOdDkNhgIhAKaXib5InviMUB1uijnowYqlzXAb6xTSZNzyuT91GFy8","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":882328},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=12"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"19f5c0dea69a361f851a64dd7aa029f26497d987","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:client && chmod +x dist/src/main.js","local":"ts-node --esm src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist/ ../../../dist/src/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"8.19.2","description":"Prompt engineering toolkit","directories":{},"_nodeVersion":"16.18.1","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.1","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.13.0_1686929623122_0.12631615956013653","host":"s3://npm-registry-packages"}},"0.13.1":{"name":"promptfoo","version":"0.13.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.13.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"84033b8325f4f3806843d584dbe080d9bc34c528","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.13.1.tgz","fileCount":141,"integrity":"sha512-iB2tSEB8HcClIzhH/Wv/8Zg+dkehJ1jIUzyHXYFunaAKtcIfewg89eUuqiHsa+kBDLqPN5yU1GS6ET41Y2wJ9Q==","signatures":[{"sig":"MEQCIAPoL9kPUoAGholTs7QBwYWdlTYjJ1pcK06jWysiaf/9AiBrdPsj1YwTFW/d+VlVISfEq+EmW3yuzh0Om4F7phZ5tA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":882121},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=12"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"fbf1d1f2785f329762d8338ea57f731732cfa3d7","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:client && chmod +x dist/src/main.js","local":"ts-node --esm src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist/ ../../../dist/src/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"8.19.2","description":"Prompt engineering toolkit","directories":{},"_nodeVersion":"16.18.1","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.1","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.13.1_1686978133629_0.20170545548475505","host":"s3://npm-registry-packages"}},"0.14.0":{"name":"promptfoo","version":"0.14.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.14.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"48203d5db2068924240f59ef3b43abbd77d4496e","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.14.0.tgz","fileCount":147,"integrity":"sha512-aLjcvVMYY/mTndkP4/iAdFWNIP62s+lzKlQZjLTI8Lbzxzbo5RTr9D+dqRPYVBAcMAHQuwyn507OV+B6HHYkeg==","signatures":[{"sig":"MEYCIQCsHZ6wn36+AsiSC61g/liITXof1IJahh4MLLpakpQrdAIhAO+cp4YWN3igFDQ9IQmc2kc7C9KKiGUfR3ueM80AgPQs","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1114342},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=12"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"dcea3ff9576c82d1debbd517dd212722873adc38","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:client && chmod +x dist/src/main.js","local":"ts-node --esm src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist/ ../../../dist/src/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"9.6.7","description":"Prompt engineering toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.1","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.14.0_1687130466340_0.3384292829668589","host":"s3://npm-registry-packages"}},"0.14.1":{"name":"promptfoo","version":"0.14.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.14.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"4f087464d218a49cf554f596caa4ba5f5e774f08","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.14.1.tgz","fileCount":147,"integrity":"sha512-qXPEIoamR7j64XALy/OUlT6JTv7qoWNMTcr1jdcHCiB8bZXMaErS7SQxH9KR1LLmGwLx7/2R0IllVVCugmaoAA==","signatures":[{"sig":"MEUCIAt/uTG8PZImGpHBneFZauXmdx5Tk7wE/JCafykbWaenAiEA8aBZ2oZF1SF2nhwkaRTXIh2fsy762zMqCdNy6x/JUYA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1114744},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=12"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"689346acb7a63466d77796d2ea361480466a27a6","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:client && chmod +x dist/src/main.js","local":"ts-node --esm src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist/ ../../../dist/src/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"9.6.7","description":"Prompt engineering toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.1","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.14.1_1687133820244_0.11260869173014654","host":"s3://npm-registry-packages"}},"0.14.2":{"name":"promptfoo","version":"0.14.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.14.2","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"59b12f2c95bce50b2cb21fc26faf24098de9379f","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.14.2.tgz","fileCount":147,"integrity":"sha512-R2yggJEoC/Z5KO6FgH6Faz31r1bbsC2DIqd1EA0VE34QI4sQ/fkQq2O8G7FHuAGfbC99NClMPjEm5fSK4AgGng==","signatures":[{"sig":"MEQCIFuXu+mK/aSREMHgULccAZBx99j8O7jHlVPgmpRh198kAiAXsMUQUkcvvED58I/CUDundWvFgz6eecyLRzp9QjtnAw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1115080},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=12"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"bb413f94f372a66da228aeaefc96573e192710ac","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:client && chmod +x dist/src/main.js","local":"ts-node --esm src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist/ ../../../dist/src/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"9.6.7","description":"Prompt engineering toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.1","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.14.2_1687623824758_0.26618893367829854","host":"s3://npm-registry-packages"}},"0.15.0":{"name":"promptfoo","version":"0.15.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.15.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"d498ba643943e3ecc03d261a3117a1f8c6ae5a1e","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.15.0.tgz","fileCount":146,"integrity":"sha512-bgbbE3oDP8C4dIZx4Kn23epqLaqCTOvvgU5n7lzqGWUEsYEPo/ygDMmG53sZbsv8uXxG6yju5T0LtREBabiFHA==","signatures":[{"sig":"MEYCIQC8MDBvUKkHTDrq/wncxFB6KuOdw8KOJVyYDpxAAs3N/wIhAOEktdUpcMfo0IbG1hkdeqV7BnM0Yb2/4VtHmIcl1ltr","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":904857},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=12"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"a37b453a9314705ed18e921fb55395933206bd66","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:client && chmod +x dist/src/main.js","local":"ts-node --esm src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist/ ../../../dist/src/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"8.19.2","description":"Prompt engineering toolkit","directories":{},"_nodeVersion":"16.18.1","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.15.0_1687745105969_0.6572370386594804","host":"s3://npm-registry-packages"}},"0.16.0":{"name":"promptfoo","version":"0.16.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.16.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"b0d2731fbba0770a06402f31ab07ff42dfe317f3","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.16.0.tgz","fileCount":147,"integrity":"sha512-bntjIvAbbimuA7gPfUqNW0kI0RECv6pxL/KaAfgZ8a40hrHb4T/RYY785bTAUYB8KY6xyhpxNFoy97o32SYLyA==","signatures":[{"sig":"MEUCIQCEl8AScz5TXv+wTX8jh2auQkd76JbJJz6/zCjAln97sgIgKFWYDoBTNNQt+fJsk38wLW978MJ5/Jnm2p7jwl6a8aw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1128186},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=12"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"92edf872224041a251e6efb284b7b19d8a8fa238","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:client && chmod +x dist/src/main.js","local":"ts-node --esm src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist/ ../../../dist/src/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"9.6.7","description":"Prompt engineering toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.16.0_1687966947310_0.4525716586259554","host":"s3://npm-registry-packages"}},"0.17.0":{"name":"promptfoo","version":"0.17.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.17.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"112250a11e7195b4e409e7f51750f9f1feccbd87","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.17.0.tgz","fileCount":153,"integrity":"sha512-XtdOR1twNToDQpa5Mrgs846KjMpReHTChD8kuMqbstnyoJAjr8CCiwvZ7V4jY1Um1ueqqWEcuBjtjipMnRMFDg==","signatures":[{"sig":"MEQCIBaMdg3oLVFetOAT1CjfIw0PWUgW4wfMdmenUDQ7kVzwAiBZzHjbHgyzC1gDpkC0WBiGJP1vBoI4b9H2uvcMzmN/Og==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1139540},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=12"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"caefa8f2195db29d8eabd592f6656bc46cefad44","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:client && chmod +x dist/src/main.js","local":"ts-node --esm src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist/ ../../../dist/src/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.17.0_1688620114869_0.7611153075036414","host":"s3://npm-registry-packages"}},"0.17.1":{"name":"promptfoo","version":"0.17.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.17.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"ab2548d140d5e86dbd0e5c0328681ca24465b317","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.17.1.tgz","fileCount":153,"integrity":"sha512-+US30K0EKsIZdlrblc+wWXkvuRlawKHFHt8oAIQX2ddPt+k5V5NHUVCY1PiXGnLGKrx92swUEm2A4hdDopYfeQ==","signatures":[{"sig":"MEUCIQDAupKP9lgEWWjyE8dV5EGC8XbrH8yVEoIJst9VsWAUegIgBIO08AbmdhUC6V0DAJ0TVKAV2gxR1HxVBJtWKVZJKo4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1139537},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=12"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"3e22724621479b445fce403272b76344b6a6c0d4","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:client && chmod +x dist/src/main.js","local":"ts-node --esm src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist/ ../../../dist/src/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.17.1_1688689827452_0.4269831022738213","host":"s3://npm-registry-packages"}},"0.17.2":{"name":"promptfoo","version":"0.17.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.17.2","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"3bce1df3ba9406f833cfaeb9b721aa73e7417693","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.17.2.tgz","fileCount":153,"integrity":"sha512-NsenaZXEuH5JqMkjZX00u6A6vrT4QJIr3vVrO8KiR61kiXBdRaM/FkzvYlKKof06kMawHVg1LVi983J3WAoOJw==","signatures":[{"sig":"MEYCIQDi61vDiR+t2ufZiuQvbgdBp6SiHaKtUr3ROM8XhtFRCgIhAL6DHLeCQoLf0bf5pfyJ5CqhUPyQIXK8+XSPil0m4dgI","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1141498},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=12"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"6e443be499fc0ffad6789e115352add05fcd82dc","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:client && chmod +x dist/src/main.js","local":"ts-node --esm src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist/ ../../../dist/src/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.17.2_1688747176606_0.6107516971805966","host":"s3://npm-registry-packages"}},"0.17.3":{"name":"promptfoo","version":"0.17.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.17.3","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"0412160d200a1b6b4f2c414b77eb784af426a9d0","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.17.3.tgz","fileCount":157,"integrity":"sha512-y002gJrH0ZCqRAOfxtxz2Bs2v0DXGGQVzRRF89FPAXIWttctrw2cJHk6kQSyfx/y9wQZy12q64nXW+6YyU8pGw==","signatures":[{"sig":"MEUCIEjdf3TAqwC6XcCYwMdErcXKmwrDxUMDV1Gvi+9+lR5iAiEAkkhOVL0sYdGNs9h9ipHci64RMhlOP9d8hUnIZmhfAzg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":933384},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=12"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"d4ddf9df6c23548c8464fe3e262803b311a9ce96","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:client && chmod +x dist/src/main.js","local":"ts-node --esm src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist/ ../../../dist/src/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"8.19.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.18.1","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.17.3_1688964043891_0.7315168197846484","host":"s3://npm-registry-packages"}},"0.17.4":{"name":"promptfoo","version":"0.17.4","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.17.4","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"72da6cc19704fc0be7903d70c767640e5e318b6d","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.17.4.tgz","fileCount":158,"integrity":"sha512-mBHmcvO+EpXuzJlz/xLk6xIWbdiLv9f7PhNHsHtTRS7vhb32QFo1s4QUO7H9mfZr2PesZzo9TQLZ/rEFqS+rmQ==","signatures":[{"sig":"MEYCIQCV+p8OuTSVXMEdmljnmwim0KvKf6tG/jby7jbsvo1fZwIhAPBICtPVYWYrRS20aOHV/G6MzFQLKjHI0jjI05+ZOlPh","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1159155},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=12"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"e921803b191c47ed917be16ba54dd1e44019106c","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:client && chmod +x dist/src/main.js","local":"ts-node --esm src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist/ ../../../dist/src/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.17.4_1689210818617_0.8948436914711837","host":"s3://npm-registry-packages"}},"0.17.5":{"name":"promptfoo","version":"0.17.5","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.17.5","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"96a7253bd48625c40eaf9a47d047140c8665ebf6","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.17.5.tgz","fileCount":163,"integrity":"sha512-CBc8K/hlJfVOonfCkpkNHkneUUb5M0tOOXndUf5IdHl4Fh/EeuQeLJ0mlS1dyl3nfNZWLEQNd/u0UGZeVu7onw==","signatures":[{"sig":"MEUCIQCAydkZfMpLx3RFUAwJZ42U8eIGLQjs/hnLvtZSef9U9AIgOQeILNytYqtZ5wYKObCew2YTSv9sNA5Y5GIoBmAMzLo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1195808},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=12"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"f3de0e48e265f61f54dce44916c87fd7a2d3ff2a","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:client && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist/ ../../../dist/src/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.17.5_1689364964287_0.6980104387998793","host":"s3://npm-registry-packages"}},"0.17.6":{"name":"promptfoo","version":"0.17.6","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.17.6","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"70d697ade9ebedebaf4eb6d19788f2f21df4b693","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.17.6.tgz","fileCount":168,"integrity":"sha512-jdGx3GNN/joJdGk2eBgHhUuQcS0CpHLKvXJmnlAPlyxeCitCgGgT/gV2wTd5GhwLvSxS9+KyMVw80y651GMMvQ==","signatures":[{"sig":"MEUCIH1cXHI0lHV3evAb5sX6c2fZm69BXXggHHR+rvbDfDcLAiEA9AF99rWctkE2DUxtlYc3EV26RQadU7YRAz4NVLbUq2s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1207542},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=12"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"92d1d51a6b9c5fa1cf5210caa8cedff14e717464","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:client && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist/ ../../../dist/src/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.17.6_1689832268134_0.5607485634881559","host":"s3://npm-registry-packages"}},"0.17.7":{"name":"promptfoo","version":"0.17.7","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.17.7","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"a54255037e51be6c57bfd916156c2b62b93685a6","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.17.7.tgz","fileCount":168,"integrity":"sha512-rzKBVV4vhTPYVtE8yFmYaT3/LGEJY/xhfZ5BIUPGu1pPy4ceOQ+PHJhX9kNYBvcOU/mqMxyOHxPuP0zjHv4drg==","signatures":[{"sig":"MEQCIBn9r3w9SOoImhgYUSCfDgcYzO12+w7ooNTvw2HF/3ISAiAX9meKEsMm+hYyJMzfUTU5N0mjSmBwlB7apkewTYVGYQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1214409},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"bc0663bee8ee539384e1a190e8ce0b63e3f4c2af","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:client && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist/ ../../../dist/src/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.17.7_1689875168891_0.8929890222777932","host":"s3://npm-registry-packages"}},"0.17.8":{"name":"promptfoo","version":"0.17.8","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.17.8","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"474dfc6c08569bd5beebd82b1100dd90d8f4c378","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.17.8.tgz","fileCount":167,"integrity":"sha512-PWBxqeB8ICIKYH2ilwru47Cpz40t4rmsMu8Qos7K0Svy9pPVhpRJr0RfVKXVdtGe12SgmTizUR850C9xq2elvA==","signatures":[{"sig":"MEQCIGIjUU9OfrsC2V0QcPSwj2KDUrlt0vT9QsXpFCRjYzGFAiAfUk5ZfNr2rzuhENinmssexuhCd/UyVawhU6712Pt3ig==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1015757},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"4eaddee4823d4abb6c90b28c0a8f138bcdfa988e","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:client && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist/ ../../../dist/src/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"8.19.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.18.1","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.17.8_1689997622451_0.6698651778465798","host":"s3://npm-registry-packages"}},"0.17.9":{"name":"promptfoo","version":"0.17.9","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.17.9","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"42c589210fc769827607761458e491462435a5b0","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.17.9.tgz","fileCount":168,"integrity":"sha512-lwHTleQYvtZv++H02XmxIg/iCCKcUHIe5lQ2wqsG/2g8CKFzVf/yBxDNZ7G2VW1wbOq1Xc2Mjxb/xqeQ/1qmEA==","signatures":[{"sig":"MEQCIDicBQKRsmxeTz8uAG6lMqL6ZDI8YqITmplRnRoiJ+HlAiBSMHy3kFnaaCv22UTc/pQ3wfRgy8c25zSWcG5X2vTD+w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1244461},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"a40a24237cdbfe54aa5038f53d92a1db000c4215","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:client && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist/ ../../../dist/src/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.17.9_1690174271780_0.5650210276037742","host":"s3://npm-registry-packages"}},"0.18.0":{"name":"promptfoo","version":"0.18.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.18.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"6e18334cf9a575cbc28994b7a16d25d22c4d29c3","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.18.0.tgz","fileCount":168,"integrity":"sha512-/BK7zfshIXbQChjjaFOdKG3fgn1fn5uK6UUftMHZKOInB/iyIVgVpCI5mP8T3m1wEwmIzvnF4DoazhOsnJqcrw==","signatures":[{"sig":"MEUCIQDL10fxM/OJ1zbT/LXEGRILay34YgZj/tEmseM/Bd6RlQIgcgsWQiS1td7EKKqPK+nEBzeLLW0K0p36VqjNaGibzFY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1257377},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"8c044b59f51bdd36d2ffeea49315f24a573cd6fe","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:client && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist/ ../../../dist/src/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.18.0_1690523903682_0.5743814783117767","host":"s3://npm-registry-packages"}},"0.18.1":{"name":"promptfoo","version":"0.18.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.18.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"aada3b69518fce7a1542eb1a021f83aba5b12db6","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.18.1.tgz","fileCount":172,"integrity":"sha512-m6vBwZbknzjvABnGnAbjGiAMbT6zYcttWQ3/9dbra2wRK7EIbnJXuyRPNpQGhE5YY2oTShA2BaWmqTx99Yv2gA==","signatures":[{"sig":"MEQCIGCdhy35mVs2KC1HOjntwz0iMQdHYKrNDZF8qJUX4d8aAiBLGK48+EKX6bFidYEquDxe9eNObmjkLlvgKQZYpV7rjw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1046565},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"6b5457a2cebbfe6d5fe6243703e715ad2afff8d7","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:client && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist/ ../../../dist/src/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"8.19.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.18.1","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.18.1_1691341314584_0.9297615057203705","host":"s3://npm-registry-packages"}},"0.18.2":{"name":"promptfoo","version":"0.18.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.18.2","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"290198a21a2a50e44472ab6ed073dc9de44165a9","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.18.2.tgz","fileCount":173,"integrity":"sha512-9JNId+5dWOCz+qVUU+YRVbzF0rlu2UsX6LW/uamnanPBaTO1pN0paSCiDUV5i2l03M19dKKV9/B7Niiw+TkpBQ==","signatures":[{"sig":"MEYCIQCncj+XTjCB3XMpnAgI8fFlQDKnfIkgcCMfziootylVpAIhAJjZEkhDnHF09OU4HMAcJoKuM7G1IR8G1pkWQW4quPj6","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1282421},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"73c3f6e24e1b966507d05423ea0641d88680e92c","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:client && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist/ ../../../dist/src/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.18.2_1691453566544_0.017210717700996137","host":"s3://npm-registry-packages"}},"0.18.3":{"name":"promptfoo","version":"0.18.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.18.3","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"fd75273e8dc42f65c6a7c091cb7593ecfce62cc2","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.18.3.tgz","fileCount":178,"integrity":"sha512-MyWGwF48VYRGTbz1lIa+lEgKEpSZbHZZimHK+7tLgGIA/iOgRSq23Ox6Q7VNZ2WiLwABq9+/mQtUR5nwnim3lQ==","signatures":[{"sig":"MEYCIQDlNAHzr/fYqLlclhJf0bmShfM1bQ9nCWfvplR095R45wIhAOf+CdI33PeBuTJqdSrldEHzfn7hwylTfSsw5YmsyUJK","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1290315},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"55207041d9c9af5e602b7a6f020b21074e5228b7","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:client && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist/ ../../../dist/src/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.18.3_1691537865901_0.6981693534246021","host":"s3://npm-registry-packages"}},"0.18.4":{"name":"promptfoo","version":"0.18.4","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.18.4","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"7530a8e6d72fd26c936ad54e8d0ee257d833509a","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.18.4.tgz","fileCount":178,"integrity":"sha512-JAUbyXFqLETLY7tEj7L6jPNXNr9ZyVIWNFneBZlNfA/L8Re4MrvYse4XHvFG7wKh6jN36+QHRHir9ogS6JkPqw==","signatures":[{"sig":"MEQCIBv6W0xymIEoNMRzmweMh+IOCMR4h6HnAneVbYyBS6KsAiAy9b1mASI8nuoOpAD2+p5etyRxAxCDTteMNlfmH2NULA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1290500},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"534a96e4fe98e132cb8e7902c84ef9fe305aaba6","scripts":{"test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:client && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:client && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:client":"cd src/web/client && npm run build && cp -r dist/ ../../../dist/src/web/client","install:client":"cd src/web/client && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.18.4_1691736444795_0.7833344626987984","host":"s3://npm-registry-packages"}},"0.19.0":{"name":"promptfoo","version":"0.19.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.19.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"2f2b2f92531bf52c1192f7517f57b2056a01499e","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.19.0.tgz","fileCount":254,"integrity":"sha512-PzuijXu4qxsMvwcDid+aE+702oo1UVjZmg1MDKTmg5Y1qPgzreM9h8UMtC8vg31krE8sXrAyvQWSL3prFHK1xw==","signatures":[{"sig":"MEYCIQDablJ41J31qYpbtBRVGQlT89npQhRiXXXI/Jiqs148ZgIhAKoKSiFvgJvkoAEzi9SoL3kv/SVkXoBzAE9poBk/TfIm","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2254764},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"bd67b672192bd6bd93bf80903c2a837e2911f1b2","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && cp -r out/ ../../../dist/src/web/nextui","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.19.0_1692027726575_0.19356607856744978","host":"s3://npm-registry-packages"}},"0.19.1":{"name":"promptfoo","version":"0.19.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.19.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"e20661cd8d73fe0179decb7a1b15c256c56dd992","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.19.1.tgz","fileCount":254,"integrity":"sha512-axL31mvVALcq44c/1PH4Z8cY4BymH5mk4i9QgdKeYPcRGa+6wmNhdRdrtOQ096CHeX/3+rGZgLB9+kkuUt7jOw==","signatures":[{"sig":"MEUCIQDx8szuAvI3ELouznYUDLa/p8SOKDDhlFKnmf1+QKR5igIgRtkpEMjMza3R5oODapc4r4lk5TqWat+srCMFnZLe3uw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2257298},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"2b12feff8d5acda1814ea7623a265e03c2aab9b4","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && cp -r out/ ../../../dist/src/web/nextui","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.19.1_1692035431515_0.8864627605078548","host":"s3://npm-registry-packages"}},"0.19.2":{"name":"promptfoo","version":"0.19.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.19.2","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"5718bef4e6b44466c9efd7989897ff904629eb1b","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.19.2.tgz","fileCount":254,"integrity":"sha512-OxRsdT1tAgPcBd1NddquKUis1/SYByjjnEaFCG4grhr+Zq2exwPDs21y7mbro1bJgkJFcPRRY1A1RjJo1pLOug==","signatures":[{"sig":"MEYCIQDKTGc05ZadUoR2JLMZSW6mIzIImVNz2KMRrYjGeGujYgIhAN3EsTGZ3kkHWOvITMHZZvJ3m9G1surJtQLtnWM9Ma1B","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2260318},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"b6283277394ef1526ccf21d24313ae312b06aea3","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && cp -r out/ ../../../dist/src/web/nextui","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.19.2_1692113820854_0.9753839693709676","host":"s3://npm-registry-packages"}},"0.19.3":{"name":"promptfoo","version":"0.19.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.19.3","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"002e36c9ec2b68ba1a4be04b3ee5f08248511f5f","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.19.3.tgz","fileCount":259,"integrity":"sha512-UC4UMHCZS38/ZtmWnY57eUSeTUND5MQdFr8205fEOTef78tUFF2NJqx0F0L2lJviO0rSHfswqkSLpHVUU/5jng==","signatures":[{"sig":"MEYCIQCRjO0XhFNOR+JUmqpBvraNxNfiyaImC8AMRauQWHQf9AIhAM4t6lTht3FsURjTHc5QoCSh3DIDhCMrZpqVEihG24mv","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2262632},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"e8dd908e8ba711941669de881d5898fab9903b2c","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && cp -r out/ ../../../dist/src/web/nextui","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.19.3_1692249566204_0.0836532291942893","host":"s3://npm-registry-packages"}},"0.20.0":{"name":"promptfoo","version":"0.20.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.20.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"563723aee862dd50e884bc6185be1635b7f1286e","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.20.0.tgz","fileCount":261,"integrity":"sha512-HEeY4Q4mgZWDB9PeJH7elJmUdcWJLxszfpzzBRP1ukglJWe0a1n75uht3gs4mgY80mPX6rC+mUD4iVg/z13PTA==","signatures":[{"sig":"MEQCIA1QNf3hfsOkZiQnntstCOMl9DQDuCyR8TK+F0+DjPvkAiAgZ/UkYewBBLSTmGPfEMM2oT2vAetf1T6NwaxnaNLUlQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2469773},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"5f8e3556a96c4e950c6c5e6da1e71923c677128b","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && cp -r out/ ../../../dist/src/web/nextui","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.20.0_1692377129396_0.46515648749535643","host":"s3://npm-registry-packages"}},"0.20.1":{"name":"promptfoo","version":"0.20.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.20.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"72580bcff726e3bf0f6d4b7808124b1fcaadc0cd","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.20.1.tgz","fileCount":261,"integrity":"sha512-tHGQQP/iYGoJkbuTAZ8wRzO0ee5QIgpuZ3XcZB56BxZSQWM6ZBC5z1xjn+lwbbGGATrTckhA1xxgkP5AkXl3ug==","signatures":[{"sig":"MEUCIQCBQN8Bz9e1sPxttCiHaNygnODGELTuOomiX040cw8stQIgZGDObILNNkaby0etWRlOh0xZM7Bj3Ku4WRxX3B3yFQQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2470249},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"50faa1f362c936ce904bf245c1e0429bae138351","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && cp -r out/ ../../../dist/src/web/nextui","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.20.1_1692393172475_0.8231361567116333","host":"s3://npm-registry-packages"}},"0.21.0":{"name":"promptfoo","version":"0.21.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.21.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"b1c19b1c1f1df512069c4958dab1ec40c3489e83","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.21.0.tgz","fileCount":188,"integrity":"sha512-TIIp+8E1Qz4/t+LNHrRKAsusxy+NyIUHz5G/yM9FmH3ZcJx9814XQt00GiFoML1puRtAo7pVgPI08AJx3Zz1GQ==","signatures":[{"sig":"MEQCIGDpaPaRlzNeYfsu+cPRMJ6yoZe5XCTfsMDD9SWgz2X6AiAMl7dS+ES4Fzc15hfHKW88GOZM8aaZeQeRqFXtO/fRww==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1923868},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"f6661a8d0f6464b3524d4dc8d8b7f0b733fdc53d","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.21.0_1693258960750_0.2367266343359169","host":"s3://npm-registry-packages"}},"0.21.1":{"name":"promptfoo","version":"0.21.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.21.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"3d08c9f33d89ddf689bf7416fa14588380d603f9","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.21.1.tgz","fileCount":192,"integrity":"sha512-IWChRK1vTzLj2v6yy6pB/p2E835ff1/BSY1wtcKhTifttJbZzPStGBQLVHB82TOy4EoLhRB2RDhUgr525lg05w==","signatures":[{"sig":"MEUCIGUfwljIGe9Kp0GXFIDfpqhpr6vaX0mG7qcCis5C0IAOAiEA2jcYx4p7Q3/6OXiF+s/DSrPnXLWWBnyFT1PIa8LERuk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1952387},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"b3c56f017257bdc47832e4bb6f1454e8875b6183","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.21.1_1693410922146_0.7578860790739121","host":"s3://npm-registry-packages"}},"0.21.2":{"name":"promptfoo","version":"0.21.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.21.2","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"81c7d15b79dcaaffe5eb58b0c26c67aba08d8dc5","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.21.2.tgz","fileCount":192,"integrity":"sha512-BQdViQVgHGMM17ecHj0xmnKLxvnNF9NnTS5CnH+yHKrxP5XqwrBV/A0sgaZ6qLrptJFdJ5fbBI4/EaZ3djlUYQ==","signatures":[{"sig":"MEUCIEJcNWDUzEp4It1uMJChZAJ+h7+FxBoLU8jJBt4ZE/ZYAiEA7F+PhqlYA889IhyG/Qv0qNY6oTh0sR3/aF0mqxngZOo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1952887},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"62dd2824f55983c260a469df286cc75756389c63","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.21.2_1693457429043_0.41984042071183847","host":"s3://npm-registry-packages"}},"0.21.3":{"name":"promptfoo","version":"0.21.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.21.3","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"95e2c2c72dc5ca3c04424e30e308a4bcdd70096d","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.21.3.tgz","fileCount":192,"integrity":"sha512-lOuZTzfWSg8w7cHNa10pe7Az0WvsIgFgPPlKS92U2qpF8wdYqmgJnhpsvlxd1osmTOYhWxeOvcHecl5I+mx5xA==","signatures":[{"sig":"MEUCIQCp+oVzrlX4S+IRfLq4ZVrRjvtxbR3qwbGPE8o9A4klEQIgQxiM71QrjndAvwahKLrySslL1gudExvYdKrgDtBSbZE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1955292},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"37eb9eac620e1dd9d62df80e7d73c6cff317f504","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.21.3_1693545976985_0.9644428663638656","host":"s3://npm-registry-packages"}},"0.21.4":{"name":"promptfoo","version":"0.21.4","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.21.4","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"a05f473170436ddb5a8b99e0e77fca44684d196a","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.21.4.tgz","fileCount":192,"integrity":"sha512-EHN2DYmUnt1Y9okciyZTFLunYMRLy2lsLJiFXPHrVSdWQPYx22/JhJmIHGbfVdVLeGh7lXGEsf7/uGa4pUsF1w==","signatures":[{"sig":"MEUCIQDt+GHQSdP4OlCg2KJZlNdBL3zjkHI9yKS69KVbnTRLAQIgSWOr6S2ZIwtUPdQ5ut3yQ86yAEzW7VPFgC40sBtU4Yg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1956786},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"2478e476ab5f09bee6e32c9c9b26ba5158323ce0","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.21.4_1693587479383_0.8212788881495707","host":"s3://npm-registry-packages"}},"0.22.0":{"name":"promptfoo","version":"0.22.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.22.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"a37db6e57ef8528362cda1aa15c2fdd39ee233d1","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.22.0.tgz","fileCount":192,"integrity":"sha512-vayvMtz3OY13FD9yBJG5vAMgAzQjFAISD6gjqHHmF2nNW1KnyOPDEic8DuIUDib65MwQk4N4+JkaD5pkQGoQuw==","signatures":[{"sig":"MEQCIAGLMls5uJ9A1fOrWUN3yyhq0j5PL0RHtRYTcBQHEPCCAiAuYWMzheKoMHpKJk0HrJYAvrTuriy2YXb8OfzhofUeiw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1978307},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"2967cf5ee4b995faa0168fc4b4f8d184b22b7818","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.22.0_1693845175729_0.8852316354315655","host":"s3://npm-registry-packages"}},"0.23.0":{"name":"promptfoo","version":"0.23.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.23.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"c6db3fda54f28aeea3334d5074d42d82516dbd2c","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.23.0.tgz","fileCount":200,"integrity":"sha512-087wfBam6xc37izNjL/VVgFcME/7exfUc8njMdGq6erJ3NpaZ2ad/Gr8E9nnwEM1B6ns6toEdLL6pD5gAtZcZw==","signatures":[{"sig":"MEUCIQDENDam8byMc97cypS4wGkrfYgfK3AhwpqwG5l2GXfpNgIgDx8YzVQA+dIag3UP3zNSQZQoVxiAOjyg2g7T96InOaI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2005886},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"9eb78c93a88744135e859a07fe81f0f352986bf1","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"8.19.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.18.1","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.23.0_1694725239648_0.39486251404078954","host":"s3://npm-registry-packages"}},"0.23.1":{"name":"promptfoo","version":"0.23.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.23.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"6bf412ee1554e8e571cb194de7c50bf0f8e0c789","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.23.1.tgz","fileCount":200,"integrity":"sha512-zk+AsXUmL4xRxDMOx1+HZNkYfySPGZDpQJD9ereDVCYcBCKGx4ptaNTmx3u05SBYIN8DoV3TQmS96utyBINQqw==","signatures":[{"sig":"MEYCIQDi3Z7YPMtnyeWZVgiOi8D8WKTkMgZ2gZfINDz6/rJZGAIhAMl3zIvEPOQlCNMzfKecPlU0ecdG+2lGDXyJGHKstGUr","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2005862},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"65100d65cd270d461a3fe618cbd8f9a24ac6cae2","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"8.19.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.18.1","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.23.1_1694727526748_0.12808501143703332","host":"s3://npm-registry-packages"}},"0.24.0":{"name":"promptfoo","version":"0.24.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.24.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"1324dbd7468a251502bc5465f5d81ceac99bb098","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.24.0.tgz","fileCount":208,"integrity":"sha512-lSWYQoTON5YCJIK6MVgOI4zrJmCuJOTrKh848ZhjgTBQ1DIBLDHrCZYxYOB1qhpEgxhhS2hzRsaEq9UK1l7u2Q==","signatures":[{"sig":"MEYCIQCdnC+73s29fKTGfpuWYpsjpLfy30Fxko/MwxB1QbuWQgIhAIFoCxzE2CEv1o4mvqyRx5OsLDEJCS2GPdXFPuAsvO/m","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2015541},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"84d937c9d0713559cf18d60851a1d3dc341ad7c5","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"8.19.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.18.1","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.24.0_1695078186181_0.1262750433388311","host":"s3://npm-registry-packages"}},"0.24.1":{"name":"promptfoo","version":"0.24.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.24.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"35d2b5be2303a48647c072c0a0410fcd43b1c53c","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.24.1.tgz","fileCount":208,"integrity":"sha512-zsv9ZsWvjJ4dgNHls4EWxuTCrhtrEN5vPeNyFRhESQHsxlTXxzK5LNHH0nAiyk6cgF15qNqrlr/rQDRHK9NWtw==","signatures":[{"sig":"MEYCIQC6ZMUdPY9iTzcl1hM2yJZpyZOMz77PFNdZ+bdUrOMpMgIhAIBsu/+aemFK616G1+VnArOnWE5WoiGkig20uD5F+EVB","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2017380},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"65c35cf65743bc2b21097b0ca30db6f7151abcc1","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"_npmVersion":"8.19.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.18.1","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.24.1_1695266936308_0.8990907831717305","host":"s3://npm-registry-packages"}},"0.24.2":{"name":"promptfoo","version":"0.24.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.24.2","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"0d49b28f30c1d8411401bde45133ca5358a198c2","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.24.2.tgz","fileCount":208,"integrity":"sha512-kLxuZXmPDNan76jq7wJ15cyEIO69pHeTbBTYlFlMxGVmYtw/hkIOXQlMLP3eE/BBkQjHJ+lLIwYnFP1PlruF/w==","signatures":[{"sig":"MEUCIQD+mouNuk+wvUVCDblunp6yHmHuFnbEInrnqg/L5aoZUgIge4CHElTXkGAu6mkVxTS1MT7fxv9pjJbxPrOP+daLW7o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2026325},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"304eaee53a4d137b6e38ea2f187329a60bbe1c3c","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.24.2_1695444512397_0.5711839040659965","host":"s3://npm-registry-packages"}},"0.24.3":{"name":"promptfoo","version":"0.24.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.24.3","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"e30daffb3e2adebc59f42d3898365079b8223eda","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.24.3.tgz","fileCount":218,"integrity":"sha512-jt/5coa3rj2mLnuXHe4BJ4oP1hYkptYt6pS6jAcMB6K0xfg0Wc4Z9Bzq9w87Wi8hNvj42wUiAJokZKMgAxtyOg==","signatures":[{"sig":"MEUCIQDYi1JQdkCGPn1jfD50K/QjiasTKgs2KPm8lId6/TvX+wIgRs/qcz76M9koxwsHcFRc/TB6uHI1zewEXtrQkVPuHHQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2227688},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"9634ad3f356aa6c975b2b59128386ba4f8143fea","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.24.3_1695875788038_0.8654386819589697","host":"s3://npm-registry-packages"}},"0.24.4":{"name":"promptfoo","version":"0.24.4","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.24.4","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"48d2dad18b87990ef3a2a9e7979f09b178e9f93b","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.24.4.tgz","fileCount":222,"integrity":"sha512-DNG2XCfu3g5b3FgvjNoxwupvuFgnnees7wYnuku0iR7wsZ194thBX5ZfLQ+U51JvtzJF+PMO3vzki6MAV/dRNA==","signatures":[{"sig":"MEUCICmWlpx+VI9EYGyyx7dEluM1G1PZE7OL8Mf+h9jaI9CEAiEAozZSakbHUkfwJqOTPxh7S4SpYTN7J7AZ1WiFLupa0ng=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2239611},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"0f295f5e591a001454faa6bb4f173ac4fdbb3438","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.24.4_1696174798515_0.7552263928669092","host":"s3://npm-registry-packages"}},"0.25.0":{"name":"promptfoo","version":"0.25.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.25.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"d7361eb5eac2176889c2c6a79d0bd19cb06d8ecd","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.25.0.tgz","fileCount":239,"integrity":"sha512-cAeoQUHij9iYhyOpTjB0gYuYPOFMghQZVWn9cky0lMA3zMwut62a5ZwgYlrVNmGrA4fXW7JLh0t10UEriBIjsw==","signatures":[{"sig":"MEQCIFo0RBptbzBQh/8KKX1iOAmR2OAK2WDtEC++z9b2+fWBAiBU88beecEWf0byhmDZbjzeUpDwBnPhzWKbn+QmsmtFhQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2336185},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"6a18508ef15a1e1b438b8573af2c21f6d7c3cef3","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.25.0_1696957595201_0.6683289004036521","host":"s3://npm-registry-packages"}},"0.25.1":{"name":"promptfoo","version":"0.25.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.25.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"02b3aa6568a05387e1ae0f88e97fe87e25ff4a9c","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.25.1.tgz","fileCount":239,"integrity":"sha512-nGf0zW4NtVay3dYmwQhNltLZexGqxv3Uulxj0H70MvMY7TVfs2aHFwzyYDDdwE3s9IBxRxmDue1hG+gDwTLVKA==","signatures":[{"sig":"MEQCIG7zqsLKkR3flAJubNZBCD2AC4M3eUi/ElgUZWvxf4P9AiAotS6awsSZxRT6nmSWdLSFHyKJYy2lDaOSWf+9ZcnZcw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2342489},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"b85d286837b2ac24ff81e1d3d02acf6c32633767","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.25.1_1697693668255_0.3193490992492187","host":"s3://npm-registry-packages"}},"0.25.2":{"name":"promptfoo","version":"0.25.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.25.2","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"c5975dc72b28ccfabb2d899b4e6098da1e4ceae2","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.25.2.tgz","fileCount":239,"integrity":"sha512-Jxn6sVkcWGLvb1yrNu/m1jLdUFE8f0PVQe06h+lQSLCLgL0yBZW0L8I/6sv4OZpnGAjITDQ1KG+jtKGojfS6GQ==","signatures":[{"sig":"MEUCIQDqSEcg2TDF13XOKxPG9bpqUmMqiR1RjNd0Q3yWJxqawQIgRuvQzxG8RsDoNK1IKVjyXHFqS08zF9ob9Ir2nEuzW7o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2346451},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"4ef6a72d6ed433aed0e7092a13d98c5d0f0aed50","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.25.2_1698331154859_0.0036074276957120954","host":"s3://npm-registry-packages"}},"0.26.0":{"name":"promptfoo","version":"0.26.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.26.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"8721d91c90d2d99e35f813c046c5318baf2f3bb3","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.26.0.tgz","fileCount":239,"integrity":"sha512-uDft4sp5DnkeZ1tR/XYU5S+Z52TCt7JCf9Rm7V65sx4Vi1BxlwzSdGTdNcgTiAb5WQv3UCSI5hUnN3W8k49Agw==","signatures":[{"sig":"MEYCIQCLyLLSNcCbtdUF+a/0iJ7FV90jVq9JQiwr17Fh9feQWAIhAJLIyW0l+BIvp43U3sIqVG4o/IZM4BDFiBG5o26O5X+a","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2351718},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"cb808acab7e1ddaba27bc838cb41d518ff45cc90","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.26.0_1698508625110_0.19099491553722858","host":"s3://npm-registry-packages"}},"0.26.1":{"name":"promptfoo","version":"0.26.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.26.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"7b4a551c937c76937a1efa60075fb392b219a8a6","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.26.1.tgz","fileCount":239,"integrity":"sha512-Sh2FyHxZ4OExysyXP9zHItVRw5n7loR78ya+x6w91xC+CQL3O32xMG1b0txYG8zwQo/jySkO/WIUvBPnVsKmng==","signatures":[{"sig":"MEUCIBAdzxWaTPo+BYq9xB9PfTXuziUwqLd93zPJGs8nIhLTAiEA2KUf7kHTjyf0snWlgsWvewM6h8jMF/6ojpw/Q/u6D+o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2357303},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"874440dd9086972f0f014a76df41a3e7fe383f27","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.26.1_1698804471331_0.6067068888354534","host":"s3://npm-registry-packages"}},"0.26.2":{"name":"promptfoo","version":"0.26.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.26.2","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"28d93505ea61e8d17f2b10ccfee496e2fe6b2c97","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.26.2.tgz","fileCount":239,"integrity":"sha512-e6cgJM4Zz1yWmakMDNquQ1zc2Ir0Tov1LxHTUhX69IxQ0KjdxskSJji1G/JDAFNQYhWYufZ0BbX8r608UuN0FA==","signatures":[{"sig":"MEYCIQDbSpr+UjitP57fjmUJ1vskCvfGF1zwm3C3evCG7dsmhgIhAJdAkNTpEeR6AK2wX/9nZp4GG3KNZfATgnrIISFZKVTV","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2371584},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"7523cdfb5cc36213fdaa9254096e624ae65d539b","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.26.2_1699339343279_0.5776996998591633","host":"s3://npm-registry-packages"}},"0.26.3":{"name":"promptfoo","version":"0.26.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.26.3","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"39e3d9102058f0157ad23c286b772fb8393251d9","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.26.3.tgz","fileCount":239,"integrity":"sha512-QORuveReyiXKm43x0TUlDphme6L3GUKHM1eYkH/PPVovUXljjhsLqh/Wncf2/F55oqxGFYJO2cnChdBijhRUqA==","signatures":[{"sig":"MEUCIFgbHy1poZjFP56orhIanbiNgNaUUQ8wz7RVYzegK2twAiEAlSmV1nYNV5HS/Oz7cIbWA0zjsf00pSLtACemKZJhXK0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2374195},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"01011ade2478cc35be59e3cfe0fe966e823d0d9e","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.26.3_1699465602198_0.8607382205205092","host":"s3://npm-registry-packages"}},"0.26.5":{"name":"promptfoo","version":"0.26.5","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.26.5","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"2d51a80696a3b8a8e5151027fd79e4a533634a9c","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.26.5.tgz","fileCount":239,"integrity":"sha512-9El8ik61sMzD484xcxonLGyHRhC8b3RTR4W5flsjC6whpmzonGKkH3tkXWKT770pKr/1O2iKihQ0umlSD16A9A==","signatures":[{"sig":"MEQCID/mFgJ0TVgL0mmZqawnsHBYYmkgTJZ43Mfd+wcq/yZSAiB63KLaZuwpbxHOGLned6gEe8ixxODzuLi48z5fvE/58w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2375095},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"b282bd84b791093abe1370f17a276853576ffd16","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.26.5_1699599246205_0.305130971036347","host":"s3://npm-registry-packages"}},"0.27.0":{"name":"promptfoo","version":"0.27.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.27.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"d88fff9d32055e8c668cbb6f9ef1e1678367ca22","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.27.0.tgz","fileCount":243,"integrity":"sha512-h1o12mB5V3Vi4Iz5plz9ks4Pmwcpl6CUu/ANXJe0j1EqkuDY8eeQRCtzqvhqeh0fkfUBiRc57wQir9krysnevQ==","signatures":[{"sig":"MEQCIGJAH2bEQbvtAJXlf5rQ0VmkINsGKCXQLioQlXzYimBTAiBT2izuEpEZwnrbIA6QeZybKRwxoehgS7s7OrWrMdnW6A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2414187},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"6a6f12d5163d3fe714f92d54840044ef57fcf179","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.27.0_1699984047457_0.6509910160421444","host":"s3://npm-registry-packages"}},"0.27.1":{"name":"promptfoo","version":"0.27.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.27.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"7e364263baf2ba276ac895a37a5986210f4b0f7e","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.27.1.tgz","fileCount":243,"integrity":"sha512-1xJe8fUZxjmbhMq1xARR0XAub5fjyUVVUvMrRzvlEoIC4YYlbhWmYlUf+gtoipuA9jxfwltnaI6b8am2NsSNBw==","signatures":[{"sig":"MEQCIHCQHAJ82CjibrajdUC/v6IUEDi1tXwVVXp4rRXd/NFeAiBG1vUbaUJa0KE0lHCNGAG+Z6le1VjuT3/Yw9hJFdkqPQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2414358},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"09d3478a25a1ba4c6e8e0e19cc07f01c34e9f3e1","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.27.1_1700002377401_0.07456499464684074","host":"s3://npm-registry-packages"}},"0.28.0":{"name":"promptfoo","version":"0.28.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.28.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"a514f429dbced5b9b878152418c5dfa71e1b0a65","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.28.0.tgz","fileCount":161,"integrity":"sha512-hUcQM1PFX2/QYx2us6lz5JL2QoWkMrb0ZKlwdphimkv4manj42ZIorYLg1cvv0299v8Hyf0FK9Eao7WmhTtYlg==","signatures":[{"sig":"MEYCIQDBNF+SxWnsutfPp1cHmVIPJIhSf10dIX6Le0jl/5YnvQIhAIdQlQEnuBoJkCZu1XjG/3shXd76eQWzSK24waCybnGT","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":590312},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"86d0b577bda96686625f44753e8be28241ab5c79","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"8.19.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.18.1","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.28.0_1700437349797_0.4517229882463982","host":"s3://npm-registry-packages"}},"0.28.1":{"name":"promptfoo","version":"0.28.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.28.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"8e49d652d8c0ee85745d5c4f347b569955a42c46","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.28.1.tgz","fileCount":243,"integrity":"sha512-3g4UUU6EgB8QA6WytABh5sbtj0kI4PpI5f/sRSws4JVcsi7CriWZCsRWWYgKuWPUPKOWNgiZ9X/r051PJB89ig==","signatures":[{"sig":"MEYCIQCEu/aC1JoeCaXUBpyF7gYiDesxfMVJdw457QNqPUiQ4gIhALmA0azXWDMCPENa9/6+WY0Qa9q+S8LhOLvextggAnOC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2434571},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"2dc7006d61b7f5b07cac424351f58730448bd0e0","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"8.19.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.18.1","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.28.1_1700514924818_0.47840883485064545","host":"s3://npm-registry-packages"}},"0.28.2":{"name":"promptfoo","version":"0.28.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.28.2","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"5e3e3803fcac7f171c546606ccf9fb7e7ff46cf4","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.28.2.tgz","fileCount":247,"integrity":"sha512-7jV0GBLJTdPXKJcnj9XbHw45X303mW947sr8oXYpcbdt47REOS52MNi4JhRC5KWjt2kXqQdGEvZYknFUYyGdPA==","signatures":[{"sig":"MEUCIDzPc6v6yl6L/K4K0paZeQKqSPMeJj1mp74fu7wIxP9iAiEAjsSKOoFI6KFm7PO9Y+/TRb/nvG3gJNL1H3oDIwUx6go=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2440476},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"daf0b4dedd1b27d8ada1cb3b8300640ff01e2a96","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"8.19.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.18.1","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.28.2_1701048966734_0.19587729419867617","host":"s3://npm-registry-packages"}},"0.29.0":{"name":"promptfoo","version":"0.29.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.29.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"b7b1ba0ad56a439289f1d498c5ca2620d935665a","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.29.0.tgz","fileCount":251,"integrity":"sha512-X29c30JlsB8S5Oz/VIs+8LNU0zZEGPtrlspyp0MAY726vp7VRDOJqC/c/dSKdzposP70+Ok6W733SwG0h3JZww==","signatures":[{"sig":"MEUCIQDt7+WcpMzPiyxwjuK9p0jOBO7+QQk70CARvQ+Ob4kzIAIgE2JUK3XHFgv7lZ/hKzrgVrqodW5L3Sk8rGeKSPWgCTM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2454814},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"c6ee9b3d22ed1b82e2eaa983c43b39316a21805f","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"8.19.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.18.1","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.29.0_1701143427069_0.26390933073022227","host":"s3://npm-registry-packages"}},"0.30.0":{"name":"promptfoo","version":"0.30.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.30.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"5d9726498e1926511846c74f36ceaa88187d225e","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.30.0.tgz","fileCount":251,"integrity":"sha512-zHRMXMKWR5Rp1j+2Y2cvo5Odkx2ylcDMHnvokgFhsLRdEwVJaWMU9Uda9VDt7A79m6hL4ndMoj+eDBnvdAwHGA==","signatures":[{"sig":"MEUCID82MIITuXVjk4XlwIcY4wIJ+2zSVe73lrisC3RIpoz/AiEAx6yBuXMQvStlHI6Z/+AQkaDrw3yyRJd76BkHxG6b7BE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2457885},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"16cde4fed89b9a3f89d35873aaf74797a8d0bb93","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"8.19.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.18.1","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.30.0_1701272133293_0.2763901892908225","host":"s3://npm-registry-packages"}},"0.30.1":{"name":"promptfoo","version":"0.30.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.30.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"5ed0ccbe2ede2208fd2a584b76d22c444a591213","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.30.1.tgz","fileCount":251,"integrity":"sha512-GqxTtm4VNFQTSFCPAYClzaMUwlDsdB/m4SyuSVrJPD+hYIMQicuKi0TYVlaLUasZJkVfCHhKuhEsOppVJpdsXA==","signatures":[{"sig":"MEYCIQCjEpI6+6Xy904nBRypxZN/gh++QkSp8Oc2HK/mtbQp/QIhAKBI+R+V1Wn/KIaWoZ5xH79RnOaTzkW+7zXSbu42iCUz","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2458723},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"38f0f18a58c8785623b91199cd7295e4ef7caae1","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"8.19.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.18.1","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.30.1_1701299989797_0.34859730832027136","host":"s3://npm-registry-packages"}},"0.30.2":{"name":"promptfoo","version":"0.30.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.30.2","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"042d73f03668458f82dd1a93dc9e5e7356f97094","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.30.2.tgz","fileCount":251,"integrity":"sha512-L+M5PQhorLxIA4xzrDQxVCsM6PjVtgGgBJtd4L0RX1Crh6S3IAPL26MtJpFM4Ai4QdUiBm85F1JSk9K3nGqm3A==","signatures":[{"sig":"MEYCIQDw7/a6aHcAQvNhM69ILqOosK9uasa6+JEGzaqnAES+vQIhALz3pYHxvj1pTEjY3FwPc3fJebFTXGrITS4ToS4gP9Iq","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2457336},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"b5a19debe90ff050189df31b78b5625096268cc6","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"8.19.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.18.1","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.30.2_1701310813859_0.6378587975633279","host":"s3://npm-registry-packages"}},"0.31.0":{"name":"promptfoo","version":"0.31.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.31.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"3438259e2911058314ca1b0587e86a799b76e043","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.31.0.tgz","fileCount":255,"integrity":"sha512-oHrFhWHS/YAKB4IHKDlLWIhLpGn171TGYfMtP8kYIF8o40UurgbKx4S+gRdFsJ7lvmitiyB21yVg4QpfEI/kDg==","signatures":[{"sig":"MEUCIQC8tfNpVjOE2TDx4v5tA/k2Yszvz8XyIoZroYsw52bFxgIgMHYP1+q6RyFQG7+DUIO7zMV24d8+Qas75B/aGbKGSX8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2463265},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"f1967e59dc6dee6dba9504d0fc12f69405580b76","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"9.6.7","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.16.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.31.0_1701499927284_0.36004246441839216","host":"s3://npm-registry-packages"}},"0.31.1":{"name":"promptfoo","version":"0.31.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.31.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"7f08db9ceb0ecfe917ca162a1f7e73efe695ca5e","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.31.1.tgz","fileCount":255,"integrity":"sha512-9NbJJn3vJsl2aRPsd1uDn5g//OI7Qffq1gkg8U1OaJ66q5N/5CtUMSVqa5x0TStvonHTsxuRg5qVB9F4lgiHnQ==","signatures":[{"sig":"MEUCIQDn7+wMifOS1eKDag11Mibuc7CYYsNwylV8ux3OlFaF4gIgaIU11uk4HaE0JtXwW6Th+zthiPxufcds5Kv92Lty2h4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2460838},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"047c2b985e8eb2de6a2d53ddfc8aa72180f1d675","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"8.19.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.12.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.31.1_1701734235057_0.5041028311623788","host":"s3://npm-registry-packages"}},"0.31.2":{"name":"promptfoo","version":"0.31.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.31.2","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"f6736af1b01d1971776aa69ffbaa8c5655d588f0","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.31.2.tgz","fileCount":256,"integrity":"sha512-hVVflrbCI4wgYFyqkc6qwwHyq2WpkZIzUokqD/97kGM+85nse7qUKIKDcsw2VGVJFfgWlZTHReEfevSGS7z+pg==","signatures":[{"sig":"MEUCIHmhhmut8h2Dh7+YKWXWI6bhBz+mYetctQr9xJnQ/hM5AiEAgfwcTnOQ3LX7GJGL+utlTBYkwGK/iMg5iXfOyo4P2KE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2461700},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"b3f54e4ebdf1358f8eeb79668919c1cc24967d32","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"8.19.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.12.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.31.2_1702269211541_0.05354874321974301","host":"s3://npm-registry-packages"}},"0.32.0":{"name":"promptfoo","version":"0.32.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.32.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"4aee11e85d3c4cc5e69798394f6ea73d1de44d67","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.32.0.tgz","fileCount":260,"integrity":"sha512-tuArJokgJQgZI8hTxDlMmxqXYO5WoFwWPDkpqB+fFyFQQY9pBp4sW9dl+DX44SwsnOvOZCAkiFoWnnekGyOhFg==","signatures":[{"sig":"MEUCIQD2SIfU9ZDtFZ42sAustF9K+963/nwSCHF5b4c4tQMCZwIgBieiff77jq9hl3krUWpxCpVNjz3UE5elfYfowO2Aif0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2473011},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"5d22d116f7ffbd2aa8f780e6177892ecd7de016e","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"8.19.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.12.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.32.0_1702539248972_0.3234261072919353","host":"s3://npm-registry-packages"}},"0.33.0":{"name":"promptfoo","version":"0.33.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.33.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"9d52930a9d56f329add521c91fa054b6514a5617","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.33.0.tgz","fileCount":260,"integrity":"sha512-6yEgLRZufaKclCNEidAwlVLZqS+cCWcAYe55jLTWcgIPmEUQGHwgoe4yi4vqEsm4AhiYRQ3h+JkSwLthiPhYzA==","signatures":[{"sig":"MEUCIQDWHGIQPXRk4bsqXZYADMGeinkeGoqq3MAkh6Cs1v2EdQIgXk6B1hmCRPKLHI+P0x3vVcJhSfHWHZ1u/cdfUdvyH0c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2490071},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"0119f838836e2c5295cd8967d5ebf242f4ba5f73","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.33.0_1702774699996_0.7812360430861789","host":"s3://npm-registry-packages"}},"0.33.1":{"name":"promptfoo","version":"0.33.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.33.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"86c0d8b5eda1aefe84a9ed582a2e72d191b59c3e","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.33.1.tgz","fileCount":260,"integrity":"sha512-Q7Q/El2xyR1LI+9f0Tcj2cruVTDrcs/J/QLeupi+64H4EASKmECTc5sbAQtFFsUEFT6MQ02e3ofiBPrH8nO+4A==","signatures":[{"sig":"MEYCIQDSVtao5WyBBMvE+mrUZ7lK0nxhV8jSmxVeDM8tyxqDrQIhAKbATPXwWtCkqDNE6KVNiiEX7h7P9KVq50wcBm1Xldco","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2490259},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"8e2fba657d536c2cd761d5db4f698c086b32b0da","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.33.1_1702922998992_0.8703863892946282","host":"s3://npm-registry-packages"}},"0.33.2":{"name":"promptfoo","version":"0.33.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.33.2","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"75a2dd40a4518485bd4d79af92a4b249874e92ed","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.33.2.tgz","fileCount":177,"integrity":"sha512-ruj17KeUEUF2Tl/Fq2G+XFMTp3kUmX8Arai9iwCOfvDYr03Nw/qqIqQM+EByJW+epc4lMZxX5Xzfj4JvhW7rIw==","signatures":[{"sig":"MEYCIQD/rGl6ncUWRuXYj2ySjSSVHbU72xxK/D8ZjetDKARa7AIhAK2Jz54y80DJrWGO32ov9u3MFZVFjQEOACLAjvgcQ+le","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":647722},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"17fac0fd910c557d5ae3a5b9333a272ae7bdd5cc","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"8.19.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.18.1","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.33.2_1703305865487_0.185737274373734","host":"s3://npm-registry-packages"}},"0.33.3":{"name":"promptfoo","version":"0.33.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.33.3","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"7d7a1db8a49e0656e9f91cd3d3689b033e7b492d","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.33.3.tgz","fileCount":260,"integrity":"sha512-eo02cag5Ngvlq4zPebnDlcKVZ5uw9bMk3xhRcHhoRBubvaJIcV9g1kRQnqFwMG17QoUyPYUgs+Uvk14yLUQXOA==","signatures":[{"sig":"MEQCIAdJer5mNj33Z91f0af4I5GY49ATNXdEbC6wRPNDLUokAiBdQPn1QWqiVoT+b08OkuABCdu+LmGgvI/EARgAWX31qQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2493614},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"17fac0fd910c557d5ae3a5b9333a272ae7bdd5cc","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"8.19.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.18.1","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.33.3_1703438895452_0.3074202758361688","host":"s3://npm-registry-packages"}},"0.34.0":{"name":"promptfoo","version":"0.34.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.34.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"7be61ebbb64eb4dd43dcb298327ee3547fee6546","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.34.0.tgz","fileCount":260,"integrity":"sha512-T3aj93pmI5TQT0SazBwA6lW6kplACh/NruVLMqBrwNnW7hYxYmL60jeNqSmZdzhyLByo+jNRPGlZTFSTR6aysw==","signatures":[{"sig":"MEUCIQDJPQuSdmf4rCkNhV4xUKuJX1huQMCnT3DmHdqvzoKfKwIgAlUXkNL7XWg0Ilw3KyxyyjT+mVTYfSZ8WUh0AXN+4RY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2515053},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"1689ea29049234aa9f8f7021cb6b331ffd3bbc6b","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"8.19.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.18.1","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.34.0_1704179996533_0.42330240037735134","host":"s3://npm-registry-packages"}},"0.34.1":{"name":"promptfoo","version":"0.34.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.34.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"666f53a44ce756242f39c047d8f3dce0aa0e98ac","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.34.1.tgz","fileCount":260,"integrity":"sha512-JZ1E3zt+/NaJDOG9KYoQVc7ogiDpVgJeknlsYJaq1TCAImynw72Kixr8zl5nKYTZhf39bEWlKnQ3gRvuRMQ+NA==","signatures":[{"sig":"MEQCIGdE6D1N0yvdMRZoIjZTjW+J+MONFDy36B7jucBFVVl0AiA5siaIYc0kPV/AE9pjy+JZEW9ZQQjMu1JPFn1fSqKMCQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2515598},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"b5ddc1463d9715e5d6b8c2a2ad7fbb2b70eba2c8","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"8.19.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.18.1","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.34.1_1704254014426_0.70167771770782","host":"s3://npm-registry-packages"}},"0.35.0":{"name":"promptfoo","version":"0.35.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.35.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"300b98acf30c13f879a90d49abc8decbb3945528","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.35.0.tgz","fileCount":260,"integrity":"sha512-81OZzGuRdk7Yj9ExBo6FO6vAN7AqbElFl8uLFFbUgxzakOKKJPYCv+ZUq/NDGs803bnfoSbH4tWVTTu4WIlkTg==","signatures":[{"sig":"MEUCIQCkcXnd5cYivbgM2GprgO5zbO77RqnixdtqnT+3EzvhiQIgZ7ynLCDLSHRMoOZXousGhSZJiqcldF29/rSEp1R4KlA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2530529},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"6b07b591c22e18cad8a2745e189428da8047e78d","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.35.0_1704648941668_0.5948671047522027","host":"s3://npm-registry-packages"}},"0.35.1":{"name":"promptfoo","version":"0.35.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.35.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"f71a060c3e837f825ead846c93802630271f2453","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.35.1.tgz","fileCount":260,"integrity":"sha512-DNXBqQKDzON0i7ZZZj6ioupE1+JaUozMPS61EW8+MhGV6uWl4NC8Fwjr7kOc3v43yDsD0o6cyrOUdSzOJ5NFzA==","signatures":[{"sig":"MEYCIQCBlv1rWNt0xRMOKTjp70grXTyjSQu7c2nsv0E9Zhv6YwIhANTy2J5+IRBlR+DGZpKHQk3cUCLca9AIZkqCjHs07Ssi","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2541502},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"77b813c76e78918928a1851557bb8fcdc39fccb0","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@azure/identity":"^4.0.0","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.35.1_1705080221945_0.16742206639623292","host":"s3://npm-registry-packages"}},"0.36.0":{"name":"promptfoo","version":"0.36.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.36.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"9f1a1e1456b54bc2e026549f24bcedffe2131f8a","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.36.0.tgz","fileCount":281,"integrity":"sha512-HcHO8AXwpoYPOzIWxVJQLH7fUQopfznJaU5zJMsk5ugXa2mnyC3j7205xWgVGNMbj51V+qCrFafSJMxLh4/c3A==","signatures":[{"sig":"MEUCIQD58W2PryGFVK/yPzOg/dXAerwnCGo/mgAV+R3yz1ZiEQIgH1Bu1+PqEC33u1mRxU/bO1+CxbxS22mNV7yfTYhLVy0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2724715},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"b287b7e552868bf589398c42b0205599eca94c2c","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@azure/identity":"^4.0.0","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.36.0_1705598339959_0.4027065009322981","host":"s3://npm-registry-packages"}},"0.37.0":{"name":"promptfoo","version":"0.37.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.37.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"f575557dc24cae6c3a5fbb583b3486886b7b75f5","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.37.0.tgz","fileCount":285,"integrity":"sha512-AnmvzVh5F/RWWpV92z7I3FqG3dFHur6dZ/q1+OyVgvmntdabEUAvQvq5i1UMCqBrgxn5/jkDKm62OsKCVBijsA==","signatures":[{"sig":"MEQCIBUFfDcNMPyF7rSdmwfgYCV0tnv0Bm89bEQIqT2GpT2eAiBY97TxtjqWg6WESfg6/sZSdkHArh0PGj0vyasc1jslKw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2839550},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"52eb312ece73ad11935912a4b88d66621999b3e6","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@azure/identity":"^4.0.0","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.37.0_1706112971854_0.09257778447680942","host":"s3://npm-registry-packages"}},"0.37.1":{"name":"promptfoo","version":"0.37.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.37.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"adf6e2fe6ab0dbf339e821fe49476bff671f44a5","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.37.1.tgz","fileCount":285,"integrity":"sha512-SGa8vg/Ggy3MQ5nJ9ywZmcy7ccv0dAeMoCMT4ig1QCHyDdWMNpytCRWRlbM/6N0MYRSEKrckNa2TyX8VddupZw==","signatures":[{"sig":"MEQCIQCMItq/B9JsxteJ11wtyZfjXcZA7wThB7C2u1pogBmf+QIfXM/lVDSoyDunaC0tR8YJSBVFf391HPm4hdQPnvRPWQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2839408},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"45ca521fb562d0a511c85c44b12f8c145d95cc49","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@azure/identity":"^4.0.0","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.37.1_1706248449004_0.48050507048630187","host":"s3://npm-registry-packages"}},"0.38.0":{"name":"promptfoo","version":"0.38.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.38.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"58708d2aa7655a3434dc5f59b09c9eb31ca6ce04","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.38.0.tgz","fileCount":290,"integrity":"sha512-CDMBU8mgOENAnUK7Lq7EBq61I/ipkKBd4fx4hRnUhMVnYDRBPAPCC9ivd8R4UJ4Aujc06knVxlb0X6Iw79wJnA==","signatures":[{"sig":"MEQCIDf1YyEomVnYNzOz/BoFhD5Ty0hnDXG0VpCtIXCjVapbAiAm6ThlpQThTG69Akm7faNmBh5T83lP8HRSO9tmKd6Fkg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2860180},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"924e7a99234de5a4d49dd360b3bf7b02a872d523","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/providers/wrapper.py dist/src/providers && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@azure/identity":"^4.0.0","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.38.0_1706554246213_0.1752942888959359","host":"s3://npm-registry-packages"}},"0.39.0":{"name":"promptfoo","version":"0.39.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.39.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"b330627a8d5caef6bb276efaa3783485355a5571","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.39.0.tgz","fileCount":290,"integrity":"sha512-0klrwXwuZkb5hEj3YYR5hOHj4/pldk0hva6XNtVtNZEcJ4YFqsyPiBgJrY4Q8CwW1DvCZrwbHfJ2c9/EKjLCFA==","signatures":[{"sig":"MEYCIQD0sRM10i1CceyLRFSVkIXFap37a+b9yDW4rAIIb559pwIhALUNjRNN/Dgen4hkSlXucLraR+FbCesLgM0Ekyf17/dF","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2880834},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"da9adefb6f3643be013353eb0272f50a092c1066","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/providers/wrapper.py dist/src/providers && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@azure/identity":"^4.0.0","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.39.0_1706806593529_0.30503769526739566","host":"s3://npm-registry-packages"}},"0.39.1":{"name":"promptfoo","version":"0.39.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.39.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"356d429b90f5e502fcdcbfa46317a8ea5f7e2e06","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.39.1.tgz","fileCount":290,"integrity":"sha512-4BmSzOgd/bV+NEFX2CMTZNhbP7fzdhKa1XqWKrFjKKueeVLcf80tWpqxp6Ygde6t31/aDKorhGK0KqUciyk6+g==","signatures":[{"sig":"MEUCIH3Ppi35DqCQ0xYTjjhfDtW0J8lydbigf99OK8xKGY7AAiEA/FJKri75NH7Q6JaesJCP13stkQhW2Q9tAswvfIKW6yI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2885571},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"e7b25a8ebcaf8272a0f6d526e3c052256f4e4ac7","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/providers/wrapper.py dist/src/providers && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@azure/identity":"^4.0.0","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.39.1_1706852893912_0.6811898460873831","host":"s3://npm-registry-packages"}},"0.40.0":{"name":"promptfoo","version":"0.40.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.40.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"9f602711c8449bf57721b271dfffef0cf06061c6","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.40.0.tgz","fileCount":298,"integrity":"sha512-Oi2B2aLK317J9dmfw2c6k3ozI/k6LJTSDjwQihe32YfRtpkrTcL5ib835/ojAb3qPzIVIDEM1HfndzUEUJRF2g==","signatures":[{"sig":"MEUCIQDiJGkSe9WuAqZyr8t5R3hmdwYwi3PDOizsfvmZmQ8afQIgHFdwr2vkFGcS3aibGtYpt3E/9PFjl5mgYDCDaNeUQgQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2911782},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"7c4da6c2ff105514f6e25699af1f2f7fcb1451b3","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/providers/wrapper.py dist/src/providers && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@azure/identity":"^4.0.0","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.40.0_1707237098008_0.9310600154013529","host":"s3://npm-registry-packages"}},"0.41.0":{"name":"promptfoo","version":"0.41.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.41.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"e49ed17fbc07f4cb7a492264cb960b1f3c580db2","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.41.0.tgz","fileCount":298,"integrity":"sha512-6AHmoiI+GXgsmtRW6LDUdDg/18oJdsqTFS1HFxYlEOa86fJoxnL/Q+e0ADfLvsDtJHmULrMf0L81CaTW6SlV9w==","signatures":[{"sig":"MEQCIF1no2mbMYJufVUwx1aExYM0T9xl0q3n2RRf31KFlti2AiBRbEwfYAUovLX9e3xgIPDtLxw+V+ys3pf0trm8IjLFuQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2912759},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"bc83295b59c307b4764d14af6fd15ad2a78d8541","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/providers/wrapper.py dist/src/providers && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@azure/identity":"^4.0.0","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.41.0_1707756774006_0.5241371832848998","host":"s3://npm-registry-packages"}},"0.42.0":{"name":"promptfoo","version":"0.42.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.42.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"4c1b6ca02661eb2ca2bd0ba38215a3fafecdb2fb","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.42.0.tgz","fileCount":298,"integrity":"sha512-M7xoLHT+hGOtKBBD96IXyjqViDruYOdkaNnjRAbEteskrLQosEM9QUZtjYRi9ZEFg1dwj4AO8RbcSia6o4/vXw==","signatures":[{"sig":"MEUCIQDe6P7wpQcD/LCvuKBAb/DEUiXEDKQ1r4uVFtl7Q4OfbAIgQG3MqKkoeLp1rU1SKgLRWN2gRGvG9R2X5wuRr1UMbVs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2920192},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"f60667a6544abf22a7af230726e11a4c22bf9597","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/providers/wrapper.py dist/src/providers && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.12.3","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@azure/identity":"^4.0.0","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.42.0_1708305889885_0.32103910856625095","host":"s3://npm-registry-packages"}},"0.43.0":{"name":"promptfoo","version":"0.43.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.43.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"a2cffcd56b3c1839c01ad051b6f5be7735a8f330","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.43.0.tgz","fileCount":305,"integrity":"sha512-tCVnTJtwz7LdAdzpMOHbTsxhhTQHY93I6uhx95TpeedWHeXpWZCgL2g1rxEbSWoI1ZvKfjhr9MN500o3fXbk+g==","signatures":[{"sig":"MEMCIBrpFcbMs+1VXGJcttVGgIE0XsRsT1X21M8JGO3cvfdQAh91LC1BUl8H4Y2IdmJLjCKmOEt68zpU9FTNFg1SV52C","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2980047},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"c7e90781892f8d3432fc657f12cae5e58aa6cc54","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/providers/wrapper.py dist/src/providers && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.27.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@azure/identity":"^4.0.0","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.43.0_1708676566680_0.6281645414323278","host":"s3://npm-registry-packages"}},"0.43.1":{"name":"promptfoo","version":"0.43.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.43.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"b49260cf6fccf7d48db332448295557c48630d1e","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.43.1.tgz","fileCount":305,"integrity":"sha512-2FllCAjSyEkp55tUMG6lQh5x/PXMFGNODBB3TXpGzfyGG4oV0F27cHH6SStdJBYS46wmciuhTFDZyXyYq17Vcg==","signatures":[{"sig":"MEUCIHpxVZGacXFU9XOtuDMU1iuVtFPugjHr5RgsAhamPV+OAiEAg0/ehbVgkVWpCJs8l06AetYO1D6r40PZEk0ddDlhq8c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2980485},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"d6a2d8dc581bdfc26003951809b08fa98d11bcdb","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/providers/wrapper.py dist/src/providers && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.27.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@azure/identity":"^4.0.0","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.43.1_1708840365087_0.8709181612876435","host":"s3://npm-registry-packages"}},"0.44.0":{"name":"promptfoo","version":"0.44.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.44.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"1a1e056e972b6285becc978698c597aabd21d394","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.44.0.tgz","fileCount":305,"integrity":"sha512-M2hqOfJ8fZxpQk8IJIHYj5LfOlorZJZhGRflMF6+wSBtHRlmZJRPR4vmWcq5F4Q50rh1FAHUitUoNgP0gBOMlQ==","signatures":[{"sig":"MEYCIQDh6nEjT9D4ay227p/eiQ8UM7jbQIZySTDqX200HyyJ3AIhAPjs7oilLrPzd2pdzrmAFbpnmS3eQrJNZADrfleDqaUv","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2976429},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"4bf0a9cc26e2cd28c23e4987ad9b71c92675242b","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/providers/wrapper.py dist/src/providers && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"8.19.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"16.18.1","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.27.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.5.2","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@azure/identity":"^4.0.0","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.44.0_1709578020834_0.40279727010861466","host":"s3://npm-registry-packages"}},"0.45.0":{"name":"promptfoo","version":"0.45.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.45.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"58ba5358d5d32543c7fca714b1ce1e9776ff3f85","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.45.0.tgz","fileCount":309,"integrity":"sha512-GAejWHI037K+Yw++bo/F0CwRelDe0iZEaZCX2sgNM3SQ5MT+sK5HUMN8noM94sQyX+nuZhbeUQq92VvucRU8TA==","signatures":[{"sig":"MEQCIBrFuNoyuiFXv8EFTUiWl0jIXDCSplnVi+Yibd22XS/EAiBAzQxlgW+zqJ7V9FuEAH3UOE6UwtOukoZoXqxgcJtBCw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2999053},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"0960ea2c598c96c85d6821fba402152caea9688f","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/python/wrapper.py dist/src/python && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"8.19.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.12.1","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.27.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"0.16.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@azure/identity":"^4.0.0","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.45.0_1709747013772_0.7074511910091952","host":"s3://npm-registry-packages"}},"0.45.1":{"name":"promptfoo","version":"0.45.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.45.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"d14d5d8454ac5622ec4def1a59d449bb1f7acfff","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.45.1.tgz","fileCount":309,"integrity":"sha512-yYbQm/TjurgAZq1v+pzp7vqIAszsIRZS9qAczylQ/9dia309RRAhK9Dq7Wi8iaBUbIx0LjIbrGzIveifyi74Xg==","signatures":[{"sig":"MEQCID0ZB5fmasb5nnj66OQXi0dutatUFh9ypELaQMfX9DagAiA+lQKYX8wPID9F8hIL66OG0aEZLqeQXXDm2wpZ6n3y3w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3005287},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"a3d907b46bd00a322b5abd83cc2c1eddd4fac635","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/python/wrapper.py dist/src/python && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.27.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"0.16.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@azure/identity":"^4.0.0","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.45.1_1709767534380_0.032365148689899925","host":"s3://npm-registry-packages"}},"0.45.2":{"name":"promptfoo","version":"0.45.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.45.2","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"6b489228d7673a784fb770d83a22753cc3397dee","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.45.2.tgz","fileCount":309,"integrity":"sha512-RCGWM9KvuFwB1YGP091Cum7ZYQxj9QNycPufhMcb/aWnAxQOz1NpygtdZVGMBlQR/MCX4/iVG4raOExVZ08f3w==","signatures":[{"sig":"MEUCIA+5P6ZmTNNb/roXVhyUSExMZ+8MrojiCL3k56xfk41zAiEA3NFMrPxyxsrj34nrmr2RlRWAm37kEBX/BZ7GQbCx9vk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3005302},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"ea1e4fabe5cff77ea37c017374312f3a26773a68","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/python/wrapper.py dist/src/python && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.27.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"0.16.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@azure/identity":"^4.0.0","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.45.2_1709831778157_0.17273564022571808","host":"s3://npm-registry-packages"}},"0.46.0":{"name":"promptfoo","version":"0.46.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.46.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"ad6395c81a3024d581c882434b420bb44d03cb9c","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.46.0.tgz","fileCount":309,"integrity":"sha512-wa6atgMOkTCTXIIsmFBWLqNTe+lkYLSdD4mbj+Jl7TTMfsuSTSzbO46JcDg6X80pZYIyPiDgrs669ad0uqmtQw==","signatures":[{"sig":"MEUCIBT+rP+hsFCT3DpqAW8SSx46FKFuaCWcn+3NhRCCNv/uAiEAoouhHsvwwNQ4Vxa7xScdg6x1XZZSOyThZ23whL7HBLw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2996407},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"e90969eaac4f286592e52d850f7912132a76fd28","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/python/wrapper.py dist/src/python && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.27.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"0.16.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@azure/identity":"^4.0.0","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.46.0_1709917347900_0.08046592550532461","host":"s3://npm-registry-packages"}},"0.47.0":{"name":"promptfoo","version":"0.47.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.47.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"8b369106d445cff0aa50b399c120375fe3cde74f","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.47.0.tgz","fileCount":309,"integrity":"sha512-E5JzaxkeHisfJ9UtRDGm03q2OCBuFj1R2dZLRjqRDzm4tl0Osf7m0oi3HZIDFU4dy9uPFqP62q6kvPrniZtTvw==","signatures":[{"sig":"MEYCIQCQV5hYlpgBx53RJb8K7meDNGdnX7vRcob01Os5oj/VbQIhAPcCFQIiZcoHNyThf8SviWD3yOG1Nz/tUu0sQC/TcvoF","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3004794},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"54fc5db6cddd72c757cd44e9a68aa7081ab36a5a","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/python/wrapper.py dist/src/python && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","local:web":"cd src/web/nextui && npm run dev","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.27.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"0.16.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@azure/identity":"^4.0.0","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.47.0_1710387499933_0.34628602532297736","host":"s3://npm-registry-packages"}},"0.48.0":{"name":"promptfoo","version":"0.48.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.48.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"4d6da22013768d00ac5797e78e00e2ccea69b5bd","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.48.0.tgz","fileCount":326,"integrity":"sha512-WG7Bhv11eY6/uaTCEZac6XXiF2dYtMgE8Lhgx2W3ChjrHOMSYki95A/Lvpq4mk26VTSAlacnNMD6IFsGvFNYfA==","signatures":[{"sig":"MEUCIQCefqUCTJt4enIKoIBCV16ZFye0+mm/52sjK3vGgWYdFwIgHyG2xU4lTBJYhaBtTkwAE049BeaYfxWx7w/vh7M9GsM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3052427},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"fb095617d36102f5b6256e9718e736378c0a5cea","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/python/wrapper.py dist/src/python && cp -r drizzle/ dist/ && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","audit:fix":"npm audit fix && cd src/web/nextui && npm audit fix && cd ../../site && npm audit fix","local:web":"cd src/web/nextui && npm run dev","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.27.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","better-sqlite3":"^9.3.0","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"0.16.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","drizzle-kit":"^0.20.13","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.8","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@azure/identity":"^4.0.0","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.48.0_1710777537427_0.8556332195050287","host":"s3://npm-registry-packages"}},"0.49.0":{"name":"promptfoo","version":"0.49.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.49.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"7792a57658886033b350bb81e4137a463f0521d2","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.49.0.tgz","fileCount":326,"integrity":"sha512-1HU8GRMJgTcYOriZbM6uPa0BATEGQZ93Ac1xTKU9BKLwd0cK+/kFCg50C0ySr5qC+d4dMHNKqAwUbfnHeKMkug==","signatures":[{"sig":"MEQCIDtq8gMdyxU1z/fEmTE3VxrpiXdDfK+UA6F/Jmo7CRimAiBDu4uREJlzav3dg/8kuDDQvPac3hDi0tmJxBbl2QW0eA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3088836},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"3d6e1c2f3cc7fc933328af4579115b66985ddf4b","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/python/wrapper.py dist/src/python && cp -r drizzle/ dist/ && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","audit:fix":"npm audit fix && cd src/web/nextui && npm audit fix && cd ../../site && npm audit fix","local:web":"cd src/web/nextui && npm run dev","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.27.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","better-sqlite3":"^9.3.0","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"0.16.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","drizzle-kit":"^0.20.13","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.8","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@azure/identity":"^4.0.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.49.0_1711152839323_0.34813510312200124","host":"s3://npm-registry-packages"}},"0.49.1":{"name":"promptfoo","version":"0.49.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.49.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"e48ae86c9ba3e4c831b1180a65b75fe670c78558","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.49.1.tgz","fileCount":326,"integrity":"sha512-oxTodtkcQSbYVNJNI02z1QOSv5XCk36JhEWMiGuJVcG17yoaFUFDO9imBDczsuM5BE7Uu8/QvUBXUqLuYQ5x/A==","signatures":[{"sig":"MEYCIQDmI3eOFHbRSzzgEnECxGADGhIk8zXgc18LpKvK/K8zvgIhANYcx9JiQii+468hczoRRbDO1uvsbIHnvYHpVzkEJ8yo","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3089484},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"8d18c578e158a3485130deb1498190121a5c6a28","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/python/wrapper.py dist/src/python && cp -r drizzle/ dist/ && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","audit:fix":"npm audit fix && cd src/web/nextui && npm audit fix && cd ../../site && npm audit fix","local:web":"cd src/web/nextui && npm run dev","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.27.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","better-sqlite3":"^9.3.0","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"0.16.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","drizzle-kit":"^0.20.13","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.8","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@azure/identity":"^4.0.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.49.1_1711387544449_0.38915438240449407","host":"s3://npm-registry-packages"}},"0.49.2":{"name":"promptfoo","version":"0.49.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.49.2","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"867e8ee0c058c7d8f5c596fcb79fd3f430e57329","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.49.2.tgz","fileCount":326,"integrity":"sha512-3F3UeCEiOpYIzU6cZxLiAI+tzwbFf9XgYP8l/UksUq5MzHdA2zUHgENXu5cI5E2rL0E/1PdiXRRIkL4u6V388w==","signatures":[{"sig":"MEYCIQD/ZfN5i2E7ZLZyo4R5lNQXb/dCzF4YBmTFBttmPShkqAIhAP7NyBTX3RC1bElGdXbUzmxKHTHGIylRouR3iMijHSs5","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3093351},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"b575a56fb6fcd7cb775d0f0c3b8adf8e66cdd06d","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/python/wrapper.py dist/src/python && cp -r drizzle/ dist/ && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","audit:fix":"npm audit fix && cd src/web/nextui && npm audit fix && cd ../../site && npm audit fix","local:web":"cd src/web/nextui && npm run dev","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.27.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","better-sqlite3":"^9.3.0","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"0.16.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","drizzle-kit":"^0.20.13","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.8","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@azure/identity":"^4.0.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.49.2_1711546270128_0.02016480562126577","host":"s3://npm-registry-packages"}},"0.49.3":{"name":"promptfoo","version":"0.49.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.49.3","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"af61d9bf7b891c98415b3d2a8d90a673643ea9c5","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.49.3.tgz","fileCount":326,"integrity":"sha512-MY8cG9hFMd6i0QMQODEF/MT+7LEjdyMpw0jhdcTUh1UrMNrifNA51UC/vxhVeayPqpCDft2j7uWgmcooeLXzpA==","signatures":[{"sig":"MEYCIQDTzh3YjMUFhfGQo28vXFwout7Jk94XSC4m4PVlhU29YAIhAOtA990FPUIJU6Qabuxaf5mXnpuS2EQPT/Hi338lzs3q","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3094554},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"e7d50f5ed983577186809403c84a48bd6a01180b","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/python/wrapper.py dist/src/python && cp -r drizzle/ dist/ && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","audit:fix":"npm audit fix && cd src/web/nextui && npm audit fix && cd ../../site && npm audit fix","local:web":"cd src/web/nextui && npm run dev","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.27.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","better-sqlite3":"^9.3.0","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"0.16.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","drizzle-kit":"^0.20.13","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.8","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@azure/identity":"^4.0.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.49.3_1711710646766_0.024777682267925538","host":"s3://npm-registry-packages"}},"0.50.0":{"name":"promptfoo","version":"0.50.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.50.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"7165e30fa6ec2a7988e16101620e0ee6668537fd","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.50.0.tgz","fileCount":328,"integrity":"sha512-7IGDBEFxPU9OHpiOe5OM2F987Kecs4FgWY7fe5q9znSjr4LBi9CyPVMDvkxIsPhT1FMfEGlHO9me/8L7bVmb5Q==","signatures":[{"sig":"MEYCIQCA7oy1PYHABha8muaCFLjYMLndiiKLUUiWgvIHD7ZpKwIhAMPGGYe3llgBtOA2F0W0W3I8GtzC+GD2K7E+CKB2EO3J","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3246807},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"66163752ad6edf02423bb6a4543980dc750c3d1d","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/python/wrapper.py dist/src/python && cp -r drizzle/ dist/ && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","audit:fix":"npm audit fix && cd src/web/nextui && npm audit fix && cd ../../site && npm audit fix","local:web":"cd src/web/nextui && npm run dev","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","dotenv":"^16.4.5","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.27.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","better-sqlite3":"^9.3.0","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"0.16.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","drizzle-kit":"^0.20.13","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.8","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@azure/identity":"^4.0.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.50.0_1711982289891_0.48126034413605834","host":"s3://npm-registry-packages"}},"0.50.1":{"name":"promptfoo","version":"0.50.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.50.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"533bdccf4fdca896bac1f4d4c64d464d13912c2e","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.50.1.tgz","fileCount":328,"integrity":"sha512-E6Yi9iB/RCYrL2t0VKl/23NWUw+r1NSkP1Q2dV7Qu+J9R7IXftKJUJ5h6RWoBEfJufBpQ4iz1Md1V3e02v7mWw==","signatures":[{"sig":"MEQCIHaTRVsStlQU/lLo78GSmhvDOFAW0RneN/+rwOfiTjQBAiBmB3YgCUmv+ypa+84eyd0qYEcaHWwct4IxvATfZPMQsg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3247771},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"8deb4ad05e1c2b933648e9eeceb836b26d1953ad","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/python/wrapper.py dist/src/python && cp -r drizzle/ dist/ && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","audit:fix":"npm audit fix && cd src/web/nextui && npm audit fix && cd ../../site && npm audit fix","local:web":"cd src/web/nextui && npm run dev","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","dotenv":"^16.4.5","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.27.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","better-sqlite3":"^9.3.0","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"0.16.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","drizzle-kit":"^0.20.13","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.8","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@azure/identity":"^4.0.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.50.1_1712074414599_0.18232914823037416","host":"s3://npm-registry-packages"}},"0.51.0":{"name":"promptfoo","version":"0.51.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.51.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"e9d188208b6d39c0c148201d7e6954b0975255c8","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.51.0.tgz","fileCount":337,"integrity":"sha512-cGTvhJ/GLj4l6LQsknFPOmsc06Xe8c25SGWxD4tyAWwBZjiW7QwXmTapjj9mVpKCd8YIL0bl4hLlG19OY4jc9g==","signatures":[{"sig":"MEUCIQDUyliKJO5FfKvGTRD1VNMujUGtgywTMtBWUwfDySgzzgIgCG7jQE5KkpXs7HT009bkOg55Usz3wirVr2NMg79jkcE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3185912},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"903207d8d44b5233226e9c81d3f484dec7b628f7","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/python/wrapper.py dist/src/python && cp -r drizzle/ dist/ && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","audit:fix":"npm audit fix && cd src/web/nextui && npm audit fix && cd ../../site && npm audit fix","local:web":"cd src/web/nextui && npm run dev","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","dotenv":"^16.4.5","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.27.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","better-sqlite3":"^9.3.0","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.20.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","drizzle-kit":"^0.20.13","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.8","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@azure/identity":"^4.0.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.51.0_1712507541693_0.5777317913031466","host":"s3://npm-registry-packages"}},"0.52.0":{"name":"promptfoo","version":"0.52.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.52.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"f4f1e98448fb220e9aa496f327001f1ae5f5edb5","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.52.0.tgz","fileCount":337,"integrity":"sha512-emPHMg/PFy7P0fHss8qDpNPgQFHS3CyHmbS18oDae7GNkRbMEBy5cNcUwuQfROyv6xonBGtPLrHZFK+HjurjFg==","signatures":[{"sig":"MEUCIQC69KUiAiMILe7Hy0Y1Re844BCZMF9k8eWxqLtUFh4blAIgbrqZIWUHPMXcMIn21spkvn2/7ByF4Pz+2PbjB80vLrM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3198660},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"0337f1343a3fb21df457a1ced7c76734dc32f16f","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/python/wrapper.py dist/src/python && cp -r drizzle/ dist/ && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","audit:fix":"npm audit fix && cd src/web/nextui && npm audit fix && cd ../../site && npm audit fix","local:web":"cd src/web/nextui && npm run dev","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","dotenv":"^16.4.5","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.27.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","better-sqlite3":"^9.3.0","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.20.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","drizzle-kit":"^0.20.13","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.8","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@azure/identity":"^4.0.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.52.0_1712954452880_0.7132355168294435","host":"s3://npm-registry-packages"}},"0.53.0":{"name":"promptfoo","version":"0.53.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.53.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"e1d223d823c56cab4d3210998d1867786a10f195","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.53.0.tgz","fileCount":345,"integrity":"sha512-I8XiwVhaEbomkQa5hm0+IVoJ+c1TQqT/j+44D3PvoQ3jGbmJBrqW2DfvViucGwITqcvA9h5bbIAh2A0Ln164RA==","signatures":[{"sig":"MEYCIQDzTtCK/xtrXm5N1+a2i3KVMuVS+UU3fKwGFBwRb7X6MQIhAJ+6GQz5ovLxCvOUlyhS97+BBbLWW8yQyXQ3u/Grobek","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3216824},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"e42a24c00ce1ce6d757c6256c4d53119f79f97ef","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/python/wrapper.py dist/src/python && cp -r drizzle/ dist/ && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","audit:fix":"npm audit fix && cd src/web/nextui && npm audit fix && cd ../../site && npm audit fix","local:web":"cd src/web/nextui && npm run dev","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","dotenv":"^16.4.5","mathjs":"^12.4.1","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.27.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","better-sqlite3":"^9.3.0","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.20.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","drizzle-kit":"^0.20.13","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.8","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"@azure/identity":"^4.0.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.53.0_1713297918554_0.3313180124534587","host":"s3://npm-registry-packages"}},"0.54.0":{"name":"promptfoo","version":"0.54.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.54.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"74b889b9581e1ab45b3a34e21bd4866ff898fc72","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.54.0.tgz","fileCount":349,"integrity":"sha512-iXkRiyOvoxCxeGizU4SVU868map3n5AWq1azV1DhjmCX5bM2/kOJvYq9EVGea4m8voEyAtdtsimguhu6I78L2A==","signatures":[{"sig":"MEUCIQCGJSDP5b/fUotzQ+wF1vNX2elsMCGCLaKToEKniOzH6gIgLDS7UvNHo/YeEMDFwF/3wLW2tuCoO6IJNCMluvCJAIo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3223839},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"fb45cb63090edf052f1c7c768cb5f508eb70b23d","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/python/wrapper.py dist/src/python && cp -r drizzle/ dist/ && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","audit:fix":"npm audit fix && cd src/web/nextui && npm audit fix && cd ../../site && npm audit fix","local:web":"cd src/web/nextui && npm run dev","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","dotenv":"^16.4.5","mathjs":"^12.4.1","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.27.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","better-sqlite3":"^9.3.0","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.20.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","drizzle-kit":"^0.20.13","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.8","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"googleapis":"^134.0.0","@azure/identity":"^4.0.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.54.0_1713416362311_0.16918888284333278","host":"s3://npm-registry-packages"}},"0.54.1":{"name":"promptfoo","version":"0.54.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.54.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"86ee1a2ed099fbf37387befb42d06a0977e4c2e1","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.54.1.tgz","fileCount":349,"integrity":"sha512-T0gvWSg6InCBSQB9jscDM2un6PmUW+8TgZtVvMsClwXUMNcNY4YkHH2kX943eMdDTLR3wk4UjR22pCCGT5wfmg==","signatures":[{"sig":"MEUCIDr0zXMd8GpZROw7WPzqODeGLZdcAaXPeWNK585FSYU7AiEAqPoGN2Sgh3KKDqYAKpmbyYCANJ9j/9zRyFRbxViXNy4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3228525},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"24cd1465dcde9ed6f1c15d6cdba1a4c06dfc5dab","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/python/wrapper.py dist/src/python && cp -r drizzle/ dist/ && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","audit:fix":"npm audit fix && cd src/web/nextui && npm audit fix && cd ../../site && npm audit fix","local:web":"cd src/web/nextui && npm run dev","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","dotenv":"^16.4.5","mathjs":"^12.4.1","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.27.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","better-sqlite3":"^9.3.0","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.20.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","drizzle-kit":"^0.20.13","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.8","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"googleapis":"^134.0.0","@azure/identity":"^4.0.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.54.1_1713588770110_0.8747038744684068","host":"s3://npm-registry-packages"}},"0.55.0":{"name":"promptfoo","version":"0.55.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.55.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"f2f80cc54310914969ada621c7419b45043368e7","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.55.0.tgz","fileCount":353,"integrity":"sha512-wb1drxoHa9jpAz7UJW4QDK0X72zHxX/RAyyhw7I2N5Lvs1smnJ7yF0F6EZKiKSUgYfydeWvqzGr9oTqeZLzBNg==","signatures":[{"sig":"MEQCIEV60nF1SaRQ8twmZCfCjP5HI3730ZRZt6kBLX8SMZhDAiBJ0iOTsttNZB2XpuR6S2S61BC/AhoQ8Yx64a4lwWqK0g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3238974},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"3d759bbcfb9219099ac7c5867f971ca41c785256","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/python/wrapper.py dist/src/python && cp -r drizzle/ dist/ && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","audit:fix":"npm audit fix && cd src/web/nextui && npm audit fix && cd ../../site && npm audit fix","local:web":"cd src/web/nextui && npm run dev","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","dotenv":"^16.4.5","mathjs":"^12.4.1","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.27.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","better-sqlite3":"^9.3.0","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.20.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","drizzle-kit":"^0.20.13","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.8","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"googleapis":"^134.0.0","@azure/identity":"^4.0.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.55.0_1713930074780_0.014340068139865103","host":"s3://npm-registry-packages"}},"0.56.0":{"name":"promptfoo","version":"0.56.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.56.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"51c2f2c437bb3f941e9cdb3fa46a4a7ed502ac33","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.56.0.tgz","fileCount":361,"integrity":"sha512-j0pVyJjefdIM7+9Yr+qVSDiqA6XsuVXmY4Ot1J0JaTxrPawCacTuFSv/K2Ii3rFxZ6NZJH74TXrUozkW+GzNCw==","signatures":[{"sig":"MEYCIQD+f7mFlvCMTEQYArGuzd3tNi5baGziLuOAwrf68hzF7gIhANO77JxKQbXxp2onaD9DWWvAM5h4G4AEF5NDwtbhMA1A","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3260641},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"0f9a955d01764fce55cc694f087cd590d4ed0585","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/python/wrapper.py dist/src/python && cp -r drizzle/ dist/ && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","audit:fix":"npm audit fix && cd src/web/nextui && npm audit fix && cd ../../site && npm audit fix","local:web":"cd src/web/nextui && npm run dev","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","dotenv":"^16.4.5","mathjs":"^12.4.1","openai":"^4.19.0","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.27.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","better-sqlite3":"^9.3.0","tiny-invariant":"^1.3.1","@anthropic-ai/sdk":"^0.20.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","drizzle-kit":"^0.20.13","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.8","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"langfuse":"^3.7.0","googleapis":"^134.0.0","@azure/identity":"^4.0.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.56.0_1714327493181_0.22966749526044516","host":"s3://npm-registry-packages"}},"0.57.0":{"name":"promptfoo","version":"0.57.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.57.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"720495beb992e6b77a5cc155831c4234a9d459d7","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.57.0.tgz","fileCount":377,"integrity":"sha512-1gxhUP1DiaAJyr3Ay1XYsN1gP/X/NAzCGRdnKKb1IU2RT4nuveXqvgZFDKldL3GXD841cXg9sL5kleJmnrLTRQ==","signatures":[{"sig":"MEUCIH54BZuV/eIH4+vHFGtDnL2jvcaFYj1a5UeDqec4w39VAiEA0Dn+H//pslMCsxzIIq4sNKj6STkMG3JdXE3dRbVEomg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3285115},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"335bdab1049659f08349c14814f0bc0fac35daeb","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/python/wrapper.py dist/src/python && cp -r drizzle/ dist/ && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","audit:fix":"npm audit fix && cd src/web/nextui && npm audit fix && cd ../../site && npm audit fix","local:web":"cd src/web/nextui && npm run dev","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","dotenv":"^16.4.5","mathjs":"^12.4.1","openai":"^4.38.5","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.27.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","better-sqlite3":"^9.3.0","tiny-invariant":"^1.3.1","fast-deep-equal":"^3.1.3","@anthropic-ai/sdk":"^0.20.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","drizzle-kit":"^0.20.13","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.8","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"langfuse":"^3.7.0","googleapis":"^134.0.0","@azure/identity":"^4.0.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.57.0_1714589239389_0.764174844004119","host":"s3://npm-registry-packages"}},"0.57.1":{"name":"promptfoo","version":"0.57.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.57.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"85dfa560705b214bc4a1e6b9032a94c3a482b89c","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.57.1.tgz","fileCount":377,"integrity":"sha512-wYd6AbFjedIWMOTzFuDEa6gnBYbwRUp7IVNjh0UQ0/WWeh2GHNW3YxfISqGXgtfiToY5cAigGd7GCpkqvYb2Mw==","signatures":[{"sig":"MEYCIQDni0JQEjp7PzwXqW5URCZ8PlMvNGfwMoexF98WaGGflQIhAPreZUWL2NyY13jAwofCw1R6YDFs/0n1uncfpY+F1QiP","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3286839},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"502d9504b2d2a9643148eab6b57a11cda2705d96","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/python/wrapper.py dist/src/python && cp -r drizzle/ dist/ && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","audit:fix":"npm audit fix && cd src/web/nextui && npm audit fix && cd ../../site && npm audit fix","local:web":"cd src/web/nextui && npm run dev","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"^1.0.3","dotenv":"^16.4.5","mathjs":"^12.4.1","openai":"^4.38.5","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.27.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","better-sqlite3":"^9.3.0","tiny-invariant":"^1.3.1","fast-deep-equal":"^3.1.3","@anthropic-ai/sdk":"^0.20.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","drizzle-kit":"^0.20.13","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.8","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"langfuse":"^3.7.0","googleapis":"^134.0.0","@azure/identity":"^4.0.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.57.1_1714628681846_0.09315945293822248","host":"s3://npm-registry-packages"}},"0.58.0":{"name":"promptfoo","version":"0.58.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.58.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"c9bd121e0ce601e063113b87bc96efdbf6bf8c10","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.58.0.tgz","fileCount":385,"integrity":"sha512-2XSlZ0zbsK/6l8A1/t+Vin8nTFTt2WLJ9xoDUDq6nhBnCaaChkx88FcejnLY822YAyZOhWipOF1S/X7291mm+g==","signatures":[{"sig":"MEUCIH70c8LGmFhFP0GmoCDpAGMOuqOo52ERzR5l5X0JRk5vAiEApHXYUgmK9EQlDwHMhbyLuyYeENN14FSPMmZAFfLOOSU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3298829},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"8bc5ee65eea8285f25f491e55f5b846c7977086f","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/python/wrapper.py dist/src/python && cp -r drizzle/ dist/ && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","audit:fix":"npm audit fix && cd src/web/nextui && npm audit fix && cd ../../site && npm audit fix","local:web":"cd src/web/nextui && npm run dev","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dotenv":"^16.4.5","mathjs":"^12.4.1","openai":"^4.38.5","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.27.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","better-sqlite3":"^9.3.0","tiny-invariant":"^1.3.1","fast-deep-equal":"^3.1.3","@anthropic-ai/sdk":"^0.20.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","drizzle-kit":"^0.20.13","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.8","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"langfuse":"^3.7.0","googleapis":"^134.0.0","@azure/identity":"^4.0.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.58.0_1715281940931_0.6343925295911954","host":"s3://npm-registry-packages"}},"0.58.1":{"name":"promptfoo","version":"0.58.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.58.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"b4bade401ea8ae688df0c1c6c51c4cf277e8452a","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.58.1.tgz","fileCount":385,"integrity":"sha512-ssMB5AW6QXcceS+XwtmFty0c3fMPi3YXk/CFKAba8gp8B2mKH81mrABq7KSCmyZIiaUuOJgcUxi4/+VWmoWQCA==","signatures":[{"sig":"MEYCIQDRy2o0BX1SMxg+1wXRNQXAqsn7yZZDNpW2mNqKm8oSZwIhAIhoVNLownTiXmpdwZjb6aN4tItBGm5IHcKTRrS2vuoU","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3299692},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"3f6e5dbe88c20c61e32fe8d038d510a22459335f","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/python/wrapper.py dist/src/python && cp -r drizzle/ dist/ && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","audit:fix":"npm audit fix && cd src/web/nextui && npm audit fix && cd ../../site && npm audit fix","local:web":"cd src/web/nextui && npm run dev","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dotenv":"^16.4.5","mathjs":"^12.4.1","openai":"^4.38.5","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.27.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","better-sqlite3":"^9.3.0","tiny-invariant":"^1.3.1","fast-deep-equal":"^3.1.3","@anthropic-ai/sdk":"^0.20.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","drizzle-kit":"^0.20.13","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.8","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"langfuse":"^3.7.0","googleapis":"^134.0.0","@azure/identity":"^4.0.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.58.1_1715662601052_0.49572829033853694","host":"s3://npm-registry-packages"}},"0.59.0":{"name":"promptfoo","version":"0.59.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.59.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"7455db921a36bfb21c0c902e0d08e9f301c01517","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.59.0.tgz","fileCount":385,"integrity":"sha512-VVZS9IXARUu9jWbecKrcMLOyT54qpkU6JNkCovd5b3McQTslXwlK2N0nYra0oxNAMrMaehdB/f19prL7yBvcKA==","signatures":[{"sig":"MEUCIEmiGoyvVCrwoW/I6Xtbxqrm6+LR6706BA2OLFz9uAxuAiEA4liXnUoN0DqogMThKBOoO9G5gTc31eDOgi0TqCh1Ykc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3310542},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"085dfdd5535584f0bed391f9737f510c37098948","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/python/wrapper.py dist/src/python && cp -r drizzle/ dist/ && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","audit:fix":"npm audit fix && cd src/web/nextui && npm audit fix && cd ../../site && npm audit fix","local:web":"cd src/web/nextui && npm run dev","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dotenv":"^16.4.5","mathjs":"^12.4.1","openai":"^4.38.5","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.27.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","better-sqlite3":"^9.3.0","tiny-invariant":"^1.3.1","fast-deep-equal":"^3.1.3","@anthropic-ai/sdk":"^0.20.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","drizzle-kit":"^0.20.13","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.8","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"langfuse":"^3.7.0","googleapis":"^134.0.0","@azure/identity":"^4.0.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.59.0_1716015965196_0.32590756530787623","host":"s3://npm-registry-packages"}},"0.59.1":{"name":"promptfoo","version":"0.59.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.59.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"b32b1d30d2cd28a457c394f4c8744f3b93ef4b16","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.59.1.tgz","fileCount":385,"integrity":"sha512-2IpTDm1phAh0nxO2TmBb6b/lUE3EDzsN6+BIywUYtLoOW7cju9PiWTqoKXyAiSwTj+l0q8xaVEJ7xDMatejEQA==","signatures":[{"sig":"MEQCIEiL/6slEQTxJ2cxC20Sx+HwBbd186lLQIQ9DPemJKt7AiBYXuSruAZ+1NYshYjeUq7ryiFwWEz721mo6T9vwPjhJA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3310636},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"6cf39faa4f2a22513a1c71017a07d6089ab88600","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/python/wrapper.py dist/src/python && cp -r drizzle/ dist/ && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","audit:fix":"npm audit fix && cd src/web/nextui && npm audit fix && cd ../../site && npm audit fix","local:web":"cd src/web/nextui && npm run dev","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dotenv":"^16.4.5","mathjs":"^12.4.1","openai":"^4.38.5","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.27.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","better-sqlite3":"^9.3.0","tiny-invariant":"^1.3.1","fast-deep-equal":"^3.1.3","@anthropic-ai/sdk":"^0.20.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","drizzle-kit":"^0.20.13","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.8","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"langfuse":"^3.7.0","googleapis":"^134.0.0","@azure/identity":"^4.0.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.59.1_1716052866274_0.6374149932714455","host":"s3://npm-registry-packages"}},"0.60.0":{"name":"promptfoo","version":"0.60.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.60.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"8ce930041c0bc7cb70c63f141a62f3f4ed351fad","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.60.0.tgz","fileCount":421,"integrity":"sha512-T3zv3q7YbOnpydO1nZvIK+CXQDdpsghkfh+7DITZEKcQUD/816ma3fNT034KsBc/HXUBZDwcRJYTNdD6c5k8lQ==","signatures":[{"sig":"MEUCIQCXJrXSGjyfC9drHS2gKmsnZrnCzHGYuzi7KO8xz6lpPwIgZNL4xPdlFCeybrbL76ibemnW45Ik6PPIlrOBwJyFLPI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3391167},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"98cca9e169888c537deb6e217385847134721fe9","scripts":{"tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/python/wrapper.py dist/src/python && cp -r drizzle/ dist/ && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --esm --files src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","audit:fix":"npm audit fix && cd src/web/nextui && npm audit fix && cd ../../site && npm audit fix","local:web":"cd src/web/nextui && npm run dev","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^12.4.1","openai":"^4.38.5","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.27.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","better-sqlite3":"^9.3.0","tiny-invariant":"^1.3.1","fast-deep-equal":"^3.1.3","@anthropic-ai/sdk":"^0.20.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","drizzle-kit":"^0.20.13","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.8","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"langfuse":"^3.7.0","googleapis":"^134.0.0","@azure/identity":"^4.0.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.60.0_1716662531812_0.9514165140352533","host":"s3://npm-registry-packages"}},"0.61.0":{"name":"promptfoo","version":"0.61.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.61.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"89fa01dbb3680f8de0da4e33ada34f1e8f8849a3","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.61.0.tgz","fileCount":433,"integrity":"sha512-8gE1XG61ak8gXIfyIhMV/3wDW2ZSDmb1AeQhLlchA4FqwWft3krQcwv/W1LcEq/YYw5kXcoBT6d/hZQmIpJj5w==","signatures":[{"sig":"MEQCIC9Ov2JGRBfHHxdYZNvMzOXDGcTUil0qlDfrf4+s1UQsAiADBD523TvqV1uSAZqHiql/fC9AP5JK8YnoDe+zphOylQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3450671},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=16"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"1018555eba40f8dec74ceaa17c38a28e84003e2f","scripts":{"bin":"dist/src/main.js","tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/python/wrapper.py dist/src/python && cp -r drizzle/ dist/ && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","prepare":"npm run install:nextui && npm run build:clean && npm run build","audit:fix":"npm audit fix && cd src/web/nextui && npm audit fix && cd ../../site && npm audit fix","local:web":"cd src/web/nextui && npm run dev","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","install:nextui":"cd src/web/nextui && npm install"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.12.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^12.4.1","openai":"^4.38.5","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.3.8","replicate":"^0.27.1","socket.io":"^4.6.1","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","better-sqlite3":"^9.3.0","tiny-invariant":"^1.3.1","fast-deep-equal":"^3.1.3","@anthropic-ai/sdk":"^0.20.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"^13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","cloudflare":"^3.2.0","typescript":"^5.0.4","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","drizzle-kit":"^0.20.13","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.8","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"peerDependencies":{"langfuse":"^3.7.0","googleapis":"^134.0.0","@azure/identity":"^4.0.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.61.0_1717051824231_0.818327165154084","host":"s3://npm-registry-packages"}},"0.62.0":{"name":"promptfoo","version":"0.62.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.62.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"4cb7832012ee8973161bad70d96cc72cce3f8977","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.62.0.tgz","fileCount":438,"integrity":"sha512-yGmHbSGkmu52uuYzyr7qsjofKw7njior6NpS+89H99nazHRZBjCauSmoQhdciDoGM/dHjQ/A9eYxUCREQulnZA==","signatures":[{"sig":"MEYCIQDQiGDdPswnYwB4CMGWiU9laB285v9D0tyexVivKD+hLAIhALeN5hL5zcM3Gg0v0Vt7D44bIDHHK1j/DkBI5yM5TCDA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3507801},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"e72e901229baf95107debc3c64849665960fa60d","scripts":{"bin":"dist/src/main.js","tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/python/wrapper.py dist/src/python && rm -rf dist/drizzle && cp -r drizzle/ dist/drizzle && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && cd src/web/nextui && npm audit fix && cd ../../site && npm audit fix","local:web":"cd src/web/nextui && npm run dev","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","format:check":"prettier --check .","install:nextui":"cd src/web/nextui && npm install","prepublishOnly":"npm run build:clean && npm run build"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.5.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.13.1","dependencies":{"ajv":"^8.14.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^12.4.1","openai":"^4.38.5","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.5.3","replicate":"^0.27.1","socket.io":"^4.7.2","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","better-sqlite3":"^10.1.0","tiny-invariant":"^1.3.1","fast-deep-equal":"^3.1.3","@anthropic-ai/sdk":"^0.20.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","cloudflare":"^3.2.0","typescript":"^5.1.6","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","drizzle-kit":"^0.20.13","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.10","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0","check-dependency-version-consistency":"^4.1.0"},"peerDependencies":{"langfuse":"^3.7.0","googleapis":"^134.0.0","@azure/identity":"^4.0.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.62.0_1717624306737_0.07447672410444106","host":"s3://npm-registry-packages"}},"0.62.1":{"name":"promptfoo","version":"0.62.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.62.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"5a9c5cafb0a3207b940b87f58c80b7c90e3f1bd8","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.62.1.tgz","fileCount":438,"integrity":"sha512-jaRN2K2FHeYM8ad4MEBI62g3f0LYHBz2TyYY299sZagPPNwKccqd+jZzDjZTb8ELO5k2P3Q0o+JNDYW/DTTPOA==","signatures":[{"sig":"MEYCIQCxQw8gGr0CdvlM1Qln79TlEkRv3k9ONmZ5pQwTIkFPbQIhALkkSXE0bnJIaiLipj/FTAi9i/6OyWlTKE8buuZoQLnM","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3509023},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"8755b6a5cd567426427754bd9d823cc630f07a70","scripts":{"bin":"dist/src/main.js","tsc":"tsc","test":"jest","build":"tsc && cp src/*.html dist/src && cp src/python/wrapper.py dist/src/python && rm -rf dist/drizzle && cp -r drizzle/ dist/drizzle && npm run build:nextui && chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && cd src/web/nextui && npm audit fix && cd ../../site && npm audit fix","local:web":"cd src/web/nextui && npm run dev","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"cd src/web/nextui && npm run build && { [ -z \"$NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER\" ] && cp -r out/ ../../../dist/src/web/nextui; } || true","format:check":"prettier --check .","install:nextui":"cd src/web/nextui && npm install","prepublishOnly":"npm run build:clean && npm run build"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.5.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.13.1","dependencies":{"ajv":"^8.14.0","cors":"^2.8.5","glob":"^10.2.6","uuid":"^9.0.0","async":"^3.2.4","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^12.4.1","openai":"^4.38.5","opener":"^1.5.2","semver":"^7.5.3","express":"^4.18.2","js-yaml":"^4.1.0","winston":"^3.8.2","chokidar":"^3.5.3","debounce":"^1.2.1","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.5.3","replicate":"^0.27.1","socket.io":"^4.7.2","cli-table3":"^0.6.3","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.3.1","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.3.2","better-sqlite3":"^10.1.0","tiny-invariant":"^1.3.1","fast-deep-equal":"^3.1.3","@anthropic-ai/sdk":"^0.20.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^10.1.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","next":"13.4.13","ts-jest":"^29.1.0","ts-node":"^10.9.1","prettier":"^2.8.8","babel-jest":"^29.5.0","cloudflare":"^3.2.0","typescript":"^5.1.6","@types/cors":"^2.8.13","@types/glob":"^8.1.0","@types/jest":"^29.5.1","@types/uuid":"^9.0.2","drizzle-kit":"^0.20.13","@types/async":"^3.2.20","@types/opener":"^1.4.0","@types/semver":"^7.5.0","@types/express":"^4.17.17","@types/js-yaml":"^4.0.5","@azure/identity":"^4.0.0","@types/debounce":"^1.2.1","@types/nunjucks":"^3.2.2","@types/node-fetch":"^2.6.4","@types/compression":"^1.7.2","@types/cli-progress":"^3.11.0","@types/cache-manager":"^4.0.2","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.10","@types/cache-manager-fs-hash":"^0.0.1","@aws-sdk/client-bedrock-runtime":"^3.458.0","check-dependency-version-consistency":"^4.1.0"},"peerDependencies":{"langfuse":"^3.7.0","googleapis":"^134.0.0","@azure/identity":"^4.0.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.62.1_1717698341440_0.13051898123047034","host":"s3://npm-registry-packages"}},"0.63.0":{"name":"promptfoo","version":"0.63.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.63.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"8e5e946b81460242856d133ee92a39c0188520af","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.63.0.tgz","fileCount":441,"integrity":"sha512-CxvjspNRBpAt54GyHkXVylzxaVg2atQEae5Ca1bwN46efnpHpJKCs2HdjJyYPTK6ykuhg9pGoZIXGIkD+28XWQ==","signatures":[{"sig":"MEUCIGlFpIWxuFmKcmGVt5TvB+88i+zBoFD5UX16wwvhtlaQAiEAt8jjYEi5u+priitDwA6JF+4+UNmdymgJGFdC/ZwKcdM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3526261},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"7f81907a3aa9d77b5cd1281ac914b8418910e5df","scripts":{"bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.16.0","cors":"^2.8.5","glob":"^10.4.1","uuid":"^9.0.1","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^12.4.1","openai":"^4.49.1","opener":"^1.5.2","semver":"^7.6.2","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.0","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^8.2.6","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.5.6","replicate":"^0.30.1","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^10.1.0","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","@anthropic-ai/sdk":"^0.20.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","eslint":"^8.57.0","ts-node":"^10.9.2","prettier":"^3.3.1","@swc/core":"^1.5.25","@swc/jest":"^0.2.36","@eslint/js":"^9.4.0","cloudflare":"^3.2.0","typescript":"^5.4.5","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^9.0.8","drizzle-kit":"^0.20.13","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.2.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.12.0","@types/compression":"^1.7.5","@types/cli-progress":"^3.11.5","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.10","@types/cache-manager-fs-hash":"^0.0.4","@aws-sdk/client-bedrock-runtime":"^3.592.0","check-dependency-version-consistency":"^4.1.0"},"peerDependencies":{"langfuse":"^3.7.0","googleapis":"^134.0.0","@azure/identity":"^4.0.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.63.0_1717975759430_0.9209691647100209","host":"s3://npm-registry-packages"}},"0.63.1":{"name":"promptfoo","version":"0.63.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.63.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"a8075b30159bd45c22ec8517e6bae485a58c7953","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.63.1.tgz","fileCount":442,"integrity":"sha512-lr+BK5wg5LOCezF7l3uwIjr00eZWPEhuJr62oOShwN46Rt+POKtoZGug6gxYnpOZ/gDdVGY6KVCD/hT3Fz5Kag==","signatures":[{"sig":"MEUCIQD0wZ0obDacCFxz4rY32K9GZn8EhBtH9lt6tjrkbj7B0AIgUdwlg9sC0ySR2YCaZNrke+qrI7uCbd7YGapNvKY+o3s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3557608},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"f35066a8779958ef0c4b976fe96da8808776b290","scripts":{"bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.5.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.13.1","dependencies":{"ajv":"^8.16.0","cors":"^2.8.5","glob":"^10.4.1","uuid":"^9.0.1","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^12.4.1","openai":"^4.49.1","opener":"^1.5.2","semver":"^7.6.2","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.0","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^8.2.6","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.5.6","replicate":"^0.30.1","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^10.1.0","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","@anthropic-ai/sdk":"^0.20.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","eslint":"^8.57.0","ts-node":"^10.9.2","@swc/cli":"^0.3.12","prettier":"^3.3.1","@swc/core":"^1.5.27","@swc/jest":"^0.2.36","@eslint/js":"^9.4.0","cloudflare":"^3.2.0","typescript":"^5.4.5","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^9.0.8","drizzle-kit":"^0.20.13","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.2.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.12.0","@types/compression":"^1.7.5","@types/cli-progress":"^3.11.5","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.10","@types/cache-manager-fs-hash":"^0.0.4","@aws-sdk/client-bedrock-runtime":"^3.592.0","check-dependency-version-consistency":"^4.1.0"},"peerDependencies":{"langfuse":"^3.7.0","googleapis":"^134.0.0","@azure/identity":"^4.0.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.63.1_1718050266162_0.014433758882115066","host":"s3://npm-registry-packages"}},"0.63.2":{"name":"promptfoo","version":"0.63.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.63.2","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"13c9f3ca21145131ee08d8bc86f1a8c88088a653","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.63.2.tgz","fileCount":442,"integrity":"sha512-1tYhEyNtaYbFkWl/KOk3tFcPmXUvWeij8V06bu4u+euxGX/Cld/sEAtCwg6ZFzOWhajCliwjwCT9B7fgFugEiw==","signatures":[{"sig":"MEYCIQCqftsKMaH8odCFE3iGyZEHz8SFRS+CsJE1MziAFTfdFQIhAJSQFvGQvW8PeTB9oQuLDJanKSCKHZwSG/iL/xolVW5A","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3558024},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"e40e7e153e53bf9366fb9e197222e9b8f68ba1c6","scripts":{"bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.5.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.13.1","dependencies":{"ajv":"^8.16.0","cors":"^2.8.5","glob":"^10.4.1","uuid":"^9.0.1","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^12.4.1","openai":"^4.49.1","opener":"^1.5.2","semver":"^7.6.2","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.0","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^8.2.6","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.5.6","replicate":"^0.30.1","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^10.1.0","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","@anthropic-ai/sdk":"^0.20.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","eslint":"^8.57.0","ts-node":"^10.9.2","@swc/cli":"^0.3.12","prettier":"^3.3.1","@swc/core":"^1.5.27","@swc/jest":"^0.2.36","@eslint/js":"^9.4.0","cloudflare":"^3.2.0","typescript":"^5.4.5","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^9.0.8","drizzle-kit":"^0.20.13","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.2.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.12.0","@types/compression":"^1.7.5","@types/cli-progress":"^3.11.5","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.10","@types/cache-manager-fs-hash":"^0.0.4","@aws-sdk/client-bedrock-runtime":"^3.592.0","check-dependency-version-consistency":"^4.1.0"},"peerDependencies":{"langfuse":"^3.7.0","googleapis":"^134.0.0","@azure/identity":"^4.0.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.63.2_1718060468310_0.4692419148536737","host":"s3://npm-registry-packages"}},"0.64.0":{"name":"promptfoo","version":"0.64.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.64.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"3374badac07076bd42a6d4f44306fbd0c9c9db5d","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.64.0.tgz","fileCount":459,"integrity":"sha512-oFz+v3tv6Mbnphhp6j4TvDnQWsHGwiI6iT73AOsJZKKOPwlZEwnlG3A/ndPMb8Cgi79SxerM/ravAb6J/MBmPw==","signatures":[{"sig":"MEUCIQDlPMKYjlURtE+/PnYNy8lgKmZK2iUc0xu/lHq6CwqtMAIgQqA9KbGYKgXPmKDnEhciuN2E1aXRzNVIQdWrL/IAyc8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3666946},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"e686d1faa7024ea19d35380b50d7118fc0288817","scripts":{"bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.16.0","cors":"^2.8.5","glob":"^10.4.1","rfdc":"^1.4.1","uuid":"^9.0.1","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^12.4.1","openai":"^4.51.0","opener":"^1.5.2","semver":"^7.6.2","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.0","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^8.2.6","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.5.6","replicate":"^0.30.2","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^10.1.0","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","@anthropic-ai/sdk":"^0.23.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","eslint":"^8.57.0","ts-node":"^10.9.2","@swc/cli":"^0.3.12","prettier":"^3.3.1","@swc/core":"^1.5.27","@swc/jest":"^0.2.36","@eslint/js":"^9.4.0","cloudflare":"^3.2.0","typescript":"^5.4.5","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^9.0.8","drizzle-kit":"^0.20.13","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.2.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.12.0","@types/compression":"^1.7.5","@types/cli-progress":"^3.11.5","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.10","@types/cache-manager-fs-hash":"^0.0.4","@aws-sdk/client-bedrock-runtime":"^3.598.0","check-dependency-version-consistency":"^4.1.0"},"peerDependencies":{"langfuse":"^3.7.0","googleapis":"^134.0.0","@azure/identity":"^4.0.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.64.0_1718480246563_0.3082631998214558","host":"s3://npm-registry-packages"}},"0.65.0":{"name":"promptfoo","version":"0.65.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.65.0","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"9dee6d702ed8b73d4242741318deced9927d2a85","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.65.0.tgz","fileCount":463,"integrity":"sha512-i5d62pfM5f1nv0MhcBWoxDLAQsG/P3EWwTdzmBoJAMocoeW64yA8+32zDpwdi1uZp37VwOP78nt36Hjc75mmBw==","signatures":[{"sig":"MEUCICuEY9JTOvHxCKf0ecYk6Ulu7EC+uC9EfGY40slPeHcbAiEA3BQVtZSlgPX7rHcVln8mbUebKFEOVfvOsR0RreoIeZQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3674881},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"bab5528e62f74baed4a567dd5f108270aa59728d","scripts":{"bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.5.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.13.1","dependencies":{"ajv":"^8.16.0","cors":"^2.8.5","glob":"^10.4.1","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^12.4.1","openai":"^4.51.0","opener":"^1.5.2","semver":"^7.6.2","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.0","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^8.2.6","nunjucks":"^3.2.4","commander":"^10.0.1","csv-parse":"^5.5.6","replicate":"^0.30.2","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^10.1.0","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","@anthropic-ai/sdk":"^0.23.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","eslint":"^8.57.0","ts-node":"^10.9.2","@swc/cli":"^0.3.12","prettier":"^3.3.2","@swc/core":"^1.6.0","@swc/jest":"^0.2.36","@eslint/js":"^9.5.0","cloudflare":"^3.2.0","typescript":"^5.4.5","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^9.0.8","drizzle-kit":"^0.20.13","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.2.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.13.0","@types/compression":"^1.7.5","@types/cli-progress":"^3.11.5","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.10","@types/cache-manager-fs-hash":"^0.0.4","@aws-sdk/client-bedrock-runtime":"^3.598.0","check-dependency-version-consistency":"^4.1.0"},"peerDependencies":{"langfuse":"^3.7.0","googleapis":"^134.0.0","@azure/identity":"^4.0.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.65.0_1718654111967_0.20747983845744233","host":"s3://npm-registry-packages"}},"0.65.1":{"name":"promptfoo","version":"0.65.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.65.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"e18f0d49deda08e340bd833664ddc9e46e28343e","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.65.1.tgz","fileCount":463,"integrity":"sha512-Bf3dfU4Vi/ls73F9DKgt4TUTROd3T2eVAkqryCI0zcoTxXNsaA9KX+58tdFHu+BK0RplcuJqsWV2gOx0Fovkfw==","signatures":[{"sig":"MEQCIEEaN4AifrXWfje9SYDB3MSS8MUJIKmPYaiLMdu/m8wcAiA/4LYLkW/FNrceHuvm/fyQ4gJR9wjkHFwSxLFRi8QyFw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3682492},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"c3393e39aa94949d0f5179f9b0ee5c22ce957e09","scripts":{"bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.16.0","cors":"^2.8.5","glob":"^10.4.1","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.0","openai":"^4.51.0","opener":"^1.5.2","semver":"^7.6.2","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.0","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^8.2.6","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.30.2","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^11.0.0","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","@anthropic-ai/sdk":"^0.23.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","eslint":"^8.57.0","ts-node":"^10.9.2","@swc/cli":"^0.3.12","prettier":"^3.3.2","@swc/core":"^1.6.1","@swc/jest":"^0.2.36","@eslint/js":"^9.5.0","cloudflare":"^3.2.0","typescript":"^5.4.5","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^9.0.8","drizzle-kit":"^0.20.13","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.2.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.13.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","@types/cli-progress":"^3.11.5","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.10","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.598.0","check-dependency-version-consistency":"^4.1.0"},"peerDependencies":{"langfuse":"^3.7.0","googleapis":"^134.0.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.65.1_1718737100709_0.5769896997204842","host":"s3://npm-registry-packages"}},"0.65.2":{"name":"promptfoo","version":"0.65.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.65.2","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"5ae9bb61bd5841b6bfe5cc3b9188946ba37b5ad1","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.65.2.tgz","fileCount":463,"integrity":"sha512-kpw+fPrwr7B0GV+UENr+HhIv/iSR76SGR3nKZhxmdA6jjTPOy3PfzhV1HdguZA1KEKVeSeOOwtpjQty1Ihi6hQ==","signatures":[{"sig":"MEUCICBbl3nwGSxbD8rRzPKoKJNLyqZKQIE67J4zLxnC24DZAiEAuy3UtdiW8uhLWR8y+TLTfDqBhQwJuHt5S5S5/bjalUo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3684320},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"adf67ab478458d29899d04afb608f57e297c57d1","scripts":{"bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.5.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.13.1","dependencies":{"ajv":"^8.16.0","cors":"^2.8.5","glob":"^10.4.1","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.0","openai":"^4.51.0","opener":"^1.5.2","semver":"^7.6.2","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.0","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^8.2.6","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.30.2","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^11.0.0","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","@anthropic-ai/sdk":"^0.23.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","eslint":"^8.57.0","ts-node":"^10.9.2","@swc/cli":"^0.3.12","prettier":"^3.3.2","@swc/core":"^1.6.1","@swc/jest":"^0.2.36","@eslint/js":"^9.5.0","cloudflare":"^3.2.0","typescript":"^5.4.5","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^9.0.8","drizzle-kit":"^0.20.13","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.2.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.13.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","@types/cli-progress":"^3.11.5","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.10","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.598.0","check-dependency-version-consistency":"^4.1.0"},"peerDependencies":{"langfuse":"^3.7.0","googleapis":"^134.0.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.65.2_1718844681917_0.5489281676470747","host":"s3://npm-registry-packages"}},"0.66.0":{"name":"promptfoo","version":"0.66.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.66.0","homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"cf51f8682fc2baa9dae64937fea34370cdf90ccf","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.66.0.tgz","fileCount":475,"integrity":"sha512-71Oxeq2uqIjmJH/np5PchFKnZwN0fv07NJoz6glU9vfHK6XSSxgld8rejrD7X5owiInwAs7voZrKJbzgw1q5wg==","signatures":[{"sig":"MEUCIGKKZT71orGnz50dN61pnL/ijN5vMgKk1Oiet+gNVSDFAiEAqi4j8FlTe5XayZrlK/yyVdYG88oVNZSrYAFoBmlI0mg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3709256},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"840fcc63673017c7ff0bdc1ac9cfb4b4604f432a","scripts":{"bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.5.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.13.1","dependencies":{"ajv":"^8.16.0","cors":"^2.8.5","glob":"^10.4.1","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.0","openai":"^4.52.0","opener":"^1.5.2","semver":"^7.6.2","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.0","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^8.2.6","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.30.2","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^11.0.0","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","@anthropic-ai/sdk":"^0.24.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","eslint":"^8.57.0","ts-node":"^10.9.2","@swc/cli":"^0.3.12","prettier":"^3.3.2","@swc/core":"^1.6.1","@swc/jest":"^0.2.36","@eslint/js":"^9.5.0","cloudflare":"^3.4.0","typescript":"^5.4.5","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^9.0.8","drizzle-kit":"^0.20.13","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.3.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.13.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","@types/cli-progress":"^3.11.5","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.10","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.602.0","check-dependency-version-consistency":"^4.1.0"},"peerDependencies":{"langfuse":"^3.7.0","googleapis":"^134.0.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.66.0_1719211741864_0.41342173580860475","host":"s3://npm-registry-packages"}},"0.67.0":{"name":"promptfoo","version":"0.67.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.67.0","homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"6b97aa560cafeec60edceb1abd7057bb268ae03c","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.67.0.tgz","fileCount":515,"integrity":"sha512-+Y5SUx1R8czsEccWQSzIeChFSMqBKHNmQV1UsJYz9iS6e5Y3RugFJO/stdQd2lNsOoseiOOt34gP0AsVanrQ0w==","signatures":[{"sig":"MEUCIBJUL9RjBdo+hGiHUp6fRnvfThKTgqr0JZ2E3NEIRabtAiEAmaCu8LIeyEIAAMClccAUYWLdLne4af0+gx3+vQe2QDQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3746401},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"679d3051f8eaf1e031d372f9c031f2325651fc85","scripts":{"bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.5.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.13.1","dependencies":{"ajv":"^8.16.0","cors":"^2.8.5","glob":"^10.4.1","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.0","openai":"^4.52.0","opener":"^1.5.2","semver":"^7.6.2","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.0","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^8.2.6","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.30.2","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^11.0.0","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","@anthropic-ai/sdk":"^0.24.0","@googleapis/sheets":"^8.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","eslint":"^8.57.0","ts-node":"^10.9.2","@swc/cli":"^0.3.12","prettier":"^3.3.2","@swc/core":"^1.6.1","@swc/jest":"^0.2.36","@eslint/js":"^9.5.0","cloudflare":"^3.4.0","typescript":"^5.4.5","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^9.0.8","drizzle-kit":"^0.20.13","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.3.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.13.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","@types/cli-progress":"^3.11.5","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.10","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.602.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.458.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.67.0_1719510815261_0.6486349529629902","host":"s3://npm-registry-packages"}},"0.68.0":{"name":"promptfoo","version":"0.68.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.68.0","homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"5177e3641e014c838d573eaf271841be8b6c29bf","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.68.0.tgz","fileCount":523,"integrity":"sha512-Ah3nACWcGUvZRN+bcsWS79wjdvDJWhk7pleOAquMBMUmaWF/S5IAmCZGiPn4OqIXh9pDMIxh11B/Q7GdT0d+hA==","signatures":[{"sig":"MEUCIENAJZjMLpwbGifESjZgoNWoKwn7tUy4fdNv7mGIbEU+AiEAh8/i+E+PVIcH4wHVXANy9PLkeac6j+Vmtfg/7kMKxG8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3829892},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"6c875652ac5c6d73d850261ca1187f9a743186bd","scripts":{"bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.5.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.13.1","dependencies":{"ajv":"^8.16.0","cors":"^2.8.5","glob":"^10.4.1","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.0","openai":"^4.52.0","opener":"^1.5.2","semver":"^7.6.2","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.0","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^8.2.6","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.30.2","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^11.0.0","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","@anthropic-ai/sdk":"^0.24.0","@googleapis/sheets":"^8.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","eslint":"^8.57.0","ts-node":"^10.9.2","@swc/cli":"^0.3.12","prettier":"^3.3.2","@swc/core":"^1.6.1","@swc/jest":"^0.2.36","@eslint/js":"^9.5.0","cloudflare":"^3.4.0","typescript":"^5.4.5","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^9.0.8","drizzle-kit":"^0.20.13","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.3.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.13.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","@types/cli-progress":"^3.11.5","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.10","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.602.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.68.0_1719879741054_0.8532324762304264","host":"s3://npm-registry-packages"}},"0.68.1":{"name":"promptfoo","version":"0.68.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.68.1","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"6aecc4c4ea4e56b54509703008faa8ccaf2aa301","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.68.1.tgz","fileCount":523,"integrity":"sha512-/UFbWFkqQLgX9Px322eCVyi9OsLPLRXcrvhHtHd2b5pTviDcIqAFDZrywjejq019SIjDYO6GE5l/RS2dv0ItmQ==","signatures":[{"sig":"MEUCIHt8MYoR4a80xHcbGq9+SZQabdc0c92/qZc94sSiOss+AiEA13/z7cZquFQ3K/2U+SBRt3XZjIxIaOXhl1lQ78XZqvs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3831617},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"b4267a03b392f386ce95be6e43565d12bcab97c8","scripts":{"bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.16.0","cors":"^2.8.5","glob":"^10.4.1","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.0","openai":"^4.52.0","opener":"^1.5.2","semver":"^7.6.2","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.0","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^8.2.6","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.30.2","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^11.0.0","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","@anthropic-ai/sdk":"^0.24.0","@googleapis/sheets":"^8.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","eslint":"^8.57.0","ts-node":"^10.9.2","@swc/cli":"^0.3.12","prettier":"^3.3.2","@swc/core":"^1.6.1","@swc/jest":"^0.2.36","@eslint/js":"^9.5.0","cloudflare":"^3.4.0","typescript":"^5.4.5","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^9.0.8","drizzle-kit":"^0.20.13","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.3.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.13.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","@types/cli-progress":"^3.11.5","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.10","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.602.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.68.1_1719947895163_0.19631354093924536","host":"s3://npm-registry-packages"}},"0.68.2":{"name":"promptfoo","version":"0.68.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.68.2","maintainers":[{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"6e09e9b59739a57113f8ab9ad0dc7b57c767f8fb","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.68.2.tgz","fileCount":523,"integrity":"sha512-8bNvwlWTKW/pcUhyWC/nZ1x3rAwNIFetvDRoqjSQZ536LgWcjnzIb5im87gQwEAO3vDvcrd8WQa5vDA4QounHg==","signatures":[{"sig":"MEUCICVtT9xAtJ0jBW9odyZf7RW6MtQX6hEshPVIwI8uPfIKAiEAqstV/2+9Ot3WrZNRwzHA8HhM+xmzYhuCs4ndehiQPhI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3832055},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"ec05eb8edaf53fc09569a353c2c821acbc1113a2","scripts":{"bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.16.0","cors":"^2.8.5","glob":"^10.4.1","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.0","openai":"^4.52.0","opener":"^1.5.2","semver":"^7.6.2","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.0","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^8.2.6","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.30.2","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^11.0.0","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","@anthropic-ai/sdk":"^0.24.0","@googleapis/sheets":"^8.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","eslint":"^8.57.0","ts-node":"^10.9.2","@swc/cli":"^0.3.12","prettier":"^3.3.2","@swc/core":"^1.6.1","@swc/jest":"^0.2.36","@eslint/js":"^9.5.0","cloudflare":"^3.4.0","typescript":"^5.4.5","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^9.0.8","drizzle-kit":"^0.20.13","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.3.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.13.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","@types/cli-progress":"^3.11.5","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.10","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.602.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.68.2_1720022357202_0.06495853229984871","host":"s3://npm-registry-packages"}},"0.68.3":{"name":"promptfoo","version":"0.68.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.68.3","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"a265728f76d894e3af4c0ce6f297c78448137e26","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.68.3.tgz","fileCount":523,"integrity":"sha512-T96bAfTnd2qMZz9WsvkEkiDY/4zXAnOnlBkJdR1X164p3DbB7uIl3vO8tNSLZSQP6WRKRyWyL39+CwzvKAmIfA==","signatures":[{"sig":"MEQCIHjrfdlWBd7gl+aRrMzUGbqElge8eAsu3PoCLOk+OucIAiBdo4a+DU4d1OqKV9DdRW9S5SqQN5QQ2QvD5Ng8l6eP/Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3831013},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"47605f1475bfdbe90f1d103432441d2bf6cb0991","scripts":{"bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.8.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.16.0","cors":"^2.8.5","glob":"^10.4.1","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.0","openai":"^4.52.3","opener":"^1.5.2","semver":"^7.6.2","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.0","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^8.2.6","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.30.2","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^11.0.0","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","@anthropic-ai/sdk":"^0.24.0","@googleapis/sheets":"^8.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","eslint":"^8.57.0","ts-node":"^10.9.2","@swc/cli":"^0.3.12","prettier":"^3.3.2","@swc/core":"^1.6.1","@swc/jest":"^0.2.36","@eslint/js":"^9.5.0","cloudflare":"^3.4.0","typescript":"^5.4.5","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^9.0.8","drizzle-kit":"^0.20.13","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.3.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.13.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","@types/cli-progress":"^3.11.5","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.10","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.602.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.68.3_1720059568626_0.051958116615635985","host":"s3://npm-registry-packages"}},"0.69.0":{"name":"promptfoo","version":"0.69.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.69.0","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"95a7e12b54cd7a82d185f2c1d199292c32db6aab","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.69.0.tgz","fileCount":494,"integrity":"sha512-q0/64uHFo1lRvZLclyOWvAC3MxsL6kuHzTPE/i/7PL0aOpZ038awjmR4s/6WNQi+WEOHt4BHUmkaJ8msTKmU1g==","signatures":[{"sig":"MEUCIQCSxk3baBdv62ZKaJSZWYay0NG7bwSSK6Wl5b1+lWRaTAIgE33IHpQNWoIeAKenp58urY3JP0m05a7LgTu4aKDdl80=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3770092},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"846a7ed479aeb29fde5577925a3e9b3ec8d63d87","scripts":{"bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.16.0","cors":"^2.8.5","glob":"^10.4.1","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.0","openai":"^4.52.3","opener":"^1.5.2","semver":"^7.6.2","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.0","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^8.2.6","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.31.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^11.0.0","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","@anthropic-ai/sdk":"^0.24.0","@googleapis/sheets":"^8.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","eslint":"^8.57.0","ts-node":"^10.9.2","@swc/cli":"^0.3.12","prettier":"^3.3.2","@swc/core":"^1.6.1","@swc/jest":"^0.2.36","@eslint/js":"^9.5.0","cloudflare":"^3.4.0","typescript":"^5.4.5","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^9.0.8","drizzle-kit":"^0.20.13","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.3.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.13.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","@types/cli-progress":"^3.11.5","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.10","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.602.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.69.0_1720163881309_0.6041099935808094","host":"s3://npm-registry-packages"}},"0.69.1":{"name":"promptfoo","version":"0.69.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.69.1","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"092132fce7060c726eaac56ae41977b5b80626ac","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.69.1.tgz","fileCount":494,"integrity":"sha512-xRp50Kf3+45lvr4LIXzpk9ddjNRzTGLRUK/B1hu/FXzhKMLa4/iu0cHH7LPRVMA4QEgZzazPbtssK5SAoxkiRw==","signatures":[{"sig":"MEUCIQCYabogBPnDT5B0SqhI1SAs0J018HefJjPvMwsGsLliWwIgL3rZABjnjNOCdY7U+EW7c0EpkTyAWUwqdyD/vVUj/MI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3817905},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"2d41473ac42d0601eafaec05fcc617b61c46f6d1","scripts":{"bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.8.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.16.0","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.2","openai":"^4.52.3","opener":"^1.5.2","semver":"^7.6.2","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.0","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^8.2.6","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.31.1","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","@anthropic-ai/sdk":"^0.24.3","@googleapis/sheets":"^9.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","eslint":"^8.57.0","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.2","@swc/core":"^1.6.13","@swc/jest":"^0.2.36","@eslint/js":"^9.6.0","cloudflare":"^3.4.0","typescript":"^5.5.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.20.13","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.3.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.15.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.609.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.69.1_1720304621521_0.2623417976886706","host":"s3://npm-registry-packages"}},"0.69.2":{"name":"promptfoo","version":"0.69.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.69.2","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"01254da15d5786aa61838667c408ff5e9c3e2880","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.69.2.tgz","fileCount":494,"integrity":"sha512-PLlP7VXVu0IG6ZkRormlMQtiYO9Cxyl+IUwlMh4FC/L+2CPnmLsF3qmb8mz+gtRzQH3feqDaIrR3tT7XSazJ+A==","signatures":[{"sig":"MEQCIEzafS+HG1aODJEzpbGOdMDOXE5EJ44i3laz1MNKUFYZAiAOSxuXwqde1+RXHmcDWSDgXOkxfYIxfsa0h+mrIuLHig==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3820308},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"795ff5d7def43953138254f8a9b65a59bbfa72ca","scripts":{"bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.16.0","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.2","openai":"^4.52.3","opener":"^1.5.2","semver":"^7.6.2","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.0","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^8.2.6","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.31.1","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","@anthropic-ai/sdk":"^0.24.3","@googleapis/sheets":"^9.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","eslint":"^8.57.0","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.2","@swc/core":"^1.6.13","@swc/jest":"^0.2.36","@eslint/js":"^9.6.0","cloudflare":"^3.4.0","typescript":"^5.5.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.20.13","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.3.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.15.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.609.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.69.2_1720429991093_0.44517564845043234","host":"s3://npm-registry-packages"}},"0.70.0":{"name":"promptfoo","version":"0.70.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.70.0","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"1d57da2179709abcc882e01f386e295a98cf8495","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.70.0.tgz","fileCount":514,"integrity":"sha512-kypElYWgX19Jt59LfwCzWAZD2/9Md4SdUE8+n8czW+6IyEzbLKzjluEXc4cJTkkrb8bUFNQG/b11NJpwN3PVuA==","signatures":[{"sig":"MEUCIEKnLbRq7gVN21ZulwKi7SNWCCinbgXCu8rsZHrTKL/GAiEAuCvUjWWWGK7P/9SDn9HQ0rMLF3nI3vt13mLqQn7b5R0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3843764},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"950cbbaee408a3bb17e43ce2f5201bcfee998897","scripts":{"bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.2.3","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"18.19.0","dependencies":{"ajv":"^8.16.0","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.2","openai":"^4.52.3","opener":"^1.5.2","semver":"^7.6.2","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.0","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^8.2.6","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.31.1","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","@anthropic-ai/sdk":"^0.24.3","@googleapis/sheets":"^9.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","eslint":"^8.57.0","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.2","@swc/core":"^1.6.13","@swc/jest":"^0.2.36","@eslint/js":"^9.6.0","cloudflare":"^3.4.0","typescript":"^5.5.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.20.13","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.3.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.15.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.609.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.70.0_1720588178411_0.5889960938488068","host":"s3://npm-registry-packages"}},"0.70.1":{"name":"promptfoo","version":"0.70.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.70.1","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"bcf7abfafdcf5b2701af7c74a7c0439ddf6b0217","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.70.1.tgz","fileCount":514,"integrity":"sha512-HPCk1oRQPkFH3+/yGGGS6wzKkIyHHx11KC6AaoQaP7y3hk+hOmwKGsLfwXyUABqpilQSfdu33inREtaMLYLEaA==","signatures":[{"sig":"MEYCIQC6tM7LH0oYUiiMGLs6beeUq5NH0FOVZRWkHR6SZiuhwAIhAJwZHndI9hj8G35gOHz6JWOXYOZhhR9m/H+Fp5ukw6Cn","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3845230},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"cd74eb4a5c49e138bf34bea73e5c6e06839493b5","scripts":{"bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.8.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.16.0","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.2","openai":"^4.52.3","opener":"^1.5.2","semver":"^7.6.2","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.0","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^8.2.6","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.31.1","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.29.3","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","@anthropic-ai/sdk":"^0.24.3","@googleapis/sheets":"^9.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","eslint":"^8.57.0","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.2","@swc/core":"^1.6.13","@swc/jest":"^0.2.36","@eslint/js":"^9.6.0","cloudflare":"^3.4.0","typescript":"^5.5.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.20.13","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.3.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.15.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.609.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.70.1_1720678503415_0.8374600759563664","host":"s3://npm-registry-packages"}},"0.71.0":{"name":"promptfoo","version":"0.71.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.71.0","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"601e0d588d15cd2451eacf3c6260f6d6510dca1f","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.71.0.tgz","fileCount":558,"integrity":"sha512-l/9+JN7T3+rUp0lzSW+qZadrwuH31qHu2ECfn+M1ZD5JIctO7s1hf4CNwepCw6xvIf9JswOQkP3zDLp+x4ppjA==","signatures":[{"sig":"MEQCIAkt2thePJkbt+LrLMSFTX/DQf0yhroHFAikyXlpZaJGAiAOVDhDbqcbEtx6n2+kFtAdYcEjja5courLXz27b37pig==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3889331},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"1b41db56f010378956da2f0f5abecc732eeac797","scripts":{"bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.8.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.2","openai":"^4.52.7","opener":"^1.5.2","semver":"^7.6.2","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.1","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^8.2.6","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.31.1","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.32.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","@anthropic-ai/sdk":"^0.24.3","@googleapis/sheets":"^9.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","eslint":"^8.57.0","esbuild":"^0.23.0","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.6.13","@swc/jest":"^0.2.36","@eslint/js":"^9.7.0","cloudflare":"^3.4.0","typescript":"^5.5.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.0","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.7.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.3.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.16.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.614.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.71.0_1721052285039_0.48547262769263444","host":"s3://npm-registry-packages"}},"0.71.1":{"name":"promptfoo","version":"0.71.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.71.1","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"585980de992a31e0b16945d2ff92faf645eaaa45","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.71.1.tgz","fileCount":558,"integrity":"sha512-/bJnqTLSfD63VfSumEQT5nahk2AcfvT/UsdJsTjUymHg5n7/hK861YAym9zankXIp2jcw8TkfHpmNQEu0A7MOg==","signatures":[{"sig":"MEYCIQDUO3Kx6oiCXNkknDEE04lz1loncT1pAc7l1SX8pB6y7gIhANowPrTJb92KAUKsNN5b+JwtHwyBPWbE4dRbnIIWKDQd","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3897723},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"311e09518d7bc3c8ed00e5ddf11c2be3e8eccd2b","scripts":{"bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.8.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.2","openai":"^4.52.7","opener":"^1.5.2","semver":"^7.6.2","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.1","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^8.2.6","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.31.1","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.32.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.0","@anthropic-ai/sdk":"^0.24.3","@googleapis/sheets":"^9.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","eslint":"^8.57.0","esbuild":"^0.23.0","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.6.13","@swc/jest":"^0.2.36","@eslint/js":"^9.7.0","cloudflare":"^3.4.0","typescript":"^5.5.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.0","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.7.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.3.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.16.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.614.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.71.1_1721077513492_0.712798531010163","host":"s3://npm-registry-packages"}},"0.72.0":{"name":"promptfoo","version":"0.72.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.72.0","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"35dc4414b725e2917744a03a81cad430625c2226","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.72.0.tgz","fileCount":561,"integrity":"sha512-7af32+QjBCARFAR5DOi39EAFwjM7WJrx4DAgqjadOC+OItlRoti/60p4sIIg3VaSxQVCZkwYQxYaRnc6j+ukgw==","signatures":[{"sig":"MEYCIQC3kk/3VioYARvyLd9/g3J/ZMwtss2TJ+jghFuO/q7kmAIhALVK/YeiDzRKUjVXxVNjqJTwOpCYXSFQkImIJfUQZWbo","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3818136},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"02d3585322f0c1dadcd0fa9478da3d063929d70d","scripts":{"bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.5.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.13.1","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.2","openai":"^4.52.7","opener":"^1.5.2","semver":"^7.6.2","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.1","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^8.2.6","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.31.1","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.32.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.0","@anthropic-ai/sdk":"^0.24.3","@googleapis/sheets":"^9.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","eslint":"^8.57.0","esbuild":"^0.23.0","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.6.13","@swc/jest":"^0.2.36","@eslint/js":"^9.7.0","cloudflare":"^3.4.0","typescript":"^5.5.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.0","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.7.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.3.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.16.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.614.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.72.0_1721182714211_0.43663055823795505","host":"s3://npm-registry-packages"}},"0.72.1":{"name":"promptfoo","version":"0.72.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.72.1","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"13cc8fe3fd331853320f40603ba718107cb0f0b9","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.72.1.tgz","fileCount":561,"integrity":"sha512-pTona0+meiZHZ/02/QXZ01+Ch3PCK8fO0hCaesp00a9He5rfc82Ejj2eRNNtgDkX9DwfdcAfwyuKQuBJJbnrJQ==","signatures":[{"sig":"MEUCIQCRe5YU3VtTBNFffYu4k5PLB8bqLkjcCDMD3KN+D8hkZQIgH4tNUlAZTa61TlK0/vKdOV9QZdeE0T9iz+2siKMN3f4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5383771},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"0581ed6b2903950e684930b70ff94f67bb812e55","scripts":{"bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.8.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.2","openai":"^4.52.7","opener":"^1.5.2","semver":"^7.6.2","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.1","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^10.0.2","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.31.1","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.32.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.0","@anthropic-ai/sdk":"^0.24.3","@googleapis/sheets":"^9.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","eslint":"^8.57.0","esbuild":"^0.23.0","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.6.13","@swc/jest":"^0.2.36","@eslint/js":"^9.7.0","cloudflare":"^3.4.0","typescript":"^5.5.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.0","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.7.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.3.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.16.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.614.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.72.1_1721272658152_0.20874302725013005","host":"s3://npm-registry-packages"}},"0.72.2":{"name":"promptfoo","version":"0.72.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.72.2","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"ddf9d681c16b813b8fccf4bca9c0c881fc495a98","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.72.2.tgz","fileCount":561,"integrity":"sha512-eNd9jnAA4GDu6CXC5HG9r2IIJz03el7u/ck3glrfT+lBh/REe3kbU5cDh737uDFOuTXG3IXGvBbx3a1qztAT5w==","signatures":[{"sig":"MEYCIQCXIIMcpWyUN3CxcH5kNnwOZjrNXV301/AFDaqS3v4OkgIhANBG7XWPKtnm2RUjJAzJgwsLGk0dnf2/lLK0FuXmvqoQ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5442081},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"cdb688b043bbe08b85e69dbb45f3b85aeb4ac99d","scripts":{"bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.8.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.2","openai":"^4.52.7","opener":"^1.5.2","semver":"^7.6.2","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.1","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^10.0.2","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.31.1","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.32.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.0","@anthropic-ai/sdk":"^0.24.3","@googleapis/sheets":"^9.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","eslint":"^8.57.0","esbuild":"^0.23.0","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.6.13","@swc/jest":"^0.2.36","@eslint/js":"^9.7.0","cloudflare":"^3.4.0","typescript":"^5.5.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.0","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.7.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.3.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.16.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.614.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.72.2_1721404355632_0.5515001505392845","host":"s3://npm-registry-packages"}},"0.73.0":{"name":"promptfoo","version":"0.73.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.73.0","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"0f158748de19f058afc0305f64f48f3e27136d71","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.73.0.tgz","fileCount":792,"integrity":"sha512-CExP/CNDi7vuRJh8A75OppwTTHVukFK+28wBW3pXw+T0oGSWPmoVBkE+ndhahofgUBpSWqAqABWfNW9HiB5OkA==","signatures":[{"sig":"MEQCIG7LAKy5kmkQ6BbEqoJelySgUP0S3ft6/vA3PbWj62nWAiA96fS3wcf+CslXYrcxQxEyRpeKa94kfV75DKg5ldmAOw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6493955},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"b929bd8c8a09436bd8ab3fac5aaffb441d4872f7","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"ianw","email":"ianw_npm@ianww.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.5.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.13.1","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.3","openai":"^4.52.7","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.1","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^10.0.4","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.31.1","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.32.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.0","@anthropic-ai/sdk":"^0.24.3","@googleapis/sheets":"^9.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","madge":"^7.0.0","eslint":"^8.57.0","esbuild":"^0.23.0","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.0","@swc/jest":"^0.2.36","@eslint/js":"^9.7.0","cloudflare":"^3.4.0","typescript":"^5.5.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.0","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.7.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.16.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","zod-to-json-schema":"^3.23.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.616.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.73.0_1721639310069_0.9118037525043277","host":"s3://npm-registry-packages"}},"0.73.1":{"name":"promptfoo","version":"0.73.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.73.1","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"af25fdd231259c77db9e56ba6577ab66a9e33339","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.73.1.tgz","fileCount":792,"integrity":"sha512-cvFN8LrfPJp5Ef6fbK741Zqk5MnFbsQ7gKIdl6qMkhVrwRAkSh7rRurKz8mazWpaG06ViBqjBvXzF1cCDdTJLA==","signatures":[{"sig":"MEUCIQCAtwv/+3zoQDAkeXfSpUNuCytii1yW8p2ptL1y0xon/wIgQ24Bc2Wf7p60C+HqY7Kwk5u6YjieXohiBUNzOBr3whQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6492343},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"483e24f454e3044f1e4189d8dfd199e50af56528","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.8.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.3","openai":"^4.52.7","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.1","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^10.0.4","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.31.1","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.32.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.0","@anthropic-ai/sdk":"^0.24.3","@googleapis/sheets":"^9.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","madge":"^7.0.0","eslint":"^8.57.0","esbuild":"^0.23.0","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.0","@swc/jest":"^0.2.36","@eslint/js":"^9.7.0","cloudflare":"^3.4.0","typescript":"^5.5.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.0","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.7.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.16.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","zod-to-json-schema":"^3.23.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.616.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.73.1_1721655520815_0.46332907138863333","host":"s3://npm-registry-packages"}},"0.73.2":{"name":"promptfoo","version":"0.73.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.73.2","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"f056f26fb78e320164e5e81a756db7adb49c3002","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.73.2.tgz","fileCount":792,"integrity":"sha512-8ztr6bQ5D1tUKu5WmTmRQAvM4Oz/nWxUTHfK1mJ5FWZKTHFKlqQUMk+CytNyzWKqQIEXJI/QtoyU/2Xt2NOysw==","signatures":[{"sig":"MEYCIQDMFXtTw1vQPs/wc0E9BtibmeXsWqhMEa7ER6Xq4yzj0gIhAPwwvISIyT4mX8tzcxyC9t07mmxYRVJ5HzhaFkkqR01k","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6510116},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"9d35f12191589f060dd23a05ab38fb094f5a1687","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.8.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.3","openai":"^4.52.7","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.1","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^10.0.4","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.31.1","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.32.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.0","@anthropic-ai/sdk":"^0.24.3","@googleapis/sheets":"^9.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","madge":"^7.0.0","eslint":"^8.57.0","esbuild":"^0.23.0","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.0","@swc/jest":"^0.2.36","@eslint/js":"^9.7.0","cloudflare":"^3.4.0","typescript":"^5.5.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.0","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.7.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.16.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","zod-to-json-schema":"^3.23.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.616.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.73.2_1721698390740_0.8391280282654232","host":"s3://npm-registry-packages"}},"0.73.3":{"name":"promptfoo","version":"0.73.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.73.3","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"e97a8d1827c2f284643a2416ffab71cbbd3c9a18","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.73.3.tgz","fileCount":809,"integrity":"sha512-qQjyQOSMWH+gXDZPXfvryIFHVR8lDmWIyY7nIPiKpmcA3FeE2ygXzB58aC/rl1r1z8WpPaDrGKUtSfypELX/rg==","signatures":[{"sig":"MEUCIF+2eyRndrhrI/2GOTPOqHgC6SYNs3+qZQM59mlAjyLTAiEArawogiv3Jhmeoif0XBIaCkh84N64voympCC1ofivjyc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6161983},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"8e2e6dc84d95987b5a9c7eb8942e8cefb3de2ba7","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.3","openai":"^4.53.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.1","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^10.1.2","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.31.1","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.32.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.0","@anthropic-ai/sdk":"^0.24.3","@googleapis/sheets":"^9.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","madge":"^7.0.0","eslint":"^8.57.0","esbuild":"^0.23.0","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.0","@swc/jest":"^0.2.36","@eslint/js":"^9.7.0","cloudflare":"^3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.0","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.7.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.17.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","zod-to-json-schema":"^3.23.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.616.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.73.3_1721722992558_0.43899734248174216","host":"s3://npm-registry-packages"}},"0.73.4":{"name":"promptfoo","version":"0.73.4","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.73.4","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"502baf001be12f4485467cddd9a3c3a22d29b25f","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.73.4.tgz","fileCount":809,"integrity":"sha512-DuWn6b48mPLpneTQOysLaA6f59zoRUIhQpkaIgbI3e47PJd/y8QlK4fbTAzwxKPfd4ht9cC0cIOGPgpmmkegbA==","signatures":[{"sig":"MEUCIQCmJSNLFi1LTevAKd4wZ5J3MelDaK2R2bPWJ7zX3E9ptQIgFA1xrHhpoLqAxJm1w8LFaB/+vnLYdlOpRtqeNsScOlk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6166067},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"acfd2180b13fb014babdaa9e1b5e828615e64fa5","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.3","openai":"^4.53.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.1","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^10.1.2","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.31.1","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.32.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.0","@anthropic-ai/sdk":"^0.24.3","@googleapis/sheets":"^9.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","madge":"^7.0.0","eslint":"^8.57.0","esbuild":"^0.23.0","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.0","@swc/jest":"^0.2.36","@eslint/js":"^9.7.0","cloudflare":"^3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.0","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.7.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.17.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","zod-to-json-schema":"^3.23.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.616.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.73.4_1721783807487_0.22157461746094986","host":"s3://npm-registry-packages"}},"0.73.5":{"name":"promptfoo","version":"0.73.5","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.73.5","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"43096b6f1b361305794271440a457f5b2c6afbe2","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.73.5.tgz","fileCount":809,"integrity":"sha512-d0M6wkGSpW81rbI1MG+vD6GnzqXDEaTJYgRYAtZONVkVWJUnsqh5/QKbLSb27pAnM/UPlvHnjxmEE2J/Z2sR+g==","signatures":[{"sig":"MEUCIAi25YIlE4wsUkNZN1tXWT39O24RSAnLXofRGSVt/5/+AiEAg4IG9FVoQGgsn5WvBlx9dNxZpZxKp+FC+QMba4QMsJg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6171183},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"6e969bddc8567280a2a4cd708b6222b2f1314cc5","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.3","openai":"^4.53.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.1","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^10.1.2","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.31.1","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^2.1.1","compression":"^1.7.4","drizzle-orm":"^0.32.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.0","@anthropic-ai/sdk":"^0.24.3","@googleapis/sheets":"^9.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","madge":"^7.0.0","eslint":"^8.57.0","esbuild":"^0.23.0","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.0","@swc/jest":"^0.2.36","@eslint/js":"^9.7.0","cloudflare":"^3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.0","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.7.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.17.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","zod-to-json-schema":"^3.23.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.616.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.73.5_1721847935721_0.7884894875087771","host":"s3://npm-registry-packages"}},"0.73.6":{"name":"promptfoo","version":"0.73.6","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.73.6","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"54acd01416497edacf4422d637ebeecce8dd085a","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.73.6.tgz","fileCount":809,"integrity":"sha512-cnUCf8MeHZ90lHgVV/3PQz1q5sV8+xZFpZnnmGM2cG2ldCr4nAJrZCBGeyiWJd6SJNuDDfD3fpGVSN2+HmtTaw==","signatures":[{"sig":"MEUCIF1kbsJfeE4+JaZyTEcHiKDekqRV4x+TfkosoVtrAksTAiEAjmiMo70JxeBMlkO2Asbh0QFfDLNhIIJ282ScClERJmI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6185217},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"26d6ce20f5e5f4de87147ce1ae4b5ae1e064286d","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.3","openai":"^4.53.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.1","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^10.1.2","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.31.1","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.32.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.0","@anthropic-ai/sdk":"^0.24.3","@googleapis/sheets":"^9.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","madge":"^7.0.0","eslint":"^8.57.0","esbuild":"^0.23.0","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.1","@swc/jest":"^0.2.36","@eslint/js":"^9.7.0","cloudflare":"^3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.0","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.7.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.17.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","zod-to-json-schema":"^3.23.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.616.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.73.6_1721919866050_0.0535146586440749","host":"s3://npm-registry-packages"}},"0.73.7":{"name":"promptfoo","version":"0.73.7","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.73.7","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"8e18c856fc600b6c71070e35fe001e4e47a7bd7a","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.73.7.tgz","fileCount":877,"integrity":"sha512-iQqmTjjdfLWOs2IyxpC+sjpmLWD8+Kr/eIYAAq9KdHXaaIeEiB0v2qLiF7pq+jnQy7WQecQ3XLGQ93FDJhVeWQ==","signatures":[{"sig":"MEUCICBzpImNEklOHdFGM8MEg32sDBgSgswebkfabZFK2dn0AiEAuWPRud6iyY01Cfjux+5ZS8TtMWpPOv5HrHB0oAyFO5I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6271513},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"eaabf79b95d3c181bb385cf3a55764fde550dc22","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.3","openai":"^4.53.1","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.1","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^10.1.2","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.32.1","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.0","@anthropic-ai/sdk":"^0.24.3","@googleapis/sheets":"^9.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","madge":"^7.0.0","eslint":"^8.57.0","esbuild":"^0.23.0","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.2","@swc/jest":"^0.2.36","@eslint/js":"^9.7.0","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.0","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.7.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.17.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","zod-to-json-schema":"^3.23.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.620.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.73.7_1722001712303_0.8557072477235117","host":"s3://npm-registry-packages"}},"0.73.8":{"name":"promptfoo","version":"0.73.8","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.73.8","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"46ac9a30fa9fd03c0689187d15a32e34c4384377","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.73.8.tgz","fileCount":901,"integrity":"sha512-yKUbeywdoP471nFR1uCp7ZjnpAA8QXznaFQLB5UeR5C4fsm/Ksbl58Q/SNJ+XcU8NGGfBXI1yPhRJbA/HsBV4A==","signatures":[{"sig":"MEYCIQDjUgtGsS7lX97SKvlod1xDkTXUcOoHE5RKJWj8UaEG0gIhAKdLqWlCoAnRkoGdfLNTyYeXgx8QqbV5QITS55Mm1jA4","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6317755},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"f24f71f9d3d0e67bed3e5cc14dfba25417ef75f8","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.3","openai":"^4.53.1","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.1","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^10.1.2","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.32.1","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.0","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.0","@anthropic-ai/sdk":"^0.24.3","@googleapis/sheets":"^9.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","madge":"^7.0.0","eslint":"^8.57.0","esbuild":"^0.23.0","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.2","@swc/jest":"^0.2.36","@eslint/js":"^9.7.0","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.0","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.7.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.17.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","zod-to-json-schema":"^3.23.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.620.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.73.8_1722235420655_0.04197180738327155","host":"s3://npm-registry-packages"}},"0.73.9":{"name":"promptfoo","version":"0.73.9","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.73.9","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"fee1dce3f6c7f32f23cede892a166e2f389669b1","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.73.9.tgz","fileCount":925,"integrity":"sha512-J/Kj7YZy7Rk9exFwtuT++rh/FCJJYdYXIxecugTjNVO7Fy5yqMg2TO6NgmMTq7V3Q5uuT3/40u60/0ckKAAbEg==","signatures":[{"sig":"MEUCIHHCanur1tZI1+KGUa4Sz9/Qorrj2yh2Qn94Rs3/wgaZAiEArOgd42+5iDuDAnTNaGCtPvgnk7SdE+gRTL00lw5UaWk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6342876},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"a2b3543b0c7f96dc3769fce50300541a491d282b","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.3","openai":"^4.53.2","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.1","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^10.1.6","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.32.1","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.1","@anthropic-ai/sdk":"^0.25.0","@googleapis/sheets":"^9.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","madge":"^7.0.0","eslint":"^8.57.0","esbuild":"^0.23.0","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.3","@swc/jest":"^0.2.36","@eslint/js":"^9.8.0","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.1","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.8.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.621.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.73.9_1722378658122_0.540679930610805","host":"s3://npm-registry-packages"}},"0.74.0":{"name":"promptfoo","version":"0.74.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.74.0","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"d695d32ecccc943f3678ed70144de86f42424d1b","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.74.0.tgz","fileCount":957,"integrity":"sha512-2JR94OirvoBGs0z047raOPui/BZ6UPHOh9uMJoUJstplb0K5uc+YE8Oe0gfelbd6BlV5EBlDCvHt/QxMuTyr/w==","signatures":[{"sig":"MEQCICcEgIc+LkqkOAqh94SRW6HIUo9L873jdsFy6OFirg+8AiBjLVNT4ZEDMBEu/SHObrItGzhjcNHdMx93RxtyKaU7+A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6227294},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"6bbd1e6dac1e586fb41929a1fe20fb74fb37f2a3","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.3","openai":"^4.53.2","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.1","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^10.1.6","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.32.1","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.1","@anthropic-ai/sdk":"^0.25.0","@googleapis/sheets":"^9.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.6.4"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","madge":"^7.0.0","eslint":"^8.57.0","esbuild":"^0.23.0","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.3","@swc/jest":"^0.2.36","@eslint/js":"^9.8.0","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.1","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.8.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.621.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.74.0_1722550037417_0.6420917390055481","host":"s3://npm-registry-packages"}},"0.75.0":{"name":"promptfoo","version":"0.75.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.75.0","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"5543bcdec02a7ed0645733fac52bd719a5bb8e90","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.75.0.tgz","fileCount":934,"integrity":"sha512-EsO/NnXX1mk4IEQUIY441KQ0C7x51n3UZcFFPFnv90f8umrSwjjkqg9E1eNYoEYmAeYJJLDxQ9uHS/XPMXbdQw==","signatures":[{"sig":"MEUCIHKsyf++Ykki6Gbpm3xugK6HnIiAhTjhJCZqZSQ9tQj6AiEAxveB/OYZd+06wWWFvfcOKsGJPKqrXeSWfoqwv1YjDTo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7032194},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"1b104a6e368f966a9ad1f54cd0aee0de50b06ab0","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.3","openai":"^4.53.2","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.1","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^10.1.6","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.32.1","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.1","@anthropic-ai/sdk":"^0.25.0","@googleapis/sheets":"^9.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","madge":"^7.0.0","eslint":"^8.57.0","esbuild":"^0.23.0","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.4","@swc/jest":"^0.2.36","@eslint/js":"^9.8.0","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.1","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.8.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.622.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.75.0_1722860435067_0.25880413150754333","host":"s3://npm-registry-packages"}},"0.75.1":{"name":"promptfoo","version":"0.75.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.75.1","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"badd5804178f43da97d4a2b477038d39fb1c7a60","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.75.1.tgz","fileCount":934,"integrity":"sha512-IXGWJ13Q/IamTXTKoH/2dn0QHn+tHNppvM0z/kD52XVBBaMAXV3diV/u9koWiGJyoG9kvhQltI5YMDD2W8ZNDQ==","signatures":[{"sig":"MEUCIQDPQXe3v5UqNQPk5xzH+2sULc0yQ+8wEQkX66Zc7l27PwIgUd6suwbsMVl49PBmv/LwW01e1RiFnfCcnKAP5137VHk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7032197},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"9c119d475a390134513aaa4f073e8a6011bda6fb","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.3","openai":"^4.54.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.1","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^10.1.6","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.32.1","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.1","@anthropic-ai/sdk":"^0.25.0","@googleapis/sheets":"^9.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.0","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.6","@swc/jest":"^0.2.36","@eslint/js":"^9.8.0","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.1","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.8.1","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.623.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.75.1_1722881008881_0.20408710292286303","host":"s3://npm-registry-packages"}},"0.75.2":{"name":"promptfoo","version":"0.75.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.75.2","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"2e101a137aab16a5cfa71b9c9b476758ee17dc0f","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.75.2.tgz","fileCount":934,"integrity":"sha512-NRqGbJZZu8P4CPFjBdsCg6l6tSO+dtiOIJCUGBLW6pZy9MfEQf9iphohy4Z8IfkgF1H8fXUJP8ZwLajunu/nUw==","signatures":[{"sig":"MEQCIEg/R3Ui1+ucu2o3WkD6EznCvKQEpouiITqVpt4DTb6EAiB5BqtQ4cbCisb3tcxJSqi6RWb7X32IZrKjvnUerqc4sw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7033725},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"4e291848e1fdf38fb5d887af7d0f697d76f490d1","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate:sqlite","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.3","openai":"^4.54.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.1","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^10.1.6","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.32.1","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.1","@anthropic-ai/sdk":"^0.25.0","@googleapis/sheets":"^9.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.0","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.6","@swc/jest":"^0.2.36","@eslint/js":"^9.8.0","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.1","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.8.1","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.623.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.75.2_1722934490605_0.8811458335904478","host":"s3://npm-registry-packages"}},"0.76.0":{"name":"promptfoo","version":"0.76.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.76.0","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"f426cafc2495febbedd95755ba6a66438b35da59","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.76.0.tgz","fileCount":947,"integrity":"sha512-x5KE8nXxI0ydKbQDPVK/x9QdhZbvsVZPZj7liyzPvGKbZvjbJYhOaeyU4iMcra0CkA+1cjuD/FQZH34Q3RPhHg==","signatures":[{"sig":"MEUCIAPx5vO2sT7IDoEN/l0aU5Pwwrw4hcGtfQpxStDHm1ShAiEA3zXgFVrNYquz5V6IuUmp3O0FG/jFqI09JKJG2AOfaS4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7086619},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"fd89684bff01f10a1e8be75260cd9f774a3b990a","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.3","openai":"^4.54.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.1","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^10.1.6","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.32.1","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.1","@anthropic-ai/sdk":"^0.25.0","@googleapis/sheets":"^9.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.0","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.6","@swc/jest":"^0.2.36","@eslint/js":"^9.8.0","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.1","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.8.1","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.623.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.76.0_1723327196658_0.3369780581389634","host":"s3://npm-registry-packages"}},"0.76.1":{"name":"promptfoo","version":"0.76.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.76.1","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"35c7028dc80b90755a760e0b16612c9a803442fb","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.76.1.tgz","fileCount":947,"integrity":"sha512-j7d4xv+LYTTAlobpdyAeIKrquiUKi2EZ9EAZwmOVYG21/MFgUeXIvyFkDGyZZ2zpoTTC6h4/EH6KZCCbDUZw8Q==","signatures":[{"sig":"MEUCIQCskOLRpf2gMIj3XP2pLW8X3kIeGEdPmhr3lwL877VqfwIgRPzJBFs2YX0eQphItzwN0z9zBmNtNT2mRaGypbc+JYg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7093877},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"f42f93cc5e29ca124ef55506c745f2100e4641d7","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.3","openai":"^4.54.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.1","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^10.1.6","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.32.1","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.1","@anthropic-ai/sdk":"^0.25.0","@googleapis/sheets":"^9.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.0","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.6","@swc/jest":"^0.2.36","@eslint/js":"^9.8.0","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.1","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.8.1","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.623.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.76.1_1723356994677_0.04404251612211674","host":"s3://npm-registry-packages"}},"0.77.0":{"name":"promptfoo","version":"0.77.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.77.0","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"212848297cc47f6590b82f494c126313462e5e4d","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.77.0.tgz","fileCount":951,"integrity":"sha512-ehREjsovaYAJXk6b7ccc7tIOof0X9AT4QIDrTNXieTvF8toi4OVkTqCx4rH7hChr2gGMtZhcIHbHu9Uw9v+M1g==","signatures":[{"sig":"MEUCIQDXhP8Z1XZHoWavGR/M9jRjXbLIRyOAKgfHED9p2nU5fwIgJce1lgGgoe8LnHRDLOfyfVMAUjzu7SrKqUxvQthgKdQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7113606},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"8174723fc0194f6a1e3f205c490631c6743ac76f","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.3","openai":"^4.54.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.1","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^10.1.6","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.32.1","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.1","@anthropic-ai/sdk":"^0.25.0","@googleapis/sheets":"^9.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.0","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.6","@swc/jest":"^0.2.36","@eslint/js":"^9.8.0","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.1","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.8.1","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.623.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.77.0_1723499619239_0.3193415671037543","host":"s3://npm-registry-packages"}},"0.78.0":{"name":"promptfoo","version":"0.78.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.78.0","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"d4943c3cb852cca81c590a8214ee2286ae8fee6c","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.78.0.tgz","fileCount":951,"integrity":"sha512-go8W8dNgpASdyjS5JNeN42vddvJopBdnuMCUEG8YkYA4MMVjla5YhhNAT2grZypiz01KVnMKaxMi8sRdXjaykw==","signatures":[{"sig":"MEUCIGqJ+Co4yZz0QtzzNd8SUXleYhtFu9VNTMfyN/wUW/+oAiEA4AY0D53u6o9jwd7buxuveniu6hd//AkLCvgRvX22/QA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7146310},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"9b7935854002e9f540ff857612faf10ef758577e","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.3","openai":"^4.54.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.13.1","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^10.1.6","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.32.1","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.1","@anthropic-ai/sdk":"^0.25.0","@googleapis/sheets":"^9.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.0","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.6","@swc/jest":"^0.2.36","@eslint/js":"^9.8.0","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.1","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.8.1","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.623.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.78.0_1723670036948_0.3600364696968019","host":"s3://npm-registry-packages"}},"0.78.1":{"name":"promptfoo","version":"0.78.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.78.1","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"4d75497ac9567cfea8808fd35473dc4e0f592639","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.78.1.tgz","fileCount":967,"integrity":"sha512-YTAx9NB5B/qPNBB6jfjK6EEgCkjfKOCjxAJbr/jAg8DlKLGf9pLEJqdjdo4TkMRHebYCN1Vwy/WJuqbbrd1wXQ==","signatures":[{"sig":"MEYCIQCUyjbcb4Z1rM8R+mUVdz3HoU4f3JFHYn36gGxWJ359SAIhAJgvchfvbhNOh1MoVfiIEvIvVOPk+Jte87NOijpaR+fQ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7196629},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"fde5fa51e0bcdc3d7f3802e76cd885c4f744ca15","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.3","openai":"^4.55.7","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^10.1.8","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.32.1","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.1","@anthropic-ai/sdk":"^0.26.0","@googleapis/sheets":"^9.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.0","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.11","@swc/jest":"^0.2.36","@eslint/js":"^9.9.0","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.1","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.9.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.631.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.78.1_1723840474913_0.7473716626803588","host":"s3://npm-registry-packages"}},"0.78.2":{"name":"promptfoo","version":"0.78.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.78.2","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"c580b809588cd39076ee3fca89b64b7a981f2bb5","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.78.2.tgz","fileCount":987,"integrity":"sha512-BooN/bwZDx3EMXUq4lmS1+wxTcLPlkRzfaSUECcDk1glEnNnE9vCIH9AlV7R0PhLE78rq9db5AIGKXsp2zh6GA==","signatures":[{"sig":"MEUCICdPTyGhsdODgkx7YcX84mMckm0/HSWmSp8opRjtStErAiEAt+921dRLjtsAgAh+OYWZ0rw0xfY6Y7ln6MS2ozUFcUw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7285829},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"147136065f4da2d83c806266cd151bbe3cef1984","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","rouge":"git+https://github.com/kenlimmj/rouge.git#f35111b599aca55f1d4dc1d4a3d15e28e7f7c55f","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.3","openai":"^4.55.7","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^10.1.8","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.32.1","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.1","@anthropic-ai/sdk":"^0.26.0","@googleapis/sheets":"^9.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.0","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.11","@swc/jest":"^0.2.36","@eslint/js":"^9.9.0","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.1","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.9.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.631.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.78.2_1724001852408_0.9283915364341997","host":"s3://npm-registry-packages"}},"0.78.3":{"name":"promptfoo","version":"0.78.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.78.3","maintainers":[{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"5af74357e2246fef0d613411966768cac9731487","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.78.3.tgz","fileCount":995,"integrity":"sha512-3yepLrrsh7NSrXXR3Z/hKK0AhGpWEMumW2v3nesMeN5nGUmIm2pPjninmaLUXVL8V6fSM/X1FB1vfJK+ZNY/jA==","signatures":[{"sig":"MEUCICJ2m4gqAxNeYnp3a7uodVM7jMSGtBK9x5n3BJ5X67W7AiEAy97zREbwM4DEkcU/znaaCytZN90TR6NH/b2ocGnOHoE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7310733},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"9450f85f8f93bccbebe3295c60f49f5b294b37b3","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.5","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.3","openai":"^4.55.7","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","inquirer":"^10.1.8","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.32.1","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.1","@anthropic-ai/sdk":"^0.26.0","@googleapis/sheets":"^9.0.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","next":"13.4.13","nock":"^13.5.4","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.0","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.11","@swc/jest":"^0.2.36","@eslint/js":"^9.9.0","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.1","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.9.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.631.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.78.3_1724096935905_0.46080618435451526","host":"s3://npm-registry-packages"}},"0.79.0":{"name":"promptfoo","version":"0.79.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.79.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"9ec761c06c334ef9449342ca3a4d7988b852e700","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.79.0.tgz","fileCount":1015,"integrity":"sha512-xtl1mVwyJi7Gr7Y6w666hcExcYO3PziSPO17xKz+EAmSdNnPpTw63zlAlUKpNRqYG0oCVZ7aa7Vkejwt9sX+AQ==","signatures":[{"sig":"MEUCIGgcM4n1KOwlDjafK4dToV+TtfgsqvboS4Ic2lZT0MgwAiEAhq9cW5KQO+qM2q+mvkvHX90A9/kJIfDjEv12GOzRbBo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7379225},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"e6e37a14262def51227cf00cc13919f35c0e92f5","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.3","openai":"^4.56.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.5.0","inquirer":"^10.1.8","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.32.1","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.1","@anthropic-ai/sdk":"^0.26.1","@googleapis/sheets":"^9.3.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nexe":"^4.0.0-rc.6","next":"13.4.13","nock":"^13.5.5","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.1","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.14","@swc/jest":"^0.2.36","@eslint/js":"^9.9.0","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.1","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.9.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.632.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.79.0_1724183857469_0.36117787618237696","host":"s3://npm-registry-packages"}},"0.80.0":{"name":"promptfoo","version":"0.80.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.80.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"41e8c6f2bece2cfcb8c47221ae6ffc7b7ee20869","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.80.0.tgz","fileCount":1019,"integrity":"sha512-VZDip7TiTyyguBMR7U5W3R2ebhBOqBZ4szaSoPmwPjxs24oKCmger7PaxtmWRM35xjgurgYOCXsCaxTFhR5rdQ==","signatures":[{"sig":"MEUCIQCs03OAxra9mCVl62r4ZpREYQ9jjaVRX3ON1J+bmG6XmQIgCCI44Wk1rWNpxfBOlEqNRFEITyA0EWIxJb/pChIKSkE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7415521},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"cf039672d902565579c8c20f928fc87b0624bf53","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.3","openai":"^4.56.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.5.0","inquirer":"^10.1.8","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.32.1","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.1","@anthropic-ai/sdk":"^0.26.1","@googleapis/sheets":"^9.3.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nexe":"^4.0.0-rc.6","next":"13.4.13","nock":"^13.5.5","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.1","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.14","@swc/jest":"^0.2.36","@eslint/js":"^9.9.0","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.1","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.9.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.632.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.80.0_1724269567166_0.06056147674684409","host":"s3://npm-registry-packages"}},"0.80.1":{"name":"promptfoo","version":"0.80.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.80.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"1deac76fb41adaf6b7c056e0f869639760516324","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.80.1.tgz","fileCount":1019,"integrity":"sha512-rIHumhL8NYZ6jspBW3OHmdiwGfO39r6jpCOndpl2HXJbvov+iD4YTcERn5eNUR8ASh4DJYd3PBlw6mdo1LgAYw==","signatures":[{"sig":"MEUCIHRxHK3OhZlHse/hUR2ddF5MfUopxrHJZtFiSU9rJO9pAiEAwcI0r3xSfGaRyVKDmGsUUWf/yMgVpF84zBQexi/GlqQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7415531},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"f0cd51c633b4723144f03b72c0465d0eb8199037","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.3","openai":"^4.56.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.5.0","inquirer":"^10.1.8","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.32.1","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.1","@anthropic-ai/sdk":"^0.26.1","@googleapis/sheets":"^9.3.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nexe":"^4.0.0-rc.6","next":"13.4.13","nock":"^13.5.5","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.1","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.14","@swc/jest":"^0.2.36","@eslint/js":"^9.9.0","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.1","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.9.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.632.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.80.1_1724279391531_0.7756169733486671","host":"s3://npm-registry-packages"}},"0.80.2":{"name":"promptfoo","version":"0.80.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.80.2","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"cba97af1d3cc97f5602968a5400e69b4b94f7cde","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.80.2.tgz","fileCount":1019,"integrity":"sha512-sX//4VD7uZ3ic7MVgzQ4fJAth7IWugdZgG2o4PwJh4UTMeiuGu4aEArpkZtAj2zISLh0AFIkQUwtR4AtonLoSw==","signatures":[{"sig":"MEUCIBD6U8sAIb5/24+PIy0xXgbpR9XYqWd7kXz7PGlxY6JhAiEA0RsyYVVYO+K71mixZu4pBxQ4F3tHi3re/H52ZxC8XjI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7415475},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"b08099b2c6a7bb32866d63ad9cde7d79f37423ae","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.3","openai":"^4.56.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.5.0","inquirer":"^10.1.8","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.32.1","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.1","@anthropic-ai/sdk":"^0.26.1","@googleapis/sheets":"^9.3.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nexe":"^4.0.0-rc.6","next":"13.4.13","nock":"^13.5.5","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.1","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.14","@swc/jest":"^0.2.36","@eslint/js":"^9.9.0","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.1","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.9.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.632.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.80.2_1724313271623_0.3169999857861905","host":"s3://npm-registry-packages"}},"0.80.3":{"name":"promptfoo","version":"0.80.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.80.3","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"772ebd7e5ea5815b6f1efd72e1fdfecd80579df2","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.80.3.tgz","fileCount":1019,"integrity":"sha512-cXDosENgrIXDZWqkRDQfnWYfet1hO0QS65rGMGDtPpL2S1y4UfSpmObRcyURi6FZkkZdKjRKR/wS9KShD1zRKQ==","signatures":[{"sig":"MEQCIGagkMQyoDg+laMSs9zbYaAmCaz/smySrIOYUOmCILkQAiAUMWYQ/yowiPfuJ1lspSOu+IRc3XlQiRovyMVPBHfALw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7427567},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"02c387d5b04c960f24cc3eee05d71169252ab961","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.3","openai":"^4.56.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.5.0","inquirer":"^10.1.8","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.32.1","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.1","@anthropic-ai/sdk":"^0.27.0","@googleapis/sheets":"^9.3.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nexe":"^4.0.0-rc.6","next":"13.4.13","nock":"^13.5.5","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.1","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.14","@swc/jest":"^0.2.36","@eslint/js":"^9.9.0","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.1","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.9.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"4.6.2","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.632.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.80.3_1724361016063_0.08314403445441076","host":"s3://npm-registry-packages"}},"0.81.0":{"name":"promptfoo","version":"0.81.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.81.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"a56108c83d0cc1e1a530c89e46d9dd688e229665","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.81.0.tgz","fileCount":1023,"integrity":"sha512-RRG+XITrMRIjbajafHExw5lyv9SJDzoGSmIdIl0oHTjp5Ca8achi0GC8jR872O3jc8cySpBo+XumRpYhxWhu3g==","signatures":[{"sig":"MEUCIQC5S4beTxcASJZX3qrPfF/MosoWF+3m+NyLPJHj/8clDAIgVDSZPSG6FNgEiW0tKUVqU9hl2/0JZptWbYHA0EyLIy8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7483520},"main":"dist/src/index.js","type":"commonjs","types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"ba974e4a8fbabe454c8c68076c23f5116db0377d","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.3","openai":"^4.56.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.5.0","inquirer":"^10.1.8","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.32.1","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.1","@anthropic-ai/sdk":"^0.27.0","@googleapis/sheets":"^9.3.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nexe":"^4.0.0-rc.6","next":"13.4.13","nock":"^13.5.5","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.1","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.14","@swc/jest":"^0.2.36","@eslint/js":"^9.9.0","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.1","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.9.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"4.6.2","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.632.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.81.0_1724698701333_0.9196233456146692","host":"s3://npm-registry-packages"}},"0.81.1":{"name":"promptfoo","version":"0.81.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.81.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"0fc4e0b0f65c00961c1a3109276e0a4d8ca559e6","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.81.1.tgz","fileCount":1039,"integrity":"sha512-jihvVOd/CpOAbCMBG3Qf+6975bvpvkpVFkf75kuD7V2Zk+Cq/esYzkmZ8VQO1bwwxkmkCdKEzTp5voW1SRYxrg==","signatures":[{"sig":"MEUCIAHpEd3rv4D1hfBkbgVv3Ayptj0V95Huo9prt0W8OMjOAiEAi08Lcrgy2RtUtM49y2PHr4E3++85C81tU8kiXjc/TN0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7536212},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"a7ae608fcaf8c1b840a9961c1c3a818254e22fb7","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.3","openai":"^4.56.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.5.0","inquirer":"^10.1.8","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.32.1","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.1","@anthropic-ai/sdk":"^0.27.0","@googleapis/sheets":"^9.3.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nexe":"^4.0.0-rc.6","next":"13.4.13","nock":"^13.5.5","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.1","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.14","@swc/jest":"^0.2.36","@eslint/js":"^9.9.0","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.1","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.9.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"4.6.2","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.632.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.81.1_1724800212989_0.5798506249251498","host":"s3://npm-registry-packages"}},"0.81.2":{"name":"promptfoo","version":"0.81.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.81.2","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"9a8699d5f244c38e598f9f18e409a36c8b0cb483","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.81.2.tgz","fileCount":1039,"integrity":"sha512-GMlzu7/bc05VPClWtrx7uyJAnLHeq/pp7Q+IBTgPNuatyQV4Fuh5aZuFDQa6UghSuHdwTeqaGXrdGh3RJ4Di5A==","signatures":[{"sig":"MEQCIHOdvejiUMbEOtuqq1LiU4GTNRGmw1jFa73/DvGI5uxaAiBf0mQz2rAyrJxiCBrjbemEs05SwlxZIkPSK18WWJAmIQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7534380},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"380b5debf2ebfe4ac0a744eeabeffc6aa7c25288","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.3","openai":"^4.56.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.5.0","inquirer":"^10.1.8","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.32.1","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.1","@anthropic-ai/sdk":"^0.27.0","@googleapis/sheets":"^9.3.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nexe":"^4.0.0-rc.6","next":"13.4.13","nock":"^13.5.5","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.1","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.14","@swc/jest":"^0.2.36","@eslint/js":"^9.9.0","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.1","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.9.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"4.6.2","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.632.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.81.2_1724802102056_0.1478845122917023","host":"s3://npm-registry-packages"}},"0.81.3":{"name":"promptfoo","version":"0.81.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.81.3","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"41491ee70061f32e0eef4925f13c5f937296b97c","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.81.3.tgz","fileCount":1039,"integrity":"sha512-9Bk1uLMt4eRmyAoF9O9CqOJqL1H8d7RALzKnYxbIV1oxsnrXGuBUgn/kygsRHvd/RbsXMVdosFEV310RUT0CxA==","signatures":[{"sig":"MEUCIQCSAzZ2Y9o5LQyjlVvJir1JMlVIJp4UD8qhdXGnnkNhpgIgTLkAej8Hvc8eob+jrQVUElkgWCSA+XIDtLr13//24WA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7536007},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"d516a6fd3313e388d25b8f4ca7caf9176516ae4e","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.0.3","openai":"^4.56.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.5.0","inquirer":"^10.1.8","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.32.1","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.1.2","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.1","@anthropic-ai/sdk":"^0.27.0","@googleapis/sheets":"^9.3.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nexe":"^4.0.0-rc.6","next":"13.4.13","nock":"^13.5.5","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.1","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.14","@swc/jest":"^0.2.36","@eslint/js":"^9.9.0","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.23.1","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.9.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"4.6.2","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.632.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.81.3_1724832140324_0.8492415891366252","host":"s3://npm-registry-packages"}},"0.81.4":{"name":"promptfoo","version":"0.81.4","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.81.4","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"29fc258338ed967a0d8e25f1670f57c6aba5edaf","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.81.4.tgz","fileCount":1043,"integrity":"sha512-Zerj532xDhUhqDVlTFv1lrclmQ2DVsgs22WH42d9Hq4IhzAWGTEUiTyZjM+yNUyISF/3cX1/PlQMB/4zpaH8XA==","signatures":[{"sig":"MEUCIQDZgQMUwdVA4USWA4cIjny1Wdh2wCAfTGc2ccMG2l2oMwIgd2ecrbMwD3cDa6Zd7L/pxUespZw135RjcFfi6BCDrr8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7554688},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"c68aad22992ef904b7891a8d0c95644bae1aa684","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.1.1","openai":"^4.56.1","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.6.0","inquirer":"^10.1.8","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.2.1","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.1","@anthropic-ai/sdk":"^0.27.1","@googleapis/sheets":"^9.3.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nexe":"^4.0.0-rc.6","next":"13.4.13","nock":"^13.5.5","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.1","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.19","@swc/jest":"^0.2.36","@eslint/js":"^9.9.0","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.10.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"4.6.2","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.637.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.81.4_1724970048503_0.11280175144095606","host":"s3://npm-registry-packages"}},"0.81.5":{"name":"promptfoo","version":"0.81.5","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.81.5","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"1377d4d47e87a73456c5196af9061941cdcc2080","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.81.5.tgz","fileCount":1044,"integrity":"sha512-AjHOSr8rZWSbCFByOnNOm+79WEC34u90kGZaAU6Pbn0Rk1EvSDEkgtJRldnmv3Aqg3XUcvNE5G4BAF9dfmz7nA==","signatures":[{"sig":"MEUCIGlFCzOqrd7SRzFpRRw9/1eQpfNNdObJr7DaRw7PIaVcAiEAwiEakxbjoYh3tzaBhTJAaEcOFwu7o/gkItP85Bx4EMg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7568685},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"24b469d9e210dc1fc4e1f5dafe63b642266c8ab9","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.1.1","openai":"^4.56.1","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.6.0","inquirer":"^10.1.8","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.2.1","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.1","@anthropic-ai/sdk":"^0.27.1","@googleapis/sheets":"^9.3.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nexe":"^4.0.0-rc.6","next":"13.4.13","nock":"^13.5.5","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.1","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.19","@swc/jest":"^0.2.36","@eslint/js":"^9.9.0","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.10.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"4.6.2","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.637.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.81.5_1725000925243_0.39723031927349806","host":"s3://npm-registry-packages"}},"0.82.0":{"name":"promptfoo","version":"0.82.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.82.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"88339a8e0d88dc857c91d67c9507ed2ff66364b0","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.82.0.tgz","fileCount":1048,"integrity":"sha512-oAmST11VwmQQaRXmpMt/hA+WHJ15gNgl4BrsTbynSegDhW1OM/1JyEaDqlIo+phf5kyxxvBR4F1HvD/rr3cktg==","signatures":[{"sig":"MEUCIHMwnFGcl7qqJ2HPCRSEy9XSUo80jIs2KgwZjChhUij8AiEAiYKUrCm5gC2BDYo1iCqNUFsHgti1umrDJuM2cz2gKOY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7589196},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"a7b0a290620dd7618323ff819e485afd29f3ca0e","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.1.1","openai":"^4.56.1","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.6.0","inquirer":"^10.1.8","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.2.1","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.1","@anthropic-ai/sdk":"^0.27.1","@googleapis/sheets":"^9.3.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nexe":"^4.0.0-rc.6","next":"13.4.13","nock":"^13.5.5","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.1","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.19","@swc/jest":"^0.2.36","@eslint/js":"^9.9.0","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.10.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"4.6.2","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.637.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.82.0_1725319695221_0.983579822523089","host":"s3://npm-registry-packages"}},"0.83.0":{"name":"promptfoo","version":"0.83.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.83.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"a1484c9ce4cb751e60c46aad039a18c3481af40a","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.83.0.tgz","fileCount":1048,"integrity":"sha512-5ffB+qPtqM63NLSdi5DxzGacxKCFGZOA/n7KPg9L4BX1tDlHcTb+uv+2xysQhDDm805BbpKrW2GkjGyYwglcAw==","signatures":[{"sig":"MEUCIQCfdMyMEZbvX+HDCK+CX4bVC+F8xRuhDjruehosfc6NmAIgC4GUV4t7CgYsHGLOHdW4+qGi8iDsZTl6yVwNwHvKNdE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7594896},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"7e22c8d37a271a92da754f7aee5e03be37364838","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.1.1","openai":"^4.57.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.6.1","inquirer":"^10.2.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.1","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.2.1","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.1","@anthropic-ai/sdk":"^0.27.1","@googleapis/sheets":"^9.3.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nexe":"^4.0.0-rc.6","next":"13.4.13","nock":"^13.5.5","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.1","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.23","@swc/jest":"^0.2.36","@eslint/js":"^9.9.1","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.10.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"4.6.2","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.642.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.83.0_1725393264989_0.4053922465251838","host":"s3://npm-registry-packages"}},"0.83.1":{"name":"promptfoo","version":"0.83.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.83.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"31c3036d3fdac1264718981ebdd9b9727ca3a299","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.83.1.tgz","fileCount":1048,"integrity":"sha512-AhU+WT9lNmbiSr+UfV4bI9C3POn2Knh98ZoAR//tjetjumYajGTxpIQIX/E+tbLNRGQTpz+n0RdFKK2l06uZpQ==","signatures":[{"sig":"MEQCIBugP4oO9w+1gxO3e+hOxpmg56j2eUnF5kMR87J5A65iAiABWuGiT6SQUN8UJPNbd14OSDdKlGgfuvT03pVntbnJaQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7595776},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"486c66e1123cca4c5068a0b8e1f7c01c67400241","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.1.1","openai":"^4.57.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.6.1","inquirer":"^10.2.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.1","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.2.1","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.1","@anthropic-ai/sdk":"^0.27.1","@googleapis/sheets":"^9.3.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nexe":"^4.0.0-rc.6","next":"13.4.13","nock":"^13.5.5","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.1","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.23","@swc/jest":"^0.2.36","@eslint/js":"^9.9.1","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.10.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"4.6.2","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.642.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.83.1_1725399752437_0.06333160764499701","host":"s3://npm-registry-packages"}},"0.83.2":{"name":"promptfoo","version":"0.83.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.83.2","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"f09d76254fe311413987ccc3a7b3d652c78112dc","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.83.2.tgz","fileCount":1048,"integrity":"sha512-C1kuo7rG8KlplQLqRavxrT2TS8w+HT8QRfBtPdEksKRJPon8EyVAITpww3Pa2NAT0O7lZrHaPBrvKWAHpid9YA==","signatures":[{"sig":"MEUCID1fn04hSGUXNmHlJqdnpqstI0X+QLjUB5kMAmocUlHIAiEAgaUeIaFstjI0+7APOLUBjoa9oYOAHAW80K+9RG8kAcY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7596487},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"ec9ad76786b587de7b6476c6cc8b3dbc27c8e09a","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.1.1","openai":"^4.57.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.6.1","inquirer":"^10.2.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.1","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.2.1","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.1","@anthropic-ai/sdk":"^0.27.1","@googleapis/sheets":"^9.3.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nexe":"^4.0.0-rc.6","next":"13.4.13","nock":"^13.5.5","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.1","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.23","@swc/jest":"^0.2.36","@eslint/js":"^9.9.1","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.10.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"4.6.2","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.642.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.83.2_1725402485254_0.9093288527657546","host":"s3://npm-registry-packages"}},"0.84.0":{"name":"promptfoo","version":"0.84.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.84.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"7dabcf06b42c22fb1c744f3a21250ee4420f38c0","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.84.0.tgz","fileCount":1052,"integrity":"sha512-N+M1SuExiBZNjeKe1QcuyszAXEokTz3djSlGxrATXQBn5QqX05CrJe82pOyvCyvdRuspGjbsuhyt/jhl8Jcd4w==","signatures":[{"sig":"MEYCIQCPeCTkAxlWyBM9gQfdAAQaeG/VLMTELmbOo2vUcIgvnQIhAOtg+1bxbWt6fhPbttm5EyaCO91MuYBWheB+W80jeMpG","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7653864},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"aa3a231eca1b1728dc8dadf089b3a3db2491026d","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.1.1","openai":"^4.57.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.6.1","inquirer":"^10.2.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.1","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.2.1","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.4.1","@anthropic-ai/sdk":"^0.27.1","@googleapis/sheets":"^9.3.0","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nexe":"^4.0.0-rc.6","next":"13.4.13","nock":"^13.5.5","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.1","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.23","@swc/jest":"^0.2.36","@eslint/js":"^9.9.1","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.10.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"4.6.2","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.642.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.84.0_1725481823406_0.600778053164458","host":"s3://npm-registry-packages"}},"0.84.1":{"name":"promptfoo","version":"0.84.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.84.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"35e834564bf87ba87041d841a0d79b5163ac020d","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.84.1.tgz","fileCount":1052,"integrity":"sha512-cweZ+MCJX3YT4nM+/8Fr+LIrMBAPDNeaWOuonlZtt98itju2hohwWq6d8/KrpnWW36hbWyPwQjNc7N/QxV0uqw==","signatures":[{"sig":"MEUCIQDfmOudrmHOkTlKLX7+HZgclNC9n296q3VnZfwlLwj0CgIgZ2mhNacG22QJDbgZ18jlrmUXbcNuf+2w2BD9VNQl07Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7652449},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"032b676aad34043f3fd2a33d2d346254ead11cee","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.1.1","openai":"^4.57.2","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^10.2.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.1","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.2.1","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.27.2","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nexe":"^4.0.0-rc.6","next":"13.4.13","nock":"^13.5.5","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.1","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.23","@swc/jest":"^0.2.36","@eslint/js":"^9.9.1","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.10.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"4.6.2","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.645.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.84.1_1725486899898_0.6768089461831293","host":"s3://npm-registry-packages"}},"0.85.0":{"name":"promptfoo","version":"0.85.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.85.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"5f51f81553814983c8b10dca6b47ca2c5d17a6f7","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.85.0.tgz","fileCount":1065,"integrity":"sha512-p1PmO2/7zS+AHBcWJXaL1yXLDfb5/snXjn0VRJsvRlEr0m/efqMKq+Aa/WVW0PtZsTfAQR+uQ4aVrqWdHm9xRw==","signatures":[{"sig":"MEYCIQDwByDDm5ASiyLPEM9thEliO4UsrvQhOBNpZJGdp3LKqwIhAPUbtP8IKlffBEbLFvFqPikGKH3ndqU3KCtfgZAOX9Lu","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7982114},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"899297b08601314774039de3c06d67590a6860f5","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.1.1","openai":"^4.57.2","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^10.2.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.1","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.2.1","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.27.2","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nexe":"^4.0.0-rc.6","next":"13.4.13","nock":"^13.5.5","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.1","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.23","@swc/jest":"^0.2.36","@eslint/js":"^9.9.1","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.10.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"4.6.2","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.645.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.85.0_1725655027854_0.5405916935687596","host":"s3://npm-registry-packages"}},"0.85.1":{"name":"promptfoo","version":"0.85.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.85.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"e7905aeb7d84aec5a2dd23e26d3f20d630d4724e","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.85.1.tgz","fileCount":1073,"integrity":"sha512-wBRTcuzXF/HcHWGayMGi8lsU1K8HP2SPaQ98AcKxqhjoHsyHGyJPRx4f17lDCeC0efp+0kE8XePC+h+guRbtvA==","signatures":[{"sig":"MEUCIQDd9RuvKSMSuTybwLErjhEOiEBSGjAB2Se8ez1wyAqqOwIgTDOhtqle2R4/DVVgM/Db4ONKoB89PWsJaRNPaQcXB9U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7990437},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"588a25073949eb208f71a98852540d7468cc155c","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.1.1","openai":"^4.57.2","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^10.2.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.1","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.2.1","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.27.2","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nexe":"^4.0.0-rc.6","next":"13.4.13","nock":"^13.5.5","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.1","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.23","@swc/jest":"^0.2.36","@eslint/js":"^9.9.1","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.10.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"4.6.2","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.645.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.85.1_1725916871470_0.4774755881907562","host":"s3://npm-registry-packages"}},"0.85.2":{"name":"promptfoo","version":"0.85.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.85.2","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"9c9033098fef47f34309d3418d12516d3ae23d45","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.85.2.tgz","fileCount":1073,"integrity":"sha512-ABspfBfuXK+pmRvcgIrvp2UQraoXhIkWR1JB/liJEE/RuqQcteDJPgnTUHlNmQk/GITHE70xzP5jalBjxKrkOg==","signatures":[{"sig":"MEYCIQCSKh8xfLLyaFkElddcq+0Ibzf/OOAMOU+9dNqzsyRa6gIhANGzQuxst/QN1FE75nK2JbtAJRNEHurKe5rWrrjloU7d","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7999017},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"e0892d3380a07021f2aa626c09f0ec69515332e1","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.1.1","openai":"^4.57.2","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^10.2.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.1","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.2.1","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.27.2","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nexe":"^4.0.0-rc.6","next":"13.4.13","nock":"^13.5.5","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.1","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.23","@swc/jest":"^0.2.36","@eslint/js":"^9.9.1","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.10.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"4.6.2","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.645.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.85.2_1725927926571_0.06750385214252219","host":"s3://npm-registry-packages"}},"0.86.0":{"name":"promptfoo","version":"0.86.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.86.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"eee1be5c9aa49c73f62ac07e8e5039cd1bb1b36b","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.86.0.tgz","fileCount":1075,"integrity":"sha512-unGPLih0u89FmvuDTz3meKckCpum6nM7CbvV56zfajKyJAlxD59Vk09Oj+M+bWBF7gv1ZXM4LRwjNU6tbKhupg==","signatures":[{"sig":"MEUCIQCr764OzTjkQdLLucVL/nxeQ0lxIVfp4c7/jKRFxwDOCgIgEqWIb5IHdGQibCTlQyPIdsA+oM1AuV+IE25w+bI1LwY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8039550},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"a10a41826f4cc1ed4a5966945154473b8d9ec76b","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:web\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:web":"npm run dev --prefix src/web/nextui","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.1.1","openai":"^4.57.2","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^10.2.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.1","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.2.1","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.27.2","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nexe":"^4.0.0-rc.6","next":"13.4.13","nock":"^13.5.5","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.1","nodemon":"^3.1.4","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.23","@swc/jest":"^0.2.36","@eslint/js":"^9.9.1","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","concurrently":"^8.2.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.10.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"4.6.2","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.645.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.86.0_1726073722914_0.04102758417610031","host":"s3://npm-registry-packages"}},"0.86.1":{"name":"promptfoo","version":"0.86.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.86.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"e24377c29401baae16d48913c92d98d77587ccb2","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.86.1.tgz","fileCount":1079,"integrity":"sha512-dT4vY0pwajzujYXCTtu5HPmr5yWvThgQnROV4egnl0XsUn9/Wvvnw7EY7PvFeykA+Vm+zxYT/6r0ta878Gm/zg==","signatures":[{"sig":"MEYCIQChzi0NXJyjnvBS5igPzZmQ860NNPKAEBemgn04/gElmAIhAN6hdshv8GATc8kGDSdG9F8cQiiOOnceqPbiuo5X84wT","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8057139},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"90d1f28d1d6994701865811832e17e1553ff6a07","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:web\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:web":"npm run dev --prefix src/web/nextui","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.1.1","openai":"^4.57.2","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^10.2.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.1","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.2.1","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.27.2","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nexe":"^4.0.0-rc.6","next":"13.4.13","nock":"^13.5.5","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.1","nodemon":"^3.1.4","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.23","@swc/jest":"^0.2.36","@eslint/js":"^9.9.1","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","concurrently":"^8.2.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.10.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"4.6.2","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.645.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.86.1_1726077115135_0.541063735005382","host":"s3://npm-registry-packages"}},"0.87.0":{"name":"promptfoo","version":"0.87.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.87.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"de7ca769fbbe5df474ac6b2ce1f1eca7b0793e8a","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.87.0.tgz","fileCount":1079,"integrity":"sha512-mIKnAYYbmrj8ccFJHTts2kIMvoGllBYt3faqoDzUhGDILsmUpfF0JDf5Op2hvsbJH3dtKGTKyE+V3J7i/90cIA==","signatures":[{"sig":"MEQCIFnDZ/LYgtewyWTQeL0nm/4RIwrg/XETG0LgiMUC4chdAiBO2qahKxnYfYdfffIQJJCjIbfXDIxoVqo7D0Id7DcwbA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8070954},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"10e4920b11f45dcf69007750f21553b8ecd7db1d","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:web\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:web":"npm run dev --prefix src/web/nextui","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.1.1","openai":"^4.57.2","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^10.2.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.1","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.2.1","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.27.2","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nexe":"^4.0.0-rc.6","next":"13.4.13","nock":"^13.5.5","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.1","nodemon":"^3.1.4","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.23","@swc/jest":"^0.2.36","@eslint/js":"^9.9.1","cloudflare":"3.4.0","typescript":"^5.5.4","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","concurrently":"^8.2.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.10.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"4.6.2","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.645.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.87.0_1726152189828_0.4412522018101124","host":"s3://npm-registry-packages"}},"0.87.1":{"name":"promptfoo","version":"0.87.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.87.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"58519447e00273c944f4f8c1aefae269a1dfa8f0","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.87.1.tgz","fileCount":1079,"integrity":"sha512-Xh9pVaZ7BcXEZfkWVobGXtlVQI/LJ/7c7zjdo6zwbIlKyhOAT1c9+zfQrf37zml8XZEXPBzMJb2RwIjV9Tt8MQ==","signatures":[{"sig":"MEUCIQD3V8q2hsfi/pYWnqigCnYhperfMIl8wcRhNQ3+4GxPBgIgA80PxQnRxmfLxB2z7qQEYRSHxxjmgvr1onZ/h8x4j68=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8086508},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"b57e48034e32eb0a39c83488d689b19490328ae4","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:web\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:web":"npm run dev --prefix src/web/nextui","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.1.1","openai":"^4.57.2","opener":"^1.5.2","semver":"^7.6.3","express":"^4.19.2","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^10.2.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.32.1","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.2.1","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.27.2","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nexe":"^4.0.0-rc.6","next":"13.4.13","nock":"^13.5.5","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.1","nodemon":"^3.1.4","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.23","@swc/jest":"^0.2.36","@eslint/js":"^9.9.1","cloudflare":"3.4.0","typescript":"^5.6.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.12","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","concurrently":"^8.2.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.10.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"28.6.0","zod-to-json-schema":"^3.23.2","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"4.6.2","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.645.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.87.1_1726169314995_0.8282881294128028","host":"s3://npm-registry-packages"}},"0.88.0":{"name":"promptfoo","version":"0.88.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.88.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"e2d15b2381ec9cc06077d522515ff564e4e55fb7","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.88.0.tgz","fileCount":1087,"integrity":"sha512-Q1pRjMUs4DL81WOcptIUSk3GD3J/sQ7zonS8V48y8qPtdIWybPJD/zCmh4+hv7E3koSech7qkmFzeIBD3HyYxA==","signatures":[{"sig":"MEMCIEREABSqJAQSSpwKj1FEhHILJkUB4PPjm0jQTWp/ZdYkAh8BOiNDtvqYEv7CK/BWywtrRHS1xfmYj0bx/Lj33m6Q","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8165038},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"1b82b80a3a80231e5f17abef8486b3821b35504e","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:web\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:nextui && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:web":"npm run dev --prefix src/web/nextui","audit:fix":"npm audit fix && npm audit fix --prefix src/web/nextui && npm audit fix --prefix site","local:web":"npm run dev --prefix src/web/nextui","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","test:webui":"npm run test --prefix src/web/nextui","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","build:nextui":"sh src/web/nextui/build.sh","format:check":"prettier --check .","install:nextui":"npm install --prefix src/web/nextui","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/web/nextui","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.1.1","openai":"^4.61.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.0","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^10.2.2","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.33.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","better-sqlite3":"^11.3.0","tiny-invariant":"^1.3.3","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.27.3","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nexe":"^4.0.0-rc.6","next":"13.4.13","nock":"^13.5.5","madge":"^8.0.0","eslint":"^8.57.0","esbuild":"^0.23.1","nodemon":"^3.1.4","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.26","@swc/jest":"^0.2.36","@eslint/js":"^9.10.0","cloudflare":"3.4.0","typescript":"^5.6.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.13","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","concurrently":"^8.2.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.11.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^7.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"28.6.0","zod-to-json-schema":"^3.23.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"4.6.2","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^3.2.0","@aws-sdk/client-bedrock-runtime":"^3.651.1","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.88.0_1726501674390_0.3383776611103353","host":"s3://npm-registry-packages"}},"0.89.0":{"name":"promptfoo","version":"0.89.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.89.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"d3463e1385b85296587a15d6b75f0b13f02d269a","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.89.0.tgz","fileCount":1006,"integrity":"sha512-hNLRxk27ZLGkOe8P8s/Tf9Qh8nDRr85iSL5fCW/XGjIEMNPwivtjLw4w/GaSBN+kZn/67Y6K8JVe1fcRycOjxw==","signatures":[{"sig":"MEUCIQCCnFd8ctKXnLr4d75/VgllBu1vZQpHCgYZeImvLF1C8wIgCxfD0vMlQPd5inkHYRQW+XIAnFX834iYQG9dWkGFwZM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7606944},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"cc55bbcab56f46469373af18eed41fad81905106","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.1.1","openai":"^4.61.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.0","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^10.2.2","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.33.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@mui/material":"^6.1.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@emotion/react":"^11.13.3","better-sqlite3":"^11.3.0","tiny-invariant":"^1.3.3","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.27.3","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.5","madge":"^8.0.0","eslint":"^9.10.0","esbuild":"^0.23.1","nodemon":"^3.1.4","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.26","@swc/jest":"^0.2.36","@eslint/js":"^9.10.0","cloudflare":"3.4.0","typescript":"^5.6.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.13","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","concurrently":"^8.2.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.11.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^8.6.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.8.3","zod-to-json-schema":"^3.23.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.651.1","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.89.0_1726588009212_0.7757666578118232","host":"s3://npm-registry-packages"}},"0.89.1":{"name":"promptfoo","version":"0.89.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.89.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"89e2dc9ad551edc9f4bf6ac156990befd3fcc9d4","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.89.1.tgz","fileCount":1010,"integrity":"sha512-O1BRpxK1wcOoSeVdX0mCyLxMCO42w+aTGH+NkqUMvizpN9em7Si3NMMt5Zpbg1QPDdpFRf3yDjKoK5d0ny10vw==","signatures":[{"sig":"MEUCIQC8pv0w44iSJqvtqxJSEKnIA01n9djpcIDbM5zNLR8iCgIgMo4K7XZ5YGBDWGT4OZtD73n7tjbo8hXXCHS0K/Qo+FY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7623444},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"561b9c07bd27f01a60b705e071772adc807821eb","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.1.1","openai":"^4.61.1","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.0","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^10.2.2","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.33.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@mui/material":"^6.1.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@emotion/react":"^11.13.3","better-sqlite3":"^11.3.0","tiny-invariant":"^1.3.3","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.27.3","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.5","madge":"^8.0.0","eslint":"^9.10.0","esbuild":"^0.23.1","nodemon":"^3.1.4","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.26","@swc/jest":"^0.2.36","@eslint/js":"^9.10.0","cloudflare":"3.4.0","typescript":"^5.6.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.13","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","concurrently":"^8.2.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.12.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^8.6.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.8.3","zod-to-json-schema":"^3.23.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.651.1","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.89.1_1726690709466_0.5956151272582588","host":"s3://npm-registry-packages"}},"0.89.2":{"name":"promptfoo","version":"0.89.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.89.2","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"41e9bcdbb65eefb0cc3deba1aca388ef4a073c2e","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.89.2.tgz","fileCount":1010,"integrity":"sha512-XMhDTR4O4af4ur342snhjl0cYouebAyuAwyZqYUBAb/6Wj6gxDUUTJ7/EF78Cq2GgNXJs1eHA2PYIv+18V8WBg==","signatures":[{"sig":"MEUCIQCxYzBF2mPMa8xjSmXb/rqMaRk/De3b+xv8eD2a95OP5AIgEdk95V95mIltm/S8PUSzKnvJN82RrUv8Cl2rUiAxNfk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7623504},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"596f5ec91bef94a3d6fcd2ab4da434ce235f3278","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.1.1","openai":"^4.62.1","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.0","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^10.2.2","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.33.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-cache":"^5.1.2","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@mui/material":"^6.1.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@emotion/react":"^11.13.3","better-sqlite3":"^11.3.0","tiny-invariant":"^1.3.3","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.27.3","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.5","madge":"^8.0.0","eslint":"^9.10.0","esbuild":"^0.23.1","nodemon":"^3.1.5","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.26","@swc/jest":"^0.2.36","@eslint/js":"^9.10.0","cloudflare":"3.4.0","typescript":"^5.6.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.13","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","concurrently":"^8.2.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.12.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^8.6.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.8.3","zod-to-json-schema":"^3.23.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.654.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.89.2_1726696880898_0.9733059186889863","host":"s3://npm-registry-packages"}},"0.89.3":{"name":"promptfoo","version":"0.89.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.89.3","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"d714bb2e089b40820496395774668957bc284d01","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.89.3.tgz","fileCount":1014,"integrity":"sha512-jPsHSBOrexmYYXTBXaclui+simpg8OZPdHh6GWVwkbONgsPXYSxe9Iv1T8C0H5svtB9YnG/CDIMkikU/F8/+iQ==","signatures":[{"sig":"MEQCIHe2W9nybxLH55HAF7ZUzfXSdy5/TGtamxi7PzBne0rIAiBkOLO+/uao717BtXiieoHFc/L5Knvh96S7PFxGJTRS4g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7624619},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"8a4ad28d8a315813574320072d16858849ebf368","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.1.1","openai":"^4.62.1","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.0","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^10.2.2","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.33.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-cache":"^5.1.2","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@mui/material":"^6.1.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@emotion/react":"^11.13.3","better-sqlite3":"^11.3.0","tiny-invariant":"^1.3.3","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.27.3","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.5","madge":"^8.0.0","eslint":"^9.10.0","esbuild":"^0.23.1","nodemon":"^3.1.5","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.26","@swc/jest":"^0.2.36","@eslint/js":"^9.10.0","cloudflare":"3.4.0","typescript":"^5.6.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.13","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","concurrently":"^8.2.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.12.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^8.6.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.8.3","zod-to-json-schema":"^3.23.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.654.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.89.3_1726809964736_0.623420502974315","host":"s3://npm-registry-packages"}},"0.89.4":{"name":"promptfoo","version":"0.89.4","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.89.4","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"promptfoo":"dist/src/main.js"},"dist":{"shasum":"d8f33f62819bf63a13dbaabb39f1490fcb5e9a50","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.89.4.tgz","fileCount":1018,"integrity":"sha512-GX/s2IhKXR8YG+PZ6q8J1Y7vaOoekoWwJ2ARPld+TD+S6haIAhgEYXFP4nW1lalJ32WJJ5s15OwwSM/pOlOADg==","signatures":[{"sig":"MEUCIAoh3uGXBX0L3sRj7gw7aDpUjYfnHeaFEaXyyj/FFZrfAiEA0Lwsv6S3tJvmDH6BLrhz5Z7FSS+GDoLgCIyl0Y9Iu1Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7652816},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"f4dd8cd0ecd0aed7ef1c0a7003af9634e2243128","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","mathjs":"^13.1.1","openai":"^4.62.1","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.0","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^10.2.2","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.33.0","socket.io":"^4.7.5","cli-table3":"^0.6.5","node-cache":"^5.1.2","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@mui/material":"^6.1.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@emotion/react":"^11.13.3","better-sqlite3":"^11.3.0","tiny-invariant":"^1.3.3","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.27.3","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.5","madge":"^8.0.0","eslint":"^9.10.0","esbuild":"^0.23.1","nodemon":"^3.1.5","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.26","@swc/jest":"^0.2.36","@eslint/js":"^9.10.0","cloudflare":"3.4.0","typescript":"^5.6.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.13","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","concurrently":"^8.2.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.12.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^8.6.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.8.3","zod-to-json-schema":"^3.23.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.654.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.89.4_1727110563605_0.2844627186238313","host":"s3://npm-registry-packages"}},"0.90.0":{"name":"promptfoo","version":"0.90.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.90.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"3f6c05628e168a65194ea23803b2c572e100621f","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.90.0.tgz","fileCount":1030,"integrity":"sha512-MOg9FpVUNQ0bk1XUT4zMvdXBNQhqjukxhV3aGOFdKCnGd3rWiLb49+Z5yXz+AlIdV/xGPnUIoUtrgte+Yuh4qg==","signatures":[{"sig":"MEUCIQDdz3JrXSCXnkL2jIQXu8rB2y30YYwfH6QzBlZ8YUtCjQIgQEZB4vgIoykMDvnZoI3/0kk6y7jS/myMBiVn9pC9Kkw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7698814},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"b6de3fd1c2e58a5f17888202ba8b2c9b04df4eb4","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.1.1","openai":"^4.63.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.0","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^10.2.2","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.33.0","socket.io":"^4.8.0","cli-table3":"^0.6.5","node-cache":"^5.1.2","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@mui/material":"^6.1.1","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@emotion/react":"^11.13.3","better-sqlite3":"^11.3.0","tiny-invariant":"^1.3.3","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.27.3","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.5","madge":"^8.0.0","eslint":"^9.11.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.26","@swc/jest":"^0.2.36","@eslint/js":"^9.11.0","cloudflare":"3.4.0","typescript":"^5.6.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.13","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","concurrently":"^8.2.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^8.7.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.8.3","zod-to-json-schema":"^3.23.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.654.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.90.0_1727225547466_0.9026684049991385","host":"s3://npm-registry-packages"}},"0.90.1":{"name":"promptfoo","version":"0.90.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.90.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"d8b6f2f8683cbd67884a4569be76ef2aac26f1d4","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.90.1.tgz","fileCount":1030,"integrity":"sha512-prvRKgV4JqF1ubVflWrY5g+W3QKMhSrrhL9tjcAYpFBAGnPdCmyXYX51S+ciujLaAfT1D154tCJ7tUk0lziYCA==","signatures":[{"sig":"MEUCIBOHsNeFBA4XZzVHRhO7me+14MVyVlCSU45uEf6I4A4dAiEA3QcPHqtrvz0fHnbHcfV+2Kh56Mpc03V2zxl8qIaEbAA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7725331},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"a6eb3963c90854b2d34d2869e9820961ab1e3a4d","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.1.1","openai":"^4.63.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.0","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^10.2.2","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.33.0","socket.io":"^4.8.0","cli-table3":"^0.6.5","node-cache":"^5.1.2","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@mui/material":"^6.1.1","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@emotion/react":"^11.13.3","better-sqlite3":"^11.3.0","tiny-invariant":"^1.3.3","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.27.3","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.5","madge":"^8.0.0","eslint":"^9.11.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.26","@swc/jest":"^0.2.36","@eslint/js":"^9.11.0","cloudflare":"3.4.0","typescript":"^5.6.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.13","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","concurrently":"^8.2.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^8.7.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.8.3","zod-to-json-schema":"^3.23.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.654.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.90.1_1727311033270_0.767084382794998","host":"s3://npm-registry-packages"}},"0.90.2":{"name":"promptfoo","version":"0.90.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.90.2","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"e346b5f36a574632d53d50e9472255e50bb46f43","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.90.2.tgz","fileCount":1034,"integrity":"sha512-T3PYJHva2gtQRQ8GBTRiLjMV8ZFnTEjlpSfWOzEYUYPG9yLKSc6GNy7t8qESTecygoD6Im/fF5i9my4NwpDH6g==","signatures":[{"sig":"MEQCIDdzNm39hUbgxEj0RbieSjnSARbXlCFnVc17/r4X/N0mAiB2zhgwCaM0GflwymZYuXsGCUY/XgB4ebaUy7CsbLBMFQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7722632},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"287d7e2b8b892c776119016058403ef3f3c72fb6","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.1.1","openai":"^4.65.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.0","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^10.2.2","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.34.0","socket.io":"^4.8.0","cli-table3":"^0.6.5","node-cache":"^5.1.2","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@mui/material":"^6.1.1","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@emotion/react":"^11.13.3","better-sqlite3":"^11.3.0","tiny-invariant":"^1.3.3","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.27.3","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.5","madge":"^8.0.0","eslint":"^9.11.1","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.28","@swc/jest":"^0.2.36","@eslint/js":"^9.11.1","cloudflare":"3.4.0","typescript":"^5.6.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.13","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","concurrently":"^8.2.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^8.7.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.8.3","zod-to-json-schema":"^3.23.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.658.1","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.90.2_1727464908481_0.35331130189329896","host":"s3://npm-registry-packages"}},"0.90.3":{"name":"promptfoo","version":"0.90.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.90.3","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"7789138d78efe2c948fe431526d6c1d1a3156d18","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.90.3.tgz","fileCount":1034,"integrity":"sha512-AG7RbH5AdUjTVpkcr8BswRXKpbM1lDJP5sAEcxWlwhUxjVp72z4ruWaE0zCQNb1IJzUw97vJlE/nhxNbUOpyyA==","signatures":[{"sig":"MEUCIQDzuoIojfFrXiowwhd25DWjvp6r+CJHke3MXNnvOhvnTQIgG8+1sSkN6kVeAXCqr1hz0DcimnaTWqHDdkTt5bKRfJw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7722716},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"7e036125b36c775f9b1257aac3a8fdc9f6196e9d","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.1.1","openai":"^4.65.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.0","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^10.2.2","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.34.0","socket.io":"^4.8.0","cli-table3":"^0.6.5","node-cache":"^5.1.2","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@mui/material":"^6.1.1","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@emotion/react":"^11.13.3","better-sqlite3":"^11.3.0","tiny-invariant":"^1.3.3","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.27.3","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.5","madge":"^8.0.0","eslint":"^9.11.1","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.28","@swc/jest":"^0.2.36","@eslint/js":"^9.11.1","cloudflare":"3.4.0","typescript":"^5.6.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.13","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","concurrently":"^8.2.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^4.17.21","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^8.7.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.8.3","zod-to-json-schema":"^3.23.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.658.1","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.90.3_1727472117397_0.7796922174694292","host":"s3://npm-registry-packages"}},"0.91.0":{"name":"promptfoo","version":"0.91.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.91.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"d7ad23724f0ee68446efec35aaae3f4a7d3ac127","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.91.0.tgz","fileCount":1046,"integrity":"sha512-ap4hYukVBWHnvpxSqYr2+3gS+OLsmFBD/YY73kW5ccMMMn5cX97tWEScXmzaGot0Vftq4q5ZMWVNngnA4Y6rYg==","signatures":[{"sig":"MEQCIEQ3/Kz+/Fgc9OlbH2ZI5y6LaZ3yHcFrYGcs0bnYLbU0AiBBvmxlYuvR/mfiMEswuRLFlPg9esxSIDlMz10iGhOmZQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7780697},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"3bcab5a335155033aa2207c19987f0d2aa3d0543","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.1.1","openai":"^4.66.1","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.0","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^10.2.2","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.34.0","socket.io":"^4.8.0","cli-table3":"^0.6.5","node-cache":"^5.1.2","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@mui/material":"^6.1.1","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@emotion/react":"^11.13.3","better-sqlite3":"^11.3.0","tiny-invariant":"^1.3.3","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.27.3","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.5","madge":"^8.0.0","eslint":"^9.11.1","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.28","@swc/jest":"^0.2.36","@eslint/js":"^9.11.1","cloudflare":"3.4.0","typescript":"^5.6.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.13","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","concurrently":"^8.2.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^8.8.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.8.3","zod-to-json-schema":"^3.23.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.658.1","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.91.0_1727798611905_0.3755618870836681","host":"s3://npm-registry-packages"}},"0.91.1":{"name":"promptfoo","version":"0.91.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.91.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"86fc746761acc2e973808405d246f6c1a323027d","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.91.1.tgz","fileCount":1046,"integrity":"sha512-g2l4fp8A/CULaU9PJfXOFkn7ExBFHS6u2kN5muj4WyK2sG/K69Rlrv0YzdkNwByPHj7ZtejagCqgLWLPPUmkwQ==","signatures":[{"sig":"MEYCIQD0Pa9Uj65NrQW9hDfYnUZAEuvt63LgZv+5qflr9s+uCAIhAKzaAUQEHRSQRZ1vtKcnvjnOnQUxXivkpc3o1wTavJGH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7792023},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"ec07a27e7fdf3cd7e289a17f3eaa96801dc9ee90","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.1.1","openai":"^4.66.1","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.0","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^10.2.2","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.34.0","socket.io":"^4.8.0","cli-table3":"^0.6.5","node-cache":"^5.1.2","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@mui/material":"^6.1.1","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@emotion/react":"^11.13.3","better-sqlite3":"^11.3.0","tiny-invariant":"^1.3.3","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.27.3","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.5","madge":"^8.0.0","eslint":"^9.11.1","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.28","@swc/jest":"^0.2.36","@eslint/js":"^9.11.1","cloudflare":"3.4.0","typescript":"^5.6.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.13","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","concurrently":"^8.2.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^8.8.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.8.3","zod-to-json-schema":"^3.23.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.658.1","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.91.1_1727820850335_0.7833482268569631","host":"s3://npm-registry-packages"}},"0.91.2":{"name":"promptfoo","version":"0.91.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.91.2","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"232b6e992f53314bcc523b81973b8f561ed181fe","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.91.2.tgz","fileCount":1054,"integrity":"sha512-AMpYbOGPwcS2+5WRsdZ/TbvG2CApJzTtl9ZXGZ5XmNlg+fblsYDIeL/0pfEfwNruiVU3OnrWm0yhhkdFjBhFCg==","signatures":[{"sig":"MEUCIGUpdTXpSmIlCaiNlSVykpIGKx+Xxzv2hPj/b1A8cucQAiEApH1RJWTK/8bl0GkefZ8QLNo7hM+1UU8Dz6QKDAzIL5U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7846329},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"4e00e8e9020c1e5daec506138c9c9a37edbbf6bc","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.2.0","openai":"^4.67.1","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.0","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^10.2.2","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.34.1","socket.io":"^4.8.0","cli-table3":"^0.6.5","node-cache":"^5.1.2","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@mui/material":"^6.1.2","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@emotion/react":"^11.13.3","better-sqlite3":"^11.3.0","tiny-invariant":"^1.3.3","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.27.3","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.5","madge":"^8.0.0","eslint":"^9.11.1","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.28","@swc/jest":"^0.2.36","@eslint/js":"^9.11.1","cloudflare":"3.4.0","typescript":"^5.6.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.13","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","concurrently":"^8.2.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^8.8.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.8.3","zod-to-json-schema":"^3.23.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.663.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.91.2_1728056825146_0.3894324404180243","host":"s3://npm-registry-packages"}},"0.91.3":{"name":"promptfoo","version":"0.91.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.91.3","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"6eb8d7b78c8c8f042bfdbe6be375ba7163fe52dd","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.91.3.tgz","fileCount":1058,"integrity":"sha512-9VjCjF5JdN5M8qAJ1kEiFFtKRDrmgbjyTEXH8ZsA6oCx4ZczAmsTODMpQwq1Gw7xTvGG93sevms91KieicCHTg==","signatures":[{"sig":"MEYCIQCtMPk7m3C7vOskT4DjKk4rnTmJkUwgqEoITsHqy5oFNwIhAI+O3C/AQI+YQ8LPoxptRJEoWR3fcQHW2uB7GazYuKvc","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7848384},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"9e7b1a84dc1d3d8d288beae261ed30edaf6e8cd9","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.2.0","openai":"^4.67.1","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.0","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^10.2.2","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.34.1","socket.io":"^4.8.0","cli-table3":"^0.6.5","node-cache":"^5.1.2","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@mui/material":"^6.1.2","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@emotion/react":"^11.13.3","better-sqlite3":"^11.3.0","tiny-invariant":"^1.3.3","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.27.3","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.5","madge":"^8.0.0","eslint":"^9.11.1","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.28","@swc/jest":"^0.2.36","@eslint/js":"^9.11.1","cloudflare":"3.4.0","typescript":"^5.6.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.13","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","concurrently":"^8.2.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^8.8.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.8.3","zod-to-json-schema":"^3.23.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^55.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.663.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.91.3_1728068227175_0.06313028436921986","host":"s3://npm-registry-packages"}},"0.92.0":{"name":"promptfoo","version":"0.92.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.92.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"a6c0d62099fbabb3c12f0b5478a79e7fcaf22e2c","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.92.0.tgz","fileCount":1125,"integrity":"sha512-2QOXXy5D1cMCbhEXvs0jeVNpq3Bj3iNx//sB3FVkoVk6Q2eWAQ92IWVXsznXSeDT7xERPUMtWPMr5nK0Af014A==","signatures":[{"sig":"MEYCIQC2JoiwZ5qS53FMVHwAej8GoD1zksoKJ200UeEz/3aejAIhAOT0QEMBKo/kq89nWBmh0hBhBcHOx5KdbN7nM3LD2w5S","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8564840},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"38e9714a567d5c4e143b71dd592ddef30e767b4c","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.2.0","openai":"^4.67.1","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.0","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^11.1.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.34.1","socket.io":"^4.8.0","cli-table3":"^0.6.5","node-cache":"^5.1.2","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@mui/material":"^6.1.2","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@emotion/react":"^11.13.3","better-sqlite3":"^11.3.0","tiny-invariant":"^1.3.3","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.28.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.5","madge":"^8.0.0","eslint":"^9.12.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.28","@swc/jest":"^0.2.36","supertest":"^7.0.0","@eslint/js":"^9.12.0","cloudflare":"3.4.0","typescript":"^5.6.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.13","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","concurrently":"^9.0.1","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^8.8.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.8.3","zod-to-json-schema":"^3.23.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^56.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.665.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.92.0_1728316823635_0.6149780381036054","host":"s3://npm-registry-packages"}},"0.92.1":{"name":"promptfoo","version":"0.92.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.92.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"24a897fc9a3375d56f01d60e3c04fde8c025a19e","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.92.1.tgz","fileCount":1117,"integrity":"sha512-k7m82PBnMXcs9iiDhHOFeI/QVUO0r7bohV6/hTt5PazD7avNHEfQTYPam+qXtYn1u0cPxLXAjTD2YiEburje6w==","signatures":[{"sig":"MEUCIQCHJBvVKN8185blNkng2lQrXQ8QEVQUq26pJ4A7WbtCsgIgFuWIQl37n/rjd+g2BEzvJQiIYuLxHNBpI4HzPCs4Y/k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8566506},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"3a9dd475abeca28486204f05f1cb89f436cacf70","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.2.0","openai":"^4.67.1","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.0","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^11.1.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.34.1","socket.io":"^4.8.0","cli-table3":"^0.6.5","node-cache":"^5.1.2","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@mui/material":"^6.1.2","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@emotion/react":"^11.13.3","better-sqlite3":"^11.3.0","tiny-invariant":"^1.3.3","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.28.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.5","madge":"^8.0.0","eslint":"^9.12.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.28","@swc/jest":"^0.2.36","supertest":"^7.0.0","@eslint/js":"^9.12.0","cloudflare":"3.4.0","typescript":"^5.6.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.13","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","concurrently":"^9.0.1","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^8.8.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.8.3","zod-to-json-schema":"^3.23.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^56.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.665.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.92.1_1728427294580_0.3709560761490027","host":"s3://npm-registry-packages"}},"0.92.2":{"name":"promptfoo","version":"0.92.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.92.2","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"7aed3c2410cbd45fc7899f65c67df38066a24c4a","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.92.2.tgz","fileCount":1117,"integrity":"sha512-FQIz3nkL7fvgUoOMz3vtZbp/Ek4wp6P9aCGYzwPgqWf2W24ftAZFpy2j474Q2brxGxxrbpQ2yyDUsYcohEaMTw==","signatures":[{"sig":"MEUCIEi8zCylQcW8jhYGnRhE/9zGFV8SqDC9uWc5/2PFuhg/AiEA/7PeZCgGeHf8RyEyxXBfa0cPsgsGqkIUTpy7wHOYYsU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8568659},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"f83b764d35058bd32b8c136beaf247a2783801f0","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.2.0","openai":"^4.67.1","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.0","js-yaml":"^4.1.0","winston":"^3.14.2","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^11.1.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.34.1","socket.io":"^4.8.0","cli-table3":"^0.6.5","node-cache":"^5.1.2","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@mui/material":"^6.1.2","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@emotion/react":"^11.13.3","better-sqlite3":"^11.3.0","tiny-invariant":"^1.3.3","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.29.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.5","madge":"^8.0.0","eslint":"^9.12.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.28","@swc/jest":"^0.2.36","supertest":"^7.0.0","@eslint/js":"^9.12.0","cloudflare":"3.4.0","typescript":"^5.6.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.13","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","concurrently":"^9.0.1","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^8.8.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.8.3","zod-to-json-schema":"^3.23.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^56.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.665.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.92.2_1728491613339_0.6149960833925914","host":"s3://npm-registry-packages"}},"0.92.3":{"name":"promptfoo","version":"0.92.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.92.3","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"fcd920e63b47950718cce182211695e8368583d8","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.92.3.tgz","fileCount":1121,"integrity":"sha512-UGiQakMjujwA94q1kS4bSEiXSjKsdfC5pMU629N0+tfTH+TSIualfHQeo69xyk2UJgGYTaA2B2bUTOMOZOAGaw==","signatures":[{"sig":"MEYCIQCFh4u6vOothxcy+eRjY0+C96g7QzxcOjVJYa3MODZMlAIhAPKvNP3e/Jyr2zpmRvZ9COrkpQNhqBrrtR5Pzs27zdht","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8583930},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"f93f8d3c4e68933396540f06e3765c16a43f284f","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.2.0","openai":"^4.67.3","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.1","js-yaml":"^4.1.0","winston":"^3.15.0","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^11.1.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.34.1","socket.io":"^4.8.0","cli-table3":"^0.6.5","node-cache":"^5.1.2","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@mui/material":"^6.1.3","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@emotion/react":"^11.13.3","better-sqlite3":"^11.3.0","tiny-invariant":"^1.3.3","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.29.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.5","madge":"^8.0.0","eslint":"^9.12.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.35","@swc/jest":"^0.2.36","supertest":"^7.0.0","@eslint/js":"^9.12.0","cloudflare":"3.4.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.13","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","concurrently":"^9.0.1","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^8.8.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.8.3","zod-to-json-schema":"^3.23.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^56.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.670.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","google-auth-library":"^9.7.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.92.3_1728750607158_0.15708869253644897","host":"s3://npm-registry-packages"}},"0.93.0":{"name":"promptfoo","version":"0.93.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.93.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"bfbcb610bfe373764054164603af58a8bc31cba8","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.93.0.tgz","fileCount":1149,"integrity":"sha512-iV0pdlIIr8MeBq/rG7kZ7RnlCNViCTC4FcpJjmlkpdNprHiwRGWYmg7gv40FTtiN5J02mR6QLTxz/Bjwy5Hzuw==","signatures":[{"sig":"MEUCIHtmfU33r/ihH0C9XVup8QvXr8OLFYnA5iQUP3ishBfZAiEAsUAS2t5C0dYOLEaa8DOIsh8KfMdSbzKNwkRXoC+Ziak=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8806827},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"ef9863303c728dbc3e16477e2f6d19616f61a85b","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.2.0","openai":"^4.67.3","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.1","js-yaml":"^4.1.0","winston":"^3.15.0","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^11.1.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.34.1","socket.io":"^4.8.0","cli-table3":"^0.6.5","node-cache":"^5.1.2","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.33.0","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@mui/material":"^6.1.3","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@emotion/react":"^11.13.3","better-sqlite3":"^11.3.0","tiny-invariant":"^1.3.3","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.29.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.5","madge":"^8.0.0","eslint":"^9.12.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.35","@swc/jest":"^0.2.36","supertest":"^7.0.0","@eslint/js":"^9.12.0","cloudflare":"3.4.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.13","@types/uuid":"^10.0.0","drizzle-kit":"^0.24.2","@types/async":"^3.2.24","concurrently":"^9.0.1","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^8.8.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.8.3","zod-to-json-schema":"^3.23.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^56.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.670.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.93.0_1728928895173_0.4516747689846854","host":"s3://npm-registry-packages"}},"0.93.1":{"name":"promptfoo","version":"0.93.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.93.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"d1021f4bddca0f797fa4fa8e4336c2f406f86fa8","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.93.1.tgz","fileCount":1161,"integrity":"sha512-WybgV/zW9GPsBj4c4JJ05TMfctJmRLWLEv8rL3rCTxIMSTdCbPErDjCanDSXqQZ5mhlR8EA8jc+p/6Ds0zF3Qg==","signatures":[{"sig":"MEUCIQC7hoKezoQLI35HHNiQ9hAw1IJWT7P9pcIqoWsWbR0BggIgAeI+yYHry+YiIrU+JF88rdda/iM1TGpdvC6hdnrlZgo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8820323},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"091b50fe1aa309b20f2d29a26a474983aa4d98ea","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.2.0","openai":"^4.67.3","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.1","js-yaml":"^4.1.0","winston":"^3.15.0","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^11.1.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.34.1","socket.io":"^4.8.0","cli-table3":"^0.6.5","node-cache":"^5.1.2","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.34.1","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@mui/material":"^6.1.3","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@emotion/react":"^11.13.3","better-sqlite3":"^11.3.0","tiny-invariant":"^1.3.3","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.29.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.5","madge":"^8.0.0","eslint":"^9.12.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.35","@swc/jest":"^0.2.36","supertest":"^7.0.0","@eslint/js":"^9.12.0","cloudflare":"3.4.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.13","@types/uuid":"^10.0.0","drizzle-kit":"^0.25.0","@types/async":"^3.2.24","concurrently":"^9.0.1","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^8.9.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.8.3","zod-to-json-schema":"^3.23.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^56.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.670.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.93.1_1729016828115_0.708826367621971","host":"s3://npm-registry-packages"}},"0.93.2":{"name":"promptfoo","version":"0.93.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.93.2","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"3010e7566fb448e771ed1b96eb4299e3759bd755","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.93.2.tgz","fileCount":1161,"integrity":"sha512-mPSoEnj7W2IZWvLhzpvp+sKh3vzTO9cmpMZXx3/X12iw++f6spXPIhHhE4JTHkVEP/ypL4bIclv+wweEa51BOg==","signatures":[{"sig":"MEUCIQCTO/ymaRN7IFwP2un97lSdjCB8n5duXXGAqiVUV9S5AAIgM70+V+8a+P9jIXCKdh2fgGvqYGLR/SwAZXQCWIQCroY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8824407},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"80d43a12259a7f8c3da51950409d6dbdac694968","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.2.0","openai":"^4.67.3","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.1","js-yaml":"^4.1.0","winston":"^3.15.0","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^11.1.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.34.1","socket.io":"^4.8.0","cli-table3":"^0.6.5","node-cache":"^5.1.2","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.34.1","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@mui/material":"^6.1.3","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@emotion/react":"^11.13.3","better-sqlite3":"^11.3.0","tiny-invariant":"^1.3.3","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.29.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.5","madge":"^8.0.0","eslint":"^9.12.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.35","@swc/jest":"^0.2.36","supertest":"^7.0.0","@eslint/js":"^9.12.0","cloudflare":"3.4.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.13","@types/uuid":"^10.0.0","drizzle-kit":"^0.25.0","@types/async":"^3.2.24","concurrently":"^9.0.1","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^8.9.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.8.3","zod-to-json-schema":"^3.23.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^56.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.670.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.93.2_1729112476276_0.6817642062570834","host":"s3://npm-registry-packages"}},"0.93.3":{"name":"promptfoo","version":"0.93.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.93.3","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"739672c2ec249a0ff3314c5e8348646065205a41","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.93.3.tgz","fileCount":1173,"integrity":"sha512-/K579OsrnpiVtRzYtKsCrQa0pkEipOTC7tgJyqdTiSTYWyTtuqky7cKfnRe6GnGlodbv9wj1SoyptP1zmU2cOg==","signatures":[{"sig":"MEUCIQDFOqMXnJSGy6UGTDqUx7t1vebTfFA5yldrPYuO1AMDjAIgXan5MybXV4EH+ESSIEZxSAK9WzBuw5IiOSnSZ/Bas9A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8882218},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"0e7e5fe5593ceecdeaea8dfcbec302659ce04cc2","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","node-fetch":{"whatwg-url":"14.x"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.2.0","openai":"^4.67.3","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.1","js-yaml":"^4.1.0","winston":"^3.15.0","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^11.1.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.34.1","socket.io":"^4.8.0","cli-table3":"^0.6.5","node-cache":"^5.1.2","node-fetch":"^2.6.7","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.34.1","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@mui/material":"^6.1.3","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@emotion/react":"^11.13.3","better-sqlite3":"^11.3.0","tiny-invariant":"^1.3.3","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.29.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.5","madge":"^8.0.0","eslint":"^9.12.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.35","@swc/jest":"^0.2.36","supertest":"^7.0.0","@eslint/js":"^9.12.0","cloudflare":"3.4.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.13","@types/uuid":"^10.0.0","drizzle-kit":"^0.25.0","@types/async":"^3.2.24","concurrently":"^9.0.1","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.4.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","@types/node-fetch":"^2.6.11","typescript-eslint":"^8.9.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.8.3","zod-to-json-schema":"^3.23.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^56.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.670.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.93.3_1729146881584_0.2174065121905091","host":"s3://npm-registry-packages"}},"0.94.0":{"name":"promptfoo","version":"0.94.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.94.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"2b56fbe7eef755854f21f1dc196f61b2d89f0a8e","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.94.0.tgz","fileCount":1213,"integrity":"sha512-ahhi+BQWNNewtoG/vvzre3A2nCZg5cgqi4c33Bb3pSeVzc2AZaks9bItFYYFIE4FhqH4CNFoI+Q5h1R6p8E5nA==","signatures":[{"sig":"MEYCIQDt03GjPzTY4SGQvFW9RMWrgGgdtDRyLuILrb4pEbbzrgIhAJ1K3hMu9AjJVZa4vZk1IVWQ0U6A+BoZsenNiEqjU8Aq","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9085618},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"a771a03cb9768c912847ee13ee9627a9f01ab7b6","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.2.0","openai":"^4.68.2","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.1","js-yaml":"^4.1.0","winston":"^3.15.0","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^11.1.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.34.1","socket.io":"^4.8.0","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.35.2","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@mui/material":"^6.1.4","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@emotion/react":"^11.13.3","better-sqlite3":"^11.4.0","tiny-invariant":"^1.3.3","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.30.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.5","madge":"^8.0.0","eslint":"^9.13.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.39","@swc/jest":"^0.2.36","supertest":"^7.0.0","@eslint/js":"^9.13.0","cloudflare":"3.4.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.13","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.0.1","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.11.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.8.3","zod-to-json-schema":"^3.23.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^56.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","eslint-plugin-react-refresh":"^0.4.13","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.677.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.94.0_1729642934130_0.07532078522983476","host":"s3://npm-registry-packages"}},"0.94.1":{"name":"promptfoo","version":"0.94.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.94.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"b7e318fa8aedc3408a598a373a8398ecd3b4d2d9","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.94.1.tgz","fileCount":1213,"integrity":"sha512-dVEVUFOna0QLRI8vw1NTPIuNr1OTx2pmgLtHVCFQa5zeuURdsB9Ysl5L+UdVbzwb9T1LEw5MrLnxVONbFp3hjQ==","signatures":[{"sig":"MEYCIQCATH5ZfxZb/bV7aYMS8QoETL3bP+Ijg38uhaCcZOZQDAIhAKjc6/QjYvNP2DJqcnChppOlKaqdrgtwCEJg7HsfKuZc","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9340700},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"a7190aafaf098109342a7fb20a7645bf669752de","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.14.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.2.0","openai":"^4.68.2","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.1","js-yaml":"^4.1.0","winston":"^3.15.0","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^11.1.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.34.1","socket.io":"^4.8.0","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.35.2","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@mui/material":"^6.1.4","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@emotion/react":"^11.13.3","better-sqlite3":"^11.4.0","tiny-invariant":"^1.3.3","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.30.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.5","madge":"^8.0.0","eslint":"^9.13.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.39","@swc/jest":"^0.2.36","supertest":"^7.0.0","@eslint/js":"^9.13.0","cloudflare":"3.4.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.13","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.0.1","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.11.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.8.3","zod-to-json-schema":"^3.23.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^56.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","eslint-plugin-react-refresh":"^0.4.13","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.677.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.94.1_1729802810872_0.22404759915054173","host":"s3://npm-registry-packages"}},"0.94.2":{"name":"promptfoo","version":"0.94.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.94.2","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"15c7f03a1088e472698857bdf57f846745eb9296","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.94.2.tgz","fileCount":1213,"integrity":"sha512-pk7LBXK+yHKl0Ethh0ZbbSeiejEJmJG+Nb0u7yFhZtIYxrIHEN5YRyQmIFN/qgNwoHbA9tQTJ2279KcFZpYCzA==","signatures":[{"sig":"MEQCIB4IwRaD7ZDH1hdb9iSEYPNbo+sQynZhEdSCJCNpBL+UAiAG3KtBrwiix1nSyoVRjeBhb+3Ulf4dibM+0xtWhWBkKg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9361730},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"837a2e5cd69cde33b329a4dd077d7ef1ed581d0e","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.2.0","openai":"^4.68.4","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.1","js-yaml":"^4.1.0","winston":"^3.15.0","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^11.1.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.34.1","socket.io":"^4.8.0","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.35.2","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@mui/material":"^6.1.5","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@emotion/react":"^11.13.3","better-sqlite3":"^11.4.0","tiny-invariant":"^1.3.3","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@anthropic-ai/sdk":"^0.30.1","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.5","madge":"^8.0.0","eslint":"^9.13.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.39","@swc/jest":"^0.2.36","supertest":"^7.0.0","@eslint/js":"^9.13.0","cloudflare":"3.4.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.0.1","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.11.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.8.3","zod-to-json-schema":"^3.23.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^56.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","eslint-plugin-react-refresh":"^0.4.14","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.679.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.94.2_1729883850550_0.1354416541847523","host":"s3://npm-registry-packages"}},"0.94.3":{"name":"promptfoo","version":"0.94.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.94.3","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"4c2f7f3dcc9aa470290583b6e3c54f2c08e78791","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.94.3.tgz","fileCount":1217,"integrity":"sha512-9fyJMPKuxMcJ4tgWd1aDQ75HxfHnbnahANoRAxrwN8acox7hW7cRbnpmiUvN1vjwGME4Tf30noar00FzYMWvCQ==","signatures":[{"sig":"MEUCIQCpC2BUx/R/U0VkDntldEV0huyQul5mIA5GY+2I3qez+wIgYJSgqgb0i1rUfhBFvzXXLCci75NQdbxp5sdM5eDh7zo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9455037},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"cf09aeb3cf026d85a284418bc2de7bd484af5aef","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.2.0","openai":"^4.68.4","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.1","js-yaml":"^4.1.0","winston":"^3.15.0","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^11.1.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.34.1","socket.io":"^4.8.0","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.35.2","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.5","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.13.3","better-sqlite3":"^11.4.0","tiny-invariant":"^1.3.3","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.30.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.5","madge":"^8.0.0","eslint":"^9.13.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.39","@swc/jest":"^0.2.36","supertest":"^7.0.0","@eslint/js":"^9.13.0","cloudflare":"3.4.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.0.1","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.11.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.8.3","zod-to-json-schema":"^3.23.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^56.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","eslint-plugin-react-refresh":"^0.4.14","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.679.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.94.3_1729913499493_0.072028979076872","host":"s3://npm-registry-packages"}},"0.94.4":{"name":"promptfoo","version":"0.94.4","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.94.4","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"a76d70c38e291786b167b9638b510435ba6edbc3","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.94.4.tgz","fileCount":1225,"integrity":"sha512-SXkfxaTSzz/mQBBESU/q3QjXXxUUp/jml5QD8kASk1qYtT5ZfYZbPNRD1T3/mNRV3LDBW1XHaqwIjRInHBHbZA==","signatures":[{"sig":"MEUCIQCbhdY4a4hA1BwS0EVR4x9zktZGpKBMsp5UJji+dTG6fwIgeCnPE+cYrZuHfcL8kaLKBdnwDUZHzwdLIQzuJ3huCMM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9497055},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"210127f1318fa415d6a6a50ff8ea7ae216311ba5","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.2.0","openai":"^4.68.4","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.1","js-yaml":"^4.1.0","winston":"^3.15.0","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^11.1.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.34.1","socket.io":"^4.8.0","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.35.2","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.5","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.13.3","better-sqlite3":"^11.4.0","tiny-invariant":"^1.3.3","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.30.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.5","madge":"^8.0.0","eslint":"^9.13.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.39","@swc/jest":"^0.2.36","supertest":"^7.0.0","@eslint/js":"^9.13.0","cloudflare":"3.4.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.0.1","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.11.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.8.3","zod-to-json-schema":"^3.23.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^56.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","eslint-plugin-react-refresh":"^0.4.14","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.679.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.94.4_1730006854181_0.616716934317717","host":"s3://npm-registry-packages"}},"0.94.5":{"name":"promptfoo","version":"0.94.5","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.94.5","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"f91fe4c8faa44d5a90d1e14d760673cf4c457e40","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.94.5.tgz","fileCount":1225,"integrity":"sha512-IekLADmagZIgaBZI2Je2YVxGZvUtuq0nxC8aMBv7QP8fEoAd7ugKaEPibUskAq0eJZzCeggTqyFWc4kqQ/kVPA==","signatures":[{"sig":"MEUCIAoawrTL+oZlwf+D/XyunSUjQU3glGczNgE+DyU0YhI2AiEAqBIXyR2vcmJGYxq0QZozweiRXbENYdi16wu6v9a3504=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9500915},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"4a4fe6c29cf4d1db9783bcc57ceebe55c8d8aaf8","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.2.0","openai":"^4.68.4","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.1","js-yaml":"^4.1.0","winston":"^3.15.0","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^11.1.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.34.1","socket.io":"^4.8.0","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.35.2","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.5","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.13.3","better-sqlite3":"^11.4.0","tiny-invariant":"^1.3.3","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.30.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.5","madge":"^8.0.0","eslint":"^9.13.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.39","@swc/jest":"^0.2.36","supertest":"^7.0.0","@eslint/js":"^9.13.0","cloudflare":"3.4.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.0.1","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.11.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.8.3","zod-to-json-schema":"^3.23.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^56.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","eslint-plugin-react-refresh":"^0.4.14","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.679.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.94.5_1730147767434_0.7700313086497934","host":"s3://npm-registry-packages"}},"0.94.6":{"name":"promptfoo","version":"0.94.6","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.94.6","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"b9d7770a40be6b5e5f7391f7ee3741b9aa430baf","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.94.6.tgz","fileCount":1225,"integrity":"sha512-mr7ydfMXUXx5CHGJ1TTCTUAiz/ODw+hQdM+ndNZPoia0ffDxRC5+cUaKUQz4SkWjF2mutlcV7bDkPVpcQCEdKw==","signatures":[{"sig":"MEUCIBZ8WAJph+RgSpezfCjnAUjiQxWQH6miKK0ijLVyv8BqAiEA+Jzy0OWB3VJL/X9uzgcLgTxhePsZ80pNr//W9yWYi/o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9511548},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"305a5e62be1b98d10ae446c0076ef23ba42693c1","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.2.0","openai":"^4.68.4","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.1","js-yaml":"^4.1.0","winston":"^3.15.0","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^11.1.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.34.1","socket.io":"^4.8.0","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.4","drizzle-orm":"^0.35.2","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.5","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.13.3","better-sqlite3":"^11.4.0","tiny-invariant":"^1.3.3","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.30.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.5","madge":"^8.0.0","eslint":"^9.13.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.4.0","prettier":"^3.3.3","@swc/core":"^1.7.39","@swc/jest":"^0.2.36","supertest":"^7.0.0","@eslint/js":"^9.13.0","cloudflare":"3.4.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.0.1","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.11.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.8.3","zod-to-json-schema":"^3.23.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^56.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","eslint-plugin-react-refresh":"^0.4.14","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.679.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.94.6_1730308443200_0.5394210718944648","host":"s3://npm-registry-packages"}},"0.95.0":{"name":"promptfoo","version":"0.95.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.95.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"ee1d529d5c22bf3fc6e779c2fb6a446d4252fe91","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.95.0.tgz","fileCount":1259,"integrity":"sha512-3KVqnKUoTkSRI+D/7qUg96DHKiBMa/uRTS98Lj8mcYcCAY4mE+vN8cne3nP1Rjr98vbToolt5ayiIdUiEbq00w==","signatures":[{"sig":"MEYCIQD5SC9QvYjuu8SoqJqYP+HS6pXUUZmAlze5l5cmWaYZ4gIhAIWlL2TXIidUfnx7tZKO2Ni1Ofa8IL9GKY/zEBYrz5j5","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":9628434},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"3bc7583bdd22b2a2bc7bbef62caab95e345a919f","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.2.0","openai":"^4.70.2","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.1","js-yaml":"^4.1.0","winston":"^3.16.0","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^11.1.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.6","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.13.3","better-sqlite3":"^11.4.0","tiny-invariant":"^1.3.3","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.31.0","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.5","madge":"^8.0.0","eslint":"^9.14.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.5.0","prettier":"^3.3.3","@swc/core":"^1.8.0","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.14.0","cloudflare":"3.4.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.0","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.12.2","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.8.3","zod-to-json-schema":"^3.23.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^56.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","eslint-plugin-react-refresh":"^0.4.14","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.682.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.95.0_1730740011721_0.5249847746428191","host":"s3://npm-registry-packages"}},"0.96.0":{"name":"promptfoo","version":"0.96.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.96.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"d7789f62e19c2ce2df8a0035ff518af081740c86","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.96.0.tgz","fileCount":1303,"integrity":"sha512-k6hIWb0Acnhg9CoYEYCdmI2EaZBrw6U/QTCml4fa6kJefuwS1Eo4Rg6pKdGg37wtGIAIkm56HPpBNxvsfIutVA==","signatures":[{"sig":"MEUCIDA+igzMt3EsCfYYHLQQIYw4riD0owZRhWDw2jeCK4cgAiEAkRSseZLTivrmHVBCekvlAC4KYJ4ryraxSGwNR5wmZ1M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10093607},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"a15cc4f9a112e584f096a50966cdac2afc4f9f01","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.2.0","openai":"^4.70.2","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.1","js-yaml":"^4.1.0","winston":"^3.16.0","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.7.0","inquirer":"^11.1.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.6","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.13.3","better-sqlite3":"^11.4.0","tiny-invariant":"^1.3.3","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.32.0","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.5","madge":"^8.0.0","eslint":"^9.14.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.5.0","prettier":"^3.3.3","@swc/core":"^1.8.0","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.14.0","cloudflare":"3.4.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.0","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.12.2","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.8.3","zod-to-json-schema":"^3.23.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^56.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","eslint-plugin-react-refresh":"^0.4.14","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.686.0","@aws-sdk/credential-provider-sso":"^3.686.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.96.0_1731271253278_0.22949404654271732","host":"s3://npm-registry-packages"}},"0.96.1":{"name":"promptfoo","version":"0.96.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.96.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"f5b2dc476560db42a957fbd5608471b384738e7a","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.96.1.tgz","fileCount":1391,"integrity":"sha512-I2/q0x+H5ZOatXIJD9q7CQfCkyFoC3xBbGaW03/B1f5bj8MYk5XXaSx4z5peLfxESldDyW1uni8jA1q2P0NY7w==","signatures":[{"sig":"MEYCIQDbr7qBBRvxd+LABBUQbvYyN+AuMRq+h6322TB5d+Xs0wIhAMBTd6OD0jD9JBfWrtD2pxlMFgT0VgPwkydfaj1/V6iT","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10145347},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"5308f026b2f24c27cf7838d269dbce0e461d5219","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.2.1","openai":"^4.71.1","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.1","js-yaml":"^4.1.0","winston":"^3.16.0","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.8.0","inquirer":"^11.1.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.6","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.13.3","better-sqlite3":"^11.4.0","tiny-invariant":"^1.3.3","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.32.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.14.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.5.0","prettier":"^3.3.3","@swc/core":"^1.9.1","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.14.0","cloudflare":"3.4.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.0","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.12.2","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.9.0","zod-to-json-schema":"^3.23.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^56.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","eslint-plugin-react-refresh":"^0.4.14","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.687.0","@aws-sdk/credential-provider-sso":"^3.687.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.96.1_1731447770738_0.43926028239676884","host":"s3://npm-registry-packages"}},"0.96.2":{"name":"promptfoo","version":"0.96.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.96.2","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"e4a72016ecea340cdbeefe78806d4427345bc1a9","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.96.2.tgz","fileCount":1391,"integrity":"sha512-d1cAyb2IfsXHDrfrMsVVNSs8d0MG+1GZ5wCQKmu35lPNeu4piyNQLZV1Mb6nohrY/qUWSBFJEkTjOuBYsGTa8A==","signatures":[{"sig":"MEUCIB7nylglzl/7BJm7Kapv/u4mBmysopGMpKy1qqP1yvyqAiEA11vKQX8d9NUtq2cN5rd9IKj24t2K2+YbIt+B6ONuZ3U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10153994},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"4beca92a810f6b2cc0ecc39420ebcb7fe6fffc79","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.2.1","openai":"^4.72.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.1","js-yaml":"^4.1.0","winston":"^3.16.0","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.8.0","inquirer":"^11.1.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.6","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.13.3","better-sqlite3":"^11.5.0","tiny-invariant":"^1.3.3","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.32.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.14.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.5.0","prettier":"^3.3.3","@swc/core":"^1.9.2","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.14.0","cloudflare":"3.4.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.0","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.14.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.9.0","zod-to-json-schema":"^3.23.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^56.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","eslint-plugin-react-refresh":"^0.4.14","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.687.0","@aws-sdk/credential-provider-sso":"^3.687.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.96.2_1731622930618_0.204148527534199","host":"s3://npm-registry-packages"}},"0.97.0":{"name":"promptfoo","version":"0.97.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.97.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"ad10b9b20944d84369f24414c4bfb67e14095a53","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.97.0.tgz","fileCount":1423,"integrity":"sha512-TWalQ8a1KUyX81tCbqbBrpejqWeOdbtH+Lu5Ezd75Am7Qxug9B37ut069HARhaHcODuk6eE/7SD5utiFgeKI3w==","signatures":[{"sig":"MEYCIQDyRnqE+NkBJaHFKtBssSZPhqXg2Pel0FAUtiiW9L1uJgIhAL51nIzQwoKtQuigDIzyDwUyzefuk+FXMv0w7EFeXy6x","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10256357},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"37a392cfd0bf259536637d29eb1f6fafc7092de4","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.2.1","openai":"^4.72.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.1","js-yaml":"^4.1.0","winston":"^3.16.0","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.8.0","inquirer":"^11.1.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.6","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.13.3","better-sqlite3":"^11.5.0","tiny-invariant":"^1.3.3","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.13.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.32.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.14.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.5.0","prettier":"^3.3.3","@swc/core":"^1.9.2","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.14.0","cloudflare":"3.4.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.0","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.14.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.9.0","zod-to-json-schema":"^3.23.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.11","eslint-plugin-unicorn":"^56.0.0","eslint-plugin-react-hooks":"^5.1.0-rc.0","eslint-plugin-react-refresh":"^0.4.14","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.687.0","@aws-sdk/credential-provider-sso":"^3.687.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.97.0_1731971422255_0.5011967480415769","host":"s3://npm-registry-packages"}},"0.98.0":{"name":"promptfoo","version":"0.98.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.98.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"cf1cabcf2f09fccb4cdce100f1358ff5fccaa1f1","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.98.0.tgz","fileCount":1431,"integrity":"sha512-MyFcfAc4tKvTc3QPwMIz3ulhqMOiVs2k5Z7HcNgrL8CDZwdAhzOa87B2mNiYQwhqNTFIcOTpaYmVQi+eRFtwhw==","signatures":[{"sig":"MEYCIQDAr0lhHwu16gxSUrTmpVSJFjOjXvRuE29q7LXhukCCEQIhAOZR0A2TJRt4JuacI7Y3m2KyazAHDhopnSRunMZrqzdL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10314173},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"81245c2f18b3762975e170b0d1187189e8cfe2a2","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.2.2","openai":"^4.73.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.1","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.8.0","inquirer":"^11.1.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.8","cache-manager":"^4.1.0","csv-stringify":"^6.5.1","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.13.5","better-sqlite3":"^11.5.0","tiny-invariant":"^1.3.3","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.13.5","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.32.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.15.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.5.1","prettier":"^3.3.3","@swc/core":"^1.9.2","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.15.0","cloudflare":"3.4.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.0","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.15.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.9.0","zod-to-json-schema":"^3.23.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0-rc.0","eslint-plugin-react-refresh":"^0.4.14","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.696.0","@aws-sdk/credential-provider-sso":"^3.696.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.98.0_1732289840614_0.4039649614011682","host":"s3://npm-registry-packages"}},"0.99.0":{"name":"promptfoo","version":"0.99.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.99.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"b57cb61b04fd48dcd7b30059f2844b647e253437","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.99.0.tgz","fileCount":1455,"integrity":"sha512-vbFoQ5TtbSKPZeXflbefMbcsAD3AoOIdy8I4JPGaJBGH7B0p7GtzQmeq14Q30GXa8euKK23pS780y0mSgDTUBQ==","signatures":[{"sig":"MEQCIFl4gXRulx3waagkuWaKbvPZS5tukyxE/cNdU56Hb4nGAiA6GfTvOeTn+M0c6KKkptchaML/MI3JOuu5/2dt68pEYw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10376147},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"f6264481a0a10e1f441e15d72a7d5f59b275a8bb","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.2.2","openai":"^4.73.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.1","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^1.2.1","groq-sdk":"^0.8.0","inquirer":"^11.1.0","js-rouge":"3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.5.6","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.8","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.13.5","better-sqlite3":"^11.5.0","tiny-invariant":"^1.3.3","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.13.5","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.32.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.15.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.5.1","prettier":"^3.3.3","@swc/core":"^1.9.3","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.15.0","cloudflare":"3.4.0","typescript":"^5.6.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.0","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.15.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.9.0","zod-to-json-schema":"^3.23.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0-rc.0","eslint-plugin-react-refresh":"^0.4.14","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.699.0","@aws-sdk/credential-provider-sso":"^3.699.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.99.0_1732568713477_0.19398611639004693","host":"s3://npm-registry-packages"}},"0.99.1":{"name":"promptfoo","version":"0.99.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.99.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"5f80865bfa1e11e8f3e71194b9618d26fc1c422c","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.99.1.tgz","fileCount":1459,"integrity":"sha512-qRKa3c6I3hZdLh9FpYmj4XuFIKSqceXHFupa4vHuvc13nwuPzWf34l/v4ghO72R701XDeVZ/x77h5r8zqlIiWw==","signatures":[{"sig":"MEQCIFPk/QE3VS4xjNeNs7vFNvntK0Uj1T093rN3UTJcNzp1AiBTH71dGoU1xCnnxKwAx4Srgg07O69IQgo64mUXCAPjuQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10899099},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"f879d3bceccb56c010dfa1d18a8347bc763cf739","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.2.2","openai":"^4.73.1","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.1","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^2.2.0","groq-sdk":"^0.8.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.9","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.13.5","better-sqlite3":"^11.5.0","tiny-invariant":"^1.3.3","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.13.5","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.32.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.15.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.5.1","prettier":"^3.4.1","@swc/core":"^1.9.3","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.15.0","cloudflare":"3.4.0","typescript":"^5.7.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.0","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.16.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.9.0","zod-to-json-schema":"^3.23.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0-rc.0","eslint-plugin-react-refresh":"^0.4.14","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.699.0","@aws-sdk/credential-provider-sso":"^3.699.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.99.1_1733167817992_0.783362041349319","host":"s3://npm-registry-packages"}},"0.100.0":{"name":"promptfoo","version":"0.100.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.100.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"1832bac20dc5e63e7db8295e1b055409bb745c8c","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.100.0.tgz","fileCount":1471,"integrity":"sha512-bDTTg/QMO/MN8THY2nI+idhC4NrgFTajpJMhwcl4HRF5dzMBxvfj0/CZkU3Ed3P4A8/u8ybdD8TfCvHRz/OeKA==","signatures":[{"sig":"MEYCIQDzmjbW8OsKlxvKUt8oOvVshbLGp3cLVSOm4Re2SFq3JgIhAIsaF4Nf6Xs3LN3WMWgfDRcjbLry/Z0UWeXB9MuRywKj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10960955},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"f54f6b36961e4eca2cf3c120973841c20566d285","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.5","http-z":"^7.1.1","mathjs":"^13.2.2","openai":"^4.73.1","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.1","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^2.2.0","groq-sdk":"^0.9.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.9","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.13.5","better-sqlite3":"^11.5.0","tiny-invariant":"^1.3.3","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.13.5","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.32.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.15.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.5.1","prettier":"^3.4.1","@swc/core":"^1.9.3","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.15.0","cloudflare":"3.4.0","typescript":"^5.7.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.0","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.16.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.9.0","zod-to-json-schema":"^3.23.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0-rc.0","eslint-plugin-react-refresh":"^0.4.14","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.699.0","@aws-sdk/credential-provider-sso":"^3.699.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.100.0_1733379316163_0.509141684852799","host":"s3://npm-registry-packages"}},"0.100.2":{"name":"promptfoo","version":"0.100.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.100.2","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"7e6a0d50b86e8b90a91bf3487c6079d8653c8ee3","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.100.2.tgz","fileCount":1475,"integrity":"sha512-A+OkLEczyZUdDXnu/jNPbhfbD8qVFUB1cehmmp958q1UKnta3h3MjSgHltKmgv7VxXLw2P0FnlBG5ZxGoHNEdA==","signatures":[{"sig":"MEYCIQDQydFQDXJT9HwCZ5ECi1GPVUMwbjUotOoE/ouhH7BYngIhAKlcTj0hjqfZw4Fn1fq2o7mbSa+E0BeNwxKRtODAl959","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10976099},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"73912ffee529a89d60d5795d396cbd47cd0b13dc","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.1","mathjs":"^14.0.0","openai":"^4.75.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.1","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^2.2.0","groq-sdk":"^0.9.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.10","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.13.5","better-sqlite3":"^11.6.0","tiny-invariant":"^1.3.3","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.13.5","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.32.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.16.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.5.2","prettier":"^3.4.2","@swc/core":"^1.10.0","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.16.0","cloudflare":"3.4.0","typescript":"^5.7.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.0","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.17.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.9.0","zod-to-json-schema":"^3.23.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0-rc.0","eslint-plugin-react-refresh":"^0.4.16","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.706.0","@aws-sdk/credential-provider-sso":"^3.699.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.100.2_1733443596705_0.27044990754560017","host":"s3://npm-registry-packages"}},"0.100.3":{"name":"promptfoo","version":"0.100.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.100.3","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"60f6c6f40114d0d559e25c1b4b022c127d623135","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.100.3.tgz","fileCount":1475,"integrity":"sha512-/G+RXH9XoQfqb5JkV7cqABwvw9TeztMZsab1PzxIQa6FpzB662O5CSJScLCW7FNRYos8Pg0PRyfp2t3yfJwfFA==","signatures":[{"sig":"MEUCIQDvzjZZckpJhZbYCiBUkAzJXI8RFSrOQOUcOkIePwqIcwIgaaVM/4IEX/aNZS7UEgxeimygv2QqUIwljwFbbIMIOJY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10992839},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"e7692b430ca7562a14312d99a33b2a9164a25df0","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.1","mathjs":"^14.0.0","openai":"^4.75.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.1","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^2.2.0","groq-sdk":"^0.9.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.10","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.13.5","better-sqlite3":"^11.6.0","tiny-invariant":"^1.3.3","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.13.5","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.32.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.16.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.5.2","prettier":"^3.4.2","@swc/core":"^1.10.0","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.16.0","cloudflare":"3.4.0","typescript":"^5.7.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.0","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.17.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.9.0","zod-to-json-schema":"^3.23.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0-rc.0","eslint-plugin-react-refresh":"^0.4.16","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.706.0","@aws-sdk/credential-provider-sso":"^3.699.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.100.3_1733462650013_0.10312218951147356","host":"s3://npm-registry-packages"}},"0.100.4":{"name":"promptfoo","version":"0.100.4","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.100.4","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"2be2c6c4284f62cdcdbe9e4362118137f5de42b9","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.100.4.tgz","fileCount":1475,"integrity":"sha512-riAQTfuSfMnneMZMpBdxy2qCJbDNaXLrTdqSEQC3Pvc/K2YUiV9T2kSWfLsEYmDbjsTa9bHs5J5OIs3Bc4FduQ==","signatures":[{"sig":"MEUCIQCMlYLKG8xw546UyQEBQvdBEA86i+5UGfNYSQL0zEz3WgIgRyi6/33Z+kziSf1Q1kVRpuvJmd/v9m6g39GR7XFSxAM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11008532},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"f26a1ccfae6bb454f9721e60b628e69d094de5b3","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.0","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.1","mathjs":"^14.0.0","openai":"^4.75.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.1","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^2.2.0","groq-sdk":"^0.9.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.10","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.13.5","better-sqlite3":"^11.6.0","tiny-invariant":"^1.3.3","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.13.5","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.32.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.16.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.5.2","prettier":"^3.4.2","@swc/core":"^1.10.0","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.16.0","cloudflare":"3.4.0","typescript":"^5.7.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.0","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.17.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.9.0","zod-to-json-schema":"^3.23.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0-rc.0","eslint-plugin-react-refresh":"^0.4.16","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.706.0","@aws-sdk/credential-provider-sso":"^3.699.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.100.4_1733680681527_0.5325968802168037","host":"s3://npm-registry-packages"}},"0.100.5":{"name":"promptfoo","version":"0.100.5","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.100.5","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"2dd806e37fad5590e62cb5b330921b6de8584ed4","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.100.5.tgz","fileCount":1475,"integrity":"sha512-2c6Q84hsa1FY6eOXIrOdv9dm9fKaBXn3tUEnBar2sLt6YghQJt9aWfloBiZjgobVyDPA1x2qPFU5i8C8YB0h7g==","signatures":[{"sig":"MEUCIHFXVxlT5VPO3YaIZWSEjE46YbFbVHQrhW2Q5B7zQaSRAiEArzx0ze2ZK9IWo7e0aunuTIgGKKDEPanqxHApUT0Goa8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11053556},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"97a8b8af7073e5e8a3117f2e6692ef7643ffae3a","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.23.8","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.1","mathjs":"^14.0.0","openai":"^4.75.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.1","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^2.2.0","groq-sdk":"^0.9.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.4.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.10","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.13.5","better-sqlite3":"^11.6.0","tiny-invariant":"^1.3.3","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.13.5","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.32.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.16.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.5.2","prettier":"^3.4.2","@swc/core":"^1.10.0","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.16.0","cloudflare":"3.4.0","typescript":"^5.7.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.0","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.17.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.9.0","zod-to-json-schema":"^3.23.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0-rc.0","eslint-plugin-react-refresh":"^0.4.16","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.706.0","@aws-sdk/credential-provider-sso":"^3.699.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^4.3.0"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.100.5_1733778014728_0.9651578181430367","host":"s3://npm-registry-packages-npm-production"}},"0.100.6":{"name":"promptfoo","version":"0.100.6","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.100.6","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"c14b5eee0c1055bac956b84f8f7fffa103789891","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.100.6.tgz","fileCount":1483,"integrity":"sha512-sG/aLhYZrIG3itqMx/m78GaKRZYmurPtZ62hxJKwOA9UpHuo3wYfe0lT++703q2DOVr1JgTxA4QynDN+FbvZDQ==","signatures":[{"sig":"MEQCIF0Ru+KaaC+qGVqt0/VN4PccezaicsqZYfnB+cJlgzIUAiB6zPRkYBxKoz3znQBTc2NOFojPQsefI7gBZuycF0Rn1g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11097953},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"1cb12f1de9881f4242b1282f28245dd4847f05e0","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.0","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.1","mathjs":"^14.0.0","openai":"^4.76.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^2.2.0","groq-sdk":"^0.9.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.10","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.14.0","better-sqlite3":"^11.7.0","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.14.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.32.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.16.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.5.2","prettier":"^3.4.2","@swc/core":"^1.10.1","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.16.0","cloudflare":"3.4.0","typescript":"^5.7.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.0","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.9.0","zod-to-json-schema":"^3.23.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.16","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.706.0","@aws-sdk/credential-provider-sso":"^3.699.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^5.2.0"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.100.6_1733956628960_0.3997795316593522","host":"s3://npm-registry-packages-npm-production"}},"0.101.0":{"name":"promptfoo","version":"0.101.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.101.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"ddf5a9ea4f8989ba148e0a0fbafde8ad02668040","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.101.0.tgz","fileCount":1485,"integrity":"sha512-LdissvSVbcEZAKCxxGtY41hGOqZD7tXCT3E3Uxht+yGM1D2OsHevh2cxSDmMjZ82BSDeWCSa9vVJEm6y5yoj6w==","signatures":[{"sig":"MEQCIGaxrIzQ7YGUdYTipUcrqBkahJTNKwumGCiiph2X7jmRAiBr+aq2TBsRhQd9LZ0/AhSqT+Ykg+wqAQLw2QDL94e9hQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11174876},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"399d9f4539e5ef55bfad31ffdb3c2080594f11ee","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.0","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.1","mathjs":"^14.0.0","openai":"^4.76.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^2.2.0","groq-sdk":"^0.9.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.10","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.14.0","better-sqlite3":"^11.7.0","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.14.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.32.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.16.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.5.2","prettier":"^3.4.2","@swc/core":"^1.10.1","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.16.0","cloudflare":"3.4.0","typescript":"^5.7.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.0","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.9.0","zod-to-json-schema":"^3.23.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.16","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.706.0","@aws-sdk/credential-provider-sso":"^3.699.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^5.2.0"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.101.0_1734038849564_0.1548388954517792","host":"s3://npm-registry-packages-npm-production"}},"0.101.1":{"name":"promptfoo","version":"0.101.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.101.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"e68c7939f78d82a3b38abf105bf573a8ef91e3ef","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.101.1.tgz","fileCount":1485,"integrity":"sha512-cPzvuGbUDcBy+DujVpyTLRApx9F7DE8gRlOIYDFBOMZZQ0x+RgGuBaxrRQ7AkC9628DXHHteS8R8Zk7x2BNBtQ==","signatures":[{"sig":"MEQCIAJjNZ6CLRq/Dzt08oulvs6OECVz7ot0saAx0Xg+E94ZAiAX8IjpHMfGKNqbtTbGtL+swe8UpYypz+usY4xzs10MzQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11174984},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"e51db3c12d64b91780e3680f02fad0371bc8c672","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.0","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.1","mathjs":"^14.0.0","openai":"^4.76.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^2.2.0","groq-sdk":"^0.9.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.10","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.14.0","better-sqlite3":"^11.7.0","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.14.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.32.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.16.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.5.2","prettier":"^3.4.2","@swc/core":"^1.10.1","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.16.0","cloudflare":"3.4.0","typescript":"^5.7.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.0","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.9.0","zod-to-json-schema":"^3.23.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.16","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.706.0","@aws-sdk/credential-provider-sso":"^3.699.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^5.2.0"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.101.1_1734049222936_0.9429868893482598","host":"s3://npm-registry-packages-npm-production"}},"0.101.2":{"name":"promptfoo","version":"0.101.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.101.2","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"910e5823b563448a774fb4cbff3fa91ffe4b51ff","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.101.2.tgz","fileCount":1489,"integrity":"sha512-A+vKx8clB+Pv47YQYiGxdrjS1RuGbspyI4XHaqv9pbvu3+6Cq9sI5+y0Xi8DM3bWZtAMqsbggShSPsQ9Pj2emQ==","signatures":[{"sig":"MEYCIQDJFO1S00v4aLeG2KwXh/QUIihAjo0P2Ae4JpsAxerXtAIhAPfLNRbwlD6Gyzv+SA3WxE1Od0EoTRET6n6YKP4tlg0i","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11305665},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"ea2aa8ec9a9c86cf08bc9823622f627e5ffb6662","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.0","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.1","mathjs":"^14.0.0","openai":"^4.76.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^2.2.0","groq-sdk":"^0.9.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.10","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.14.0","better-sqlite3":"^11.7.0","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.14.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.32.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.16.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.5.2","prettier":"^3.4.2","@swc/core":"^1.10.1","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.16.0","cloudflare":"3.4.0","typescript":"^5.7.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.0","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.9.0","zod-to-json-schema":"^3.23.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.16","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.706.0","@aws-sdk/credential-provider-sso":"^3.699.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^5.2.0"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.101.2_1734140508758_0.3930019986903224","host":"s3://npm-registry-packages-npm-production"}},"0.102.0":{"name":"promptfoo","version":"0.102.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.102.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"d30c83d3e871b4d61bee00222175edb00744bb48","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.102.0.tgz","fileCount":1501,"integrity":"sha512-R2vQ+XoaWklSt8V10HJug+wrR9l6Er+YNWH7vn/XMAztPCFyFguoPot9vJZxa22EwB0O1Xj1wYiAT1jlMpoGpg==","signatures":[{"sig":"MEUCIQDyqyCjfM0h4zw6fFUSsd5tDGErP+j0jOqYry6MOSxzAwIgT+zgrpD+k0xvj8fq8y093qhGmb0TrN8Af8yISTA5ZUo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11423585},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"366f415605d81439eb6e15268b528354814acf0a","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"uri-js":"npm:uri-js-replace","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.0","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.1","mathjs":"^14.0.0","openai":"^4.76.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^2.2.0","groq-sdk":"^0.9.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.10","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.14.0","better-sqlite3":"^11.7.0","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.14.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.32.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.16.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.5.2","prettier":"^3.4.2","@swc/core":"^1.10.1","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.16.0","cloudflare":"3.4.0","typescript":"^5.7.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.0","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.9.0","zod-to-json-schema":"^3.23.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.16","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.706.0","@aws-sdk/credential-provider-sso":"^3.699.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^5.2.0"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.102.0_1734363009709_0.5864064129091275","host":"s3://npm-registry-packages-npm-production"}},"0.102.1":{"name":"promptfoo","version":"0.102.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.102.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"bf20e0dcb591ac0a86c2bc776ebe0b73e434a035","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.102.1.tgz","fileCount":1501,"integrity":"sha512-7iNOb+AaLp/znQ1H6KtNuVJkEGLXSKUEtP7nd2jp4YW6wa9okfqC/5azZS62Zj2CtEoLL2yVS/pLPudEf4M2jA==","signatures":[{"sig":"MEUCIFVpA5SroSSOnKmF7z804BNoW1rqKAB3KVSF0b4mzlHHAiEA4cZrDGek3MJYWNO+cVCKYy+x1MY+DBcU1i5UjOo+ff8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11508786},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"32e435034fc54a33ce7b0fb44a893da1fc95ba03","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.0","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.1","mathjs":"^14.0.0","openai":"^4.76.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^2.2.0","groq-sdk":"^0.9.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.10","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.14.0","better-sqlite3":"^11.7.0","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.14.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.32.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.16.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.5.2","prettier":"^3.4.2","@swc/core":"^1.10.1","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.16.0","cloudflare":"3.4.0","typescript":"^5.7.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.0","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.9.0","zod-to-json-schema":"^3.23.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.16","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.706.0","@aws-sdk/credential-provider-sso":"^3.699.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^5.2.0"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.102.1_1734464078881_0.6232683602537508","host":"s3://npm-registry-packages-npm-production"}},"0.102.2":{"name":"promptfoo","version":"0.102.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.102.2","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"7c02b82b511a82846980a9f4cbe176d658f9b5b3","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.102.2.tgz","fileCount":1501,"integrity":"sha512-qIl0Vsa3r5cFMepWSG5BERHa0x0HMkdBxfNBTzJx+aQ3D/LAcr/sGGgGeIoiDiZTwmSDezTZyUbquvFQsE6YyQ==","signatures":[{"sig":"MEUCIBlY0Ng9Tir+Jnfzpf1EoYE04fSG7k7fEkqvLj5j4dZVAiEA2gvVDDRQXQWAFV2wXo2lUiSglwdVA4LKZiL/a2gOKyw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11531471},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"3402690ccf5694920de519d3008b105225e925b9","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.0","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.1","mathjs":"^14.0.0","openai":"^4.76.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^2.2.0","groq-sdk":"^0.9.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.10","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.14.0","better-sqlite3":"^11.7.0","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.14.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.0","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.33.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.16.0","esbuild":"^0.24.0","nodemon":"^3.1.7","ts-node":"^10.9.2","@swc/cli":"^0.5.2","prettier":"^3.4.2","@swc/core":"^1.10.1","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.16.0","cloudflare":"3.4.0","typescript":"^5.7.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.0","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.18.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.9.0","zod-to-json-schema":"^3.23.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.16","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.706.0","@aws-sdk/credential-provider-sso":"^3.699.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^5.2.0"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.102.2_1734588051294_0.22089505105798724","host":"s3://npm-registry-packages-npm-production"}},"0.102.3":{"name":"promptfoo","version":"0.102.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.102.3","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"eee4a2ccdf0bf8afd0f5b2cebe7ffa7e253754a3","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.102.3.tgz","fileCount":1509,"integrity":"sha512-6Su6njnzl0o5vrYKyp/UTIzjbowlUds5IOH+OuMecbsDHsg0Wa2wlPPxjPvDOM5E6hW+j6oR3AbdYygvpSXCzQ==","signatures":[{"sig":"MEYCIQDGu6MMwhnRHw5YTCeHw80UDw2VNeR1Cvsg9pybZmmDdgIhAI2byOQLDVUbuupP/O1THEV+7XMd/sKS/mj/UYpJtyNo","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11563246},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"7a52068823d1223edcfc3d6394f168372e44f138","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.1","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.1","mathjs":"^14.0.1","openai":"^4.77.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^2.2.0","groq-sdk":"^0.9.1","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.10","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.14.0","better-sqlite3":"^11.7.0","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.14.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.33.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.17.0","esbuild":"^0.24.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.5.2","prettier":"^3.4.2","@swc/core":"^1.10.1","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.17.0","cloudflare":"3.4.0","typescript":"^5.7.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.0","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.18.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.9.0","zod-to-json-schema":"^3.24.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.16","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.714.0","@aws-sdk/credential-provider-sso":"^3.714.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^5.2.0"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.102.3_1734650062959_0.3555685542107534","host":"s3://npm-registry-packages-npm-production"}},"0.102.4":{"name":"promptfoo","version":"0.102.4","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.102.4","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"f2bf64d6dca8e446e68bb6e3cf205cac26b11218","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.102.4.tgz","fileCount":1517,"integrity":"sha512-lW1tfwrlR67dAovy/FwEM6zu+kIcA5EoIXd1aPFNK/s0E2LrbANO8fuTwJ6/IxlxPs2yzP0VjJUanyPjo552rQ==","signatures":[{"sig":"MEUCIQCRy/g35rn6ffd5XRagN0k2uZVXR8prlXp2GI5rkbXiRgIgWJmRv2Jos42sPsMvcIBxfwFMLAhWfNX1D3TPd3PiVLo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11609600},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"7443ff9dd077ba7d7da60eec5f39639962343ef1","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.1","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.1","mathjs":"^14.0.1","openai":"^4.77.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^2.2.0","groq-sdk":"^0.9.1","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.10","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.14.0","better-sqlite3":"^11.7.0","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.14.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.33.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.17.0","esbuild":"^0.24.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.5.2","prettier":"^3.4.2","@swc/core":"^1.10.1","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.17.0","cloudflare":"3.4.0","typescript":"^5.7.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.0","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.18.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.9.0","zod-to-json-schema":"^3.24.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.16","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.714.0","@aws-sdk/credential-provider-sso":"^3.714.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^5.2.0"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.102.4_1734671021659_0.23590201509130537","host":"s3://npm-registry-packages-npm-production"}},"0.103.0":{"name":"promptfoo","version":"0.103.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.103.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"efc0ec80277772c67c6d0ccd7365f6f00dfccc2b","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.103.0.tgz","fileCount":1549,"integrity":"sha512-Kjm/B5gNF9iwh4ayyavvLfeSKaryPhixMwcsZ66DRtuGgAWSaQoPruV/anmysWBmIgfIMRhForfA2EQj4I9l8Q==","signatures":[{"sig":"MEUCICFFyV7Kps+aMAwNs4QFVvTW700kxPtnU26DqGFcCOYvAiEA5D26mJLKNnBz3x57PsAXf2IP+fYmSB13/uHD4Fo7kjY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11715704},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"0538e48992fbbda0497d26219eafef9dd2821ae7","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.1","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.1","mathjs":"^14.0.1","openai":"^4.77.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^2.2.0","groq-sdk":"^0.9.1","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.10","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.14.0","better-sqlite3":"^11.7.0","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.14.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.33.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.17.0","esbuild":"^0.24.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.5.2","prettier":"^3.4.2","@swc/core":"^1.10.1","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.17.0","cloudflare":"3.4.0","typescript":"^5.7.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.0","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.18.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.9.0","zod-to-json-schema":"^3.24.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.16","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.714.0","@aws-sdk/credential-provider-sso":"^3.714.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^5.2.0"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.103.0_1734978676149_0.8761648250587142","host":"s3://npm-registry-packages-npm-production"}},"0.103.1":{"name":"promptfoo","version":"0.103.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.103.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"8c7e908fbdcd3d69b7bd8dcf40669fd74a7c5ed7","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.103.1.tgz","fileCount":1549,"integrity":"sha512-uXVKklnZIux270NO4Xi9eRnqw2mP1jPCkBWBLDD+HxDVmS+8FEeX3Ppb665D3GPdlggiFfiSyxqrPqej7bQl7A==","signatures":[{"sig":"MEQCIC6K20434QYiiXlKroavUtIdcJkIDw26LF/UvAOgQholAiAQsfURVMbupqEGgMKmYRp8LtQ3BX3G8uiu3vwwMjubQw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11715864},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"fcdb4c0b2b166ebc89302bbc6ba9a22b6ee6d73a","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.1","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.1","mathjs":"^14.0.1","openai":"^4.77.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^2.2.0","groq-sdk":"^0.9.1","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.10","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.14.0","better-sqlite3":"^11.7.0","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.14.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.33.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.17.0","esbuild":"^0.24.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.5.2","prettier":"^3.4.2","@swc/core":"^1.10.1","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.17.0","cloudflare":"3.4.0","typescript":"^5.7.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.0","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.18.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.9.0","zod-to-json-schema":"^3.24.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.16","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.714.0","@aws-sdk/credential-provider-sso":"^3.714.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^5.2.0"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.103.1_1735015605620_0.38078616713653934","host":"s3://npm-registry-packages-npm-production"}},"0.103.2":{"name":"promptfoo","version":"0.103.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.103.2","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"3378b3f28efeea9544063079ecf9662087f9883f","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.103.2.tgz","fileCount":1557,"integrity":"sha512-rxyNIOqrycQgG6BpcQ8lKRHbwQiTWoBzzHxwEPlyza0RGCJ4hmeint95/LCOSsvAs0QhxhL5UupESOVSrvpONA==","signatures":[{"sig":"MEYCIQDdzSh3rUdcKmd1odLLoJq99i5pWN63xnQIdCjVqP8L2AIhAKh+f5+3scrWKkKwZz8DnCYRSxl0szKlkzTdyLWAqAoF","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11735116},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"e857a9832cd08f90d63026f30b2aef0ebd57b380","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.1","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.1","mathjs":"^14.0.1","openai":"^4.77.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^2.2.0","groq-sdk":"^0.9.1","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.10","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.14.0","better-sqlite3":"^11.7.0","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.14.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.33.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.17.0","esbuild":"^0.24.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.5.2","prettier":"^3.4.2","@swc/core":"^1.10.1","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.17.0","cloudflare":"3.4.0","typescript":"^5.7.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.0","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.18.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.9.0","zod-to-json-schema":"^3.24.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.16","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.714.0","@aws-sdk/credential-provider-sso":"^3.714.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^5.2.0"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.103.2_1735668514055_0.45247711287105674","host":"s3://npm-registry-packages-npm-production"}},"0.103.3":{"name":"promptfoo","version":"0.103.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.103.3","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"f655558eb2ed7ed304f5a2ee7a31918dba8a19af","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.103.3.tgz","fileCount":1561,"integrity":"sha512-MXdiasOelQz3gnz+1rMQS+Zy+l4ce37qGsfGkCZrm6Puhwnh9+RCBH4oEGF+Hq5WDhDZQRn5mipMQv+vVLcnZw==","signatures":[{"sig":"MEUCIB/UqqWQvkIL9cC04rt3cyKZ4oZgn3pTY+KxjOk3MSaNAiEAno4TkfFf4lxCq30t8wg/9mAH5PPzwLgIvAJhHDlcU50=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11751983},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"50150a11e2cdfb22d40e459d6dd30856ccf8480f","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.1","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.1","mathjs":"^14.0.1","openai":"^4.77.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^2.2.0","groq-sdk":"^0.9.1","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.10","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.14.0","better-sqlite3":"^11.7.0","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.14.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.33.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.17.0","esbuild":"^0.24.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.5.2","prettier":"^3.4.2","@swc/core":"^1.10.1","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.17.0","cloudflare":"3.4.0","typescript":"^5.7.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.0","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.18.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.9.0","zod-to-json-schema":"^3.24.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.16","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.714.0","@aws-sdk/credential-provider-sso":"^3.714.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^5.2.0"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.103.3_1735876893321_0.8315072920272213","host":"s3://npm-registry-packages-npm-production"}},"0.103.4":{"name":"promptfoo","version":"0.103.4","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.103.4","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"dbb4d3ba1da23d32cc2f2484e1dee9e8a2a59a9d","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.103.4.tgz","fileCount":1577,"integrity":"sha512-gPJuFnxRNz277TFOgGwJYvWqbme2K2xdKJ1VRIlJ1c0bDYhQ8pI85yAlfiI+SsVU0ShNydK/ZldaEXyt+Jadhg==","signatures":[{"sig":"MEQCIH9L3cL4ZZheS+hFRGTbthNKvU4EPzrikIaGpZFAJrALAiBu+vTl5OZZDqtuWtjzMK4/dojregtnBMagVzSKY3XYcA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11906476},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"91e0c6b39c1e437583b7cb4ac4c5a25a78a84e95","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.1","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.1","mathjs":"^14.0.1","openai":"^4.77.0","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^2.2.0","groq-sdk":"^0.9.1","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.10","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.14.0","better-sqlite3":"^11.7.0","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.14.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.33.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.17.0","esbuild":"^0.24.2","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.5.2","prettier":"^3.4.2","@swc/core":"^1.10.4","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.17.0","cloudflare":"3.4.0","typescript":"^5.7.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.19.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.10.0","zod-to-json-schema":"^3.24.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.16","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.721.0","@aws-sdk/credential-provider-sso":"^3.721.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^5.2.1"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.103.4_1736354973936_0.5306830711226254","host":"s3://npm-registry-packages-npm-production"}},"0.103.5":{"name":"promptfoo","version":"0.103.5","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.103.5","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"fd75882774f361c8362f14b4119133e7af668cd7","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.103.5.tgz","fileCount":1581,"integrity":"sha512-2jrG+DM/fsObJo1GILrdd45m89LwtFjzvT44EbOfqjNeq9cieCROfp+pPYCWOAq/5hQLZeQUuzT4GzTMPtMytQ==","signatures":[{"sig":"MEUCIEtL+6YgsKUJ07g0k//GAwHGFwcWqL5mOnvkW4oczd8aAiEA6ClDmgY/JyEglut8GtHRnFe9DPfH14JYOvMfV3iyan4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12002729},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"91b6300ef755fa5f02fb7e99b45291e6b2ee6537","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.1","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.1","mathjs":"^14.0.1","openai":"^4.77.4","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^2.2.0","groq-sdk":"^0.10.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.10","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.14.0","better-sqlite3":"^11.7.2","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.14.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.33.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.17.0","esbuild":"^0.24.2","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.5.2","prettier":"^3.4.2","@swc/core":"^1.10.6","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.17.0","cloudflare":"3.4.0","typescript":"^5.7.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.19.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.10.0","zod-to-json-schema":"^3.24.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.16","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.723.0","@aws-sdk/credential-provider-sso":"^3.723.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^5.2.1"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.103.5_1736405625243_0.2975232142898099","host":"s3://npm-registry-packages-npm-production"}},"0.103.6":{"name":"promptfoo","version":"0.103.6","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.103.6","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"4d0d56e66276175a20b25635f07b28d453c7bc26","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.103.6.tgz","fileCount":1581,"integrity":"sha512-LDYFcT9QsrKjvuKa00siZw3HG5fxq7EF2FkWY+MTeGIHzygq0eTqFmAUCeeFuuv+alrdVRkAkmdVwjuCsa1Otg==","signatures":[{"sig":"MEUCIEQOooJrBC9l193iS0ZRTG6oQtmuxLrgvQSkG2S6LEjqAiEA6ariNuVQxjjjUu7TwWHXiQGlNqYBlZr7gf3fVENLO6U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12009647},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"ab79e7d6e9d6f6faf85d25838756cc375e9e466e","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.1","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.1","mathjs":"^14.0.1","openai":"^4.77.4","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^2.2.0","groq-sdk":"^0.10.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.10","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.14.0","better-sqlite3":"^11.7.2","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.14.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.33.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.17.0","esbuild":"^0.24.2","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.5.2","prettier":"^3.4.2","@swc/core":"^1.10.6","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.17.0","cloudflare":"3.4.0","typescript":"^5.7.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.19.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.10.0","zod-to-json-schema":"^3.24.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.16","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.723.0","@aws-sdk/credential-provider-sso":"^3.723.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^5.2.1"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.103.6_1736451490832_0.9409205041311259","host":"s3://npm-registry-packages-npm-production"}},"0.103.7":{"name":"promptfoo","version":"0.103.7","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.103.7","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"b8d05bc80e63d3739adbb1b316a247eab46c782d","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.103.7.tgz","fileCount":1581,"integrity":"sha512-4OwG0wAF/okZDpr42hSzGFR4fOOo0qxlRzq76afybbBhiDF0oBUBgtNIKjSp7b71LV7UJZtboA6yJCMbQOsKvQ==","signatures":[{"sig":"MEUCIQCyz0+ZIszlxE7MXAWoXM2cnaoHPMUNc+5GLaeTu9hIWQIgUbP9DLyp7jWAALl/oy/vqImPQYCtNUi5SRwN5y28qcQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12034113},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"6a3c9ffb09512c8c3028867acccdf851a2253a98","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.1","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.1","mathjs":"^14.0.1","openai":"^4.77.4","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^2.2.0","groq-sdk":"^0.11.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.10","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.14.0","better-sqlite3":"^11.7.2","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.14.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.33.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.17.0","esbuild":"^0.24.2","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.5.2","prettier":"^3.4.2","@swc/core":"^1.10.6","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.17.0","cloudflare":"3.4.0","typescript":"^5.7.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.19.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.10.0","zod-to-json-schema":"^3.24.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.16","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.723.0","@aws-sdk/credential-provider-sso":"^3.723.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^5.2.1"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.103.7_1736542540544_0.6706177554843451","host":"s3://npm-registry-packages-npm-production"}},"0.103.8":{"name":"promptfoo","version":"0.103.8","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.103.8","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"baa5e2756157d2a5d70b0bc84497cf1c995ae118","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.103.8.tgz","fileCount":1581,"integrity":"sha512-Ca32OW7zBnxzI/cymv8TbAeAnkUsRGKvqpXivZYleX7jnMwCH9AD8d3abV16ZagPjVvdb5XH/Svmz1UGMKbXmg==","signatures":[{"sig":"MEYCIQDUXy+HHjhYiOeK/xLryj+rvEiuyxOWIqp59gXCv9JRowIhANYB5qsPCxWJCAkGqtshDBooVkqN2mWmrjS8Drm1OqHU","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12039256},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"a77fbbdcda303977e26a5b1e48a60ff9b5174674","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.1","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.1","mathjs":"^14.0.1","openai":"^4.77.4","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^2.2.0","groq-sdk":"^0.11.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.10","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.14.0","better-sqlite3":"^11.7.2","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.14.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.33.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.17.0","esbuild":"^0.24.2","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.5.2","prettier":"^3.4.2","@swc/core":"^1.10.6","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.17.0","cloudflare":"3.4.0","typescript":"^5.7.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.19.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.10.0","zod-to-json-schema":"^3.24.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.16","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.723.0","@aws-sdk/credential-provider-sso":"^3.723.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^5.2.1"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.103.8_1736567807477_0.7248708656594913","host":"s3://npm-registry-packages-npm-production"}},"0.103.9":{"name":"promptfoo","version":"0.103.9","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.103.9","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"dd5ac5849abfe5e585061c36c116f9b0e1719259","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.103.9.tgz","fileCount":1589,"integrity":"sha512-uN7XUWwHDQzoz9sAafBTkLJH9foLcauAyNhwifOnrC4KchaEteHyIbc8Wd7aLkEAS2d4HRZV23ijwuyiQYkRTg==","signatures":[{"sig":"MEYCIQC+yFl2U6CUs+FeY0FMvsEgz/qW2OA5F4QFzBNfOTSkTAIhAOlQ27v/4kUJrvsE4vNEZRBVGNYaC5p635gvwC2zJjGi","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12065205},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"ea83a2ddb09a1e3b35ade1de7632294b611958ed","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.1","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.1","mathjs":"^14.0.1","openai":"^4.77.4","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^2.2.0","groq-sdk":"^0.11.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.10","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.14.0","better-sqlite3":"^11.7.2","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.14.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.33.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.17.0","esbuild":"^0.24.2","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.5.2","prettier":"^3.4.2","@swc/core":"^1.10.6","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.17.0","cloudflare":"3.4.0","typescript":"^5.7.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.19.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.10.0","zod-to-json-schema":"^3.24.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.16","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.723.0","@aws-sdk/credential-provider-sso":"^3.723.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^5.2.1"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.103.9_1736748383216_0.2426208707156512","host":"s3://npm-registry-packages-npm-production"}},"0.103.10":{"name":"promptfoo","version":"0.103.10","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.103.10","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"fb3ff8765f61f5d8151f66192fbfc0dc3b9ff72e","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.103.10.tgz","fileCount":1645,"integrity":"sha512-W6y1CqwqjOV8yznYLiNK15Py/+EhZKzUSyptQO5fb4ZuOP5fc505B+VudqZ0N4a9CATZqBpZgen1o4ruFFNNmw==","signatures":[{"sig":"MEUCIQChFHm4Yb0pMHyFzMBm+yCxDmRgA38AZdmKtp1cE0vKtAIgMy55cpGh/LXUw/2Xb7oCixShjes2aS8VBSsCQSl7LQY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12268875},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"1ec41fdae368fbe46047cb7d1aec9ff39d634f0d","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.1","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.1","mathjs":"^14.0.1","openai":"^4.77.4","opener":"^1.5.2","semver":"^7.6.3","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^2.2.0","groq-sdk":"^0.12.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.10","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.14.0","better-sqlite3":"^11.7.2","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.14.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.33.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.17.0","esbuild":"^0.24.2","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.5.2","prettier":"^3.4.2","@swc/core":"^1.10.6","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.17.0","cloudflare":"3.4.0","typescript":"^5.7.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.19.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.10.0","zod-to-json-schema":"^3.24.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.16","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.723.0","@aws-sdk/credential-provider-sso":"^3.723.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^5.2.1"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.103.10_1737066996163_0.7014920922729531","host":"s3://npm-registry-packages-npm-production"}},"0.103.11":{"name":"promptfoo","version":"0.103.11","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.103.11","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"b8af4a4602c16acd39ef1b0d41a3d6bf1d0b3b00","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.103.11.tgz","fileCount":1677,"integrity":"sha512-tABQmMl4wZJl21ZFG4M6aB3YRvtf1AOVCibqD7adTw+fPiYNmaAJS9qoWWoKYeQnDWCdgbhHBiw1jP7DAdwYeQ==","signatures":[{"sig":"MEYCIQDde3dksTw4VjS0Nr3jXNJM5S1bZOVpmkIqn6E5ql8FuAIhAKnDsOaT+o2nM2CqdL9GjkD8P6lV+bp4Qfym34f0XRXQ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12402966},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"4db7c808107c8e663db6de0280b974439676e33b","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.1","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.1","mathjs":"^14.0.1","openai":"^4.77.4","opener":"^1.5.2","semver":"^7.6.3","undici":"^6.21.1","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^2.2.0","groq-sdk":"^0.12.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.10","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.14.0","better-sqlite3":"^11.7.2","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.14.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.33.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.17.0","esbuild":"^0.24.2","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.5.2","prettier":"^3.4.2","@swc/core":"^1.10.6","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.17.0","cloudflare":"3.4.0","typescript":"^5.7.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.19.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.10.0","zod-to-json-schema":"^3.24.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.16","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.723.0","@aws-sdk/credential-provider-sso":"^3.723.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^5.2.1"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.103.11_1737334752358_0.1620864571986398","host":"s3://npm-registry-packages-npm-production"}},"0.103.12":{"name":"promptfoo","version":"0.103.12","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.103.12","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"06a5c2f7b43879c4e270a33a06d2c99c3c93a5f7","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.103.12.tgz","fileCount":1701,"integrity":"sha512-BX4IcGrQU8fkg41mUU5xUQFstEGkok4EA8Z3VBJ+Q4e3j+HhPZLiPMPKrdMA2kT2r9E27I+p3+nbDclHuaH5cQ==","signatures":[{"sig":"MEUCIQDn8+qT+1eAYSZLLcSxLGeqGhLjBBQrRc4+l5VqtgAA4gIgBj9m4evY0N8WWzobBl7OCC27lbgXV+w6qAyg40vIuBU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12475175},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"5f160ab7e45699a25a35c41b7672d9cb451d918c","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.1","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.1","mathjs":"^14.0.1","openai":"^4.77.4","opener":"^1.5.2","semver":"^7.6.3","undici":"^6.21.1","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^2.2.0","groq-sdk":"^0.12.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.10","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.14.0","better-sqlite3":"^11.7.2","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.14.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.33.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.17.0","esbuild":"^0.24.2","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.5.2","prettier":"^3.4.2","@swc/core":"^1.10.6","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.17.0","cloudflare":"3.4.0","typescript":"^5.7.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.19.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.10.0","zod-to-json-schema":"^3.24.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.16","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.723.0","@aws-sdk/credential-provider-sso":"^3.723.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^5.2.1"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.103.12_1737476744019_0.21538220792842666","host":"s3://npm-registry-packages-npm-production"}},"0.103.13":{"name":"promptfoo","version":"0.103.13","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.103.13","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"3bf772e8e41e7ba21e95cec186ecb72f7daad111","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.103.13.tgz","fileCount":1701,"integrity":"sha512-zs876EDHJuYoQP1B+B7tTj+efpA7XzU93Atc3QMk3AYrXFJeqJowIDFPic4KonbhQDnUjRz+YiHHsLEYaEPlXA==","signatures":[{"sig":"MEYCIQCLhnTZvA3FhnjAW8ispk8+W++9wheOFDlc3Gc8+/q6PgIhAP8py1LcPE7/uMc/nR8SdANN+8XVQ9W3I59LBtdeg16D","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12534712},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"9f488a29f092d5616dab0f12eac3a526f77b09f9","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.1","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.1","mathjs":"^14.0.1","openai":"^4.77.4","opener":"^1.5.2","semver":"^7.6.3","undici":"^6.21.1","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^2.2.0","groq-sdk":"^0.12.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.8.1","@mui/material":"^6.1.10","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@adaline/azure":"0.9.1","@adaline/types":"0.15.0","@emotion/react":"^11.14.0","better-sqlite3":"^11.7.2","@adaline/google":"0.8.0","@adaline/openai":"0.21.0","@adaline/vertex":"0.8.1","@emotion/styled":"^11.14.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@adaline/gateway":"0.23.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.33.1","@adaline/anthropic":"0.19.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.17.0","esbuild":"^0.24.2","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.5.2","prettier":"^3.4.2","@swc/core":"^1.10.6","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.17.0","cloudflare":"3.4.0","typescript":"^5.7.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.5.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.19.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.10.0","zod-to-json-schema":"^3.24.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.16","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.723.0","@aws-sdk/credential-provider-sso":"^3.723.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^5.2.1"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.103.13_1737498808831_0.8091371883920948","host":"s3://npm-registry-packages-npm-production"}},"0.103.14":{"name":"promptfoo","version":"0.103.14","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.103.14","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"c8107c86da4b3a0f9b8e13016df1b32941b29c78","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.103.14.tgz","fileCount":1725,"integrity":"sha512-OigLOx9kUxu6CTudcRi6aIK9gjEgJk/H4yvSILz8bhsyhJLRA6Tj+krewUHwlaaxMgsrcXenTGLdY5iLc7huvw==","signatures":[{"sig":"MEQCIAu/5v/nF5Rld6wxx4sgIngXRL5nP7skQjC2chWpIaB2AiBv5MlmteXVgulqBSFVZ2fAuKz3ibuLrureTkT3LOeK8g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12642954},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"4f1e7a4da30db9576b45e286d582140ac9316cfc","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.1","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.1","mathjs":"^14.0.1","openai":"^4.80.0","opener":"^1.5.2","semver":"^7.6.3","undici":"^6.21.1","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^2.2.0","groq-sdk":"^0.12.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@adaline/groq":"0.9.0","@mui/material":"^6.1.10","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@emotion/react":"^11.14.0","better-sqlite3":"^11.7.2","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@emotion/styled":"^11.14.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@adaline/gateway":"0.25.0","@adaline/provider":"0.17.0","@anthropic-ai/sdk":"^0.35.0","@adaline/anthropic":"0.20.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.17.0","esbuild":"^0.24.2","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.5.2","prettier":"^3.4.2","@swc/core":"^1.10.6","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.17.0","cloudflare":"3.4.0","typescript":"^5.7.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.6.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.19.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.10.0","zod-to-json-schema":"^3.24.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.16","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.731.1","@aws-sdk/credential-provider-sso":"^3.731.1","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^5.2.1"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","playwright-extra":"^4.3.6","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.103.14_1737758665273_0.17823046390917896","host":"s3://npm-registry-packages-npm-production"}},"0.103.15":{"name":"promptfoo","version":"0.103.15","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.103.15","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"0f06f4a99be1106b6a747d622eb4469102e5ce30","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.103.15.tgz","fileCount":1741,"integrity":"sha512-+iDgLpiyEeufR2vFfQFqNSdw97/zQ/g6ggD9iTkw/ad6wzzkEMfm2whpuFyQ6/TWWHQbIFoJm5Q3B1EmhW2jVg==","signatures":[{"sig":"MEQCIBt7Y3S1bwYrWddWe0L+uF0KreOgzn2r6e8uWXUT88J0AiAOEhJ7D3RKYFy18JylSnk6cUq0ZmxqyShL41qwBCS4PQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12702778},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"74a4b042f195cb6ec0d936d6263072157fc6089f","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","preversion":"[ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$npm_package_version\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.8.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"20.18.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.1","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.1","mathjs":"^14.0.1","openai":"^4.80.0","opener":"^1.5.2","semver":"^7.6.3","undici":"^6.21.1","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"^3.6.0","debounce":"^2.2.0","groq-sdk":"^0.12.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","@mui/material":"^6.1.10","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","@emotion/react":"^11.14.0","better-sqlite3":"^11.7.2","@emotion/styled":"^11.14.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.35.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.17.0","esbuild":"^0.24.2","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.5.2","prettier":"^3.4.2","@swc/core":"^1.10.6","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.17.0","cloudflare":"3.4.0","typescript":"^5.7.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.6.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.19.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.10.0","zod-to-json-schema":"^3.24.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.16","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.731.1","@aws-sdk/credential-provider-sso":"^3.731.1","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^5.2.1"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.103.15_1738024412102_0.9441977344737758","host":"s3://npm-registry-packages-npm-production"}},"0.103.16":{"name":"promptfoo","version":"0.103.16","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.103.16","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"f773a81841912ed233b1a081be39ee93627d320d","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.103.16.tgz","fileCount":1123,"integrity":"sha512-HJom3GFIpgQnsbOORqvPbXQ/jLoYYu708tpkbQply0SvO8fwX/1jb1r0p8RfsnX/Yowr3g6HrcO7QVwKz7u1UQ==","signatures":[{"sig":"MEQCIDy/6JEBlJvN7watPPLD8zyMS9BT31KIogyRdWc91GwlAiBH88ueiHya2MrmK0TVfN7sFOMlaa525FNYpcpQYx7NJA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9682313},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"981bc9e8ac34a774336ee99d46b41dd59abe317f","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","preversion":"[ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.1","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.3","mathjs":"^14.1.0","openai":"^4.80.1","opener":"^1.5.2","semver":"^7.6.3","undici":"^6.21.1","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","groq-sdk":"^0.12.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.35.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.8.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.36.3","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.19.0","esbuild":"^0.24.2","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.4.2","@swc/core":"^1.10.11","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.19.0","cloudflare":"3.4.0","typescript":"^5.7.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.26.2","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.6.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.22.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","zod-to-json-schema":"^3.24.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.18","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.734.0","@aws-sdk/credential-provider-sso":"^3.734.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^5.2.1"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.103.16_1738103138066_0.08671145019845627","host":"s3://npm-registry-packages-npm-production"}},"0.103.17":{"name":"promptfoo","version":"0.103.17","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.103.17","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"bad96721665b2e148d770d703971fa22328d2ee4","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.103.17.tgz","fileCount":1127,"integrity":"sha512-KmZFrL3ESr9PUsfv+gNqPaSuO7EaR4xhhVQKPZJH4593CH+TG2uhdGCVcRwV3h7i2zAM6DKaAwoanH+BlJn1nQ==","signatures":[{"sig":"MEYCIQDztL+HHh8z5DTM58u2Wj1HdJEDvsUz+gpDVD38ESMWAwIhAJVjZkgXK0NwS3O1b0QKaEeTIVThtxnCvX13Qrnq5zEY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9814077},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"043741a537fb4e5fe7c7b3066e219b46a25b8910","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","preversion":"[ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","zod":"^3.24.1","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.3","mathjs":"^14.1.0","openai":"^4.80.1","opener":"^1.5.2","semver":"^7.6.3","undici":"^6.21.1","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","groq-sdk":"^0.12.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.39.0","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.8.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.36.3","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","tsx":"^4.19.2","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.19.0","esbuild":"^0.24.2","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.4.2","@swc/core":"^1.10.11","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.19.0","cloudflare":"3.4.0","typescript":"^5.7.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.30.3","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.6.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.22.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","zod-to-json-schema":"^3.24.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.18","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.734.0","@aws-sdk/credential-provider-sso":"^3.734.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^5.2.1"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.103.17_1738202722704_0.4144806345207739","host":"s3://npm-registry-packages-npm-production"}},"0.103.18":{"name":"promptfoo","version":"0.103.18","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.103.18","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"772971dc21a219a3f02abe26d066513aae95df28","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.103.18.tgz","fileCount":1131,"integrity":"sha512-y0SDIA5tghEjR65yk5UZFbLmhz18WJ2culCeZBKxGZgzEnVVWRZdTMEoO9szfq/RWz2fXrq8lUjtvaAfmyGieg==","signatures":[{"sig":"MEQCIEfumEGbwFFdyEu/vMtIf/FlmGOROFVQhwCaRqqOHln2AiBpr74uYnaiDG8bfoYZ29iV0B5DTv8+sxdZPmVKTmRxzg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9829928},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"13cbacb432f1fa86eef392da1445010f5a2fb0dd","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon src/server/index.ts","preversion":"[ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.1","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.3","mathjs":"^14.1.0","openai":"^4.80.1","opener":"^1.5.2","semver":"^7.6.3","undici":"^6.21.1","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","groq-sdk":"^0.12.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.39.0","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.8.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.36.3","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.19.0","esbuild":"^0.24.2","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.4.2","@swc/core":"^1.10.11","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.19.0","cloudflare":"3.4.0","typescript":"^5.7.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.30.3","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.6.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.22.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","zod-to-json-schema":"^3.24.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.18","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.734.0","@aws-sdk/credential-provider-sso":"^3.734.0","check-dependency-version-consistency":"^4.1.0","@trivago/prettier-plugin-sort-imports":"^5.2.1"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.103.18_1738337156467_0.3939067728854706","host":"s3://npm-registry-packages-npm-production"}},"0.103.19":{"name":"promptfoo","version":"0.103.19","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.103.19","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"ce5545c785621a67efc69251fef894097c20abdf","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.103.19.tgz","fileCount":1139,"integrity":"sha512-cuwDA/T6ASHzbgwPhiFS4Whl6MK91Qh2DaWMIHtwNkn/a7PJpvj9tB61Zhiyi6FnJrFZg2HxUTxDEqHF6dYrSQ==","signatures":[{"sig":"MEYCIQCQa2ZWFS6Ha6hlFe/okEifjEx/fMRRjNlD2PnW07HNlgIhAJ3cZVs9zrrpu9rwfbSyh4O7RqGHV9siLoYTip5bb20b","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9834011},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"78730583a96cb5dcafc2f7cf249d8ec7d03dde1f","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","preversion":"[ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.1","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.3","mathjs":"^14.2.0","openai":"^4.82.0","opener":"^1.5.2","semver":"^7.7.0","undici":"^6.21.1","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.39.0","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.8.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.36.3","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.19.0","esbuild":"^0.24.2","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.4.2","@swc/core":"^1.10.12","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.19.0","cloudflare":"3.4.0","typescript":"^5.7.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.30.3","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.6.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.22.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","zod-to-json-schema":"^3.24.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.18","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.738.0","@aws-sdk/credential-provider-sso":"^3.734.0","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.103.19_1738525444840_0.45022379010019065","host":"s3://npm-registry-packages-npm-production"}},"0.104.0":{"name":"promptfoo","version":"0.104.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.104.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"a14dfb3979a6332c90ca06f0178b2876e6687e43","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.104.0.tgz","fileCount":1183,"integrity":"sha512-e2kGBQHHd6X6SwJTPaqglAtX5gSZQ6XAZY8zVAonNV41OyCl/dpNRyjR4uyCw0JHEtF6ioRHy3w0iFZfAWINeQ==","signatures":[{"sig":"MEUCIQCxZdPkJkmrEYwi/o09IxDL42RBtQsn7ilwSes69fAh6wIgSHx2Q5pwqlnqv29kxuSpUhVG29MoOr9pYunJc+X0al8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9933581},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"f3a9de038f69c600da8213f3042bb28230c1b5a7","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","preversion":"[ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.1","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.3","mathjs":"^14.2.0","openai":"^4.82.0","opener":"^1.5.2","semver":"^7.7.0","undici":"^6.21.1","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.39.0","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.8.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.36.3","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.7.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.19.0","esbuild":"^0.24.2","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.4.2","@swc/core":"^1.10.12","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.19.0","cloudflare":"3.4.0","typescript":"^5.7.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.30.3","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.6.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.22.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","zod-to-json-schema":"^3.24.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.18","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.738.0","@aws-sdk/credential-provider-sso":"^3.734.0","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.104.0_1738801034885_0.5395028858038442","host":"s3://npm-registry-packages-npm-production"}},"0.104.1":{"name":"promptfoo","version":"0.104.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.104.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"b4226e08f29999c8173fdd2c8d54c191fd753e61","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.104.1.tgz","fileCount":1195,"integrity":"sha512-PoDUNkFQJUx7XUEmoP9/S48oWT8rgzn3vR39cb921F96c6bcKa5+qFGPC+oe23PL+irgxjAjaA+ILouJMqQY9A==","signatures":[{"sig":"MEUCIQDRl3o9yLLdis4mnnTy5UmNnbyTYMaeQojjObcif0CGkAIgExgjyJW63m5giqy4CZlzF0NbH5SfB77ni1z1VwWtIxk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9991528},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"3f0b42ff1995984f1dadd640080b3ab41bce8aac","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","preversion":"[ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.1","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.3","mathjs":"^14.2.1","openai":"^4.83.0","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.2.3","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.8.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.36.3","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.9.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.19.0","esbuild":"^0.25.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.4.2","@swc/core":"^1.10.14","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.19.0","cloudflare":"3.4.0","typescript":"^5.7.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.30.4","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.6.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.23.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","zod-to-json-schema":"^3.24.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.18","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.743.0","@aws-sdk/credential-provider-sso":"^3.743.0","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.104.1_1739313611107_0.2601248915096295","host":"s3://npm-registry-packages-npm-production"}},"0.104.2":{"name":"promptfoo","version":"0.104.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.104.2","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"ab73cbf578b86c5f89178d5218afe41216632f7f","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.104.2.tgz","fileCount":1195,"integrity":"sha512-3bH6Ucc8Q+Ipo2hw3txcNTyPN2eNGJbCp7aeHEeOROot+lnkjTx2R3r0A1Be0pYsfIrRH9gAUJ68HZ3UTLaD3w==","signatures":[{"sig":"MEQCIHNluasBC0kp0BKw/1xl0++wRuBLx0V+mwVB2F84WscgAiAB3Rm+07sRWA07u+fbG4rQU6Wkx3ykIbM9PEzhr/0sBw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9998665},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"16981aacb0152a0e7e9083444d9d5b04b9c9ded6","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","preversion":"[ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.1","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.3","mathjs":"^14.2.1","openai":"^4.83.0","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.2.3","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.8.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.36.3","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.9.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.19.0","esbuild":"^0.25.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.4.2","@swc/core":"^1.10.14","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.19.0","cloudflare":"3.4.0","typescript":"^5.7.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.30.4","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.6.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.23.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","zod-to-json-schema":"^3.24.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.18","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.743.0","@aws-sdk/credential-provider-sso":"^3.743.0","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.104.2_1739477564177_0.07596161124392675","host":"s3://npm-registry-packages-npm-production"}},"0.104.3":{"name":"promptfoo","version":"0.104.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.104.3","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"c40d01a30d9bfdccdf1fb2fdc2cae107680950fa","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.104.3.tgz","fileCount":1195,"integrity":"sha512-MlnRYIY6r4iSHbhl6DbKs1AGYAVaxFMnOjCOvG2es/1cLyO/AzmGnGkXmFuO1MNDG/uQ1GoDtQr+3l27wFnDYw==","signatures":[{"sig":"MEUCIAoQiOWI6qXQNlUoDWbMZSdRuQa0hbsrzmX0PN44D7N4AiEAju66/mOqWkF3AldNAIRwSfnL7skfg2eDqfbQGsAH1K0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9999036},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"f4e6ed701292b0c0af8ba000b806ed64ba6ce878","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","preversion":"[ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.1","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.3","mathjs":"^14.2.1","openai":"^4.83.0","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.2.3","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.8.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.36.3","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.9.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.19.0","esbuild":"^0.25.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.4.2","@swc/core":"^1.10.14","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.19.0","cloudflare":"3.4.0","typescript":"^5.7.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.30.4","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.6.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.23.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","zod-to-json-schema":"^3.24.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.18","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.743.0","@aws-sdk/credential-provider-sso":"^3.743.0","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.104.3_1739499987937_0.5686864577721562","host":"s3://npm-registry-packages-npm-production"}},"0.104.4":{"name":"promptfoo","version":"0.104.4","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.104.4","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"4dbbc7a5d8fe1cac0c61cbf5fbc3862a78d2387f","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.104.4.tgz","fileCount":1199,"integrity":"sha512-fybR9JjHE04LdBpeOnu6MNah0NmZoIZ57bMs8DxMkyMQdCRzMdky69F1LfUTfqOAMvnorhcSx3EFvcbsieMf8Q==","signatures":[{"sig":"MEYCIQDxIi9/NqnYN94dQwYhprJZ6i9KdOjjo3Gl1i8wvRgNGgIhAMaxZmIcu61S70kNp30YPH+ZOf1EkgLyk91GHey5UxvQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10015172},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"79de9ae17fc88dbefdc2063c734218ae207d9db1","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","preversion":"[ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.0","ajv":"^8.17.1","tsx":"^4.19.2","zod":"^3.24.1","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.3","mathjs":"^14.2.1","openai":"^4.83.0","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.2.3","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.8.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.36.3","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.9.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.19.0","esbuild":"^0.25.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.4.2","@swc/core":"^1.10.14","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.19.0","cloudflare":"3.4.0","typescript":"^5.7.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.30.4","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","tsconfig-paths":"^4.2.0","@azure/identity":"^4.6.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","@types/eslint__js":"^8.42.3","typescript-eslint":"^8.23.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","zod-to-json-schema":"^3.24.1","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","jest-watch-typeahead":"^2.2.2","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^56.0.1","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.18","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.743.0","@aws-sdk/credential-provider-sso":"^3.743.0","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.104.4_1739776244072_0.9847682143212004","host":"s3://npm-registry-packages-npm-production"}},"0.105.0":{"name":"promptfoo","version":"0.105.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.105.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"50abee31808bd6b37d275fecd1bea363817b728f","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.105.0.tgz","fileCount":1211,"integrity":"sha512-488GBRy395WZrrGkDkTRRpoScK72tpPblg61YpSR55t+OmaVlBPZF6KIipRSDIvO+ocEbbkcGuRZB28FH2s09A==","signatures":[{"sig":"MEYCIQDj+zb1JAUQI5lyaltfMzn69TNDOTJ6vMut+eDjy2oR+wIhALxTBocYkfuR8QUV5H82zR5GQXBZ97NxLeW5QIy8eYvy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10421855},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"9f8ab34645394767710ce59748ab5a1c1e207808","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","preversion":"[ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.1","ajv":"^8.17.1","tsx":"^4.19.3","zod":"^3.24.2","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.3","mathjs":"^14.2.1","openai":"^4.85.4","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.2.3","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.8.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.37.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.9.1"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.21.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.5.2","@swc/core":"^1.10.18","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.21.0","cloudflare":"3.4.0","typescript":"^5.7.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.30.4","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","@azure/identity":"^4.7.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","typescript-eslint":"^8.24.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","zod-to-json-schema":"^3.24.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^57.0.0","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.19","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.751.0","@aws-sdk/credential-provider-sso":"^3.750.0","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.105.0_1740449048615_0.8540947155547269","host":"s3://npm-registry-packages-npm-production"}},"0.105.1":{"name":"promptfoo","version":"0.105.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.105.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"e7bb463d47406e63170f4db13664f63ec1f7f4e6","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.105.1.tgz","fileCount":1211,"integrity":"sha512-bAZxTrOzOSsn2Ho9QxQcvc9gfHgx/nekbOFXliH5XumLTG19vrtOwqhDguvvz/9w3/ADUjILy3RbGBg7g6GYqQ==","signatures":[{"sig":"MEYCIQDRzYonu7JgCL3NY5Of25mvj3tbfHVitf8GyEg3FbMELgIhAIwxFGGRT/sr9aHDsTHREsiHfVTIwRSWbMjsolUYM+nV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10445715},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"425c3b7c4fb580e585f8d4eee2a57e8e5664afde","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","preversion":"[ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.1","ajv":"^8.17.1","tsx":"^4.19.3","zod":"^3.24.2","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.3","mathjs":"^14.2.1","openai":"^4.86.0","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.2.3","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.8.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.37.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.9.1"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.21.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.5.2","@swc/core":"^1.10.18","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.21.0","cloudflare":"3.4.0","typescript":"^5.7.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.30.4","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","@azure/identity":"^4.7.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","typescript-eslint":"^8.24.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","zod-to-json-schema":"^3.24.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^57.0.0","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.19","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.751.0","@aws-sdk/credential-provider-sso":"^3.750.0","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.105.1_1740716481317_0.8782410556794784","host":"s3://npm-registry-packages-npm-production"}},"0.106.0":{"name":"promptfoo","version":"0.106.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.106.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"90fe0fe324d319800928ca6ae231d659c4e588a7","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.106.0.tgz","fileCount":1211,"integrity":"sha512-RneqpS2zI6LUXHUP1/x7DBLzQlheJwlNsMSfxNnl5Hw1aflkS4DnmT4LCdnF4RSyubtH3cQMW7Gvw2HK+ytvjQ==","signatures":[{"sig":"MEYCIQD8w9pw2RGHWTZYU6doFrv7CgUB81DQUmnWzBq3TGgr4AIhAOfUiPIVpwYt0Oad2YAMBhtuTW0S+U+BgFAt5a+ta8wg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10468162},"main":"dist/src/index.js","type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"24619b1ba996914f09b4261a3051753c00bb8445","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","preversion":"[ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.1","ajv":"^8.17.1","tsx":"^4.19.3","zod":"^3.24.2","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.3","mathjs":"^14.2.1","openai":"^4.86.1","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.2.3","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.8.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.38.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.9.1"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.21.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.5.2","@swc/core":"^1.11.4","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.21.0","cloudflare":"3.4.0","typescript":"^5.7.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.30.4","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","@azure/identity":"^4.7.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","typescript-eslint":"^8.25.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","zod-to-json-schema":"^3.24.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^57.0.0","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.19","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.758.0","@aws-sdk/credential-provider-sso":"^3.758.0","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.106.0_1740976897796_0.4025153068118017","host":"s3://npm-registry-packages-npm-production"}},"0.106.1":{"name":"promptfoo","version":"0.106.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.106.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"0757fc1080631e541cfad97d34f13e427ccbd55d","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.106.1.tgz","fileCount":1219,"integrity":"sha512-mbV3t9sKFuyH0zZzcU4qVphjfdN6Fl39c6kq4zpYlpoSsbRCpLlFPwJjG0igiRS3qS1sXBTzlCJFpNMMynSTPA==","signatures":[{"sig":"MEYCIQDhKp9jyaIXY0uG5AEenrmpCJkqN2R629H7EReqf5x1mQIhAP+UzyoJLxsEyQV9K4hx/cQDPOwOYL40FOovsshX25zn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10588057},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"a531e5d358546c67cb093693d2d830ceed354595","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","preversion":"[ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.1","ajv":"^8.17.1","tsx":"^4.19.3","zod":"^3.24.2","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.3","mathjs":"^14.2.1","openai":"^4.86.1","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.2.3","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.8.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.39.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.9.1"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.21.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.5.2","@swc/core":"^1.11.4","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.21.0","cloudflare":"3.4.0","typescript":"^5.7.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.30.4","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","@azure/identity":"^4.7.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","typescript-eslint":"^8.25.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","zod-to-json-schema":"^3.24.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^57.0.0","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.19","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.758.0","@aws-sdk/credential-provider-sso":"^3.758.0","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1 || ^4.0.0","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.106.1_1741303156931_0.908746135818878","host":"s3://npm-registry-packages-npm-production"}},"0.106.2":{"name":"promptfoo","version":"0.106.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.106.2","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"488db99419f497b8053063cf02e046d29120cc24","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.106.2.tgz","fileCount":1219,"integrity":"sha512-rKcHEeKjBewHhXYJTRRQ8/GtJQIVxL4OdsAbR99Iqq/uuakWGIzUVfZ6tSv8b74Y+Uyomfg9++WQNgwKpiRRLg==","signatures":[{"sig":"MEUCIQDjKTu1C06GxBaIQYj1jovNC2IrP6AT1FClnVet29lepwIgBXX9AsD5mqEVdm9lnZSFJLBbxK3ZyPj4p2irnTIitiM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10589434},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"602309003b34c743833062c8f70116a0cbe6a7b5","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","preversion":"[ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.1","ajv":"^8.17.1","tsx":"^4.19.3","zod":"^3.24.2","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.3","mathjs":"^14.2.1","openai":"^4.86.1","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.2.3","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.8.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.39.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.9.1"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.21.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.5.2","@swc/core":"^1.11.4","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.21.0","cloudflare":"3.4.0","typescript":"^5.7.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.30.4","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","@azure/identity":"^4.7.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","typescript-eslint":"^8.25.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","zod-to-json-schema":"^3.24.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^57.0.0","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.19","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.758.0","@aws-sdk/credential-provider-sso":"^3.758.0","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1 || ^4.0.0","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.106.2_1741364872010_0.9620458942530388","host":"s3://npm-registry-packages-npm-production"}},"0.106.3":{"name":"promptfoo","version":"0.106.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.106.3","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"e965b30c4abf326e7827063bee1e7d281bf8900e","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.106.3.tgz","fileCount":1219,"integrity":"sha512-8Aq9VniExVP+VHTAoB0FEzEKZ7SHrFbG4sTd+/iexBSqyF/yoQIOcoQV66Mu27oiG9BX0KmM4A4OyggPyh89rQ==","signatures":[{"sig":"MEUCIHUNK+arqsaKhqi21Da0YKSWkNw4zPVhfRLgTkwuxpm5AiEApIR7UpCfQV6h/Ed/oMUZchOznDb9F274GOTjY/rLVR8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10590924},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"085ad9758acb4e3b6e3c478d04e9f345cefcb87d","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","preversion":"[ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.1","ajv":"^8.17.1","tsx":"^4.19.3","zod":"^3.24.2","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.3","mathjs":"^14.2.1","openai":"^4.86.1","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.2.3","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.8.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.39.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.9.1"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.21.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.5.2","@swc/core":"^1.11.4","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.21.0","cloudflare":"3.4.0","typescript":"^5.7.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.30.4","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","@azure/identity":"^4.7.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","typescript-eslint":"^8.25.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","zod-to-json-schema":"^3.24.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^57.0.0","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.19","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.758.0","@aws-sdk/credential-provider-sso":"^3.758.0","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1 || ^4.0.0","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.106.3_1741368414153_0.26046883647988306","host":"s3://npm-registry-packages-npm-production"}},"0.107.0":{"name":"promptfoo","version":"0.107.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.107.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"b1a74a326cb1db4b1046e7abb5ae5678c240989e","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.107.0.tgz","fileCount":1243,"integrity":"sha512-Sh6GgdvnDn7VxWY+Xh/A9KJwx3SATFHy24X1UBway+fbOdwCNhErsG/FXmcmwzTp8NZxJ7yYbdyqjstPxaDU2A==","signatures":[{"sig":"MEUCIQDn7HjG3LuK1zaaeK/933KLX2YrtR6tQRj/h1xdx7DYIgIgeNpbgooQMtIidky8ysVTxsyesZweQj2sYzECa7Dr2Pc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10693094},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"0a262207f696561fc975ecaafbf3f7cf315e592d","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","preversion":"[ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.1","ajv":"^8.17.1","tsx":"^4.19.3","zod":"^3.24.2","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.3","mathjs":"^14.2.1","openai":"^4.86.1","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.2.3","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.7.5","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.8.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.39.0","@googleapis/sheets":"^9.3.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.9.1"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.21.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.5.2","@swc/core":"^1.11.4","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.21.0","cloudflare":"3.4.0","typescript":"^5.7.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.30.4","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","@azure/identity":"^4.7.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","typescript-eslint":"^8.25.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","zod-to-json-schema":"^3.24.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^57.0.0","eslint-plugin-react-hooks":"^5.1.0","eslint-plugin-react-refresh":"^0.4.19","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.758.0","@aws-sdk/credential-provider-sso":"^3.758.0","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.33.5","langfuse":"^3.7.0","node-gtts":"^2.0.2","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1 || ^4.0.0","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.107.0_1741890344883_0.12472257000919496","host":"s3://npm-registry-packages-npm-production"}},"0.107.1":{"name":"promptfoo","version":"0.107.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.107.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"ae4b0370e70aea5052d516b0cf5c65f43b759f6a","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.107.1.tgz","fileCount":1247,"integrity":"sha512-MbxuQIQbPO9wSMdmfhU5BChnazPfchJ6/XuubRaCgxcvyi/sf2w2llLgjyCDNYKtew97XeZZhEXp86GaryWoxg==","signatures":[{"sig":"MEUCIQDXN5/hdPkRz4dElOd3+xKOsahvZFVxk+dXBNqkYIy13AIgUX9yepVI+LUt/8QEYZgNTKJ3l8hrB506MRCUEVjbufk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10704340},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"dc2087c2fc94888f41d0a52cb7de091437e50052","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","preversion":"[ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.1","ajv":"^8.17.1","tsx":"^4.19.3","zod":"^3.24.2","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.3","mathjs":"^14.3.1","openai":"^4.87.3","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.5.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.8.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.39.0","@googleapis/sheets":"^9.4.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.9.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.22.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.5.3","@swc/core":"^1.11.9","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.22.0","cloudflare":"3.4.0","typescript":"^5.8.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.30.4","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","@azure/identity":"^4.8.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","typescript-eslint":"^8.26.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","zod-to-json-schema":"^3.24.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^57.0.0","@typescript-eslint/parser":"^8.26.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.758.0","@aws-sdk/credential-provider-sso":"^3.758.0","@typescript-eslint/eslint-plugin":"^8.26.1","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.33.5","langfuse":"^3.7.0","node-gtts":"^2.0.2","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1 || ^4.0.0","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.107.1_1741979296051_0.30559260496818474","host":"s3://npm-registry-packages-npm-production"}},"0.107.2":{"name":"promptfoo","version":"0.107.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.107.2","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"ea1292746f2e356c177bc18c66950266d93fbc46","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.107.2.tgz","fileCount":1271,"integrity":"sha512-B0OeZdIHQvINKgGJCiMWbw2ScxD0jEfYbQQEmUX2L8vuEQ/+GZSJSXPXkJ315Q6rQYpbMvhVpk02xzUXntJWDA==","signatures":[{"sig":"MEUCIC1Rrj7c0/ZgwGmERLdOyuMiMz3nvR8M4nWNdgOmpU4CAiEAt+a5/rYlgSlRVC/2G47ht4xIX2ROQBahCtMA/HqfDy4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10829640},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"0a2cc804a69dca75c646da255cf95b647dc98a0b","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","preversion":"[ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.1","ajv":"^8.17.1","tsx":"^4.19.3","zod":"^3.24.2","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.3","mathjs":"^14.3.1","openai":"^4.87.3","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.5.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.0","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.8.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.39.0","@googleapis/sheets":"^9.4.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.9.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.22.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.5.3","@swc/core":"^1.11.9","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.22.0","cloudflare":"3.4.0","typescript":"^5.8.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.30.4","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","@azure/identity":"^4.8.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","typescript-eslint":"^8.26.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","zod-to-json-schema":"^3.24.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^57.0.0","@typescript-eslint/parser":"^8.26.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.758.0","@aws-sdk/credential-provider-sso":"^3.758.0","@typescript-eslint/eslint-plugin":"^8.26.1","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.33.5","langfuse":"^3.7.0","node-gtts":"^2.0.2","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1 || ^4.0.0","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.107.2_1742253704908_0.009613509812889776","host":"s3://npm-registry-packages-npm-production"}},"0.107.3":{"name":"promptfoo","version":"0.107.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.107.3","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"fbae1dd8cf62f3dbe204a9f99bdb2aa2005641df","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.107.3.tgz","fileCount":1299,"integrity":"sha512-Ho0taDLUcyBQnFSCXVCxtg/80N3whv2pasGwy2vlh/woRBgkh4w87PCXxvkiybUrddncYzKAz80FWBP9XxRzZQ==","signatures":[{"sig":"MEQCIHYPibajX2dLCCB4n8epEjAUCON8OOcHR92sewnMeePwAiAdDV+Tfxujlf8Rc/AIh6tBr1YfG4TvOPIYzcdRgqAFkA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10874107},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"922d9361ce81bb6449cbb4bc5858b6ab342499ec","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","preversion":"[ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.1","ajv":"^8.17.1","tsx":"^4.19.3","zod":"^3.24.2","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.3","mathjs":"^14.3.1","openai":"^4.87.3","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.5.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.0","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.8.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.39.0","@googleapis/sheets":"^9.4.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.9.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.22.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.5.3","@swc/core":"^1.11.9","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.22.0","cloudflare":"3.4.0","typescript":"^5.8.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.30.4","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","@azure/identity":"^4.8.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","typescript-eslint":"^8.26.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","zod-to-json-schema":"^3.24.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^57.0.0","@typescript-eslint/parser":"^8.26.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.758.0","@aws-sdk/credential-provider-sso":"^3.758.0","@typescript-eslint/eslint-plugin":"^8.26.1","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.33.5","langfuse":"^3.7.0","node-gtts":"^2.0.2","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1 || ^4.0.0","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.107.3_1742407586299_0.19899463513064997","host":"s3://npm-registry-packages-npm-production"}},"0.107.4":{"name":"promptfoo","version":"0.107.4","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.107.4","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"0d79bf095f80245d2f99b4a97561888d95378933","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.107.4.tgz","fileCount":1303,"integrity":"sha512-3pRMy9ALvcj8u/ck7yuSjyD7seMEuUrvyzKUYd5XyBhY3FatUQGXcbLQ5CDaEizofoq9dCx+dQ5PV8RTNJsz1Q==","signatures":[{"sig":"MEQCIFkuTDovuKMTFUPHMtKaaifHkuc3RTfxjrmHlvTJl2qBAiBbnzEHUR0PddnhHRy0TE/xNpptCJnsLfj65naGD8VAqQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10915278},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"9b7ab763cb411c2701102b5e78a12297e6645490","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","preversion":"[ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.1","ajv":"^8.17.1","tsx":"^4.19.3","zod":"^3.24.2","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.3","mathjs":"^14.3.1","openai":"^4.87.3","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.5.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.0","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.8.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.39.0","@googleapis/sheets":"^9.4.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.9.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.22.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.5.3","@swc/core":"^1.11.9","@swc/jest":"^0.2.37","supertest":"^7.0.0","@eslint/js":"^9.22.0","cloudflare":"3.4.0","typescript":"^5.8.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.30.4","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.0","@types/js-yaml":"^4.0.9","@azure/identity":"^4.8.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","typescript-eslint":"^8.26.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","zod-to-json-schema":"^3.24.3","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^57.0.0","@typescript-eslint/parser":"^8.26.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.758.0","@aws-sdk/credential-provider-sso":"^3.758.0","@typescript-eslint/eslint-plugin":"^8.26.1","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.33.5","langfuse":"^3.7.0","node-gtts":"^2.0.2","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1 || ^4.0.0","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.107.4_1742496306548_0.654075346122521","host":"s3://npm-registry-packages-npm-production"}},"0.107.5":{"name":"promptfoo","version":"0.107.5","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.107.5","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"9e3bae8dad8d50628f4d09fbe2ff2c5fa2d52996","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.107.5.tgz","fileCount":1304,"integrity":"sha512-+ZiTdEQhsnk45dk5k2NciTYBAiFR7TUkCG5gyCOsQhCCZfJGRdrIghM6AreZOtOkk/DYwzJUWFrjb/OPP0/jPQ==","signatures":[{"sig":"MEUCIQCrCb2jzFeZQxGSfdV+X3RvHL0sS+IaaiItMd9ZSDOI/QIgZJF1bRNEWmvaELvhssxXV+lxdJ8+J+pCccxHEIKhYYU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10973606},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"f129a1219e2c11eea8a1e3fd697c98f503af3a85","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","preversion":"[ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.1","ajv":"^8.17.1","tsx":"^4.19.3","zod":"^3.24.2","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.3","mathjs":"^14.3.1","openai":"^4.89.0","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.5.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.0","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.8.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.39.0","@googleapis/sheets":"^9.6.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.9.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.22.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.5.3","@swc/core":"^1.11.11","@swc/jest":"^0.2.37","supertest":"^7.1.0","@eslint/js":"^9.22.0","cloudflare":"3.4.0","typescript":"^5.8.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.30.4","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.1","@types/js-yaml":"^4.0.9","@azure/identity":"^4.8.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","typescript-eslint":"^8.27.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^57.0.0","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.27.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.772.0","@aws-sdk/credential-provider-sso":"^3.772.0","@typescript-eslint/eslint-plugin":"^8.27.0","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.33.5","langfuse":"^3.7.0","node-gtts":"^2.0.2","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1 || ^4.0.0","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.107.5_1743019846727_0.7907450395415174","host":"s3://npm-registry-packages-npm-production"}},"0.107.6":{"name":"promptfoo","version":"0.107.6","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.107.6","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"3234533394cb8c95cefdc5fc6cd6364861bee197","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.107.6.tgz","fileCount":1312,"integrity":"sha512-e8OOGRq6XbyZ3SK36VeIVMBjZClscyhmtjYW8FVwWklyk4b0FB0j47hv3JtS2qh7VUshcyLxfqJ5doOAX+MKfQ==","signatures":[{"sig":"MEQCIH/wsq5SHTwe9OOtKedLcW/lAZXd/AwqGDpnN1osE0wcAiAtMTOvGY3Kyx5FZVEizdkQVSrIaw3ySLbgztru7sKwIA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11237211},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"e55034b97e5db3cb72a4229ca4d1876f2fe59c90","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","preversion":"[ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.1","ajv":"^8.17.1","tsx":"^4.19.3","zod":"^3.24.2","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.3","mathjs":"^14.3.1","openai":"^4.89.0","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.5.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.0","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.8.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.39.0","@googleapis/sheets":"^9.6.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.9.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.22.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.5.3","@swc/core":"^1.11.11","@swc/jest":"^0.2.37","supertest":"^7.1.0","@eslint/js":"^9.22.0","cloudflare":"3.4.0","typescript":"^5.8.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.30.4","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.5.8","@libsql/client":"^0.14.0","@types/express":"^5.0.1","@types/js-yaml":"^4.0.9","@azure/identity":"^4.8.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.2","typescript-eslint":"^8.27.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^57.0.0","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.27.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.772.0","@aws-sdk/credential-provider-sso":"^3.772.0","@typescript-eslint/eslint-plugin":"^8.27.0","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.33.5","langfuse":"^3.7.0","node-gtts":"^2.0.2","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1 || ^4.0.0","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0","@aws-sdk/client-sagemaker-runtime":"^3.758.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.107.6_1743131806831_0.28945714359482144","host":"s3://npm-registry-packages-npm-production"}},"0.107.7":{"name":"promptfoo","version":"0.107.7","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.107.7","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"c178904c730176de7bd267ddbe828f05b5263641","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.107.7.tgz","fileCount":1328,"integrity":"sha512-Ccj5Zu4RRBDHglcLx90x9ksBstVXOCTE57vWgMxt+cYWm8/DcO9oOkVyJkoMKg4qmOn7GwPCzVkT8bVSA6S5OQ==","signatures":[{"sig":"MEYCIQDpMwSk8NDknJsk0Hmcudo/UvizbGUjEY3RdGxtrZVZNAIhAKsSks1eSBUSYi/ruCKT4pIioF/3PMug4+w2+ZoCa6FL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11661435},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"38347bf6d29bea9bff7242cae9579ea89b117109","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","preversion":"[ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.1","ajv":"^8.17.1","tsx":"^4.19.3","zod":"^3.24.2","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.3","mathjs":"^14.3.1","openai":"^4.90.0","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.6.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.0","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.9.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.39.0","@googleapis/sheets":"^9.6.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.9.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.23.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.5.3","@swc/core":"^1.11.13","@swc/jest":"^0.2.37","supertest":"^7.1.0","@eslint/js":"^9.23.0","cloudflare":"3.4.0","typescript":"^5.8.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.30.4","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.14.0","@types/express":"^5.0.1","@types/js-yaml":"^4.0.9","@azure/identity":"^4.8.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.3","typescript-eslint":"^8.28.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^58.0.0","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.28.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.778.0","@aws-sdk/credential-provider-sso":"^3.777.0","@typescript-eslint/eslint-plugin":"^8.28.0","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.33.5","langfuse":"^3.7.0","node-gtts":"^2.0.2","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1 || ^4.0.0","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0","@aws-sdk/client-sagemaker-runtime":"^3.758.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.107.7_1743471908801_0.6195131933127942","host":"s3://npm-registry-packages-npm-production"}},"0.108.0":{"name":"promptfoo","version":"0.108.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.108.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"e57ad126b58e98bd9eee9200c7923a63c68cbb05","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.108.0.tgz","fileCount":1340,"integrity":"sha512-QA/1bpQMDGNTD6+Z/xG6O+7SKHKPtiCybkjFdIkb4Pwg1y+ZxOGQjWSkj3bTrv3/BHmt6o3rzhHsTmqhcueWmw==","signatures":[{"sig":"MEUCIQCqkw1nJCJSFLvlwms5wwOVADwKbX0oYZZPNdDI36yC8wIgLf7a1HO8PA7KVc+gZZwtpXm41+u847Cw1UrZpCd7C8E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11775314},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"142aa728ef15c2671c598c55dc59287267186e89","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","preversion":"[ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.1","ajv":"^8.17.1","tsx":"^4.19.3","zod":"^3.24.2","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.3","mathjs":"^14.3.1","openai":"^4.90.0","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.6.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.0","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.9.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.39.0","@googleapis/sheets":"^9.6.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.9.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.23.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.5.3","@swc/core":"^1.11.13","@swc/jest":"^0.2.37","supertest":"^7.1.0","@eslint/js":"^9.23.0","cloudflare":"3.4.0","typescript":"^5.8.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.30.4","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.14.0","@types/express":"^5.0.1","@types/js-yaml":"^4.0.9","@azure/identity":"^4.8.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.3","typescript-eslint":"^8.28.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^58.0.0","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.28.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.778.0","@aws-sdk/credential-provider-sso":"^3.777.0","@typescript-eslint/eslint-plugin":"^8.28.0","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.33.5","langfuse":"^3.7.0","node-gtts":"^2.0.2","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1 || ^4.0.0","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0","@aws-sdk/client-sagemaker-runtime":"^3.758.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.108.0_1743700564033_0.41998275633300786","host":"s3://npm-registry-packages-npm-production"}},"0.109.0":{"name":"promptfoo","version":"0.109.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.109.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"fada3cf17e3bf408fc7642e7beb5c2c6b48feaba","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.109.0.tgz","fileCount":1352,"integrity":"sha512-W1EQhHcRrZe2abNDeKh2xJa1y+VDd0UokUvLWDzJ9QEmo8U/6F3qcTbwdwfGDptH4J7zTRmla89XSyF9ZwbkEg==","signatures":[{"sig":"MEYCIQDkLszEie9FdG+VmoOxNJKPJKSBxmKtd0WPJdifocWmqQIhAND6yK71VcdP0KetTuH0OTRUqw95WYCggcIh9t5uAaYU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11948682},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"54fe4b12d95332412f7bb7b16ca71d180c32840c","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","preversion":"[ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.1","ajv":"^8.17.1","tsx":"^4.19.3","zod":"^3.24.2","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.3","mathjs":"^14.3.1","openai":"^4.90.0","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.6.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.0","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.9.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.39.0","@googleapis/sheets":"^9.6.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.9.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.23.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.5.3","@swc/core":"^1.11.13","@swc/jest":"^0.2.37","supertest":"^7.1.0","@eslint/js":"^9.23.0","cloudflare":"3.4.0","typescript":"^5.8.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.30.4","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.14.0","@types/express":"^5.0.1","@types/js-yaml":"^4.0.9","@azure/identity":"^4.8.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.3","typescript-eslint":"^8.28.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^58.0.0","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.28.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.778.0","@aws-sdk/credential-provider-sso":"^3.777.0","@typescript-eslint/eslint-plugin":"^8.28.0","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.33.5","langfuse":"^3.7.0","node-gtts":"^2.0.2","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1 || ^4.0.0","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0","@aws-sdk/client-sagemaker-runtime":"^3.758.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.109.0_1744073877931_0.8224207322527106","host":"s3://npm-registry-packages-npm-production"}},"0.109.1":{"name":"promptfoo","version":"0.109.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.109.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"06d13463111bbb0ba7d2482abb49f9925dee666c","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.109.1.tgz","fileCount":1352,"integrity":"sha512-463akphA3HusCVGHLY/I+NU9iGSYsW9w368Pv7DnUdYRyvsfeT8jsGN0F2Tct8J8DhJ3lnSAWU7/9iPlsmMiCA==","signatures":[{"sig":"MEQCIEcobmv/G6apR+uOfslTCu75AWM/yqSsK4RqAVTHTQiUAiAGKitMuKdYK9voI/tnQhR0ZCIIElikmzxAJbFQUPBHkg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11954319},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"b2aa20a2b942964bdd94b81b1c78eb87ba311fdf","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.1","ajv":"^8.17.1","tsx":"^4.19.3","zod":"^3.24.2","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.3","mathjs":"^14.3.1","openai":"^4.90.0","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.6.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.0","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.9.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.39.0","@googleapis/sheets":"^9.6.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.9.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.23.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.5.3","@swc/core":"^1.11.13","@swc/jest":"^0.2.37","supertest":"^7.1.0","@eslint/js":"^9.23.0","cloudflare":"3.4.0","typescript":"^5.8.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.30.4","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.14.0","@types/express":"^5.0.1","@types/js-yaml":"^4.0.9","@azure/identity":"^4.8.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.3","typescript-eslint":"^8.28.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^58.0.0","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.28.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.778.0","@aws-sdk/credential-provider-sso":"^3.777.0","@typescript-eslint/eslint-plugin":"^8.28.0","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.33.5","langfuse":"^3.7.0","node-gtts":"^2.0.2","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1 || ^4.0.0","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0","@aws-sdk/client-sagemaker-runtime":"^3.758.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.109.1_1744150527116_0.18607457505878067","host":"s3://npm-registry-packages-npm-production"}},"0.110.0":{"name":"promptfoo","version":"0.110.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.110.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"c43fb2f4a744c04ff49162fb43a9e5c08c28992e","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.110.0.tgz","fileCount":1364,"integrity":"sha512-N/rrfEwklTliGn3WJYu9kpp79ZjxQD/TpOY6sxLWDdqTfZo8fbDnt8IRhBjBnzkFJLnT9/vlUfUcUDWJqC3lmg==","signatures":[{"sig":"MEUCIH3GggTPsAk/kOC8LbqM/gWS8sTPLHLGjX06aEe+j0ruAiEA4s2Vx3JyH1II2djpouu9GsAK8M0+ViQMw6piyvkFsx4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12038806},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"8a104f3cce547315644ca6b190f0374a94cd1de2","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.1","ajv":"^8.17.1","tsx":"^4.19.3","zod":"^3.24.2","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^10.0.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.4.7","http-z":"^7.1.3","mathjs":"^14.3.1","openai":"^4.90.0","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.6.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.0","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.9.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.39.0","@googleapis/sheets":"^9.6.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^11.9.3"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^13.5.6","madge":"^8.0.0","eslint":"^9.23.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.5.3","@swc/core":"^1.11.13","@swc/jest":"^0.2.37","supertest":"^7.1.0","@eslint/js":"^9.23.0","cloudflare":"3.4.0","typescript":"^5.8.2","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.30.4","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.14.0","@types/express":"^5.0.1","@types/js-yaml":"^4.0.9","@azure/identity":"^4.8.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.4","@types/supertest":"^6.0.3","typescript-eslint":"^8.28.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.12","eslint-plugin-unicorn":"^58.0.0","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.28.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.785.0","@aws-sdk/credential-provider-sso":"^3.782.0","@typescript-eslint/eslint-plugin":"^8.28.0","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.33.5","langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1 || ^4.0.0","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0","@aws-sdk/client-sagemaker-runtime":"^3.758.0","@aws-sdk/client-bedrock-agent-runtime":"^3.777.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.110.0_1744645423055_0.558841774512993","host":"s3://npm-registry-packages-npm-production"}},"0.110.1":{"name":"promptfoo","version":"0.110.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.110.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"6a79990c6993cf0e5cff8b606134da17721cb2b0","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.110.1.tgz","fileCount":1364,"integrity":"sha512-YlFRji9WyF1Yzy4oc/GlGxl9k9jwjweiN5p5LAWXr0BmI+JOnMPSKJH3K3cBWlqY/VzOFmTD/ZGwp2fFUbbq7w==","signatures":[{"sig":"MEQCID0b6osOgqtSwGHgGblbpi/2snGRVS7967cPffIoOZDkAiBh+6K7nE2hlg5jbqdVOlDDiV8OgFPsvbLZRDtVvwWybg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12057879},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"caa82d45cd2856689abcb9c09b81a338bb271350","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.1","ajv":"^8.17.1","tsx":"^4.19.3","zod":"^3.24.2","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.5.0","http-z":"^7.1.3","mathjs":"^14.4.0","openai":"^4.93.0","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.8.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.9.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.39.0","@googleapis/sheets":"^9.6.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^12.0.1"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.3","madge":"^8.0.0","eslint":"^9.24.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.5.3","@swc/core":"^1.11.21","@swc/jest":"^0.2.37","supertest":"^7.1.0","@eslint/js":"^9.24.0","cloudflare":"3.4.0","typescript":"^5.8.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.0","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.14.0","@types/express":"^5.0.1","@types/js-yaml":"^4.0.9","@azure/identity":"^4.8.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","typescript-eslint":"^8.29.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.13","eslint-plugin-unicorn":"^58.0.0","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.29.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.787.0","@aws-sdk/credential-provider-sso":"^3.787.0","@typescript-eslint/eslint-plugin":"^8.29.1","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.33.5","langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1 || ^4.0.0","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0","@aws-sdk/client-sagemaker-runtime":"^3.758.0","@aws-sdk/client-bedrock-agent-runtime":"^3.777.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.110.1_1744897260444_0.8207746221308787","host":"s3://npm-registry-packages-npm-production"}},"0.111.0":{"name":"promptfoo","version":"0.111.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.111.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"333128f67b7460320c8383b59a4daf1db0503d41","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.111.0.tgz","fileCount":1372,"integrity":"sha512-dRSggLM+yIRb55Uvsi1lqsxI7xRZvQdAhjVXR3YVfPa5CIJtRwduMOKRBVNBVeO3EJyC8kVU7utrSCbzVZrsYA==","signatures":[{"sig":"MEUCIClmOzqlx7xNHazhqXbAxCA3QwZKSzWkeQmn41LYsILgAiEA05MyIT9cRmASeah+2RZGpNVvgw4GRUMWHBcHdBEvols=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12124289},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"afe6875958a9dec4bd2e0140d525ca5af2b320a8","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.1","ajv":"^8.17.1","tsx":"^4.19.3","zod":"^3.24.2","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.5.0","http-z":"^7.1.3","mathjs":"^14.4.0","openai":"^4.93.0","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.8.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.9.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.39.0","@googleapis/sheets":"^9.6.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^12.0.1"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.3","madge":"^8.0.0","eslint":"^9.24.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.5.3","@swc/core":"^1.11.21","@swc/jest":"^0.2.37","supertest":"^7.1.0","@eslint/js":"^9.24.0","cloudflare":"3.4.0","typescript":"^5.8.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.0","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.14.0","@types/express":"^5.0.1","@types/js-yaml":"^4.0.9","@azure/identity":"^4.8.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","typescript-eslint":"^8.29.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.13","eslint-plugin-unicorn":"^58.0.0","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.29.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.787.0","@aws-sdk/credential-provider-sso":"^3.787.0","@typescript-eslint/eslint-plugin":"^8.29.1","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.33.5","langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1 || ^4.0.0","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0","@aws-sdk/client-sagemaker-runtime":"^3.758.0","@aws-sdk/client-bedrock-agent-runtime":"^3.777.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.111.0_1745263376377_0.8061507032332782","host":"s3://npm-registry-packages-npm-production"}},"0.111.1":{"name":"promptfoo","version":"0.111.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.111.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"78420066bcdd013d2e8d4aecb6fb780fdda404f9","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.111.1.tgz","fileCount":1372,"integrity":"sha512-7uCnFmX20Ywl+PTGAoYffjA4BbhSpnYmPPlUp5QJSELPA/eJ5XEV1fe402LbQaL2HEncsz2MAmDSG13g/AbpHw==","signatures":[{"sig":"MEUCIFWJ51coMSot7seGb+EP7MWnFfJRipMA9AhJcDiV0WUbAiEAsNW80ZZF1pM1kGugDWQ+ynNapamVVgvpv48ByS9rebs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12124284},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"adbe88205a0e62c091aecaf4e5f8dfba3c82929b","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.1","ajv":"^8.17.1","tsx":"^4.19.3","zod":"^3.24.2","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.5.0","http-z":"^7.1.3","mathjs":"^14.4.0","openai":"^4.93.0","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.8.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.9.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.39.0","@googleapis/sheets":"^9.6.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^12.0.1"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.3","madge":"^8.0.0","eslint":"^9.24.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.5.3","@swc/core":"^1.11.21","@swc/jest":"^0.2.37","supertest":"^7.1.0","@eslint/js":"^9.24.0","cloudflare":"3.4.0","typescript":"^5.8.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.0","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.14.0","@types/express":"^5.0.1","@types/js-yaml":"^4.0.9","@azure/identity":"^4.8.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","typescript-eslint":"^8.29.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.13","eslint-plugin-unicorn":"^58.0.0","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.29.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.787.0","@aws-sdk/credential-provider-sso":"^3.787.0","@typescript-eslint/eslint-plugin":"^8.29.1","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.33.5","langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1 || ^4.0.0","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0","@aws-sdk/client-sagemaker-runtime":"^3.758.0","@aws-sdk/client-bedrock-agent-runtime":"^3.777.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.111.1_1745332287824_0.35521106546785375","host":"s3://npm-registry-packages-npm-production"}},"0.112.0":{"name":"promptfoo","version":"0.112.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.112.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"22202091368c5014eaa846f3f51942d62a07b117","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.112.0.tgz","fileCount":1392,"integrity":"sha512-zlDDLUovVDMTZfasw27mpw/at2+Qlon30l8J+xM/3DJok56mZZ91OGiP+gcnJpT7xrSVud7izfImzVyOp5Ik4A==","signatures":[{"sig":"MEQCIHYT6WvqYx3WlKNRmmLRb3HoBGZTLzGLROqHMQpizfhuAiAUelJzjEUz0aECZTtyFbFOJMORHQ78VH2zzlte5EX9pw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12247009},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"537530467fa84f0d323d1dbc2e3a7430840f3a44","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.1","ajv":"^8.17.1","tsx":"^4.19.3","zod":"^3.24.2","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.5.0","http-z":"^7.1.3","mathjs":"^14.4.0","openai":"^4.93.0","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.8.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.9.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.40.0","@googleapis/sheets":"^9.6.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^12.0.1"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.3","madge":"^8.0.0","eslint":"^9.24.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.5.3","@swc/core":"^1.11.21","@swc/jest":"^0.2.37","supertest":"^7.1.0","@eslint/js":"^9.24.0","cloudflare":"3.4.0","typescript":"^5.8.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.0","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.14.0","@types/express":"^5.0.1","@types/js-yaml":"^4.0.9","@azure/identity":"^4.8.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","typescript-eslint":"^8.29.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.13","eslint-plugin-unicorn":"^58.0.0","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.29.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.787.0","@aws-sdk/credential-provider-sso":"^3.787.0","@typescript-eslint/eslint-plugin":"^8.29.1","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.33.5","natural":"^8.0.1","langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1 || ^4.0.0","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0","@aws-sdk/client-sagemaker-runtime":"^3.758.0","@aws-sdk/client-bedrock-agent-runtime":"^3.777.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.112.0_1745939870354_0.46464263166568154","host":"s3://npm-registry-packages-npm-production"}},"0.112.1":{"name":"promptfoo","version":"0.112.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.112.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"327019fdc6e6303e30865552bcb5d5a8c2e927d1","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.112.1.tgz","fileCount":1392,"integrity":"sha512-EB92NXpnELG69CJ6hfh5tx1Xs0r2Qw/Pd9wPKiU8Zo13N2UqR7srnorjeXSs2Mhi4YZ3aD2ITXIXGZuXZtaN9Q==","signatures":[{"sig":"MEUCIQDFU0xTDuNq5LUAcxB2g+aEQ8nz6VMLDed2YC3ojRO+9AIgZ9QdEY2Jp0rGo0h9VRWGAPahAt4YKm281E4O8l52zJM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12248075},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"9fd8716460911435f24c5189efdbc4c6affb2d93","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && npm run build:replace-keys && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","build:replace-keys":"node scripts/replace-keys.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.1","ajv":"^8.17.1","tsx":"^4.19.3","zod":"^3.24.2","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.5.0","http-z":"^7.1.3","mathjs":"^14.4.0","openai":"^4.93.0","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.8.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.9.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.40.0","@googleapis/sheets":"^9.6.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@apidevtools/json-schema-ref-parser":"^12.0.1"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.3","madge":"^8.0.0","eslint":"^9.24.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.5.3","@swc/core":"^1.11.21","@swc/jest":"^0.2.37","supertest":"^7.1.0","@eslint/js":"^9.24.0","cloudflare":"3.4.0","typescript":"^5.8.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.0","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.14.0","@types/express":"^5.0.1","@types/js-yaml":"^4.0.9","@azure/identity":"^4.8.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","typescript-eslint":"^8.29.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.13","eslint-plugin-unicorn":"^58.0.0","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.29.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.787.0","@aws-sdk/credential-provider-sso":"^3.787.0","@typescript-eslint/eslint-plugin":"^8.29.1","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.33.5","natural":"^8.0.1","langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1 || ^4.0.0","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0","@aws-sdk/client-sagemaker-runtime":"^3.758.0","@aws-sdk/client-bedrock-agent-runtime":"^3.777.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.112.1_1745940428124_0.47788376501982843","host":"s3://npm-registry-packages-npm-production"}},"0.112.3":{"name":"promptfoo","version":"0.112.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.112.3","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"88051a60abba0b9b31455ac13515146b160cb178","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.112.3.tgz","fileCount":1424,"integrity":"sha512-W/VITzz6nkKrOgRjtbsyIBQ0VLwmNsbVqPy+GJEugoq4jINXg5moTz6gGmkHAXDx5PMmPmfFxtCs2c6u/Q0DCQ==","signatures":[{"sig":"MEUCIQDAcxdtMU5NhVGGcobApLReTx7UcC2uohgSNG2ahsln5wIgQGm6nrOZqAhRjy2Jzab4VJt/ie51QcCBKG+jQbz2hlY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12367284},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"4fc0593bc40d0fd2aacfb215c60849d1badbcfe2","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && npm run build:replace-keys && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","build:replace-keys":"node scripts/replace-keys.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.1","ajv":"^8.17.1","tsx":"^4.19.3","zod":"^3.24.2","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.5.0","http-z":"^7.1.3","mathjs":"^14.4.0","openai":"^4.93.0","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.8.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"^11.9.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.40.0","@googleapis/sheets":"^9.6.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@modelcontextprotocol/sdk":"^1.10.2","@apidevtools/json-schema-ref-parser":"^12.0.1"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.3","madge":"^8.0.0","eslint":"^9.24.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.5.3","@swc/core":"^1.11.21","@swc/jest":"^0.2.37","supertest":"^7.1.0","@eslint/js":"^9.24.0","cloudflare":"3.4.0","typescript":"^5.8.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.0","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.14.0","@types/express":"^5.0.1","@types/js-yaml":"^4.0.9","@azure/identity":"^4.8.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","typescript-eslint":"^8.29.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.13","eslint-plugin-unicorn":"^58.0.0","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.29.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.787.0","@aws-sdk/credential-provider-sso":"^3.787.0","@typescript-eslint/eslint-plugin":"^8.29.1","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.33.5","natural":"^8.0.1","langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1 || ^4.0.0","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0","@aws-sdk/client-sagemaker-runtime":"^3.758.0","@aws-sdk/client-bedrock-agent-runtime":"^3.777.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.112.3_1746208048455_0.4152898705188559","host":"s3://npm-registry-packages-npm-production"}},"0.112.4":{"name":"promptfoo","version":"0.112.4","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.112.4","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"77380b3be7ea8f7824311204e0f78489c8480300","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.112.4.tgz","fileCount":1436,"integrity":"sha512-J7K+Tgyqs9/J1U2tJT0e11+va4IgEo6Z5vedqksIC1aUTBY8rCjqBhZTfLYTzpCdm6oMN3mvyHTOYJKzW1dJUg==","signatures":[{"sig":"MEQCIExX/tyr7lkDcrGg8mauAyVRXT6cGe2rB6V3OjBNhbdUAiAFGCoQhY2c0z7OE6AXoqPE3Jx1SPULG82kwPs8Erb9AA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13656952},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"692126468460c976c95212d0fa19f5e8c8ba5643","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"eslint . --max-warnings=0","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && npm run build:replace-keys && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","build:replace-keys":"node scripts/replace-keys.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.1","ajv":"^8.17.1","tsx":"^4.19.3","zod":"^3.24.2","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.5.3","dotenv":"^16.5.0","http-z":"^7.1.3","mathjs":"^14.4.0","openai":"^4.93.0","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.8.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"11.10.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.41.0","@googleapis/sheets":"^9.6.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.0","cache-manager-fs-hash":"^1.0.0","@modelcontextprotocol/sdk":"^1.10.2","@apidevtools/json-schema-ref-parser":"^12.0.1"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.3","madge":"^8.0.0","eslint":"^9.24.0","nodemon":"^3.1.9","ts-node":"^10.9.2","@swc/cli":"^0.6.0","prettier":"^3.5.3","@swc/core":"^1.11.21","@swc/jest":"^0.2.37","supertest":"^7.1.0","@eslint/js":"^9.24.0","cloudflare":"3.4.0","typescript":"^5.8.3","@types/cors":"^2.8.17","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.0","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.14.0","@types/express":"^5.0.1","@types/js-yaml":"^4.0.9","@azure/identity":"^4.8.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.7","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","typescript-eslint":"^8.29.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.13","eslint-plugin-unicorn":"^58.0.0","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.29.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.19","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.787.0","@aws-sdk/credential-provider-sso":"^3.787.0","@typescript-eslint/eslint-plugin":"^8.29.1","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.33.5","natural":"^8.0.1","langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1 || ^4.0.0","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0","@aws-sdk/client-sagemaker-runtime":"^3.758.0","@aws-sdk/client-bedrock-agent-runtime":"^3.777.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.112.4_1746730929497_0.3608412294327892","host":"s3://npm-registry-packages-npm-production"}},"0.112.5":{"name":"promptfoo","version":"0.112.5","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.112.5","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"dbdb9a85e792d0fc63a5037dcbefb163bcea50c4","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.112.5.tgz","fileCount":1436,"integrity":"sha512-vSPHPBFxOvFhfs2lv7/Qvy5tSOeW78RpF0RY5qijLyCo5LZaJdz0hSYgDD/fP55LAwY4HupeXYJ7QdBCUC/tXg==","signatures":[{"sig":"MEUCIQCowjBb4EcW1cySTerSmzdQRy7hFQRzhnZw+Zvls75NLgIgZfrmfu3nIeT7qPlZQzEThRTXxLNbCBJjw9tnCvY+Elk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13618605},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"49fe06cbd1c7d79c22353b68f601bd95443642fa","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"npm run lint:src","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && npm run build:replace-keys && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","lint:src":"eslint src --max-warnings=0","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"eslint site --max-warnings=0","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"eslint test --max-warnings=0","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","build:replace-keys":"node scripts/replace-keys.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.2","ajv":"^8.17.1","tsx":"^4.19.4","zod":"^3.24.4","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.5.0","http-z":"^7.1.3","mathjs":"^14.4.0","openai":"^4.98.0","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.9.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.17.1","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.50.3","@googleapis/sheets":"^9.7.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.1","cache-manager-fs-hash":"^1.0.0","@modelcontextprotocol/sdk":"^1.11.1","@apidevtools/json-schema-ref-parser":"^12.0.1"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.4","madge":"^8.0.0","eslint":"^9.26.0","nodemon":"^3.1.10","ts-node":"^10.9.2","@swc/cli":"^0.7.5","prettier":"^3.5.3","@swc/core":"^1.11.24","@swc/jest":"^0.2.38","supertest":"^7.1.0","@eslint/js":"^9.26.0","cloudflare":"3.4.0","typescript":"^5.8.3","@types/cors":"^2.8.18","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.1","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.15.4","@types/express":"^5.0.1","@types/js-yaml":"^4.0.9","@azure/identity":"^4.9.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.8","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","typescript-eslint":"^8.32.0","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","eslint-plugin-unicorn":"^59.0.1","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.32.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.806.0","@aws-sdk/credential-provider-sso":"^3.806.0","@typescript-eslint/eslint-plugin":"^8.32.0","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.33.5","natural":"^8.0.1","langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1 || ^4.0.0","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0","@aws-sdk/client-sagemaker-runtime":"^3.758.0","@aws-sdk/client-bedrock-agent-runtime":"^3.777.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.112.5_1747046352916_0.6252632417018684","host":"s3://npm-registry-packages-npm-production"}},"0.112.6":{"name":"promptfoo","version":"0.112.6","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.112.6","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"2828018cb52a633552fed7df33bdadbbd25e9c10","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.112.6.tgz","fileCount":1444,"integrity":"sha512-XnYN10YbMkCuyCs7iiXeDgvLhAWRnGc8//1GuQqyHML7A4cOLednfHj4+qGEsBAvormp+ETGCfSFmMg2qkVvbQ==","signatures":[{"sig":"MEQCIHnKiGBvZZP7F2s3wZ7wBs+H8QGTU6DBfbz2+xp0++PAAiAofQuGKQ7My7zILyUkZQtwMriuTO3IuUxGl9AkzhwaOw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13651900},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"c6488d47149c77c9e0976ce60b0d71b4b414f50b","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix --no-warn-ignored","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"npm run lint:src","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && npm run build:replace-keys && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","lint:src":"eslint src --max-warnings=0","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"eslint site --max-warnings=0","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"eslint test --max-warnings=0","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","build:replace-keys":"node scripts/replace-keys.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.2","ajv":"^8.17.1","tsx":"^4.19.4","zod":"^3.24.4","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.5.0","http-z":"^7.1.3","mathjs":"^14.4.0","openai":"^4.98.0","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.9.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.17.1","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.50.4","@googleapis/sheets":"^9.7.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.1","cache-manager-fs-hash":"^1.0.0","@modelcontextprotocol/sdk":"^1.11.2","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.4","madge":"^8.0.0","eslint":"^9.26.0","nodemon":"^3.1.10","ts-node":"^10.9.2","@swc/cli":"^0.7.7","prettier":"^3.5.3","@swc/core":"^1.11.24","@swc/jest":"^0.2.38","supertest":"^7.1.1","@eslint/js":"^9.26.0","cloudflare":"3.4.0","typescript":"^5.8.3","@types/cors":"^2.8.18","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.1","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.15.5","@types/express":"^5.0.1","@types/js-yaml":"^4.0.9","@azure/identity":"^4.9.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.8","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","typescript-eslint":"^8.32.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","eslint-plugin-unicorn":"^59.0.1","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.32.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.808.0","@aws-sdk/credential-provider-sso":"^3.808.0","@typescript-eslint/eslint-plugin":"^8.32.1","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.33.5","natural":"^8.0.1","langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1 || ^4.0.0","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0","@aws-sdk/client-sagemaker-runtime":"^3.758.0","@aws-sdk/client-bedrock-agent-runtime":"^3.777.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.112.6_1747236325907_0.002115240027250165","host":"s3://npm-registry-packages-npm-production"}},"0.112.7":{"name":"promptfoo","version":"0.112.7","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.112.7","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"163fa76e30aa5a783c1dde5e518ce14513b8656c","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.112.7.tgz","fileCount":1448,"integrity":"sha512-TSrDD4ahpR4K+gvYuVQe5/6mPAhBNft3PgHtGD3ROx2j9OQHKwjDaHMeIApe+ESecYYDwkFNjyhPCVjOuNPSwg==","signatures":[{"sig":"MEUCIGWLdnyvvVhX82SyEvZOgQ8tD6k8lIh3hISf2tsRVbS6AiEA2706c3D20NDq3xazHkMM3GpiuL8q02oT4l1XrTbjydo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13664872},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"280e0f9e30553fed7cea410b266268a4f684c0fb","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix --no-warn-ignored","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"npm run lint:src","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && npm run build:replace-keys && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","lint:src":"eslint src --max-warnings=0","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"eslint site --max-warnings=0","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"eslint test --max-warnings=0","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","build:replace-keys":"node scripts/replace-keys.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.2","ajv":"^8.17.1","tsx":"^4.19.4","zod":"^3.24.4","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.5.0","http-z":"^7.1.3","mathjs":"^14.4.0","openai":"^4.98.0","opener":"^1.5.2","semver":"^7.7.1","undici":"^7.9.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.17.1","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.50.4","@googleapis/sheets":"^9.7.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.1","cache-manager-fs-hash":"^1.0.0","@modelcontextprotocol/sdk":"^1.11.2","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.4","madge":"^8.0.0","eslint":"^9.26.0","nodemon":"^3.1.10","ts-node":"^10.9.2","@swc/cli":"^0.7.7","prettier":"^3.5.3","@swc/core":"^1.11.24","@swc/jest":"^0.2.38","supertest":"^7.1.1","@eslint/js":"^9.26.0","cloudflare":"3.4.0","typescript":"^5.8.3","@types/cors":"^2.8.18","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.1","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.15.5","@types/express":"^5.0.1","@types/js-yaml":"^4.0.9","@azure/identity":"^4.9.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.8","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","typescript-eslint":"^8.32.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","eslint-plugin-unicorn":"^59.0.1","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.32.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.808.0","@aws-sdk/credential-provider-sso":"^3.808.0","@typescript-eslint/eslint-plugin":"^8.32.1","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.33.5","natural":"^8.0.1","langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1 || ^4.0.0","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0","@aws-sdk/client-sagemaker-runtime":"^3.758.0","@aws-sdk/client-bedrock-agent-runtime":"^3.777.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.112.7_1747338561819_0.3832046151237489","host":"s3://npm-registry-packages-npm-production"}},"0.112.8":{"name":"promptfoo","version":"0.112.8","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.112.8","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"4a5ffcd244d9c7875871331a5b52a38ba53bc006","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.112.8.tgz","fileCount":1452,"integrity":"sha512-pfoo/J4+zzRrBU/bWODr2Yd6jETHV/ujFQ4DOdW3Nc0dO60WHAkJxECJ0v9CeQ5Yc/qCOwlzNIFwLk/rqwg99w==","signatures":[{"sig":"MEQCIDATFGqQt+LH3M4FSnbA5Y7c5eV+NOxXVnKTqk2F/u7hAiAAqFeshMIypp+CJPTWZvvQx1U/6/GlmDr5k7TNeiZlTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13720789},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"c776f119029042ba2ae8613de458e41863f975c1","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix --no-warn-ignored","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"npm run lint:src","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && npm run build:replace-keys && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","lint:src":"eslint src --max-warnings=0","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"eslint site --max-warnings=0","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"eslint test --max-warnings=0","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","build:replace-keys":"node scripts/replace-keys.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.2","ajv":"^8.17.1","tsx":"^4.19.4","zod":"^3.24.4","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.5.0","http-z":"^7.1.3","mathjs":"^14.4.0","openai":"^4.100.0","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.9.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.17.1","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.51.0","@googleapis/sheets":"^9.7.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.1","cache-manager-fs-hash":"^1.0.0","@modelcontextprotocol/sdk":"^1.11.4","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.4","madge":"^8.0.0","eslint":"^9.27.0","nodemon":"^3.1.10","ts-node":"^10.9.2","@swc/cli":"^0.7.7","prettier":"^3.5.3","@swc/core":"^1.11.24","@swc/jest":"^0.2.38","supertest":"^7.1.1","@eslint/js":"^9.27.0","cloudflare":"3.4.0","typescript":"^5.8.3","@types/cors":"^2.8.18","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.1","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.15.6","@types/express":"^5.0.1","@types/js-yaml":"^4.0.9","@azure/identity":"^4.10.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.8","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","typescript-eslint":"^8.32.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","eslint-plugin-unicorn":"^59.0.1","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.32.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.812.0","@aws-sdk/credential-provider-sso":"^3.812.0","@typescript-eslint/eslint-plugin":"^8.32.1","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.33.5","natural":"^8.0.1","langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1 || ^4.0.0","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0","@aws-sdk/client-sagemaker-runtime":"^3.758.0","@aws-sdk/client-bedrock-agent-runtime":"^3.777.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.112.8_1747752400044_0.4378051983786837","host":"s3://npm-registry-packages-npm-production"}},"0.113.0":{"name":"promptfoo","version":"0.113.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.113.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"310d9f8aaa757422429b2c244d8328e8d1186840","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.113.0.tgz","fileCount":1452,"integrity":"sha512-z/ya0lPwgDrw2NqHlrfYc9Uf5pOIMfZnH+a4tuxSMEimGLRZ3ZQrhkfvSDdH+uFuMLY9lwLvWXfoDdy53Lj8Pg==","signatures":[{"sig":"MEUCIAiG37QVbgjYmMdvG0n6g/Y2sQqPTL1/y7TlQcQzM/RWAiEA4n70akiQ6NbvhIDJ3/J5vgGr4OinEKRg8I39+Kn6pUA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13714336},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"7eae46cecd090791278252833b2f508cf8c1964c","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix --no-warn-ignored","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"npm run lint:src","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && npm run build:replace-keys && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","lint:src":"eslint src --max-warnings=0","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"eslint site --max-warnings=0","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"eslint test --max-warnings=0","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","build:replace-keys":"node scripts/replace-keys.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.2","ajv":"^8.17.1","tsx":"^4.19.4","zod":"^3.24.4","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.5.0","http-z":"^7.1.3","mathjs":"^14.4.0","openai":"^4.100.0","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.9.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.17.1","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.51.0","@googleapis/sheets":"^9.7.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.1","cache-manager-fs-hash":"^1.0.0","@modelcontextprotocol/sdk":"^1.11.4","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.4","madge":"^8.0.0","eslint":"^9.27.0","nodemon":"^3.1.10","ts-node":"^10.9.2","@swc/cli":"^0.7.7","prettier":"^3.5.3","@swc/core":"^1.11.24","@swc/jest":"^0.2.38","supertest":"^7.1.1","@eslint/js":"^9.27.0","cloudflare":"3.4.0","typescript":"^5.8.3","@types/cors":"^2.8.18","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.1","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.15.6","@types/express":"^5.0.1","@types/js-yaml":"^4.0.9","@azure/identity":"^4.10.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.8","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","typescript-eslint":"^8.32.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","eslint-plugin-unicorn":"^59.0.1","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.32.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.812.0","@aws-sdk/credential-provider-sso":"^3.812.0","@typescript-eslint/eslint-plugin":"^8.32.1","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.33.5","natural":"^8.0.1","langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^3.1.1 || ^4.0.0","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0","@aws-sdk/client-sagemaker-runtime":"^3.758.0","@aws-sdk/client-bedrock-agent-runtime":"^3.777.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.113.0_1747767962753_0.30911168831366287","host":"s3://npm-registry-packages-npm-production"}},"0.113.1":{"name":"promptfoo","version":"0.113.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.113.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"f1be7859f4fb2456bedf898a4f2a9ed2e5030469","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.113.1.tgz","fileCount":1452,"integrity":"sha512-5M8pwkjhWF1DK0iZxZAw0C3uRq4caYC8UWjnFg1qfMTaQYPB48FEhjttTfJmnsyVylRCeCxL+deOLkq4DNGuAQ==","signatures":[{"sig":"MEQCIDl0r+MrhAYeEmdddG4fTyUWkV+tg6y5tWNJVQKMXb3aAiBZgRc9KhHfg4GEnrVgQw7dYGgIOa25u9MtOrQx5xf60g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13722882},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"7d567e12031943d07904e4b45c52f136e48d3bb1","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix --no-warn-ignored","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"npm run lint:src","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && npm run build:replace-keys && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","lint:src":"eslint src --max-warnings=0","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"eslint site --max-warnings=0","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"eslint test --max-warnings=0","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","build:replace-keys":"node scripts/replace-keys.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.2","ajv":"^8.17.1","tsx":"^4.19.4","zod":"^3.24.4","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.5.0","http-z":"^7.1.3","mathjs":"^14.4.0","openai":"^4.100.0","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.9.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.17.1","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.51.0","@googleapis/sheets":"^9.7.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.1","cache-manager-fs-hash":"^1.0.0","@modelcontextprotocol/sdk":"^1.11.4","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.4","madge":"^8.0.0","eslint":"^9.27.0","nodemon":"^3.1.10","ts-node":"^10.9.2","@swc/cli":"^0.7.7","prettier":"^3.5.3","@swc/core":"^1.11.24","@swc/jest":"^0.2.38","supertest":"^7.1.1","@eslint/js":"^9.27.0","cloudflare":"3.4.0","typescript":"^5.8.3","@types/cors":"^2.8.18","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.1","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.15.6","@types/express":"^5.0.1","@types/js-yaml":"^4.0.9","@azure/identity":"^4.10.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.8","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","typescript-eslint":"^8.32.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","eslint-plugin-unicorn":"^59.0.1","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.32.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.812.0","@aws-sdk/credential-provider-sso":"^3.812.0","@typescript-eslint/eslint-plugin":"^8.32.1","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.33.5","natural":"^8.0.1","langfuse":"^3.7.0","pdf-parse":"^1.1.1","playwright":"^1.47.2","@adaline/groq":"0.9.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"0.9.2","@adaline/types":"0.15.0","@adaline/google":"0.9.0","@adaline/openai":"0.22.0","@adaline/vertex":"0.9.0","@azure/identity":"^4.0.0","node-sql-parser":"^5.2.0","@adaline/gateway":"0.25.0","playwright-extra":"^4.3.6","@adaline/provider":"0.17.0","@adaline/anthropic":"0.20.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"0.8.0","@adaline/together-ai":"0.8.0","@ibm-cloud/watsonx-ai":"^1.1.0","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.14.3","@smithy/node-http-handler":"^4.0.5","@ibm-generative-ai/node-sdk":"^2.0.6","@playwright/browser-chromium":"^1.47.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.602.0","@aws-sdk/credential-provider-sso":"^3.686.0","@aws-sdk/client-sagemaker-runtime":"^3.758.0","@aws-sdk/client-bedrock-agent-runtime":"^3.777.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.113.1_1747862398395_0.888554243254867","host":"s3://npm-registry-packages-npm-production"}},"0.113.2":{"name":"promptfoo","version":"0.113.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.113.2","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"32c4fb99bf001bf0ae6608d72f305a005aced43f","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.113.2.tgz","fileCount":1452,"integrity":"sha512-xl5xphRMRw+Or2OIKsPLGnmPHGtOBO2dJKJjHAlnZKNxXtUZs4tm3kOclePTXyVsaFMIu/41hOzP3Z4oYN6ZYQ==","signatures":[{"sig":"MEYCIQDjg3Vw7OhmijQAdG+EDGgP0WvCsQEad5/aPMoVVHSi2wIhAPo1b+8S4635RWvocYvv2rvuubaHFud1SOifxcVGpsH6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13711235},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"6aeafe7e69cbb72585738ca07aba5d1c879496b3","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix --no-warn-ignored","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"npm run lint:src","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","lint:src":"eslint src --max-warnings=0","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"eslint site --max-warnings=0","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"eslint test --max-warnings=0","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.2","ajv":"^8.17.1","tsx":"^4.19.4","zod":"^3.24.4","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.5.0","http-z":"^7.1.3","mathjs":"^14.4.0","openai":"^4.100.0","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.9.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.51.0","@googleapis/sheets":"^9.7.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.1","cache-manager-fs-hash":"^1.0.0","@modelcontextprotocol/sdk":"^1.11.4","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.4","madge":"^8.0.0","eslint":"^9.27.0","nodemon":"^3.1.10","ts-node":"^10.9.2","@swc/cli":"^0.7.7","prettier":"^3.5.3","@swc/core":"^1.11.24","@swc/jest":"^0.2.38","supertest":"^7.1.1","@eslint/js":"^9.27.0","cloudflare":"3.4.0","typescript":"^5.8.3","@types/cors":"^2.8.18","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.1","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.15.6","@types/express":"^5.0.1","@types/js-yaml":"^4.0.9","@azure/identity":"^4.10.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.8","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","typescript-eslint":"^8.32.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","eslint-plugin-unicorn":"^59.0.1","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.32.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.812.0","@aws-sdk/credential-provider-sso":"^3.812.0","@typescript-eslint/eslint-plugin":"^8.32.1","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.34.2","natural":"^8.0.1","langfuse":"^3.37.2","pdf-parse":"^1.1.1","playwright":"^1.52.0","@adaline/groq":"1.1.1","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.1.1","@adaline/types":"1.1.0","@adaline/google":"1.1.0","@adaline/openai":"1.3.0","@adaline/vertex":"1.1.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.1.0","playwright-extra":"^4.3.6","@adaline/provider":"1.1.0","@adaline/anthropic":"1.2.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"1.1.0","@adaline/together-ai":"1.1.0","@ibm-cloud/watsonx-ai":"^1.6.6","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.15.0","@smithy/node-http-handler":"^4.0.5","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.52.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.812.0","@aws-sdk/credential-provider-sso":"^3.812.0","@aws-sdk/client-sagemaker-runtime":"^3.812.0","@aws-sdk/client-bedrock-agent-runtime":"^3.812.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.113.2_1747938408023_0.7264173016966227","host":"s3://npm-registry-packages-npm-production"}},"0.113.3":{"name":"promptfoo","version":"0.113.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.113.3","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"c53f4ae9beca25ffb317fdbae0ee53ca82bff76a","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.113.3.tgz","fileCount":1452,"integrity":"sha512-Q1tnDFMu/1vmhxm3NZEPfOVEOAOAOvef9DUE62ieQnG2qlx1dmibE11VurHGG+T8xFsM0vKg+5j1eNE4q8/zNw==","signatures":[{"sig":"MEUCIElt+CVTErRmOjBoaJ/UdF6uzqgNC1jomwkfRRnoh9zFAiEAkAEisYXwZI0k/FYFp6iUyJuRTZ58Lh7FCmvYkRa9nBE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13725230},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"21c6bde0256e8f3683be5bf676a90b3f3244e7b1","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix --no-warn-ignored","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"npm run lint:src","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","lint:src":"eslint src --max-warnings=0","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"eslint site --max-warnings=0","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"eslint test --max-warnings=0","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.2","ajv":"^8.17.1","tsx":"^4.19.4","zod":"^3.24.4","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.5.0","http-z":"^7.1.3","mathjs":"^14.4.0","openai":"^4.100.0","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.9.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.52.0","@googleapis/sheets":"^9.7.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.1","cache-manager-fs-hash":"^1.0.0","@modelcontextprotocol/sdk":"^1.11.4","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.4","madge":"^8.0.0","eslint":"^9.27.0","nodemon":"^3.1.10","ts-node":"^10.9.2","@swc/cli":"^0.7.7","prettier":"^3.5.3","@swc/core":"^1.11.24","@swc/jest":"^0.2.38","supertest":"^7.1.1","@eslint/js":"^9.27.0","cloudflare":"3.4.0","typescript":"^5.8.3","@types/cors":"^2.8.18","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.1","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.15.6","@types/express":"^5.0.1","@types/js-yaml":"^4.0.9","@azure/identity":"^4.10.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.8","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","typescript-eslint":"^8.32.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","eslint-plugin-unicorn":"^59.0.1","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.32.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.812.0","@aws-sdk/credential-provider-sso":"^3.812.0","@typescript-eslint/eslint-plugin":"^8.32.1","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.34.2","natural":"^8.0.1","langfuse":"^3.37.2","pdf-parse":"^1.1.1","playwright":"^1.52.0","@adaline/groq":"1.1.1","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.1.1","@adaline/types":"1.1.0","@adaline/google":"1.1.0","@adaline/openai":"1.3.0","@adaline/vertex":"1.1.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.1.0","playwright-extra":"^4.3.6","@adaline/provider":"1.1.0","@adaline/anthropic":"1.2.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"1.1.0","@adaline/together-ai":"1.1.0","@ibm-cloud/watsonx-ai":"^1.6.6","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.15.0","@smithy/node-http-handler":"^4.0.5","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.52.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.812.0","@aws-sdk/credential-provider-sso":"^3.812.0","@aws-sdk/client-sagemaker-runtime":"^3.812.0","@aws-sdk/client-bedrock-agent-runtime":"^3.812.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.113.3_1748121094701_0.058642862614409985","host":"s3://npm-registry-packages-npm-production"}},"0.113.4":{"name":"promptfoo","version":"0.113.4","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.113.4","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"ea73621f314165068b65a6ecc167cd096680bac8","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.113.4.tgz","fileCount":1462,"integrity":"sha512-vJ3B54QG2VxAmKYrIkSTh/zIiMe2+ad4XVsXwug6HnD9Er/0ypbsLMgRvC8bSx+ZgCJkLFadKcBZsZS5CuVXJw==","signatures":[{"sig":"MEQCIF4DkbetO0WkRGNQaZC4x/aZUz5/Dtd67jBh3V2Bs+CbAiBdtCW212lQiSCQ0wbbFfggxICG+5c8Sj2jtufBtCObvA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13817195},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"fadda1873816f6bcd8c6debc12bb6130f0afade3","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix --no-warn-ignored","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"npm run lint:src","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","lint:src":"eslint src --max-warnings=0","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"eslint site --max-warnings=0","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"eslint test --max-warnings=0","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.2","ajv":"^8.17.1","tsx":"^4.19.4","zod":"^3.24.4","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.5.0","http-z":"^7.1.3","mathjs":"^14.4.0","openai":"^4.100.0","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.9.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.52.0","@googleapis/sheets":"^9.7.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.1","cache-manager-fs-hash":"^1.0.0","@modelcontextprotocol/sdk":"^1.11.4","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.4","madge":"^8.0.0","eslint":"^9.27.0","nodemon":"^3.1.10","ts-node":"^10.9.2","@swc/cli":"^0.7.7","prettier":"^3.5.3","@swc/core":"^1.11.24","@swc/jest":"^0.2.38","supertest":"^7.1.1","@eslint/js":"^9.27.0","cloudflare":"3.4.0","typescript":"^5.8.3","@types/cors":"^2.8.18","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.1","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.15.6","@types/express":"^5.0.1","@types/js-yaml":"^4.0.9","@azure/identity":"^4.10.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.8","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","typescript-eslint":"^8.32.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","eslint-plugin-unicorn":"^59.0.1","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.32.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.812.0","@aws-sdk/credential-provider-sso":"^3.812.0","@typescript-eslint/eslint-plugin":"^8.32.1","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.34.2","natural":"^8.0.1","langfuse":"^3.37.2","pdf-parse":"^1.1.1","playwright":"^1.52.0","@adaline/groq":"1.1.1","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.1.1","@adaline/types":"1.1.0","@adaline/google":"1.1.0","@adaline/openai":"1.3.0","@adaline/vertex":"1.1.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.1.0","playwright-extra":"^4.3.6","@adaline/provider":"1.1.0","@adaline/anthropic":"1.2.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"1.1.0","@adaline/together-ai":"1.1.0","@ibm-cloud/watsonx-ai":"^1.6.6","@azure/openai-assistants":"^1.0.0-beta.5","@fal-ai/serverless-client":"^0.15.0","@smithy/node-http-handler":"^4.0.5","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.52.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.812.0","@aws-sdk/credential-provider-sso":"^3.812.0","@aws-sdk/client-sagemaker-runtime":"^3.812.0","@aws-sdk/client-bedrock-agent-runtime":"^3.812.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.113.4_1748224746678_0.6733444858196818","host":"s3://npm-registry-packages-npm-production"}},"0.114.0":{"name":"promptfoo","version":"0.114.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.114.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"8fcdeb419466c7e952f00289f2ed795e3560009a","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.114.0.tgz","fileCount":1474,"integrity":"sha512-CjYJpfDavGDvW19uEsk84iZ5g7E+tVPnSG75grw8anD0wL+QYAg6PklZUMOSuEvHkr66TBnldbB0OdFNeRBtkw==","signatures":[{"sig":"MEUCIQD6R/hiq5Z+5FllPZCsXFV08tejQfYBzku17KolWq6WmAIgLDXB0lgmVHn7ppUCr+Ypx9c6IAJ7BEO72xFWtFbCnic=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13866407},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"7d26b2c57027dfac8d338956506cf4832a77c75d","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix --no-warn-ignored","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"npm run lint:src","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","lint:src":"eslint src --max-warnings=0","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"eslint site --max-warnings=0","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"eslint test --max-warnings=0","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.2","ajv":"^8.17.1","tsx":"^4.19.4","zod":"^3.24.4","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.5.0","http-z":"^7.1.3","mathjs":"^14.4.0","openai":"^4.100.0","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.9.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.52.0","@googleapis/sheets":"^9.7.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.1","cache-manager-fs-hash":"^1.0.0","@modelcontextprotocol/sdk":"^1.11.4","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.4","madge":"^8.0.0","eslint":"^9.27.0","nodemon":"^3.1.10","ts-node":"^10.9.2","@swc/cli":"^0.7.7","prettier":"^3.5.3","@swc/core":"^1.11.24","@swc/jest":"^0.2.38","supertest":"^7.1.1","@eslint/js":"^9.27.0","cloudflare":"3.4.0","typescript":"^5.8.3","@types/cors":"^2.8.18","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.1","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.15.6","@types/express":"^5.0.1","@types/js-yaml":"^4.0.9","@azure/identity":"^4.10.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.8","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","typescript-eslint":"^8.32.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","eslint-plugin-unicorn":"^59.0.1","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.32.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.812.0","@aws-sdk/credential-provider-sso":"^3.812.0","@typescript-eslint/eslint-plugin":"^8.32.1","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.34.2","natural":"^8.0.1","langfuse":"^3.37.2","pdf-parse":"^1.1.1","playwright":"^1.52.0","@adaline/groq":"1.1.1","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.1.1","@adaline/types":"1.1.0","@fal-ai/client":"^1.4.0","@adaline/google":"1.1.0","@adaline/openai":"1.3.0","@adaline/vertex":"1.1.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.1.0","playwright-extra":"^4.3.6","@adaline/provider":"1.1.0","@adaline/anthropic":"1.2.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"1.1.0","@adaline/together-ai":"1.1.0","@ibm-cloud/watsonx-ai":"^1.6.6","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.5","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.52.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.812.0","@aws-sdk/credential-provider-sso":"^3.812.0","@aws-sdk/client-sagemaker-runtime":"^3.812.0","@aws-sdk/client-bedrock-agent-runtime":"^3.812.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.114.0_1748396552173_0.24137353688059449","host":"s3://npm-registry-packages-npm-production"}},"0.114.1":{"name":"promptfoo","version":"0.114.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.114.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"15eef5c11817842b398c35c787e2c0c53e19b081","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.114.1.tgz","fileCount":1478,"integrity":"sha512-+hHbrZOHv9zYsoqIupWKoQ/gxfhMRFz1CiePX0wx5duXFCc+8aG7yfm2XmnR+0SDGNJ4mgs7+Ld568p0WzQr0w==","signatures":[{"sig":"MEUCIQC1H9OG3+u4Sc/0WxzSQrK+pQiQxBM+CvCfHFy6ZkMVFAIgICZGYYlfaDlOLf7X3gjVh2bVr3U0Pc3Hjrn/UgOG8SE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13879306},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"ee540ba3ce8efb8f9523d2d9ccc5c593de6047ba","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix --no-warn-ignored","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"npm run lint:src","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","lint:src":"eslint src --max-warnings=0","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"eslint site --max-warnings=0","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"eslint test --max-warnings=0","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.2","ajv":"^8.17.1","tsx":"^4.19.4","zod":"^3.24.4","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.5.0","http-z":"^7.1.3","mathjs":"^14.4.0","openai":"^4.100.0","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.9.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.52.0","@googleapis/sheets":"^9.7.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.1","cache-manager-fs-hash":"^1.0.0","@modelcontextprotocol/sdk":"^1.11.4","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.4","madge":"^8.0.0","eslint":"^9.27.0","nodemon":"^3.1.10","ts-node":"^10.9.2","@swc/cli":"^0.7.7","prettier":"^3.5.3","@swc/core":"^1.11.24","@swc/jest":"^0.2.38","supertest":"^7.1.1","@eslint/js":"^9.27.0","cloudflare":"3.4.0","typescript":"^5.8.3","@types/cors":"^2.8.18","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.1","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.15.6","@types/express":"^5.0.1","@types/js-yaml":"^4.0.9","@azure/identity":"^4.10.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.8","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","typescript-eslint":"^8.32.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","eslint-plugin-unicorn":"^59.0.1","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.32.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.812.0","@aws-sdk/credential-provider-sso":"^3.812.0","@typescript-eslint/eslint-plugin":"^8.32.1","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.34.2","natural":"^8.0.1","langfuse":"^3.37.2","pdf-parse":"^1.1.1","playwright":"^1.52.0","@adaline/groq":"1.1.1","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.1.1","@adaline/types":"1.1.0","@fal-ai/client":"^1.4.0","@adaline/google":"1.1.0","@adaline/openai":"1.3.0","@adaline/vertex":"1.1.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.1.0","playwright-extra":"^4.3.6","@adaline/provider":"1.1.0","@adaline/anthropic":"1.2.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"1.1.0","@adaline/together-ai":"1.1.0","@ibm-cloud/watsonx-ai":"^1.6.6","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.5","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.52.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.812.0","@aws-sdk/credential-provider-sso":"^3.812.0","@aws-sdk/client-sagemaker-runtime":"^3.812.0","@aws-sdk/client-bedrock-agent-runtime":"^3.812.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.114.1_1748532392210_0.026235341531252176","host":"s3://npm-registry-packages-npm-production"}},"0.114.2":{"name":"promptfoo","version":"0.114.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.114.2","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"5e9b71642eab5f99f9750d0b44959e7b66416874","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.114.2.tgz","fileCount":1482,"integrity":"sha512-xeMtJvTMmC16//znMXZItP5WC/9rg0VkZgv612XqgaLo9Tz4tfI4lmaMDk/6IuJHwapMFkvhuA5im1VXbZDQDg==","signatures":[{"sig":"MEUCIEs/5PWSe9wryL268+E3g32pc1f0mrpORagYbhCNFiLNAiEA/+IO2pIpDhe1M0lbK0I4/gSvblrrW1fMk4pYePGWZpo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13889750},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"969bf6c587f486907c1f2c25be7a18bcc7af7816","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix --no-warn-ignored","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"npm run lint:src","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","lint:src":"eslint src --max-warnings=0","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"eslint site --max-warnings=0","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"eslint test --max-warnings=0","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.2","ajv":"^8.17.1","tsx":"^4.19.4","zod":"^3.24.4","cors":"^2.8.5","glob":"^10.4.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.5.0","http-z":"^7.1.3","mathjs":"^14.4.0","openai":"^4.100.0","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.9.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.1","@anthropic-ai/sdk":"^0.52.0","@googleapis/sheets":"^9.7.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.1","cache-manager-fs-hash":"^1.0.0","@modelcontextprotocol/sdk":"^1.11.4","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.4","madge":"^8.0.0","eslint":"^9.27.0","nodemon":"^3.1.10","ts-node":"^10.9.2","@swc/cli":"^0.7.7","prettier":"^3.5.3","@swc/core":"^1.11.24","@swc/jest":"^0.2.38","supertest":"^7.1.1","@eslint/js":"^9.27.0","cloudflare":"3.4.0","typescript":"^5.8.3","@types/cors":"^2.8.18","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.1","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.15.6","@types/express":"^5.0.1","@types/js-yaml":"^4.0.9","@azure/identity":"^4.10.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.8","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","typescript-eslint":"^8.32.1","@types/compression":"^1.7.5","eslint-plugin-jest":"^28.11.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","eslint-plugin-unicorn":"^59.0.1","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.32.1","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","@types/cache-manager-fs-hash":"^0.0.4","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.812.0","@aws-sdk/credential-provider-sso":"^3.812.0","@typescript-eslint/eslint-plugin":"^8.32.1","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.34.2","natural":"^8.0.1","langfuse":"^3.37.2","pdf-parse":"^1.1.1","playwright":"^1.52.0","@adaline/groq":"1.1.1","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.1.1","@adaline/types":"1.1.0","@fal-ai/client":"^1.4.0","@adaline/google":"1.1.0","@adaline/openai":"1.3.0","@adaline/vertex":"1.1.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.1.0","playwright-extra":"^4.3.6","@adaline/provider":"1.1.0","@adaline/anthropic":"1.2.0","ibm-cloud-sdk-core":"^5.0.2","google-auth-library":"^9.7.0","@adaline/open-router":"1.1.0","@adaline/together-ai":"1.1.0","@ibm-cloud/watsonx-ai":"^1.6.6","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.5","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.52.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.812.0","@aws-sdk/credential-provider-sso":"^3.812.0","@aws-sdk/client-sagemaker-runtime":"^3.812.0","@aws-sdk/client-bedrock-agent-runtime":"^3.812.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.114.2_1748553319458_0.3938809536115493","host":"s3://npm-registry-packages-npm-production"}},"0.114.3":{"name":"promptfoo","version":"0.114.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.114.3","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"6f0e6cb0cab2123304d9da51124a423612d15b03","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.114.3.tgz","fileCount":1482,"integrity":"sha512-2ZViLtxXJpZInwixQrKku4hoBUcOfA8FSRgKrcllwH2DRBk52MTLhaTZEEXntmdVV/U3Vyn7lIIYDKYPl5hw3w==","signatures":[{"sig":"MEUCIQCsbp6tcW8jGNUBsY+0We6wIVgUQZpPP4ohlBRDDUU5wgIgERKk/9BKoU1gzaVOe00ZUPyRX0A9zKoaywfwyx7DXhM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13934811},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"0efd6f532a33a3f1ccaa95025c1250198351bcf9","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix --no-warn-ignored","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"npm run lint:src","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","lint:src":"eslint src --max-warnings=0","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"eslint site --max-warnings=0","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"eslint test --max-warnings=0","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.2","ajv":"^8.17.1","tsx":"^4.19.4","zod":"^3.25.46","cors":"^2.8.5","glob":"^10.4.5","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.5.0","http-z":"^7.1.3","mathjs":"^14.5.2","openai":"^5.0.1","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.10.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.3","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.3","@anthropic-ai/sdk":"^0.52.0","@googleapis/sheets":"^9.8.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.1","cache-manager-fs-hash":"^1.0.0","@modelcontextprotocol/sdk":"^1.12.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.5","madge":"^8.0.0","eslint":"^9.28.0","nodemon":"^3.1.10","ts-node":"^10.9.2","@swc/cli":"^0.7.7","prettier":"^3.5.3","@swc/core":"^1.11.29","@swc/jest":"^0.2.38","supertest":"^7.1.1","@eslint/js":"^9.28.0","cloudflare":"3.4.0","typescript":"^5.8.3","@types/cors":"^2.8.18","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.1","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.15.8","@types/express":"^5.0.2","@types/js-yaml":"^4.0.9","@azure/identity":"^4.10.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.8","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","typescript-eslint":"^8.33.0","@types/compression":"^1.8.0","eslint-plugin-jest":"^28.12.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","eslint-plugin-unicorn":"^59.0.1","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.33.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","@types/cache-manager-fs-hash":"^0.0.5","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.821.0","@aws-sdk/credential-provider-sso":"^3.821.0","@typescript-eslint/eslint-plugin":"^8.33.0","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.34.2","natural":"^8.1.0","langfuse":"^3.37.3","pdf-parse":"^1.1.1","playwright":"^1.52.0","@adaline/groq":"1.2.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.2.0","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@adaline/google":"1.2.0","@adaline/openai":"1.4.0","@adaline/vertex":"1.2.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","@adaline/anthropic":"1.3.0","ibm-cloud-sdk-core":"^5.4.0","google-auth-library":"^9.7.0","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@ibm-cloud/watsonx-ai":"^1.6.7","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.52.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.821.0","@aws-sdk/credential-provider-sso":"^3.821.0","@aws-sdk/client-sagemaker-runtime":"^3.821.0","@aws-sdk/client-bedrock-agent-runtime":"^3.821.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.114.3_1748908267179_0.9806824460008199","host":"s3://npm-registry-packages-npm-production"}},"0.114.4":{"name":"promptfoo","version":"0.114.4","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.114.4","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"d84aab021824c1330c00ab345ffb59de2a7c48e0","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.114.4.tgz","fileCount":1474,"integrity":"sha512-Lsj29/tKxAwavwpMCzCJRwAa6BNY+nF8mzPVcCcH2OIQnNN/PiNa7N7/t5Va0wVNx/291MVM2tOUsO0XQPVpag==","signatures":[{"sig":"MEQCIC0RMAJ/5rTN8+tXqTZI4XqIvIfPuqFWuADUQcc1VECVAiA2/ycZt4Gg2TMQQ46Eepy3qj7Mga1vhWpMwA596ytl3Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13951880},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"7599910f89bfd0aed4c767af57f6b1720ef2c47e","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix --no-warn-ignored","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"npm run lint:src","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","lint:src":"eslint src --max-warnings=0","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"eslint site --max-warnings=0","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"eslint test --max-warnings=0","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.2","ajv":"^8.17.1","tsx":"^4.19.4","zod":"^3.25.46","cors":"^2.8.5","glob":"^10.4.5","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.5.0","http-z":"^7.1.3","mathjs":"^14.5.2","openai":"^5.0.1","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.10.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.3","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.3","@anthropic-ai/sdk":"^0.52.0","@googleapis/sheets":"^9.8.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.1","cache-manager-fs-hash":"^1.0.0","@modelcontextprotocol/sdk":"^1.12.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.5","madge":"^8.0.0","eslint":"^9.28.0","nodemon":"^3.1.10","ts-node":"^10.9.2","@swc/cli":"^0.7.7","prettier":"^3.5.3","@swc/core":"^1.11.29","@swc/jest":"^0.2.38","supertest":"^7.1.1","@eslint/js":"^9.28.0","cloudflare":"3.4.0","typescript":"^5.8.3","@types/cors":"^2.8.18","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.1","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.15.8","@types/express":"^5.0.2","@types/js-yaml":"^4.0.9","@azure/identity":"^4.10.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.8","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","typescript-eslint":"^8.33.0","@types/compression":"^1.8.0","eslint-plugin-jest":"^28.12.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","eslint-plugin-unicorn":"^59.0.1","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.33.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","@types/cache-manager-fs-hash":"^0.0.5","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.821.0","@aws-sdk/credential-provider-sso":"^3.821.0","@typescript-eslint/eslint-plugin":"^8.33.0","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.34.2","natural":"^8.1.0","langfuse":"^3.37.3","pdf-parse":"^1.1.1","playwright":"^1.52.0","@adaline/groq":"1.2.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.2.0","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@adaline/google":"1.2.0","@adaline/openai":"1.4.0","@adaline/vertex":"1.2.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","@adaline/anthropic":"1.3.0","ibm-cloud-sdk-core":"^5.4.0","google-auth-library":"^9.7.0","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@ibm-cloud/watsonx-ai":"^1.6.7","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.52.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.821.0","@aws-sdk/credential-provider-sso":"^3.821.0","@aws-sdk/client-sagemaker-runtime":"^3.821.0","@aws-sdk/client-bedrock-agent-runtime":"^3.821.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.114.4_1749045143770_0.9929234621405918","host":"s3://npm-registry-packages-npm-production"}},"0.114.5":{"name":"promptfoo","version":"0.114.5","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.114.5","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"43f06b49970294007065de78b0ca4aecc7420641","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.114.5.tgz","fileCount":1474,"integrity":"sha512-raHbwvgQzdDlvCkK/LIcMIe8u+yXb9B23JczXApKayGhER4+muv4xXGpqalkzSKGm8Q63EVIFtZXqoVGKTBjeA==","signatures":[{"sig":"MEYCIQCS38JljL3l9YFUULVVr04kuo28VtSSxK7qLZL5lFGLkgIhANJ+Ywj+JO72tCRRtf1pssSG6iotaAzK+tS6Ybj2N2H2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13968662},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"a55f2fb76f383113ec2705fe4de306f105353071","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix --no-warn-ignored","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"npm run lint:src","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","lint:src":"eslint src --max-warnings=0","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"eslint site --max-warnings=0","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"eslint test --max-warnings=0","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.2","ajv":"^8.17.1","tsx":"^4.19.4","zod":"^3.25.46","cors":"^2.8.5","glob":"^10.4.5","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.5.0","http-z":"^7.1.3","mathjs":"^14.5.2","openai":"^5.0.1","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.10.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.3","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.3","@anthropic-ai/sdk":"^0.53.0","@googleapis/sheets":"^9.8.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.1","cache-manager-fs-hash":"^1.0.0","@modelcontextprotocol/sdk":"^1.12.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.5","madge":"^8.0.0","eslint":"^9.28.0","nodemon":"^3.1.10","ts-node":"^10.9.2","@swc/cli":"^0.7.7","prettier":"^3.5.3","@swc/core":"^1.11.29","@swc/jest":"^0.2.38","supertest":"^7.1.1","@eslint/js":"^9.28.0","cloudflare":"3.4.0","typescript":"^5.8.3","@types/cors":"^2.8.18","@types/diff":"^7.0.2","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.1","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.15.8","@types/express":"^5.0.2","@types/js-yaml":"^4.0.9","@azure/identity":"^4.10.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.8","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","typescript-eslint":"^8.33.0","@types/compression":"^1.8.0","eslint-plugin-jest":"^28.12.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","eslint-plugin-unicorn":"^59.0.1","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.33.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","@types/cache-manager-fs-hash":"^0.0.5","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.821.0","@aws-sdk/credential-provider-sso":"^3.821.0","@typescript-eslint/eslint-plugin":"^8.33.0","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.34.2","natural":"^8.1.0","langfuse":"^3.37.3","pdf-parse":"^1.1.1","playwright":"^1.52.0","@adaline/groq":"1.2.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.2.0","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@adaline/google":"1.2.0","@adaline/openai":"1.4.0","@adaline/vertex":"1.2.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","@adaline/anthropic":"1.3.0","ibm-cloud-sdk-core":"^5.4.0","google-auth-library":"^9.7.0","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@ibm-cloud/watsonx-ai":"^1.6.7","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.52.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.821.0","@aws-sdk/credential-provider-sso":"^3.821.0","@aws-sdk/client-sagemaker-runtime":"^3.821.0","@aws-sdk/client-bedrock-agent-runtime":"^3.821.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.114.5_1749114743455_0.715805099402387","host":"s3://npm-registry-packages-npm-production"}},"0.114.6":{"name":"promptfoo","version":"0.114.6","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.114.6","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"3461b476f7f55b79b2b72e4c2455809c35e38a3f","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.114.6.tgz","fileCount":1494,"integrity":"sha512-OWMPcmzBgknWy9vLQFFNjeFuEk/rsJWcO3l3TxrUm5zjIkeg9RGlDl5g2XyxNwOytztZTEkw9W7xXVYe41OYWg==","signatures":[{"sig":"MEUCIQC7cVRQAxm56fELjnQ4gpScJr4vNQSNWaahK0AJE6j7YgIgL+69/NZxp5UbCC4GlQXWvlAjcdLg/6Vy8K5+nwZR3W4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14003416},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"d89b1a86d01fede9070450cdbe5e5d492bad29c9","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix --no-warn-ignored","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"npm run lint:src","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","lint:src":"eslint src --max-warnings=0","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"eslint site --max-warnings=0","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"eslint test --max-warnings=0","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.2","ajv":"^8.17.1","tsx":"^4.19.4","zod":"^3.25.46","cors":"^2.8.5","glob":"^10.4.5","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.5.0","http-z":"^7.1.3","mathjs":"^14.5.2","openai":"^5.0.1","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.10.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.3","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.3","@anthropic-ai/sdk":"^0.53.0","@googleapis/sheets":"^9.8.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.1","cache-manager-fs-hash":"^1.0.0","@modelcontextprotocol/sdk":"^1.12.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.5","madge":"^8.0.0","eslint":"^9.28.0","nodemon":"^3.1.10","ts-node":"^10.9.2","@swc/cli":"^0.7.7","prettier":"^3.5.3","@swc/core":"^1.11.29","@swc/jest":"^0.2.38","supertest":"^7.1.1","@eslint/js":"^9.28.0","cloudflare":"3.4.0","typescript":"^5.8.3","@types/cors":"^2.8.18","@types/diff":"^7.0.2","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.1","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.15.8","@types/express":"^5.0.2","@types/js-yaml":"^4.0.9","@azure/identity":"^4.10.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.8","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","typescript-eslint":"^8.33.0","@types/compression":"^1.8.0","eslint-plugin-jest":"^28.12.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","eslint-plugin-unicorn":"^59.0.1","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.33.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","@types/cache-manager-fs-hash":"^0.0.5","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.821.0","@aws-sdk/credential-provider-sso":"^3.821.0","@typescript-eslint/eslint-plugin":"^8.33.0","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.34.2","natural":"^8.1.0","langfuse":"^3.37.3","pdf-parse":"^1.1.1","playwright":"^1.52.0","@adaline/groq":"1.2.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.2.0","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@adaline/google":"1.2.0","@adaline/openai":"1.4.0","@adaline/vertex":"1.2.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","@adaline/anthropic":"1.3.0","ibm-cloud-sdk-core":"^5.4.0","google-auth-library":"^9.7.0","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@ibm-cloud/watsonx-ai":"^1.6.7","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.52.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.821.0","@aws-sdk/credential-provider-sso":"^3.821.0","@aws-sdk/client-sagemaker-runtime":"^3.821.0","@aws-sdk/client-bedrock-agent-runtime":"^3.821.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.114.6_1749228889211_0.5747314496810734","host":"s3://npm-registry-packages-npm-production"}},"0.114.7":{"name":"promptfoo","version":"0.114.7","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.114.7","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"95f1b35aa106f3d41edeb9200db7f99769387faf","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.114.7.tgz","fileCount":1494,"integrity":"sha512-oIgBDYlXE09o/fADGexNlPM/uksVpczbl/L9Okp/F0ne2+nJbcYbAxp9hofN9GUZ4P7UqsltrZ2LObym/kezoQ==","signatures":[{"sig":"MEQCIEm4HOiCe64wzy1e/8H2FaBeuN4OMr/yaxjCnbPc9/aXAiBPrmGdpMIhulsk2zqrFXprNO3YUqUuIQ8hBz9drzE8Rg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13997978},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"d285ed436ed34e120380d357209274b2c0e36b74","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix --no-warn-ignored","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"npm run lint:src","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","lint:src":"eslint src --max-warnings=0","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"eslint site --max-warnings=0","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"eslint test --max-warnings=0","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.2","ajv":"^8.17.1","tsx":"^4.19.4","zod":"^3.25.46","cors":"^2.8.5","glob":"^10.4.5","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.5.0","http-z":"^7.1.3","mathjs":"^14.5.2","openai":"^5.0.1","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.10.0","express":"^4.21.2","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.3","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.3","@anthropic-ai/sdk":"^0.53.0","@googleapis/sheets":"^9.8.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.1","cache-manager-fs-hash":"^1.0.0","@modelcontextprotocol/sdk":"^1.12.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.5","madge":"^8.0.0","eslint":"^9.28.0","nodemon":"^3.1.10","ts-node":"^10.9.2","@swc/cli":"^0.7.7","prettier":"^3.5.3","@swc/core":"^1.11.29","@swc/jest":"^0.2.38","supertest":"^7.1.1","@eslint/js":"^9.28.0","cloudflare":"3.4.0","typescript":"^5.8.3","@types/cors":"^2.8.18","@types/diff":"^7.0.2","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.1","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.15.8","@types/express":"^5.0.2","@types/js-yaml":"^4.0.9","@azure/identity":"^4.10.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.8","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","typescript-eslint":"^8.33.0","@types/compression":"^1.8.0","eslint-plugin-jest":"^28.12.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","eslint-plugin-unicorn":"^59.0.1","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.33.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","@types/cache-manager-fs-hash":"^0.0.5","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.821.0","@aws-sdk/credential-provider-sso":"^3.821.0","@typescript-eslint/eslint-plugin":"^8.33.0","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.34.2","natural":"^8.1.0","langfuse":"^3.37.3","pdf-parse":"^1.1.1","playwright":"^1.52.0","@adaline/groq":"1.2.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.2.0","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@adaline/google":"1.2.0","@adaline/openai":"1.4.0","@adaline/vertex":"1.2.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","@adaline/anthropic":"1.3.0","ibm-cloud-sdk-core":"^5.4.0","google-auth-library":"^9.7.0","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@ibm-cloud/watsonx-ai":"^1.6.7","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.52.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.821.0","@aws-sdk/credential-provider-sso":"^3.821.0","@aws-sdk/client-sagemaker-runtime":"^3.821.0","@aws-sdk/client-bedrock-agent-runtime":"^3.821.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.114.7_1749253841722_0.06812406604135024","host":"s3://npm-registry-packages-npm-production"}},"0.115.0":{"name":"promptfoo","version":"0.115.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.115.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"ba02e6d8959f6b3996c3c38f67aca2bea321fa3b","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.115.0.tgz","fileCount":1530,"integrity":"sha512-2Xc9m5zkLpffrvor/i85txMkH6MFgAeWwXZm0rFZYTfon2WENLk82nDPFNN3NIk0LXic8fvik/feiublux1KfA==","signatures":[{"sig":"MEUCIDAk6zn7MDX8O3GdiEmX5/Vx4QSYIgm99xwC9SdJQKMkAiEA8S6VpaShFiS4WGyspW47ECEH9zMYR2+NpJZ0M20v5YU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14224930},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"b33c2f16f0e6bfd291c0149f4bf76d006d8228a0","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix --no-warn-ignored","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"npm run lint:src","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","lint:src":"eslint src --max-warnings=0","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"eslint site --max-warnings=0","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"eslint test --max-warnings=0","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.2","ajv":"^8.17.1","tsx":"^4.19.4","zod":"^3.25.57","cors":"^2.8.5","glob":"^10.4.5","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.5.0","http-z":"^7.1.3","mathjs":"^14.5.2","openai":"^5.2.0","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.10.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.3","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.3","@anthropic-ai/sdk":"^0.54.0","@googleapis/sheets":"^9.8.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.4.1","cache-manager-fs-hash":"^1.0.0","@modelcontextprotocol/sdk":"^1.12.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.5","madge":"^8.0.0","eslint":"^9.28.0","nodemon":"^3.1.10","ts-node":"^10.9.2","@swc/cli":"^0.7.7","prettier":"^3.5.3","@swc/core":"^1.11.31","@swc/jest":"^0.2.38","supertest":"^7.1.1","@eslint/js":"^9.28.0","cloudflare":"3.4.0","typescript":"^5.8.3","@types/cors":"^2.8.19","@types/diff":"^7.0.2","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.1","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.15.9","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@azure/identity":"^4.10.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.8","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","typescript-eslint":"^8.34.0","@types/compression":"^1.8.1","eslint-plugin-jest":"^28.13.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","eslint-plugin-unicorn":"^59.0.1","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.33.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","@types/cache-manager-fs-hash":"^0.0.5","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.826.0","@aws-sdk/credential-provider-sso":"^3.826.0","@typescript-eslint/eslint-plugin":"^8.33.0","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.34.2","natural":"^8.1.0","langfuse":"^3.37.3","pdf-parse":"^1.1.1","playwright":"^1.52.0","@adaline/groq":"1.2.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.2.0","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@adaline/google":"1.2.0","@adaline/openai":"1.4.0","@adaline/vertex":"1.2.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","@adaline/anthropic":"1.3.0","ibm-cloud-sdk-core":"^5.4.0","google-auth-library":"^9.7.0","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@ibm-cloud/watsonx-ai":"^1.6.7","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.52.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.821.0","@aws-sdk/credential-provider-sso":"^3.821.0","@aws-sdk/client-sagemaker-runtime":"^3.821.0","@aws-sdk/client-bedrock-agent-runtime":"^3.821.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.115.0_1749747343643_0.8666428415417997","host":"s3://npm-registry-packages-npm-production"}},"0.115.1":{"name":"promptfoo","version":"0.115.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.115.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"93d8663924101b7f54a814e462cac7a7d245fb29","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.115.1.tgz","fileCount":1530,"integrity":"sha512-APKmfYkBmaRtgmQ8TrGUZsnI+XMCaXGGT64/EEf+E6Knkg/U1JQKlPk4zc5iUMfz9ckCHOyJNarZZ6HYm8T1QA==","signatures":[{"sig":"MEQCIAMaVwH4+JDs/WOXymf4hJnh0k1ZsKHfgTLfEG0P1zc5AiBnssFo0hPoLaxmTMgDpvnsG+yAQ6SGfdjTRzCUH0060A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14228118},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"2fc2b438827803e49017015a904724f122ac2bbc","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix --no-warn-ignored","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"npm run lint:src","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","lint:src":"eslint src --max-warnings=0","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"eslint site --max-warnings=0","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"eslint test --max-warnings=0","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","actor":{"name":"mdangelo","type":"user","email":"michael.l.dangelo@gmail.com"},"email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.2","ajv":"^8.17.1","tsx":"^4.19.4","zod":"^3.25.63","cors":"^2.8.5","glob":"^10.4.5","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.5.0","http-z":"^7.1.3","mathjs":"^14.5.2","openai":"^5.2.0","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.10.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.3","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.3","@anthropic-ai/sdk":"^0.54.0","@googleapis/sheets":"^9.8.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.0","cache-manager-fs-hash":"^1.0.0","@modelcontextprotocol/sdk":"^1.12.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.5","madge":"^8.0.0","eslint":"^9.28.0","nodemon":"^3.1.10","ts-node":"^10.9.2","@swc/cli":"^0.7.7","prettier":"^3.5.3","@swc/core":"^1.11.31","@swc/jest":"^0.2.38","supertest":"^7.1.1","@eslint/js":"^9.28.0","cloudflare":"3.4.0","typescript":"^5.8.3","@types/cors":"^2.8.19","@types/diff":"^7.0.2","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.1","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.15.9","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@azure/identity":"^4.10.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.8","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","typescript-eslint":"^8.34.0","@types/compression":"^1.8.1","eslint-plugin-jest":"^28.13.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","eslint-plugin-unicorn":"^59.0.1","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.33.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","@types/cache-manager-fs-hash":"^0.0.5","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.826.0","@aws-sdk/credential-provider-sso":"^3.826.0","@typescript-eslint/eslint-plugin":"^8.33.0","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.34.2","natural":"^8.1.0","langfuse":"^3.37.3","pdf-parse":"^1.1.1","playwright":"^1.52.0","@adaline/groq":"1.2.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.2.0","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@adaline/google":"1.2.0","@adaline/openai":"1.4.0","@adaline/vertex":"1.2.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","@adaline/anthropic":"1.3.0","ibm-cloud-sdk-core":"^5.4.0","google-auth-library":"^9.7.0","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@ibm-cloud/watsonx-ai":"^1.6.7","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.52.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.821.0","@aws-sdk/credential-provider-sso":"^3.821.0","@aws-sdk/client-sagemaker-runtime":"^3.821.0","@aws-sdk/client-bedrock-agent-runtime":"^3.821.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.115.1_1750170002286_0.4012484002480674","host":"s3://npm-registry-packages-npm-production"}},"0.115.2":{"name":"promptfoo","version":"0.115.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.115.2","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"976e4191230e0874f52f12f5f6bd43425cb85e2c","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.115.2.tgz","fileCount":1548,"integrity":"sha512-Rt6ksFOuX1qlSHFVxtz+sPQaHtO+TzqAEpufULPMk1aRvQacX92DtVUSXUu4xWSgHpCXneP8GmNd4UyKKKauPw==","signatures":[{"sig":"MEUCIQDugq+0e7m6fsgfT54Feo49FO5yfb/i4DVQEL+KaPwzYAIgI/ptL/3yP3l+jW+G5UVtROmDV3nIq2qGMUin0/dXL4E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14176666},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"1932ee2e03fcfdc30598249ea2fc5c10e51aaefb","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix --no-warn-ignored","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"npm run lint:src","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","lint:src":"eslint src --max-warnings=0","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"eslint site --max-warnings=0","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"eslint test --max-warnings=0","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","actor":{"name":"mdangelo","type":"user","email":"michael.l.dangelo@gmail.com"},"email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.2","ajv":"^8.17.1","tsx":"^4.19.4","zod":"^3.25.63","cors":"^2.8.5","glob":"^10.4.5","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.5.0","http-z":"^7.1.3","mathjs":"^14.5.2","openai":"^5.2.0","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.10.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.3","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.3","@anthropic-ai/sdk":"^0.54.0","@googleapis/sheets":"^9.8.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.0","cache-manager-fs-hash":"^1.0.0","@modelcontextprotocol/sdk":"^1.12.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.5","madge":"^8.0.0","eslint":"^9.28.0","nodemon":"^3.1.10","ts-node":"^10.9.2","@swc/cli":"^0.7.7","prettier":"^3.5.3","@swc/core":"^1.11.31","@swc/jest":"^0.2.38","supertest":"^7.1.1","@eslint/js":"^9.28.0","cloudflare":"3.4.0","typescript":"^5.8.3","@types/cors":"^2.8.19","@types/diff":"^7.0.2","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.1","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.15.9","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@azure/identity":"^4.10.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.8","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","typescript-eslint":"^8.34.0","@types/compression":"^1.8.1","eslint-plugin-jest":"^28.13.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","eslint-plugin-unicorn":"^59.0.1","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.33.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","@types/cache-manager-fs-hash":"^0.0.5","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.826.0","@aws-sdk/credential-provider-sso":"^3.826.0","@typescript-eslint/eslint-plugin":"^8.33.0","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.34.2","natural":"^8.1.0","langfuse":"^3.37.3","pdf-parse":"^1.1.1","playwright":"^1.52.0","@adaline/groq":"1.2.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.2.0","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@adaline/google":"1.2.0","@adaline/openai":"1.4.0","@adaline/vertex":"1.2.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","@adaline/anthropic":"1.3.0","ibm-cloud-sdk-core":"^5.4.0","google-auth-library":"^9.7.0","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@ibm-cloud/watsonx-ai":"^1.6.7","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.52.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.821.0","@aws-sdk/credential-provider-sso":"^3.821.0","@aws-sdk/client-sagemaker-runtime":"^3.821.0","@aws-sdk/client-bedrock-agent-runtime":"^3.821.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.115.2_1750777087807_0.2828137892413616","host":"s3://npm-registry-packages-npm-production"}},"0.115.3":{"name":"promptfoo","version":"0.115.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.115.3","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"9db4d1fce3e6beba783ce61227470652ebe99d6a","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.115.3.tgz","fileCount":1548,"integrity":"sha512-tsCXwx5FkpcLNWQ7Yw7SnY04nXO1oSVeMaN7yYWc3tzFfwka1fKEfyY6JSJ9U0zvbLcwc4XDgZIyXfJKhUGEWQ==","signatures":[{"sig":"MEQCIDyiH0zKBj+lodeZj4BAta+Ifizu9JNWSRVN3w4Qa73kAiB5nwsK9svhfXuVQtru16ZBcjw6eM0px5WzIF7Fb/a16Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13447049},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"d62b434692c0b602263c730bbcba329367fb705e","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix --no-warn-ignored","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"npm run lint:src","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","lint:src":"eslint src --max-warnings=0","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"eslint site --max-warnings=0","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"eslint test --max-warnings=0","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","actor":{"name":"mdangelo","type":"user","email":"michael.l.dangelo@gmail.com"},"email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.2","ajv":"^8.17.1","tsx":"^4.19.4","zod":"^3.25.63","cors":"^2.8.5","glob":"^10.4.5","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.5.0","http-z":"^7.1.3","mathjs":"^14.5.2","openai":"^5.2.0","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.10.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.3","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.3","@anthropic-ai/sdk":"^0.54.0","@googleapis/sheets":"^9.8.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.0","cache-manager-fs-hash":"^1.0.0","@modelcontextprotocol/sdk":"^1.12.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.5","madge":"^8.0.0","eslint":"^9.28.0","nodemon":"^3.1.10","ts-node":"^10.9.2","@swc/cli":"^0.7.7","prettier":"^3.5.3","@swc/core":"^1.11.31","@swc/jest":"^0.2.38","supertest":"^7.1.1","@eslint/js":"^9.28.0","cloudflare":"3.4.0","typescript":"^5.8.3","@types/cors":"^2.8.19","@types/diff":"^7.0.2","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.1","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.15.9","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@azure/identity":"^4.10.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.8","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","typescript-eslint":"^8.34.0","@types/compression":"^1.8.1","eslint-plugin-jest":"^28.13.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","eslint-plugin-unicorn":"^59.0.1","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.33.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","@types/cache-manager-fs-hash":"^0.0.5","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.826.0","@aws-sdk/credential-provider-sso":"^3.826.0","@typescript-eslint/eslint-plugin":"^8.33.0","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.34.2","natural":"^8.1.0","langfuse":"^3.37.3","pdf-parse":"^1.1.1","playwright":"^1.52.0","@adaline/groq":"1.2.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.2.0","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@adaline/google":"1.2.0","@adaline/openai":"1.4.0","@adaline/vertex":"1.2.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","@adaline/anthropic":"1.3.0","ibm-cloud-sdk-core":"^5.4.0","google-auth-library":"^9.7.0","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@ibm-cloud/watsonx-ai":"^1.6.7","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.52.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.821.0","@aws-sdk/credential-provider-sso":"^3.821.0","@aws-sdk/client-sagemaker-runtime":"^3.821.0","@aws-sdk/client-bedrock-agent-runtime":"^3.821.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.115.3_1750804687436_0.9222799606525713","host":"s3://npm-registry-packages-npm-production"}},"0.115.4":{"name":"promptfoo","version":"0.115.4","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.115.4","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"28beb9180ce0aed706b9c3da363905ffce7be951","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.115.4.tgz","fileCount":1566,"integrity":"sha512-Yt3dUrMdefKruLs6vOSbxi6roB4VtpHU/AypSykxNRufCAYnrGDOevd+QI9dsDLQ4UydoOClE+99/1FOVAJ+kA==","signatures":[{"sig":"MEQCIAbToxDd2wyccr32S3evKW4exw864R/S+FtqqyYFbMPTAiBCviHm567N7rfNvJE9kXUjXVByF1bGzXkQaLn1TsoBLg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13587795},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"853b0803495626bd3b78879601d26ad5926222cb","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix --no-warn-ignored","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"npm run lint:src","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","lint:src":"eslint src --max-warnings=0","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"eslint site --max-warnings=0","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"eslint test --max-warnings=0","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","actor":{"name":"mdangelo","type":"user","email":"michael.l.dangelo@gmail.com"},"email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.2","ajv":"^8.17.1","tsx":"^4.19.4","zod":"^3.25.63","cors":"^2.8.5","glob":"^10.4.5","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.5.0","http-z":"^7.1.3","mathjs":"^14.5.2","openai":"^5.2.0","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.10.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.39.3","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.3","@anthropic-ai/sdk":"^0.54.0","@googleapis/sheets":"^9.8.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.0","cache-manager-fs-hash":"^1.0.0","@modelcontextprotocol/sdk":"^1.12.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.5","madge":"^8.0.0","eslint":"^9.28.0","nodemon":"^3.1.10","ts-node":"^10.9.2","@swc/cli":"^0.7.7","prettier":"^3.5.3","@swc/core":"^1.11.31","@swc/jest":"^0.2.38","supertest":"^7.1.1","@eslint/js":"^9.28.0","cloudflare":"3.4.0","typescript":"^5.8.3","@types/cors":"^2.8.19","@types/diff":"^7.0.2","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.1","@types/async":"^3.2.24","concurrently":"^9.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@libsql/client":"^0.15.9","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@azure/identity":"^4.10.0","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.8","@types/nunjucks":"^3.2.6","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","typescript-eslint":"^8.34.0","@types/compression":"^1.8.1","eslint-plugin-jest":"^28.13.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.5","@types/cli-progress":"^3.11.6","@types/cache-manager":"^4.0.6","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","eslint-plugin-unicorn":"^59.0.1","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.33.0","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.4.20","@types/cache-manager-fs-hash":"^0.0.5","eslint-plugin-unused-imports":"^4.1.4","@aws-sdk/client-bedrock-runtime":"^3.826.0","@aws-sdk/credential-provider-sso":"^3.826.0","@typescript-eslint/eslint-plugin":"^8.33.0","check-dependency-version-consistency":"^5.0.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.34.2","natural":"^8.1.0","langfuse":"^3.37.3","pdf-parse":"^1.1.1","playwright":"^1.52.0","@adaline/groq":"1.2.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.2.0","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@adaline/google":"1.2.0","@adaline/openai":"1.4.0","@adaline/vertex":"1.2.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","@adaline/anthropic":"1.3.0","ibm-cloud-sdk-core":"^5.4.0","google-auth-library":"^9.7.0","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@ibm-cloud/watsonx-ai":"^1.6.7","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.52.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.821.0","@aws-sdk/credential-provider-sso":"^3.821.0","@aws-sdk/client-sagemaker-runtime":"^3.821.0","@aws-sdk/client-bedrock-agent-runtime":"^3.821.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.115.4_1750875613971_0.5907796305202357","host":"s3://npm-registry-packages-npm-production"}},"0.116.0":{"name":"promptfoo","version":"0.116.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.116.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"a4e9e2c8f259c12e921f6ffc07e98cde6db63593","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.116.0.tgz","fileCount":1594,"integrity":"sha512-ssEuPo7t75QM18wafk6c4mV9HojbntT6po79XvIJnbuvLW4t+6Vs5HDADQZDg+bkqvMKoVkd3UjMC+OdSEazMg==","signatures":[{"sig":"MEQCID05f8wQ2FtOp4Zn4xnD/Ydu58OVFN4peucdpFOJQTFYAiA/TpK/YXjZf2LqILLzKo2dpnHdZFTEePdz+ZS1krRvIw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13542607},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"49eceef08eeac6c1bf69dd936debb22fda8f0158","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix --no-warn-ignored","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"npm run lint:src","test":"jest","build":"tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","lint:src":"eslint src --max-warnings=0","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"eslint site --max-warnings=0","local:web":"npm run dev --prefix src/app","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"eslint test --max-warnings=0","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","actor":{"name":"mdangelo","type":"user","email":"michael.l.dangelo@gmail.com"},"email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","tsx":"^4.20.3","zod":"^3.25.67","cors":"^2.8.5","glob":"^10.4.5","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.6.1","http-z":"^7.1.3","mathjs":"^14.5.2","openai":"^5.8.2","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.11.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.44.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.3","@anthropic-ai/sdk":"^0.55.0","@googleapis/sheets":"^9.8.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.2","cache-manager-fs-hash":"^1.1.0","@modelcontextprotocol/sdk":"^1.13.2","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.5","axios":"^1.7.9","madge":"^8.0.0","sharp":"^0.34.2","eslint":"^9.30.0","natural":"^8.1.0","nodemon":"^3.1.10","ts-node":"^10.9.2","@swc/cli":"^0.7.7","langfuse":"^3.37.3","prettier":"^3.6.2","@swc/core":"^1.12.7","@swc/jest":"^0.2.38","supertest":"^7.1.1","@eslint/js":"^9.30.0","playwright":"^1.52.0","typescript":"^5.8.3","@types/cors":"^2.8.19","@types/diff":"^7.0.2","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.24","concurrently":"^9.2.0","@adaline/groq":"1.2.0","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@adaline/azure":"1.2.0","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@libsql/client":"^0.15.9","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.2.0","@adaline/openai":"1.4.0","@adaline/vertex":"1.2.0","@azure/identity":"^4.10.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.8","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","typescript-eslint":"^8.35.0","@adaline/anthropic":"1.3.0","@types/compression":"^1.8.1","eslint-plugin-jest":"^28.14.0","ibm-cloud-sdk-core":"^5.4.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@types/cache-manager":"^4.0.6","@ibm-cloud/watsonx-ai":"^1.6.7","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","eslint-plugin-unicorn":"^59.0.1","@azure/openai-assistants":"^1.0.0-beta.5","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.35.0","eslint-plugin-react-hooks":"^5.2.0","@ibm-generative-ai/node-sdk":"^3.2.4","eslint-plugin-react-refresh":"^0.4.20","@types/cache-manager-fs-hash":"^0.0.5","eslint-plugin-unused-imports":"^4.1.4","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.839.0","@aws-sdk/credential-provider-sso":"^3.839.0","@typescript-eslint/eslint-plugin":"^8.35.0","@aws-sdk/client-sagemaker-runtime":"^3.839.0","check-dependency-version-consistency":"^5.0.1","@aws-sdk/client-bedrock-agent-runtime":"^3.839.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.34.2","natural":"^8.1.0","langfuse":"^3.37.3","pdf-parse":"^1.1.1","playwright":"^1.52.0","@adaline/groq":"1.2.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.2.0","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@adaline/google":"1.2.0","@adaline/openai":"1.4.0","@adaline/vertex":"1.2.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","@adaline/anthropic":"1.3.0","ibm-cloud-sdk-core":"^5.4.0","google-auth-library":"^9.7.0","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@ibm-cloud/watsonx-ai":"^1.6.7","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.52.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.821.0","@aws-sdk/credential-provider-sso":"^3.821.0","@aws-sdk/client-sagemaker-runtime":"^3.821.0","@aws-sdk/client-bedrock-agent-runtime":"^3.821.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.116.0_1751329688515_0.6833161864442372","host":"s3://npm-registry-packages-npm-production"}},"0.116.1":{"name":"promptfoo","version":"0.116.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.116.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"c5b330760a51c673fdc3212152b5f0ae7864c5cd","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.116.1.tgz","fileCount":1598,"integrity":"sha512-EmlqSkHVra3Vce9qBWhnKN9FVza3JnDFkN5G4TT6AtMIf6UtJL/6ofsKKXbhDrslNMDN2IPcah7MTmO+404vNg==","signatures":[{"sig":"MEUCIG3a5NwtD0Tap/9WAseBVgjJr9NkbilAlJ9HTs4P6pk6AiEAv83wcFQnBWJF7mILH3XJgSgl3sFXjqz5QXPDE3VVjAo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13579846},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"93d05da3004b394041a997d32685232d72f819bd","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix --no-warn-ignored","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","lint:src":"eslint src --max-warnings=0","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"eslint site --max-warnings=0","local:web":"npm run dev --prefix src/app","postbuild":"git checkout -- src/generated-constants.ts","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"eslint test --max-warnings=0","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","actor":{"name":"sklein12","type":"user","email":"sklein12@gmail.com"},"email":"sklein12@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","tsx":"^4.20.3","zod":"^3.25.67","cors":"^2.8.5","glob":"^10.4.5","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.6.1","http-z":"^7.1.3","mathjs":"^14.5.2","openai":"^5.8.2","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.11.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.44.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.18.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.3","@anthropic-ai/sdk":"^0.55.0","@googleapis/sheets":"^9.8.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.2","cache-manager-fs-hash":"^1.1.0","@modelcontextprotocol/sdk":"^1.13.2","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.5","axios":"^1.7.9","madge":"^8.0.0","sharp":"^0.34.2","eslint":"^9.30.0","natural":"^8.1.0","nodemon":"^3.1.10","ts-node":"^10.9.2","@swc/cli":"^0.7.7","langfuse":"^3.37.3","prettier":"^3.6.2","@swc/core":"^1.12.7","@swc/jest":"^0.2.38","supertest":"^7.1.1","@eslint/js":"^9.30.0","playwright":"^1.52.0","typescript":"^5.8.3","@types/cors":"^2.8.19","@types/diff":"^7.0.2","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.24","concurrently":"^9.2.0","@adaline/groq":"1.2.0","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@adaline/azure":"1.2.0","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@libsql/client":"^0.15.9","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.2.0","@adaline/openai":"1.4.0","@adaline/vertex":"1.2.0","@azure/identity":"^4.10.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.8","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","typescript-eslint":"^8.35.0","@adaline/anthropic":"1.3.0","@types/compression":"^1.8.1","eslint-plugin-jest":"^28.14.0","ibm-cloud-sdk-core":"^5.4.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@types/cache-manager":"^4.0.6","@ibm-cloud/watsonx-ai":"^1.6.7","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","eslint-plugin-unicorn":"^59.0.1","@azure/openai-assistants":"^1.0.0-beta.5","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.35.0","eslint-plugin-react-hooks":"^5.2.0","@ibm-generative-ai/node-sdk":"^3.2.4","eslint-plugin-react-refresh":"^0.4.20","@types/cache-manager-fs-hash":"^0.0.5","eslint-plugin-unused-imports":"^4.1.4","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.839.0","@aws-sdk/credential-provider-sso":"^3.839.0","@typescript-eslint/eslint-plugin":"^8.35.0","@aws-sdk/client-sagemaker-runtime":"^3.839.0","check-dependency-version-consistency":"^5.0.1","@aws-sdk/client-bedrock-agent-runtime":"^3.839.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.34.2","natural":"^8.1.0","langfuse":"^3.37.3","pdf-parse":"^1.1.1","playwright":"^1.52.0","@adaline/groq":"1.2.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.2.0","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@adaline/google":"1.2.0","@adaline/openai":"1.4.0","@adaline/vertex":"1.2.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","@adaline/anthropic":"1.3.0","ibm-cloud-sdk-core":"^5.4.0","google-auth-library":"^9.7.0","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@ibm-cloud/watsonx-ai":"^1.6.7","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.52.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.821.0","@aws-sdk/credential-provider-sso":"^3.821.0","@aws-sdk/client-sagemaker-runtime":"^3.821.0","@aws-sdk/client-bedrock-agent-runtime":"^3.821.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.116.1_1751498698542_0.4279260602105772","host":"s3://npm-registry-packages-npm-production"}},"0.116.2":{"name":"promptfoo","version":"0.116.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.116.2","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"f9db4ee78cdd6d63387a01499093b9311919b4cb","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.116.2.tgz","fileCount":1598,"integrity":"sha512-ZDM8jEQTMlgE4fMnOWYsXqAqdbXq0sj5jwKUmGPxZ6VAxCQqMNiyw0qT9lCL7gmu2xma9BQ96RDroWKVijf4Lg==","signatures":[{"sig":"MEUCIQCxifq0jxlrUOOi7tiw1de4NfESc0Cj3iFzntTVhu6nZwIgOnfl9nrdBC1wH/43lt0Mvwo/D4KbKu/XwSR1oEmMtFo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13579886},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"ba8c0cb883d47f1fd9b5b54b689e41215f46a682","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix --no-warn-ignored","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","lint:src":"eslint src --max-warnings=0","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"eslint site --max-warnings=0","local:web":"npm run dev --prefix src/app","postbuild":"git checkout -- src/generated-constants.ts 2>/dev/null || true","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"eslint test --max-warnings=0","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","actor":{"name":"sklein12","type":"user","email":"sklein12@gmail.com"},"email":"sklein12@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","tsx":"^4.20.3","zod":"^3.25.67","cors":"^2.8.5","glob":"^10.4.5","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.6.1","http-z":"^7.1.3","mathjs":"^14.5.2","openai":"^5.8.2","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.11.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.44.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.18.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.3","@anthropic-ai/sdk":"^0.55.0","@googleapis/sheets":"^9.8.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.2","cache-manager-fs-hash":"^1.1.0","@modelcontextprotocol/sdk":"^1.13.2","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.5","axios":"^1.7.9","madge":"^8.0.0","sharp":"^0.34.2","eslint":"^9.30.0","natural":"^8.1.0","nodemon":"^3.1.10","ts-node":"^10.9.2","@swc/cli":"^0.7.7","langfuse":"^3.37.3","prettier":"^3.6.2","@swc/core":"^1.12.7","@swc/jest":"^0.2.38","supertest":"^7.1.1","@eslint/js":"^9.30.0","playwright":"^1.52.0","typescript":"^5.8.3","@types/cors":"^2.8.19","@types/diff":"^7.0.2","@types/glob":"^8.1.0","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.24","concurrently":"^9.2.0","@adaline/groq":"1.2.0","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@adaline/azure":"1.2.0","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@libsql/client":"^0.15.9","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.2.0","@adaline/openai":"1.4.0","@adaline/vertex":"1.2.0","@azure/identity":"^4.10.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.8","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","typescript-eslint":"^8.35.0","@adaline/anthropic":"1.3.0","@types/compression":"^1.8.1","eslint-plugin-jest":"^28.14.0","ibm-cloud-sdk-core":"^5.4.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@types/cache-manager":"^4.0.6","@ibm-cloud/watsonx-ai":"^1.6.7","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","eslint-plugin-unicorn":"^59.0.1","@azure/openai-assistants":"^1.0.0-beta.5","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.35.0","eslint-plugin-react-hooks":"^5.2.0","@ibm-generative-ai/node-sdk":"^3.2.4","eslint-plugin-react-refresh":"^0.4.20","@types/cache-manager-fs-hash":"^0.0.5","eslint-plugin-unused-imports":"^4.1.4","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.839.0","@aws-sdk/credential-provider-sso":"^3.839.0","@typescript-eslint/eslint-plugin":"^8.35.0","@aws-sdk/client-sagemaker-runtime":"^3.839.0","check-dependency-version-consistency":"^5.0.1","@aws-sdk/client-bedrock-agent-runtime":"^3.839.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.34.2","natural":"^8.1.0","langfuse":"^3.37.3","pdf-parse":"^1.1.1","playwright":"^1.52.0","@adaline/groq":"1.2.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.2.0","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@adaline/google":"1.2.0","@adaline/openai":"1.4.0","@adaline/vertex":"1.2.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","@adaline/anthropic":"1.3.0","ibm-cloud-sdk-core":"^5.4.0","google-auth-library":"^9.7.0","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@ibm-cloud/watsonx-ai":"^1.6.7","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.52.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.821.0","@aws-sdk/credential-provider-sso":"^3.821.0","@aws-sdk/client-sagemaker-runtime":"^3.821.0","@aws-sdk/client-bedrock-agent-runtime":"^3.821.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.116.2_1751500539083_0.4293145786447077","host":"s3://npm-registry-packages-npm-production"}},"0.116.3":{"name":"promptfoo","version":"0.116.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.116.3","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"abb9e2c94d1151e9f2658114fc09596257a9d49b","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.116.3.tgz","fileCount":1638,"integrity":"sha512-0ZbCM97sK/zxtJpU2XDhNvKssGdzfzzeWu34iH97yX6bMrF9bmT/p7FS9nFRXJOMGgaKcuZqdThJzQ6i13iUrA==","signatures":[{"sig":"MEUCIQCIIWkhBlzBeCe+4yC60KNJxVudXrIvagt7YFHY1wOaNwIgDAdzFVnv74xG5tCnIXntTgX85JBcKMRwc5c/+KKBwt8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14175857},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"7c0892e101a73f3f646691af68fd4df9f6af77d3","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix --no-warn-ignored","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","lint:src":"eslint src --max-warnings=0","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"eslint site --max-warnings=0","local:web":"npm run dev --prefix src/app","postbuild":"git checkout -- src/generated-constants.ts 2>/dev/null || true","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"eslint test --max-warnings=0","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","actor":{"name":"sklein12","type":"user","email":"sklein12@gmail.com"},"email":"sklein12@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","tsx":"^4.20.3","zod":"^3.25.67","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.6.1","http-z":"^7.1.3","mathjs":"^14.5.2","openai":"^5.8.2","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.11.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.44.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.18.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.3","@anthropic-ai/sdk":"^0.56.0","@googleapis/sheets":"^9.8.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.2","cache-manager-fs-hash":"^1.1.0","@modelcontextprotocol/sdk":"^1.13.2","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.5","axios":"^1.7.9","madge":"^8.0.0","sharp":"^0.34.2","eslint":"^9.30.0","natural":"^8.1.0","nodemon":"^3.1.10","ts-node":"^10.9.2","@swc/cli":"^0.7.7","langfuse":"^3.37.3","prettier":"^3.6.2","@swc/core":"^1.12.7","@swc/jest":"^0.2.38","supertest":"^7.1.1","@eslint/js":"^9.30.0","playwright":"^1.52.0","typescript":"^5.8.3","@types/cors":"^2.8.19","@types/diff":"^7.0.2","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.24","concurrently":"^9.2.0","@adaline/groq":"1.2.0","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@adaline/azure":"1.2.0","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@libsql/client":"^0.15.9","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.2.0","@adaline/openai":"1.4.0","@adaline/vertex":"1.2.0","@azure/identity":"^4.10.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.8","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","typescript-eslint":"^8.35.0","@adaline/anthropic":"1.3.0","@types/compression":"^1.8.1","eslint-plugin-jest":"^28.14.0","ibm-cloud-sdk-core":"^5.4.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@types/cache-manager":"^4.0.6","@ibm-cloud/watsonx-ai":"^1.6.7","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","eslint-plugin-unicorn":"^59.0.1","@azure/openai-assistants":"^1.0.0-beta.5","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.35.0","eslint-plugin-react-hooks":"^5.2.0","@ibm-generative-ai/node-sdk":"^3.2.4","eslint-plugin-react-refresh":"^0.4.20","@types/cache-manager-fs-hash":"^0.0.5","eslint-plugin-unused-imports":"^4.1.4","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.839.0","@aws-sdk/credential-provider-sso":"^3.839.0","@typescript-eslint/eslint-plugin":"^8.35.0","@aws-sdk/client-sagemaker-runtime":"^3.839.0","check-dependency-version-consistency":"^5.0.1","@aws-sdk/client-bedrock-agent-runtime":"^3.839.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.34.2","natural":"^8.1.0","langfuse":"^3.37.3","pdf-parse":"^1.1.1","playwright":"^1.52.0","@adaline/groq":"1.2.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.2.0","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@adaline/google":"1.2.0","@adaline/openai":"1.4.0","@adaline/vertex":"1.2.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","@adaline/anthropic":"1.3.0","ibm-cloud-sdk-core":"^5.4.0","google-auth-library":"^9.7.0","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@ibm-cloud/watsonx-ai":"^1.6.7","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.52.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.821.0","@aws-sdk/credential-provider-sso":"^3.821.0","@aws-sdk/client-sagemaker-runtime":"^3.821.0","@aws-sdk/client-bedrock-agent-runtime":"^3.821.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.116.3_1751928028688_0.27209446389421665","host":"s3://npm-registry-packages-npm-production"}},"0.116.4":{"name":"promptfoo","version":"0.116.4","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.116.4","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"781dd29447b54f4e084c8d25c683160e9a8f190c","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.116.4.tgz","fileCount":1646,"integrity":"sha512-nQVcNIJQ78ARnonXRMEbhb/dujpiBiQ26WOqvW8K9QlDxfGehhi8A7WGncj1ukwOBrUjPvHZ8FJ85emlyI5YDA==","signatures":[{"sig":"MEUCIQCPcqcsFFNL+tmmKzng9v0lInbaHHLhnjrdoXW7gm4VawIgY9KnXsK5EAmG4kW8fRsDZep03Ej+vWdi7y7oHn4g7z0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14246853},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"79a2ad7fa5533f854f604515e7f6b813772b3791","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix --no-warn-ignored","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","lint:src":"eslint src --max-warnings=0","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"eslint site --max-warnings=0","local:web":"npm run dev --prefix src/app","postbuild":"git checkout -- src/generated-constants.ts 2>/dev/null || true","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"eslint test --max-warnings=0","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","actor":{"name":"sklein12","type":"user","email":"sklein12@gmail.com"},"email":"sklein12@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","tsx":"^4.20.3","zod":"^3.25.67","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.6.1","http-z":"^7.1.3","mathjs":"^14.5.2","openai":"^5.8.2","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.11.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.44.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.18.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.3","@anthropic-ai/sdk":"^0.56.0","@googleapis/sheets":"^9.8.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.2","cache-manager-fs-hash":"^1.1.0","@modelcontextprotocol/sdk":"^1.13.2","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.5","axios":"^1.7.9","madge":"^8.0.0","sharp":"^0.34.2","eslint":"^9.30.0","natural":"^8.1.0","nodemon":"^3.1.10","ts-node":"^10.9.2","@swc/cli":"^0.7.7","langfuse":"^3.37.3","prettier":"^3.6.2","@swc/core":"^1.12.7","@swc/jest":"^0.2.38","supertest":"^7.1.1","@eslint/js":"^9.30.0","playwright":"^1.52.0","typescript":"^5.8.3","@types/cors":"^2.8.19","@types/diff":"^7.0.2","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.24","concurrently":"^9.2.0","@adaline/groq":"1.2.0","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@adaline/azure":"1.2.0","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@libsql/client":"^0.15.9","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.2.0","@adaline/openai":"1.4.0","@adaline/vertex":"1.2.0","@azure/identity":"^4.10.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.8","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","typescript-eslint":"^8.35.0","@adaline/anthropic":"1.3.0","@types/compression":"^1.8.1","eslint-plugin-jest":"^28.14.0","ibm-cloud-sdk-core":"^5.4.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@types/cache-manager":"^4.0.6","@ibm-cloud/watsonx-ai":"^1.6.7","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","eslint-plugin-unicorn":"^59.0.1","@azure/openai-assistants":"^1.0.0-beta.5","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.35.0","eslint-plugin-react-hooks":"^5.2.0","@ibm-generative-ai/node-sdk":"^3.2.4","eslint-plugin-react-refresh":"^0.4.20","@types/cache-manager-fs-hash":"^0.0.5","eslint-plugin-unused-imports":"^4.1.4","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.839.0","@aws-sdk/credential-provider-sso":"^3.839.0","@typescript-eslint/eslint-plugin":"^8.35.0","@aws-sdk/client-sagemaker-runtime":"^3.839.0","check-dependency-version-consistency":"^5.0.1","@aws-sdk/client-bedrock-agent-runtime":"^3.839.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.34.2","natural":"^8.1.0","langfuse":"^3.37.3","pdf-parse":"^1.1.1","playwright":"^1.52.0","@adaline/groq":"1.2.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.2.0","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@adaline/google":"1.2.0","@adaline/openai":"1.4.0","@adaline/vertex":"1.2.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","@adaline/anthropic":"1.3.0","ibm-cloud-sdk-core":"^5.4.0","google-auth-library":"^9.7.0","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@ibm-cloud/watsonx-ai":"^1.6.7","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.52.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.821.0","@aws-sdk/credential-provider-sso":"^3.821.0","@aws-sdk/client-sagemaker-runtime":"^3.821.0","@aws-sdk/client-bedrock-agent-runtime":"^3.821.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.116.4_1751950606131_0.37093106053891334","host":"s3://npm-registry-packages-npm-production"}},"0.116.6":{"name":"promptfoo","version":"0.116.6","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.116.6","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"6d0ec5de3465e3d28b145b59c5def4cc171d3388","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.116.6.tgz","fileCount":1654,"integrity":"sha512-WHeFfNqTa61KOSBOpSsbjdyZgX6GIUA3X8YH2vT0cbcPiLVSQlnzpNcu3Nv1PStu+MD2ens6qw02egssb+2u5g==","signatures":[{"sig":"MEYCIQDE9bwcop2TaINexxvgovoVkF1lv86punVEbM+6AmOHUQIhAPAAFxzF8nGEO8K6+UdWuBgCWaj8/QdZatEIUEXnNVcf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14285671},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"5bd70875433645a785dffcd5080f400d29a8f50f","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix --no-warn-ignored","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","lint:src":"eslint src --max-warnings=0","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"eslint site --max-warnings=0","local:web":"npm run dev --prefix src/app","postbuild":"git checkout -- src/generated-constants.ts 2>/dev/null || true","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"eslint test --max-warnings=0","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","actor":{"name":"sklein12","type":"user","email":"sklein12@gmail.com"},"email":"sklein12@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","tsx":"^4.20.3","zod":"^3.25.67","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.6.1","http-z":"^7.1.3","mathjs":"^14.5.2","openai":"^5.8.2","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.11.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.44.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.18.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.3","@anthropic-ai/sdk":"^0.56.0","@googleapis/sheets":"^9.8.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.2","cache-manager-fs-hash":"^1.1.0","@modelcontextprotocol/sdk":"^1.13.2","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.5","axios":"^1.7.9","madge":"^8.0.0","sharp":"^0.34.2","eslint":"^9.30.0","natural":"^8.1.0","nodemon":"^3.1.10","ts-node":"^10.9.2","@swc/cli":"^0.7.7","langfuse":"^3.37.3","prettier":"^3.6.2","@swc/core":"^1.12.7","@swc/jest":"^0.2.38","supertest":"^7.1.1","@eslint/js":"^9.30.0","playwright":"^1.52.0","typescript":"^5.8.3","@types/cors":"^2.8.19","@types/diff":"^7.0.2","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.24","concurrently":"^9.2.0","@adaline/groq":"1.2.0","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@adaline/azure":"1.2.0","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@libsql/client":"^0.15.9","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.2.0","@adaline/openai":"1.4.0","@adaline/vertex":"1.2.0","@azure/identity":"^4.10.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.8","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","typescript-eslint":"^8.35.0","@adaline/anthropic":"1.3.0","@types/compression":"^1.8.1","eslint-plugin-jest":"^28.14.0","ibm-cloud-sdk-core":"^5.4.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@types/cache-manager":"^4.0.6","@ibm-cloud/watsonx-ai":"^1.6.7","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","eslint-plugin-unicorn":"^59.0.1","@azure/openai-assistants":"^1.0.0-beta.5","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.35.0","eslint-plugin-react-hooks":"^5.2.0","@ibm-generative-ai/node-sdk":"^3.2.4","eslint-plugin-react-refresh":"^0.4.20","@types/cache-manager-fs-hash":"^0.0.5","eslint-plugin-unused-imports":"^4.1.4","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.839.0","@aws-sdk/credential-provider-sso":"^3.839.0","@typescript-eslint/eslint-plugin":"^8.35.0","@aws-sdk/client-sagemaker-runtime":"^3.839.0","check-dependency-version-consistency":"^5.0.1","@aws-sdk/client-bedrock-agent-runtime":"^3.839.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.34.2","natural":"^8.1.0","langfuse":"^3.37.3","pdf-parse":"^1.1.1","playwright":"^1.52.0","@adaline/groq":"1.2.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.2.0","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@adaline/google":"1.2.0","@adaline/openai":"1.4.0","@adaline/vertex":"1.2.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","@adaline/anthropic":"1.3.0","ibm-cloud-sdk-core":"^5.4.0","google-auth-library":"^9.7.0","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@ibm-cloud/watsonx-ai":"^1.6.7","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.52.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.821.0","@aws-sdk/credential-provider-sso":"^3.821.0","@aws-sdk/client-sagemaker-runtime":"^3.821.0","@aws-sdk/client-bedrock-agent-runtime":"^3.821.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.116.6_1752085060930_0.5775134368620323","host":"s3://npm-registry-packages-npm-production"}},"0.116.7":{"name":"promptfoo","version":"0.116.7","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.116.7","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"c99ad31aa606bb4b11e72e848892be13c3181c42","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.116.7.tgz","fileCount":1654,"integrity":"sha512-URJN5VpKZRxhkaRonM4HFrMY4hy94DA0TpSnArWbClIiaJbnKJH+2csgtcyq0Fj50GC8/+xmB+ZHJ+I70ALzXA==","signatures":[{"sig":"MEUCIAFMUk93mxG58UeAputtbxRUyC4BnNlfrA8IQPoky0STAiEAs32fWeN4nbJ+N3t/N4oHCXuX2xY/Sy32N6Vefgy/I/w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14295009},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"7d18a57388e886a9da26bc35ebddef7b10246019","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(j2|js|jsx|mjs|cjs|ts|tsx|json|css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs eslint --max-warnings=0 --fix --no-warn-ignored","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"prettier -w .","dev:app":"npm run dev --prefix src/app","lint:src":"eslint src --max-warnings=0","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"eslint site --max-warnings=0","local:web":"npm run dev --prefix src/app","postbuild":"git checkout -- src/generated-constants.ts 2>/dev/null || true","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"eslint test --max-warnings=0","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"prettier --check .","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json | npx prettier --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","actor":{"name":"sklein12","type":"user","email":"sklein12@gmail.com"},"email":"sklein12@gmail.com"},"overrides":{"*":{"chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","tsx":"^4.20.3","zod":"^3.25.67","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.6.1","http-z":"^7.1.3","mathjs":"^14.5.2","openai":"^5.8.2","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.11.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","inquirer":"^11.1.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.44.2","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.18.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.5.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.3","@anthropic-ai/sdk":"^0.56.0","@googleapis/sheets":"^9.8.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.2","cache-manager-fs-hash":"^1.1.0","@modelcontextprotocol/sdk":"^1.13.2","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^29.7.0","nock":"^14.0.5","axios":"^1.7.9","madge":"^8.0.0","sharp":"^0.34.2","eslint":"^9.30.0","natural":"^8.1.0","nodemon":"^3.1.10","ts-node":"^10.9.2","@swc/cli":"^0.7.7","langfuse":"^3.37.3","prettier":"^3.6.2","@swc/core":"^1.12.7","@swc/jest":"^0.2.38","supertest":"^7.1.1","@eslint/js":"^9.30.0","playwright":"^1.52.0","typescript":"^5.8.3","@types/cors":"^2.8.19","@types/diff":"^7.0.2","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.24","concurrently":"^9.2.0","@adaline/groq":"1.2.0","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@adaline/azure":"1.2.0","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@libsql/client":"^0.15.9","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.2.0","@adaline/openai":"1.4.0","@adaline/vertex":"1.2.0","@azure/identity":"^4.10.1","@types/debounce":"^1.2.4","@types/inquirer":"^9.0.8","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","typescript-eslint":"^8.35.0","@adaline/anthropic":"1.3.0","@types/compression":"^1.8.1","eslint-plugin-jest":"^28.14.0","ibm-cloud-sdk-core":"^5.4.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@types/cache-manager":"^4.0.6","@ibm-cloud/watsonx-ai":"^1.6.7","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","eslint-plugin-unicorn":"^59.0.1","@azure/openai-assistants":"^1.0.0-beta.5","@types/source-map-support":"^0.5.10","@typescript-eslint/parser":"^8.35.0","eslint-plugin-react-hooks":"^5.2.0","@ibm-generative-ai/node-sdk":"^3.2.4","eslint-plugin-react-refresh":"^0.4.20","@types/cache-manager-fs-hash":"^0.0.5","eslint-plugin-unused-imports":"^4.1.4","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.839.0","@aws-sdk/credential-provider-sso":"^3.839.0","@typescript-eslint/eslint-plugin":"^8.35.0","@aws-sdk/client-sagemaker-runtime":"^3.839.0","check-dependency-version-consistency":"^5.0.1","@aws-sdk/client-bedrock-agent-runtime":"^3.839.0","@trivago/prettier-plugin-sort-imports":"^5.2.2"},"peerDependencies":{"sharp":"^0.34.2","natural":"^8.1.0","langfuse":"^3.37.3","pdf-parse":"^1.1.1","playwright":"^1.52.0","@adaline/groq":"1.2.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.2.0","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@adaline/google":"1.2.0","@adaline/openai":"1.4.0","@adaline/vertex":"1.2.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","@adaline/anthropic":"1.3.0","ibm-cloud-sdk-core":"^5.4.0","google-auth-library":"^9.7.0","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@ibm-cloud/watsonx-ai":"^1.6.7","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.52.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.821.0","@aws-sdk/credential-provider-sso":"^3.821.0","@aws-sdk/client-sagemaker-runtime":"^3.821.0","@aws-sdk/client-bedrock-agent-runtime":"^3.821.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.116.7_1752093926542_0.6052093972608119","host":"s3://npm-registry-packages-npm-production"}},"0.117.0":{"name":"promptfoo","version":"0.117.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.117.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"e012ac4c8f4487bdf6d46273e3160f5947062575","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.117.0.tgz","fileCount":1669,"integrity":"sha512-Py6E+XRmNXWqQLeJzexZmFR7djzs8bh4z0YmCXxImJ11BRoK8XxhTJe2zk/sk9OFqphjfn4CXKlM+5ge4nHRZQ==","signatures":[{"sig":"MEUCIB2HVzxE6C9tgKC8SAhObZnYYDRHxyBD1pa905Y9vXg1AiEA5Hcp0WBjzJv5OWKm/UFXgFwkMv9rLDJvgakWIsxiRE4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28945754},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"e44138545b0e359cf39494d869be7b754fe7b9a7","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"git checkout -- src/generated-constants.ts 2>/dev/null || true","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.5","chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","esbuild":"0.25.5","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.14.8","tsx":"^4.20.3","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.6.1","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.5.3","openai":"^5.9.2","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.11.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.44.3","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.18.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.3","@anthropic-ai/sdk":"^0.56.0","@googleapis/sheets":"^9.8.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^1.1.0","@modelcontextprotocol/sdk":"^1.15.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.0.4","knip":"^5.61.3","nock":"^14.0.5","axios":"^1.10.0","madge":"^8.0.0","sharp":"^0.34.3","natural":"^8.1.0","nodemon":"^3.1.10","ts-jest":"^29.4.0","ts-node":"^10.9.2","langfuse":"^3.38.4","prettier":"3.6.2","@swc/core":"^1.12.14","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.3","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.54.1","typescript":"^5.8.3","@types/cors":"^2.8.19","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.24","concurrently":"^9.2.0","@adaline/groq":"1.2.4","@jest/globals":"^30.0.4","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@adaline/azure":"1.2.4","@adaline/types":"1.5.0","@biomejs/biome":"2.1.1","@fal-ai/client":"^1.6.0","@inquirer/core":"^10.1.14","@libsql/client":"^0.15.9","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.3.3","@adaline/openai":"1.5.3","@adaline/vertex":"1.3.3","@azure/identity":"^4.10.2","@inquirer/input":"^4.2.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.10","@adaline/gateway":"1.5.0","@inquirer/editor":"^4.2.14","@inquirer/select":"^4.2.4","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.2.3","@inquirer/confirm":"^5.1.13","winston-transport":"^4.9.0","@adaline/anthropic":"1.4.3","@inquirer/checkbox":"^4.1.9","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.2.3","@adaline/together-ai":"1.2.3","@types/cache-manager":"^4.0.6","@ibm-cloud/watsonx-ai":"^1.6.8","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.846.0","@aws-sdk/credential-provider-sso":"^3.846.0","@aws-sdk/client-sagemaker-runtime":"^3.846.0","check-dependency-version-consistency":"^5.0.1","@aws-sdk/client-bedrock-agent-runtime":"^3.846.0"},"peerDependencies":{"sharp":"^0.34.3","natural":"^8.1.0","langfuse":"^3.37.3","pdf-parse":"^1.1.1","playwright":"^1.54.1","@adaline/groq":"1.2.1","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.2.1","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@adaline/google":"1.3.0","@adaline/openai":"1.5.0","@adaline/vertex":"1.3.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","@adaline/anthropic":"1.4.0","ibm-cloud-sdk-core":"^5.4.0","google-auth-library":"^9.7.0","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@ibm-cloud/watsonx-ai":"^1.6.7","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.52.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.844.0","@aws-sdk/credential-provider-sso":"^3.844.0","@aws-sdk/client-sagemaker-runtime":"^3.844.0","@aws-sdk/client-bedrock-agent-runtime":"^3.844.0"},"optionalDependencies":{"@swc/core-darwin-x64":"^1.12.14","@biomejs/cli-linux-x64":"2.1.1","@biomejs/cli-win32-x64":"2.1.1","@swc/core-darwin-arm64":"^1.12.14","@biomejs/cli-darwin-x64":"2.1.1","@swc/core-linux-x64-gnu":"^1.12.14","@swc/core-linux-x64-musl":"^1.12.14","@swc/core-win32-x64-msvc":"^1.12.14","@biomejs/cli-darwin-arm64":"2.1.1","@biomejs/cli-linux-x64-musl":"2.1.1","@rollup/rollup-linux-x64-gnu":"^4.45.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.117.0_1752781044188_0.8884953091640775","host":"s3://npm-registry-packages-npm-production"}},"0.117.1":{"name":"promptfoo","version":"0.117.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.117.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"87bc16dfd507117d30a7328eecd64b776971a89c","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.117.1.tgz","fileCount":1669,"integrity":"sha512-fmCHra5EEEVrIUmDnSF5hUGP/goefbI7WeaBuiVR9V6ljSoj7fvAptAoRViyaiT51EMuXHVqvW5hy5Fe64+oYQ==","signatures":[{"sig":"MEUCIQD4+B4AmYAVcSP9T3ZxxrExOW9u8p2fa1HMo+F+t91w7wIgOmwVSRxHNy8ym3/V/AjdLPzaiKoHefv4IiQsVXFukIk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28947967},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"569c11d07073da746a546a9c134f86ba16d6930b","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"git checkout -- src/generated-constants.ts 2>/dev/null || true","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.5","chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","esbuild":"0.25.5","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.14.8","tsx":"^4.20.3","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.6.1","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.5.3","openai":"^5.9.2","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.11.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.44.3","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.18.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.1.14","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.3","@inquirer/editor":"^4.2.14","@inquirer/select":"^4.2.4","@anthropic-ai/sdk":"^0.56.0","@inquirer/confirm":"^5.1.13","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.1.9","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^1.1.0","@modelcontextprotocol/sdk":"^1.15.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.0.4","knip":"^5.61.3","nock":"^14.0.5","axios":"^1.10.0","madge":"^8.0.0","sharp":"^0.34.3","natural":"^8.1.0","nodemon":"^3.1.10","ts-jest":"^29.4.0","ts-node":"^10.9.2","langfuse":"^3.38.4","prettier":"3.6.2","@swc/core":"^1.12.14","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.3","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.54.1","typescript":"^5.8.3","@types/cors":"^2.8.19","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.24","concurrently":"^9.2.0","@adaline/groq":"1.2.4","@jest/globals":"^30.0.4","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@adaline/azure":"1.2.4","@adaline/types":"1.5.0","@biomejs/biome":"2.1.1","@fal-ai/client":"^1.6.0","@libsql/client":"^0.15.9","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.3.3","@adaline/openai":"1.5.3","@adaline/vertex":"1.3.3","@azure/identity":"^4.10.2","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.10","@adaline/gateway":"1.5.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.2.3","winston-transport":"^4.9.0","@adaline/anthropic":"1.4.3","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.2.3","@adaline/together-ai":"1.2.3","@types/cache-manager":"^4.0.6","@ibm-cloud/watsonx-ai":"^1.6.8","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.846.0","@aws-sdk/credential-provider-sso":"^3.846.0","@aws-sdk/client-sagemaker-runtime":"^3.846.0","check-dependency-version-consistency":"^5.0.1","@aws-sdk/client-bedrock-agent-runtime":"^3.846.0"},"peerDependencies":{"sharp":"^0.34.3","natural":"^8.1.0","langfuse":"^3.37.3","pdf-parse":"^1.1.1","playwright":"^1.54.1","@adaline/groq":"1.2.1","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.2.1","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@adaline/google":"1.3.0","@adaline/openai":"1.5.0","@adaline/vertex":"1.3.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","@adaline/anthropic":"1.4.0","ibm-cloud-sdk-core":"^5.4.0","google-auth-library":"^9.7.0","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@ibm-cloud/watsonx-ai":"^1.6.7","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.52.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.844.0","@aws-sdk/credential-provider-sso":"^3.844.0","@aws-sdk/client-sagemaker-runtime":"^3.844.0","@aws-sdk/client-bedrock-agent-runtime":"^3.844.0"},"optionalDependencies":{"@swc/core-darwin-x64":"^1.12.14","@biomejs/cli-linux-x64":"2.1.1","@biomejs/cli-win32-x64":"2.1.1","@swc/core-darwin-arm64":"^1.12.14","@biomejs/cli-darwin-x64":"2.1.1","@swc/core-linux-x64-gnu":"^1.12.14","@swc/core-linux-x64-musl":"^1.12.14","@swc/core-win32-x64-msvc":"^1.12.14","@biomejs/cli-darwin-arm64":"2.1.1","@biomejs/cli-linux-x64-musl":"2.1.1","@rollup/rollup-linux-x64-gnu":"^4.45.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.117.1_1752785349368_0.5533449854390102","host":"s3://npm-registry-packages-npm-production"}},"0.117.2":{"name":"promptfoo","version":"0.117.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.117.2","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"5831cdf5b32e17715741cd24e43258332123d9d6","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.117.2.tgz","fileCount":1678,"integrity":"sha512-Wp4GsUoKGAH+NfufSTQHi6H1x82kGfiL147At/6CQ7gi8xLqpElnjxSz3ws5X6rD0IxM0JEWE0Y5xIB9Npx4Mw==","signatures":[{"sig":"MEYCIQCXsTD6OQaxAtgd9hNrU2olMR3W/06NzCA5fh4na6i+MQIhAOgqYNBzfCry2kq3L/U8T8H6+w7RZP2DegF+LsLx8j25","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29173061},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"1fe7320ccbcbe8c4e979d290dad9c14f80af16ec","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"git checkout -- src/generated-constants.ts 2>/dev/null || true","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.5","chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","esbuild":"0.25.5","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.14.8","tsx":"^4.20.3","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.6.1","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.5.3","openai":"^5.9.2","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.11.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.44.3","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.18.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.1.14","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.3","@inquirer/editor":"^4.2.14","@inquirer/select":"^4.2.4","@anthropic-ai/sdk":"^0.57.0","@inquirer/confirm":"^5.1.13","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.1.9","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^1.1.0","@modelcontextprotocol/sdk":"^1.15.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.0.4","knip":"^5.61.3","nock":"^14.0.5","axios":"^1.10.0","madge":"^8.0.0","sharp":"^0.34.3","natural":"^8.1.0","nodemon":"^3.1.10","ts-jest":"^29.4.0","ts-node":"^10.9.2","langfuse":"^3.38.4","prettier":"3.6.2","@swc/core":"^1.12.14","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.3","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.54.1","typescript":"^5.8.3","@types/cors":"^2.8.19","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.24","concurrently":"^9.2.0","@adaline/groq":"1.2.4","@jest/globals":"^30.0.4","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@adaline/azure":"1.2.4","@adaline/types":"1.5.0","@biomejs/biome":"2.1.1","@fal-ai/client":"^1.6.0","@libsql/client":"^0.15.9","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.3.3","@adaline/openai":"1.5.3","@adaline/vertex":"1.3.3","@azure/identity":"^4.10.2","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.10","@adaline/gateway":"1.5.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.2.3","winston-transport":"^4.9.0","@adaline/anthropic":"1.4.3","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.2.3","@adaline/together-ai":"1.2.3","@types/cache-manager":"^4.0.6","@ibm-cloud/watsonx-ai":"^1.6.8","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.846.0","@aws-sdk/credential-provider-sso":"^3.846.0","@aws-sdk/client-sagemaker-runtime":"^3.846.0","check-dependency-version-consistency":"^5.0.1","@aws-sdk/client-bedrock-agent-runtime":"^3.846.0"},"peerDependencies":{"sharp":"^0.34.3","natural":"^8.1.0","langfuse":"^3.37.3","pdf-parse":"^1.1.1","playwright":"^1.54.1","@adaline/groq":"1.2.1","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.2.1","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@adaline/google":"1.3.0","@adaline/openai":"1.5.0","@adaline/vertex":"1.3.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","@adaline/anthropic":"1.4.0","ibm-cloud-sdk-core":"^5.4.0","google-auth-library":"^9.7.0","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@ibm-cloud/watsonx-ai":"^1.6.7","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.52.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.844.0","@aws-sdk/credential-provider-sso":"^3.844.0","@aws-sdk/client-sagemaker-runtime":"^3.844.0","@aws-sdk/client-bedrock-agent-runtime":"^3.844.0"},"optionalDependencies":{"@swc/core-darwin-x64":"^1.12.14","@biomejs/cli-linux-x64":"2.1.1","@biomejs/cli-win32-x64":"2.1.1","@swc/core-darwin-arm64":"^1.12.14","@biomejs/cli-darwin-x64":"2.1.1","@swc/core-linux-x64-gnu":"^1.12.14","@swc/core-linux-x64-musl":"^1.12.14","@swc/core-win32-x64-msvc":"^1.12.14","@biomejs/cli-darwin-arm64":"2.1.1","@biomejs/cli-linux-x64-musl":"2.1.1","@rollup/rollup-linux-x64-gnu":"^4.45.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.117.2_1753371698335_0.944627506627588","host":"s3://npm-registry-packages-npm-production"}},"0.117.3":{"name":"promptfoo","version":"0.117.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.117.3","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"be8d60d663fbd2bb3079f54c92eb7312153806ca","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.117.3.tgz","fileCount":1682,"integrity":"sha512-UvCsxNYAy9xuH0On7L0ky3JQ7Vg4Oz7mEs3PlzFhevrWvmqhn+HeTuHPK3fjDGJUTnWUWcXzVCUFQDhKZibgbQ==","signatures":[{"sig":"MEQCIDFt4DI+2V9Jq2SHVDu5Huy8us1/R31oNDdwvCbFkK5eAiB/KkkDubAtZvSqCZ/tIZWn+Z/WsV8SlIqJyraHMHmQDA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29224436},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"c870aa13dfbe3c1c308cc3f6b1918a8c438ae1a4","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"git checkout -- src/generated-constants.ts 2>/dev/null || true","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.5","chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","esbuild":"0.25.5","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.14.8","tsx":"^4.20.3","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.6.1","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.5.3","openai":"^5.9.2","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.11.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.44.3","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.18.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.1.14","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.3","@inquirer/editor":"^4.2.14","@inquirer/select":"^4.2.4","@anthropic-ai/sdk":"^0.57.0","@inquirer/confirm":"^5.1.13","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.1.9","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^1.1.0","@modelcontextprotocol/sdk":"^1.15.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.0.4","knip":"^5.61.3","nock":"^14.0.5","axios":"^1.10.0","madge":"^8.0.0","sharp":"^0.34.3","natural":"^8.1.0","nodemon":"^3.1.10","ts-jest":"^29.4.0","ts-node":"^10.9.2","langfuse":"^3.38.4","prettier":"3.6.2","@swc/core":"^1.12.14","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.3","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.54.1","typescript":"^5.8.3","@types/cors":"^2.8.19","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.24","concurrently":"^9.2.0","@adaline/groq":"1.2.4","@jest/globals":"^30.0.4","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@adaline/azure":"1.2.4","@adaline/types":"1.5.0","@biomejs/biome":"2.1.1","@fal-ai/client":"^1.6.0","@libsql/client":"^0.15.9","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.3.3","@adaline/openai":"1.5.3","@adaline/vertex":"1.3.3","@azure/identity":"^4.10.2","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.10","@adaline/gateway":"1.5.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.2.3","winston-transport":"^4.9.0","@adaline/anthropic":"1.4.3","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.2.3","@adaline/together-ai":"1.2.3","@types/cache-manager":"^4.0.6","@ibm-cloud/watsonx-ai":"^1.6.8","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.846.0","@aws-sdk/credential-provider-sso":"^3.846.0","@aws-sdk/client-sagemaker-runtime":"^3.846.0","check-dependency-version-consistency":"^5.0.1","@aws-sdk/client-bedrock-agent-runtime":"^3.846.0"},"peerDependencies":{"sharp":"^0.34.3","natural":"^8.1.0","langfuse":"^3.37.3","pdf-parse":"^1.1.1","playwright":"^1.54.1","@adaline/groq":"1.2.1","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.2.1","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@adaline/google":"1.3.0","@adaline/openai":"1.5.0","@adaline/vertex":"1.3.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","@adaline/anthropic":"1.4.0","ibm-cloud-sdk-core":"^5.4.0","google-auth-library":"^9.7.0","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@ibm-cloud/watsonx-ai":"^1.6.7","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.52.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.844.0","@aws-sdk/credential-provider-sso":"^3.844.0","@aws-sdk/client-sagemaker-runtime":"^3.844.0","@aws-sdk/client-bedrock-agent-runtime":"^3.844.0"},"optionalDependencies":{"@swc/core-darwin-x64":"^1.12.14","@biomejs/cli-linux-x64":"2.1.1","@biomejs/cli-win32-x64":"2.1.1","@swc/core-darwin-arm64":"^1.12.14","@biomejs/cli-darwin-x64":"2.1.1","@swc/core-linux-x64-gnu":"^1.12.14","@swc/core-linux-x64-musl":"^1.12.14","@swc/core-win32-x64-msvc":"^1.12.14","@biomejs/cli-darwin-arm64":"2.1.1","@biomejs/cli-linux-x64-musl":"2.1.1","@rollup/rollup-linux-x64-gnu":"^4.45.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.117.3_1753486322770_0.22378516510932922","host":"s3://npm-registry-packages-npm-production"}},"0.117.4":{"name":"promptfoo","version":"0.117.4","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.117.4","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"fe59809f57111361dfcf7534f5a333d1142d6c9c","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.117.4.tgz","fileCount":1778,"integrity":"sha512-HXruMjBcxHZEhCjaWrqx2N4nyy36VhFflYHys3fxqjV0A3jVWzWI7eH+E2LxG5HyQfIJ978cBWfguCcmsUe5cA==","signatures":[{"sig":"MEYCIQCeKhTUWKX/ahrgU5ay5TBxC26o+NQhC9VsQrCnVH4PNAIhAKyPhUfYzcmBdv88M8B6dydFDpcfhiO/13U996ujZ4if","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29524200},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"369f856199a6312febd51bd848c6495764a90e8a","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"git checkout -- src/generated-constants.ts 2>/dev/null || true","db:migrate":"npx tsx src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.5","chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","esbuild":"0.25.5","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.14.8","tsx":"^4.20.3","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","dedent":"^1.6.0","dotenv":"^16.6.1","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.5.3","openai":"^5.9.2","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.11.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","replicate":"^0.34.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.0","drizzle-orm":"^0.44.3","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.18.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.1.14","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.3","@inquirer/editor":"^4.2.14","@inquirer/select":"^4.2.4","@anthropic-ai/sdk":"^0.57.0","@inquirer/confirm":"^5.1.13","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.1.9","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^1.1.0","@modelcontextprotocol/sdk":"^1.15.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.0.4","knip":"^5.61.3","nock":"^14.0.5","axios":"^1.10.0","madge":"^8.0.0","sharp":"^0.34.3","natural":"^8.1.0","nodemon":"^3.1.10","ts-jest":"^29.4.0","ts-node":"^10.9.2","langfuse":"^3.38.4","prettier":"3.6.2","@swc/core":"^1.12.14","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.3","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.54.1","typescript":"^5.8.3","@types/cors":"^2.8.19","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.24","concurrently":"^9.2.0","@adaline/groq":"1.2.4","@jest/globals":"^30.0.4","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@adaline/azure":"1.2.4","@adaline/types":"1.5.0","@biomejs/biome":"2.1.1","@fal-ai/client":"^1.6.0","@libsql/client":"^0.15.9","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.3.3","@adaline/openai":"1.5.3","@adaline/vertex":"1.3.3","@azure/identity":"^4.10.2","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.10","@adaline/gateway":"1.5.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.2.3","winston-transport":"^4.9.0","@adaline/anthropic":"1.4.3","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.0","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.2.3","@adaline/together-ai":"1.2.3","@types/cache-manager":"^4.0.6","@ibm-cloud/watsonx-ai":"^1.6.8","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.846.0","@aws-sdk/credential-provider-sso":"^3.846.0","@aws-sdk/client-sagemaker-runtime":"^3.846.0","check-dependency-version-consistency":"^5.0.1","@aws-sdk/client-bedrock-agent-runtime":"^3.846.0"},"peerDependencies":{"sharp":"^0.34.3","natural":"^8.1.0","langfuse":"^3.37.3","pdf-parse":"^1.1.1","playwright":"^1.54.1","@adaline/groq":"1.2.1","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.2.1","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@adaline/google":"1.3.0","@adaline/openai":"1.5.0","@adaline/vertex":"1.3.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","@adaline/anthropic":"1.4.0","ibm-cloud-sdk-core":"^5.4.0","google-auth-library":"^9.7.0","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@ibm-cloud/watsonx-ai":"^1.6.7","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.52.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.844.0","@aws-sdk/credential-provider-sso":"^3.844.0","@aws-sdk/client-sagemaker-runtime":"^3.844.0","@aws-sdk/client-bedrock-agent-runtime":"^3.844.0"},"optionalDependencies":{"@swc/core-darwin-x64":"^1.12.14","@biomejs/cli-linux-x64":"2.1.1","@biomejs/cli-win32-x64":"2.1.1","@swc/core-darwin-arm64":"^1.12.14","@biomejs/cli-darwin-x64":"2.1.1","@swc/core-linux-x64-gnu":"^1.12.14","@swc/core-linux-x64-musl":"^1.12.14","@swc/core-win32-x64-msvc":"^1.12.14","@biomejs/cli-darwin-arm64":"2.1.1","@biomejs/cli-linux-x64-musl":"2.1.1","@rollup/rollup-linux-x64-gnu":"^4.45.1"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.117.4_1753750971094_0.018393966515371396","host":"s3://npm-registry-packages-npm-production"}},"0.117.5":{"name":"promptfoo","version":"0.117.5","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.117.5","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"af1334b6763133de7c5e76c7e349a58177771bd1","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.117.5.tgz","fileCount":1821,"integrity":"sha512-YjHpfCx7EBQMsdXUDv6R1w/wNQqt6MAwyFvWiQY05JZZX2Nr4MXUrXlz1LZdLEe80fiqUDRVFWYsiMALK1ss0w==","signatures":[{"sig":"MEUCIEHwJJVzSSg7xglkk49YxiHu7/UTAu99gVdERufY36hVAiEAr2LKHKSMFNh9XwmYWNBJfGOWXASbTi4JdKG4zFmqwII=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30275679},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"753e1a7d0b48419c318ffc0398a2b81af5a7ec65","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"git checkout -- src/generated-constants.ts 2>/dev/null || true","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.5","chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","esbuild":"0.25.5","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.3","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.6.0","dotenv":"^16.6.1","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.6.0","openai":"^5.10.2","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.12.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.3","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.18.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.1.15","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.3","@inquirer/editor":"^4.2.15","@inquirer/select":"^4.3.1","@anthropic-ai/sdk":"^0.58.0","@inquirer/confirm":"^5.1.14","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.2.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^1.1.0","@modelcontextprotocol/sdk":"^1.17.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.0.5","knip":"^5.62.0","nock":"^14.0.8","axios":"^1.11.0","madge":"^8.0.0","sharp":"^0.34.3","natural":"^8.1.0","nodemon":"^3.1.10","ts-jest":"^29.4.1","ts-node":"^10.9.2","langfuse":"^3.38.4","prettier":"3.6.2","@swc/core":"^1.13.3","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.54.2","typescript":"^5.9.2","@types/cors":"^2.8.19","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.0","@adaline/groq":"1.4.0","@jest/globals":"^30.0.5","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@adaline/azure":"1.2.4","@adaline/types":"1.5.0","@biomejs/biome":"2.1.3","@fal-ai/client":"^1.6.1","@libsql/client":"^0.15.10","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.4.0","@adaline/openai":"1.5.3","@adaline/vertex":"1.3.4","@azure/identity":"^4.10.2","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.10","@adaline/gateway":"1.6.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.2.3","winston-transport":"^4.9.0","@adaline/anthropic":"1.4.3","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.2","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.2.3","@adaline/together-ai":"1.2.3","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.27","@ibm-cloud/watsonx-ai":"^1.6.10","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.859.0","@aws-sdk/credential-provider-sso":"^3.859.0","@aws-sdk/client-sagemaker-runtime":"^3.859.0","check-dependency-version-consistency":"^5.0.1","@aws-sdk/client-bedrock-agent-runtime":"^3.859.0"},"peerDependencies":{"sharp":"^0.34.3","natural":"^8.1.0","langfuse":"^3.37.3","pdf-parse":"^1.1.1","playwright":"^1.54.2","@adaline/groq":"1.2.1","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.2.1","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@adaline/google":"1.3.0","@adaline/openai":"1.5.0","@adaline/vertex":"1.3.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","@adaline/anthropic":"1.4.0","ibm-cloud-sdk-core":"^5.4.0","google-auth-library":"^9.7.0","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@ibm-cloud/watsonx-ai":"^1.6.7","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.54.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.844.0","@aws-sdk/credential-provider-sso":"^3.844.0","@aws-sdk/client-sagemaker-runtime":"^3.844.0","@aws-sdk/client-bedrock-agent-runtime":"^3.844.0"},"optionalDependencies":{"@swc/core-darwin-x64":"^1.13.3","@biomejs/cli-linux-x64":"2.1.3","@biomejs/cli-win32-x64":"2.1.3","@swc/core-darwin-arm64":"^1.13.3","@biomejs/cli-darwin-x64":"2.1.3","@swc/core-linux-x64-gnu":"^1.13.3","@swc/core-linux-x64-musl":"^1.13.3","@swc/core-win32-x64-msvc":"^1.13.3","@biomejs/cli-darwin-arm64":"2.1.3","@biomejs/cli-linux-x64-musl":"2.1.3","@rollup/rollup-linux-x64-gnu":"^4.46.2"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.117.5_1754620742963_0.5670283305805341","host":"s3://npm-registry-packages-npm-production"}},"0.117.6":{"name":"promptfoo","version":"0.117.6","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.117.6","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"5b9e3fea654ada2ad4fb43b97dcd66bd9cacd924","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.117.6.tgz","fileCount":1846,"integrity":"sha512-paJJ9MtGBVSNpEEu3M7TKLHTlEBjwZi08oiD2oMjCej8eCF46vE27jcC0Ifq6vTRlXw7pJ9fP4in9JYQoy18zA==","signatures":[{"sig":"MEUCIQDR9sEDb8YEVCcMINu8VeuRT0PTreSZuzDufQIBb84iqgIgGRCcMZ1VUa+b3fxTTP1sB2J/pu11tlguSrE2i1Gq0NM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30432410},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"2bbf5a9e39ec107f5af69118da484eb295667fb1","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.5","chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","esbuild":"0.25.5","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.3","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.6.0","dotenv":"^16.6.1","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.6.0","openai":"^5.10.2","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.12.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.3","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.18.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.1.15","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.3","@inquirer/editor":"^4.2.15","@inquirer/select":"^4.3.1","@anthropic-ai/sdk":"^0.60.0","@inquirer/confirm":"^5.1.14","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.2.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^1.1.0","@modelcontextprotocol/sdk":"^1.17.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.0.5","knip":"^5.62.0","nock":"^14.0.8","axios":"^1.11.0","madge":"^8.0.0","sharp":"^0.34.3","natural":"^8.1.0","nodemon":"^3.1.10","ts-jest":"^29.4.1","ts-node":"^10.9.2","langfuse":"^3.38.4","prettier":"3.6.2","@swc/core":"^1.13.3","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.54.2","typescript":"^5.9.2","@types/cors":"^2.8.19","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.0","@adaline/groq":"1.4.0","@jest/globals":"^30.0.5","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@adaline/azure":"1.2.4","@adaline/types":"1.5.0","@biomejs/biome":"2.1.3","@fal-ai/client":"^1.6.1","@libsql/client":"^0.15.10","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.4.0","@adaline/openai":"1.5.3","@adaline/vertex":"1.3.4","@azure/identity":"^4.10.2","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.10","@adaline/gateway":"1.6.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.2.3","winston-transport":"^4.9.0","@adaline/anthropic":"1.4.3","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.2","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.2.3","@adaline/together-ai":"1.2.3","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.27","@ibm-cloud/watsonx-ai":"^1.6.10","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.859.0","@aws-sdk/credential-provider-sso":"^3.859.0","@aws-sdk/client-sagemaker-runtime":"^3.859.0","check-dependency-version-consistency":"^5.0.1","@aws-sdk/client-bedrock-agent-runtime":"^3.859.0"},"peerDependencies":{"sharp":"^0.34.3","natural":"^8.1.0","langfuse":"^3.37.3","pdf-parse":"^1.1.1","playwright":"^1.54.2","@adaline/groq":"1.2.1","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.2.1","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@adaline/google":"1.3.0","@adaline/openai":"1.5.0","@adaline/vertex":"1.3.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","@adaline/anthropic":"1.4.0","ibm-cloud-sdk-core":"^5.4.0","google-auth-library":"^9.7.0","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@ibm-cloud/watsonx-ai":"^1.6.7","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.54.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.844.0","@aws-sdk/credential-provider-sso":"^3.844.0","@aws-sdk/client-sagemaker-runtime":"^3.844.0","@aws-sdk/client-bedrock-agent-runtime":"^3.844.0"},"optionalDependencies":{"@swc/core-darwin-x64":"^1.13.3","@biomejs/cli-linux-x64":"2.1.3","@biomejs/cli-win32-x64":"2.1.3","@swc/core-darwin-arm64":"^1.13.3","@biomejs/cli-darwin-x64":"2.1.3","@swc/core-linux-x64-gnu":"^1.13.3","@swc/core-linux-x64-musl":"^1.13.3","@swc/core-win32-x64-msvc":"^1.13.3","@biomejs/cli-darwin-arm64":"2.1.3","@biomejs/cli-linux-x64-musl":"2.1.3","@rollup/rollup-linux-x64-gnu":"^4.46.2"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.117.6_1755533010994_0.361678831582108","host":"s3://npm-registry-packages-npm-production"}},"0.117.7":{"name":"promptfoo","version":"0.117.7","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.117.7","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"b575684e345c72ad93a07d1dbd907fb6480a4259","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.117.7.tgz","fileCount":1850,"integrity":"sha512-9awq91sESZsx17cFCaJltpB1Y2hP9ysvxNvoHXb3LcTtAseboXZ0MDXpw/PaCEQzb5MpNtsMu/LZX+aTTzK3OA==","signatures":[{"sig":"MEYCIQCvBk6yBc+l5k/7KdX7JFpjyv1ZCWUET/qeHU/hmC5CcgIhAIZF8L00U54Tk5oNd2lfiQw+dxoPHzowFYGt9v9hlIhk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30449240},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"c23cb8a24f603a3c5d27ef1c4c31f730c0b14d02","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.5","chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","esbuild":"0.25.5","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.3","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.6.0","dotenv":"^16.6.1","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.6.0","openai":"^5.10.2","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.12.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.3","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.18.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.1.15","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.3","@inquirer/editor":"^4.2.15","@inquirer/select":"^4.3.1","@anthropic-ai/sdk":"^0.60.0","@inquirer/confirm":"^5.1.14","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.2.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^1.1.0","@modelcontextprotocol/sdk":"^1.17.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.0.5","knip":"^5.62.0","nock":"^14.0.8","axios":"^1.11.0","madge":"^8.0.0","sharp":"^0.34.3","natural":"^8.1.0","nodemon":"^3.1.10","ts-jest":"^29.4.1","ts-node":"^10.9.2","langfuse":"^3.38.4","prettier":"3.6.2","@swc/core":"^1.13.3","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.54.2","typescript":"^5.9.2","@types/cors":"^2.8.19","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.0","@adaline/groq":"1.4.0","@jest/globals":"^30.0.5","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@adaline/azure":"1.2.4","@adaline/types":"1.5.0","@biomejs/biome":"2.1.3","@fal-ai/client":"^1.6.1","@libsql/client":"^0.15.10","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.4.0","@adaline/openai":"1.5.3","@adaline/vertex":"1.3.4","@azure/identity":"^4.10.2","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.10","@adaline/gateway":"1.6.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.2.3","winston-transport":"^4.9.0","@adaline/anthropic":"1.4.3","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.2","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.2.3","@adaline/together-ai":"1.2.3","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.27","@ibm-cloud/watsonx-ai":"^1.6.10","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.859.0","@aws-sdk/credential-provider-sso":"^3.859.0","@aws-sdk/client-sagemaker-runtime":"^3.859.0","check-dependency-version-consistency":"^5.0.1","@aws-sdk/client-bedrock-agent-runtime":"^3.859.0"},"peerDependencies":{"sharp":"^0.34.3","natural":"^8.1.0","langfuse":"^3.37.3","pdf-parse":"^1.1.1","playwright":"^1.54.2","@adaline/groq":"1.2.1","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.2.1","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@adaline/google":"1.3.0","@adaline/openai":"1.5.0","@adaline/vertex":"1.3.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","@adaline/anthropic":"1.4.0","ibm-cloud-sdk-core":"^5.4.0","google-auth-library":"^9.7.0","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@ibm-cloud/watsonx-ai":"^1.6.7","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.54.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.844.0","@aws-sdk/credential-provider-sso":"^3.844.0","@aws-sdk/client-sagemaker-runtime":"^3.844.0","@aws-sdk/client-bedrock-agent-runtime":"^3.844.0"},"optionalDependencies":{"@swc/core-darwin-x64":"^1.13.3","@biomejs/cli-linux-x64":"2.1.3","@biomejs/cli-win32-x64":"2.1.3","@swc/core-darwin-arm64":"^1.13.3","@biomejs/cli-darwin-x64":"2.1.3","@swc/core-linux-x64-gnu":"^1.13.3","@swc/core-linux-x64-musl":"^1.13.3","@swc/core-win32-x64-msvc":"^1.13.3","@biomejs/cli-darwin-arm64":"2.1.3","@biomejs/cli-linux-x64-musl":"2.1.3","@rollup/rollup-linux-x64-gnu":"^4.46.2"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.117.7_1755637422832_0.25659390894737055","host":"s3://npm-registry-packages-npm-production"}},"0.117.8":{"name":"promptfoo","version":"0.117.8","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.117.8","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"0f5fcfcfa1ec73690f12c8ab96f44a3bc0fceea0","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.117.8.tgz","fileCount":1850,"integrity":"sha512-F/UYf5pE5vXN3GMF5FDr+Z6XVxuEVedI//MoPQvp0v4+wcmgiNPEVStNRh9EypNrIvYp8FqfQ90IM3uRMNrdNw==","signatures":[{"sig":"MEUCIQCoYQWc9ha78eY8ezxNbaDXpPhj1oZ1AKhNXwI7AFwx8wIgKnZ9dQE8Nyw7LDVKkXq5GbowIIw2njNCi48VZ1SOVRo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30459769},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"5fc8793c7d5efce7673372941eb26ab398d762fc","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.5","chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","esbuild":"0.25.5","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.3","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.6.0","dotenv":"^16.6.1","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.6.0","openai":"^5.10.2","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.12.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","lru-cache":"^11.0.0","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.3","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.18.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.1.15","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.3","@inquirer/editor":"^4.2.15","@inquirer/select":"^4.3.1","@anthropic-ai/sdk":"^0.60.0","@inquirer/confirm":"^5.1.14","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.2.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^1.1.0","@modelcontextprotocol/sdk":"^1.17.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.0.5","knip":"^5.62.0","nock":"^14.0.8","axios":"^1.11.0","madge":"^8.0.0","sharp":"^0.34.3","natural":"^8.1.0","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.4","prettier":"3.6.2","@swc/core":"^1.13.3","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.54.2","typescript":"^5.9.2","@types/cors":"^2.8.19","@types/jest":"^29.5.14","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.0","@adaline/groq":"1.4.0","@jest/globals":"^30.0.5","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@adaline/azure":"1.2.4","@adaline/types":"1.5.0","@aws-sdk/types":"^3.844.0","@biomejs/biome":"2.1.3","@fal-ai/client":"^1.6.1","@libsql/client":"^0.15.10","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.4.0","@adaline/openai":"1.5.3","@adaline/vertex":"1.3.4","@azure/identity":"^4.10.2","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.10","@adaline/gateway":"1.6.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.2.3","winston-transport":"^4.9.0","@adaline/anthropic":"1.4.3","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.2","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.2.3","@adaline/together-ai":"1.2.3","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.27","@ibm-cloud/watsonx-ai":"^1.6.10","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.859.0","@aws-sdk/credential-provider-sso":"^3.859.0","@aws-sdk/client-sagemaker-runtime":"^3.859.0","@aws-sdk/client-bedrock-agent-runtime":"^3.859.0"},"peerDependencies":{"sharp":"^0.34.3","natural":"^8.1.0","langfuse":"^3.37.3","pdf-parse":"^1.1.1","playwright":"^1.54.2","@adaline/groq":"1.2.1","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.2.1","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@adaline/google":"1.3.0","@adaline/openai":"1.5.0","@adaline/vertex":"1.3.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","@adaline/anthropic":"1.4.0","ibm-cloud-sdk-core":"^5.4.0","google-auth-library":"^9.7.0","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@ibm-cloud/watsonx-ai":"^1.6.7","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.54.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.844.0","@aws-sdk/credential-provider-sso":"^3.844.0","@aws-sdk/client-sagemaker-runtime":"^3.844.0","@aws-sdk/client-bedrock-agent-runtime":"^3.844.0"},"optionalDependencies":{"@swc/core-darwin-x64":"^1.13.3","@biomejs/cli-linux-x64":"2.1.3","@biomejs/cli-win32-x64":"2.1.3","@swc/core-darwin-arm64":"^1.13.3","@biomejs/cli-darwin-x64":"2.1.3","@swc/core-linux-x64-gnu":"^1.13.3","@swc/core-linux-x64-musl":"^1.13.3","@swc/core-win32-x64-msvc":"^1.13.3","@biomejs/cli-darwin-arm64":"2.1.3","@biomejs/cli-linux-x64-musl":"2.1.3","@rollup/rollup-linux-x64-gnu":"^4.46.2"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.117.8_1755666548889_0.01513324197195387","host":"s3://npm-registry-packages-npm-production"}},"0.117.9":{"name":"promptfoo","version":"0.117.9","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.117.9","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"c271ea626f099ed505ca3562e949d4d16eaee1f2","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.117.9.tgz","fileCount":1860,"integrity":"sha512-Z6BIQfh5SYa3XppS4jwuD6ImJ+9awKebs3aeV8+49Nv7trM+hmgSYtrcE+MTbFdspBOqcYuX6D5gJVOzn/vWgA==","signatures":[{"sig":"MEUCIQDALYndOfSltSNaxs9bteMGJwJwjjHQvDIgI5BXlJTBPwIgIKrOy4NqqIt0gYYBgMOR7D8UjZna4rF90SBXl54mRQ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30644926},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"2b8d95ca6ffcfaa0dc47669326b6edc267ba4009","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.5","chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","esbuild":"0.25.5","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.3","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.6.0","dotenv":"^16.6.1","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.6.0","openai":"^5.10.2","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.12.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","lru-cache":"^11.0.0","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.3","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.18.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.1.15","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.3","@inquirer/editor":"^4.2.15","@inquirer/select":"^4.3.1","@anthropic-ai/sdk":"^0.60.0","@inquirer/confirm":"^5.1.14","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.2.0","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^1.1.0","@modelcontextprotocol/sdk":"^1.17.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.0.5","knip":"^5.62.0","nock":"^14.0.8","axios":"^1.11.0","madge":"^8.0.0","sharp":"^0.34.3","natural":"^8.1.0","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.4","prettier":"3.6.2","@swc/core":"^1.13.3","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.54.2","typescript":"^5.9.2","@types/cors":"^2.8.19","@types/jest":"^29.5.14","@types/node":"^24.3.0","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.0","@adaline/groq":"1.4.0","@jest/globals":"^30.0.5","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@adaline/azure":"1.2.4","@adaline/types":"1.5.0","@aws-sdk/types":"^3.844.0","@biomejs/biome":"2.1.3","@fal-ai/client":"^1.6.1","@libsql/client":"^0.15.10","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.4.0","@adaline/openai":"1.5.3","@adaline/vertex":"1.3.4","@azure/identity":"^4.10.2","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.10","@adaline/gateway":"1.6.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.2.3","winston-transport":"^4.9.0","@adaline/anthropic":"1.4.3","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.2","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.2.3","@adaline/together-ai":"1.2.3","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.27","@ibm-cloud/watsonx-ai":"^1.6.10","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.859.0","@aws-sdk/credential-provider-sso":"^3.859.0","@aws-sdk/client-sagemaker-runtime":"^3.859.0","@aws-sdk/client-bedrock-agent-runtime":"^3.859.0"},"peerDependencies":{"sharp":"^0.34.3","natural":"^8.1.0","langfuse":"^3.37.3","pdf-parse":"^1.1.1","playwright":"^1.54.2","@adaline/groq":"1.2.1","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.2.1","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@adaline/google":"1.3.0","@adaline/openai":"1.5.0","@adaline/vertex":"1.3.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","@adaline/anthropic":"1.4.0","ibm-cloud-sdk-core":"^5.4.0","google-auth-library":"^9.7.0","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@ibm-cloud/watsonx-ai":"^1.6.7","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.54.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.844.0","@aws-sdk/credential-provider-sso":"^3.844.0","@aws-sdk/client-sagemaker-runtime":"^3.844.0","@aws-sdk/client-bedrock-agent-runtime":"^3.844.0"},"optionalDependencies":{"@swc/core-darwin-x64":"^1.13.3","@biomejs/cli-linux-x64":"2.1.3","@biomejs/cli-win32-x64":"2.1.3","@swc/core-darwin-arm64":"^1.13.3","@biomejs/cli-darwin-x64":"2.1.3","@swc/core-linux-x64-gnu":"^1.13.3","@swc/core-linux-x64-musl":"^1.13.3","@swc/core-win32-x64-msvc":"^1.13.3","@biomejs/cli-darwin-arm64":"2.1.3","@biomejs/cli-linux-x64-musl":"2.1.3","@rollup/rollup-linux-x64-gnu":"^4.46.2"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.117.9_1755920392469_0.6720718663891194","host":"s3://npm-registry-packages-npm-production"}},"0.117.10":{"name":"promptfoo","version":"0.117.10","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.117.10","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"478de6c59bda316df645a97bfa0fc062998b0a71","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.117.10.tgz","fileCount":1860,"integrity":"sha512-XEGamISZOIfGgwos0HepoK/n59X138Sa0AwpTqYckxoc+P4sDed/P82bXXnsE3zAsVstehu2zuGS6KZkZvmNPQ==","signatures":[{"sig":"MEUCIQDX1+u9aA6MgyIkWQPM5Nufa5okN28jdLRKzWEvzizpiAIgJqAdcaG35HAttGxsP8ycuzEWuzkD45UK+/CsOqTbAXo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30804254},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"feaa4a8f9ab6f529bd0dcdcadc89ba968a34f00f","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.5","chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.4","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.6.0","dotenv":"^16.6.1","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.6.0","openai":"^5.15.0","opener":"^1.5.2","semver":"^7.7.2","undici":"^6.21.3","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","lru-cache":"^11.1.0","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.4","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.18.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.1.15","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.3","@inquirer/editor":"^4.2.17","@inquirer/select":"^4.3.1","@anthropic-ai/sdk":"^0.60.0","@inquirer/confirm":"^5.1.15","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.2.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^1.1.0","@modelcontextprotocol/sdk":"^1.17.4","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.0.5","knip":"^5.63.0","nock":"^14.0.10","axios":"^1.11.0","madge":"^8.0.0","sharp":"^0.34.3","natural":"^8.1.0","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.4","prettier":"3.6.2","@swc/core":"^1.13.4","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.55.0","typescript":"^5.9.2","@types/cors":"^2.8.19","@types/jest":"^29.5.14","@types/node":"^24.3.0","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.0","@adaline/groq":"1.7.0","@jest/globals":"^30.0.5","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@adaline/azure":"1.5.0","@adaline/types":"1.8.0","@aws-sdk/types":"^3.862.0","@biomejs/biome":"2.2.2","@fal-ai/client":"^1.6.2","@libsql/client":"^0.15.12","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.7.0","@adaline/openai":"1.8.0","@adaline/vertex":"1.5.0","@azure/identity":"^4.11.2","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.11","@adaline/gateway":"1.8.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.4.0","winston-transport":"^4.9.0","@adaline/anthropic":"1.6.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.2","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.4.0","@adaline/together-ai":"1.4.0","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.27","@ibm-cloud/watsonx-ai":"^1.6.10","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.873.0","@aws-sdk/credential-provider-sso":"^3.873.0","@aws-sdk/client-sagemaker-runtime":"^3.873.0","@aws-sdk/client-bedrock-agent-runtime":"^3.873.0"},"peerDependencies":{"sharp":"^0.34.3","natural":"^8.1.0","langfuse":"^3.37.3","pdf-parse":"^1.1.1","playwright":"^1.54.2","@adaline/groq":"1.2.1","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.2.1","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@adaline/google":"1.3.0","@adaline/openai":"1.5.0","@adaline/vertex":"1.3.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","@adaline/anthropic":"1.4.0","ibm-cloud-sdk-core":"^5.4.0","google-auth-library":"^9.7.0","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@ibm-cloud/watsonx-ai":"^1.6.7","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.54.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.844.0","@aws-sdk/credential-provider-sso":"^3.844.0","@aws-sdk/client-sagemaker-runtime":"^3.844.0","@aws-sdk/client-bedrock-agent-runtime":"^3.844.0"},"optionalDependencies":{"@swc/core-darwin-x64":"^1.13.4","@biomejs/cli-linux-x64":"2.2.2","@biomejs/cli-win32-x64":"2.2.2","@swc/core-darwin-arm64":"^1.13.4","@biomejs/cli-darwin-x64":"2.2.2","@swc/core-linux-x64-gnu":"^1.13.4","@swc/core-linux-x64-musl":"^1.13.4","@swc/core-win32-x64-msvc":"^1.13.4","@biomejs/cli-darwin-arm64":"2.2.2","@biomejs/cli-linux-x64-musl":"2.2.2","@rollup/rollup-linux-x64-gnu":"^4.48.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.117.10_1756156958355_0.0717425010872832","host":"s3://npm-registry-packages-npm-production"}},"0.117.11":{"name":"promptfoo","version":"0.117.11","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.117.11","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"8e57e221a7835364bf96e4cacdacddf1feda97dd","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.117.11.tgz","fileCount":1864,"integrity":"sha512-qpPNU6Jnmm2m7jkbgdwnBzrle0nvlsfNGByfG8AIB+4gK6Cw9Ry63o3Tt3o7w2HizhbmP6YUinYINAnSdSuqjA==","signatures":[{"sig":"MEUCIC7B0mBgtswRbBrc27Y2jY4YJIc7hOG6FBGqvy16dweFAiEA5ijjFUHMx7HyzuhXPa/APbr5puZARqIT8JGMyyQ5exk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30859447},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"d6c3ba5596bd3c0ae40e2d0b2f37638ffd5f8b7e","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.5","chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.4","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.6.0","dotenv":"^16.6.1","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.6.0","openai":"^5.15.0","opener":"^1.5.2","semver":"^7.7.2","undici":"^6.21.3","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","lru-cache":"^11.1.0","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.4","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.18.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.1.15","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.3","@inquirer/editor":"^4.2.17","@inquirer/select":"^4.3.1","@anthropic-ai/sdk":"^0.60.0","@inquirer/confirm":"^5.1.15","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.2.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^1.1.0","@modelcontextprotocol/sdk":"^1.17.4","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.0.5","knip":"^5.63.0","nock":"^14.0.10","axios":"^1.11.0","madge":"^8.0.0","sharp":"^0.34.3","natural":"^8.1.0","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.4","prettier":"3.6.2","@swc/core":"^1.13.4","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.55.0","typescript":"^5.9.2","@types/cors":"^2.8.19","@types/jest":"^29.5.14","@types/node":"^24.3.0","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.0","@adaline/groq":"1.7.0","@jest/globals":"^30.0.5","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@adaline/azure":"1.5.0","@adaline/types":"1.8.0","@aws-sdk/types":"^3.862.0","@biomejs/biome":"2.2.2","@fal-ai/client":"^1.6.2","@libsql/client":"^0.15.12","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.7.0","@adaline/openai":"1.8.0","@adaline/vertex":"1.5.0","@azure/identity":"^4.11.2","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.11","@adaline/gateway":"1.8.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.4.0","winston-transport":"^4.9.0","@adaline/anthropic":"1.6.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.2","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.4.0","@adaline/together-ai":"1.4.0","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.27","@ibm-cloud/watsonx-ai":"^1.6.10","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.873.0","@aws-sdk/credential-provider-sso":"^3.873.0","@aws-sdk/client-sagemaker-runtime":"^3.873.0","@aws-sdk/client-bedrock-agent-runtime":"^3.873.0"},"peerDependencies":{"sharp":"^0.34.3","natural":"^8.1.0","langfuse":"^3.37.3","pdf-parse":"^1.1.1","playwright":"^1.54.2","@adaline/groq":"1.2.1","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.2.1","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@adaline/google":"1.3.0","@adaline/openai":"1.5.0","@adaline/vertex":"1.3.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","@adaline/anthropic":"1.4.0","ibm-cloud-sdk-core":"^5.4.0","google-auth-library":"^9.7.0","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@ibm-cloud/watsonx-ai":"^1.6.7","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.54.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.844.0","@aws-sdk/credential-provider-sso":"^3.844.0","@aws-sdk/client-sagemaker-runtime":"^3.844.0","@aws-sdk/client-bedrock-agent-runtime":"^3.844.0"},"optionalDependencies":{"@swc/core-darwin-x64":"^1.13.4","@biomejs/cli-linux-x64":"2.2.2","@biomejs/cli-win32-x64":"2.2.2","@swc/core-darwin-arm64":"^1.13.4","@biomejs/cli-darwin-x64":"2.2.2","@swc/core-linux-x64-gnu":"^1.13.4","@swc/core-linux-x64-musl":"^1.13.4","@swc/core-win32-x64-msvc":"^1.13.4","@biomejs/cli-darwin-arm64":"2.2.2","@biomejs/cli-linux-x64-musl":"2.2.2","@rollup/rollup-linux-x64-gnu":"^4.48.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.117.11_1756335843767_0.7827683435916304","host":"s3://npm-registry-packages-npm-production"}},"0.118.0":{"name":"promptfoo","version":"0.118.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.118.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"0d63b28a7149c3028078a6c420689d7188370c0a","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.118.0.tgz","fileCount":1864,"integrity":"sha512-TK9PCVTdZ93UFuhvZ3CrhvXTnXUpUxHtooT234xEuQ+TVK3f/G82JW30/f5ZHSbreSUpPIboqA1636h3VwZSpA==","signatures":[{"sig":"MEUCIFdLbCWHdygqUU/yD/ba/OCuwum9dYOiR78/7dnp86EKAiEAgmXEV5qkGZiR4malhxdNWkfi3LtKXc3R7tocHHA0Go8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30875927},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"54ac8e30c04fde81371d4bdf48a7b79a9e92a7a8","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.5","chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.4","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.6.0","dotenv":"^16.6.1","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.6.0","openai":"^5.15.0","opener":"^1.5.2","semver":"^7.7.2","undici":"^6.21.3","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","lru-cache":"^11.1.0","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.4","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.18.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.1.15","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.3","@inquirer/editor":"^4.2.17","@inquirer/select":"^4.3.1","@anthropic-ai/sdk":"^0.60.0","@inquirer/confirm":"^5.1.15","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.2.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^1.1.0","@modelcontextprotocol/sdk":"^1.17.4","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.0.5","knip":"^5.63.0","nock":"^14.0.10","axios":"^1.11.0","madge":"^8.0.0","sharp":"^0.34.3","natural":"^8.1.0","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.4","prettier":"3.6.2","@swc/core":"^1.13.4","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.55.0","typescript":"^5.9.2","@types/cors":"^2.8.19","@types/jest":"^29.5.14","@types/node":"^24.3.0","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.0","@adaline/groq":"1.7.0","@jest/globals":"^30.0.5","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@adaline/azure":"1.5.0","@adaline/types":"1.8.0","@aws-sdk/types":"^3.862.0","@biomejs/biome":"2.2.2","@fal-ai/client":"^1.6.2","@libsql/client":"^0.15.12","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.7.0","@adaline/openai":"1.8.0","@adaline/vertex":"1.5.0","@azure/identity":"^4.11.2","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.11","@adaline/gateway":"1.8.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.4.0","winston-transport":"^4.9.0","@adaline/anthropic":"1.6.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.2","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.4.0","@adaline/together-ai":"1.4.0","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.27","@ibm-cloud/watsonx-ai":"^1.6.10","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.873.0","@aws-sdk/credential-provider-sso":"^3.873.0","@aws-sdk/client-sagemaker-runtime":"^3.873.0","@aws-sdk/client-bedrock-agent-runtime":"^3.873.0"},"peerDependencies":{"sharp":"^0.34.3","natural":"^8.1.0","langfuse":"^3.37.3","pdf-parse":"^1.1.1","playwright":"^1.54.2","@adaline/groq":"1.2.1","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.2.1","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@adaline/google":"1.3.0","@adaline/openai":"1.5.0","@adaline/vertex":"1.3.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","@adaline/anthropic":"1.4.0","ibm-cloud-sdk-core":"^5.4.0","google-auth-library":"^9.7.0","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@ibm-cloud/watsonx-ai":"^1.6.7","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.54.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.844.0","@aws-sdk/credential-provider-sso":"^3.844.0","@aws-sdk/client-sagemaker-runtime":"^3.844.0","@aws-sdk/client-bedrock-agent-runtime":"^3.844.0"},"optionalDependencies":{"@swc/core-darwin-x64":"^1.13.4","@biomejs/cli-linux-x64":"2.2.2","@biomejs/cli-win32-x64":"2.2.2","@swc/core-darwin-arm64":"^1.13.4","@biomejs/cli-darwin-x64":"2.2.2","@swc/core-linux-x64-gnu":"^1.13.4","@swc/core-linux-x64-musl":"^1.13.4","@swc/core-win32-x64-msvc":"^1.13.4","@biomejs/cli-darwin-arm64":"2.2.2","@biomejs/cli-linux-x64-musl":"2.2.2","@rollup/rollup-linux-x64-gnu":"^4.48.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.118.0_1756410799348_0.7280247289830912","host":"s3://npm-registry-packages-npm-production"}},"0.118.1":{"name":"promptfoo","version":"0.118.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.118.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"00ef5918ac5913fb5e10c6df5562a4e577887b21","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.118.1.tgz","fileCount":1864,"integrity":"sha512-MDPCuEthgICXVQq7XLkTL7Tby5QmRZzrzl1dAmE7w0WWdEXQ6vms0jDHYEjMNT3YlKe6EtQwU8EtPgySWXU7yQ==","signatures":[{"sig":"MEUCIQCSUotLaaS9JdPAlizvkf7jGMjUk6pXpNZfzHN4WHmF1wIgILjxaMRL/xR2CpurETtiPHs/13PN2xm5mX7Cf1xbBzc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30902694},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"6c7f33d708eb67895d1fa0439fc751806db3b732","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.5","chokidar":"4.0.3","whatwg-url":"14.1.0"},"uri-js":"npm:uri-js-replace","esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.1.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"10.9.2","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"22.13.1","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.4","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.6.0","dotenv":"^16.6.1","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.6.0","openai":"^5.15.0","opener":"^1.5.2","semver":"^7.7.2","undici":"^6.21.3","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^12.1.0","csv-parse":"^5.6.0","lru-cache":"^11.1.0","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.4","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.18.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.1.15","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^4.5.3","@inquirer/editor":"^4.2.17","@inquirer/select":"^4.3.1","@anthropic-ai/sdk":"^0.60.0","@inquirer/confirm":"^5.1.15","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.2.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^1.1.0","@modelcontextprotocol/sdk":"^1.17.4","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.0.5","knip":"^5.63.0","nock":"^14.0.10","axios":"^1.11.0","madge":"^8.0.0","sharp":"^0.34.3","natural":"^8.1.0","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.4","prettier":"3.6.2","@swc/core":"^1.13.4","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.55.0","typescript":"^5.9.2","@types/cors":"^2.8.19","@types/jest":"^29.5.14","@types/node":"^24.3.0","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.0","@adaline/groq":"1.7.0","@jest/globals":"^30.0.5","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@adaline/azure":"1.5.0","@adaline/types":"1.8.0","@aws-sdk/types":"^3.862.0","@biomejs/biome":"2.2.2","@fal-ai/client":"^1.6.2","@libsql/client":"^0.15.12","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.7.0","@adaline/openai":"1.8.0","@adaline/vertex":"1.5.0","@azure/identity":"^4.11.2","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.11","@adaline/gateway":"1.8.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.4.0","winston-transport":"^4.9.0","@adaline/anthropic":"1.6.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.2","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.4.0","@adaline/together-ai":"1.4.0","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.27","@ibm-cloud/watsonx-ai":"^1.6.10","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.873.0","@aws-sdk/credential-provider-sso":"^3.873.0","@aws-sdk/client-sagemaker-runtime":"^3.873.0","@aws-sdk/client-bedrock-agent-runtime":"^3.873.0"},"peerDependencies":{"sharp":"^0.34.3","natural":"^8.1.0","langfuse":"^3.37.3","pdf-parse":"^1.1.1","playwright":"^1.54.2","@adaline/groq":"1.2.1","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.2.1","@adaline/types":"1.2.0","@fal-ai/client":"^1.5.0","@adaline/google":"1.3.0","@adaline/openai":"1.5.0","@adaline/vertex":"1.3.0","@azure/identity":"^4.10.0","node-sql-parser":"^5.3.9","@adaline/gateway":"1.2.0","playwright-extra":"^4.3.6","@adaline/provider":"1.2.0","@adaline/anthropic":"1.4.0","ibm-cloud-sdk-core":"^5.4.0","google-auth-library":"^9.7.0","@adaline/open-router":"1.2.0","@adaline/together-ai":"1.2.0","@ibm-cloud/watsonx-ai":"^1.6.7","@azure/openai-assistants":"^1.0.0-beta.5","@smithy/node-http-handler":"^4.0.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.54.2","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.844.0","@aws-sdk/credential-provider-sso":"^3.844.0","@aws-sdk/client-sagemaker-runtime":"^3.844.0","@aws-sdk/client-bedrock-agent-runtime":"^3.844.0"},"optionalDependencies":{"@swc/core-darwin-x64":"^1.13.4","@biomejs/cli-linux-x64":"2.2.2","@biomejs/cli-win32-x64":"2.2.2","@swc/core-darwin-arm64":"^1.13.4","@biomejs/cli-darwin-x64":"2.2.2","@swc/core-linux-x64-gnu":"^1.13.4","@swc/core-linux-x64-musl":"^1.13.4","@swc/core-win32-x64-msvc":"^1.13.4","@biomejs/cli-darwin-arm64":"2.2.2","@biomejs/cli-linux-x64-musl":"2.2.2","@rollup/rollup-linux-x64-gnu":"^4.48.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.118.1_1756496526635_0.5799728976968206","host":"s3://npm-registry-packages-npm-production"}},"0.118.2":{"name":"promptfoo","version":"0.118.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.118.2","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"673b9d60f7dc45ee85b96db3a191ce16a249b15f","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.118.2.tgz","fileCount":1868,"integrity":"sha512-Wfo7ytT3MzmQ8TpLviTQXiW6LSaotRXJkQKDD9oBi2i7hN1NAMKv8F1LeAxT2p8g78MvoRW3SW690kHxrwBdoA==","signatures":[{"sig":"MEUCIFSONlzHGxvR7Cgz0gHI1rz61F6ORmyaOD5FKYideta5AiEAxCioYZKlINF3r5RvpEaIDHNAywTAweDTVAQ7GBsYG9w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30924218},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"2119831e40b5b052490925353b60fedc2f9837e4","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.2.0"},"uri-js":"npm:uri-js-replace","esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.2.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.5.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.5","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.6.0","dotenv":"^17.2.1","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.6.0","openai":"^5.18.1","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.15.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.0","csv-parse":"^6.1.0","lru-cache":"^11.1.0","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.5","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.18.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.2.0","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.2","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.2.5","@inquirer/editor":"^4.2.18","@inquirer/select":"^4.3.2","@anthropic-ai/sdk":"^0.61.0","@inquirer/confirm":"^5.1.16","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.2.2","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^1.1.0","@modelcontextprotocol/sdk":"^1.17.5","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.1.3","knip":"^5.63.0","nock":"^14.0.10","axios":"^1.11.0","madge":"^8.0.0","sharp":"^0.34.3","natural":"^8.1.0","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.5","prettier":"3.6.2","@swc/core":"^1.13.5","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.55.0","typescript":"^5.9.2","@types/cors":"^2.8.19","@types/jest":"^30.0.0","@types/node":"^24.3.0","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.1","@adaline/groq":"1.7.0","@jest/globals":"^30.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@adaline/azure":"1.5.0","@adaline/types":"1.8.0","@aws-sdk/types":"^3.862.0","@biomejs/biome":"2.2.2","@fal-ai/client":"^1.6.2","@libsql/client":"^0.15.14","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.7.0","@adaline/openai":"1.8.0","@adaline/vertex":"1.5.0","@azure/identity":"^4.11.2","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.12","@adaline/gateway":"1.8.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.4.0","winston-transport":"^4.9.0","@adaline/anthropic":"1.6.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.2","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.4.0","@adaline/together-ai":"1.4.0","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.27","@ibm-cloud/watsonx-ai":"^1.6.12","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.879.0","@aws-sdk/credential-provider-sso":"^3.879.0","@aws-sdk/client-sagemaker-runtime":"^3.879.0","@aws-sdk/client-bedrock-agent-runtime":"^3.879.0"},"peerDependencies":{"sharp":"^0.34.3","natural":"^8.1.0","langfuse":"^3.38.5","pdf-parse":"^1.1.1","playwright":"^1.55.0","@adaline/groq":"1.7.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.5.0","@adaline/types":"1.8.0","@fal-ai/client":"^1.6.2","@adaline/google":"1.7.0","@adaline/openai":"1.8.0","@adaline/vertex":"1.5.0","@azure/identity":"^4.11.2","node-sql-parser":"^5.3.12","@adaline/gateway":"1.8.0","playwright-extra":"^4.3.6","@adaline/provider":"1.4.0","@adaline/anthropic":"1.6.0","ibm-cloud-sdk-core":"^5.4.2","google-auth-library":"^10.3.0","@adaline/open-router":"1.4.0","@adaline/together-ai":"1.4.0","@ibm-cloud/watsonx-ai":"^1.6.12","@azure/openai-assistants":"^1.0.0-beta.6","@smithy/node-http-handler":"^4.1.1","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.55.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.879.0","@aws-sdk/credential-provider-sso":"^3.879.0","@aws-sdk/client-sagemaker-runtime":"^3.879.0","@aws-sdk/client-bedrock-agent-runtime":"^3.879.0"},"optionalDependencies":{"@swc/core-darwin-x64":"^1.13.5","@biomejs/cli-linux-x64":"2.2.2","@biomejs/cli-win32-x64":"2.2.2","@swc/core-darwin-arm64":"^1.13.5","@biomejs/cli-darwin-x64":"2.2.2","@swc/core-linux-x64-gnu":"^1.13.5","@swc/core-linux-x64-musl":"^1.13.5","@swc/core-win32-x64-msvc":"^1.13.5","@biomejs/cli-darwin-arm64":"2.2.2","@biomejs/cli-linux-x64-musl":"2.2.2","@rollup/rollup-linux-x64-gnu":"^4.50.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.118.2_1756930974588_0.7063922314958293","host":"s3://npm-registry-packages-npm-production"}},"0.118.3":{"name":"promptfoo","version":"0.118.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.118.3","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"824fe17521705cdb7b9ec59615a16f8fdd2d0e21","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.118.3.tgz","fileCount":1860,"integrity":"sha512-S80aHSSUXhHKcaC048DVYum2H1bM1DY+FYv5h4/RrTFaFCSXrPveqG+0261cFwJ4nYuDGPTLmQK1BNR+eQk0ug==","signatures":[{"sig":"MEQCID4RIxFD/Gl66vFSusXpyi3WftWjc4DzWL4m5PovAHLFAiB7AjCLMVb2esqBsrpH+VCI+V1xmGD12k3ZNevKUVcplw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30956390},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"979b913c824d5ea1ac6649bba8bffab47da2c4fa","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.2.0"},"uri-js":"npm:uri-js-replace","esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.2.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.5.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.5","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.6.0","dotenv":"^17.2.1","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.6.0","openai":"^5.18.1","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.15.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.0","csv-parse":"^6.1.0","lru-cache":"^11.1.0","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.5","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.18.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.2.0","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.2","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.2.5","@inquirer/editor":"^4.2.18","@inquirer/select":"^4.3.2","@anthropic-ai/sdk":"^0.61.0","@inquirer/confirm":"^5.1.16","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.2.2","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^1.1.0","@modelcontextprotocol/sdk":"^1.17.5","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.1.3","knip":"^5.63.0","nock":"^14.0.10","axios":"^1.11.0","madge":"^8.0.0","sharp":"^0.34.3","natural":"^8.1.0","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.5","prettier":"3.6.2","@swc/core":"^1.13.5","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.55.0","typescript":"^5.9.2","@types/cors":"^2.8.19","@types/jest":"^30.0.0","@types/node":"^24.3.0","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.1","@adaline/groq":"1.7.0","@jest/globals":"^30.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@adaline/azure":"1.5.0","@adaline/types":"1.8.0","@aws-sdk/types":"^3.862.0","@biomejs/biome":"2.2.2","@fal-ai/client":"^1.6.2","@libsql/client":"^0.15.14","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.7.0","@adaline/openai":"1.8.0","@adaline/vertex":"1.5.0","@azure/identity":"^4.11.2","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.12","@adaline/gateway":"1.8.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.4.0","winston-transport":"^4.9.0","@adaline/anthropic":"1.6.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.2","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.4.0","@adaline/together-ai":"1.4.0","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.27","@ibm-cloud/watsonx-ai":"^1.6.12","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.879.0","@aws-sdk/credential-provider-sso":"^3.879.0","@aws-sdk/client-sagemaker-runtime":"^3.879.0","@aws-sdk/client-bedrock-agent-runtime":"^3.879.0"},"peerDependencies":{"sharp":"^0.34.3","natural":"^8.1.0","langfuse":"^3.38.5","pdf-parse":"^1.1.1","playwright":"^1.55.0","@adaline/groq":"1.7.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.5.0","@adaline/types":"1.8.0","@fal-ai/client":"^1.6.2","@adaline/google":"1.7.0","@adaline/openai":"1.8.0","@adaline/vertex":"1.5.0","@azure/identity":"^4.11.2","node-sql-parser":"^5.3.12","@adaline/gateway":"1.8.0","playwright-extra":"^4.3.6","@adaline/provider":"1.4.0","@adaline/anthropic":"1.6.0","ibm-cloud-sdk-core":"^5.4.2","google-auth-library":"^10.3.0","@adaline/open-router":"1.4.0","@adaline/together-ai":"1.4.0","@ibm-cloud/watsonx-ai":"^1.6.12","@azure/openai-assistants":"^1.0.0-beta.6","@smithy/node-http-handler":"^4.1.1","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.55.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.879.0","@aws-sdk/credential-provider-sso":"^3.879.0","@aws-sdk/client-sagemaker-runtime":"^3.879.0","@aws-sdk/client-bedrock-agent-runtime":"^3.879.0"},"optionalDependencies":{"@swc/core-darwin-x64":"^1.13.5","@biomejs/cli-linux-x64":"2.2.2","@biomejs/cli-win32-x64":"2.2.2","@swc/core-darwin-arm64":"^1.13.5","@biomejs/cli-darwin-x64":"2.2.2","@swc/core-linux-x64-gnu":"^1.13.5","@swc/core-linux-x64-musl":"^1.13.5","@swc/core-win32-x64-msvc":"^1.13.5","@biomejs/cli-darwin-arm64":"2.2.2","@biomejs/cli-linux-x64-musl":"2.2.2","@rollup/rollup-linux-x64-gnu":"^4.50.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.118.3_1757021250486_0.035073445310546125","host":"s3://npm-registry-packages-npm-production"}},"0.118.4":{"name":"promptfoo","version":"0.118.4","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.118.4","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"b2807b00c1691dbf585437b64ec906c3a633a842","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.118.4.tgz","fileCount":1914,"integrity":"sha512-AcYr2FwkWLNlcBzvbZ65TLkJ3UmNNBt9h+ncaqVCgMHVKNzyEk7bgU3LIgO4+unkuVEoBnz6Aaeolj4tXm/rxg==","signatures":[{"sig":"MEYCIQClH3TOlvCYCiIrSZlvyDKJcaAme6tjKyGVAn1XA6UlHwIhAPThRCSWcn/LFcyGW5uSpQaIW6+cmjsHFEvSqiJbkDLx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31323736},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"d593fff3cc0d2eb0d369064b8685c363b3647175","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.2.0"},"uri-js":"npm:uri-js-replace","esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.2.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.5.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.5","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.6.0","dotenv":"^17.2.1","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.6.0","openai":"^5.18.1","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.15.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.0","csv-parse":"^6.1.0","lru-cache":"^11.1.0","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.5","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.18.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.2.0","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.2","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.2.5","@inquirer/editor":"^4.2.18","@inquirer/select":"^4.3.2","@anthropic-ai/sdk":"^0.62.0","@inquirer/confirm":"^5.1.16","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.2.2","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^1.1.0","@modelcontextprotocol/sdk":"^1.17.5","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.1.3","knip":"^5.63.0","nock":"^14.0.10","axios":"^1.11.0","madge":"^8.0.0","sharp":"^0.34.3","natural":"^8.1.0","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.5","prettier":"3.6.2","@swc/core":"^1.13.5","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.55.0","typescript":"^5.9.2","@types/cors":"^2.8.19","@types/jest":"^30.0.0","@types/node":"^24.3.0","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.1","@adaline/groq":"1.7.0","@jest/globals":"^30.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@adaline/azure":"1.5.0","@adaline/types":"1.8.0","@aws-sdk/types":"^3.862.0","@biomejs/biome":"2.2.2","@fal-ai/client":"^1.6.2","@libsql/client":"^0.15.14","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.7.0","@adaline/openai":"1.8.0","@adaline/vertex":"1.5.0","@azure/identity":"^4.11.2","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.12","@adaline/gateway":"1.8.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.4.0","winston-transport":"^4.9.0","@adaline/anthropic":"1.6.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.2","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.4.0","@adaline/together-ai":"1.4.0","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.27","@ibm-cloud/watsonx-ai":"^1.6.12","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.879.0","@aws-sdk/credential-provider-sso":"^3.879.0","@aws-sdk/client-sagemaker-runtime":"^3.879.0","@aws-sdk/client-bedrock-agent-runtime":"^3.879.0"},"peerDependencies":{"sharp":"^0.34.3","natural":"^8.1.0","langfuse":"^3.38.5","pdf-parse":"^1.1.1","playwright":"^1.55.0","@adaline/groq":"1.7.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.5.0","@adaline/types":"1.8.0","@fal-ai/client":"^1.6.2","@adaline/google":"1.7.0","@adaline/openai":"1.8.0","@adaline/vertex":"1.5.0","@azure/identity":"^4.11.2","node-sql-parser":"^5.3.12","@adaline/gateway":"1.8.0","playwright-extra":"^4.3.6","@adaline/provider":"1.4.0","@adaline/anthropic":"1.6.0","ibm-cloud-sdk-core":"^5.4.2","google-auth-library":"^10.3.0","@adaline/open-router":"1.4.0","@adaline/together-ai":"1.4.0","@ibm-cloud/watsonx-ai":"^1.6.12","@azure/openai-assistants":"^1.0.0-beta.6","@smithy/node-http-handler":"^4.1.1","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.55.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.879.0","@aws-sdk/credential-provider-sso":"^3.879.0","@aws-sdk/client-sagemaker-runtime":"^3.879.0","@aws-sdk/client-bedrock-agent-runtime":"^3.879.0"},"optionalDependencies":{"@swc/core-darwin-x64":"^1.13.5","@biomejs/cli-linux-x64":"2.2.2","@biomejs/cli-win32-x64":"2.2.2","@swc/core-darwin-arm64":"^1.13.5","@biomejs/cli-darwin-x64":"2.2.2","@swc/core-linux-x64-gnu":"^1.13.5","@swc/core-linux-x64-musl":"^1.13.5","@swc/core-win32-x64-msvc":"^1.13.5","@biomejs/cli-darwin-arm64":"2.2.2","@biomejs/cli-linux-x64-musl":"2.2.2","@rollup/rollup-linux-x64-gnu":"^4.50.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.118.4_1757645997100_0.6867175195720641","host":"s3://npm-registry-packages-npm-production"}},"0.118.5":{"name":"promptfoo","version":"0.118.5","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.118.5","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"e969781f5ac47832111455651e5c53c5642a7d8b","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.118.5.tgz","fileCount":1940,"integrity":"sha512-Rl+PMY7n7Ql+J/WGUIrXVb4IUGjHcUFMoYLOCSQV+5G3AebrI4IufEl2RVYPGDidkUEf0OtjLjZf91vhXVm72g==","signatures":[{"sig":"MEUCIQC+/nJsoOFB+f919G5gwuMQCPg8S3oFAfIQ/D7ucKXd4AIgWJ5d2IOsQ+VhJzFtBih/rDSit6+lFDbGOG2viZ5IaY4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31479500},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"2eb18381e226f9f5627e3e5b5e509cadd4d6053e","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.2.0"},"uri-js":"npm:uri-js-replace","esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.2.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.5.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.5","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.6.0","dotenv":"^17.2.1","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.6.0","openai":"^5.18.1","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.15.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.0","csv-parse":"^6.1.0","lru-cache":"^11.1.0","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.5","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.18.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.2.0","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.2","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.2.5","@inquirer/editor":"^4.2.18","@inquirer/select":"^4.3.2","@anthropic-ai/sdk":"^0.62.0","@inquirer/confirm":"^5.1.16","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.2.2","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^1.1.0","@modelcontextprotocol/sdk":"^1.17.5","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.1.3","knip":"^5.63.0","nock":"^14.0.10","axios":"^1.11.0","madge":"^8.0.0","sharp":"^0.34.3","natural":"^8.1.0","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.5","prettier":"3.6.2","@swc/core":"^1.13.5","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.55.0","typescript":"^5.9.2","@types/cors":"^2.8.19","@types/jest":"^30.0.0","@types/node":"^24.3.0","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.1","@adaline/groq":"1.7.0","@jest/globals":"^30.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@adaline/azure":"1.5.0","@adaline/types":"1.8.0","@aws-sdk/types":"^3.862.0","@biomejs/biome":"2.2.2","@fal-ai/client":"^1.6.2","@libsql/client":"^0.15.14","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.7.0","@adaline/openai":"1.8.0","@adaline/vertex":"1.5.0","@azure/identity":"^4.11.2","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.12","@adaline/gateway":"1.8.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.4.0","winston-transport":"^4.9.0","@adaline/anthropic":"1.6.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.2","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.4.0","@adaline/together-ai":"1.4.0","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.27","@ibm-cloud/watsonx-ai":"^1.6.12","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.879.0","@aws-sdk/credential-provider-sso":"^3.879.0","@aws-sdk/client-sagemaker-runtime":"^3.879.0","@aws-sdk/client-bedrock-agent-runtime":"^3.879.0"},"peerDependencies":{"sharp":"^0.34.3","natural":"^8.1.0","langfuse":"^3.38.5","pdf-parse":"^1.1.1","playwright":"^1.55.0","@adaline/groq":"1.7.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.5.0","@adaline/types":"1.8.0","@fal-ai/client":"^1.6.2","@adaline/google":"1.7.0","@adaline/openai":"1.8.0","@adaline/vertex":"1.5.0","@azure/identity":"^4.11.2","node-sql-parser":"^5.3.12","@adaline/gateway":"1.8.0","playwright-extra":"^4.3.6","@adaline/provider":"1.4.0","@adaline/anthropic":"1.6.0","ibm-cloud-sdk-core":"^5.4.2","google-auth-library":"^10.3.0","@adaline/open-router":"1.4.0","@adaline/together-ai":"1.4.0","@ibm-cloud/watsonx-ai":"^1.6.12","@azure/openai-assistants":"^1.0.0-beta.6","@smithy/node-http-handler":"^4.1.1","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.55.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.879.0","@aws-sdk/credential-provider-sso":"^3.879.0","@aws-sdk/client-sagemaker-runtime":"^3.879.0","@aws-sdk/client-bedrock-agent-runtime":"^3.879.0"},"optionalDependencies":{"@swc/core-darwin-x64":"^1.13.5","@biomejs/cli-linux-x64":"2.2.2","@biomejs/cli-win32-x64":"2.2.2","@swc/core-darwin-arm64":"^1.13.5","@biomejs/cli-darwin-x64":"2.2.2","@swc/core-linux-x64-gnu":"^1.13.5","@swc/core-linux-x64-musl":"^1.13.5","@swc/core-win32-x64-msvc":"^1.13.5","@biomejs/cli-darwin-arm64":"2.2.2","@biomejs/cli-linux-x64-musl":"2.2.2","@rollup/rollup-linux-x64-gnu":"^4.50.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.118.5_1758020618623_0.5841277202414519","host":"s3://npm-registry-packages-npm-production"}},"0.118.6":{"name":"promptfoo","version":"0.118.6","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.118.6","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"fb1913045b2a76f047d60a25e24af0e4b6a26d3c","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.118.6.tgz","fileCount":1941,"integrity":"sha512-sRZWN0/UAuYaBz6ly8/ONbg+hrw8J6XZjX/eWSxaQUcZB5MCxm/PVmZG2RivB482R79DNNUBED0+8k9DyGf1zA==","signatures":[{"sig":"MEYCIQDetod8dqhSN4jf1KaKYrhawjnXArBimhQoIdbyjBLBTAIhAJvj3lYgrYuz6trttKYyXCdJIVZWhRA5baEyZl5I1GPK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31517890},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"19bb026cc15a2954440b0ccfbb0df55b886c434b","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx cp src/dynamic-import.cjs dist/src && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.2.0"},"uri-js":"npm:uri-js-replace","esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.2.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.5.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.5","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.6.0","dotenv":"^17.2.1","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.6.0","openai":"^5.18.1","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.15.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.0","csv-parse":"^6.1.0","lru-cache":"^11.1.0","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.5","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^4.18.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.2.0","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.2","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.2.5","@inquirer/editor":"^4.2.18","@inquirer/select":"^4.3.2","@anthropic-ai/sdk":"^0.62.0","@inquirer/confirm":"^5.1.16","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.2.2","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^1.1.0","@modelcontextprotocol/sdk":"^1.17.5","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.1.3","knip":"^5.63.0","nock":"^14.0.10","axios":"^1.11.0","madge":"^8.0.0","sharp":"^0.34.3","natural":"^8.1.0","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.5","prettier":"3.6.2","@swc/core":"^1.13.5","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.55.0","typescript":"^5.9.2","@types/cors":"^2.8.19","@types/jest":"^30.0.0","@types/node":"^24.3.0","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.1","@adaline/groq":"1.7.0","@jest/globals":"^30.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.0","@adaline/azure":"1.5.0","@adaline/types":"1.8.0","@aws-sdk/types":"^3.862.0","@biomejs/biome":"2.2.2","@fal-ai/client":"^1.6.2","@libsql/client":"^0.15.14","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.7.0","@adaline/openai":"1.8.0","@adaline/vertex":"1.5.0","@azure/identity":"^4.11.2","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.12","@adaline/gateway":"1.8.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.4.0","winston-transport":"^4.9.0","@adaline/anthropic":"1.6.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.2","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.4.0","@adaline/together-ai":"1.4.0","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.27","@ibm-cloud/watsonx-ai":"^1.6.12","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.879.0","@aws-sdk/credential-provider-sso":"^3.879.0","@aws-sdk/client-sagemaker-runtime":"^3.879.0","@aws-sdk/client-bedrock-agent-runtime":"^3.879.0"},"peerDependencies":{"sharp":"^0.34.3","natural":"^8.1.0","langfuse":"^3.38.5","pdf-parse":"^1.1.1","playwright":"^1.55.0","@adaline/groq":"1.7.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.5.0","@adaline/types":"1.8.0","@fal-ai/client":"^1.6.2","@adaline/google":"1.7.0","@adaline/openai":"1.8.0","@adaline/vertex":"1.5.0","@azure/identity":"^4.11.2","node-sql-parser":"^5.3.12","@adaline/gateway":"1.8.0","playwright-extra":"^4.3.6","@adaline/provider":"1.4.0","@adaline/anthropic":"1.6.0","ibm-cloud-sdk-core":"^5.4.2","google-auth-library":"^10.3.0","@adaline/open-router":"1.4.0","@adaline/together-ai":"1.4.0","@ibm-cloud/watsonx-ai":"^1.6.12","@azure/openai-assistants":"^1.0.0-beta.6","@smithy/node-http-handler":"^4.1.1","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.55.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.879.0","@aws-sdk/credential-provider-sso":"^3.879.0","@aws-sdk/client-sagemaker-runtime":"^3.879.0","@aws-sdk/client-bedrock-agent-runtime":"^3.879.0"},"optionalDependencies":{"@swc/core-darwin-x64":"^1.13.5","@biomejs/cli-linux-x64":"2.2.2","@biomejs/cli-win32-x64":"2.2.2","@swc/core-darwin-arm64":"^1.13.5","@biomejs/cli-darwin-x64":"2.2.2","@swc/core-linux-x64-gnu":"^1.13.5","@swc/core-linux-x64-musl":"^1.13.5","@swc/core-win32-x64-msvc":"^1.13.5","@biomejs/cli-darwin-arm64":"2.2.2","@biomejs/cli-linux-x64-musl":"2.2.2","@rollup/rollup-linux-x64-gnu":"^4.50.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.118.6_1758205565247_0.643641802064655","host":"s3://npm-registry-packages-npm-production"}},"0.118.7":{"name":"promptfoo","version":"0.118.7","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.118.7","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"6f91b21003ffda1a4e8dde5c71ca1213adbcc090","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.118.7.tgz","fileCount":1945,"integrity":"sha512-9kKNuh2p8NwyQ9qXHgDAjX8h2LA+BgL2ILY5+rElML9CGb0N+1C7QP7Q/9brXn6lEKGbmPk99YzI3uYvvP85rA==","signatures":[{"sig":"MEUCIQCPj9XYCNjV45FMQJbsdocrJ7+W0QJl7P+141XRz1ASwAIga/rO65+QrszwTWwyi8Bi2gE+dslfcNm0vNFyL986Qkc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31509814},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"c88832864775319e1ed981ddf373d15bb9519c90","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx cp src/dynamic-import.cjs dist/src && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.2.0"},"uri-js":"npm:uri-js-replace","esbuild":"0.25.9","chokidar":"4.0.3","react-is":"^18.3.1","whatwg-url":"14.2.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.5.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.5","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.2","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.7.0","openai":"^5.21.0","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.16.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.1","csv-parse":"^6.1.0","lru-cache":"^11.2.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.5","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^5.8.4","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.2.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.4","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.2.5","@inquirer/editor":"^4.2.20","@inquirer/select":"^4.3.4","@anthropic-ai/sdk":"^0.62.0","@inquirer/confirm":"^5.1.18","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.2.4","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^1.1.0","@modelcontextprotocol/sdk":"^1.18.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.1.3","knip":"^5.63.1","nock":"^14.0.10","axios":"^1.12.2","madge":"^8.0.0","sharp":"^0.34.4","natural":"^8.1.0","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.5","prettier":"3.6.2","@swc/core":"^1.13.5","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.55.0","typescript":"^5.9.2","@types/cors":"^2.8.19","@types/jest":"^30.0.0","@types/node":"^24.5.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.1","undici-types":"^7.16.0","@adaline/groq":"1.8.2","@jest/globals":"^30.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@aws-sdk/types":"^3.887.0","@biomejs/biome":"2.2.4","@fal-ai/client":"^1.6.2","@libsql/client":"^0.15.15","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.8.1","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.1","@azure/identity":"^4.12.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.12","@adaline/gateway":"1.9.1","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","winston-transport":"^4.9.0","@adaline/anthropic":"1.7.1","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.3","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.27","@ibm-cloud/watsonx-ai":"^1.6.13","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.891.0","@aws-sdk/credential-provider-sso":"^3.891.0","@aws-sdk/client-sagemaker-runtime":"^3.891.0","@aws-sdk/client-bedrock-agent-runtime":"^3.891.0"},"peerDependencies":{"sharp":"^0.34.4","natural":"^8.1.0","langfuse":"^3.38.5","pdf-parse":"^1.1.1","playwright":"^1.55.0","@adaline/groq":"1.7.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.5.0","@adaline/types":"1.8.0","@fal-ai/client":"^1.6.2","@adaline/google":"1.7.0","@adaline/openai":"1.8.0","@adaline/vertex":"1.5.0","@azure/identity":"^4.11.2","node-sql-parser":"^5.3.12","@adaline/gateway":"1.8.0","playwright-extra":"^4.3.6","@adaline/provider":"1.4.0","@adaline/anthropic":"1.6.0","ibm-cloud-sdk-core":"^5.4.2","google-auth-library":"^10.3.0","@adaline/open-router":"1.4.0","@adaline/together-ai":"1.4.0","@ibm-cloud/watsonx-ai":"^1.6.12","@azure/openai-assistants":"^1.0.0-beta.6","@smithy/node-http-handler":"^4.1.1","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.55.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.879.0","@aws-sdk/credential-provider-sso":"^3.879.0","@aws-sdk/client-sagemaker-runtime":"^3.879.0","@aws-sdk/client-bedrock-agent-runtime":"^3.879.0"},"optionalDependencies":{"@swc/core-darwin-x64":"^1.13.5","@biomejs/cli-linux-x64":"2.2.4","@biomejs/cli-win32-x64":"2.2.4","@swc/core-darwin-arm64":"^1.13.5","@biomejs/cli-darwin-x64":"2.2.4","@swc/core-linux-x64-gnu":"^1.13.5","@swc/core-linux-x64-musl":"^1.13.5","@swc/core-win32-x64-msvc":"^1.13.5","@biomejs/cli-darwin-arm64":"2.2.4","@biomejs/cli-linux-x64-musl":"2.2.4","@rollup/rollup-linux-x64-gnu":"^4.50.2"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.118.7_1758564303650_0.21314687552053058","host":"s3://npm-registry-packages-npm-production"}},"0.118.8":{"name":"promptfoo","version":"0.118.8","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.118.8","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"bbc2a65798e49463d00fa0c6334532a46988ed7d","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.118.8.tgz","fileCount":1945,"integrity":"sha512-KvfHUmnQ2O64juFhkeE+LmuH7hNeRPNG3LHmK8hi3Zu/Zve3Z7csg3eoQp5VYSoYbKtH8ngeckPPKIDed/ZBsw==","signatures":[{"sig":"MEYCIQCHeosB2OAJV3paqEPqsvNn5StFW61qBx2osjU08A3F6gIhAMiLtaUrtIdRIcjMSWQxCbnziZMbD9a6sl28bAAoFuqR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31533028},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"fea784b902e9b712f369ac23ba3a9820b3d9651f","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx cp src/dynamic-import.cjs dist/src && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.2.0"},"uri-js":"npm:uri-js-replace","esbuild":"0.25.9","chokidar":"4.0.3","react-is":"^18.3.1","whatwg-url":"14.2.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.5.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.5","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.2","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.7.0","openai":"^5.21.0","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.16.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.1","csv-parse":"^6.1.0","lru-cache":"^11.2.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.5","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^5.8.4","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.2.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.4","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.2.5","@inquirer/editor":"^4.2.20","@inquirer/select":"^4.3.4","@anthropic-ai/sdk":"^0.62.0","@inquirer/confirm":"^5.1.18","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.2.4","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^1.1.0","@modelcontextprotocol/sdk":"^1.18.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.1.3","knip":"^5.63.1","nock":"^14.0.10","axios":"^1.12.2","madge":"^8.0.0","sharp":"^0.34.4","natural":"^8.1.0","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.5","prettier":"3.6.2","@swc/core":"^1.13.5","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.55.0","typescript":"^5.9.2","@types/cors":"^2.8.19","@types/jest":"^30.0.0","@types/node":"^24.5.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.1","undici-types":"^7.16.0","@adaline/groq":"1.8.2","@jest/globals":"^30.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@aws-sdk/types":"^3.887.0","@biomejs/biome":"2.2.4","@fal-ai/client":"^1.6.2","@libsql/client":"^0.15.15","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.8.1","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.1","@azure/identity":"^4.12.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.12","@adaline/gateway":"1.9.1","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","winston-transport":"^4.9.0","@adaline/anthropic":"1.7.1","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.3","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.27","@ibm-cloud/watsonx-ai":"^1.6.13","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.891.0","@aws-sdk/credential-provider-sso":"^3.891.0","@aws-sdk/client-sagemaker-runtime":"^3.891.0","@aws-sdk/client-bedrock-agent-runtime":"^3.891.0"},"peerDependencies":{"sharp":"^0.34.4","natural":"^8.1.0","langfuse":"^3.38.5","pdf-parse":"^1.1.1","playwright":"^1.55.0","@adaline/groq":"1.7.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.5.0","@adaline/types":"1.8.0","@fal-ai/client":"^1.6.2","@adaline/google":"1.7.0","@adaline/openai":"1.8.0","@adaline/vertex":"1.5.0","@azure/identity":"^4.11.2","node-sql-parser":"^5.3.12","@adaline/gateway":"1.8.0","playwright-extra":"^4.3.6","@adaline/provider":"1.4.0","@adaline/anthropic":"1.6.0","ibm-cloud-sdk-core":"^5.4.2","google-auth-library":"^10.3.0","@adaline/open-router":"1.4.0","@adaline/together-ai":"1.4.0","@ibm-cloud/watsonx-ai":"^1.6.12","@azure/openai-assistants":"^1.0.0-beta.6","@smithy/node-http-handler":"^4.1.1","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.55.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.879.0","@aws-sdk/credential-provider-sso":"^3.879.0","@aws-sdk/client-sagemaker-runtime":"^3.879.0","@aws-sdk/client-bedrock-agent-runtime":"^3.879.0"},"optionalDependencies":{"@swc/core-darwin-x64":"^1.13.5","@biomejs/cli-linux-x64":"2.2.4","@biomejs/cli-win32-x64":"2.2.4","@swc/core-darwin-arm64":"^1.13.5","@biomejs/cli-darwin-x64":"2.2.4","@swc/core-linux-x64-gnu":"^1.13.5","@swc/core-linux-x64-musl":"^1.13.5","@swc/core-win32-x64-msvc":"^1.13.5","@biomejs/cli-darwin-arm64":"2.2.4","@biomejs/cli-linux-x64-musl":"2.2.4","@rollup/rollup-linux-x64-gnu":"^4.50.2"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.118.8_1758591376495_0.1123585881978657","host":"s3://npm-registry-packages-npm-production"}},"0.118.9":{"name":"promptfoo","version":"0.118.9","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.118.9","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"37c188e89e462b9bbffd5989166e6f6678fa9f93","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.118.9.tgz","fileCount":1953,"integrity":"sha512-NjjoHzUc15i8G3C1DrGH5CXZBY52N/CT2Jsm2iy9mIQ67I6Nis8VVFqrIhjw73Ol41CA/qV8uamUwQnJK2rLtQ==","signatures":[{"sig":"MEUCIQDGxlr8eV/8U3LDplpIKbcgYGHKy4G+7uhkwPPf2p6FWAIgE6aNncGQL3zFi+Cr51JMknzRZ/tF9jqiQ0WQtzKF5LQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31569787},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"30501fb3f748975b8acfb3049db8c145fee25bd8","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx cp src/dynamic-import.cjs dist/src && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.2.0"},"uri-js":"npm:uri-js-replace","esbuild":"0.25.9","chokidar":"4.0.3","react-is":"^18.3.1","whatwg-url":"14.2.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.5.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.5","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.2","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.7.0","openai":"^5.21.0","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.16.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.1","csv-parse":"^6.1.0","lru-cache":"^11.2.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.5","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^5.8.4","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.2.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.4","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.2.5","@inquirer/editor":"^4.2.20","@inquirer/select":"^4.3.4","@anthropic-ai/sdk":"^0.63.1","@inquirer/confirm":"^5.1.18","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.2.4","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^1.1.0","@modelcontextprotocol/sdk":"^1.18.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.1.3","knip":"^5.63.1","nock":"^14.0.10","axios":"^1.12.2","madge":"^8.0.0","sharp":"^0.34.4","natural":"^8.1.0","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.5","prettier":"3.6.2","@swc/core":"^1.13.5","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.55.0","typescript":"^5.9.2","@types/cors":"^2.8.19","@types/jest":"^30.0.0","@types/node":"^24.5.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.1","undici-types":"^7.16.0","@adaline/groq":"1.8.2","@jest/globals":"^30.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@aws-sdk/types":"^3.887.0","@biomejs/biome":"2.2.4","@fal-ai/client":"^1.6.2","@libsql/client":"^0.15.15","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.8.1","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.1","@azure/identity":"^4.12.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.12","@adaline/gateway":"1.9.1","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","winston-transport":"^4.9.0","@adaline/anthropic":"1.7.1","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.3","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.27","@ibm-cloud/watsonx-ai":"^1.6.13","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.891.0","@aws-sdk/credential-provider-sso":"^3.891.0","@aws-sdk/client-sagemaker-runtime":"^3.891.0","@aws-sdk/client-bedrock-agent-runtime":"^3.891.0"},"peerDependencies":{"sharp":"^0.34.4","natural":"^8.1.0","langfuse":"^3.38.5","pdf-parse":"^1.1.1","playwright":"^1.55.0","@adaline/groq":"1.7.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.5.0","@adaline/types":"1.8.0","@fal-ai/client":"^1.6.2","@adaline/google":"1.7.0","@adaline/openai":"1.8.0","@adaline/vertex":"1.5.0","@azure/identity":"^4.11.2","node-sql-parser":"^5.3.12","@adaline/gateway":"1.8.0","playwright-extra":"^4.3.6","@adaline/provider":"1.4.0","@adaline/anthropic":"1.6.0","ibm-cloud-sdk-core":"^5.4.2","google-auth-library":"^10.3.0","@adaline/open-router":"1.4.0","@adaline/together-ai":"1.4.0","@ibm-cloud/watsonx-ai":"^1.6.12","@azure/openai-assistants":"^1.0.0-beta.6","@smithy/node-http-handler":"^4.1.1","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.55.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.879.0","@aws-sdk/credential-provider-sso":"^3.879.0","@aws-sdk/client-sagemaker-runtime":"^3.879.0","@aws-sdk/client-bedrock-agent-runtime":"^3.879.0"},"optionalDependencies":{"@swc/core-darwin-x64":"^1.13.5","@biomejs/cli-linux-x64":"2.2.4","@biomejs/cli-win32-x64":"2.2.4","@swc/core-darwin-arm64":"^1.13.5","@biomejs/cli-darwin-x64":"2.2.4","@swc/core-linux-x64-gnu":"^1.13.5","@swc/core-linux-x64-musl":"^1.13.5","@swc/core-win32-x64-msvc":"^1.13.5","@biomejs/cli-darwin-arm64":"2.2.4","@biomejs/cli-linux-x64-musl":"2.2.4","@rollup/rollup-linux-x64-gnu":"^4.50.2"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.118.9_1758843263438_0.043686982353952075","host":"s3://npm-registry-packages-npm-production"}},"0.118.10":{"name":"promptfoo","version":"0.118.10","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.118.10","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"e295c29bce65f5cbc745f22f749c0e2113bf694f","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.118.10.tgz","fileCount":1965,"integrity":"sha512-cAnxh4c/bv8AJM+xAVNUBg6B5m+Zcr1L1tk2m7tQ0dtL3hbpiqr+c1RsG/avWbI2NgaduszjdvYJeZG7BB2ayQ==","signatures":[{"sig":"MEQCIDcJmHeE4dKhZAj33xCy3rZav6Msvlx0AevkJ3fDloQJAiBWiDm2A7fenvPnHdng2qC2Nj5A48+Csucs6rUhXuF9lQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31687756},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"45a2abb7c655f7f218ea77afcc46b1772274d101","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx cp src/dynamic-import.cjs dist/src && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.2.0"},"uri-js":"npm:uri-js-replace","esbuild":"0.25.9","chokidar":"4.0.3","react-is":"^18.3.1","whatwg-url":"14.2.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.5.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.5","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.2","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.7.0","openai":"^5.21.0","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.16.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.1","csv-parse":"^6.1.0","lru-cache":"^11.2.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.5","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^5.8.4","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.2.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.4","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.2.5","@inquirer/editor":"^4.2.20","@inquirer/select":"^4.3.4","@anthropic-ai/sdk":"^0.63.1","@inquirer/confirm":"^5.1.18","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.2.4","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^1.1.0","@modelcontextprotocol/sdk":"^1.18.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.1.3","knip":"^5.63.1","nock":"^14.0.10","axios":"^1.12.2","madge":"^8.0.0","sharp":"^0.34.4","natural":"^8.1.0","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.5","prettier":"3.6.2","@swc/core":"^1.13.5","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.55.0","typescript":"^5.9.2","@types/cors":"^2.8.19","@types/jest":"^30.0.0","@types/node":"^24.5.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.1","undici-types":"^7.16.0","@adaline/groq":"1.8.2","@jest/globals":"^30.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@aws-sdk/types":"^3.887.0","@biomejs/biome":"2.2.4","@fal-ai/client":"^1.6.2","@libsql/client":"^0.15.15","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.8.1","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.1","@azure/identity":"^4.12.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.12","@adaline/gateway":"1.9.1","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","winston-transport":"^4.9.0","@adaline/anthropic":"1.7.1","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.3","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.27","@ibm-cloud/watsonx-ai":"^1.6.13","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.891.0","@aws-sdk/credential-provider-sso":"^3.891.0","@aws-sdk/client-sagemaker-runtime":"^3.891.0","@aws-sdk/client-bedrock-agent-runtime":"^3.891.0"},"peerDependencies":{"sharp":"^0.34.4","natural":"^8.1.0","langfuse":"^3.38.5","pdf-parse":"^1.1.1","playwright":"^1.55.0","@adaline/groq":"1.7.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.5.0","@adaline/types":"1.8.0","@fal-ai/client":"^1.6.2","@adaline/google":"1.7.0","@adaline/openai":"1.8.0","@adaline/vertex":"1.5.0","@azure/identity":"^4.11.2","node-sql-parser":"^5.3.12","@adaline/gateway":"1.8.0","playwright-extra":"^4.3.6","@adaline/provider":"1.4.0","@adaline/anthropic":"1.6.0","ibm-cloud-sdk-core":"^5.4.2","google-auth-library":"^10.3.0","@adaline/open-router":"1.4.0","@adaline/together-ai":"1.4.0","@ibm-cloud/watsonx-ai":"^1.6.12","@azure/openai-assistants":"^1.0.0-beta.6","@smithy/node-http-handler":"^4.1.1","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.55.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.879.0","@aws-sdk/credential-provider-sso":"^3.879.0","@aws-sdk/client-sagemaker-runtime":"^3.879.0","@aws-sdk/client-bedrock-agent-runtime":"^3.879.0"},"optionalDependencies":{"@swc/core-darwin-x64":"^1.13.5","@biomejs/cli-linux-x64":"2.2.4","@biomejs/cli-win32-x64":"2.2.4","@swc/core-darwin-arm64":"^1.13.5","@biomejs/cli-darwin-x64":"2.2.4","@swc/core-linux-x64-gnu":"^1.13.5","@swc/core-linux-x64-musl":"^1.13.5","@swc/core-win32-x64-msvc":"^1.13.5","@biomejs/cli-darwin-arm64":"2.2.4","@biomejs/cli-linux-x64-musl":"2.2.4","@rollup/rollup-linux-x64-gnu":"^4.50.2"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.118.10_1758927146139_0.9331831575875924","host":"s3://npm-registry-packages-npm-production"}},"0.118.11":{"name":"promptfoo","version":"0.118.11","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.118.11","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"bc9770e1b16ba4228f949cbcf9bba3c0c33b925a","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.118.11.tgz","fileCount":1981,"integrity":"sha512-lfLrqeeqmbgyIVO4Jura37OoLZQDLqSzpKmwKpnbDyTADPONVhPhiy7qGaUdafZz6XFmdOnl17Yu2rvbQOvJZg==","signatures":[{"sig":"MEQCIHjlxqHUL8mZuTrFmE2eB7sgwlpZ5STiu99Kg/SusiNzAiBsJ1vZbd2hBnOuM3zWAa6z06Rwsd8Mls47jQL16NNdHQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32480343},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"77462eac20b7f82d12f174efaa0d71f236ef269b","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx cp src/dynamic-import.cjs dist/src && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.2.0"},"uri-js":"npm:uri-js-replace","esbuild":"0.25.9","chokidar":"4.0.3","react-is":"^18.3.1","whatwg-url":"14.2.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.5.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.5","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.2","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.7.0","openai":"^5.21.0","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.16.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.1","csv-parse":"^6.1.0","lru-cache":"^11.2.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.5","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^5.8.4","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.2.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.4","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.2.5","@inquirer/editor":"^4.2.20","@inquirer/select":"^4.3.4","@anthropic-ai/sdk":"^0.65.0","@inquirer/confirm":"^5.1.18","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.2.4","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^3.0.0","@modelcontextprotocol/sdk":"^1.18.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.1.3","knip":"^5.63.1","nock":"^14.0.10","axios":"^1.12.2","madge":"^8.0.0","sharp":"^0.34.4","natural":"^8.1.0","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.5","prettier":"3.6.2","@swc/core":"^1.13.5","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.55.0","typescript":"^5.9.2","@types/cors":"^2.8.19","@types/jest":"^30.0.0","@types/node":"^24.5.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.1","undici-types":"^7.16.0","@adaline/groq":"1.8.2","@jest/globals":"^30.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@aws-sdk/types":"^3.887.0","@biomejs/biome":"2.2.4","@fal-ai/client":"^1.6.2","@libsql/client":"^0.15.15","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.8.1","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.1","@azure/identity":"^4.12.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.12","@adaline/gateway":"1.9.1","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","winston-transport":"^4.9.0","@adaline/anthropic":"1.7.1","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.3","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.27","@ibm-cloud/watsonx-ai":"^1.6.13","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.891.0","@aws-sdk/credential-provider-sso":"^3.891.0","@aws-sdk/client-sagemaker-runtime":"^3.891.0","@aws-sdk/client-bedrock-agent-runtime":"^3.891.0"},"peerDependencies":{"sharp":"^0.34.4","natural":"^8.1.0","langfuse":"^3.38.5","pdf-parse":"^1.1.1","playwright":"^1.55.0","@adaline/groq":"1.7.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.5.0","@adaline/types":"1.8.0","@fal-ai/client":"^1.6.2","@adaline/google":"1.7.0","@adaline/openai":"1.8.0","@adaline/vertex":"1.5.0","@azure/identity":"^4.11.2","node-sql-parser":"^5.3.12","@adaline/gateway":"1.8.0","playwright-extra":"^4.3.6","@adaline/provider":"1.4.0","@adaline/anthropic":"1.6.0","ibm-cloud-sdk-core":"^5.4.2","google-auth-library":"^10.3.0","@adaline/open-router":"1.4.0","@adaline/together-ai":"1.4.0","@ibm-cloud/watsonx-ai":"^1.6.12","@azure/openai-assistants":"^1.0.0-beta.6","@smithy/node-http-handler":"^4.1.1","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.55.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.879.0","@aws-sdk/credential-provider-sso":"^3.879.0","@aws-sdk/client-sagemaker-runtime":"^3.879.0","@aws-sdk/client-bedrock-agent-runtime":"^3.879.0"},"optionalDependencies":{"@swc/core-darwin-x64":"^1.13.5","@biomejs/cli-linux-x64":"2.2.4","@biomejs/cli-win32-x64":"2.2.4","@swc/core-darwin-arm64":"^1.13.5","@biomejs/cli-darwin-x64":"2.2.4","@swc/core-linux-x64-gnu":"^1.13.5","@swc/core-linux-x64-musl":"^1.13.5","@swc/core-win32-x64-msvc":"^1.13.5","@biomejs/cli-darwin-arm64":"2.2.4","@biomejs/cli-linux-x64-musl":"2.2.4","@rollup/rollup-linux-x64-gnu":"^4.50.2"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.118.11_1759271821404_0.8701698917178917","host":"s3://npm-registry-packages-npm-production"}},"0.118.12":{"name":"promptfoo","version":"0.118.12","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.118.12","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"0cd8603d5d48d26dd8457f010c04290c02d45326","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.118.12.tgz","fileCount":1990,"integrity":"sha512-s1MiC4u+2yveLmzaGtuq24kP5ssy42i1ShswPfPyRNnetF8iWc9ZGgzLl+YVVQygfn5d8OveuKmzXf0ohAaGJg==","signatures":[{"sig":"MEUCIQDDbooHYalA8EQg99SIX4Ah8GFIL2359B6aCgSsvC99gQIgKaCwkDXXzvrw81C/CJl/4knxHerkIwI2njg6U1W9oE4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32650935},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"99373ba4f1d404c1e7dae69d7973cd2e56900e51","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx cp src/dynamic-import.cjs dist/src && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.2.0"},"uri-js":"npm:uri-js-replace","esbuild":"0.25.9","chokidar":"4.0.3","react-is":"^18.3.1","whatwg-url":"14.2.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.5.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.5","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.2","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.7.0","openai":"^6.0.0","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.16.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.1","csv-parse":"^6.1.0","lru-cache":"^11.2.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.5","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^5.8.4","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.2.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.4","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.2.5","@inquirer/editor":"^4.2.20","@inquirer/select":"^4.3.4","@anthropic-ai/sdk":"^0.65.0","@inquirer/confirm":"^5.1.18","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.2.4","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^3.0.0","@modelcontextprotocol/sdk":"^1.18.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.1.3","knip":"^5.63.1","nock":"^14.0.10","axios":"^1.12.2","madge":"^8.0.0","sharp":"^0.34.4","natural":"^8.1.0","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.5","prettier":"3.6.2","@swc/core":"^1.13.5","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.55.0","typescript":"^5.9.2","@types/cors":"^2.8.19","@types/jest":"^30.0.0","@types/node":"^24.5.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.1","@adaline/groq":"1.8.2","@jest/globals":"^30.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@aws-sdk/types":"^3.887.0","@biomejs/biome":"2.2.4","@fal-ai/client":"^1.6.2","@libsql/client":"^0.15.15","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.8.1","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.1","@azure/identity":"^4.12.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.12","@adaline/gateway":"1.9.1","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","winston-transport":"^4.9.0","@adaline/anthropic":"1.7.1","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.3","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.27","@ibm-cloud/watsonx-ai":"^1.6.13","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.891.0","@aws-sdk/credential-provider-sso":"^3.891.0","@aws-sdk/client-sagemaker-runtime":"^3.891.0","@aws-sdk/client-bedrock-agent-runtime":"^3.891.0"},"peerDependencies":{"sharp":"^0.34.4","natural":"^8.1.0","langfuse":"^3.38.5","pdf-parse":"^1.1.1","playwright":"^1.55.0","@adaline/groq":"1.7.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.5.0","@adaline/types":"1.8.0","@fal-ai/client":"^1.6.2","@adaline/google":"1.7.0","@adaline/openai":"1.8.0","@adaline/vertex":"1.5.0","@azure/identity":"^4.11.2","node-sql-parser":"^5.3.12","@adaline/gateway":"1.8.0","playwright-extra":"^4.3.6","@adaline/provider":"1.4.0","@adaline/anthropic":"1.6.0","ibm-cloud-sdk-core":"^5.4.2","google-auth-library":"^10.3.0","@adaline/open-router":"1.4.0","@adaline/together-ai":"1.4.0","@ibm-cloud/watsonx-ai":"^1.6.12","@azure/openai-assistants":"^1.0.0-beta.6","@smithy/node-http-handler":"^4.1.1","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.55.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.879.0","@aws-sdk/credential-provider-sso":"^3.879.0","@aws-sdk/client-sagemaker-runtime":"^3.879.0","@aws-sdk/client-bedrock-agent-runtime":"^3.879.0"},"optionalDependencies":{"@slack/web-api":"^7.11.0","@swc/core-darwin-x64":"^1.13.5","@biomejs/cli-linux-x64":"2.2.4","@biomejs/cli-win32-x64":"2.2.4","@swc/core-darwin-arm64":"^1.13.5","@biomejs/cli-darwin-x64":"2.2.4","@swc/core-linux-x64-gnu":"^1.13.5","@swc/core-linux-x64-musl":"^1.13.5","@swc/core-win32-x64-msvc":"^1.13.5","@biomejs/cli-darwin-arm64":"2.2.4","@biomejs/cli-linux-x64-musl":"2.2.4","@rollup/rollup-linux-x64-gnu":"^4.50.2"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.118.12_1759887395172_0.46095823045425743","host":"s3://npm-registry-packages-npm-production"}},"0.118.13":{"name":"promptfoo","version":"0.118.13","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.118.13","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"0284e03d89646bd91559497ae2ca90f54ad9bb60","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.118.13.tgz","fileCount":2006,"integrity":"sha512-WPisiZAeHMli/f7KaScjm/tppnnm23LqEpkcPXRgjeiU+XKXdKaIagp0mh1bbc7meCzU4uh/NCLzopnwuj6RDw==","signatures":[{"sig":"MEQCIBwzdOwV+CwPm9ie0oxJkZc9awn3kwr4W+IRDXZA5SR/AiAIsUTRfzfQp8Tck3EBDBfalNA9/k3HpvzlKQ9iU90fNg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32668377},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"c6ae14f401ff023f8133b14b70a146bf07a02805","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx cp src/dynamic-import.cjs dist/src && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.2.0"},"uri-js":"npm:uri-js-replace","esbuild":"0.25.9","chokidar":"4.0.3","react-is":"^18.3.1","whatwg-url":"14.2.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.5.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.5","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.2","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.7.0","openai":"^6.0.0","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.16.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.1","csv-parse":"^6.1.0","lru-cache":"^11.2.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.5","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^5.8.4","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.2.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.4","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.2.5","@inquirer/editor":"^4.2.20","@inquirer/select":"^4.3.4","@anthropic-ai/sdk":"^0.65.0","@inquirer/confirm":"^5.1.18","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.2.4","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^3.0.0","@modelcontextprotocol/sdk":"^1.18.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.1.3","knip":"^5.63.1","nock":"^14.0.10","axios":"^1.12.2","madge":"^8.0.0","sharp":"^0.34.4","natural":"^8.1.0","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.5","prettier":"3.6.2","@swc/core":"^1.13.5","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.55.0","typescript":"^5.9.2","@types/cors":"^2.8.19","@types/jest":"^30.0.0","@types/node":"^24.5.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.1","@adaline/groq":"1.8.2","@jest/globals":"^30.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@aws-sdk/types":"^3.887.0","@biomejs/biome":"2.2.4","@fal-ai/client":"^1.6.2","@libsql/client":"^0.15.15","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.8.1","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.1","@azure/identity":"^4.12.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.12","@adaline/gateway":"1.9.1","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","winston-transport":"^4.9.0","@adaline/anthropic":"1.7.1","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.3","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.27","@ibm-cloud/watsonx-ai":"^1.6.13","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.891.0","@aws-sdk/credential-provider-sso":"^3.891.0","@aws-sdk/client-sagemaker-runtime":"^3.891.0","@aws-sdk/client-bedrock-agent-runtime":"^3.891.0"},"peerDependencies":{"sharp":"^0.34.4","natural":"^8.1.0","langfuse":"^3.38.5","pdf-parse":"^1.1.1","playwright":"^1.55.0","@adaline/groq":"1.7.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.5.0","@adaline/types":"1.8.0","@fal-ai/client":"^1.6.2","@adaline/google":"1.7.0","@adaline/openai":"1.8.0","@adaline/vertex":"1.5.0","@azure/identity":"^4.11.2","node-sql-parser":"^5.3.12","@adaline/gateway":"1.8.0","playwright-extra":"^4.3.6","@adaline/provider":"1.4.0","@adaline/anthropic":"1.6.0","ibm-cloud-sdk-core":"^5.4.2","google-auth-library":"^10.3.0","@adaline/open-router":"1.4.0","@adaline/together-ai":"1.4.0","@ibm-cloud/watsonx-ai":"^1.6.12","@azure/openai-assistants":"^1.0.0-beta.6","@smithy/node-http-handler":"^4.1.1","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.55.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.879.0","@aws-sdk/credential-provider-sso":"^3.879.0","@aws-sdk/client-sagemaker-runtime":"^3.879.0","@aws-sdk/client-bedrock-agent-runtime":"^3.879.0"},"optionalDependencies":{"@slack/web-api":"^7.11.0","@swc/core-darwin-x64":"^1.13.5","@biomejs/cli-linux-x64":"2.2.4","@biomejs/cli-win32-x64":"2.2.4","@swc/core-darwin-arm64":"^1.13.5","@biomejs/cli-darwin-x64":"2.2.4","@swc/core-linux-x64-gnu":"^1.13.5","@swc/core-linux-x64-musl":"^1.13.5","@swc/core-win32-x64-msvc":"^1.13.5","@biomejs/cli-darwin-arm64":"2.2.4","@biomejs/cli-linux-x64-musl":"2.2.4","@rollup/rollup-linux-x64-gnu":"^4.50.2"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.118.13_1759967485743_0.980983596151775","host":"s3://npm-registry-packages-npm-production"}},"0.118.14":{"name":"promptfoo","version":"0.118.14","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.118.14","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"63fb7a0a2efdb32a6cac451975599c723e968a89","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.118.14.tgz","fileCount":2006,"integrity":"sha512-qFBwLwVDA8VKiQIFRfsVxEP+SWkQ2TqdN/eGZUnh3ahFoKyCTRcDMQ0g8PtUx81hTQDojdaU8Qi3uzkkmRZPUg==","signatures":[{"sig":"MEUCIQDYqMUZqFBHalsM2O4w8uxtp4exBAMKMNIOKJbVioucgQIgWCzF04AMFIdp7Y0ulXocu/6ps3TMvOSSQVVr9T0i0u8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32668104},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"aaef5ba7f5b1a4b40d279d94a61a7abff1f4ff0b","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx cp src/dynamic-import.cjs dist/src && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.2.0"},"uri-js":"npm:uri-js-replace","esbuild":"0.25.9","chokidar":"4.0.3","react-is":"^18.3.1","whatwg-url":"14.2.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.5.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.5","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.2","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.7.0","openai":"^6.0.0","opener":"^1.5.2","semver":"^7.7.2","undici":"^7.16.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.17.0","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.1","csv-parse":"^6.1.0","lru-cache":"^11.2.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.5","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^5.8.4","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.2.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.4","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.2.5","@inquirer/editor":"^4.2.20","@inquirer/select":"^4.3.4","@anthropic-ai/sdk":"^0.65.0","@inquirer/confirm":"^5.1.18","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.2.4","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^3.0.0","@modelcontextprotocol/sdk":"^1.18.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.1.3","knip":"^5.63.1","nock":"^14.0.10","axios":"^1.12.2","madge":"^8.0.0","sharp":"^0.34.4","natural":"^8.1.0","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.5","prettier":"3.6.2","@swc/core":"^1.13.5","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.55.0","typescript":"^5.9.2","@types/cors":"^2.8.19","@types/jest":"^30.0.0","@types/node":"^24.5.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.1","@adaline/groq":"1.8.2","@jest/globals":"^30.1.2","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@aws-sdk/types":"^3.887.0","@biomejs/biome":"2.2.4","@fal-ai/client":"^1.6.2","@libsql/client":"^0.15.15","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.8.1","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.1","@azure/identity":"^4.12.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.12","@adaline/gateway":"1.9.1","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","winston-transport":"^4.9.0","@adaline/anthropic":"1.7.1","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.3","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.27","@ibm-cloud/watsonx-ai":"^1.6.13","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.891.0","@aws-sdk/credential-provider-sso":"^3.891.0","@aws-sdk/client-sagemaker-runtime":"^3.891.0","@aws-sdk/client-bedrock-agent-runtime":"^3.891.0"},"peerDependencies":{"sharp":"^0.34.4","natural":"^8.1.0","langfuse":"^3.38.5","pdf-parse":"^1.1.1","playwright":"^1.55.0","@adaline/groq":"1.7.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.5.0","@adaline/types":"1.8.0","@fal-ai/client":"^1.6.2","@adaline/google":"1.7.0","@adaline/openai":"1.8.0","@adaline/vertex":"1.5.0","@azure/identity":"^4.11.2","node-sql-parser":"^5.3.12","@adaline/gateway":"1.8.0","playwright-extra":"^4.3.6","@adaline/provider":"1.4.0","@adaline/anthropic":"1.6.0","ibm-cloud-sdk-core":"^5.4.2","google-auth-library":"^10.3.0","@adaline/open-router":"1.4.0","@adaline/together-ai":"1.4.0","@ibm-cloud/watsonx-ai":"^1.6.12","@azure/openai-assistants":"^1.0.0-beta.6","@smithy/node-http-handler":"^4.1.1","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.55.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.879.0","@aws-sdk/credential-provider-sso":"^3.879.0","@aws-sdk/client-sagemaker-runtime":"^3.879.0","@aws-sdk/client-bedrock-agent-runtime":"^3.879.0"},"optionalDependencies":{"@slack/web-api":"^7.11.0","@swc/core-darwin-x64":"^1.13.5","@biomejs/cli-linux-x64":"2.2.4","@biomejs/cli-win32-x64":"2.2.4","@swc/core-darwin-arm64":"^1.13.5","@biomejs/cli-darwin-x64":"2.2.4","@swc/core-linux-x64-gnu":"^1.13.5","@swc/core-linux-x64-musl":"^1.13.5","@swc/core-win32-x64-msvc":"^1.13.5","@biomejs/cli-darwin-arm64":"2.2.4","@biomejs/cli-linux-x64-musl":"2.2.4","@rollup/rollup-linux-x64-gnu":"^4.50.2"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.118.14_1759973342716_0.6600778027940204","host":"s3://npm-registry-packages-npm-production"}},"0.118.15":{"name":"promptfoo","version":"0.118.15","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.118.15","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"78e5b0079c117eb46d2d6e8eb3eb1c5d57149372","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.118.15.tgz","fileCount":2039,"integrity":"sha512-3KPGfB+aVxyv1GxJQbvqLM2rXae0XICeXb90jipwWvV72fnloF06tOcZrPzkXLHw7Wfcz3k3THgqD7bxod3+IQ==","signatures":[{"sig":"MEMCH2owFZczcALe7r4yLGj5ZTKy0qrHHk/Yx6u0HiXzR5UCIHl+3GJKiDqEue92wL/l1yRUZ27F7rnkNihbO51XdPVr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33078911},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"94d0f8f3daf5ccab8cd8acdc24f73d7998514f7b","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx mkdir -p dist/src/ruby && shx cp src/ruby/wrapper.rb dist/src/ruby && shx cp src/dynamic-import.cjs dist/src && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.2.0"},"uri-js":"npm:uri-js-replace","esbuild":"0.25.9","chokidar":"4.0.3","react-is":"^18.3.1","whatwg-url":"14.2.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.5.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.6","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.3","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.9.1","openai":"^6.3.0","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.16.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.18.3","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.1","csv-parse":"^6.1.0","lru-cache":"^11.2.2","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.5","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^5.9.5","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.2.2","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.4","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.0","@inquirer/editor":"^4.2.20","@inquirer/select":"^4.3.4","@anthropic-ai/sdk":"^0.65.0","@inquirer/confirm":"^5.1.18","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.2.4","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^3.0.0","@modelcontextprotocol/sdk":"^1.20.0","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.2.0","knip":"^5.64.3","nock":"^14.0.10","axios":"^1.12.2","madge":"^8.0.0","sharp":"^0.34.4","natural":"^8.1.0","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.5","prettier":"3.6.2","@swc/core":"^1.13.20","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.56.0","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/jest":"^30.0.0","@types/node":"^24.7.1","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.4","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.1","@adaline/groq":"1.8.2","@jest/globals":"^30.2.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@aws-sdk/types":"^3.901.0","@biomejs/biome":"2.2.5","@fal-ai/client":"^1.6.2","@libsql/client":"^0.15.15","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.8.1","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.1","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.12","@adaline/gateway":"1.10.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","winston-transport":"^4.9.0","@adaline/anthropic":"1.8.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.3","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.27","@ibm-cloud/watsonx-ai":"^1.6.13","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.908.0","@aws-sdk/credential-provider-sso":"^3.908.0","@aws-sdk/client-sagemaker-runtime":"^3.908.0","@aws-sdk/client-bedrock-agent-runtime":"^3.908.0"},"peerDependencies":{"sharp":"^0.34.4","natural":"^8.1.0","langfuse":"^3.38.5","pdf-parse":"^1.1.1","playwright":"^1.56.0","@adaline/groq":"1.8.2","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@fal-ai/client":"^1.6.2","@adaline/google":"1.8.1","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.1","@azure/identity":"^4.13.0","node-sql-parser":"^5.3.12","@adaline/gateway":"1.10.0","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","@adaline/anthropic":"1.8.0","@azure/ai-projects":"^1.0.0","ibm-cloud-sdk-core":"^5.4.3","google-auth-library":"^10.3.0","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@ibm-cloud/watsonx-ai":"^1.6.13","@azure/openai-assistants":"^1.0.0-beta.6","@smithy/node-http-handler":"^4.1.1","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.56.0","@anthropic-ai/claude-agent-sdk":"^0.1.11","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.908.0","@aws-sdk/credential-provider-sso":"^3.908.0","@aws-sdk/client-sagemaker-runtime":"^3.908.0","@aws-sdk/client-bedrock-agent-runtime":"^3.908.0"},"optionalDependencies":{"@slack/web-api":"^7.11.0","@swc/core-darwin-x64":"^1.13.20","@biomejs/cli-linux-x64":"2.2.5","@biomejs/cli-win32-x64":"2.2.5","@swc/core-darwin-arm64":"^1.13.20","@biomejs/cli-darwin-x64":"2.2.5","@swc/core-linux-x64-gnu":"^1.13.20","@swc/core-linux-x64-musl":"^1.13.20","@swc/core-win32-x64-msvc":"^1.13.20","@biomejs/cli-darwin-arm64":"2.2.5","@biomejs/cli-linux-x64-musl":"2.2.5","@rollup/rollup-linux-x64-gnu":"^4.52.4"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.118.15_1760380120717_0.4571470618878266","host":"s3://npm-registry-packages-npm-production"}},"0.118.16":{"name":"promptfoo","version":"0.118.16","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.118.16","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"395dc1990a47239f8572d556772607161b0c90a4","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.118.16.tgz","fileCount":2047,"integrity":"sha512-tYet0gcjnXmYTIzacGavsi1qGA/mQVWEeRiyUDkWUSOwHsCWwxfSA8V4cpTX1UgoU0xGBFaumwg6dBv/Yw1QJg==","signatures":[{"sig":"MEUCIFLJAvSaqHKViOHVZTHaubuQIooTUGoWMNQ09bRaG36KAiEArcOLwaREc1UmdKjOF8JAtNVXPu1ajV4U92uS/+3Tk5c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33160329},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"4fd44a7d903f73f174efeff92e86f8dc4cd8e839","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx mkdir -p dist/src/ruby && shx cp src/ruby/wrapper.rb dist/src/ruby && shx cp src/dynamic-import.cjs dist/src && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.2.0"},"uri-js":"npm:uri-js-replace","esbuild":"0.25.9","chokidar":"4.0.3","react-is":"^18.3.1","whatwg-url":"14.2.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.5.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.6","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.3","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.9.1","openai":"^6.3.0","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.16.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.18.3","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.1","csv-parse":"^6.1.0","lru-cache":"^11.2.2","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.6","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^5.9.5","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.3.0","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.5","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.0","@inquirer/editor":"^4.2.21","@inquirer/select":"^4.4.0","@anthropic-ai/sdk":"^0.65.0","@inquirer/confirm":"^5.1.19","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.3.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^3.0.0","@modelcontextprotocol/sdk":"^1.20.0","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.2.0","knip":"^5.65.0","nock":"^14.0.10","axios":"^1.12.2","madge":"^8.0.0","sharp":"^0.34.4","natural":"^8.1.0","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.5","prettier":"3.6.2","@swc/core":"^1.13.20","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.56.0","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/jest":"^30.0.0","@types/node":"^24.7.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.5","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.1","@adaline/groq":"1.8.2","@jest/globals":"^30.2.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@aws-sdk/types":"^3.901.0","@biomejs/biome":"2.2.6","@fal-ai/client":"^1.6.2","@libsql/client":"^0.15.15","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.8.1","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.1","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.12","@adaline/gateway":"1.10.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","winston-transport":"^4.9.0","@adaline/anthropic":"1.8.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.3","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.27","@ibm-cloud/watsonx-ai":"^1.7.0","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.908.0","@aws-sdk/credential-provider-sso":"^3.908.0","@aws-sdk/client-sagemaker-runtime":"^3.908.0","@aws-sdk/client-bedrock-agent-runtime":"^3.908.0"},"peerDependencies":{"sharp":"^0.34.4","natural":"^8.1.0","langfuse":"^3.38.5","pdf-parse":"^1.1.1","playwright":"^1.56.0","@adaline/groq":"1.8.2","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@fal-ai/client":"^1.6.2","@adaline/google":"1.8.1","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.1","@azure/identity":"^4.13.0","node-sql-parser":"^5.3.12","@adaline/gateway":"1.10.0","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","@adaline/anthropic":"1.8.0","@azure/ai-projects":"^1.0.0","ibm-cloud-sdk-core":"^5.4.3","google-auth-library":"^10.3.0","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@ibm-cloud/watsonx-ai":"^1.7.0","@azure/openai-assistants":"^1.0.0-beta.6","@smithy/node-http-handler":"^4.1.1","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.56.0","@anthropic-ai/claude-agent-sdk":"^0.1.11","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.908.0","@aws-sdk/credential-provider-sso":"^3.908.0","@aws-sdk/client-sagemaker-runtime":"^3.908.0","@aws-sdk/client-bedrock-agent-runtime":"^3.908.0"},"optionalDependencies":{"@slack/web-api":"^7.11.0","@swc/core-darwin-x64":"^1.13.20","@biomejs/cli-linux-x64":"2.2.6","@biomejs/cli-win32-x64":"2.2.6","@swc/core-darwin-arm64":"^1.13.20","@biomejs/cli-darwin-x64":"2.2.6","@swc/core-linux-x64-gnu":"^1.13.20","@swc/core-linux-x64-musl":"^1.13.20","@swc/core-win32-x64-msvc":"^1.13.20","@biomejs/cli-darwin-arm64":"2.2.6","@biomejs/cli-linux-x64-musl":"2.2.6","@rollup/rollup-linux-x64-gnu":"^4.52.4"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.118.16_1760495302433_0.29641974563805196","host":"s3://npm-registry-packages-npm-production"}},"0.118.17":{"name":"promptfoo","version":"0.118.17","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.118.17","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"7fddf1654acf6c9a7ea146c606849f332fe17439","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.118.17.tgz","fileCount":2047,"integrity":"sha512-KcaQjCX8uRIEwul6K10Ib0kJsZYjRtHgZAnPlunBUQM1F5Uqud01IJhkdPXxC2n+ReDhuusq3zV2/cj9Y9Bnhg==","signatures":[{"sig":"MEYCIQCvc32J1SE2HmF5VSilv4idTrNOsJwDIxTcPKSM4pWYKgIhAKKAGvgDFX23Ho3SnDimOCKoGRrxFohnXWtIBYJZCm+o","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33189907},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"0575f2bb90f068e2188c03ff8896d3cd56af3b8a","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx mkdir -p dist/src/ruby && shx cp src/ruby/wrapper.rb dist/src/ruby && shx cp src/dynamic-import.cjs dist/src && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.2.0"},"uri-js":"npm:uri-js-replace","esbuild":"0.25.9","chokidar":"4.0.3","react-is":"^18.3.1","whatwg-url":"14.2.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.5.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.6","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.3","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.9.1","openai":"^6.3.0","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.16.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.18.3","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.1","csv-parse":"^6.1.0","lru-cache":"^11.2.2","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.6","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^5.9.5","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.3.0","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.5","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.0","@inquirer/editor":"^4.2.21","@inquirer/select":"^4.4.0","@anthropic-ai/sdk":"^0.65.0","@inquirer/confirm":"^5.1.19","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.3.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^3.0.0","@modelcontextprotocol/sdk":"^1.20.0","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.2.0","knip":"^5.65.0","nock":"^14.0.10","axios":"^1.12.2","madge":"^8.0.0","sharp":"^0.34.4","natural":"^8.1.0","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.5","prettier":"3.6.2","@swc/core":"^1.13.20","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.56.0","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/jest":"^30.0.0","@types/node":"^24.7.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.5","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.1","@adaline/groq":"1.8.2","@jest/globals":"^30.2.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@aws-sdk/types":"^3.901.0","@biomejs/biome":"2.2.6","@fal-ai/client":"^1.6.2","@libsql/client":"^0.15.15","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.8.1","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.1","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.12","@adaline/gateway":"1.10.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","winston-transport":"^4.9.0","@adaline/anthropic":"1.8.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.3","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.27","@ibm-cloud/watsonx-ai":"^1.7.0","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","@anthropic-ai/claude-agent-sdk":"^0.1.11","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.908.0","@aws-sdk/credential-provider-sso":"^3.908.0","@aws-sdk/client-sagemaker-runtime":"^3.908.0","@aws-sdk/client-bedrock-agent-runtime":"^3.908.0"},"peerDependencies":{"sharp":"^0.34.4","natural":"^8.1.0","langfuse":"^3.38.5","pdf-parse":"^1.1.1","playwright":"^1.56.0","@adaline/groq":"1.8.2","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@fal-ai/client":"^1.6.2","@adaline/google":"1.8.1","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.1","@azure/identity":"^4.13.0","node-sql-parser":"^5.3.12","@adaline/gateway":"1.10.0","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","@adaline/anthropic":"1.8.0","@azure/ai-projects":"^1.0.0","ibm-cloud-sdk-core":"^5.4.3","google-auth-library":"^10.3.0","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@ibm-cloud/watsonx-ai":"^1.7.0","@azure/openai-assistants":"^1.0.0-beta.6","@smithy/node-http-handler":"^4.1.1","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.56.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.908.0","@aws-sdk/credential-provider-sso":"^3.908.0","@aws-sdk/client-sagemaker-runtime":"^3.908.0","@aws-sdk/client-bedrock-agent-runtime":"^3.908.0"},"optionalDependencies":{"@slack/web-api":"^7.11.0","@swc/core-darwin-x64":"^1.13.20","@biomejs/cli-linux-x64":"2.2.6","@biomejs/cli-win32-x64":"2.2.6","@swc/core-darwin-arm64":"^1.13.20","@biomejs/cli-darwin-x64":"2.2.6","@swc/core-linux-x64-gnu":"^1.13.20","@swc/core-linux-x64-musl":"^1.13.20","@swc/core-win32-x64-msvc":"^1.13.20","@biomejs/cli-darwin-arm64":"2.2.6","@biomejs/cli-linux-x64-musl":"2.2.6","@rollup/rollup-linux-x64-gnu":"^4.52.4","@anthropic-ai/claude-agent-sdk":"^0.1.11"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.118.17_1760542913166_0.9519659490869199","host":"s3://npm-registry-packages-npm-production"}},"0.119.0":{"name":"promptfoo","version":"0.119.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.119.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"1e55a058c26fa2cb2a38d979948c946d36244a67","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.119.0.tgz","fileCount":2120,"integrity":"sha512-1jI1JklsdBpf5FS38tdwvzWRqfnZB2GC+7YokUo1EC4ZhPS3g9NRrlHU7444zI3o0mNdasHJt49bhMkp/hyzbQ==","signatures":[{"sig":"MEUCICNMOICqpFZKe+9MxfQz4OEKeOJt1w5njs2OzQda/EDrAiEAlWIOdg9fj0l2yxeUe+OoOcuf2MQdu0U7dEeIkQ+1KlE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33767615},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"804c5118b870138bfb2bc414adb13b59a11a486c","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx cp src/python/persistent_wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx mkdir -p dist/src/ruby && shx cp src/ruby/wrapper.rb dist/src/ruby && shx cp src/dynamic-import.cjs dist/src && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.2.0"},"gaxios":"5.1.3","uri-js":"npm:uri-js-replace","esbuild":"0.25.9","chokidar":"4.0.3","react-is":"^18.3.1","agent-base":"6.0.2","node-fetch":"2.7.0","whatwg-url":"14.2.0","gcp-metadata":"5.3.0","https-proxy-agent":"5.0.1"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.5.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.6","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.3","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.9.1","openai":"^6.3.0","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.16.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.18.3","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.1","csv-parse":"^6.1.0","lru-cache":"^11.2.2","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.6","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^5.9.5","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.3.0","@openai/agents":"^0.1.11","better-sqlite3":"11.10.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.5","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.0","@inquirer/editor":"^4.2.21","@inquirer/select":"^4.4.0","@anthropic-ai/sdk":"^0.67.0","@inquirer/confirm":"^5.1.19","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.3.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^3.0.0","@modelcontextprotocol/sdk":"^1.20.0","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.2.0","knip":"^5.65.0","nock":"^14.0.10","axios":"^1.12.2","madge":"^8.0.0","sharp":"^0.34.4","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.5","prettier":"3.6.2","@swc/core":"^1.13.20","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.56.0","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/jest":"^30.0.0","@types/node":"^24.7.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.5","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.1","@adaline/groq":"1.8.2","@jest/globals":"^30.2.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@aws-sdk/types":"^3.901.0","@biomejs/biome":"2.2.6","@fal-ai/client":"^1.6.2","@libsql/client":"^0.15.15","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.8.1","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.1","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.12","@adaline/gateway":"1.10.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","winston-transport":"^4.9.0","@adaline/anthropic":"1.8.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.3","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.27","@ibm-cloud/watsonx-ai":"^1.7.0","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","@anthropic-ai/claude-agent-sdk":"^0.1.11","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.908.0","@aws-sdk/credential-provider-sso":"^3.908.0","@aws-sdk/client-sagemaker-runtime":"^3.908.0","@aws-sdk/client-bedrock-agent-runtime":"^3.908.0"},"optionalDependencies":{"sharp":"^0.34.4","natural":"^8.1.0","langfuse":"^3.38.5","pdf-parse":"^1.1.1","playwright":"^1.56.0","@adaline/groq":"1.8.2","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@fal-ai/client":"^1.6.2","@slack/web-api":"^7.11.0","@adaline/google":"1.8.1","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.1","@azure/identity":"^4.13.0","node-sql-parser":"^5.3.12","@adaline/gateway":"1.10.0","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","@adaline/anthropic":"1.8.0","@azure/ai-projects":"^1.0.0","ibm-cloud-sdk-core":"^5.4.3","google-auth-library":"^10.3.0","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@swc/core-darwin-x64":"^1.13.20","@ibm-cloud/watsonx-ai":"^1.7.0","@biomejs/cli-linux-x64":"2.2.6","@biomejs/cli-win32-x64":"2.2.6","@swc/core-darwin-arm64":"^1.13.20","@biomejs/cli-darwin-x64":"2.2.6","@swc/core-linux-x64-gnu":"^1.13.20","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.13.20","@swc/core-win32-x64-msvc":"^1.13.20","@biomejs/cli-darwin-arm64":"2.2.6","@smithy/node-http-handler":"^4.1.1","@biomejs/cli-linux-x64-musl":"2.2.6","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.56.0","@rollup/rollup-linux-x64-gnu":"^4.52.4","@anthropic-ai/claude-agent-sdk":"^0.1.11","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.908.0","@aws-sdk/credential-provider-sso":"^3.908.0","@aws-sdk/client-sagemaker-runtime":"^3.908.0","@aws-sdk/client-bedrock-agent-runtime":"^3.908.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.119.0_1761612789184_0.16221359634107535","host":"s3://npm-registry-packages-npm-production"}},"0.119.1":{"name":"promptfoo","version":"0.119.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.119.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"1b99d74686c9c56fe6c5ac5ba512b5697d5293e5","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.119.1.tgz","fileCount":2120,"integrity":"sha512-DvVxoRh89W2c5/5fto3C9npFD2M+x6b7p1Ib3jpJUj8hpn+i+lo7OMaTVz8zd/zi3gUqVT++SomrxwEBHxIu6Q==","signatures":[{"sig":"MEQCIGpMbKK0I0yAcYLzmDM3gArkaWJJWauRIeml6SbCEcwzAiAbg009WjrDsdG3VB1TjxhfrZ15ivQsyd/d1uOnLRtUdA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33787440},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"4b0d74170c737836c6caf06872345eeb390dda2a","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx cp src/python/persistent_wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx mkdir -p dist/src/ruby && shx cp src/ruby/wrapper.rb dist/src/ruby && shx cp src/dynamic-import.cjs dist/src && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.2.0"},"gaxios":"5.1.3","uri-js":"npm:uri-js-replace","esbuild":"0.25.9","chokidar":"4.0.3","react-is":"^18.3.1","agent-base":"6.0.2","node-fetch":"2.7.0","whatwg-url":"14.2.0","gcp-metadata":"5.3.0","https-proxy-agent":"5.0.1"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.5.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.6","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.3","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.9.1","openai":"^6.3.0","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.16.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.18.3","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.1","csv-parse":"^6.1.0","lru-cache":"^11.2.2","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.6","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^5.9.5","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.3.0","@openai/agents":"^0.1.11","better-sqlite3":"12.4.1","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.5","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.0","@inquirer/editor":"^4.2.21","@inquirer/select":"^4.4.0","@anthropic-ai/sdk":"^0.68.0","@inquirer/confirm":"^5.1.19","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.3.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^3.0.0","@modelcontextprotocol/sdk":"^1.20.0","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.2.0","knip":"^5.65.0","nock":"^14.0.10","madge":"^8.0.0","sharp":"^0.34.4","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.5","prettier":"3.6.2","@swc/core":"^1.13.20","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.56.0","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/jest":"^30.0.0","@types/node":"^24.7.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.5","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.1","@adaline/groq":"1.8.2","@jest/globals":"^30.2.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@aws-sdk/types":"^3.901.0","@biomejs/biome":"2.3.1","@fal-ai/client":"^1.6.2","@libsql/client":"^0.15.15","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.8.1","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.1","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.12","@adaline/gateway":"1.10.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","winston-transport":"^4.9.0","@adaline/anthropic":"1.8.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.3","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.27","@ibm-cloud/watsonx-ai":"^1.7.0","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","@anthropic-ai/claude-agent-sdk":"^0.1.11","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.908.0","@aws-sdk/credential-provider-sso":"^3.908.0","@aws-sdk/client-sagemaker-runtime":"^3.908.0","@aws-sdk/client-bedrock-agent-runtime":"^3.908.0"},"optionalDependencies":{"sharp":"^0.34.4","natural":"^8.1.0","langfuse":"^3.38.5","pdf-parse":"^1.1.1","playwright":"^1.56.0","@adaline/groq":"1.8.2","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@fal-ai/client":"^1.6.2","@slack/web-api":"^7.11.0","@adaline/google":"1.8.1","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.1","@azure/identity":"^4.13.0","node-sql-parser":"^5.3.12","@adaline/gateway":"1.10.0","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","@adaline/anthropic":"1.8.0","@azure/ai-projects":"^1.0.0","ibm-cloud-sdk-core":"^5.4.3","google-auth-library":"^10.3.0","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@swc/core-darwin-x64":"^1.13.20","@ibm-cloud/watsonx-ai":"^1.7.0","@biomejs/cli-linux-x64":"2.3.1","@biomejs/cli-win32-x64":"2.3.1","@swc/core-darwin-arm64":"^1.13.20","@biomejs/cli-darwin-x64":"2.3.1","@swc/core-linux-x64-gnu":"^1.13.20","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.13.20","@swc/core-win32-x64-msvc":"^1.13.20","@biomejs/cli-darwin-arm64":"2.3.1","@smithy/node-http-handler":"^4.1.1","@biomejs/cli-linux-x64-musl":"2.3.1","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.56.0","@rollup/rollup-linux-x64-gnu":"^4.52.4","@anthropic-ai/claude-agent-sdk":"^0.1.11","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.908.0","@aws-sdk/credential-provider-sso":"^3.908.0","@aws-sdk/client-sagemaker-runtime":"^3.908.0","@aws-sdk/client-bedrock-agent-runtime":"^3.908.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.119.1_1761762058644_0.18220621771647272","host":"s3://npm-registry-packages-npm-production"}},"0.119.2":{"name":"promptfoo","version":"0.119.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.119.2","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"577219e034f4ef0ee634c9883977a7282287cad6","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.119.2.tgz","fileCount":2164,"integrity":"sha512-izaFQE3mvWm55s7UUbY4KJlZnilwgWx8pZtyg5HQnGBT0Jesv8L51LnF9c5P4Hhe0zuwn597jF97v3gwdld28g==","signatures":[{"sig":"MEYCIQDCaVVrvOWoxHmYQtaOxsYHI6Euf8+ovq+1m+v8pzCsyAIhAJFbwwUXGg9tLgKBsrpugqotogeKt+Sk2yAXwi4T3+XU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34168920},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"7fa1f0487cab132273816d787efc4bf5c2c3a344","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx cp src/python/persistent_wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx mkdir -p dist/src/ruby && shx cp src/ruby/wrapper.rb dist/src/ruby && shx cp src/dynamic-import.cjs dist/src && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.2.0"},"gaxios":"5.1.3","uri-js":"npm:uri-js-replace","esbuild":"0.25.9","chokidar":"4.0.3","react-is":"^18.3.1","agent-base":"6.0.2","node-fetch":"2.7.0","whatwg-url":"14.2.0","gcp-metadata":"5.3.0","https-proxy-agent":"5.0.1"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.5.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.6","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.3","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.9.1","openai":"^6.3.0","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.16.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.18.3","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.1","csv-parse":"^6.1.0","lru-cache":"^11.2.2","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.6","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^5.9.5","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.3.0","@openai/agents":"^0.1.11","better-sqlite3":"12.4.1","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.5","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.0","@inquirer/editor":"^4.2.21","@inquirer/select":"^4.4.0","@anthropic-ai/sdk":"^0.68.0","@inquirer/confirm":"^5.1.19","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.3.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^3.0.0","@modelcontextprotocol/sdk":"^1.20.0","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.2.0","knip":"^5.65.0","nock":"^14.0.10","madge":"^8.0.0","sharp":"^0.34.4","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.5","prettier":"3.6.2","@swc/core":"^1.13.20","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.56.0","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/jest":"^30.0.0","@types/node":"^24.7.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.5","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.1","@adaline/groq":"1.8.2","@jest/globals":"^30.2.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@aws-sdk/types":"^3.901.0","@biomejs/biome":"^2.3.1","@fal-ai/client":"^1.6.2","@libsql/client":"^0.15.15","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.8.1","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.1","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.12","@adaline/gateway":"1.10.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","winston-transport":"^4.9.0","@adaline/anthropic":"1.8.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.3","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.27","@ibm-cloud/watsonx-ai":"^1.7.0","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","@anthropic-ai/claude-agent-sdk":"^0.1.11","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.908.0","@aws-sdk/credential-provider-sso":"^3.908.0","@aws-sdk/client-sagemaker-runtime":"^3.908.0","@aws-sdk/client-bedrock-agent-runtime":"^3.908.0"},"optionalDependencies":{"sharp":"^0.34.4","natural":"^8.1.0","langfuse":"^3.38.5","pdf-parse":"^1.1.1","playwright":"^1.56.0","@adaline/groq":"1.8.2","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@fal-ai/client":"^1.6.2","@slack/web-api":"^7.11.0","@adaline/google":"1.8.1","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.1","@azure/identity":"^4.13.0","node-sql-parser":"^5.3.12","@adaline/gateway":"1.10.0","@azure/msal-node":"^3.8.0","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","@adaline/anthropic":"1.8.0","@azure/ai-projects":"^1.0.0","ibm-cloud-sdk-core":"^5.4.3","google-auth-library":"^10.3.0","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@swc/core-darwin-x64":"^1.13.20","@ibm-cloud/watsonx-ai":"^1.7.0","@biomejs/cli-linux-x64":"2.3.1","@biomejs/cli-win32-x64":"2.3.1","@swc/core-darwin-arm64":"^1.13.20","@biomejs/cli-darwin-x64":"2.3.1","@swc/core-linux-x64-gnu":"^1.13.20","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.13.20","@swc/core-win32-x64-msvc":"^1.13.20","@biomejs/cli-darwin-arm64":"2.3.1","@smithy/node-http-handler":"^4.1.1","@biomejs/cli-linux-x64-musl":"2.3.1","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.56.0","@rollup/rollup-linux-x64-gnu":"^4.52.4","@anthropic-ai/claude-agent-sdk":"^0.1.11","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.908.0","@aws-sdk/credential-provider-sso":"^3.908.0","@aws-sdk/client-sagemaker-runtime":"^3.908.0","@aws-sdk/client-bedrock-agent-runtime":"^3.908.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.119.2_1762210747464_0.2891903126047364","host":"s3://npm-registry-packages-npm-production"}},"0.119.3":{"name":"promptfoo","version":"0.119.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.119.3","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"a9484726b4671a2233ca56921727b249f3762786","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.119.3.tgz","fileCount":2170,"integrity":"sha512-kMTd3QfktwDL2Fo4dWX1Z9BeabvyOiTxWLXGwyrOzXBKxvoqoiF6f7A9w1a+N9NUv1VrYIfCqiO1TFAp9JPfNg==","signatures":[{"sig":"MEQCIBgq7TVRcuaFe44qyruNDFTfsw6dyMf5WjSykVQniEIiAiAPu8V1xTvyWn45/YALAj2bWxfIDR1vsFzWKm/rch7AlQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34270498},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"025a717f60b7aaee356a6f736999aaaed913a971","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx cp src/python/persistent_wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx mkdir -p dist/src/ruby && shx cp src/ruby/wrapper.rb dist/src/ruby && shx cp src/dynamic-import.cjs dist/src && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.2.0"},"gaxios":"5.1.3","uri-js":"npm:uri-js-replace","esbuild":"0.25.9","chokidar":"4.0.3","react-is":"^18.3.1","agent-base":"6.0.2","node-fetch":"2.7.0","whatwg-url":"14.2.0","gcp-metadata":"5.3.0","https-proxy-agent":"5.0.1"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.5.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.6","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.3","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.9.1","openai":"^6.3.0","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.16.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.18.3","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.1","csv-parse":"^6.1.0","lru-cache":"^11.2.2","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.6","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^5.9.5","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.3.0","@openai/agents":"^0.1.11","better-sqlite3":"12.4.1","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.5","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.0","@inquirer/editor":"^4.2.21","@inquirer/select":"^4.4.0","@anthropic-ai/sdk":"^0.68.0","@inquirer/confirm":"^5.1.19","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.3.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^3.0.0","@modelcontextprotocol/sdk":"^1.20.0","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.2.0","knip":"^5.65.0","nock":"^14.0.10","madge":"^8.0.0","sharp":"^0.34.4","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.5","prettier":"3.6.2","@swc/core":"^1.13.20","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.56.0","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/jest":"^30.0.0","@types/node":"^24.7.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.5","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.1","@adaline/groq":"1.8.2","@jest/globals":"^30.2.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@aws-sdk/types":"^3.901.0","@biomejs/biome":"^2.3.1","@fal-ai/client":"^1.6.2","@libsql/client":"^0.15.15","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.8.1","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.1","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.12","@adaline/gateway":"1.10.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","winston-transport":"^4.9.0","@adaline/anthropic":"1.8.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.3","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.27","@ibm-cloud/watsonx-ai":"^1.7.0","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","@anthropic-ai/claude-agent-sdk":"^0.1.11","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.908.0","@aws-sdk/credential-provider-sso":"^3.908.0","@aws-sdk/client-sagemaker-runtime":"^3.908.0","@aws-sdk/client-bedrock-agent-runtime":"^3.908.0"},"optionalDependencies":{"sharp":"^0.34.4","natural":"^8.1.0","langfuse":"^3.38.5","pdf-parse":"^1.1.1","playwright":"^1.56.0","@adaline/groq":"1.8.2","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@fal-ai/client":"^1.6.2","@slack/web-api":"^7.11.0","@adaline/google":"1.8.1","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.1","@azure/identity":"^4.13.0","node-sql-parser":"^5.3.12","@adaline/gateway":"1.10.0","@azure/msal-node":"^3.8.0","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","@adaline/anthropic":"1.8.0","@azure/ai-projects":"^1.0.0","ibm-cloud-sdk-core":"^5.4.3","google-auth-library":"^10.3.0","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@swc/core-darwin-x64":"^1.13.20","@ibm-cloud/watsonx-ai":"^1.7.0","@biomejs/cli-linux-x64":"2.3.1","@biomejs/cli-win32-x64":"2.3.1","@swc/core-darwin-arm64":"^1.13.20","@biomejs/cli-darwin-x64":"2.3.1","@swc/core-linux-x64-gnu":"^1.13.20","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.13.20","@swc/core-win32-x64-msvc":"^1.13.20","@biomejs/cli-darwin-arm64":"2.3.1","@smithy/node-http-handler":"^4.1.1","@biomejs/cli-linux-x64-musl":"2.3.1","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.56.0","@rollup/rollup-linux-x64-gnu":"^4.52.4","@anthropic-ai/claude-agent-sdk":"^0.1.11","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.908.0","@aws-sdk/credential-provider-sso":"^3.908.0","@aws-sdk/client-sagemaker-runtime":"^3.908.0","@aws-sdk/client-bedrock-agent-runtime":"^3.908.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.119.3_1762308868235_0.7476213443615551","host":"s3://npm-registry-packages-npm-production"}},"0.119.4":{"name":"promptfoo","version":"0.119.4","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.119.4","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"d43ef24a776f7e12796a2e90bfea452c6754bfd8","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.119.4.tgz","fileCount":2170,"integrity":"sha512-vPmxL6RWe0g6ba7rSozB/dnzEIBV5MsJUcT+7E2IXTziThBk6/lHrbQVzv4UGVmIbrR1/Ith9fIs5L/GyVPxDg==","signatures":[{"sig":"MEUCIFbrflaj1XVo87S/8qXEYOUbnSHt46KzmSXvtGIcJZXOAiEA4ZjaWHsiW6pgPFbA7GtaVrbye3PMKnUFb6juv/Q8m/w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34272305},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"87bfe3c68877c63c08271c28374164aedd4fce3d","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx cp src/python/persistent_wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx mkdir -p dist/src/ruby && shx cp src/ruby/wrapper.rb dist/src/ruby && shx cp src/dynamic-import.cjs dist/src && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.2.0"},"gaxios":"5.1.3","uri-js":"npm:uri-js-replace","esbuild":"0.25.9","chokidar":"4.0.3","react-is":"^18.3.1","agent-base":"6.0.2","node-fetch":"2.7.0","whatwg-url":"14.2.0","gcp-metadata":"5.3.0","https-proxy-agent":"5.0.1"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.5.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.6","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.3","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.9.1","openai":"^6.3.0","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.16.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.18.3","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.1","csv-parse":"^6.1.0","lru-cache":"^11.2.2","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.6","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^5.9.5","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.3.0","@openai/agents":"^0.1.11","better-sqlite3":"12.4.1","proxy-from-env":"^1.1.0","@inquirer/input":"^4.2.5","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.0","@inquirer/editor":"^4.2.21","@inquirer/select":"^4.4.0","@anthropic-ai/sdk":"^0.68.0","@inquirer/confirm":"^5.1.19","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.3.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.3","cache-manager-fs-hash":"^3.0.0","@modelcontextprotocol/sdk":"^1.20.0","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.2.0","knip":"^5.65.0","nock":"^14.0.10","madge":"^8.0.0","sharp":"^0.34.4","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.5","prettier":"3.6.2","@swc/core":"^1.13.20","@swc/jest":"^0.2.39","pdf-parse":"^1.1.1","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.56.0","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/jest":"^30.0.0","@types/node":"^24.7.2","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.5","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.1","@adaline/groq":"1.8.2","@jest/globals":"^30.2.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@aws-sdk/types":"^3.901.0","@biomejs/biome":"^2.3.1","@fal-ai/client":"^1.6.2","@libsql/client":"^0.15.15","@types/express":"^5.0.3","@types/js-yaml":"^4.0.9","@adaline/google":"1.8.1","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.1","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.12","@adaline/gateway":"1.10.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","winston-transport":"^4.9.0","@adaline/anthropic":"1.8.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.3","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.27","@ibm-cloud/watsonx-ai":"^1.7.0","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","@anthropic-ai/claude-agent-sdk":"^0.1.11","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.908.0","@aws-sdk/credential-provider-sso":"^3.908.0","@aws-sdk/client-sagemaker-runtime":"^3.908.0","@aws-sdk/client-bedrock-agent-runtime":"^3.908.0"},"optionalDependencies":{"sharp":"^0.34.4","natural":"^8.1.0","langfuse":"^3.38.5","pdf-parse":"^1.1.1","playwright":"^1.56.0","@adaline/groq":"1.8.2","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@fal-ai/client":"^1.6.2","@slack/web-api":"^7.11.0","@adaline/google":"1.8.1","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.1","@azure/identity":"^4.13.0","node-sql-parser":"^5.3.12","@adaline/gateway":"1.10.0","@azure/msal-node":"^3.8.0","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","@adaline/anthropic":"1.8.0","@azure/ai-projects":"^1.0.0","ibm-cloud-sdk-core":"^5.4.3","google-auth-library":"^10.3.0","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@swc/core-darwin-x64":"^1.13.20","@ibm-cloud/watsonx-ai":"^1.7.0","@biomejs/cli-linux-x64":"2.3.1","@biomejs/cli-win32-x64":"2.3.1","@swc/core-darwin-arm64":"^1.13.20","@biomejs/cli-darwin-x64":"2.3.1","@swc/core-linux-x64-gnu":"^1.13.20","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.13.20","@swc/core-win32-x64-msvc":"^1.13.20","@biomejs/cli-darwin-arm64":"2.3.1","@smithy/node-http-handler":"^4.1.1","@biomejs/cli-linux-x64-musl":"2.3.1","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.56.0","@rollup/rollup-linux-x64-gnu":"^4.52.4","@anthropic-ai/claude-agent-sdk":"^0.1.11","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.908.0","@aws-sdk/credential-provider-sso":"^3.908.0","@aws-sdk/client-sagemaker-runtime":"^3.908.0","@aws-sdk/client-bedrock-agent-runtime":"^3.908.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.119.4_1762454135959_0.25259839458372424","host":"s3://npm-registry-packages-npm-production"}},"0.119.5":{"name":"promptfoo","version":"0.119.5","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.119.5","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"512f1cbd9459c4c825e7be8c428c5c6c61f2cce6","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.119.5.tgz","fileCount":2186,"integrity":"sha512-6bhI3g9J6ssD6Uf1u57QCVBNE/zYiim84J4Q9+YV/TA9CetIWJZ5UbQAlV6sQ9DeQ/IOwWWmX2w4PAjgTMkWLw==","signatures":[{"sig":"MEUCIQDKwJPB4GX1T6/1yWpgXSEZfn+KrPvMhg4OFx2iEptqOgIgCFYJRWrMct+IpYHH5pb8tYHX8pjfKBhyFCxP05JzM/4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34385093},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"c46252196f6e0bc17c44f0f1c571a13db067dfed","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx cp src/python/persistent_wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx mkdir -p dist/src/ruby && shx cp src/ruby/wrapper.rb dist/src/ruby && shx cp src/dynamic-import.cjs dist/src && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.2.0"},"gaxios":"5.1.3","uri-js":"npm:uri-js-replace","esbuild":"0.25.9","chokidar":"4.0.3","react-is":"^18.3.1","agent-base":"6.0.2","node-fetch":"2.7.0","whatwg-url":"14.2.0","gcp-metadata":"5.3.0","https-proxy-agent":"5.0.1"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.5.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.6","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.3","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.9.1","openai":"^6.8.1","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.16.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.18.3","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","lru-cache":"^11.2.2","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.7","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^5.11.2","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.3.1","@openai/agents":"^0.3.0","better-sqlite3":"12.4.1","proxy-from-env":"^1.1.0","@inquirer/input":"^4.3.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.1","@inquirer/editor":"^4.2.22","@inquirer/select":"^4.4.1","@anthropic-ai/sdk":"^0.68.0","@inquirer/confirm":"^5.1.20","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.3.1","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.4","cache-manager-fs-hash":"^3.0.0","@modelcontextprotocol/sdk":"^1.21.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.2.0","knip":"^5.68.0","nock":"^14.0.10","madge":"^8.0.0","sharp":"^0.34.5","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"3.6.2","@swc/core":"^1.15.1","@swc/jest":"^0.2.39","pdf-parse":"^1.1.4","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.56.1","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/jest":"^30.0.0","@types/node":"^24.10.0","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.6","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.1","@adaline/groq":"1.8.2","@jest/globals":"^30.2.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@aws-sdk/types":"^3.922.0","@biomejs/biome":"^2.3.4","@fal-ai/client":"^1.7.2","@libsql/client":"^0.15.15","@types/express":"^5.0.5","@types/js-yaml":"^4.0.9","@adaline/google":"1.9.0","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.2","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.13","@adaline/gateway":"1.10.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","winston-transport":"^4.9.0","@adaline/anthropic":"1.8.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.3","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.2","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","@anthropic-ai/claude-agent-sdk":"^0.1.36","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.927.0","@aws-sdk/credential-provider-sso":"^3.927.0","@aws-sdk/client-sagemaker-runtime":"^3.927.0","@aws-sdk/client-bedrock-agent-runtime":"^3.927.0"},"optionalDependencies":{"sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","pdf-parse":"^1.1.4","playwright":"^1.56.1","@adaline/groq":"1.8.2","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@fal-ai/client":"^1.7.2","@slack/web-api":"^7.12.0","@adaline/google":"1.9.0","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.2","@azure/identity":"^4.13.0","node-sql-parser":"^5.3.13","@adaline/gateway":"1.10.0","@azure/msal-node":"^3.8.1","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","@adaline/anthropic":"1.8.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.3","google-auth-library":"^10.5.0","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@swc/core-darwin-x64":"^1.15.1","@ibm-cloud/watsonx-ai":"^1.7.2","@biomejs/cli-linux-x64":"2.3.4","@biomejs/cli-win32-x64":"2.3.4","@swc/core-darwin-arm64":"^1.15.1","@biomejs/cli-darwin-x64":"2.3.4","@swc/core-linux-x64-gnu":"^1.15.1","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.1","@swc/core-win32-x64-msvc":"^1.15.1","@biomejs/cli-darwin-arm64":"2.3.4","@smithy/node-http-handler":"^4.4.4","@biomejs/cli-linux-x64-musl":"2.3.4","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.56.1","@rollup/rollup-linux-x64-gnu":"^4.53.1","@anthropic-ai/claude-agent-sdk":"^0.1.36","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.927.0","@aws-sdk/credential-provider-sso":"^3.927.0","@aws-sdk/client-sagemaker-runtime":"^3.927.0","@aws-sdk/client-bedrock-agent-runtime":"^3.927.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.119.5_1762816654482_0.40077344171998197","host":"s3://npm-registry-packages-npm-production"}},"0.119.6":{"name":"promptfoo","version":"0.119.6","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.119.6","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"0e7904f65de99884dcae339bfcad4d3c73051cf3","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.119.6.tgz","fileCount":2194,"integrity":"sha512-eO+QZZZu5sDv8TGRvhwgOR1BEM7L2afJnls8SrV9HrQCUE9WhIZeVVluXSXIEID5RmrOWAwKhq0lFUd5M29Vqg==","signatures":[{"sig":"MEUCIEd21NcMXtD3ZBNeHBwstFoHrI58CklezEQueWzCd8wWAiEAixT8pP6y8qgfxtFzLr0oTNGrvomHIXmrkgn2py87fec=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34405789},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"78595ea3228caf059195be403933e61192ff49de","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx cp src/python/persistent_wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx mkdir -p dist/src/ruby && shx cp src/ruby/wrapper.rb dist/src/ruby && shx cp src/dynamic-import.cjs dist/src && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"esbuild":"0.25.9","chokidar":"4.0.3","whatwg-url":"14.2.0"},"gaxios":"^6.0.0","uri-js":"npm:uri-js-replace","esbuild":"0.25.9","chokidar":"4.0.3","mongoose":{"gcp-metadata":"^6.0.0"},"react-is":"^18.3.1","whatwg-url":"14.2.0","https-proxy-agent":"^7.0.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.5.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","pem":"^1.15.1","tsx":"^4.20.6","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.3","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.9.1","openai":"^6.8.1","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.16.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.18.3","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","lru-cache":"^11.2.2","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.7","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","posthog-node":"^5.11.2","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.3.1","@openai/agents":"^0.3.0","better-sqlite3":"12.4.1","proxy-from-env":"^1.1.0","@inquirer/input":"^4.3.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.1","@inquirer/editor":"^4.2.22","@inquirer/select":"^4.4.1","@anthropic-ai/sdk":"^0.68.0","@inquirer/confirm":"^5.1.20","@googleapis/sheets":"^9.8.0","@inquirer/checkbox":"^4.3.1","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.4","cache-manager-fs-hash":"^3.0.0","@modelcontextprotocol/sdk":"^1.21.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.2.0","knip":"^5.68.0","nock":"^14.0.10","xlsx":"^0.18.5","madge":"^8.0.0","sharp":"^0.34.5","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"3.6.2","@swc/core":"^1.15.1","@swc/jest":"^0.2.39","pdf-parse":"^1.1.4","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.56.1","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/jest":"^30.0.0","@types/node":"^24.10.0","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.6","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.1","@adaline/groq":"1.8.2","@jest/globals":"^30.2.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@aws-sdk/types":"^3.922.0","@biomejs/biome":"^2.3.4","@fal-ai/client":"^1.7.2","@libsql/client":"^0.15.15","@types/express":"^5.0.5","@types/js-yaml":"^4.0.9","@adaline/google":"1.9.0","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.2","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.13","@adaline/gateway":"1.10.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","winston-transport":"^4.9.0","@adaline/anthropic":"1.8.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.3","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.2","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","@anthropic-ai/claude-agent-sdk":"^0.1.36","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.927.0","@aws-sdk/credential-provider-sso":"^3.927.0","@aws-sdk/client-sagemaker-runtime":"^3.927.0","@aws-sdk/client-bedrock-agent-runtime":"^3.927.0"},"optionalDependencies":{"xlsx":"^0.18.5","sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","pdf-parse":"^1.1.4","playwright":"^1.56.1","@adaline/groq":"1.8.2","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@fal-ai/client":"^1.7.2","@slack/web-api":"^7.12.0","@adaline/google":"1.9.0","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.2","@azure/identity":"^4.13.0","node-sql-parser":"^5.3.13","@adaline/gateway":"1.10.0","@azure/msal-node":"^3.8.1","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","@adaline/anthropic":"1.8.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.3","google-auth-library":"^10.5.0","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@swc/core-darwin-x64":"^1.15.1","@ibm-cloud/watsonx-ai":"^1.7.2","@biomejs/cli-linux-x64":"2.3.4","@biomejs/cli-win32-x64":"2.3.4","@swc/core-darwin-arm64":"^1.15.1","@biomejs/cli-darwin-x64":"2.3.4","@swc/core-linux-x64-gnu":"^1.15.1","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.1","@swc/core-win32-x64-msvc":"^1.15.1","@biomejs/cli-darwin-arm64":"2.3.4","@smithy/node-http-handler":"^4.4.4","@biomejs/cli-linux-x64-musl":"2.3.4","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.56.1","@rollup/rollup-linux-x64-gnu":"^4.53.1","@anthropic-ai/claude-agent-sdk":"^0.1.36","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.927.0","@aws-sdk/credential-provider-sso":"^3.927.0","@aws-sdk/client-sagemaker-runtime":"^3.927.0","@aws-sdk/client-bedrock-agent-runtime":"^3.927.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.119.6_1762969336255_0.19141191023845372","host":"s3://npm-registry-packages-npm-production"}},"0.119.7":{"name":"promptfoo","version":"0.119.7","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.119.7","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"876bf72c3606d52f45b3292de37a3af95cf84b75","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.119.7.tgz","fileCount":2282,"integrity":"sha512-c07eDcHHZwGxIWgpZxFY5g8lsmzk8TU/GnOPLmYNTU1OjBBtGCk11KRARKNdn/gxvOhrI22yCQagS/lg0VPiCg==","signatures":[{"sig":"MEYCIQC7QBjJmn3phIhGfZiF1sxAof3IUjcOjBfZfbexuzVwDQIhALaxOCgf5aLa/ykZiWObwVPVk9/bmJMwNCmqFDjcBT/n","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35320352},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"0b5e19e953bec6e518832efc8ebdd5bb4c14b280","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx cp src/python/persistent_wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx mkdir -p dist/src/ruby && shx cp src/ruby/wrapper.rb dist/src/ruby && shx cp src/dynamic-import.cjs dist/src && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"react":"19.2.0","esbuild":"0.25.9","chokidar":"4.0.3","react-dom":"19.2.0","whatwg-url":"14.2.0"},"react":"19.2.0","gaxios":"^6.0.0","uri-js":"npm:uri-js-replace","esbuild":"0.25.9","chokidar":"4.0.3","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^18.3.1","react-dom":"19.2.0","whatwg-url":"14.2.0","https-proxy-agent":"^7.0.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site","code-scan-action"],"_npmVersion":"11.5.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","ora":"^5.4.1","pem":"^1.14.8","tsx":"^4.20.6","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","execa":"^9.6.0","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.3","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.9.1","openai":"^6.9.0","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.16.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.18.3","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","lru-cache":"^11.2.2","minimatch":"^10.1.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.7","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"^5.11.2","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.3.1","@openai/agents":"^0.3.0","better-sqlite3":"12.4.1","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.3.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.1","text-extensions":"^3.1.0","@inquirer/editor":"^4.2.22","@inquirer/select":"^4.4.1","socket.io-client":"^4.8.1","@anthropic-ai/sdk":"^0.68.0","@inquirer/confirm":"^5.1.20","binary-extensions":"^3.1.0","@googleapis/sheets":"^12.0.0","@inquirer/checkbox":"^4.3.1","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.4","cache-manager-fs-hash":"^3.0.0","@modelcontextprotocol/sdk":"^1.21.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.2.0","knip":"^5.68.0","nock":"^14.0.10","xlsx":"^0.18.5","madge":"^8.0.0","sharp":"^0.34.5","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"3.6.2","@swc/core":"^1.15.1","@swc/jest":"^0.2.39","pdf-parse":"^1.1.4","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.56.1","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/jest":"^30.0.0","@types/node":"^24.10.0","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.6","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.1","@adaline/groq":"1.8.2","@jest/globals":"^30.2.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@aws-sdk/types":"^3.922.0","@biomejs/biome":"^2.3.4","@fal-ai/client":"^1.7.2","@types/express":"^5.0.5","@types/js-yaml":"^4.0.9","@adaline/google":"1.9.0","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.2","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.13","@adaline/gateway":"1.10.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","winston-transport":"^4.9.0","@adaline/anthropic":"1.8.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.3","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.2","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","@anthropic-ai/claude-agent-sdk":"^0.1.42","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.927.0","@aws-sdk/credential-provider-sso":"^3.927.0","@aws-sdk/client-sagemaker-runtime":"^3.927.0","@aws-sdk/client-bedrock-agent-runtime":"^3.927.0"},"optionalDependencies":{"xlsx":"^0.18.5","sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","pdf-parse":"^1.1.4","playwright":"^1.56.1","@adaline/groq":"1.8.2","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@fal-ai/client":"^1.7.2","@slack/web-api":"^7.12.0","@adaline/google":"1.9.0","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.2","@azure/identity":"^4.13.0","node-sql-parser":"^5.3.13","@adaline/gateway":"1.10.0","@azure/msal-node":"^3.8.1","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","@adaline/anthropic":"1.8.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.3","google-auth-library":"^10.5.0","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@swc/core-darwin-x64":"^1.15.1","@ibm-cloud/watsonx-ai":"^1.7.2","@biomejs/cli-linux-x64":"2.3.4","@biomejs/cli-win32-x64":"2.3.4","@swc/core-darwin-arm64":"^1.15.1","@biomejs/cli-darwin-x64":"2.3.4","@swc/core-linux-x64-gnu":"^1.15.1","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.1","@swc/core-win32-x64-msvc":"^1.15.1","@biomejs/cli-darwin-arm64":"2.3.4","@smithy/node-http-handler":"^4.4.4","@biomejs/cli-linux-x64-musl":"2.3.4","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.56.1","@rollup/rollup-linux-x64-gnu":"^4.53.1","@anthropic-ai/claude-agent-sdk":"^0.1.42","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.927.0","@aws-sdk/credential-provider-sso":"^3.927.0","@aws-sdk/client-sagemaker-runtime":"^3.927.0","@aws-sdk/client-bedrock-agent-runtime":"^3.927.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.119.7_1763430453265_0.2735463601081385","host":"s3://npm-registry-packages-npm-production"}},"0.119.8":{"name":"promptfoo","version":"0.119.8","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.119.8","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"4d7097d54a84d8f8932bf252c4c059c2c8ad855a","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.119.8.tgz","fileCount":1172,"integrity":"sha512-LqZGvFLjcg8uxo/44MHLU4vBxGHm6EO/Rjvuo9p8GemKqbI5jIIJxl/lJ8zGiC4YGF3s+UNwGGXCuhEuwd7+yA==","signatures":[{"sig":"MEYCIQDwyN7IcBLpg8TMvj1gSe0yKEDKX21Wq2kY3R8ZlasAcQIhAJ/9OCu7JKeFyC7JW1EB3kkBm9P3FjzqSsHx4RqMk5Kh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14772017},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"ff208023e198003f4d2568b2c98a8e56b126e516","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx cp src/python/persistent_wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx mkdir -p dist/src/ruby && shx cp src/ruby/wrapper.rb dist/src/ruby && shx cp src/dynamic-import.cjs dist/src && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"react":"19.2.0","esbuild":"0.25.9","chokidar":"4.0.3","react-dom":"19.2.0","whatwg-url":"14.2.0"},"react":"19.2.0","gaxios":"^6.0.0","uri-js":"npm:uri-js-replace","esbuild":"0.25.9","chokidar":"4.0.3","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^18.3.1","react-dom":"19.2.0","whatwg-url":"14.2.0","https-proxy-agent":"^7.0.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site","code-scan-action"],"_npmVersion":"11.5.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","ora":"^5.4.1","pem":"^1.14.8","tsx":"^4.20.6","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","execa":"^9.6.0","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.3","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.9.1","openai":"^6.9.0","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.16.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.18.3","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","lru-cache":"^11.2.2","minimatch":"^10.1.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.7","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"^5.11.2","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.3.1","@openai/agents":"^0.3.0","better-sqlite3":"12.4.1","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.3.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.1","text-extensions":"^3.1.0","@inquirer/editor":"^4.2.22","@inquirer/select":"^4.4.1","socket.io-client":"^4.8.1","@anthropic-ai/sdk":"^0.69.0","@inquirer/confirm":"^5.1.20","binary-extensions":"^3.1.0","@googleapis/sheets":"^12.0.0","@inquirer/checkbox":"^4.3.1","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.4","cache-manager-fs-hash":"^3.0.0","@modelcontextprotocol/sdk":"^1.21.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.2.0","knip":"^5.68.0","nock":"^14.0.10","xlsx":"^0.18.5","madge":"^8.0.0","sharp":"^0.34.5","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"3.6.2","@swc/core":"^1.15.1","@swc/jest":"^0.2.39","pdf-parse":"^1.1.4","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.56.1","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/jest":"^30.0.0","@types/node":"^24.10.0","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.6","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.1","@adaline/groq":"1.8.2","@jest/globals":"^30.2.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@aws-sdk/types":"^3.922.0","@biomejs/biome":"^2.3.4","@fal-ai/client":"^1.7.2","@types/express":"^5.0.5","@types/js-yaml":"^4.0.9","@adaline/google":"1.9.0","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.2","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.13","@adaline/gateway":"1.10.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","winston-transport":"^4.9.0","@adaline/anthropic":"1.8.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.3","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.2","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","@anthropic-ai/claude-agent-sdk":"^0.1.42","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.927.0","@aws-sdk/credential-provider-sso":"^3.927.0","@aws-sdk/client-sagemaker-runtime":"^3.927.0","@aws-sdk/client-bedrock-agent-runtime":"^3.927.0"},"optionalDependencies":{"xlsx":"^0.18.5","sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","pdf-parse":"^1.1.4","playwright":"^1.56.1","@adaline/groq":"1.8.2","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@fal-ai/client":"^1.7.2","@slack/web-api":"^7.12.0","@adaline/google":"1.9.0","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.2","@azure/identity":"^4.13.0","node-sql-parser":"^5.3.13","@adaline/gateway":"1.10.0","@azure/msal-node":"^3.8.1","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","@adaline/anthropic":"1.8.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.3","google-auth-library":"^10.5.0","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@swc/core-darwin-x64":"^1.15.1","@ibm-cloud/watsonx-ai":"^1.7.2","@biomejs/cli-linux-x64":"2.3.4","@biomejs/cli-win32-x64":"2.3.4","@swc/core-darwin-arm64":"^1.15.1","@biomejs/cli-darwin-x64":"2.3.4","@swc/core-linux-x64-gnu":"^1.15.1","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.1","@swc/core-win32-x64-msvc":"^1.15.1","@biomejs/cli-darwin-arm64":"2.3.4","@smithy/node-http-handler":"^4.4.4","@biomejs/cli-linux-x64-musl":"2.3.4","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.56.1","@rollup/rollup-linux-x64-gnu":"^4.53.1","@anthropic-ai/claude-agent-sdk":"^0.1.42","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.927.0","@aws-sdk/credential-provider-sso":"^3.927.0","@aws-sdk/client-sagemaker-runtime":"^3.927.0","@aws-sdk/client-bedrock-agent-runtime":"^3.927.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.119.8_1763530459721_0.6861908602124784","host":"s3://npm-registry-packages-npm-production"}},"0.119.9":{"name":"promptfoo","version":"0.119.9","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.119.9","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"73d94ec91bd2c6eb2ee9ff2e4b91b0af189d7327","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.119.9.tgz","fileCount":1174,"integrity":"sha512-uedqNiCnEIITZhKhGYHGH2wrDsIZ+RZfcYevJ/PCDzO8FtYyRJfoc76N49lZ9wHjrJVQ1DEx7+E14pwdYOnYjQ==","signatures":[{"sig":"MEQCIF63RRo6wg+KhFAVB5z8XeYWXZ3FjxMDPMG56vqzGkb/AiBrDR0iyfB2/WSArr0fbdtUqRpsJXukHjNdrtriEzv1Hg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15104340},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"468e35d5e2ab5fc9af2e21241a9b91c50b283af5","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx cp src/python/persistent_wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx mkdir -p dist/src/ruby && shx cp src/ruby/wrapper.rb dist/src/ruby && shx cp src/dynamic-import.cjs dist/src && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"react":"19.2.0","esbuild":"0.25.9","chokidar":"4.0.3","react-dom":"19.2.0","whatwg-url":"14.2.0"},"react":"19.2.0","gaxios":"^6.0.0","uri-js":"npm:uri-js-replace","esbuild":"0.25.9","chokidar":"4.0.3","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^18.3.1","react-dom":"19.2.0","whatwg-url":"14.2.0","https-proxy-agent":"^7.0.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site","code-scan-action"],"_npmVersion":"11.5.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","ora":"^5.4.1","pem":"^1.14.8","tsx":"^4.20.6","zod":"^3.25.76","cors":"^2.8.5","glob":"^11.0.3","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","execa":"^9.6.0","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.3","http-z":"^7.1.3","jks-js":"^1.1.4","mathjs":"^14.9.1","openai":"^6.9.0","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.16.0","express":"^5.1.0","js-yaml":"^4.1.0","winston":"^3.18.3","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","lru-cache":"^11.2.2","minimatch":"^10.1.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.7","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"^5.11.2","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.3.1","@openai/agents":"^0.3.0","better-sqlite3":"12.4.1","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.3.0","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.1","text-extensions":"^3.1.0","@inquirer/editor":"^4.2.22","@inquirer/select":"^4.4.1","socket.io-client":"^4.8.1","@anthropic-ai/sdk":"^0.70.0","@inquirer/confirm":"^5.1.20","binary-extensions":"^3.1.0","@googleapis/sheets":"^12.0.0","@inquirer/checkbox":"^4.3.1","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.4","cache-manager-fs-hash":"^3.0.0","@modelcontextprotocol/sdk":"^1.21.1","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.2.0","knip":"^5.68.0","nock":"^14.0.10","xlsx":"^0.18.5","madge":"^8.0.0","sharp":"^0.34.5","nodemon":"^3.1.10","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"3.6.2","@swc/core":"^1.15.1","@swc/jest":"^0.2.39","pdf-parse":"^1.1.4","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.56.1","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/jest":"^30.0.0","@types/node":"^24.10.0","@types/uuid":"^10.0.0","drizzle-kit":"^0.31.6","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.1","@adaline/groq":"1.8.2","@jest/globals":"^30.2.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@aws-sdk/types":"^3.922.0","@biomejs/biome":"^2.3.4","@fal-ai/client":"^1.7.2","@types/express":"^5.0.5","@types/js-yaml":"^4.0.9","@adaline/google":"1.9.0","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.2","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.13","@adaline/gateway":"1.10.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","winston-transport":"^4.9.0","@adaline/anthropic":"1.8.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.3","source-map-support":"^0.5.21","zod-to-json-schema":"^3.24.6","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.2","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","@anthropic-ai/claude-agent-sdk":"^0.1.42","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.927.0","@aws-sdk/credential-provider-sso":"^3.927.0","@aws-sdk/client-sagemaker-runtime":"^3.927.0","@aws-sdk/client-bedrock-agent-runtime":"^3.927.0"},"optionalDependencies":{"xlsx":"^0.18.5","sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","pdf-parse":"^1.1.4","playwright":"^1.56.1","@adaline/groq":"1.8.2","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.6.2","@adaline/types":"1.9.1","@fal-ai/client":"^1.7.2","@slack/web-api":"^7.12.0","@adaline/google":"1.9.0","@adaline/openai":"1.10.0","@adaline/vertex":"1.7.2","@azure/identity":"^4.13.0","node-sql-parser":"^5.3.13","@adaline/gateway":"1.10.0","@azure/msal-node":"^3.8.1","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","@adaline/anthropic":"1.8.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.3","google-auth-library":"^10.5.0","@adaline/open-router":"1.5.1","@adaline/together-ai":"1.5.1","@swc/core-darwin-x64":"^1.15.1","@ibm-cloud/watsonx-ai":"^1.7.2","@biomejs/cli-linux-x64":"2.3.4","@biomejs/cli-win32-x64":"2.3.4","@swc/core-darwin-arm64":"^1.15.1","@biomejs/cli-darwin-x64":"2.3.4","@swc/core-linux-x64-gnu":"^1.15.1","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.1","@swc/core-win32-x64-msvc":"^1.15.1","@biomejs/cli-darwin-arm64":"2.3.4","@smithy/node-http-handler":"^4.4.4","@biomejs/cli-linux-x64-musl":"2.3.4","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.56.1","@rollup/rollup-linux-x64-gnu":"^4.53.1","@anthropic-ai/claude-agent-sdk":"^0.1.42","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.927.0","@aws-sdk/credential-provider-sso":"^3.927.0","@aws-sdk/client-sagemaker-runtime":"^3.927.0","@aws-sdk/client-bedrock-agent-runtime":"^3.927.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.119.9_1763671453013_0.231730016148483","host":"s3://npm-registry-packages-npm-production"}},"0.119.10":{"name":"promptfoo","version":"0.119.10","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.119.10","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"219c02385fd97f09a2cbf7e98f1898851cfec9d1","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.119.10.tgz","fileCount":1175,"integrity":"sha512-+Nbh6iFbwItgb/j1YkgABH1Do57a66FlBHq1p3Ol0dW0rD7t18dCOXdR3LmauhfxbvNZS/ZIUjmwNyYCvWHuMA==","signatures":[{"sig":"MEUCIQDw1eyBe/u6YoWllYxs7w43SoX4xSDomfH1JgKI68RR9AIgKhZ43aoort+V6iLLN9M8qBbwdMZmTt17UXneM+rahdg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15397287},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"f1400686d55ccaed8415e4cc81c0ea7f1bd00771","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx cp src/python/persistent_wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx mkdir -p dist/src/ruby && shx cp src/ruby/wrapper.rb dist/src/ruby && shx cp src/dynamic-import.cjs dist/src && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:index":"node scripts/check-index-imports.js","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","lint:index:fix":"node scripts/fix-index-imports.js","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"react":"19.2.0","esbuild":"0.27.0","chokidar":"4.0.3","react-dom":"19.2.0","whatwg-url":"15.1.0"},"react":"19.2.0","gaxios":"^7.0.0","uri-js":"npm:uri-js-replace","esbuild":"0.27.0","chokidar":"4.0.3","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.0.0","react-dom":"19.2.0","whatwg-url":"15.1.0","https-proxy-agent":"^7.0.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site","code-scan-action"],"_npmVersion":"11.5.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","ora":"^5.4.1","pem":"^1.15.1","tsx":"^4.20.6","zod":"^3.25.76","cors":"^2.8.5","glob":"^13.0.0","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","execa":"^9.6.0","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.3","http-z":"^8.1.1","jks-js":"^1.1.4","mathjs":"^15.1.0","openai":"^6.9.1","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.16.0","express":"^5.1.0","js-yaml":"^4.1.1","winston":"^3.18.3","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","lru-cache":"^11.2.2","minimatch":"^10.1.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.7","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"^5.13.2","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.3.2","@openai/agents":"^0.3.2","better-sqlite3":"12.4.6","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.3.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.2","text-extensions":"^3.1.0","@inquirer/editor":"^4.2.23","@inquirer/select":"^4.4.2","socket.io-client":"^4.8.1","@anthropic-ai/sdk":"^0.70.1","@inquirer/confirm":"^5.1.21","binary-extensions":"^3.1.0","@googleapis/sheets":"^12.0.0","@inquirer/checkbox":"^4.3.2","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.4","cache-manager-fs-hash":"^3.0.0","@modelcontextprotocol/sdk":"^1.22.0","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.2.0","knip":"^5.70.1","nock":"^14.0.10","xlsx":"^0.18.5","madge":"^8.0.0","sharp":"^0.34.5","nodemon":"^3.1.11","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"3.6.2","@swc/core":"^1.15.3","@swc/jest":"^0.2.39","pdf-parse":"^1.1.4","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.56.1","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/jest":"^30.0.0","@types/node":"^24.10.1","drizzle-kit":"^0.31.7","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.1","@adaline/groq":"1.9.0","@jest/globals":"^30.2.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.7.0","@adaline/types":"1.9.1","@aws-sdk/types":"^3.936.0","@biomejs/biome":"^2.3.7","@fal-ai/client":"^1.7.2","@types/express":"^5.0.5","@types/js-yaml":"^4.0.9","@adaline/google":"1.10.0","@adaline/openai":"1.11.0","@adaline/vertex":"1.9.0","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.13","@adaline/gateway":"1.10.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","winston-transport":"^4.9.0","@adaline/anthropic":"1.8.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.4","source-map-support":"^0.5.21","zod-to-json-schema":"^3.25.0","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.6.0","@adaline/together-ai":"1.6.0","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.3","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","@anthropic-ai/claude-agent-sdk":"^0.1.47","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.936.0","@aws-sdk/credential-provider-sso":"^3.936.0","@aws-sdk/client-sagemaker-runtime":"^3.936.0","@aws-sdk/client-bedrock-agent-runtime":"^3.936.0"},"optionalDependencies":{"xlsx":"^0.18.5","sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","pdf-parse":"^1.1.4","playwright":"^1.56.1","@adaline/groq":"1.9.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.7.0","@adaline/types":"1.9.1","@fal-ai/client":"^1.7.2","@slack/web-api":"^7.12.0","@adaline/google":"1.10.0","@adaline/openai":"1.11.0","@adaline/vertex":"1.9.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.3.13","@adaline/gateway":"1.10.0","@azure/msal-node":"^3.8.3","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","@adaline/anthropic":"1.8.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.4","google-auth-library":"^10.5.0","@adaline/open-router":"1.6.0","@adaline/together-ai":"1.6.0","@swc/core-darwin-x64":"^1.15.3","@ibm-cloud/watsonx-ai":"^1.7.3","@biomejs/cli-linux-x64":"2.3.7","@biomejs/cli-win32-x64":"2.3.7","@swc/core-darwin-arm64":"^1.15.3","@biomejs/cli-darwin-x64":"2.3.7","@swc/core-linux-x64-gnu":"^1.15.3","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.3","@swc/core-win32-x64-msvc":"^1.15.3","@biomejs/cli-darwin-arm64":"2.3.7","@smithy/node-http-handler":"^4.4.5","@biomejs/cli-linux-x64-musl":"2.3.7","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.56.1","@rollup/rollup-linux-x64-gnu":"^4.53.3","@anthropic-ai/claude-agent-sdk":"^0.1.47","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.936.0","@aws-sdk/credential-provider-sso":"^3.936.0","@aws-sdk/client-sagemaker-runtime":"^3.936.0","@aws-sdk/client-bedrock-agent-runtime":"^3.936.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.119.10_1763917196543_0.08537910420044525","host":"s3://npm-registry-packages-npm-production"}},"0.119.11":{"name":"promptfoo","version":"0.119.11","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.119.11","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"626733d20c88c137faf946cc772fc87a0132f56b","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.119.11.tgz","fileCount":1175,"integrity":"sha512-2CGKuwCnT1+Q4Q6onGzNR9jtMecHrOI9hUvhQhDDHxIGJTocUcqUelEBOgLYv9JTyUVo5p6vLV3ppeN4IyOaQw==","signatures":[{"sig":"MEYCIQCFITj40FnESvhLa0Ez0ihr19s4dS2LA7VS+xwoKwMD5wIhANM4zLC19rn2ngkQ37b77T0e87lFc8PPmzJ1vAL4Sfcq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15400901},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"779729198d01eacd9d00b0796d62cc5a16f0ccac","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx cp src/python/persistent_wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx mkdir -p dist/src/ruby && shx cp src/ruby/wrapper.rb dist/src/ruby && shx cp src/dynamic-import.cjs dist/src && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:index":"node scripts/check-index-imports.js","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run citation:generate && git add CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","lint:index:fix":"node scripts/fix-index-imports.js","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"react":"19.2.0","esbuild":"0.27.0","chokidar":"4.0.3","react-dom":"19.2.0","whatwg-url":"15.1.0"},"react":"19.2.0","gaxios":"^7.0.0","uri-js":"npm:uri-js-replace","esbuild":"0.27.0","chokidar":"4.0.3","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.0.0","react-dom":"19.2.0","whatwg-url":"15.1.0","https-proxy-agent":"^7.0.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site","code-scan-action"],"_npmVersion":"11.5.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","ora":"^5.4.1","pem":"^1.15.1","tsx":"^4.20.6","zod":"^3.25.76","cors":"^2.8.5","glob":"^13.0.0","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","execa":"^9.6.0","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.3","http-z":"^8.1.1","jks-js":"^1.1.4","mathjs":"^15.1.0","openai":"^6.9.1","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.16.0","express":"^5.1.0","js-yaml":"^4.1.1","winston":"^3.18.3","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","lru-cache":"^11.2.2","minimatch":"^10.1.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.7","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"^5.13.2","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.3.2","@openai/agents":"^0.3.2","better-sqlite3":"12.4.6","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.3.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.2","text-extensions":"^3.1.0","@inquirer/editor":"^4.2.23","@inquirer/select":"^4.4.2","socket.io-client":"^4.8.1","@anthropic-ai/sdk":"^0.70.1","@inquirer/confirm":"^5.1.21","binary-extensions":"^3.1.0","@googleapis/sheets":"^12.0.0","@inquirer/checkbox":"^4.3.2","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.4","cache-manager-fs-hash":"^3.0.0","@modelcontextprotocol/sdk":"^1.22.0","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.2.0","knip":"^5.70.1","nock":"^14.0.10","xlsx":"^0.18.5","madge":"^8.0.0","sharp":"^0.34.5","nodemon":"^3.1.11","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"3.6.2","@swc/core":"^1.15.3","@swc/jest":"^0.2.39","pdf-parse":"^1.1.4","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.56.1","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/jest":"^30.0.0","@types/node":"^24.10.1","drizzle-kit":"^0.31.7","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.1","@adaline/groq":"1.9.0","@jest/globals":"^30.2.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.7.0","@adaline/types":"1.9.1","@aws-sdk/types":"^3.936.0","@biomejs/biome":"^2.3.7","@fal-ai/client":"^1.7.2","@types/express":"^5.0.5","@types/js-yaml":"^4.0.9","@adaline/google":"1.10.0","@adaline/openai":"1.11.0","@adaline/vertex":"1.9.0","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.13","@adaline/gateway":"1.10.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","winston-transport":"^4.9.0","@adaline/anthropic":"1.8.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.4","source-map-support":"^0.5.21","zod-to-json-schema":"^3.25.0","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.6.0","@adaline/together-ai":"1.6.0","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.3","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","@anthropic-ai/claude-agent-sdk":"^0.1.47","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.936.0","@aws-sdk/credential-provider-sso":"^3.936.0","@aws-sdk/client-sagemaker-runtime":"^3.936.0","@aws-sdk/client-bedrock-agent-runtime":"^3.936.0"},"optionalDependencies":{"xlsx":"^0.18.5","sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","pdf-parse":"^1.1.4","playwright":"^1.56.1","@adaline/groq":"1.9.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.7.0","@adaline/types":"1.9.1","@fal-ai/client":"^1.7.2","@slack/web-api":"^7.12.0","@adaline/google":"1.10.0","@adaline/openai":"1.11.0","@adaline/vertex":"1.9.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.3.13","@adaline/gateway":"1.10.0","@azure/msal-node":"^3.8.3","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","@adaline/anthropic":"1.8.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.4","google-auth-library":"^10.5.0","@adaline/open-router":"1.6.0","@adaline/together-ai":"1.6.0","@swc/core-darwin-x64":"^1.15.3","@ibm-cloud/watsonx-ai":"^1.7.3","@biomejs/cli-linux-x64":"2.3.7","@biomejs/cli-win32-x64":"2.3.7","@swc/core-darwin-arm64":"^1.15.3","@biomejs/cli-darwin-x64":"2.3.7","@swc/core-linux-x64-gnu":"^1.15.3","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.3","@swc/core-win32-x64-msvc":"^1.15.3","@biomejs/cli-darwin-arm64":"2.3.7","@smithy/node-http-handler":"^4.4.5","@biomejs/cli-linux-x64-musl":"2.3.7","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.56.1","@rollup/rollup-linux-x64-gnu":"^4.53.3","@anthropic-ai/claude-agent-sdk":"^0.1.47","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.936.0","@aws-sdk/credential-provider-sso":"^3.936.0","@aws-sdk/client-sagemaker-runtime":"^3.936.0","@aws-sdk/client-bedrock-agent-runtime":"^3.936.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.119.11_1763961711301_0.09708677200712135","host":"s3://npm-registry-packages-npm-production"}},"0.119.12":{"name":"promptfoo","version":"0.119.12","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.119.12","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"69c772142e3aecf7f7706b21709e0c1481ff1fb3","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.119.12.tgz","fileCount":1181,"integrity":"sha512-Fr84O2Fx1nu3ihDHG0yIgwQJ3CQv5b7EDaZxMo9dvn80MRZCEEVMV9E0R/xLKnfrjL1/pZ1QiYOIYMyn2Qg6MA==","signatures":[{"sig":"MEYCIQDJHrfRBjiHT6M7WxfuOQ/1SpXY/amJ2Jab4pF/B5mUDgIhAL11vG6KHwjU7ciNn/X/KJoG/ytJeqx8tkYohzPugNOu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15467653},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"efeccab045d243bc8268de10f732349ac676e381","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"jest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx cp src/python/persistent_wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx mkdir -p dist/src/ruby && shx cp src/ruby/wrapper.rb dist/src/ruby && shx cp src/dynamic-import.cjs dist/src && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:index":"node scripts/check-index-imports.js","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","lint:index:fix":"node scripts/fix-index-imports.js","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","changelog:release":"node scripts/update-changelog-version.js","citation:generate":"ts-node scripts/generateCitation.ts","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"react":"19.2.0","esbuild":"0.27.0","chokidar":"4.0.3","react-dom":"19.2.0","whatwg-url":"15.1.0"},"react":"19.2.0","gaxios":"^7.0.0","uri-js":"npm:uri-js-replace","esbuild":"0.27.0","chokidar":"4.0.3","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.0.0","react-dom":"19.2.0","whatwg-url":"15.1.0","https-proxy-agent":"^7.0.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site","code-scan-action"],"_npmVersion":"11.5.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","ora":"^5.4.1","pem":"^1.15.1","tsx":"^4.20.6","zod":"^3.25.76","cors":"^2.8.5","glob":"^13.0.0","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","execa":"^9.6.0","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.3","http-z":"^8.1.1","jks-js":"^1.1.4","mathjs":"^15.1.0","openai":"^6.9.1","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.16.0","express":"^5.1.0","js-yaml":"^4.1.1","winston":"^3.18.3","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","lru-cache":"^11.2.2","minimatch":"^10.1.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.7","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"^5.13.2","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.3.2","@openai/agents":"^0.3.2","better-sqlite3":"12.4.6","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.3.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.2","text-extensions":"^3.1.0","@inquirer/editor":"^4.2.23","@inquirer/select":"^4.4.2","socket.io-client":"^4.8.1","@anthropic-ai/sdk":"^0.70.1","@inquirer/confirm":"^5.1.21","binary-extensions":"^3.1.0","@googleapis/sheets":"^12.0.0","@inquirer/checkbox":"^4.3.2","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.4","cache-manager-fs-hash":"^3.0.0","@modelcontextprotocol/sdk":"^1.22.0","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.2.0","knip":"^5.70.1","nock":"^14.0.10","xlsx":"^0.18.5","madge":"^8.0.0","sharp":"^0.34.5","nodemon":"^3.1.11","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"3.6.2","@swc/core":"^1.15.3","@swc/jest":"^0.2.39","pdf-parse":"^1.1.4","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.56.1","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/jest":"^30.0.0","@types/node":"^24.10.1","drizzle-kit":"^0.31.7","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.1","@adaline/groq":"1.9.0","@jest/globals":"^30.2.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.7.0","@adaline/types":"1.9.1","@aws-sdk/types":"^3.936.0","@biomejs/biome":"^2.3.7","@fal-ai/client":"^1.7.2","@types/express":"^5.0.5","@types/js-yaml":"^4.0.9","@adaline/google":"1.10.0","@adaline/openai":"1.11.0","@adaline/vertex":"1.9.0","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.13","@adaline/gateway":"1.10.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","winston-transport":"^4.9.0","@adaline/anthropic":"1.8.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.4","source-map-support":"^0.5.21","zod-to-json-schema":"^3.25.0","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.6.0","@adaline/together-ai":"1.6.0","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.3","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","@anthropic-ai/claude-agent-sdk":"^0.1.47","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.936.0","@aws-sdk/credential-provider-sso":"^3.936.0","@aws-sdk/client-sagemaker-runtime":"^3.936.0","@aws-sdk/client-bedrock-agent-runtime":"^3.936.0"},"optionalDependencies":{"xlsx":"^0.18.5","sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","pdf-parse":"^1.1.4","playwright":"^1.56.1","@adaline/groq":"1.9.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.7.0","@adaline/types":"1.9.1","@fal-ai/client":"^1.7.2","@slack/web-api":"^7.12.0","@adaline/google":"1.10.0","@adaline/openai":"1.11.0","@adaline/vertex":"1.9.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.3.13","@adaline/gateway":"1.10.0","@azure/msal-node":"^3.8.3","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","@adaline/anthropic":"1.8.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.4","google-auth-library":"^10.5.0","@adaline/open-router":"1.6.0","@adaline/together-ai":"1.6.0","@swc/core-darwin-x64":"^1.15.3","@ibm-cloud/watsonx-ai":"^1.7.3","@biomejs/cli-linux-x64":"2.3.7","@biomejs/cli-win32-x64":"2.3.7","@swc/core-darwin-arm64":"^1.15.3","@biomejs/cli-darwin-x64":"2.3.7","@swc/core-linux-x64-gnu":"^1.15.3","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.3","@swc/core-win32-x64-msvc":"^1.15.3","@biomejs/cli-darwin-arm64":"2.3.7","@smithy/node-http-handler":"^4.4.5","@biomejs/cli-linux-x64-musl":"2.3.7","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.56.1","@rollup/rollup-linux-x64-gnu":"^4.53.3","@anthropic-ai/claude-agent-sdk":"^0.1.47","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.936.0","@aws-sdk/credential-provider-sso":"^3.936.0","@aws-sdk/client-sagemaker-runtime":"^3.936.0","@aws-sdk/client-bedrock-agent-runtime":"^3.936.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.119.12_1764024249778_0.183350360144529","host":"s3://npm-registry-packages-npm-production"}},"0.119.13":{"name":"promptfoo","version":"0.119.13","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.119.13","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"72b5c6807a24fb3027c97c57ec75296073528109","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.119.13.tgz","fileCount":1189,"integrity":"sha512-0jAjWRcyp5VN1autg/YyzXLClEwrg+i7dV5UYy/BpmFcbMhlwSR6x+ZjtMIT09isCZFvk/v735fQQELY2UYK2w==","signatures":[{"sig":"MEUCIQCxGjPXPV5aH8udmt15voaVQ37lupm2iWk2HDcXUe0WKwIgQfmOzyk2TNnr+dCGRAMwdLxSgR2kenbzu6lSyAQrgck=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15533667},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"d1419964849e897b61e3871af8d009fc217be93e","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"npm run test:jest && npm run test:vitest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx cp src/python/persistent_wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx mkdir -p dist/src/ruby && shx cp src/ruby/wrapper.rb dist/src/ruby && shx cp src/dynamic-import.cjs dist/src && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","test:jest":"jest","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:index":"node scripts/check-index-imports.js","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","lint:index:fix":"node scripts/fix-index-imports.js","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","changelog:release":"node scripts/update-changelog-version.js","citation:generate":"ts-node scripts/generateCitation.ts","test:vitest:watch":"vitest","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"sklein12","email":"sklein12@gmail.com"},"overrides":{"*":{"react":"19.2.0","esbuild":"0.27.0","chokidar":"4.0.3","react-dom":"19.2.0","whatwg-url":"15.1.0"},"react":"19.2.0","gaxios":"^7.0.0","uri-js":"npm:uri-js-replace","esbuild":"0.27.0","chokidar":"4.0.3","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.0.0","react-dom":"19.2.0","whatwg-url":"15.1.0","https-proxy-agent":"^7.0.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site","code-scan-action"],"_npmVersion":"11.5.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","ora":"^5.4.1","pem":"^1.15.1","tsx":"^4.20.6","zod":"^3.25.76","cors":"^2.8.5","glob":"^13.0.0","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","execa":"^9.6.0","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.3","http-z":"^8.1.1","jks-js":"^1.1.4","mathjs":"^15.1.0","openai":"^6.9.1","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.16.0","express":"^5.1.0","js-yaml":"^4.1.1","winston":"^3.18.3","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","lru-cache":"^11.2.2","minimatch":"^10.1.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.7","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"^5.14.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.3.2","@openai/agents":"^0.3.2","better-sqlite3":"12.4.6","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.3.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.2","text-extensions":"^3.1.0","@inquirer/editor":"^4.2.23","@inquirer/select":"^4.4.2","socket.io-client":"^4.8.1","@anthropic-ai/sdk":"^0.71.0","@inquirer/confirm":"^5.1.21","binary-extensions":"^3.1.0","@googleapis/sheets":"^12.0.0","@inquirer/checkbox":"^4.3.2","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.4","cache-manager-fs-hash":"^3.0.0","@modelcontextprotocol/sdk":"^1.22.0","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.2.0","knip":"^5.70.1","nock":"^14.0.10","xlsx":"^0.18.5","madge":"^8.0.0","sharp":"^0.34.5","vitest":"^4.0.0","nodemon":"^3.1.11","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"3.6.2","@swc/core":"^1.15.3","@swc/jest":"^0.2.39","pdf-parse":"^1.1.4","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.56.1","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/jest":"^30.0.0","@types/node":"^24.10.1","drizzle-kit":"^0.31.7","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.1","@adaline/groq":"1.9.0","@jest/globals":"^30.2.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.7.0","@adaline/types":"1.9.1","@aws-sdk/types":"^3.936.0","@biomejs/biome":"^2.3.7","@fal-ai/client":"^1.7.2","@types/express":"^5.0.5","@types/js-yaml":"^4.0.9","@adaline/google":"1.10.0","@adaline/openai":"1.11.0","@adaline/vertex":"1.9.0","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.13","@adaline/gateway":"1.10.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","winston-transport":"^4.9.0","@adaline/anthropic":"1.8.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.4","source-map-support":"^0.5.21","zod-to-json-schema":"^3.25.0","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.6.0","@adaline/together-ai":"1.6.0","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.3","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","@anthropic-ai/claude-agent-sdk":"^0.1.47","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.936.0","@aws-sdk/credential-provider-sso":"^3.936.0","@aws-sdk/client-sagemaker-runtime":"^3.936.0","@aws-sdk/client-bedrock-agent-runtime":"^3.936.0"},"optionalDependencies":{"xlsx":"^0.18.5","sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","pdf-parse":"^1.1.4","playwright":"^1.56.1","@adaline/groq":"1.9.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.7.0","@adaline/types":"1.9.1","@fal-ai/client":"^1.7.2","@slack/web-api":"^7.12.0","@adaline/google":"1.10.0","@adaline/openai":"1.11.0","@adaline/vertex":"1.9.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.3.13","@adaline/gateway":"1.10.0","@azure/msal-node":"^3.8.3","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","@adaline/anthropic":"1.8.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.4","google-auth-library":"^10.5.0","@adaline/open-router":"1.6.0","@adaline/together-ai":"1.6.0","@swc/core-darwin-x64":"^1.15.3","@ibm-cloud/watsonx-ai":"^1.7.3","@biomejs/cli-linux-x64":"2.3.7","@biomejs/cli-win32-x64":"2.3.7","@swc/core-darwin-arm64":"^1.15.3","@biomejs/cli-darwin-x64":"2.3.7","@swc/core-linux-x64-gnu":"^1.15.3","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.3","@swc/core-win32-x64-msvc":"^1.15.3","@biomejs/cli-darwin-arm64":"2.3.7","@smithy/node-http-handler":"^4.4.5","@biomejs/cli-linux-x64-musl":"2.3.7","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.56.1","@rollup/rollup-linux-x64-gnu":"^4.53.3","@anthropic-ai/claude-agent-sdk":"^0.1.47","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.936.0","@aws-sdk/credential-provider-sso":"^3.936.0","@aws-sdk/client-sagemaker-runtime":"^3.936.0","@aws-sdk/client-bedrock-agent-runtime":"^3.936.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.119.13_1764089078919_0.38279463699137306","host":"s3://npm-registry-packages-npm-production"}},"0.119.14":{"name":"promptfoo","version":"0.119.14","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.119.14","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"dc7f13cd0e57f8ca060b56885d4b5fecac7cb405","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.119.14.tgz","fileCount":1214,"integrity":"sha512-xqHbnixhY7Z+wpCp23IWzKvTrwEn2AuY8O/smQbxI8A20ybhozHn06S5vf0OSW+GZiJLMeWJN7rWSan1SJ4vpA==","signatures":[{"sig":"MEYCIQD0AYL8tmal+cb4CLoyAtt5sexVCBxIXnvQu51g0Qf6KgIhANXS039TP7UFdnlNoQINJcZ0X4hYUjWOhRZl5kJnYX8z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.119.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15827656},"main":"dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"commonjs","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.js"}},"gitHead":"3b24c554bcb84b8605e5209d478543c62e1476de","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"npm run test:jest && npm run test:vitest","build":"npm run generate-constants && tsc && shx cp src/*.html dist/src && shx cp src/python/wrapper.py dist/src/python && shx cp src/python/persistent_wrapper.py dist/src/python && shx mkdir -p dist/src/golang && shx cp src/golang/wrapper.go dist/src/golang && shx mkdir -p dist/src/ruby && shx cp src/ruby/wrapper.rb dist/src/ruby && shx cp src/dynamic-import.cjs dist/src && shx rm -rf dist/drizzle && shx cp -r drizzle dist/drizzle && shx rm -f dist/drizzle/CLAUDE.md dist/drizzle/AGENTS.md && npm run build:app && shx chmod +x dist/src/main.js","local":"ts-node --cwdMode --transpileOnly src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","test:jest":"jest","db:migrate":"node --require tsx/cjs src/migrate.ts","dev:server":"nodemon -P 1000 src/server/index.ts","lint:index":"node scripts/check-index-imports.js","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"jest --watch","build:clean":"shx rm -rf dist","build:watch":"tsc --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","lint:index:fix":"node scripts/fix-index-imports.js","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"jest --config jest.integration.config.ts integration","changelog:release":"node scripts/update-changelog-version.js","citation:generate":"ts-node scripts/generateCitation.ts","test:vitest:watch":"vitest","generate-constants":"node scripts/generate-constants.js","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"19.2.0","esbuild":"0.27.0","chokidar":"4.0.3","react-dom":"19.2.0","whatwg-url":"15.1.0"},"react":"19.2.0","gaxios":"^7.0.0","uri-js":"npm:uri-js-replace","esbuild":"0.27.0","chokidar":"4.0.3","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.0.0","react-dom":"19.2.0","whatwg-url":"15.1.0","https-proxy-agent":"^7.0.0"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site","code-scan-action"],"_npmVersion":"11.5.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","ora":"^5.4.1","pem":"^1.15.1","tsx":"^4.20.6","zod":"^3.25.76","cors":"^2.8.5","glob":"^13.0.0","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^11.1.0","async":"^3.2.6","chalk":"^4.1.2","execa":"^9.6.0","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.3","http-z":"^8.1.1","jks-js":"^1.1.4","mathjs":"^15.1.0","openai":"^6.9.1","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.16.0","express":"^5.1.0","js-yaml":"^4.1.1","winston":"^3.18.3","chokidar":"4.0.3","debounce":"^2.2.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","lru-cache":"^11.2.2","minimatch":"^10.1.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","node-cache":"^5.1.2","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.7","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"^5.14.0","python-shell":"^5.0.0","cache-manager":"^4.1.0","csv-stringify":"^6.6.0","@inquirer/core":"^10.3.2","@openai/agents":"^0.3.3","better-sqlite3":"12.4.6","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^4.3.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.2","text-extensions":"^3.1.0","@inquirer/editor":"^4.2.23","@inquirer/select":"^4.4.2","socket.io-client":"^4.8.1","@anthropic-ai/sdk":"^0.71.0","@inquirer/confirm":"^5.1.21","binary-extensions":"^3.1.0","@googleapis/sheets":"^12.0.0","@inquirer/checkbox":"^4.3.2","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.4","cache-manager-fs-hash":"^3.0.0","@modelcontextprotocol/sdk":"1.22.0","@apidevtools/json-schema-ref-parser":"^12.0.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","jest":"^30.2.0","knip":"^5.70.2","nock":"^14.0.10","madge":"^8.0.0","sharp":"^0.34.5","vitest":"^4.0.14","nodemon":"^3.1.11","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"3.6.2","@swc/core":"^1.15.3","@swc/jest":"^0.2.39","pdf-parse":"^1.1.4","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.57.0","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/jest":"^30.0.0","@types/node":"^24.10.1","drizzle-kit":"^0.31.7","@types/async":"^3.2.25","@types/jsdom":"^21.1.7","concurrently":"^9.2.1","@adaline/groq":"1.9.0","@jest/globals":"^30.2.0","@smithy/types":"^4.9.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.7.0","@adaline/types":"1.9.1","@aws-sdk/types":"^3.936.0","@biomejs/biome":"^2.3.7","@fal-ai/client":"^1.7.2","@types/express":"^5.0.5","@types/js-yaml":"^4.0.9","@adaline/google":"1.10.0","@adaline/openai":"1.11.0","@adaline/vertex":"1.9.0","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.13","read-excel-file":"^6.0.1","@adaline/gateway":"1.10.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","winston-transport":"^4.9.0","@adaline/anthropic":"1.9.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.4","source-map-support":"^0.5.21","zod-to-json-schema":"^3.25.0","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.6.0","@adaline/together-ai":"1.6.0","@types/cache-manager":"^4.0.6","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.4","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@types/cache-manager-fs-hash":"^0.0.5","@anthropic-ai/claude-agent-sdk":"^0.1.53","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.941.0","@aws-sdk/credential-provider-sso":"^3.940.0","@aws-sdk/client-sagemaker-runtime":"^3.940.0","@aws-sdk/client-bedrock-agent-runtime":"^3.940.0"},"optionalDependencies":{"sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","pdf-parse":"^1.1.4","playwright":"^1.57.0","@adaline/groq":"1.9.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.7.0","@adaline/types":"1.9.1","@fal-ai/client":"^1.7.2","@slack/web-api":"^7.12.0","@adaline/google":"1.10.0","@adaline/openai":"1.11.0","@adaline/vertex":"1.9.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.3.13","read-excel-file":"^6.0.1","@adaline/gateway":"1.10.0","@azure/msal-node":"^3.8.3","playwright-extra":"^4.3.6","@adaline/provider":"1.5.1","@openai/codex-sdk":"^0.63.0","@adaline/anthropic":"1.9.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.4","google-auth-library":"^10.5.0","@adaline/open-router":"1.6.0","@adaline/together-ai":"1.6.0","@swc/core-darwin-x64":"^1.15.3","@ibm-cloud/watsonx-ai":"^1.7.4","@biomejs/cli-linux-x64":"2.3.7","@biomejs/cli-win32-x64":"2.3.7","@swc/core-darwin-arm64":"^1.15.3","@biomejs/cli-darwin-x64":"2.3.7","@swc/core-linux-x64-gnu":"^1.15.3","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.3","@swc/core-win32-x64-msvc":"^1.15.3","@biomejs/cli-darwin-arm64":"2.3.7","@smithy/node-http-handler":"^4.4.5","@biomejs/cli-linux-x64-musl":"2.3.7","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.57.0","@rollup/rollup-linux-x64-gnu":"^4.53.3","@anthropic-ai/claude-agent-sdk":"^0.1.53","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.941.0","@aws-sdk/credential-provider-sso":"^3.940.0","@aws-sdk/client-sagemaker-runtime":"^3.940.0","@aws-sdk/client-bedrock-agent-runtime":"^3.940.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.119.14_1764612820911_0.0427493988487615","host":"s3://npm-registry-packages-npm-production"}},"0.120.0":{"name":"promptfoo","version":"0.120.0","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.120.0","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"fcfc85acf1f26acfd349dd3399dbc71e514b0898","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.120.0.tgz","fileCount":322,"integrity":"sha512-TnVj59VyGQvIHJ8uCkhuKlOx0bd4fKwOigwbVj5i0uacaNjoos7zkA8T1O9DD40EeHxi/BAxRqgfqCWnWH6rEg==","signatures":[{"sig":"MEUCIBUb601OuYMa5LMfIR6GkyOigKkmY7dLmqpGnj3iMpcsAiEAhGoCnGlQfX6oCIGzuQgZWkkAr2Y+1eben4a5TUruP5Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.120.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23273943},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"npm":">=10.0.0 <11.0.0 || >=11.6.4","node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"c0b47e4a10b38a7a54c782b32fc779802dfaf72e","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,ts-node,@actions/core,@actions/github,@octokit/rest,nock\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"19.2.1","esbuild":"0.27.1","chokidar":"5.0.0","react-dom":"19.2.1","whatwg-url":"15.1.0"},"react":"19.2.1","gaxios":"^7.0.0","uri-js":"npm:uri-js-replace","esbuild":"0.27.1","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.0.0","react-dom":"19.2.1","whatwg-url":"15.1.0","https-proxy-agent":"^7.0.0","webpack-dev-server":{"express":"^4.22.0"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site","code-scan-action"],"_npmVersion":"11.6.4","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","ora":"^9.0.0","pem":"^1.15.1","tsx":"^4.20.6","zod":"^3.25.76","cors":"^2.8.5","glob":"^13.0.0","keyv":"^5.5.4","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^13.0.0","async":"^3.2.6","chalk":"^5.0.0","execa":"^9.6.0","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.3","http-z":"^8.1.1","jks-js":"^1.1.4","mathjs":"^15.1.0","openai":"^6.9.1","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.16.0","express":"^5.2.1","js-yaml":"^4.1.1","winston":"^3.18.3","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","keyv-file":"^5.3.3","lru-cache":"^11.2.2","minimatch":"^10.1.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.7","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"^5.14.0","python-shell":"^5.0.0","cache-manager":"^7.2.5","csv-stringify":"^6.6.0","@inquirer/core":"^11.0.1","@openai/agents":"^0.3.3","better-sqlite3":"^12.5.0","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^5.0.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.2","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.1","@inquirer/select":"^5.0.1","socket.io-client":"^4.8.1","@anthropic-ai/sdk":"^0.71.0","@inquirer/confirm":"^6.0.1","binary-extensions":"^3.1.0","@googleapis/sheets":"^12.0.0","@inquirer/checkbox":"^5.0.1","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.4","@modelcontextprotocol/sdk":"1.24.2","@apidevtools/json-schema-ref-parser":"^15.0.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^5.70.2","nock":"^14.0.10","madge":"^8.0.0","sharp":"^0.34.5","tsdown":"^0.17.0-beta.5","vitest":"^4.0.14","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"^3.7.3","pdf-parse":"^2.0.0","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.57.0","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/node":"^24.10.1","drizzle-kit":"^0.31.7","@types/async":"^3.2.25","@types/jsdom":"^27.0.0","concurrently":"^9.2.1","@adaline/groq":"1.10.0","@smithy/types":"^4.9.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.8.0","@adaline/types":"1.10.0","@aws-sdk/types":"^3.936.0","@biomejs/biome":"^2.3.8","@fal-ai/client":"^1.7.2","@types/express":"^5.0.5","@types/js-yaml":"^4.0.9","@adaline/google":"1.12.0","@adaline/openai":"1.12.0","@adaline/vertex":"1.10.0","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.13","read-excel-file":"^6.0.1","@adaline/gateway":"1.11.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.7.0","winston-transport":"^4.9.0","@adaline/anthropic":"1.10.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.4","source-map-support":"^0.5.21","zod-to-json-schema":"^3.25.0","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.7.0","@adaline/together-ai":"1.7.0","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.4","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.1.58","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.946.0","@aws-sdk/credential-provider-sso":"^3.940.0","@aws-sdk/client-sagemaker-runtime":"^3.946.0","@aws-sdk/client-bedrock-agent-runtime":"^3.946.0"},"optionalDependencies":{"sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","@swc/core":"^1.15.3","pdf-parse":"^2.0.0","playwright":"^1.57.0","@adaline/groq":"1.10.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.8.0","@adaline/types":"1.10.0","@fal-ai/client":"^1.7.2","@slack/web-api":"^7.12.0","@adaline/google":"1.12.0","@adaline/openai":"1.12.0","@adaline/vertex":"1.10.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.3.13","read-excel-file":"^6.0.1","@adaline/gateway":"1.11.0","@azure/msal-node":"^3.8.3","playwright-extra":"^4.3.6","@adaline/provider":"1.7.0","@openai/codex-sdk":"^0.64.0","@adaline/anthropic":"1.10.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.4","google-auth-library":"^10.5.0","@adaline/open-router":"1.7.0","@adaline/together-ai":"1.7.0","@swc/core-darwin-x64":"^1.15.3","@ibm-cloud/watsonx-ai":"^1.7.4","@biomejs/cli-linux-x64":"2.3.8","@biomejs/cli-win32-x64":"2.3.8","@swc/core-darwin-arm64":"^1.15.3","@biomejs/cli-darwin-x64":"2.3.8","@swc/core-linux-x64-gnu":"^1.15.3","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.3","@swc/core-win32-x64-msvc":"^1.15.3","@biomejs/cli-darwin-arm64":"2.3.8","@smithy/node-http-handler":"^4.4.5","@biomejs/cli-linux-x64-musl":"2.3.8","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.57.0","@rollup/rollup-linux-x64-gnu":"^4.53.3","@anthropic-ai/claude-agent-sdk":"^0.1.58","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.946.0","@aws-sdk/credential-provider-sso":"^3.940.0","@aws-sdk/client-sagemaker-runtime":"^3.946.0","@aws-sdk/client-bedrock-agent-runtime":"^3.946.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.120.0_1765222868539_0.5559410761873995","host":"s3://npm-registry-packages-npm-production"}},"0.120.1":{"name":"promptfoo","version":"0.120.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.120.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"5eaeacf67fccc04cbd2cce6b8710fdf1f2fa569c","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.120.1.tgz","fileCount":322,"integrity":"sha512-qzyU60mhgj8fCT5myK/3LAbeiGACZmVKlC0dZ9DC5RTVYCOH0R4PblDHBDBdWtQ3LZhMvxROCwwDxBahwEn7dw==","signatures":[{"sig":"MEUCIQChFcQqH/6v47MjuP+hQaotNIfylHIYlE3IdF/TWYIOwwIgU/xp7UF3JGTAqTh1Sv6u+254Bd+dkYmJ/RkFLGuO/mM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.120.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23276567},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"npm":">=10.0.0 <11.0.0 || >=11.6.4","node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"8503fed16ba7647a40f8dcacaa88aa410e390ce9","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,ts-node,@actions/core,@actions/github,@octokit/rest,nock\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"19.2.1","esbuild":"0.27.1","chokidar":"5.0.0","react-dom":"19.2.1","whatwg-url":"15.1.0"},"react":"19.2.1","gaxios":"^7.0.0","uri-js":"npm:uri-js-replace","esbuild":"0.27.1","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.0.0","react-dom":"19.2.1","whatwg-url":"15.1.0","https-proxy-agent":"^7.0.0","webpack-dev-server":{"express":"^4.22.0"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site","code-scan-action"],"_npmVersion":"11.6.4","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","ora":"^9.0.0","pem":"^1.15.1","tsx":"^4.20.6","zod":"^3.25.76","cors":"^2.8.5","glob":"^13.0.0","keyv":"^5.5.4","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^13.0.0","async":"^3.2.6","chalk":"^5.0.0","execa":"^9.6.0","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.3","http-z":"^8.1.1","jks-js":"^1.1.4","mathjs":"^15.1.0","openai":"^6.9.1","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.16.0","express":"^5.2.1","js-yaml":"^4.1.1","winston":"^3.18.3","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","keyv-file":"^5.3.3","lru-cache":"^11.2.2","minimatch":"^10.1.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.7","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"^5.14.0","python-shell":"^5.0.0","cache-manager":"^7.2.5","csv-stringify":"^6.6.0","@inquirer/core":"^11.0.1","@openai/agents":"^0.3.3","better-sqlite3":"^12.5.0","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^5.0.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.2","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.1","@inquirer/select":"^5.0.1","socket.io-client":"^4.8.1","@anthropic-ai/sdk":"^0.71.0","@inquirer/confirm":"^6.0.1","binary-extensions":"^3.1.0","@googleapis/sheets":"^12.0.0","@inquirer/checkbox":"^5.0.1","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.4","@modelcontextprotocol/sdk":"1.24.2","@apidevtools/json-schema-ref-parser":"^15.0.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^5.70.2","nock":"^14.0.10","madge":"^8.0.0","sharp":"^0.34.5","tsdown":"^0.17.0-beta.5","vitest":"^4.0.14","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"^3.7.3","pdf-parse":"^2.0.0","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.57.0","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/node":"^24.10.1","drizzle-kit":"^0.31.7","@types/async":"^3.2.25","@types/jsdom":"^27.0.0","concurrently":"^9.2.1","@adaline/groq":"1.10.0","@smithy/types":"^4.9.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.8.0","@adaline/types":"1.10.0","@aws-sdk/types":"^3.936.0","@biomejs/biome":"^2.3.8","@fal-ai/client":"^1.7.2","@types/express":"^5.0.5","@types/js-yaml":"^4.0.9","@adaline/google":"1.12.0","@adaline/openai":"1.12.0","@adaline/vertex":"1.10.0","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.13","read-excel-file":"^6.0.1","@adaline/gateway":"1.11.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.7.0","winston-transport":"^4.9.0","@adaline/anthropic":"1.10.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.4","source-map-support":"^0.5.21","zod-to-json-schema":"^3.25.0","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.7.0","@adaline/together-ai":"1.7.0","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.4","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.1.60","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.946.0","@aws-sdk/credential-provider-sso":"^3.940.0","@aws-sdk/client-sagemaker-runtime":"^3.946.0","@aws-sdk/client-bedrock-agent-runtime":"^3.946.0"},"optionalDependencies":{"sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","@swc/core":"^1.15.3","pdf-parse":"^2.0.0","playwright":"^1.57.0","@adaline/groq":"1.10.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.8.0","@adaline/types":"1.10.0","@fal-ai/client":"^1.7.2","@slack/web-api":"^7.12.0","@adaline/google":"1.12.0","@adaline/openai":"1.12.0","@adaline/vertex":"1.10.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.3.13","read-excel-file":"^6.0.1","@adaline/gateway":"1.11.0","@azure/msal-node":"^3.8.3","playwright-extra":"^4.3.6","@adaline/provider":"1.7.0","@openai/codex-sdk":"^0.64.0","@adaline/anthropic":"1.10.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.4","google-auth-library":"^10.5.0","@adaline/open-router":"1.7.0","@adaline/together-ai":"1.7.0","@swc/core-darwin-x64":"^1.15.3","@ibm-cloud/watsonx-ai":"^1.7.4","@biomejs/cli-linux-x64":"2.3.8","@biomejs/cli-win32-x64":"2.3.8","@swc/core-darwin-arm64":"^1.15.3","@biomejs/cli-darwin-x64":"2.3.8","@swc/core-linux-x64-gnu":"^1.15.3","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.3","@swc/core-win32-x64-msvc":"^1.15.3","@biomejs/cli-darwin-arm64":"2.3.8","@smithy/node-http-handler":"^4.4.5","@biomejs/cli-linux-x64-musl":"2.3.8","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.57.0","@rollup/rollup-linux-x64-gnu":"^4.53.3","@anthropic-ai/claude-agent-sdk":"^0.1.60","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.946.0","@aws-sdk/credential-provider-sso":"^3.940.0","@aws-sdk/client-sagemaker-runtime":"^3.946.0","@aws-sdk/client-bedrock-agent-runtime":"^3.946.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.120.1_1765226488260_0.7030992967339129","host":"s3://npm-registry-packages-npm-production"}},"0.120.2":{"name":"promptfoo","version":"0.120.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.120.2","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"6c67e4e623a889f124b8d32b0d19e09aab65e5de","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.120.2.tgz","fileCount":323,"integrity":"sha512-Yz7LLBUGfTLrSw+JGCchZ5RoMtET/S1URgYorxS7iKn5KkaPF0/huDhYCbuJHfCmBdESmZP5V4bpuDHXGGhBiw==","signatures":[{"sig":"MEQCICAIvIkIA9G/cTKt4t/2FLLlhcKFlV0w/jjE1H8HNCclAiB0agr6KLTt2a3kfMtT7o9t1QLq4ouhYygt+U/pEOv6BQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22924746},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"npm":">=10.0.0 <11.0.0 || >=11.6.4","node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"00a792b1bf8e0a8476320a94ab1c3c3c0183ee27","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,ts-node,@actions/core,@actions/github,@octokit/rest,nock\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},"overrides":{"*":{"react":"19.2.1","esbuild":"0.27.1","chokidar":"5.0.0","react-dom":"19.2.1","whatwg-url":"15.1.0"},"react":"19.2.1","gaxios":"^7.0.0","uri-js":"npm:uri-js-replace","esbuild":"0.27.1","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.0.0","react-dom":"19.2.1","whatwg-url":"15.1.0","https-proxy-agent":"^7.0.0","webpack-dev-server":{"express":"^4.22.0"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site","code-scan-action"],"_npmVersion":"11.6.4","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","ora":"^9.0.0","pem":"^1.15.1","tsx":"^4.20.6","zod":"^3.25.76","cors":"^2.8.5","glob":"^13.0.0","keyv":"^5.5.4","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^13.0.0","async":"^3.2.6","chalk":"^5.0.0","execa":"^9.6.0","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.3","http-z":"^8.1.1","jks-js":"^1.1.4","mathjs":"^15.1.0","openai":"^6.9.1","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.16.0","express":"^5.2.1","js-yaml":"^4.1.1","winston":"^3.18.3","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","keyv-file":"^5.3.3","lru-cache":"^11.2.2","minimatch":"^10.1.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","protobufjs":"^7.5.4","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.44.7","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"^5.14.0","python-shell":"^5.0.0","cache-manager":"^7.2.5","csv-stringify":"^6.6.0","@inquirer/core":"^11.0.1","@openai/agents":"^0.3.3","better-sqlite3":"^12.5.0","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^5.0.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.2","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.1","@inquirer/select":"^5.0.1","socket.io-client":"^4.8.1","@anthropic-ai/sdk":"^0.71.0","@inquirer/confirm":"^6.0.1","binary-extensions":"^3.1.0","@googleapis/sheets":"^12.0.0","@inquirer/checkbox":"^5.0.1","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.4","@modelcontextprotocol/sdk":"1.24.2","@apidevtools/json-schema-ref-parser":"^15.0.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^5.70.2","nock":"^14.0.10","madge":"^8.0.0","sharp":"^0.34.5","tsdown":"^0.17.0-beta.5","vitest":"^4.0.14","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"^3.7.3","pdf-parse":"^2.0.0","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.57.0","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/node":"^24.10.1","drizzle-kit":"^0.31.7","@types/async":"^3.2.25","@types/jsdom":"^27.0.0","concurrently":"^9.2.1","@adaline/groq":"1.10.0","@smithy/types":"^4.9.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.8.0","@adaline/types":"1.10.0","@aws-sdk/types":"^3.936.0","@biomejs/biome":"^2.3.8","@fal-ai/client":"^1.7.2","@types/express":"^5.0.5","@types/js-yaml":"^4.0.9","@adaline/google":"1.12.0","@adaline/openai":"1.12.0","@adaline/vertex":"1.10.0","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.13","read-excel-file":"^6.0.1","@adaline/gateway":"1.11.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.7.0","winston-transport":"^4.9.0","@adaline/anthropic":"1.10.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.4","source-map-support":"^0.5.21","zod-to-json-schema":"^3.25.0","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.7.0","@adaline/together-ai":"1.7.0","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.4","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.1.61","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.946.0","@aws-sdk/credential-provider-sso":"^3.940.0","@aws-sdk/client-sagemaker-runtime":"^3.946.0","@aws-sdk/client-bedrock-agent-runtime":"^3.946.0"},"optionalDependencies":{"sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","@swc/core":"^1.15.3","pdf-parse":"^2.0.0","playwright":"^1.57.0","@adaline/groq":"1.10.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.8.0","@adaline/types":"1.10.0","@fal-ai/client":"^1.7.2","@slack/web-api":"^7.12.0","@adaline/google":"1.12.0","@adaline/openai":"1.12.0","@adaline/vertex":"1.10.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.3.13","read-excel-file":"^6.0.1","@adaline/gateway":"1.11.0","@azure/msal-node":"^3.8.3","playwright-extra":"^4.3.6","@adaline/provider":"1.7.0","@openai/codex-sdk":"^0.64.0","@adaline/anthropic":"1.10.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.4","google-auth-library":"^10.5.0","@adaline/open-router":"1.7.0","@adaline/together-ai":"1.7.0","@swc/core-darwin-x64":"^1.15.3","@ibm-cloud/watsonx-ai":"^1.7.4","@biomejs/cli-linux-x64":"2.3.8","@biomejs/cli-win32-x64":"2.3.8","@swc/core-darwin-arm64":"^1.15.3","@biomejs/cli-darwin-x64":"2.3.8","@swc/core-linux-x64-gnu":"^1.15.3","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.3","@swc/core-win32-x64-msvc":"^1.15.3","@biomejs/cli-darwin-arm64":"2.3.8","@smithy/node-http-handler":"^4.4.5","@biomejs/cli-linux-x64-musl":"2.3.8","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.57.0","@rollup/rollup-linux-x64-gnu":"^4.53.3","@anthropic-ai/claude-agent-sdk":"^0.1.61","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.946.0","@aws-sdk/credential-provider-sso":"^3.940.0","@aws-sdk/client-sagemaker-runtime":"^3.946.0","@aws-sdk/client-bedrock-agent-runtime":"^3.946.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.120.2_1765292703966_0.22293643611609082","host":"s3://npm-registry-packages-npm-production"}},"0.120.3":{"name":"promptfoo","version":"0.120.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.120.3","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"9fad68018e39c02646b35139f2f42a1c6561d6a7","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.120.3.tgz","fileCount":322,"integrity":"sha512-OdkYhMRQobuUcZI/VXz3EEDlCbTagdIqC7a2h3dp41QgR4S0qO8c6RG7Vm3OQ26Wg1MXPjLTtFCheW9joRd5KA==","signatures":[{"sig":"MEUCIBL1kx6MkaR/yaIxyhi8KoRyXmhjhbjBcSyWOvyMkicfAiEAvDyja312mnn4KZV0ccIV16RSWWawS2tJtONLk8FNFMM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.120.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23631113},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"a12c9f501762abfc7cd1f08ba5a369894fc2b8f3","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,ts-node,@actions/core,@actions/github,@octokit/rest,nock\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"19.2.1","esbuild":"0.27.1","chokidar":"5.0.0","react-dom":"19.2.1","whatwg-url":"15.1.0"},"react":"19.2.1","gaxios":"^7.0.0","uri-js":"npm:uri-js-replace","esbuild":"0.27.1","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.0.0","react-dom":"19.2.1","whatwg-url":"15.1.0","https-proxy-agent":"^7.0.0","webpack-dev-server":{"express":"^4.22.0"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site","code-scan-action"],"_npmVersion":"11.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","ora":"^9.0.0","pem":"^1.15.1","tsx":"^4.20.6","zod":"^3.25.76","cors":"^2.8.5","glob":"^13.0.0","keyv":"^5.5.4","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^13.0.0","async":"^3.2.6","chalk":"^5.0.0","execa":"^9.6.0","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.3","http-z":"^8.1.1","jks-js":"^1.1.4","mathjs":"^15.1.0","openai":"^6.9.1","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.16.0","express":"^5.2.1","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","keyv-file":"^5.3.3","lru-cache":"^11.2.2","minimatch":"^10.1.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","protobufjs":"^7.5.4","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.0","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"^5.14.0","python-shell":"^5.0.0","cache-manager":"^7.2.5","csv-stringify":"^6.6.0","@inquirer/core":"^11.0.1","@openai/agents":"^0.3.3","better-sqlite3":"^12.5.0","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^5.0.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.2","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.1","@inquirer/select":"^5.0.1","socket.io-client":"^4.8.1","@anthropic-ai/sdk":"^0.71.1","@inquirer/confirm":"^6.0.1","binary-extensions":"^3.1.0","@googleapis/sheets":"^12.0.0","@inquirer/checkbox":"^5.0.1","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.4","@modelcontextprotocol/sdk":"^1.24.3","@apidevtools/json-schema-ref-parser":"^15.0.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^5.70.2","nock":"^14.0.10","madge":"^8.0.0","sharp":"^0.34.5","tsdown":"^0.17.0-beta.5","vitest":"^4.0.14","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"^3.7.3","pdf-parse":"^2.0.0","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.57.0","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/node":"^24.10.1","drizzle-kit":"^0.31.7","@types/async":"^3.2.25","@types/jsdom":"^27.0.0","concurrently":"^9.2.1","@adaline/groq":"1.10.0","@smithy/types":"^4.9.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.8.0","@adaline/types":"1.10.0","@aws-sdk/types":"^3.936.0","@biomejs/biome":"^2.3.8","@fal-ai/client":"^1.7.2","@types/express":"^5.0.5","@types/js-yaml":"^4.0.9","@adaline/google":"1.12.0","@adaline/openai":"1.12.0","@adaline/vertex":"1.10.0","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.13","read-excel-file":"^6.0.1","@adaline/gateway":"1.11.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.7.0","winston-transport":"^4.9.0","@adaline/anthropic":"1.10.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.4","source-map-support":"^0.5.21","zod-to-json-schema":"^3.25.0","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.7.0","@adaline/together-ai":"1.7.0","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.5","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.1.61","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.946.0","@aws-sdk/credential-provider-sso":"^3.940.0","@aws-sdk/client-sagemaker-runtime":"^3.946.0","@aws-sdk/client-bedrock-agent-runtime":"^3.946.0"},"optionalDependencies":{"sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","@swc/core":"^1.15.3","pdf-parse":"^2.0.0","playwright":"^1.57.0","@adaline/groq":"1.10.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.8.0","@adaline/types":"1.10.0","@fal-ai/client":"^1.7.2","@slack/web-api":"^7.12.0","@adaline/google":"1.12.0","@adaline/openai":"1.12.0","@adaline/vertex":"1.10.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.3.13","read-excel-file":"^6.0.1","@adaline/gateway":"1.11.0","@azure/msal-node":"^3.8.3","playwright-extra":"^4.3.6","@adaline/provider":"1.7.0","@openai/codex-sdk":"^0.64.0","@adaline/anthropic":"1.10.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.4","google-auth-library":"^10.5.0","@adaline/open-router":"1.7.0","@adaline/together-ai":"1.7.0","@swc/core-darwin-x64":"^1.15.3","@ibm-cloud/watsonx-ai":"^1.7.5","@biomejs/cli-linux-x64":"2.3.8","@biomejs/cli-win32-x64":"2.3.8","@swc/core-darwin-arm64":"^1.15.3","@biomejs/cli-darwin-x64":"2.3.8","@swc/core-linux-x64-gnu":"^1.15.3","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.3","@swc/core-win32-x64-msvc":"^1.15.3","@biomejs/cli-darwin-arm64":"2.3.8","@smithy/node-http-handler":"^4.4.5","@biomejs/cli-linux-x64-musl":"2.3.8","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.57.0","@rollup/rollup-linux-x64-gnu":"^4.53.3","@anthropic-ai/claude-agent-sdk":"^0.1.61","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.946.0","@aws-sdk/credential-provider-sso":"^3.940.0","@aws-sdk/client-sagemaker-runtime":"^3.946.0","@aws-sdk/client-bedrock-agent-runtime":"^3.946.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.120.3_1765401298431_0.03999110257943639","host":"s3://npm-registry-packages-npm-production"}},"0.120.4":{"name":"promptfoo","version":"0.120.4","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.120.4","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"d09409a99446cfc31d57ef2b169f9247b4b0bbb1","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.120.4.tgz","fileCount":327,"integrity":"sha512-bU8DnkpaX+e+fhA+7XIy/Ehd7qxksD5OD7AYNveeFvyj8eXmc8viqvMyQOgXIeuGxfXfLI15WjfOzsfgs+XjCg==","signatures":[{"sig":"MEUCICqbRkiE0+Kh3FpAcCxZiaY6SVZ2uVSpJzvL+JZnAeGsAiEA2y7VzgEq+eWItcAwXew1Ve3C3M3wcyab4Ko2mH6YTqM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.120.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24073747},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"16305c6d10c4e51a7919cf635c7a5b9fee7db39e","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,ts-node,@actions/core,@actions/github,@octokit/rest,nock\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"19.2.1","esbuild":"0.27.1","chokidar":"5.0.0","react-dom":"19.2.1","whatwg-url":"15.1.0"},"react":"19.2.1","gaxios":"^7.0.0","uri-js":"npm:uri-js-replace","esbuild":"0.27.1","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.0.0","react-dom":"19.2.1","whatwg-url":"15.1.0","https-proxy-agent":"^7.0.0","webpack-dev-server":{"express":"^4.22.0"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site","code-scan-action"],"_npmVersion":"11.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","ora":"^9.0.0","pem":"^1.15.1","tsx":"^4.20.6","zod":"^3.25.76","cors":"^2.8.5","glob":"^13.0.0","keyv":"^5.5.4","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^13.0.0","async":"^3.2.6","chalk":"^5.0.0","execa":"^9.6.0","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.3","http-z":"^8.1.1","jks-js":"^1.1.4","mathjs":"^15.1.0","openai":"^6.9.1","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.16.0","express":"^5.2.1","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","keyv-file":"^5.3.3","lru-cache":"^11.2.2","minimatch":"^10.1.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","protobufjs":"^7.5.4","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.0","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"^5.14.0","python-shell":"^5.0.0","cache-manager":"^7.2.5","csv-stringify":"^6.6.0","@inquirer/core":"^11.0.1","@openai/agents":"^0.3.3","better-sqlite3":"^12.5.0","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^5.0.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.2","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.1","@inquirer/select":"^5.0.1","@opencode-ai/sdk":"^1.0.123","socket.io-client":"^4.8.1","@anthropic-ai/sdk":"^0.71.2","@inquirer/confirm":"^6.0.1","binary-extensions":"^3.1.0","@googleapis/sheets":"^12.0.0","@inquirer/checkbox":"^5.0.1","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.4","@modelcontextprotocol/sdk":"^1.24.3","@apidevtools/json-schema-ref-parser":"^15.0.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^5.70.2","nock":"^14.0.10","madge":"^8.0.0","sharp":"^0.34.5","tsdown":"^0.17.0-beta.5","vitest":"^4.0.14","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"^3.7.3","pdf-parse":"^2.0.0","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.57.0","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/node":"^24.10.1","drizzle-kit":"^0.31.7","@types/async":"^3.2.25","@types/jsdom":"^27.0.0","concurrently":"^9.2.1","@adaline/groq":"1.10.0","@smithy/types":"^4.9.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.8.0","@adaline/types":"1.10.0","@aws-sdk/types":"^3.936.0","@biomejs/biome":"^2.3.8","@fal-ai/client":"^1.7.2","@types/express":"^5.0.5","@types/js-yaml":"^4.0.9","@adaline/google":"1.12.0","@adaline/openai":"1.12.0","@adaline/vertex":"1.10.0","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.13","read-excel-file":"^6.0.1","@adaline/gateway":"1.11.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.7.0","winston-transport":"^4.9.0","@adaline/anthropic":"1.10.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.4","source-map-support":"^0.5.21","zod-to-json-schema":"^3.25.0","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.7.0","@adaline/together-ai":"1.7.0","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.5","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.1.62","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.947.0","@aws-sdk/credential-provider-sso":"^3.940.0","@aws-sdk/client-sagemaker-runtime":"^3.947.0","@aws-sdk/client-bedrock-agent-runtime":"^3.947.0"},"optionalDependencies":{"sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","@swc/core":"^1.15.3","pdf-parse":"^2.0.0","playwright":"^1.57.0","@adaline/groq":"1.10.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.8.0","@adaline/types":"1.10.0","@fal-ai/client":"^1.7.2","@slack/web-api":"^7.12.0","@adaline/google":"1.12.0","@adaline/openai":"1.12.0","@adaline/vertex":"1.10.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.3.13","read-excel-file":"^6.0.1","@adaline/gateway":"1.11.0","@azure/msal-node":"^3.8.3","playwright-extra":"^4.3.6","@adaline/provider":"1.7.0","@openai/codex-sdk":"^0.64.0","@adaline/anthropic":"1.10.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.4","google-auth-library":"^10.5.0","@adaline/open-router":"1.7.0","@adaline/together-ai":"1.7.0","@swc/core-darwin-x64":"^1.15.3","@ibm-cloud/watsonx-ai":"^1.7.5","@biomejs/cli-linux-x64":"2.3.8","@biomejs/cli-win32-x64":"2.3.8","@swc/core-darwin-arm64":"^1.15.3","@biomejs/cli-darwin-x64":"2.3.8","@swc/core-linux-x64-gnu":"^1.15.3","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.3","@swc/core-win32-x64-msvc":"^1.15.3","@biomejs/cli-darwin-arm64":"2.3.8","@smithy/node-http-handler":"^4.4.5","@biomejs/cli-linux-x64-musl":"2.3.8","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.57.0","@rollup/rollup-linux-x64-gnu":"^4.53.3","@anthropic-ai/claude-agent-sdk":"^0.1.62","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.947.0","@aws-sdk/credential-provider-sso":"^3.940.0","@aws-sdk/client-sagemaker-runtime":"^3.947.0","@aws-sdk/client-bedrock-agent-runtime":"^3.947.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.120.4_1765483004219_0.19704003113887292","host":"s3://npm-registry-packages-npm-production"}},"0.120.5":{"name":"promptfoo","version":"0.120.5","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.120.5","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"0a8d935004035c9d1417907a458829bcc90af205","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.120.5.tgz","fileCount":329,"integrity":"sha512-akC546RDSIklR1dQY1jcHim/wVJ7djVjpi69gy6nKJ8cgLX5ycCuqQEmw9Phb788x3ldrlBGlEFRxJDkOHcoKw==","signatures":[{"sig":"MEUCIQCL+XTuanC9zbSFLLdt2Tg6wX6Z32SNeGGYzao2eSMSkQIgHBURd7ybDnksm9xmJgIUCx4DboU382NLiEDeW5yx7B4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.120.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25114585},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"616dcb0ea6646a47d999d59921aa67cd088e5825","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome format --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"tsc --noEmit\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome format --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,ts-node,@actions/core,@actions/github,@octokit/rest,nock\" --ignore-dirs=\"dist,site,examples,node_modules\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome format && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"19.2.3","esbuild":"0.27.1","chokidar":"5.0.0","react-dom":"19.2.3","whatwg-url":"15.1.0"},"react":"19.2.3","gaxios":"^7.0.0","uri-js":"npm:uri-js-replace","esbuild":"0.27.1","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.0.0","react-dom":"19.2.3","whatwg-url":"15.1.0","https-proxy-agent":"^7.0.0","webpack-dev-server":{"express":"^4.22.0"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site","code-scan-action"],"_npmVersion":"11.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","ora":"^9.0.0","pem":"^1.15.1","tsx":"^4.20.6","zod":"^3.25.76","cors":"^2.8.5","glob":"^13.0.0","keyv":"^5.5.4","rfdc":"^1.4.1","rxjs":"^7.8.2","uuid":"^13.0.0","async":"^3.2.6","chalk":"^5.0.0","execa":"^9.6.0","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.3","http-z":"^8.1.1","jks-js":"^1.1.4","mathjs":"^15.1.0","openai":"^6.10.0","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.16.0","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","keyv-file":"^5.3.3","lru-cache":"^11.2.2","minimatch":"^10.1.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","protobufjs":"^7.5.4","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.0","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"^5.14.0","python-shell":"^5.0.0","cache-manager":"^7.2.5","csv-stringify":"^6.6.0","@inquirer/core":"^11.0.1","@openai/agents":"^0.3.4","better-sqlite3":"^12.5.0","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^5.0.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.2","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.1","@inquirer/select":"^5.0.1","@opencode-ai/sdk":"^1.0.123","socket.io-client":"^4.8.1","@anthropic-ai/sdk":"^0.71.2","@inquirer/confirm":"^6.0.1","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.0","@inquirer/checkbox":"^5.0.1","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.4","@modelcontextprotocol/sdk":"^1.24.3","@apidevtools/json-schema-ref-parser":"^15.0.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^5.70.2","nock":"^14.0.10","madge":"^8.0.0","sharp":"^0.34.5","tsdown":"^0.17.0-beta.5","vitest":"^4.0.14","ts-node":"^10.9.2","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"^3.7.3","pdf-parse":"^2.0.0","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.57.0","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/node":"^24.10.1","drizzle-kit":"^0.31.7","@types/async":"^3.2.25","@types/jsdom":"^27.0.0","concurrently":"^9.2.1","@adaline/groq":"1.10.0","@smithy/types":"^4.9.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.8.0","@adaline/types":"1.10.0","@aws-sdk/types":"^3.936.0","@biomejs/biome":"^2.3.8","@fal-ai/client":"^1.7.2","@types/express":"^5.0.5","@types/js-yaml":"^4.0.9","@adaline/google":"1.12.0","@adaline/openai":"1.12.0","@adaline/vertex":"1.10.0","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.13","read-excel-file":"^6.0.1","@adaline/gateway":"1.11.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.7.0","winston-transport":"^4.9.0","@adaline/anthropic":"1.10.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.4","source-map-support":"^0.5.21","zod-to-json-schema":"^3.25.0","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.7.0","@adaline/together-ai":"1.7.0","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.5","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.1.69","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.948.0","@aws-sdk/credential-provider-sso":"^3.940.0","@aws-sdk/client-sagemaker-runtime":"^3.948.0","@aws-sdk/client-bedrock-agent-runtime":"^3.948.0"},"optionalDependencies":{"sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","@swc/core":"^1.15.3","pdf-parse":"^2.0.0","playwright":"^1.57.0","@adaline/groq":"1.10.0","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.8.0","@adaline/types":"1.10.0","@fal-ai/client":"^1.7.2","@slack/web-api":"^7.12.0","@adaline/google":"1.12.0","@adaline/openai":"1.12.0","@adaline/vertex":"1.10.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.3.13","read-excel-file":"^6.0.1","@adaline/gateway":"1.11.0","@azure/msal-node":"^3.8.3","playwright-extra":"^4.3.6","@adaline/provider":"1.7.0","@openai/codex-sdk":"^0.72.0","@adaline/anthropic":"1.10.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.4","google-auth-library":"^10.5.0","@adaline/open-router":"1.7.0","@adaline/together-ai":"1.7.0","@swc/core-darwin-x64":"^1.15.3","@ibm-cloud/watsonx-ai":"^1.7.5","@biomejs/cli-linux-x64":"2.3.8","@biomejs/cli-win32-x64":"2.3.8","@swc/core-darwin-arm64":"^1.15.3","@biomejs/cli-darwin-x64":"2.3.8","@swc/core-linux-x64-gnu":"^1.15.3","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.3","@swc/core-win32-x64-msvc":"^1.15.3","@biomejs/cli-darwin-arm64":"2.3.8","@smithy/node-http-handler":"^4.4.5","@biomejs/cli-linux-x64-musl":"2.3.8","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.57.0","@rollup/rollup-linux-x64-gnu":"^4.53.3","@anthropic-ai/claude-agent-sdk":"^0.1.69","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.948.0","@aws-sdk/credential-provider-sso":"^3.940.0","@aws-sdk/client-sagemaker-runtime":"^3.948.0","@aws-sdk/client-bedrock-agent-runtime":"^3.948.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.120.5_1765922864901_0.1312983585636449","host":"s3://npm-registry-packages-npm-production"}},"0.120.6":{"name":"promptfoo","version":"0.120.6","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.120.6","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"0ee8639169a76f9563c9bb56ebf5ff35996f64c1","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.120.6.tgz","fileCount":329,"integrity":"sha512-dHJhTl9JCK3BmjmjJmuOrw+ZlR/bkuIJaeC5MTp9Q+DX7KmaUvRvYFyX88b+HAYdFrSXLBZf8wdTXi4lcPmS8w==","signatures":[{"sig":"MEYCIQDhn0C9GP0UTjcPt6n2a77Nk8yBUSeAGum8DaASo7gv4gIhANTCtlrgvV5w/gw4dNh8/MBeqUousTTBiJNl86PJyFMw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.120.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25373535},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"20d28dec13bca8bd2d67c88cd39e1df5cd9922d0","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"tsc --noEmit\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/github,@octokit/rest,nock\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"19.2.3","esbuild":"0.27.2","chokidar":"5.0.0","react-dom":"19.2.3","whatwg-url":"15.1.0"},"react":"19.2.3","gaxios":"^7.0.0","uri-js":"npm:uri-js-replace","esbuild":"0.27.2","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.0.0","react-dom":"19.2.3","whatwg-url":"15.1.0","https-proxy-agent":"^7.0.0","webpack-dev-server":{"express":"^4.22.0"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site","code-scan-action"],"_npmVersion":"11.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","ora":"^9.0.0","pem":"^1.15.1","tsx":"^4.20.6","zod":"^3.25.76","cors":"^2.8.5","glob":"^13.0.0","keyv":"^5.5.4","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.0.0","execa":"^9.6.0","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.3","http-z":"^8.1.1","jks-js":"^1.1.4","mathjs":"^15.1.0","openai":"^6.14.0","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.16.0","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","keyv-file":"^5.3.3","lru-cache":"^11.2.2","minimatch":"^10.1.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","protobufjs":"^7.5.4","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.0","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"^5.14.0","python-shell":"^5.0.0","cache-manager":"^7.2.5","csv-stringify":"^6.6.0","@inquirer/core":"^11.0.1","@openai/agents":"^0.3.4","better-sqlite3":"^12.5.0","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^5.0.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.2","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.1","@inquirer/select":"^5.0.1","@opencode-ai/sdk":"^1.0.123","socket.io-client":"^4.8.1","@anthropic-ai/sdk":"^0.71.2","@inquirer/confirm":"^6.0.1","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.0","@inquirer/checkbox":"^5.0.1","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.2.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.4","@opentelemetry/resources":"^2.2.0","@modelcontextprotocol/sdk":"^1.24.3","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/sdk-trace-node":"^2.2.0","@apidevtools/json-schema-ref-parser":"^15.0.0","@opentelemetry/semantic-conventions":"^1.38.0","@opentelemetry/exporter-trace-otlp-http":"^0.208.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^5.70.2","nock":"^14.0.10","madge":"^8.0.0","sharp":"^0.34.5","tsdown":"^0.18.0","vitest":"^4.0.14","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"^3.7.3","pdf-parse":"^2.0.0","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.57.0","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/node":"^24.10.1","drizzle-kit":"^0.31.7","@types/async":"^3.2.25","@types/jsdom":"^27.0.0","concurrently":"^9.2.1","@adaline/groq":"1.10.2","@smithy/types":"^4.9.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.8.2","@adaline/types":"1.10.0","@aws-sdk/types":"^3.936.0","@biomejs/biome":"^2.3.8","@fal-ai/client":"^1.7.2","@types/express":"^5.0.5","@types/js-yaml":"^4.0.9","@adaline/google":"1.12.1","@adaline/openai":"1.14.0","@adaline/vertex":"1.10.1","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.13","read-excel-file":"^6.0.1","@adaline/gateway":"1.11.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.7.0","winston-transport":"^4.9.0","@adaline/anthropic":"1.10.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.4","source-map-support":"^0.5.21","zod-to-json-schema":"^3.25.0","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.7.0","@adaline/together-ai":"1.7.0","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.5","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.1.70","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.953.0","@aws-sdk/credential-provider-sso":"^3.940.0","@aws-sdk/client-sagemaker-runtime":"^3.953.0","@aws-sdk/client-bedrock-agent-runtime":"^3.953.0"},"optionalDependencies":{"sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","@swc/core":"^1.15.3","pdf-parse":"^2.0.0","playwright":"^1.57.0","@adaline/groq":"1.10.2","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.8.2","@adaline/types":"1.10.0","@fal-ai/client":"^1.7.2","@slack/web-api":"^7.12.0","@adaline/google":"1.12.1","@adaline/openai":"1.14.0","@adaline/vertex":"1.10.1","@azure/identity":"^4.13.0","node-sql-parser":"^5.3.13","read-excel-file":"^6.0.1","@adaline/gateway":"1.11.0","@azure/msal-node":"^3.8.3","playwright-extra":"^4.3.6","@adaline/provider":"1.7.0","@openai/codex-sdk":"^0.72.0","@adaline/anthropic":"1.10.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.4","google-auth-library":"^10.5.0","@adaline/open-router":"1.7.0","@adaline/together-ai":"1.7.0","@swc/core-darwin-x64":"^1.15.3","@ibm-cloud/watsonx-ai":"^1.7.5","@biomejs/cli-linux-x64":"2.3.10","@biomejs/cli-win32-x64":"2.3.10","@swc/core-darwin-arm64":"^1.15.3","@biomejs/cli-darwin-x64":"2.3.10","@swc/core-linux-x64-gnu":"^1.15.3","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.3","@swc/core-win32-x64-msvc":"^1.15.3","@biomejs/cli-darwin-arm64":"2.3.10","@smithy/node-http-handler":"^4.4.5","@biomejs/cli-linux-x64-musl":"2.3.10","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.57.0","@rollup/rollup-linux-x64-gnu":"^4.53.3","@anthropic-ai/claude-agent-sdk":"^0.1.70","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.953.0","@aws-sdk/credential-provider-sso":"^3.940.0","@aws-sdk/client-sagemaker-runtime":"^3.953.0","@aws-sdk/client-bedrock-agent-runtime":"^3.953.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.120.6_1766169158532_0.2680599115629021","host":"s3://npm-registry-packages-npm-production"}},"0.120.7":{"name":"promptfoo","version":"0.120.7","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.120.7","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"ff63f0b6a96cf5a6e8a1d674fadd1477c8404212","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.120.7.tgz","fileCount":328,"integrity":"sha512-gHCVVgmFbOPaEAiCYLaaALA6s/VKM6PlnlfIkt4sF/pIqUUf3Bm0J2AM9+Is4jA5QALxBhvj+73nMB9IfsVokg==","signatures":[{"sig":"MEYCIQDXYMU0f5ngMooS5vlcz4CIS+0lzB8KOJmsfw0wso6v4gIhALMBNoARHkpy7bSipipwWUsf86JlWkAPy8VJLNpYqrSK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.120.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25579188},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"30410fd68a920ffafb72623df8d0cb442736bdda","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"tsc --noEmit\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/github,@octokit/rest,nock\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"19.2.3","esbuild":"0.27.2","chokidar":"5.0.0","react-dom":"19.2.3","whatwg-url":"15.1.0"},"react":"19.2.3","gaxios":"^7.0.0","uri-js":"npm:uri-js-replace","esbuild":"0.27.2","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.0.0","react-dom":"19.2.3","whatwg-url":"15.1.0","https-proxy-agent":"^7.0.0","webpack-dev-server":{"express":"^4.22.0"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site","code-scan-action"],"_npmVersion":"11.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","ora":"^9.0.0","pem":"^1.15.1","tsx":"^4.20.6","zod":"^3.25.76","cors":"^2.8.5","glob":"^13.0.0","keyv":"^5.5.4","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.0.0","execa":"^9.6.0","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.3","http-z":"^8.1.1","jks-js":"^1.1.4","mathjs":"^15.1.0","openai":"^6.14.0","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.16.0","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","keyv-file":"^5.3.3","lru-cache":"^11.2.2","minimatch":"^10.1.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","protobufjs":"^7.5.4","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.0","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"^5.14.0","python-shell":"^5.0.0","cache-manager":"^7.2.5","csv-stringify":"^6.6.0","@inquirer/core":"^11.0.1","@openai/agents":"^0.3.4","better-sqlite3":"^12.5.0","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^5.0.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.2","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.1","@inquirer/select":"^5.0.1","@opencode-ai/sdk":"^1.0.123","socket.io-client":"^4.8.1","@anthropic-ai/sdk":"^0.71.2","@inquirer/confirm":"^6.0.1","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.0","@inquirer/checkbox":"^5.0.1","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.2.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.4","@opentelemetry/resources":"^2.2.0","@modelcontextprotocol/sdk":"^1.24.3","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/sdk-trace-node":"^2.2.0","@apidevtools/json-schema-ref-parser":"^15.0.0","@opentelemetry/semantic-conventions":"^1.38.0","@opentelemetry/exporter-trace-otlp-http":"^0.208.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^5.70.2","nock":"^14.0.10","madge":"^8.0.0","sharp":"^0.34.5","tsdown":"^0.18.0","vitest":"^4.0.14","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"^3.7.3","pdf-parse":"^2.0.0","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.57.0","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/node":"^24.10.1","drizzle-kit":"^0.31.7","@types/async":"^3.2.25","@types/jsdom":"^27.0.0","concurrently":"^9.2.1","@adaline/groq":"1.10.2","@smithy/types":"^4.9.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.8.2","@adaline/types":"1.10.0","@aws-sdk/types":"^3.936.0","@biomejs/biome":"^2.3.8","@fal-ai/client":"^1.7.2","@types/express":"^5.0.5","@types/js-yaml":"^4.0.9","@adaline/google":"1.12.1","@adaline/openai":"1.14.0","@adaline/vertex":"1.10.1","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.13","read-excel-file":"^6.0.1","@adaline/gateway":"1.11.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.7.0","winston-transport":"^4.9.0","@adaline/anthropic":"1.10.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.4","source-map-support":"^0.5.21","zod-to-json-schema":"^3.25.0","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.7.0","@adaline/together-ai":"1.7.0","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.5","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.1.70","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.953.0","@aws-sdk/credential-provider-sso":"^3.940.0","@aws-sdk/client-sagemaker-runtime":"^3.953.0","@aws-sdk/client-bedrock-agent-runtime":"^3.953.0"},"optionalDependencies":{"sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","@swc/core":"^1.15.3","pdf-parse":"^2.0.0","playwright":"^1.57.0","@adaline/groq":"1.10.2","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.8.2","@adaline/types":"1.10.0","@fal-ai/client":"^1.7.2","@slack/web-api":"^7.12.0","@adaline/google":"1.12.1","@adaline/openai":"1.14.0","@adaline/vertex":"1.10.1","@azure/identity":"^4.13.0","node-sql-parser":"^5.3.13","read-excel-file":"^6.0.1","@adaline/gateway":"1.11.0","@azure/msal-node":"^3.8.3","playwright-extra":"^4.3.6","@adaline/provider":"1.7.0","@openai/codex-sdk":"^0.72.0","@adaline/anthropic":"1.10.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.4","google-auth-library":"^10.5.0","@adaline/open-router":"1.7.0","@adaline/together-ai":"1.7.0","@swc/core-darwin-x64":"^1.15.3","@ibm-cloud/watsonx-ai":"^1.7.5","@biomejs/cli-linux-x64":"2.3.10","@biomejs/cli-win32-x64":"2.3.10","@swc/core-darwin-arm64":"^1.15.3","@biomejs/cli-darwin-x64":"2.3.10","@swc/core-linux-x64-gnu":"^1.15.3","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.3","@swc/core-win32-x64-msvc":"^1.15.3","@biomejs/cli-darwin-arm64":"2.3.10","@smithy/node-http-handler":"^4.4.5","@biomejs/cli-linux-x64-musl":"2.3.10","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.57.0","@rollup/rollup-linux-x64-gnu":"^4.53.3","@anthropic-ai/claude-agent-sdk":"^0.1.70","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.953.0","@aws-sdk/credential-provider-sso":"^3.940.0","@aws-sdk/client-sagemaker-runtime":"^3.953.0","@aws-sdk/client-bedrock-agent-runtime":"^3.953.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.120.7_1766171743948_0.4427785940649527","host":"s3://npm-registry-packages-npm-production"}},"0.120.8":{"name":"promptfoo","version":"0.120.8","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.120.8","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"c17e3e3025a58a73fab1f2519354067e4b8b8069","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.120.8.tgz","fileCount":328,"integrity":"sha512-cZZ9ac/SG+wQQmTPgEBSLRcDpiSFA1s7jex2US83c2OdGgHlporodLNjPf3GOvNObj2QbcTmQVxrvpfctkgerg==","signatures":[{"sig":"MEYCIQDP4ECj2OdAa89pTheff2X6mD/hGENc+mQlwSl5Jcx9owIhANGfS653Cf+aBI6//nENAJL7qYj6aQyCBtmrwgSSPLmj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.120.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25523408},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"792ec9ccc605f83e878bdd17cfb24e09374e3d7b","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"tsc --noEmit\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/github,@octokit/rest,nock\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"19.2.3","esbuild":"0.27.2","chokidar":"5.0.0","react-dom":"19.2.3","whatwg-url":"15.1.0"},"react":"19.2.3","gaxios":"^7.0.0","uri-js":"npm:uri-js-replace","esbuild":"0.27.2","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.0.0","react-dom":"19.2.3","whatwg-url":"15.1.0","https-proxy-agent":"^7.0.0","webpack-dev-server":{"express":"^4.22.0"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site","code-scan-action"],"_npmVersion":"11.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","ora":"^9.0.0","pem":"^1.15.1","tsx":"^4.20.6","zod":"^3.25.76","cors":"^2.8.5","glob":"^13.0.0","keyv":"^5.5.4","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.0.0","execa":"^9.6.0","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.3","http-z":"^8.1.1","jks-js":"^1.1.4","mathjs":"^15.1.0","openai":"^6.14.0","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.16.0","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","keyv-file":"^5.3.3","lru-cache":"^11.2.2","minimatch":"^10.1.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","protobufjs":"^7.5.4","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.0","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"^5.14.0","python-shell":"^5.0.0","cache-manager":"^7.2.5","csv-stringify":"^6.6.0","@inquirer/core":"^11.0.1","@openai/agents":"^0.3.4","better-sqlite3":"^12.5.0","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^5.0.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.2","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.1","@inquirer/select":"^5.0.1","@opencode-ai/sdk":"^1.0.123","socket.io-client":"^4.8.1","@anthropic-ai/sdk":"^0.71.2","@inquirer/confirm":"^6.0.1","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.0","@inquirer/checkbox":"^5.0.1","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.2.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.4","@opentelemetry/resources":"^2.2.0","@modelcontextprotocol/sdk":"^1.24.3","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/sdk-trace-node":"^2.2.0","@apidevtools/json-schema-ref-parser":"^15.0.0","@opentelemetry/semantic-conventions":"^1.38.0","@opentelemetry/exporter-trace-otlp-http":"^0.208.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^5.70.2","nock":"^14.0.10","madge":"^8.0.0","sharp":"^0.34.5","tsdown":"^0.18.0","vitest":"^4.0.14","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"^3.7.3","pdf-parse":"^2.0.0","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.57.0","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/node":"^24.10.1","drizzle-kit":"^0.31.7","@types/async":"^3.2.25","@types/jsdom":"^27.0.0","concurrently":"^9.2.1","@adaline/groq":"1.10.2","@smithy/types":"^4.9.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.8.2","@adaline/types":"1.10.0","@aws-sdk/types":"^3.936.0","@biomejs/biome":"^2.3.8","@fal-ai/client":"^1.7.2","@types/express":"^5.0.5","@types/js-yaml":"^4.0.9","@adaline/google":"1.12.1","@adaline/openai":"1.14.0","@adaline/vertex":"1.10.1","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.13","read-excel-file":"^6.0.1","@adaline/gateway":"1.11.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.7.0","winston-transport":"^4.9.0","@adaline/anthropic":"1.10.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.4","source-map-support":"^0.5.21","zod-to-json-schema":"^3.25.0","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.7.0","@adaline/together-ai":"1.7.0","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.5","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.1.72","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.954.0","@aws-sdk/credential-provider-sso":"^3.940.0","@aws-sdk/client-sagemaker-runtime":"^3.954.0","@aws-sdk/client-bedrock-agent-runtime":"^3.954.0"},"optionalDependencies":{"sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","@swc/core":"^1.15.3","pdf-parse":"^2.0.0","playwright":"^1.57.0","@adaline/groq":"1.10.2","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.8.2","@adaline/types":"1.10.0","@fal-ai/client":"^1.7.2","@slack/web-api":"^7.12.0","@adaline/google":"1.12.1","@adaline/openai":"1.14.0","@adaline/vertex":"1.10.1","@azure/identity":"^4.13.0","node-sql-parser":"^5.3.13","read-excel-file":"^6.0.1","@adaline/gateway":"1.11.0","@azure/msal-node":"^3.8.3","playwright-extra":"^4.3.6","@adaline/provider":"1.7.0","@openai/codex-sdk":"^0.72.0","@adaline/anthropic":"1.10.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.4","google-auth-library":"^10.5.0","@adaline/open-router":"1.7.0","@adaline/together-ai":"1.7.0","@swc/core-darwin-x64":"^1.15.3","@ibm-cloud/watsonx-ai":"^1.7.5","@biomejs/cli-linux-x64":"2.3.10","@biomejs/cli-win32-x64":"2.3.10","@swc/core-darwin-arm64":"^1.15.3","@biomejs/cli-darwin-x64":"2.3.10","@swc/core-linux-x64-gnu":"^1.15.3","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.3","@swc/core-win32-x64-msvc":"^1.15.3","@biomejs/cli-darwin-arm64":"2.3.10","@smithy/node-http-handler":"^4.4.5","@biomejs/cli-linux-x64-musl":"2.3.10","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.57.0","@rollup/rollup-linux-x64-gnu":"^4.53.3","@anthropic-ai/claude-agent-sdk":"^0.1.72","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.954.0","@aws-sdk/credential-provider-sso":"^3.940.0","@aws-sdk/client-sagemaker-runtime":"^3.954.0","@aws-sdk/client-bedrock-agent-runtime":"^3.954.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.120.8_1766336849540_0.014769885469882782","host":"s3://npm-registry-packages-npm-production"}},"0.120.10":{"name":"promptfoo","version":"0.120.10","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.120.10","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/main.js","promptfoo":"dist/src/main.js"},"dist":{"shasum":"364a882f55d61169862633436d4edded8a9e6a3c","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.120.10.tgz","fileCount":320,"integrity":"sha512-/4pUodFQfACDfTYcZXIez8UYVm7A1PZXZJZWTqgt/WYKyStI5CxISrxdMe4bKHKSUCdqsXY8cTTvC5TOg32V4A==","signatures":[{"sig":"MEUCIFrNfapT+VPsJYkdBrJcmshDZkkZABU0XwCZhnPgjyUoAiEAsu/4Q8uhzIReyJKIy3NaU+32tWSOco/a27dyW3TM/W4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.120.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23916817},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"05e3cfe9612baa660ae351587ea80b3aa5d81d5d","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/main.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/main.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"tsc --noEmit\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/github,@octokit/rest,nock\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"19.2.3","esbuild":"0.27.2","chokidar":"5.0.0","react-dom":"19.2.3","whatwg-url":"15.1.0"},"react":"19.2.3","gaxios":"^7.0.0","uri-js":"npm:uri-js-replace","esbuild":"0.27.2","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.0.0","react-dom":"19.2.3","whatwg-url":"15.1.0","https-proxy-agent":"^7.0.0","webpack-dev-server":{"express":"^4.22.0"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site","code-scan-action"],"_npmVersion":"11.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","ora":"^9.0.0","pem":"~1.14.8","tsx":"^4.20.6","zod":"^3.25.76","cors":"^2.8.5","glob":"^13.0.0","keyv":"^5.5.4","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.0.0","execa":"^9.6.0","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.3","http-z":"^8.1.1","jks-js":"^1.1.4","mathjs":"^15.1.0","openai":"^6.14.0","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.16.0","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","keyv-file":"^5.3.3","lru-cache":"^11.2.2","minimatch":"^10.1.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.0","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"^5.14.0","python-shell":"^5.0.0","cache-manager":"^7.2.5","csv-stringify":"^6.6.0","@inquirer/core":"^11.0.1","@openai/agents":"^0.3.4","better-sqlite3":"^12.5.0","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^5.0.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.2","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.1","@inquirer/select":"^5.0.1","@opencode-ai/sdk":"^1.0.123","socket.io-client":"^4.8.1","@anthropic-ai/sdk":"^0.71.2","@inquirer/confirm":"^6.0.1","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.0","@inquirer/checkbox":"^5.0.1","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.2.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.4","@opentelemetry/resources":"^2.2.0","@modelcontextprotocol/sdk":"^1.25.1","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/sdk-trace-node":"^2.2.0","@apidevtools/json-schema-ref-parser":"^15.0.0","@opentelemetry/semantic-conventions":"^1.38.0","@opentelemetry/exporter-trace-otlp-http":"^0.208.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^5.70.2","nock":"^14.0.10","madge":"^8.0.0","sharp":"^0.34.5","tsdown":"^0.18.0","vitest":"^4.0.14","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"^3.7.3","pdf-parse":"^2.0.0","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.57.0","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/node":"^24.10.1","drizzle-kit":"^0.31.7","@types/async":"^3.2.25","@types/jsdom":"^27.0.0","concurrently":"^9.2.1","@adaline/groq":"1.10.4","@smithy/types":"^4.9.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.8.4","@adaline/types":"1.11.0","@aws-sdk/types":"^3.936.0","@biomejs/biome":"^2.3.8","@fal-ai/client":"^1.7.2","@types/express":"^5.0.5","@types/js-yaml":"^4.0.9","@adaline/google":"1.13.0","@adaline/openai":"1.15.1","@adaline/vertex":"1.10.3","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.13","read-excel-file":"^6.0.1","@adaline/gateway":"1.11.1","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.8.0","winston-transport":"^4.9.0","@adaline/anthropic":"1.10.1","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.4","source-map-support":"^0.5.21","zod-to-json-schema":"^3.25.0","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.7.1","@adaline/together-ai":"1.7.1","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.5","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.1.76","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.962.0","@aws-sdk/credential-provider-sso":"^3.940.0","@aws-sdk/client-sagemaker-runtime":"^3.962.0","@aws-sdk/client-bedrock-agent-runtime":"^3.962.0"},"optionalDependencies":{"sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","@swc/core":"^1.15.3","pdf-parse":"^2.0.0","playwright":"^1.57.0","@adaline/groq":"1.10.4","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.8.4","@adaline/types":"1.11.0","@fal-ai/client":"^1.7.2","@slack/web-api":"^7.12.0","@adaline/google":"1.13.0","@adaline/openai":"1.15.1","@adaline/vertex":"1.10.3","@azure/identity":"^4.13.0","node-sql-parser":"^5.3.13","read-excel-file":"^6.0.1","@adaline/gateway":"1.11.1","@azure/msal-node":"^3.8.3","playwright-extra":"^4.3.6","@adaline/provider":"1.8.0","@openai/codex-sdk":"^0.72.0","@adaline/anthropic":"1.10.1","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.4","google-auth-library":"^10.5.0","@adaline/open-router":"1.7.1","@adaline/together-ai":"1.7.1","@swc/core-darwin-x64":"^1.15.3","@ibm-cloud/watsonx-ai":"^1.7.5","@swc/core-darwin-arm64":"^1.15.3","@swc/core-linux-x64-gnu":"^1.15.3","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.3","@swc/core-win32-x64-msvc":"^1.15.3","@smithy/node-http-handler":"^4.4.5","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.57.0","@rollup/rollup-linux-x64-gnu":"^4.53.3","@anthropic-ai/claude-agent-sdk":"^0.1.76","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.962.0","@aws-sdk/credential-provider-sso":"^3.940.0","@aws-sdk/client-sagemaker-runtime":"^3.962.0","@aws-sdk/client-bedrock-agent-runtime":"^3.962.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.120.10_1767735192014_0.7916102241939635","host":"s3://npm-registry-packages-npm-production"}},"0.120.11":{"name":"promptfoo","version":"0.120.11","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.120.11","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"6c6f231a29a9df6b8445ce80d9551a37960e0b2f","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.120.11.tgz","fileCount":325,"integrity":"sha512-mzQ6zcqGUzPKC7gfibDJILhrAen+3ypL+rI4D2uunkXpfNnFOe5W8LtWbObptMLLwwjATdZjocsDBwEUCDbm2A==","signatures":[{"sig":"MEUCIGysqqsVpDMRenIvXm469bPTX68KY7NiFS5bUJDO8vrpAiEA/44wr4T+P/loE6h1t26jAaKcL5v1P1Ixs80sNLRt688=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.120.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23947576},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"935985aec326a13031e8b54bfb812fe42d2dd382","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"tsc --noEmit\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"19.2.3","esbuild":"0.27.2","chokidar":"5.0.0","react-dom":"19.2.3","whatwg-url":"15.1.0"},"react":"19.2.3","gaxios":"^7.0.0","uri-js":"npm:uri-js-replace","esbuild":"0.27.2","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.0.0","react-dom":"19.2.3","whatwg-url":"15.1.0","https-proxy-agent":"^7.0.0","webpack-dev-server":{"express":"^4.22.0"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site","code-scan-action"],"_npmVersion":"11.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","ora":"^9.0.0","pem":"~1.14.8","tsx":"^4.20.6","zod":"^3.25.76","cors":"^2.8.5","glob":"^13.0.0","keyv":"^5.5.4","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.0.0","execa":"^9.6.0","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.3","http-z":"^8.1.1","jks-js":"^1.1.4","mathjs":"^15.1.0","openai":"^6.14.0","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.16.0","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","keyv-file":"^5.3.3","lru-cache":"^11.2.2","minimatch":"^10.1.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.0","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"^5.14.0","python-shell":"^5.0.0","cache-manager":"^7.2.5","csv-stringify":"^6.6.0","@inquirer/core":"^11.0.1","@openai/agents":"^0.3.4","better-sqlite3":"^12.5.0","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^5.0.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.2","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.1","@inquirer/select":"^5.0.1","@opencode-ai/sdk":"^1.0.123","socket.io-client":"^4.8.1","@anthropic-ai/sdk":"^0.71.2","@inquirer/confirm":"^6.0.1","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.0","@inquirer/checkbox":"^5.0.1","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.2.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.4","@opentelemetry/resources":"^2.2.0","@modelcontextprotocol/sdk":"^1.25.2","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/sdk-trace-node":"^2.2.0","@apidevtools/json-schema-ref-parser":"^15.0.0","@opentelemetry/semantic-conventions":"^1.38.0","@opentelemetry/exporter-trace-otlp-http":"^0.208.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^5.70.2","nock":"^14.0.10","madge":"^8.0.0","sharp":"^0.34.5","tsdown":"^0.18.0","vitest":"^4.0.14","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"^3.7.3","pdf-parse":"^2.0.0","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.57.0","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/node":"^24.10.1","drizzle-kit":"^0.31.7","@types/async":"^3.2.25","@types/jsdom":"^27.0.0","concurrently":"^9.2.1","@adaline/groq":"1.10.5","@smithy/types":"^4.9.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@adaline/azure":"1.8.5","@adaline/types":"1.11.0","@aws-sdk/types":"^3.936.0","@biomejs/biome":"^2.3.8","@fal-ai/client":"^1.7.2","@types/express":"^5.0.5","@types/js-yaml":"^4.0.9","@adaline/google":"1.14.3","@adaline/openai":"1.16.0","@adaline/vertex":"1.10.7","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.13","read-excel-file":"^6.0.1","@adaline/gateway":"1.11.1","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","@adaline/provider":"1.8.0","winston-transport":"^4.9.0","@adaline/anthropic":"1.11.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.4","source-map-support":"^0.5.21","zod-to-json-schema":"^3.25.0","@types/cli-progress":"^3.11.6","@adaline/open-router":"1.8.0","@adaline/together-ai":"1.8.0","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.5","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.1.77","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.965.0","@aws-sdk/credential-provider-sso":"^3.940.0","@aws-sdk/client-sagemaker-runtime":"^3.965.0","@aws-sdk/client-bedrock-agent-runtime":"^3.965.0"},"optionalDependencies":{"sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","@swc/core":"^1.15.3","pdf-parse":"^2.0.0","playwright":"^1.57.0","@adaline/groq":"1.10.5","fluent-ffmpeg":"^2.1.3","@adaline/azure":"1.8.5","@adaline/types":"1.11.0","@fal-ai/client":"^1.7.2","@slack/web-api":"^7.12.0","@adaline/google":"1.14.3","@adaline/openai":"1.16.0","@adaline/vertex":"1.10.7","@azure/identity":"^4.13.0","node-sql-parser":"^5.3.13","read-excel-file":"^6.0.1","@adaline/gateway":"1.11.1","@azure/msal-node":"^3.8.3","playwright-extra":"^4.3.6","@adaline/provider":"1.8.0","@openai/codex-sdk":"^0.72.0","@adaline/anthropic":"1.11.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.4","google-auth-library":"^10.5.0","@adaline/open-router":"1.8.0","@adaline/together-ai":"1.8.0","@swc/core-darwin-x64":"^1.15.3","@ibm-cloud/watsonx-ai":"^1.7.5","@swc/core-darwin-arm64":"^1.15.3","@swc/core-linux-x64-gnu":"^1.15.3","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.3","@swc/core-win32-x64-msvc":"^1.15.3","@smithy/node-http-handler":"^4.4.5","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.57.0","@rollup/rollup-linux-x64-gnu":"^4.53.3","@anthropic-ai/claude-agent-sdk":"^0.1.77","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.965.0","@aws-sdk/credential-provider-sso":"^3.940.0","@aws-sdk/client-sagemaker-runtime":"^3.965.0","@aws-sdk/client-bedrock-agent-runtime":"^3.965.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.120.11_1768009162087_0.7205220044537315","host":"s3://npm-registry-packages-npm-production"}},"0.120.12":{"name":"promptfoo","version":"0.120.12","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.120.12","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"c692ff04c17e734025f9f6a3d21a05047497e5c8","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.120.12.tgz","fileCount":319,"integrity":"sha512-nuEpt1mh9jkDtxF0lm8tAyimzElHHnNb3Iha3npDxviI4ynK//cmR2zJ8dU/4aBs6KTWBC4GUj6ncPW8hT7eTQ==","signatures":[{"sig":"MEYCIQCviBQGghndNxR91Wvzm+nWjeGFe0Y8RTXgcJwn91/7dAIhAIgh875kYewmO1RnH1ZRIvWucP1rmqcFwVRGqpPVUfu+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.120.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24210501},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"116ba291d42190e77bb66ad5dbb7ff8f5705434a","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"tsc --noEmit\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"19.2.3","esbuild":"0.27.2","chokidar":"5.0.0","react-dom":"19.2.3","whatwg-url":"15.1.0"},"react":"19.2.3","gaxios":"^7.0.0","uri-js":"npm:uri-js-replace","esbuild":"0.27.2","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.0.0","react-dom":"19.2.3","whatwg-url":"15.1.0","https-proxy-agent":"^7.0.0","webpack-dev-server":{"express":"^4.22.0"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site","code-scan-action"],"_npmVersion":"11.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","ora":"^9.0.0","pem":"~1.14.8","tsx":"^4.20.6","zod":"^3.25.76","cors":"^2.8.5","glob":"^13.0.0","keyv":"^5.5.4","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.0.0","execa":"^9.6.0","jsdom":"^26.1.0","dedent":"^1.7.0","dotenv":"^17.2.3","http-z":"^8.1.1","jks-js":"^1.1.4","mathjs":"^15.1.0","openai":"^6.16.0","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.16.0","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","keyv-file":"^5.3.3","lru-cache":"^11.2.2","minimatch":"^10.1.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.0","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"^5.14.0","python-shell":"^5.0.0","cache-manager":"^7.2.5","csv-stringify":"^6.6.0","@inquirer/core":"^11.0.1","@openai/agents":"^0.3.7","better-sqlite3":"^12.5.0","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^5.0.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.2","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.1","@inquirer/select":"^5.0.1","@opencode-ai/sdk":"^1.0.123","socket.io-client":"^4.8.1","@anthropic-ai/sdk":"^0.71.2","@inquirer/confirm":"^6.0.1","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.0","@inquirer/checkbox":"^5.0.1","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.2.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","zod-validation-error":"^3.5.4","@opentelemetry/resources":"^2.2.0","@modelcontextprotocol/sdk":"^1.25.2","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/sdk-trace-node":"^2.2.0","@apidevtools/json-schema-ref-parser":"^15.0.0","@opentelemetry/semantic-conventions":"^1.38.0","@opentelemetry/exporter-trace-otlp-http":"^0.208.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^5.70.2","nock":"^14.0.10","madge":"^8.0.0","sharp":"^0.34.5","tsdown":"^0.19.0","vitest":"^4.0.14","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"^3.7.3","pdf-parse":"^2.0.0","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.57.0","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/node":"^24.10.1","drizzle-kit":"^0.31.7","@types/async":"^3.2.25","@types/jsdom":"^27.0.0","concurrently":"^9.2.1","@smithy/types":"^4.9.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@aws-sdk/types":"^3.936.0","@biomejs/biome":"^2.3.8","@fal-ai/client":"^1.7.2","@types/express":"^5.0.5","@types/js-yaml":"^4.0.9","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.13","read-excel-file":"^6.0.1","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","winston-transport":"^4.9.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.4","source-map-support":"^0.5.21","zod-to-json-schema":"^3.25.0","@types/cli-progress":"^3.11.6","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.6","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.1.77","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.966.0","@aws-sdk/credential-provider-sso":"^3.940.0","@aws-sdk/client-sagemaker-runtime":"^3.966.0","@aws-sdk/client-bedrock-agent-runtime":"^3.966.0"},"optionalDependencies":{"sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","@swc/core":"^1.15.3","pdf-parse":"^2.0.0","playwright":"^1.57.0","fluent-ffmpeg":"^2.1.3","@fal-ai/client":"^1.7.2","@slack/web-api":"^7.12.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.3.13","read-excel-file":"^6.0.1","@azure/msal-node":"^3.8.3","playwright-extra":"^4.3.6","@openai/codex-sdk":"^0.80.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.4","google-auth-library":"^10.5.0","@swc/core-darwin-x64":"^1.15.3","@ibm-cloud/watsonx-ai":"^1.7.6","@swc/core-darwin-arm64":"^1.15.3","@swc/core-linux-x64-gnu":"^1.15.3","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.3","@swc/core-win32-x64-msvc":"^1.15.3","@smithy/node-http-handler":"^4.4.5","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.57.0","@rollup/rollup-linux-x64-gnu":"^4.53.3","@anthropic-ai/claude-agent-sdk":"^0.1.77","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.966.0","@aws-sdk/credential-provider-sso":"^3.940.0","@aws-sdk/client-sagemaker-runtime":"^3.966.0","@aws-sdk/client-bedrock-agent-runtime":"^3.966.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.120.12_1768261788554_0.5454040596044984","host":"s3://npm-registry-packages-npm-production"}},"0.120.13":{"name":"promptfoo","version":"0.120.13","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.120.13","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"1173f713603f612ebb2f2b79ea713012df72455a","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.120.13.tgz","fileCount":322,"integrity":"sha512-O33pO/6ilUGQQ3os9xwIrv+kNiD/j58rtE+Pkimqt2JIawcWv21s3BqHnnMYYc2cWAmgZASfkjMD/BaTQLMlOg==","signatures":[{"sig":"MEQCIDiY1IsQB/HEXnKM5josYzCiavMsbs0bHFIpXrN3kzU2AiBeQxvz59zn/DjkBptFkmT3+c/gP6yt69nLMw5oMfz/eA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.120.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19474776},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"f7be29b0e158790bea8ce1d371663141211ed938","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"tsc --noEmit\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,ink-testing-library\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"19.2.3","esbuild":"0.27.2","chokidar":"5.0.0","react-dom":"19.2.3","whatwg-url":"15.1.0"},"react":"19.2.3","gaxios":"^7.0.0","uri-js":"npm:uri-js-replace","esbuild":"0.27.2","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.0.0","react-dom":"19.2.3","whatwg-url":"15.1.0","https-proxy-agent":"^7.0.0","webpack-dev-server":{"express":"^4.22.0"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site","code-scan-action"],"_npmVersion":"11.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.7.0","dependencies":{"ws":"^8.18.3","ajv":"^8.17.1","ink":"^6.5.1","ora":"^9.0.0","pem":"~1.14.8","tsx":"^4.20.6","zod":"^4.3.5","cors":"^2.8.5","glob":"^13.0.0","keyv":"^5.5.4","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.0.0","execa":"^9.6.0","jsdom":"^26.1.0","react":"19.2.3","dedent":"^1.7.0","dotenv":"^17.2.3","http-z":"^8.1.1","jks-js":"^1.1.4","mathjs":"^15.1.0","openai":"^6.16.0","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.16.0","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.0.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","keyv-file":"^5.3.3","lru-cache":"^11.2.2","minimatch":"^10.1.1","socket.io":"^4.8.1","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.0","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"^5.14.0","python-shell":"^5.0.0","cache-manager":"^7.2.5","csv-stringify":"^6.6.0","@inquirer/core":"^11.0.1","@openai/agents":"^0.3.7","better-sqlite3":"^12.5.0","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^5.0.1","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.2","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.1","@inquirer/select":"^5.0.1","@opencode-ai/sdk":"^1.0.123","socket.io-client":"^4.8.1","@anthropic-ai/sdk":"^0.71.2","@inquirer/confirm":"^6.0.1","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.0","@inquirer/checkbox":"^5.0.1","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.2.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","@opentelemetry/resources":"^2.2.0","@modelcontextprotocol/sdk":"^1.25.2","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/sdk-trace-node":"^2.2.0","@apidevtools/json-schema-ref-parser":"^15.0.0","@opentelemetry/semantic-conventions":"^1.38.0","@opentelemetry/exporter-trace-otlp-http":"^0.208.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^5.70.2","nock":"^14.0.10","madge":"^8.0.0","sharp":"^0.34.5","tsdown":"^0.19.0","vitest":"^4.0.14","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"^3.7.3","pdf-parse":"^2.0.0","supertest":"^7.1.4","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.57.0","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/node":"^24.10.1","drizzle-kit":"^0.31.7","@types/async":"^3.2.25","@types/jsdom":"^27.0.0","@types/react":"19.2.7","concurrently":"^9.2.1","@smithy/types":"^4.9.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@aws-sdk/types":"^3.936.0","@biomejs/biome":"^2.3.8","@fal-ai/client":"^1.7.2","@types/express":"^5.0.5","@types/js-yaml":"^4.0.9","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.3.13","read-excel-file":"^6.0.1","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","winston-transport":"^4.9.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.4","source-map-support":"^0.5.21","@types/cli-progress":"^3.11.6","ink-testing-library":"^4.0.0","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.6","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.1.77","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.966.0","@aws-sdk/credential-provider-sso":"^3.940.0","@aws-sdk/client-sagemaker-runtime":"^3.966.0","@aws-sdk/client-bedrock-agent-runtime":"^3.966.0"},"optionalDependencies":{"sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","@swc/core":"^1.15.3","pdf-parse":"^2.0.0","playwright":"^1.57.0","fluent-ffmpeg":"^2.1.3","@fal-ai/client":"^1.7.2","@slack/web-api":"^7.12.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.3.13","read-excel-file":"^6.0.1","@azure/msal-node":"^3.8.3","playwright-extra":"^4.3.6","@openai/codex-sdk":"^0.80.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.4","google-auth-library":"^10.5.0","@swc/core-darwin-x64":"^1.15.3","@ibm-cloud/watsonx-ai":"^1.7.6","@swc/core-darwin-arm64":"^1.15.3","@swc/core-linux-x64-gnu":"^1.15.3","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.3","@swc/core-win32-x64-msvc":"^1.15.3","@smithy/node-http-handler":"^4.4.5","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.57.0","@rollup/rollup-linux-x64-gnu":"^4.53.3","@anthropic-ai/claude-agent-sdk":"^0.1.77","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.966.0","@aws-sdk/credential-provider-sso":"^3.940.0","@aws-sdk/client-sagemaker-runtime":"^3.966.0","@aws-sdk/client-bedrock-agent-runtime":"^3.966.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.120.13_1768266756270_0.9149125683240906","host":"s3://npm-registry-packages-npm-production"}},"0.120.14":{"name":"promptfoo","version":"0.120.14","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.120.14","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"7c6bf91cf935de278e62be4d0e18dffecf6d0ca7","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.120.14.tgz","fileCount":322,"integrity":"sha512-hVnw44aAsa/WIpBKfTUIUgTkUBPHABF2i8grqL42cRekPIfX/dl98VhqRzClvAhhg73w3Mi/8AEfZDADq46pTQ==","signatures":[{"sig":"MEYCIQCNP7Rt7i7+l4ivusBWfhkEq7OXe3WafR4XFhS2TqITewIhAOWA9ovoRlKNAQHChX9lA9wN8MoSqRZ6sixMXZhh+45+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.120.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19459697},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"620e67ef2bc35d2ad763dcd755b62797e8519cb3","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"tsc --noEmit\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,ink-testing-library\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"19.2.3","esbuild":"0.27.2","chokidar":"5.0.0","react-dom":"19.2.3","whatwg-url":"15.1.0"},"react":"19.2.3","gaxios":"^7.0.0","uri-js":"npm:uri-js-replace","esbuild":"0.27.2","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.0.0","react-dom":"19.2.3","whatwg-url":"15.1.0","https-proxy-agent":"^7.0.0","webpack-dev-server":{"express":"^4.22.0"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","ink":"^6.6.0","ora":"^9.0.0","pem":"~1.14.8","tsx":"^4.21.0","zod":"^4.3.5","cors":"^2.8.5","glob":"^13.0.0","keyv":"^5.5.5","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.6.2","execa":"^9.6.1","jsdom":"^26.1.0","react":"19.2.3","dedent":"^1.7.1","dotenv":"^17.2.3","http-z":"^8.1.1","jks-js":"^1.1.5","mathjs":"^15.1.0","openai":"^6.16.0","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.18.2","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.2.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","keyv-file":"^5.3.3","lru-cache":"^11.2.4","minimatch":"^10.1.1","socket.io":"^4.8.3","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.1","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"^5.20.0","python-shell":"^5.0.0","cache-manager":"^7.2.8","csv-stringify":"^6.6.0","@inquirer/core":"^11.1.1","@openai/agents":"^0.3.7","better-sqlite3":"^12.6.0","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^5.0.4","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.3","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.4","@inquirer/select":"^5.0.4","@opencode-ai/sdk":"^1.0.123","socket.io-client":"^4.8.3","@anthropic-ai/sdk":"^0.71.2","@inquirer/confirm":"^6.0.4","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.1","@inquirer/checkbox":"^5.0.4","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.3.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","@opentelemetry/resources":"^2.3.0","@modelcontextprotocol/sdk":"^1.25.2","@opentelemetry/sdk-trace-base":"^2.3.0","@opentelemetry/sdk-trace-node":"^2.3.0","@apidevtools/json-schema-ref-parser":"^15.1.3","@opentelemetry/semantic-conventions":"^1.38.0","@opentelemetry/exporter-trace-otlp-http":"^0.209.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^5.80.2","nock":"^14.0.10","madge":"^8.0.0","sharp":"^0.34.5","tsdown":"^0.19.0","vitest":"^4.0.17","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"^3.7.4","pdf-parse":"^2.4.5","supertest":"^7.2.2","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.57.0","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/node":"^24.10.8","drizzle-kit":"^0.31.8","@types/async":"^3.2.25","@types/jsdom":"^27.0.0","@types/react":"19.2.8","concurrently":"^9.2.1","@smithy/types":"^4.12.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@aws-sdk/types":"^3.968.0","@biomejs/biome":"^2.3.11","@fal-ai/client":"~1.7.2","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.4.0","read-excel-file":"^6.0.1","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","winston-transport":"^4.9.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.5","source-map-support":"^0.5.21","@types/cli-progress":"^3.11.6","ink-testing-library":"^4.0.0","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.6","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.2.4","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.968.0","@aws-sdk/credential-provider-sso":"^3.968.0","@aws-sdk/client-sagemaker-runtime":"^3.968.0","@aws-sdk/client-bedrock-agent-runtime":"^3.968.0"},"optionalDependencies":{"hono":"^4.11.4","sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","@swc/core":"^1.15.8","pdf-parse":"^2.4.5","playwright":"^1.57.0","fluent-ffmpeg":"^2.1.3","@fal-ai/client":"~1.7.2","@slack/web-api":"^7.13.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.4.0","read-excel-file":"^6.0.1","@azure/msal-node":"^3.8.4","playwright-extra":"^4.3.6","@openai/codex-sdk":"^0.80.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.5","google-auth-library":"^10.5.0","@swc/core-darwin-x64":"^1.15.8","@ibm-cloud/watsonx-ai":"^1.7.6","@swc/core-darwin-arm64":"^1.15.8","@swc/core-linux-x64-gnu":"^1.15.8","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.8","@swc/core-win32-x64-msvc":"^1.15.8","@smithy/node-http-handler":"^4.4.8","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.57.0","@rollup/rollup-linux-x64-gnu":"^4.55.1","@anthropic-ai/claude-agent-sdk":"^0.2.4","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.968.0","@aws-sdk/credential-provider-sso":"^3.968.0","@aws-sdk/client-sagemaker-runtime":"^3.968.0","@aws-sdk/client-bedrock-agent-runtime":"^3.968.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.120.14_1768417423803_0.01659644988244624","host":"s3://npm-registry-packages-npm-production"}},"0.120.15":{"name":"promptfoo","version":"0.120.15","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.120.15","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"4a58de0962a3e099559199e5e18d5b53b744a7f6","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.120.15.tgz","fileCount":327,"integrity":"sha512-5vGcbmPG15kDY64G9lyFgyhkVOIRddSt9ndUXicj8QGIXO7LIIyK6uHl2K5WFvT4atYa0dOPA4V+EU6BRsxPmg==","signatures":[{"sig":"MEUCIQCmys8oDiJz4dLWXBB3uRjZJU6eJfmfGVjkP/2Xc8yhwAIgJDACOi4EJap+MQhoT2YYxpZ5OTHSt23RCmXzm8VVXts=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.120.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19852492},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"4c06b595180d7805b314aa859fb0f7e8c82423a4","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"tsc --noEmit\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,ink-testing-library\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","storybook":"npm run storybook --prefix src/app","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"19.2.3","esbuild":"0.27.2","chokidar":"5.0.0","react-dom":"19.2.3","whatwg-url":"15.1.0"},"react":"19.2.3","gaxios":"^7.1.3","uri-js":"npm:uri-js-replace","esbuild":"0.27.2","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.2.3","react-dom":"19.2.3","whatwg-url":"15.1.0","https-proxy-agent":"^7.0.6","webpack-dev-server":{"express":"^4.22.1"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^6.0.37","ws":"^8.19.0","ajv":"^8.17.1","ink":"^6.6.0","ora":"^9.0.0","pem":"~1.14.8","tsx":"^4.21.0","zod":"^4.3.5","cors":"^2.8.5","glob":"^13.0.0","keyv":"^5.5.5","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.6.2","execa":"^9.6.1","jsdom":"^26.1.0","react":"19.2.3","dedent":"^1.7.1","dotenv":"^17.2.3","http-z":"^8.1.1","jks-js":"^1.1.5","mathjs":"^15.1.0","openai":"^6.16.0","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.18.2","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.2.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","keyv-file":"^5.3.3","lru-cache":"^11.2.4","minimatch":"^10.1.1","socket.io":"^4.8.3","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.1","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"~5.21.0","python-shell":"^5.0.0","cache-manager":"^7.2.8","csv-stringify":"^6.6.0","@inquirer/core":"^11.1.1","@openai/agents":"^0.3.8","better-sqlite3":"^12.6.0","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^5.0.4","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.3","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.4","@inquirer/select":"^5.0.4","@opencode-ai/sdk":"^1.1.21","socket.io-client":"^4.8.3","@anthropic-ai/sdk":"^0.71.2","@inquirer/confirm":"^6.0.4","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.1","@inquirer/checkbox":"^5.0.4","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.4.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","@opentelemetry/resources":"^2.4.0","@huggingface/transformers":"^3.8.1","@modelcontextprotocol/sdk":"^1.25.2","@opentelemetry/sdk-trace-base":"^2.4.0","@opentelemetry/sdk-trace-node":"^2.4.0","@apidevtools/json-schema-ref-parser":"^15.2.0","@opentelemetry/semantic-conventions":"^1.39.0","@opentelemetry/exporter-trace-otlp-http":"^0.210.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^5.82.0","nock":"^14.0.10","madge":"^8.0.0","sharp":"^0.34.5","tsdown":"^0.19.0","vitest":"^4.0.17","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"^3.8.0","pdf-parse":"^2.4.5","supertest":"^7.2.2","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.57.0","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/node":"^24.10.8","drizzle-kit":"^0.31.8","@types/async":"^3.2.25","@types/jsdom":"^27.0.0","@types/react":"19.2.8","concurrently":"^9.2.1","@smithy/types":"^4.12.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@aws-sdk/types":"^3.969.0","@biomejs/biome":"^2.3.11","@fal-ai/client":"~1.7.2","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.4.0","read-excel-file":"^6.0.1","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","winston-transport":"^4.9.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.5","source-map-support":"^0.5.21","@types/cli-progress":"^3.11.6","ink-testing-library":"^4.0.0","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.6","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.2.12","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.971.0","@aws-sdk/credential-provider-sso":"^3.971.0","@aws-sdk/client-sagemaker-runtime":"^3.971.0","@aws-sdk/client-bedrock-agent-runtime":"^3.971.0"},"optionalDependencies":{"hono":"^4.11.4","sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","@swc/core":"^1.15.8","pdf-parse":"^2.4.5","playwright":"^1.57.0","fluent-ffmpeg":"^2.1.3","@fal-ai/client":"~1.7.2","@slack/web-api":"^7.13.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.4.0","read-excel-file":"^6.0.1","@azure/msal-node":"^5.0.2","playwright-extra":"^4.3.6","@openai/codex-sdk":"^0.87.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.5","google-auth-library":"^10.5.0","@swc/core-darwin-x64":"^1.15.8","@ibm-cloud/watsonx-ai":"^1.7.6","@swc/core-darwin-arm64":"^1.15.8","@swc/core-linux-x64-gnu":"^1.15.8","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.8","@swc/core-win32-x64-msvc":"^1.15.8","@smithy/node-http-handler":"^4.4.8","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.57.0","@rollup/rollup-linux-x64-gnu":"^4.55.1","@anthropic-ai/claude-agent-sdk":"^0.2.12","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.971.0","@aws-sdk/credential-provider-sso":"^3.971.0","@aws-sdk/client-sagemaker-runtime":"^3.971.0","@aws-sdk/client-bedrock-agent-runtime":"^3.971.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.120.15_1768944235640_0.6964446283997057","host":"s3://npm-registry-packages-npm-production"}},"0.120.16":{"name":"promptfoo","version":"0.120.16","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.120.16","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"0e5d75841e85e96f0730ee3a1bc9bb0d77e426f0","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.120.16.tgz","fileCount":341,"integrity":"sha512-HvjOqr6BdGLegpmhHygLYlKMCYGd57nEYzlLAW7FGLdcnkDuuK4D228VtQ95awXlzOMaQqiY0m6JHhi3yJ+idQ==","signatures":[{"sig":"MEUCIQCcBWb31OtlNSv2pJKp0CQ/b9Y9ogOUjCtBBj1oEXlNYQIgFAAB8FYUXjLovTjplP2FZ7oqZv45s1OXqGff+Yrzg/Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.120.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20065030},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"29b6304a44d18d9c225ed92e1c715162d5299328","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"tsc --noEmit\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,ink-testing-library\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","storybook":"npm run storybook --prefix src/app","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"19.2.3","esbuild":"0.27.2","chokidar":"5.0.0","react-dom":"19.2.3","whatwg-url":"15.1.0"},"react":"19.2.3","gaxios":"^7.1.3","uri-js":"npm:uri-js-replace","esbuild":"0.27.2","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.2.3","react-dom":"19.2.3","whatwg-url":"15.1.0","https-proxy-agent":"^7.0.6","webpack-dev-server":{"express":"^4.22.1"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.7.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^6.0.42","ws":"^8.19.0","ajv":"^8.17.1","ink":"^6.6.0","ora":"^9.0.0","pem":"~1.14.8","tsx":"^4.21.0","zod":"^4.3.5","cors":"^2.8.5","glob":"^13.0.0","keyv":"^5.5.5","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.6.2","execa":"^9.6.1","jsdom":"^26.1.0","react":"19.2.3","dedent":"^1.7.1","dotenv":"^17.2.3","http-z":"^8.1.1","jks-js":"^1.1.5","mathjs":"^15.1.0","openai":"^6.16.0","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.18.2","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.2.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","keyv-file":"^5.3.3","lru-cache":"^11.2.4","minimatch":"^10.1.1","socket.io":"^4.8.3","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.1","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"~5.21.0","python-shell":"^5.0.0","cache-manager":"^7.2.8","csv-stringify":"^6.6.0","@inquirer/core":"^11.1.1","@openai/agents":"^0.3.8","better-sqlite3":"^12.6.0","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^5.0.4","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.3","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.4","@inquirer/select":"^5.0.4","@opencode-ai/sdk":"^1.1.23","socket.io-client":"^4.8.3","@anthropic-ai/sdk":"^0.71.2","@inquirer/confirm":"^6.0.4","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.1","@inquirer/checkbox":"^5.0.4","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.4.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","@opentelemetry/resources":"^2.4.0","@huggingface/transformers":"^3.8.1","@modelcontextprotocol/sdk":"^1.25.2","@opentelemetry/sdk-trace-base":"^2.4.0","@opentelemetry/sdk-trace-node":"^2.4.0","@apidevtools/json-schema-ref-parser":"^15.2.0","@opentelemetry/semantic-conventions":"^1.39.0","@opentelemetry/exporter-trace-otlp-http":"^0.210.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^5.82.0","nock":"^14.0.10","madge":"^8.0.0","sharp":"^0.34.5","tsdown":"^0.19.0","vitest":"^4.0.17","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"^3.8.0","pdf-parse":"^2.4.5","supertest":"^7.2.2","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.57.0","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/node":"^24.10.8","drizzle-kit":"^0.31.8","@types/async":"^3.2.25","@types/jsdom":"^27.0.0","@types/react":"19.2.8","concurrently":"^9.2.1","@smithy/types":"^4.12.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@aws-sdk/types":"^3.969.0","@biomejs/biome":"^2.3.11","@fal-ai/client":"~1.7.2","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.4.0","read-excel-file":"^6.0.1","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","winston-transport":"^4.9.0","@aws-sdk/client-s3":"^3.971.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.5","source-map-support":"^0.5.21","@types/cli-progress":"^3.11.6","ink-testing-library":"^4.0.0","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.6","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.2.12","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.971.0","@aws-sdk/credential-provider-sso":"^3.971.0","@aws-sdk/client-sagemaker-runtime":"^3.971.0","@aws-sdk/client-bedrock-agent-runtime":"^3.971.0"},"optionalDependencies":{"hono":"^4.11.4","sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","@swc/core":"^1.15.8","pdf-parse":"^2.4.5","playwright":"^1.57.0","fluent-ffmpeg":"^2.1.3","@fal-ai/client":"~1.7.2","@slack/web-api":"^7.13.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.4.0","read-excel-file":"^6.0.1","@azure/msal-node":"^5.0.2","playwright-extra":"^4.3.6","@openai/codex-sdk":"^0.87.0","@aws-sdk/client-s3":"^3.971.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.5","google-auth-library":"^10.5.0","@swc/core-darwin-x64":"^1.15.8","@ibm-cloud/watsonx-ai":"^1.7.6","@swc/core-darwin-arm64":"^1.15.8","@swc/core-linux-x64-gnu":"^1.15.8","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.8","@swc/core-win32-x64-msvc":"^1.15.8","@smithy/node-http-handler":"^4.4.8","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.57.0","@rollup/rollup-linux-x64-gnu":"^4.55.1","@anthropic-ai/claude-agent-sdk":"^0.2.12","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.971.0","@aws-sdk/credential-provider-sso":"^3.971.0","@aws-sdk/client-sagemaker-runtime":"^3.971.0","@aws-sdk/client-bedrock-agent-runtime":"^3.971.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.120.16_1768966085522_0.24593926465518057","host":"s3://npm-registry-packages-npm-production"}},"0.120.17":{"name":"promptfoo","version":"0.120.17","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.120.17","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"2b7eadb88fbc728aeea2ee5fbdeb6daa478795a4","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.120.17.tgz","fileCount":340,"integrity":"sha512-iRDdEIfdJUGZX58WAfZqrW02r5ZKsNXZQPHa5PvO7CqR4WT1evm9VDowxntIGrQjsYi3A7DybKm00fna4hpk8w==","signatures":[{"sig":"MEUCIQDVjQ8nvywx9El0oWT7Y10yGG5LWN3trYqR/fXukRsRxwIgR8+S5JW1jd4kJMSwIS82FvzdsuQTwuhrTShCuk0lX9o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.120.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20367167},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"a15f78abf573fa04b8c338cb2f452dfdd9530a8f","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"tsc --noEmit\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,ink-testing-library\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","storybook":"npm run storybook --prefix src/app","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"19.2.3","esbuild":"0.27.2","chokidar":"5.0.0","react-dom":"19.2.3","whatwg-url":"15.1.0"},"react":"19.2.3","gaxios":"^7.1.3","uri-js":"npm:uri-js-replace","esbuild":"0.27.2","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.2.3","react-dom":"19.2.3","whatwg-url":"15.1.0","https-proxy-agent":"^7.0.6","webpack-dev-server":{"express":"^4.22.1"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.8.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^6.0.42","ws":"^8.19.0","ajv":"^8.17.1","ink":"^6.6.0","ora":"^9.0.0","pem":"~1.14.8","tsx":"^4.21.0","zod":"^4.3.5","cors":"^2.8.5","glob":"^13.0.0","keyv":"^5.5.5","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.6.2","execa":"^9.6.1","jsdom":"^26.1.0","react":"19.2.3","dedent":"^1.7.1","dotenv":"^17.2.3","http-z":"^8.1.1","jks-js":"^1.1.5","mathjs":"^15.1.0","openai":"^6.16.0","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.18.2","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.2.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","keyv-file":"^5.3.3","lru-cache":"^11.2.4","minimatch":"^10.1.1","socket.io":"^4.8.3","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.1","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"~5.21.1","python-shell":"^5.0.0","cache-manager":"^7.2.8","csv-stringify":"^6.6.0","@inquirer/core":"^11.1.1","@openai/agents":"^0.3.9","better-sqlite3":"^12.6.2","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^5.0.4","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.3","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.4","@inquirer/select":"^5.0.4","@opencode-ai/sdk":"^1.1.25","socket.io-client":"^4.8.3","@anthropic-ai/sdk":"^0.71.2","@inquirer/confirm":"^6.0.4","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.1","@inquirer/checkbox":"^5.0.4","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.4.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","@opentelemetry/resources":"^2.4.0","@huggingface/transformers":"^3.8.1","@modelcontextprotocol/sdk":"^1.25.2","@opentelemetry/sdk-trace-base":"^2.4.0","@opentelemetry/sdk-trace-node":"^2.4.0","@apidevtools/json-schema-ref-parser":"^15.2.1","@opentelemetry/semantic-conventions":"^1.39.0","@opentelemetry/exporter-trace-otlp-http":"^0.210.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^5.82.1","nock":"^14.0.10","madge":"^8.0.0","sharp":"^0.34.5","tsdown":"^0.19.0","vitest":"^4.0.17","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"^3.8.0","pdf-parse":"^2.4.5","supertest":"^7.2.2","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.57.0","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/node":"^24.10.8","drizzle-kit":"^0.31.8","@types/async":"^3.2.25","@types/jsdom":"^27.0.0","@types/react":"19.2.8","concurrently":"^9.2.1","@smithy/types":"^4.12.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@aws-sdk/types":"^3.969.0","@biomejs/biome":"^2.3.11","@fal-ai/client":"~1.7.2","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.4.0","read-excel-file":"^6.0.1","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","winston-transport":"^4.9.0","@aws-sdk/client-s3":"^3.971.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.5","source-map-support":"^0.5.21","@types/cli-progress":"^3.11.6","ink-testing-library":"^4.0.0","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.6","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.2.12","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.971.0","@aws-sdk/credential-provider-sso":"^3.971.0","@aws-sdk/client-sagemaker-runtime":"^3.971.0","@aws-sdk/client-bedrock-agent-runtime":"^3.971.0"},"optionalDependencies":{"hono":"^4.11.4","sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","@swc/core":"^1.15.10","pdf-parse":"^2.4.5","playwright":"^1.57.0","fluent-ffmpeg":"^2.1.3","@fal-ai/client":"~1.7.2","@slack/web-api":"^7.13.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.4.0","read-excel-file":"^6.0.1","@azure/msal-node":"^5.0.2","playwright-extra":"^4.3.6","@openai/codex-sdk":"^0.87.0","@aws-sdk/client-s3":"^3.971.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.5","google-auth-library":"^10.5.0","@swc/core-darwin-x64":"^1.15.10","@ibm-cloud/watsonx-ai":"^1.7.6","@swc/core-darwin-arm64":"^1.15.10","@swc/core-linux-x64-gnu":"^1.15.10","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.10","@swc/core-win32-x64-msvc":"^1.15.10","@smithy/node-http-handler":"^4.4.8","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.57.0","@rollup/rollup-linux-x64-gnu":"^4.55.2","@anthropic-ai/claude-agent-sdk":"^0.2.12","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.971.0","@aws-sdk/credential-provider-sso":"^3.971.0","@aws-sdk/client-sagemaker-runtime":"^3.971.0","@aws-sdk/client-bedrock-agent-runtime":"^3.971.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.120.17_1769141880105_0.8138008516055819","host":"s3://npm-registry-packages-npm-production"}},"0.120.18":{"name":"promptfoo","version":"0.120.18","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.120.18","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"b0724c8d0ece1fe3d6706bdb1335bdaba3f5e5e6","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.120.18.tgz","fileCount":344,"integrity":"sha512-DG8u02AT5rjD78AEMFn5lm4iuNNaQaHMQBkRGNC1DITzkQIYaqsrMqi+fugHiRVuVVIXxJeO4Qwy5RBzHxTqVg==","signatures":[{"sig":"MEQCIB5XrXJYb2p5XpFkcv0uPZlNvAlA6+0Q6KiIzyQ9glrgAiAIkLzjorCOmAhuQ9mHhw6/uN/y/1+gXgzxgbZdVHQ3yQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.120.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20548834},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@huggingface/transformers","@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"8a201e8d4fc0a471017520505c65d9f599741432","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"tsc --noEmit\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,ink-testing-library,@vitest/coverage-v8\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","storybook":"npm run storybook --prefix src/app","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:coverage":"vitest run --coverage && npm run test:coverage --prefix src/app","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"^19.2.4","esbuild":"0.27.2","chokidar":"5.0.0","react-dom":"^19.2.4","whatwg-url":"15.1.0"},"react":"^19.2.4","gaxios":"^7.1.3","uri-js":"npm:uri-js-replace","esbuild":"0.27.2","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.2.4","react-dom":"^19.2.4","whatwg-url":"15.1.0","https-proxy-agent":"^7.0.6","webpack-dev-server":{"express":"^4.22.1"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.8.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^6.0.48","ws":"^8.19.0","ajv":"^8.17.1","ink":"^6.6.0","ora":"^9.1.0","pem":"~1.14.8","tsx":"^4.21.0","zod":"^4.3.6","cors":"^2.8.6","glob":"^13.0.0","keyv":"^5.6.0","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.6.2","execa":"^9.6.1","jsdom":"^26.1.0","react":"^19.2.4","dedent":"^1.7.1","dotenv":"^17.2.3","http-z":"^8.1.1","jks-js":"^1.1.5","mathjs":"^15.1.0","openai":"^6.16.0","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.19.0","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.2.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","keyv-file":"^5.3.3","lru-cache":"^11.2.4","minimatch":"^10.1.1","socket.io":"^4.8.3","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.1","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"~5.21.2","python-shell":"^5.0.0","cache-manager":"^7.2.8","csv-stringify":"^6.6.0","@inquirer/core":"^11.1.1","@openai/agents":"^0.4.2","better-sqlite3":"^12.6.2","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^5.0.4","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.3","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.4","@inquirer/select":"^5.0.4","@opencode-ai/sdk":"^1.1.32","socket.io-client":"^4.8.3","@anthropic-ai/sdk":"^0.71.2","@inquirer/confirm":"^6.0.4","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.1","@inquirer/checkbox":"^5.0.4","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.5.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","@opentelemetry/resources":"^2.5.0","@modelcontextprotocol/sdk":"^1.25.3","@opentelemetry/sdk-trace-base":"^2.5.0","@opentelemetry/sdk-trace-node":"^2.5.0","@apidevtools/json-schema-ref-parser":"^15.2.1","@opentelemetry/semantic-conventions":"^1.39.0","@opentelemetry/exporter-trace-otlp-http":"^0.211.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^5.82.1","nock":"^14.0.10","madge":"^8.0.0","sharp":"^0.34.5","tsdown":"^0.20.1","vitest":"^4.0.18","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"^3.8.1","pdf-parse":"^2.4.5","supertest":"^7.2.2","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.58.0","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/node":"^24.10.8","drizzle-kit":"^0.31.8","@types/async":"^3.2.25","@types/jsdom":"^27.0.0","@types/react":"19.2.8","concurrently":"^9.2.1","@smithy/types":"^4.12.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@aws-sdk/types":"^3.973.0","@biomejs/biome":"^2.3.12","@fal-ai/client":"~1.7.2","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.4.0","read-excel-file":"^6.0.1","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","winston-transport":"^4.9.0","@aws-sdk/client-s3":"^3.975.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.5","source-map-support":"^0.5.21","@types/cli-progress":"^3.11.6","@vitest/coverage-v8":"^4.0.18","ink-testing-library":"^4.0.0","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.7","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.2.19","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.975.0","@aws-sdk/credential-provider-sso":"^3.972.1","@aws-sdk/client-sagemaker-runtime":"^3.975.0","@aws-sdk/client-bedrock-agent-runtime":"^3.975.0"},"optionalDependencies":{"hono":"^4.11.5","sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","@swc/core":"^1.15.10","pdf-parse":"^2.4.5","playwright":"^1.58.0","fluent-ffmpeg":"^2.1.3","@fal-ai/client":"~1.7.2","@slack/web-api":"^7.13.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.4.0","read-excel-file":"^6.0.1","@azure/msal-node":"^5.0.2","playwright-extra":"^4.3.6","@openai/codex-sdk":"^0.92.0","@aws-sdk/client-s3":"^3.975.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.5","google-auth-library":"^10.5.0","@swc/core-darwin-x64":"^1.15.10","@ibm-cloud/watsonx-ai":"^1.7.7","@swc/core-darwin-arm64":"^1.15.10","@swc/core-linux-x64-gnu":"^1.15.10","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.10","@swc/core-win32-x64-msvc":"^1.15.10","@huggingface/transformers":"^3.8.1","@smithy/node-http-handler":"^4.4.8","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.58.0","@rollup/rollup-linux-x64-gnu":"^4.56.0","@anthropic-ai/claude-agent-sdk":"^0.2.19","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.975.0","@aws-sdk/credential-provider-sso":"^3.972.1","@aws-sdk/client-sagemaker-runtime":"^3.975.0","@aws-sdk/client-bedrock-agent-runtime":"^3.975.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.120.18_1769580055610_0.477893998692946","host":"s3://npm-registry-packages-npm-production"}},"0.120.19":{"name":"promptfoo","version":"0.120.19","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.120.19","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"9f05dced2247157e1028def3c98ee56e0a6e6d9e","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.120.19.tgz","fileCount":344,"integrity":"sha512-8evLqoW2aA9dtm66gw3/5zrMNeuNM353bEiUjFee16cSA0jLAPRLDmSmepjBSrRFxP9H6mjsnYnScQQuGti/Ng==","signatures":[{"sig":"MEUCICyeFtqssu34ilH66oOl8AzMalUZlXq9WyVKpDKXBWWZAiEA4Jaj7LcFdhASvkw2r0ZohgP3odysdxsyq7JDqoF+px4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.120.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20560165},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@huggingface/transformers","@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"51d5e8c4d29eba4ab7e5cf7523e2a75fa601c51a","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"tsc --noEmit\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,ink-testing-library,@vitest/coverage-v8\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","storybook":"npm run storybook --prefix src/app","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:coverage":"vitest run --coverage && npm run test:coverage --prefix src/app","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"^19.2.4","esbuild":"0.27.2","chokidar":"5.0.0","react-dom":"^19.2.4","whatwg-url":"15.1.0"},"react":"^19.2.4","gaxios":"^7.1.3","uri-js":"npm:uri-js-replace","esbuild":"0.27.2","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.2.4","react-dom":"^19.2.4","whatwg-url":"15.1.0","https-proxy-agent":"^7.0.6","webpack-dev-server":{"express":"^4.22.1"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.8.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^6.0.49","ws":"^8.19.0","ajv":"^8.17.1","ink":"^6.6.0","ora":"^9.1.0","pem":"~1.14.8","tsx":"^4.21.0","zod":"^4.3.6","cors":"^2.8.6","glob":"^13.0.0","keyv":"^5.6.0","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.6.2","execa":"^9.6.1","jsdom":"^26.1.0","react":"^19.2.4","dedent":"^1.7.1","dotenv":"^17.2.3","http-z":"^8.1.1","jks-js":"^1.1.5","mathjs":"^15.1.0","openai":"^6.16.0","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.19.0","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.2.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","keyv-file":"^5.3.3","lru-cache":"^11.2.4","minimatch":"^10.1.1","socket.io":"^4.8.3","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.1","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"~5.21.2","python-shell":"^5.0.0","cache-manager":"^7.2.8","csv-stringify":"^6.6.0","@inquirer/core":"^11.1.1","@openai/agents":"^0.4.2","better-sqlite3":"^12.6.2","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^5.0.4","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.3","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.4","@inquirer/select":"^5.0.4","@opencode-ai/sdk":"^1.1.34","socket.io-client":"^4.8.3","@anthropic-ai/sdk":"^0.71.2","@inquirer/confirm":"^6.0.4","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.1","@inquirer/checkbox":"^5.0.4","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.5.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","@opentelemetry/resources":"^2.5.0","@modelcontextprotocol/sdk":"^1.25.3","@opentelemetry/sdk-trace-base":"^2.5.0","@opentelemetry/sdk-trace-node":"^2.5.0","@apidevtools/json-schema-ref-parser":"^15.2.1","@opentelemetry/semantic-conventions":"^1.39.0","@opentelemetry/exporter-trace-otlp-http":"^0.211.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^5.82.1","nock":"^14.0.10","madge":"^8.0.0","sharp":"^0.34.5","tsdown":"^0.20.1","vitest":"^4.0.18","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"^3.8.1","pdf-parse":"^2.4.5","supertest":"^7.2.2","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.58.0","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/node":"^24.10.8","drizzle-kit":"^0.31.8","@types/async":"^3.2.25","@types/jsdom":"^27.0.0","@types/react":"19.2.8","concurrently":"^9.2.1","@smithy/types":"^4.12.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@aws-sdk/types":"^3.973.1","@biomejs/biome":"^2.3.13","@fal-ai/client":"~1.7.2","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.4.0","read-excel-file":"^6.0.1","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","winston-transport":"^4.9.0","@aws-sdk/client-s3":"^3.975.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.5","source-map-support":"^0.5.21","@types/cli-progress":"^3.11.6","@vitest/coverage-v8":"^4.0.18","ink-testing-library":"^4.0.0","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.7","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.2.19","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.975.0","@aws-sdk/credential-provider-sso":"^3.972.2","@aws-sdk/client-sagemaker-runtime":"^3.975.0","@aws-sdk/client-bedrock-agent-runtime":"^3.975.0"},"optionalDependencies":{"hono":"^4.11.6","sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","@swc/core":"^1.15.10","pdf-parse":"^2.4.5","playwright":"^1.58.0","fluent-ffmpeg":"^2.1.3","@fal-ai/client":"~1.7.2","@slack/web-api":"^7.13.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.4.0","read-excel-file":"^6.0.1","@azure/msal-node":"^5.0.2","playwright-extra":"^4.3.6","@openai/codex-sdk":"^0.92.0","@aws-sdk/client-s3":"^3.975.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.5","google-auth-library":"^10.5.0","@swc/core-darwin-x64":"^1.15.10","@ibm-cloud/watsonx-ai":"^1.7.7","@swc/core-darwin-arm64":"^1.15.10","@swc/core-linux-x64-gnu":"^1.15.10","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.10","@swc/core-win32-x64-msvc":"^1.15.10","@huggingface/transformers":"^3.8.1","@smithy/node-http-handler":"^4.4.8","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.58.0","@rollup/rollup-linux-x64-gnu":"^4.56.0","@anthropic-ai/claude-agent-sdk":"^0.2.19","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.975.0","@aws-sdk/credential-provider-sso":"^3.972.2","@aws-sdk/client-sagemaker-runtime":"^3.975.0","@aws-sdk/client-bedrock-agent-runtime":"^3.975.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.120.19_1769641329125_0.4058040258609119","host":"s3://npm-registry-packages-npm-production"}},"0.120.20":{"name":"promptfoo","version":"0.120.20","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.120.20","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"96a0d295eb24979e3089ae615c5dfb80eacee4d8","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.120.20.tgz","fileCount":343,"integrity":"sha512-DHMJE2YXxmIdZrDdgLFT8q/Jrc8rYvAmSY26sEPTouBKovlVksClf0G8oApaSUCwg350gwDtpXLYkzj0ZF55zQ==","signatures":[{"sig":"MEQCIEayz0+xiyxaMcke/VMGTzVxrGI8d+DU5kH4gIr6jT8DAiAhKlfpYWXlBJW80M349pph9hRqutcRlbZcVlXChjrJ1A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.120.20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20532489},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@huggingface/transformers","@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":"^20.20.0 || >=22.22.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"e4b64bc647fe78492ff202ed818976bc8e8bc7d1","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"tsc --noEmit\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,ink-testing-library,@vitest/coverage-v8\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","storybook":"npm run storybook --prefix src/app","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:coverage":"vitest run --coverage && npm run test:coverage --prefix src/app","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"^19.2.4","esbuild":"0.27.2","chokidar":"5.0.0","react-dom":"^19.2.4","whatwg-url":"15.1.0"},"react":"^19.2.4","gaxios":"^7.1.3","uri-js":"npm:uri-js-replace","esbuild":"0.27.2","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.2.4","react-dom":"^19.2.4","whatwg-url":"15.1.0","https-proxy-agent":"^7.0.6","webpack-dev-server":{"express":"^4.22.1"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.8.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^6.0.49","ws":"^8.19.0","ajv":"^8.17.1","ink":"^6.6.0","ora":"^9.1.0","pem":"~1.14.8","tsx":"^4.21.0","zod":"^4.3.6","cors":"^2.8.6","glob":"^13.0.0","keyv":"^5.6.0","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.6.2","execa":"^9.6.1","jsdom":"^26.1.0","react":"^19.2.4","dedent":"^1.7.1","dotenv":"^17.2.3","http-z":"^8.1.1","jks-js":"^1.1.5","mathjs":"^15.1.0","openai":"^6.16.0","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.19.0","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.2.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","keyv-file":"^5.3.3","lru-cache":"^11.2.4","minimatch":"^10.1.1","socket.io":"^4.8.3","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.1","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"~5.24.2","python-shell":"^5.0.0","cache-manager":"^7.2.8","csv-stringify":"^6.6.0","@inquirer/core":"^11.1.1","@openai/agents":"^0.4.3","better-sqlite3":"^12.6.2","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^5.0.4","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.3","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.4","@inquirer/select":"^5.0.4","@opencode-ai/sdk":"^1.1.34","socket.io-client":"^4.8.3","@anthropic-ai/sdk":"^0.71.2","@inquirer/confirm":"^6.0.4","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.1","@inquirer/checkbox":"^5.0.4","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.5.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","@opentelemetry/resources":"^2.5.0","@modelcontextprotocol/sdk":"^1.25.3","@opentelemetry/sdk-trace-base":"^2.5.0","@opentelemetry/sdk-trace-node":"^2.5.0","@apidevtools/json-schema-ref-parser":"^15.2.1","@opentelemetry/semantic-conventions":"^1.39.0","@opentelemetry/exporter-trace-otlp-http":"^0.211.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^5.82.1","nock":"^14.0.10","madge":"^8.0.0","sharp":"^0.34.5","tsdown":"^0.20.1","vitest":"^4.0.18","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"^3.8.1","pdf-parse":"^2.4.5","supertest":"^7.2.2","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.58.0","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/node":"^24.10.8","drizzle-kit":"^0.31.8","@types/async":"^3.2.25","@types/jsdom":"^27.0.0","@types/react":"19.2.8","concurrently":"^9.2.1","@smithy/types":"^4.12.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@aws-sdk/types":"^3.973.1","@biomejs/biome":"^2.3.13","@fal-ai/client":"~1.7.2","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.4.0","read-excel-file":"^6.0.1","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","winston-transport":"^4.9.0","@aws-sdk/client-s3":"^3.975.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.5","source-map-support":"^0.5.21","@types/cli-progress":"^3.11.6","@vitest/coverage-v8":"^4.0.18","ink-testing-library":"^4.0.0","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.7","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.2.20","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.975.0","@aws-sdk/credential-provider-sso":"^3.972.2","@aws-sdk/client-sagemaker-runtime":"^3.975.0","@aws-sdk/client-bedrock-agent-runtime":"^3.975.0"},"optionalDependencies":{"hono":"^4.11.6","sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","@swc/core":"^1.15.10","pdf-parse":"^2.4.5","playwright":"^1.58.0","fluent-ffmpeg":"^2.1.3","@fal-ai/client":"~1.7.2","@slack/web-api":"^7.13.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.4.0","read-excel-file":"^6.0.1","@azure/msal-node":"^5.0.2","playwright-extra":"^4.3.6","@openai/codex-sdk":"^0.92.0","@aws-sdk/client-s3":"^3.975.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.5","google-auth-library":"^10.5.0","@swc/core-darwin-x64":"^1.15.10","@ibm-cloud/watsonx-ai":"^1.7.7","@swc/core-darwin-arm64":"^1.15.10","@swc/core-linux-x64-gnu":"^1.15.10","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.10","@swc/core-win32-x64-msvc":"^1.15.10","@huggingface/transformers":"^3.8.1","@smithy/node-http-handler":"^4.4.8","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.58.0","@rollup/rollup-linux-x64-gnu":"^4.56.0","@anthropic-ai/claude-agent-sdk":"^0.2.20","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.975.0","@aws-sdk/credential-provider-sso":"^3.972.2","@aws-sdk/client-sagemaker-runtime":"^3.975.0","@aws-sdk/client-bedrock-agent-runtime":"^3.975.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.120.20_1769658086651_0.8533351345347093","host":"s3://npm-registry-packages-npm-production"}},"0.120.21":{"name":"promptfoo","version":"0.120.21","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.120.21","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"bf98e3b9bf1af866039494ac691653ac35feab8f","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.120.21.tgz","fileCount":344,"integrity":"sha512-vbrLv/BK3kyzGwcDHh1C6NGdr8EssclkA6va/1DJ/ZMlOgYqNnvBzceiniY6OZrlG/rkIvrnxKuNoRVeo5yzcw==","signatures":[{"sig":"MEUCIHpkCy8Ypwkh1nBfOIpB060xqGNgeonEXtEjZQ3IiD4vAiEAvaBNQDGg4GivZ8hYKyejTXOhgc35BGpAW0WCcrhwpAI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.120.21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20844119},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@huggingface/transformers","@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":"^20.20.0 || >=22.22.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"c829ca17a2a923868027f9b56ceb40023fc92362","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"tsc --noEmit\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,ink-testing-library,@vitest/coverage-v8\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","storybook":"npm run storybook --prefix src/app","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postinstall":"[ -d .git ] && npm run hooks:install || true","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","hooks:install":"mkdir -p .git/hooks && ln -sf ../../scripts/pre-commit .git/hooks/pre-commit && echo 'Pre-commit hook installed (runs Biome + Prettier on staged files). Set DISABLE_PRECOMMIT_LINT=1 in .env to skip.'","test:coverage":"vitest run --coverage && npm run test:coverage --prefix src/app","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"^19.2.4","esbuild":"0.27.2","chokidar":"5.0.0","react-dom":"^19.2.4","whatwg-url":"16.0.0"},"react":"^19.2.4","gaxios":"^7.1.3","uri-js":"npm:uri-js-replace","esbuild":"0.27.2","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.2.4","react-dom":"^19.2.4","whatwg-url":"16.0.0","https-proxy-agent":"^7.0.6","webpack-dev-server":{"express":"^4.22.1"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.8.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^6.0.60","ws":"^8.19.0","ajv":"^8.17.1","ink":"^6.6.0","ora":"^9.1.0","pem":"~1.14.8","tsx":"^4.21.0","zod":"^4.3.6","cors":"^2.8.6","glob":"^13.0.0","keyv":"^5.6.0","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.6.2","execa":"^9.6.1","jsdom":"^26.1.0","react":"^19.2.4","dedent":"^1.7.1","dotenv":"^17.2.3","http-z":"^8.1.1","jks-js":"^1.1.5","mathjs":"^15.1.0","openai":"^6.17.0","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.20.0","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.2.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","keyv-file":"^5.3.3","lru-cache":"^11.2.5","minimatch":"^10.1.1","socket.io":"^4.8.3","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.1","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"~5.24.3","python-shell":"^5.0.0","cache-manager":"^7.2.8","csv-stringify":"^6.6.0","@inquirer/core":"^11.1.1","@openai/agents":"^0.4.4","better-sqlite3":"^12.6.2","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^5.0.4","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.3","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.4","@inquirer/select":"^5.0.4","@opencode-ai/sdk":"^1.1.47","socket.io-client":"^4.8.3","@anthropic-ai/sdk":"^0.71.2","@inquirer/confirm":"^6.0.4","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.1","@inquirer/checkbox":"^5.0.4","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.5.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","@opentelemetry/resources":"^2.5.0","@modelcontextprotocol/sdk":"^1.25.3","@opentelemetry/sdk-trace-base":"^2.5.0","@opentelemetry/sdk-trace-node":"^2.5.0","@apidevtools/json-schema-ref-parser":"^15.2.2","@opentelemetry/semantic-conventions":"^1.39.0","@opentelemetry/exporter-trace-otlp-http":"^0.211.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^5.82.1","nock":"^14.0.10","madge":"^8.0.0","sharp":"^0.34.5","tsdown":"^0.20.1","vitest":"^4.0.18","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"^3.8.1","pdf-parse":"^2.4.5","supertest":"^7.2.2","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.58.1","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/node":"^24.10.9","drizzle-kit":"^0.31.8","@types/async":"^3.2.25","@types/jsdom":"^27.0.0","@types/react":"19.2.10","concurrently":"^9.2.1","@smithy/types":"^4.12.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@aws-sdk/types":"^3.973.1","@biomejs/biome":"^2.3.13","@fal-ai/client":"~1.7.2","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.4.0","read-excel-file":"^6.0.3","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","winston-transport":"^4.9.0","@aws-sdk/client-s3":"^3.980.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.5","source-map-support":"^0.5.21","@types/cli-progress":"^3.11.6","@vitest/coverage-v8":"^4.0.18","ink-testing-library":"^4.0.0","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.7","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.2.29","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.980.0","@aws-sdk/credential-provider-sso":"^3.972.3","@aws-sdk/client-sagemaker-runtime":"^3.980.0","@aws-sdk/client-bedrock-agent-runtime":"^3.980.0"},"optionalDependencies":{"hono":"^4.11.7","sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","@swc/core":"^1.15.11","pdf-parse":"^2.4.5","playwright":"^1.58.1","fluent-ffmpeg":"^2.1.3","@fal-ai/client":"~1.7.2","@slack/web-api":"^7.13.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.4.0","read-excel-file":"^6.0.3","@azure/msal-node":"^5.0.3","playwright-extra":"^4.3.6","@openai/codex-sdk":"^0.93.0","@aws-sdk/client-s3":"^3.980.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.5","google-auth-library":"^10.5.0","@swc/core-darwin-x64":"^1.15.11","@ibm-cloud/watsonx-ai":"^1.7.7","@swc/core-darwin-arm64":"^1.15.11","@swc/core-linux-x64-gnu":"^1.15.11","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.11","@swc/core-win32-x64-msvc":"^1.15.11","@huggingface/transformers":"^3.8.1","@smithy/node-http-handler":"^4.4.8","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.58.1","@rollup/rollup-linux-x64-gnu":"^4.57.1","@anthropic-ai/claude-agent-sdk":"^0.2.29","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.980.0","@aws-sdk/credential-provider-sso":"^3.972.3","@aws-sdk/client-sagemaker-runtime":"^3.980.0","@aws-sdk/client-bedrock-agent-runtime":"^3.980.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.120.21_1770147962497_0.3990697326318884","host":"s3://npm-registry-packages-npm-production"}},"0.120.22":{"name":"promptfoo","version":"0.120.22","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.120.22","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"590487f7bfe26c19d76235b49a9a958f6b61b05c","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.120.22.tgz","fileCount":344,"integrity":"sha512-DVKg07WsccW/3MbEH4JgBXC9EA5t5iNvZq+BwDGPtc2gYyg1fS50VAm0/rKCBanJ/QeEmsXXlfcXgbKWsAD46Q==","signatures":[{"sig":"MEYCIQDnYf/P7PNwO+rgeojh1kFBX0SdBDtMixHoMfNmpJd4LgIhAJgdIlfDIQLMtydmb2sMmdZWEJp4DxmZv4bu+1LLUBwj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.120.22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20851063},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@huggingface/transformers","@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":"^20.20.0 || >=22.22.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"461365525027c703ea22949ff1fc1483e96ab024","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"tsc --noEmit\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,ink-testing-library,@vitest/coverage-v8\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","storybook":"npm run storybook --prefix src/app","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postinstall":"[ -d .git ] && npm run hooks:install || true","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","hooks:install":"mkdir -p .git/hooks && ln -sf ../../scripts/pre-commit .git/hooks/pre-commit && echo 'Pre-commit hook installed (runs Biome + Prettier on staged files). Set DISABLE_PRECOMMIT_LINT=1 in .env to skip.'","test:coverage":"vitest run --coverage && npm run test:coverage --prefix src/app","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"^19.2.4","esbuild":"0.27.2","chokidar":"5.0.0","react-dom":"^19.2.4","whatwg-url":"16.0.0"},"react":"^19.2.4","gaxios":"^7.1.3","uri-js":"npm:uri-js-replace","esbuild":"0.27.2","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.2.4","lodash-es":"4.17.23","react-dom":"^19.2.4","whatwg-url":"16.0.0","https-proxy-agent":"^7.0.6","webpack-dev-server":{"express":"^4.22.1"},"@isaacs/brace-expansion":">=5.0.1"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.9.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^6.0.62","ws":"^8.19.0","ajv":"^8.17.1","ink":"^6.6.0","ora":"^9.1.0","pem":"~1.14.8","tsx":"^4.21.0","zod":"^4.3.6","cors":"^2.8.6","glob":"^13.0.0","keyv":"^5.6.0","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.6.2","execa":"^9.6.1","jsdom":"^28.0.0","react":"^19.2.4","dedent":"^1.7.1","dotenv":"^17.2.3","http-z":"^8.1.1","jks-js":"^1.1.5","mathjs":"^15.1.0","openai":"^6.17.0","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.20.0","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.2.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.2","csv-parse":"^6.1.0","keyv-file":"^5.3.3","lru-cache":"^11.2.5","minimatch":"^10.1.1","socket.io":"^4.8.3","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.1","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"~5.24.7","python-shell":"^5.0.0","cache-manager":"^7.2.8","csv-stringify":"^6.6.0","@inquirer/core":"^11.1.1","@openai/agents":"^0.4.4","better-sqlite3":"^12.6.2","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^5.0.4","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.4","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.4","@inquirer/select":"^5.0.4","@opencode-ai/sdk":"^1.1.47","socket.io-client":"^4.8.3","@anthropic-ai/sdk":"^0.72.1","@inquirer/confirm":"^6.0.4","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.1","@inquirer/checkbox":"^5.0.4","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.5.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","@opentelemetry/resources":"^2.5.0","@modelcontextprotocol/sdk":"^1.25.3","@opentelemetry/sdk-trace-base":"^2.5.0","@opentelemetry/sdk-trace-node":"^2.5.0","@apidevtools/json-schema-ref-parser":"^15.2.2","@opentelemetry/semantic-conventions":"^1.39.0","@opentelemetry/exporter-trace-otlp-http":"^0.211.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^5.83.0","nock":"^14.0.10","madge":"^8.0.0","sharp":"^0.34.5","tsdown":"^0.20.1","vitest":"^4.0.18","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"^3.8.1","pdf-parse":"^2.4.5","supertest":"^7.2.2","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.58.1","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/node":"^24.10.9","drizzle-kit":"^0.31.8","@types/async":"^3.2.25","@types/jsdom":"^27.0.0","@types/react":"19.2.10","concurrently":"^9.2.1","@smithy/types":"^4.12.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@aws-sdk/types":"^3.973.1","@biomejs/biome":"^2.3.13","@fal-ai/client":"~1.7.2","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.4.0","read-excel-file":"^6.0.3","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","winston-transport":"^4.9.0","@aws-sdk/client-s3":"^3.980.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.5","source-map-support":"^0.5.21","@types/cli-progress":"^3.11.6","@vitest/coverage-v8":"^4.0.18","ink-testing-library":"^4.0.0","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.7","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.2.29","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.980.0","@aws-sdk/credential-provider-sso":"^3.972.3","@aws-sdk/client-sagemaker-runtime":"^3.980.0","@aws-sdk/client-bedrock-agent-runtime":"^3.980.0"},"optionalDependencies":{"hono":"^4.11.7","sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","@swc/core":"^1.15.11","pdf-parse":"^2.4.5","playwright":"^1.58.1","fluent-ffmpeg":"^2.1.3","@fal-ai/client":"~1.7.2","@slack/web-api":"^7.13.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.4.0","read-excel-file":"^6.0.3","@azure/msal-node":"^5.0.3","playwright-extra":"^4.3.6","@openai/codex-sdk":"^0.93.0","@aws-sdk/client-s3":"^3.980.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.5","google-auth-library":"^10.5.0","@swc/core-darwin-x64":"^1.15.11","@ibm-cloud/watsonx-ai":"^1.7.7","@swc/core-darwin-arm64":"^1.15.11","@swc/core-linux-x64-gnu":"^1.15.11","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.11","@swc/core-win32-x64-msvc":"^1.15.11","@huggingface/transformers":"^3.8.1","@smithy/node-http-handler":"^4.4.8","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.58.1","@rollup/rollup-linux-x64-gnu":"^4.57.1","@anthropic-ai/claude-agent-sdk":"^0.2.29","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.980.0","@aws-sdk/credential-provider-sso":"^3.972.3","@aws-sdk/client-sagemaker-runtime":"^3.980.0","@aws-sdk/client-bedrock-agent-runtime":"^3.980.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.120.22_1770242201527_0.5375048062582382","host":"s3://npm-registry-packages-npm-production"}},"0.120.23":{"name":"promptfoo","version":"0.120.23","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.120.23","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"d37da536fddf100d7ad42228cb505ecbc98f0bf1","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.120.23.tgz","fileCount":341,"integrity":"sha512-kbx0tWdafzscsyCTQCSawFHOFOY0UMVwlwl0F6uLl8DAJAgo6oxaUR37fAP90TCZXXTk7zVz+6pJGFZbK6rC9w==","signatures":[{"sig":"MEYCIQD8PasntILclAJzQ6k5RuMzXWCEwi3zOv1MGK9Drc5ibQIhAJhErCqF9aZ3O5v4h00crpoLMHPluGaVoklbNgbA6Poa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.120.23","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":20867954},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@huggingface/transformers","@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":"^20.20.0 || >=22.22.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"139e03dbb1fbfc994560f4670729d02b71da172d","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"tsc --noEmit\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,ink-testing-library,@vitest/coverage-v8\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","storybook":"npm run storybook --prefix src/app","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postinstall":"[ -d .git ] && npm run hooks:install || true","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","hooks:install":"mkdir -p .git/hooks && ln -sf ../../scripts/pre-commit .git/hooks/pre-commit && echo 'Pre-commit hook installed (runs Biome + Prettier on staged files). Set DISABLE_PRECOMMIT_LINT=1 in .env to skip.'","test:coverage":"vitest run --coverage && npm run test:coverage --prefix src/app","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"^19.2.4","esbuild":"0.27.3","chokidar":"5.0.0","react-dom":"^19.2.4","whatwg-url":"16.0.0"},"react":"^19.2.4","gaxios":"^7.1.3","uri-js":"npm:uri-js-replace","esbuild":"0.27.3","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.2.4","lodash-es":"4.17.23","react-dom":"^19.2.4","whatwg-url":"16.0.0","https-proxy-agent":"^7.0.6","webpack-dev-server":{"express":"^4.22.1"},"@isaacs/brace-expansion":">=5.0.1"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.9.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ai":"^6.0.62","ws":"^8.19.0","ajv":"^8.17.1","ink":"^6.6.0","ora":"^9.1.0","pem":"~1.14.8","tsx":"^4.21.0","zod":"^4.3.6","cors":"^2.8.6","glob":"^13.0.0","keyv":"^5.6.0","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.6.2","execa":"^9.6.1","jsdom":"^28.0.0","react":"^19.2.4","dedent":"^1.7.1","dotenv":"^17.2.3","http-z":"^8.1.1","jks-js":"^1.1.5","mathjs":"^15.1.0","openai":"^6.17.0","opener":"^1.5.2","semver":"^7.7.3","undici":"^7.20.0","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.2.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.3","csv-parse":"^6.1.0","keyv-file":"^5.3.3","lru-cache":"^11.2.5","minimatch":"^10.1.1","socket.io":"^4.8.3","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.1","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"~5.24.7","python-shell":"^5.0.0","cache-manager":"^7.2.8","csv-stringify":"^6.6.0","@inquirer/core":"^11.1.1","@openai/agents":"^0.4.4","better-sqlite3":"^12.6.2","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^5.0.4","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.4","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.4","@inquirer/select":"^5.0.4","@opencode-ai/sdk":"^1.1.48","socket.io-client":"^4.8.3","@anthropic-ai/sdk":"^0.72.1","@inquirer/confirm":"^6.0.4","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.1","@inquirer/checkbox":"^5.0.4","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.5.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","@opentelemetry/resources":"^2.5.0","@modelcontextprotocol/sdk":"^1.25.3","@opentelemetry/sdk-trace-base":"^2.5.0","@opentelemetry/sdk-trace-node":"^2.5.0","@apidevtools/json-schema-ref-parser":"^15.2.2","@opentelemetry/semantic-conventions":"^1.39.0","@opentelemetry/exporter-trace-otlp-http":"^0.211.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^5.83.0","nock":"^14.0.10","madge":"^8.0.0","sharp":"^0.34.5","tsdown":"^0.20.1","vitest":"^4.0.18","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"^3.8.1","pdf-parse":"^2.4.5","supertest":"^7.2.2","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.58.1","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/node":"^24.10.9","drizzle-kit":"^0.31.8","@types/async":"^3.2.25","@types/jsdom":"^27.0.0","@types/react":"19.2.10","concurrently":"^9.2.1","@smithy/types":"^4.12.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@aws-sdk/types":"^3.973.1","@biomejs/biome":"^2.3.14","@fal-ai/client":"~1.8.5","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.4.0","read-excel-file":"^6.0.3","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","winston-transport":"^4.9.0","@aws-sdk/client-s3":"^3.982.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.5","source-map-support":"^0.5.21","@types/cli-progress":"^3.11.6","@vitest/coverage-v8":"^4.0.18","ink-testing-library":"^4.0.0","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.7","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.2.30","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.982.0","@aws-sdk/credential-provider-sso":"^3.972.4","@aws-sdk/client-sagemaker-runtime":"^3.982.0","@aws-sdk/client-bedrock-agent-runtime":"^3.982.0"},"optionalDependencies":{"hono":"^4.11.7","sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","@swc/core":"^1.15.11","pdf-parse":"^2.4.5","playwright":"^1.58.1","fluent-ffmpeg":"^2.1.3","@fal-ai/client":"~1.8.5","@slack/web-api":"^7.13.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.4.0","read-excel-file":"^6.0.3","@azure/msal-node":"^5.0.3","playwright-extra":"^4.3.6","@openai/codex-sdk":"^0.94.0","@aws-sdk/client-s3":"^3.982.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.5","google-auth-library":"^10.5.0","@swc/core-darwin-x64":"^1.15.11","@ibm-cloud/watsonx-ai":"^1.7.7","@swc/core-darwin-arm64":"^1.15.11","@swc/core-linux-x64-gnu":"^1.15.11","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.11","@swc/core-win32-x64-msvc":"^1.15.11","@huggingface/transformers":"^3.8.1","@smithy/node-http-handler":"^4.4.9","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.58.1","@rollup/rollup-linux-x64-gnu":"^4.57.1","@anthropic-ai/claude-agent-sdk":"^0.2.30","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.982.0","@aws-sdk/credential-provider-sso":"^3.972.4","@aws-sdk/client-sagemaker-runtime":"^3.982.0","@aws-sdk/client-bedrock-agent-runtime":"^3.982.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.120.23_1770414922469_0.7459190779888947","host":"s3://npm-registry-packages-npm-production"}},"0.120.24":{"name":"promptfoo","version":"0.120.24","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.120.24","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"7297341e039c5ab28c47e79bd142a4899902908b","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.120.24.tgz","fileCount":341,"integrity":"sha512-oBe4CfAnbzwEo/w+RzvEmICs3k+zp4SwM20h70/0Z3eRPvot5XA5ZBm5Wc9Rwg2hRJhWtTPSIlR7JWmTKbotGw==","signatures":[{"sig":"MEUCIQDRwINAQyyrIxRqc0CknxnEODdcgeQS6IRszs3WuDT5pAIga8BLq/Tiu5dBitiSnB2YH8Zsz7FAkM5/b6It6kAtclU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.120.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21070852},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@huggingface/transformers","@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":"^20.20.0 || >=22.22.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"72845c88641b9ed2b637c6262a1275943abeb715","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"tsc --noEmit\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,ink-testing-library,@vitest/coverage-v8\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","storybook":"npm run storybook --prefix src/app","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postinstall":"[ -d .git ] && npm run hooks:install || true","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","hooks:install":"mkdir -p .git/hooks && ln -sf ../../scripts/pre-commit .git/hooks/pre-commit && echo 'Pre-commit hook installed (runs Biome + Prettier on staged files). Set DISABLE_PRECOMMIT_LINT=1 in .env to skip.'","test:coverage":"vitest run --coverage && npm run test:coverage --prefix src/app","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"^19.2.4","esbuild":"0.27.3","chokidar":"5.0.0","react-dom":"^19.2.4","whatwg-url":"16.0.0"},"react":"^19.2.4","gaxios":"^7.1.3","uri-js":"npm:uri-js-replace","esbuild":"0.27.3","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.2.4","lodash-es":"4.17.23","react-dom":"^19.2.4","whatwg-url":"16.0.0","https-proxy-agent":"^7.0.6","webpack-dev-server":{"express":"^4.22.1"},"@isaacs/brace-expansion":">=5.0.1"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.9.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.13.1","dependencies":{"ai":"^6.0.62","ws":"^8.19.0","ajv":"^8.17.1","ink":"^6.6.0","ora":"^9.2.0","pem":"~1.14.8","tsx":"^4.21.0","zod":"^4.3.6","cors":"^2.8.6","glob":"^13.0.1","keyv":"^5.6.0","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.6.2","execa":"^9.6.1","jsdom":"^28.0.0","react":"^19.2.4","dedent":"^1.7.1","dotenv":"^17.2.3","http-z":"^8.1.1","jks-js":"^1.1.5","mathjs":"^15.1.0","openai":"^6.17.0","opener":"^1.5.2","semver":"^7.7.4","undici":"^7.20.0","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.2.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.3","csv-parse":"^6.1.0","keyv-file":"^5.3.3","lru-cache":"^11.2.5","minimatch":"^10.1.2","socket.io":"^4.8.3","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.1","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"~5.24.10","python-shell":"^5.0.0","cache-manager":"^7.2.8","csv-stringify":"^6.6.0","@inquirer/core":"^11.1.1","@openai/agents":"^0.4.5","better-sqlite3":"^12.6.2","istextorbinary":"^9.5.0","proxy-from-env":"^1.1.0","@inquirer/input":"^5.0.4","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.4","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.4","@inquirer/select":"^5.0.4","@opencode-ai/sdk":"^1.1.51","socket.io-client":"^4.8.3","@anthropic-ai/sdk":"^0.72.1","@inquirer/confirm":"^6.0.4","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.1","@inquirer/checkbox":"^5.0.4","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.5.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","@opentelemetry/resources":"^2.5.0","@modelcontextprotocol/sdk":"^1.26.0","@opentelemetry/sdk-trace-base":"^2.5.0","@opentelemetry/sdk-trace-node":"^2.5.0","@apidevtools/json-schema-ref-parser":"^15.2.2","@opentelemetry/semantic-conventions":"^1.39.0","@opentelemetry/exporter-trace-otlp-http":"^0.211.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^5.83.1","nock":"^14.0.10","madge":"^8.0.0","sharp":"^0.34.5","tsdown":"^0.20.1","vitest":"^4.0.18","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"^3.8.1","pdf-parse":"^2.4.5","supertest":"^7.2.2","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.58.2","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/node":"^24.10.11","drizzle-kit":"^0.31.8","@types/async":"^3.2.25","@types/jsdom":"^27.0.0","@types/react":"19.2.13","concurrently":"^9.2.1","@smithy/types":"^4.12.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@aws-sdk/types":"^3.973.1","@biomejs/biome":"^2.3.14","@fal-ai/client":"~1.9.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.4.0","read-excel-file":"^6.0.3","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","winston-transport":"^4.9.0","@aws-sdk/client-s3":"^3.985.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.6","source-map-support":"^0.5.21","@types/cli-progress":"^3.11.6","@vitest/coverage-v8":"^4.0.18","ink-testing-library":"^4.0.0","@types/fluent-ffmpeg":"^2.1.28","@ibm-cloud/watsonx-ai":"^1.7.7","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.2.37","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.985.0","@aws-sdk/credential-provider-sso":"^3.972.5","@aws-sdk/client-sagemaker-runtime":"^3.985.0","@aws-sdk/client-bedrock-agent-runtime":"^3.985.0"},"optionalDependencies":{"hono":"^4.11.9","sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","@swc/core":"^1.15.11","pdf-parse":"^2.4.5","playwright":"^1.58.2","fluent-ffmpeg":"^2.1.3","@fal-ai/client":"~1.9.0","@slack/web-api":"^7.13.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.4.0","read-excel-file":"^6.0.3","@azure/msal-node":"^5.0.3","playwright-extra":"^4.3.6","@openai/codex-sdk":"^0.98.0","@aws-sdk/client-s3":"^3.985.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.6","google-auth-library":"^10.5.0","@swc/core-darwin-x64":"^1.15.11","@ibm-cloud/watsonx-ai":"^1.7.7","@swc/core-darwin-arm64":"^1.15.11","@swc/core-linux-x64-gnu":"^1.15.11","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.11","@swc/core-win32-x64-msvc":"^1.15.11","@huggingface/transformers":"^3.8.1","@smithy/node-http-handler":"^4.4.9","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.58.2","@rollup/rollup-linux-x64-gnu":"^4.57.1","@anthropic-ai/claude-agent-sdk":"^0.2.37","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.985.0","@aws-sdk/credential-provider-sso":"^3.972.5","@aws-sdk/client-sagemaker-runtime":"^3.985.0","@aws-sdk/client-bedrock-agent-runtime":"^3.985.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.120.24_1770758888523_0.41531359159638703","host":"s3://npm-registry-packages-npm-production"}},"0.120.25":{"name":"promptfoo","version":"0.120.25","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.120.25","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"162e0eb9eda2e5e8fccc4d6140e36e3fcce86d76","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.120.25.tgz","fileCount":348,"integrity":"sha512-x1yMVNSS0u+ltL6HdMS7r7HJEUKWbQeH3kEyavSSqbi2TFIdZjmCd9SGz4T5BlH70PkrxvsMEBk43WTYbmNbXg==","signatures":[{"sig":"MEQCIG6hNfv26ABvSVC3IUwDVgC75XRcVRUQ3aKgHXZIBSTyAiB4BE0jBtXazIEoIEC97khoRTVsFUVi4Rrcekodz4VixQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.120.25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21230082},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@huggingface/transformers","@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":"^20.20.0 || >=22.22.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"0a43bcd99e89febff6529774746dc7c21ba34312","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"tsc --noEmit\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","prepare":"husky || exit 0","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,ink-testing-library,@vitest/coverage-v8\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","storybook":"npm run storybook --prefix src/app","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:coverage":"vitest run --coverage && npm run test:coverage --prefix src/app","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"^19.2.4","esbuild":"0.27.3","chokidar":"5.0.0","react-dom":"^19.2.4","whatwg-url":"16.0.1"},"react":"^19.2.4","gaxios":"^7.1.3","uri-js":"npm:uri-js-replace","esbuild":"0.27.3","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.2.4","react-dom":"^19.2.4","whatwg-url":"16.0.1","https-proxy-agent":"^7.0.6","webpack-dev-server":{"express":"^4.22.1"},"@isaacs/brace-expansion":">=5.0.1"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.10.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.13.1","dependencies":{"ai":"^6.0.62","ws":"^8.19.0","ajv":"^8.17.1","ink":"^6.7.0","ora":"^9.3.0","pem":"~1.14.8","tsx":"^4.21.0","zod":"^4.3.6","cors":"^2.8.6","glob":"^13.0.3","keyv":"^5.6.0","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.6.2","execa":"^9.6.1","jsdom":"^28.1.0","react":"^19.2.4","dedent":"^1.7.1","dotenv":"^17.3.1","http-z":"^8.1.1","jks-js":"^1.1.5","mathjs":"^15.1.1","openai":"^6.21.0","opener":"^1.5.2","semver":"^7.7.4","undici":"^7.21.0","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.2.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.3","csv-parse":"^6.1.0","keyv-file":"^5.3.3","lru-cache":"^11.2.6","minimatch":"^10.2.0","socket.io":"^4.8.3","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.30.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.1","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"~5.24.10","python-shell":"^5.0.0","cache-manager":"^7.2.8","csv-stringify":"^6.6.0","@inquirer/core":"^11.1.1","@openai/agents":"^0.4.8","better-sqlite3":"^12.6.2","istextorbinary":"^9.5.0","proxy-from-env":"^2.0.0","@inquirer/input":"^5.0.4","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.3.5","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.4","@inquirer/select":"^5.0.4","@opencode-ai/sdk":"^1.1.59","socket.io-client":"^4.8.3","@anthropic-ai/sdk":"^0.74.0","@inquirer/confirm":"^6.0.4","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.1","@inquirer/checkbox":"^5.0.4","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.5.1","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","@opentelemetry/resources":"^2.5.1","@modelcontextprotocol/sdk":"^1.26.0","@opentelemetry/sdk-trace-base":"^2.5.1","@opentelemetry/sdk-trace-node":"^2.5.1","@apidevtools/json-schema-ref-parser":"^15.2.2","@opentelemetry/semantic-conventions":"^1.39.0","@opentelemetry/exporter-trace-otlp-http":"^0.212.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^5.83.1","nock":"^14.0.11","husky":"^9.1.7","madge":"^8.0.0","sharp":"^0.34.5","tsdown":"^0.20.1","vitest":"^4.0.18","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"^3.8.1","pdf-parse":"^2.4.5","supertest":"^7.2.2","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.58.2","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/node":"^24.10.13","drizzle-kit":"^0.31.9","@types/async":"^3.2.25","@types/jsdom":"^27.0.0","@types/react":"19.2.14","concurrently":"^9.2.1","@smithy/types":"^4.12.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@aws-sdk/types":"^3.973.1","@biomejs/biome":"^2.3.15","@fal-ai/client":"~1.9.1","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.4.0","read-excel-file":"^6.0.3","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","winston-transport":"^4.9.0","@aws-sdk/client-s3":"^3.990.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.6","source-map-support":"^0.5.21","@types/cli-progress":"^3.11.6","@vitest/coverage-v8":"^4.0.18","ink-testing-library":"^4.0.0","@ibm-cloud/watsonx-ai":"^1.7.7","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.2.42","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.990.0","@aws-sdk/credential-provider-sso":"^3.972.8","@aws-sdk/client-sagemaker-runtime":"^3.990.0","@aws-sdk/client-bedrock-agent-runtime":"^3.990.0"},"optionalDependencies":{"hono":"^4.11.9","sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","@swc/core":"^1.15.11","pdf-parse":"^2.4.5","playwright":"^1.58.2","@fal-ai/client":"~1.9.1","@slack/web-api":"^7.14.1","@azure/identity":"^4.13.0","node-sql-parser":"^5.4.0","read-excel-file":"^6.0.3","@azure/msal-node":"^5.0.4","playwright-extra":"^4.3.6","@openai/codex-sdk":"^0.101.0","@aws-sdk/client-s3":"^3.990.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.6","google-auth-library":"^10.5.0","@swc/core-darwin-x64":"^1.15.11","@ibm-cloud/watsonx-ai":"^1.7.7","@swc/core-darwin-arm64":"^1.15.11","@swc/core-linux-x64-gnu":"^1.15.11","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.11","@swc/core-win32-x64-msvc":"^1.15.11","@huggingface/transformers":"^3.8.1","@smithy/node-http-handler":"^4.4.10","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.58.2","@rollup/rollup-linux-x64-gnu":"^4.57.1","@anthropic-ai/claude-agent-sdk":"^0.2.42","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.990.0","@aws-sdk/credential-provider-sso":"^3.972.8","@aws-sdk/client-sagemaker-runtime":"^3.990.0","@aws-sdk/client-bedrock-agent-runtime":"^3.990.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.120.25_1771448360950_0.7406447589630851","host":"s3://npm-registry-packages-npm-production"}},"0.120.26":{"name":"promptfoo","version":"0.120.26","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.120.26","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"bc0505bd5d6a055b4663b1be63a62add3e2ad7ec","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.120.26.tgz","fileCount":349,"integrity":"sha512-YveeYqaByiAZGAe9sEzmsgrPFhTGd1VUP2HDFnpIfTf9nsrwP1h0wRmzBwfikKX8QTMUFwElJ5nBV1MLeY1aOA==","signatures":[{"sig":"MEUCIAP0BiaFVq2JqHgtXt2v2BbRIwqXVxSPql6T+Ocwc56cAiEAoJPMttWGZekv7gZd/wd1Q7KR1xju1bB7SCYcjsqDnfM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.120.26","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21372042},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@huggingface/transformers","@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":"^20.20.0 || >=22.22.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"64597c70b8c519d3bd7f3c897ae7707051767e84","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"tsc --noEmit\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npm run lint:styles && npx @biomejs/biome ci .","prepare":"husky || exit 0","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,ink-testing-library,@vitest/coverage-v8\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","storybook":"npm run storybook --prefix src/app","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","lint:styles":"tsx scripts/lint-styles.ts","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:coverage":"vitest run --coverage && npm run test:coverage --prefix src/app","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"^19.2.4","esbuild":"0.27.3","chokidar":"5.0.0","react-dom":"^19.2.4","whatwg-url":"16.0.1"},"react":"^19.2.4","gaxios":"^7.1.4","uri-js":"npm:uri-js-replace","esbuild":"0.27.3","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.2.4","react-dom":"^19.2.4","whatwg-url":"16.0.1","https-proxy-agent":"^7.0.6","webpack-dev-server":{"express":"^4.22.1"},"@isaacs/brace-expansion":">=5.0.1"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.11.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ai":"^6.0.62","ws":"^8.19.0","ajv":"^8.18.0","ink":"^6.8.0","ora":"^9.3.0","pem":"~1.14.8","tsx":"^4.21.0","zod":"^4.3.6","cors":"^2.8.6","glob":"^13.0.6","keyv":"^5.6.0","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.6.2","execa":"^9.6.1","jsdom":"^28.1.0","react":"^19.2.4","dedent":"^1.7.1","dotenv":"^17.3.1","http-z":"^8.1.1","jks-js":"^1.1.5","mathjs":"^15.1.1","openai":"^6.22.0","opener":"^1.5.2","semver":"^7.7.4","undici":"^7.21.0","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.2.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.3","csv-parse":"^6.1.0","keyv-file":"^5.3.3","lru-cache":"^11.2.6","minimatch":"^10.2.3","socket.io":"^4.8.3","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.32.2","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.1","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"~5.24.10","python-shell":"^5.0.0","cache-manager":"^7.2.8","csv-stringify":"^6.6.0","@inquirer/core":"^11.1.5","@openai/agents":"^0.4.15","better-sqlite3":"^12.6.2","istextorbinary":"^9.5.0","proxy-from-env":"^2.0.0","@inquirer/input":"^5.0.8","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.4.1","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.8","@inquirer/select":"^5.1.0","@opencode-ai/sdk":"^1.2.9","socket.io-client":"^4.8.3","@anthropic-ai/sdk":"^0.78.0","@inquirer/confirm":"^6.0.8","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.1","@inquirer/checkbox":"^5.1.0","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.5.1","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","@opentelemetry/resources":"^2.5.1","@modelcontextprotocol/sdk":"^1.27.1","@opentelemetry/sdk-trace-base":"^2.5.1","@opentelemetry/sdk-trace-node":"^2.5.1","@apidevtools/json-schema-ref-parser":"^15.2.2","@opentelemetry/semantic-conventions":"^1.39.0","@opentelemetry/exporter-trace-otlp-http":"^0.212.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^5.83.1","nock":"^14.0.11","husky":"^9.1.7","madge":"^8.0.0","sharp":"^0.34.5","tsdown":"^0.20.1","vitest":"^4.0.18","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"^3.8.1","pdf-parse":"^2.4.5","supertest":"^7.2.2","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.58.2","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/node":"^24.10.13","drizzle-kit":"^0.31.9","@types/async":"^3.2.25","@types/jsdom":"^27.0.0","@types/react":"19.2.14","concurrently":"^9.2.1","@smithy/types":"^4.12.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@aws-sdk/types":"^3.973.1","@biomejs/biome":"^2.4.4","@fal-ai/client":"~1.9.3","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.4.0","read-excel-file":"^7.0.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","winston-transport":"^4.9.0","@aws-sdk/client-s3":"^3.990.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.8","source-map-support":"^0.5.21","@types/cli-progress":"^3.11.6","@vitest/coverage-v8":"^4.0.18","ink-testing-library":"^4.0.0","@ibm-cloud/watsonx-ai":"^1.7.8","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.2.58","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.990.0","@aws-sdk/credential-provider-sso":"^3.972.8","@aws-sdk/client-sagemaker-runtime":"^3.990.0","@aws-sdk/client-bedrock-agent-runtime":"^3.990.0"},"optionalDependencies":{"hono":"^4.12.0","sharp":"^0.34.5","natural":"^8.1.0","langfuse":"^3.38.6","@swc/core":"^1.15.17","pdf-parse":"^2.4.5","playwright":"^1.58.2","@fal-ai/client":"~1.9.3","@slack/web-api":"^7.14.1","@azure/identity":"^4.13.0","node-sql-parser":"^5.4.0","read-excel-file":"^7.0.0","@azure/msal-node":"^5.0.5","playwright-extra":"^4.3.6","@openai/codex-sdk":"^0.105.0","@aws-sdk/client-s3":"^3.990.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.8","google-auth-library":"^10.6.1","@swc/core-darwin-x64":"^1.15.17","@ibm-cloud/watsonx-ai":"^1.7.8","@swc/core-darwin-arm64":"^1.15.17","@swc/core-linux-x64-gnu":"^1.15.17","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.17","@swc/core-win32-x64-msvc":"^1.15.17","@huggingface/transformers":"^3.8.1","@smithy/node-http-handler":"^4.4.10","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.58.2","@rollup/rollup-linux-x64-gnu":"^4.59.0","@anthropic-ai/claude-agent-sdk":"^0.2.58","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.990.0","@aws-sdk/credential-provider-sso":"^3.972.8","@aws-sdk/client-sagemaker-runtime":"^3.990.0","@aws-sdk/client-bedrock-agent-runtime":"^3.990.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.120.26_1772499170330_0.9125379566143239","host":"s3://npm-registry-packages-npm-production"}},"0.120.27":{"name":"promptfoo","version":"0.120.27","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.120.27","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"f229c98cee9e69c4074db6e1110b4216f4f26f35","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.120.27.tgz","fileCount":358,"integrity":"sha512-eYlTkVl0Tj7A60GHST4+tNAdypG9qXKAtEhhdgZwZPno2TA13LHvw04h45ChlWWcIPfUUi1tnd+eSVXezW9vCA==","signatures":[{"sig":"MEUCIQCLjX0R4PfyQB+tycHMgcfUOOeH7PD0MXZbMLwSxDHKhwIgRHuumesczqa7WjKpv6IPLQhxMLC9X4KPzVFfM+0s++M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.120.27","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21680356},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@huggingface/transformers","@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":"^20.20.0 || >=22.22.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"6020eff2d0a287aaeb0ee0c55cce0bd4a3747970","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"tsc --noEmit\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","prepare":"husky || exit 0","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,ink-testing-library,@vitest/coverage-v8\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","storybook":"npm run storybook --prefix src/app","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:coverage":"vitest run --coverage && npm run test:coverage --prefix src/app","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"^19.2.4","esbuild":"0.27.3","chokidar":"5.0.0","react-dom":"^19.2.4","whatwg-url":"16.0.1"},"react":"^19.2.4","gaxios":"^7.1.4","uri-js":"npm:uri-js-replace","esbuild":"0.27.3","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.2.4","dompurify":">=3.3.2","react-dom":"^19.2.4","whatwg-url":"16.0.1","monaco-editor":{"dompurify":">=3.3.2"},"fast-xml-parser":"$fast-xml-parser","https-proxy-agent":"^7.0.6","minimatch@<=3.1.3":"3.1.5","webpack-dev-server":{"express":"^4.22.1"},"serialize-javascript":">=7.0.4","@isaacs/brace-expansion":">=5.0.1"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.11.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ai":"^6.0.62","ws":"^8.19.0","ajv":"^8.18.0","ink":"^6.8.0","ora":"^9.3.0","pem":"~1.14.8","tsx":"^4.21.0","zod":"^4.3.6","cors":"^2.8.6","glob":"^13.0.6","keyv":"^5.6.0","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.6.2","execa":"^9.6.1","jsdom":"^28.1.0","react":"^19.2.4","dedent":"^1.7.2","dotenv":"^17.3.1","http-z":"^8.1.1","jks-js":"^1.1.5","mathjs":"^15.1.1","openai":"^6.25.0","opener":"^1.5.2","semver":"^7.7.4","undici":"^7.21.0","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.2.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.3","csv-parse":"^6.1.0","keyv-file":"^5.3.3","lru-cache":"^11.2.6","minimatch":"^10.2.4","socket.io":"^4.8.3","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.32.3","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.1","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"~5.24.10","python-shell":"^5.0.0","cache-manager":"^7.2.8","csv-stringify":"^6.6.0","@inquirer/core":"^11.1.5","@openai/agents":"^0.5.4","better-sqlite3":"^12.6.2","istextorbinary":"^9.5.0","proxy-from-env":"^2.0.0","@inquirer/input":"^5.0.8","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.4.1","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.8","@inquirer/select":"^5.1.0","@opencode-ai/sdk":"^1.2.9","socket.io-client":"^4.8.3","@anthropic-ai/sdk":"^0.78.0","@inquirer/confirm":"^6.0.8","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.1","@inquirer/checkbox":"^5.1.0","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.5.1","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","@opentelemetry/resources":"^2.5.1","@modelcontextprotocol/sdk":"^1.27.1","@opentelemetry/sdk-trace-base":"^2.5.1","@opentelemetry/sdk-trace-node":"^2.5.1","@apidevtools/json-schema-ref-parser":"^15.3.1","@opentelemetry/semantic-conventions":"^1.40.0","@opentelemetry/exporter-trace-otlp-http":"^0.212.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^5.83.1","nock":"^14.0.11","husky":"^9.1.7","madge":"^8.0.0","sharp":"^0.34.5","tsdown":"0.20.1","vitest":"^4.0.18","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"^3.8.1","pdf-parse":"^2.4.5","supertest":"^7.2.2","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.58.2","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/node":"^24.10.13","drizzle-kit":"^0.31.9","@types/async":"^3.2.25","@types/jsdom":"^27.0.0","@types/react":"19.2.14","concurrently":"^9.2.1","@smithy/types":"^4.12.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@aws-sdk/types":"^3.973.1","@biomejs/biome":"^2.4.4","@fal-ai/client":"~1.9.4","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.4.0","read-excel-file":"^7.0.1","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","winston-transport":"^4.9.0","@aws-sdk/client-s3":"^3.990.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.8","source-map-support":"^0.5.21","@types/cli-progress":"^3.11.6","@vitest/coverage-v8":"^4.0.18","ink-testing-library":"^4.0.0","@ibm-cloud/watsonx-ai":"^1.7.8","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.2.68","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.990.0","@aws-sdk/credential-provider-sso":"^3.972.8","@aws-sdk/client-sagemaker-runtime":"^3.990.0","@aws-sdk/client-bedrock-agent-runtime":"^3.990.0"},"optionalDependencies":{"hono":"^4.12.0","sharp":"^0.34.5","natural":"^8.1.1","langfuse":"^3.38.6","@swc/core":"^1.15.18","pdf-parse":"^2.4.5","playwright":"^1.58.2","@fal-ai/client":"~1.9.4","@slack/web-api":"^7.14.1","@azure/identity":"^4.13.0","node-sql-parser":"^5.4.0","read-excel-file":"^7.0.1","@azure/msal-node":"^5.0.6","playwright-extra":"^4.3.6","@openai/codex-sdk":"^0.110.0","@aws-sdk/client-s3":"^3.990.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.8","google-auth-library":"^10.6.1","@swc/core-darwin-x64":"^1.15.18","@ibm-cloud/watsonx-ai":"^1.7.8","@swc/core-darwin-arm64":"^1.15.18","@swc/core-linux-x64-gnu":"^1.15.18","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.18","@swc/core-win32-x64-msvc":"^1.15.18","@huggingface/transformers":"^3.8.1","@smithy/node-http-handler":"^4.4.10","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.58.2","@rollup/rollup-linux-x64-gnu":"^4.59.0","@anthropic-ai/claude-agent-sdk":"^0.2.68","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.990.0","@aws-sdk/credential-provider-sso":"^3.972.8","@aws-sdk/client-sagemaker-runtime":"^3.990.0","@aws-sdk/client-bedrock-agent-runtime":"^3.990.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.120.27_1772835722042_0.4770387291271536","host":"s3://npm-registry-packages-npm-production"}},"0.121.1":{"name":"promptfoo","version":"0.121.1","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.121.1","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"52ec904955f21e25191537663043236e28bd89b1","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.121.1.tgz","fileCount":386,"integrity":"sha512-lYaSqmam8NF9Rw3gCi6Soz8+si9o97FZRjHNzOts7vNG+cc7qGgVyERVjnmTIFh5nXd1Tx4okHiYf9xMxK1Fkg==","signatures":[{"sig":"MEQCIBSDw5hTaSI9XTPbCx4xtUfY7yJXlmzF9G+lmZF/Wsz7AiAG4JD6Vcz26tJnt37yp4yAufdViEWmdIXtV+PqocC52A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.121.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21631988},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@huggingface/transformers","@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":"^20.20.0 || >=22.22.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"f3670eced1b4f97910bc25f46694971aee492bb2","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"tsc --noEmit\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","prepare":"husky || exit 0","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,ink-testing-library,@vitest/coverage-v8\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","storybook":"npm run storybook --prefix src/app","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:coverage":"vitest run --coverage && npm run test:coverage --prefix src/app","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"^19.2.4","esbuild":"0.27.3","chokidar":"5.0.0","react-dom":"^19.2.4","whatwg-url":"16.0.1"},"react":"^19.2.4","gaxios":"^7.1.4","uri-js":"npm:uri-js-replace","esbuild":"0.27.3","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.2.4","dompurify":">=3.3.2","react-dom":"^19.2.4","whatwg-url":"16.0.1","monaco-editor":{"dompurify":">=3.3.2"},"fast-xml-parser":"$fast-xml-parser","https-proxy-agent":"^7.0.6","minimatch@<=3.1.3":"3.1.5","webpack-dev-server":{"express":"^4.22.1"},"serialize-javascript":">=7.0.4","@isaacs/brace-expansion":">=5.0.1"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.11.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ai":"^6.0.62","ws":"^8.19.0","ajv":"^8.18.0","ink":"^6.8.0","ora":"^9.3.0","pem":"~1.14.8","tsx":"^4.21.0","zod":"^4.3.6","cors":"^2.8.6","glob":"^13.0.6","keyv":"^5.6.0","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.6.2","execa":"^9.6.1","jsdom":"^28.1.0","react":"^19.2.4","dedent":"^1.7.2","dotenv":"^17.3.1","http-z":"^8.1.1","jks-js":"^1.1.5","mathjs":"^15.1.1","openai":"^6.25.0","opener":"^1.5.2","semver":"^7.7.4","undici":"^7.21.0","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.2.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.3","csv-parse":"^6.1.0","keyv-file":"^5.3.3","lru-cache":"^11.2.6","minimatch":"^10.2.4","socket.io":"^4.8.3","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.32.3","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.1","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"~5.24.10","python-shell":"^5.0.0","cache-manager":"^7.2.8","csv-stringify":"^6.6.0","@inquirer/core":"^11.1.5","@openai/agents":"^0.5.4","better-sqlite3":"^12.6.2","istextorbinary":"^9.5.0","proxy-from-env":"^2.0.0","@inquirer/input":"^5.0.8","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.4.2","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.8","@inquirer/select":"^5.1.0","@opencode-ai/sdk":"^1.2.19","socket.io-client":"^4.8.3","@anthropic-ai/sdk":"^0.78.0","@inquirer/confirm":"^6.0.8","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.1","@inquirer/checkbox":"^5.1.0","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.6.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","@opentelemetry/resources":"^2.6.0","@modelcontextprotocol/sdk":"^1.27.1","@opentelemetry/sdk-trace-base":"^2.6.0","@opentelemetry/sdk-trace-node":"^2.6.0","@apidevtools/json-schema-ref-parser":"^15.3.1","@opentelemetry/semantic-conventions":"^1.40.0","@opentelemetry/exporter-trace-otlp-http":"^0.213.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^5.85.0","nock":"^14.0.11","husky":"^9.1.7","madge":"^8.0.0","sharp":"^0.34.5","tsdown":"0.21.0","vitest":"^4.0.18","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"^3.8.1","pdf-parse":"^2.4.5","supertest":"^7.2.2","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.58.2","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/node":"^24.12.0","drizzle-kit":"^0.31.9","@types/async":"^3.2.25","@types/jsdom":"^27.0.0","@types/react":"19.2.14","concurrently":"^9.2.1","@smithy/types":"^4.13.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@aws-sdk/types":"^3.973.5","@biomejs/biome":"^2.4.6","@fal-ai/client":"~1.9.4","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.4.0","read-excel-file":"^7.0.1","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","winston-transport":"^4.9.0","@aws-sdk/client-s3":"^3.1003.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.8","source-map-support":"^0.5.21","@types/cli-progress":"^3.11.6","@vitest/coverage-v8":"^4.0.18","ink-testing-library":"^4.0.0","@ibm-cloud/watsonx-ai":"^1.7.9","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.2.71","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.1003.0","@aws-sdk/credential-provider-sso":"^3.972.16","@aws-sdk/client-sagemaker-runtime":"^3.1003.0","@aws-sdk/client-bedrock-agent-runtime":"^3.1003.0"},"optionalDependencies":{"hono":"^4.12.5","sharp":"^0.34.5","natural":"^8.1.1","langfuse":"^3.38.6","@swc/core":"^1.15.18","pdf-parse":"^2.4.5","playwright":"^1.58.2","@fal-ai/client":"~1.9.4","@slack/web-api":"^7.14.1","@azure/identity":"^4.13.0","node-sql-parser":"^5.4.0","read-excel-file":"^7.0.1","@azure/msal-node":"^5.0.6","playwright-extra":"^4.3.6","@openai/codex-sdk":"^0.110.0","@aws-sdk/client-s3":"^3.1003.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.8","google-auth-library":"^10.6.1","@swc/core-darwin-x64":"^1.15.18","@ibm-cloud/watsonx-ai":"^1.7.9","@swc/core-darwin-arm64":"^1.15.18","@swc/core-linux-x64-gnu":"^1.15.18","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.18","@swc/core-win32-x64-msvc":"^1.15.18","@huggingface/transformers":"^3.8.1","@smithy/node-http-handler":"^4.4.14","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.58.2","@rollup/rollup-linux-x64-gnu":"^4.59.0","@anthropic-ai/claude-agent-sdk":"^0.2.71","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.1003.0","@aws-sdk/credential-provider-sso":"^3.972.16","@aws-sdk/client-sagemaker-runtime":"^3.1003.0","@aws-sdk/client-bedrock-agent-runtime":"^3.1003.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.121.1_1773074522417_0.053792058046220115","host":"s3://npm-registry-packages-npm-production"}},"0.121.2":{"name":"promptfoo","version":"0.121.2","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.121.2","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"9a566564b0e97cd38d991cab2b174c25b8d49fa7","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.121.2.tgz","fileCount":387,"integrity":"sha512-dVAho6gzNZemrRfyvF6LtA5qr8g/W25yIvab6MAuBsAO10XO+K53HwPmLjo6HpT8uc0Lkgs50Jb4VjPwEKMdeA==","signatures":[{"sig":"MEQCIFkR5Ebpjz+ZEM8pNKQtMNiu12x7aTsedrkUpakvIaq1AiBR0fpajhqEmbd06y71j05UKYUpxZoYbd4CCQfSvDVGrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.121.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21740796},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@huggingface/transformers","@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":"^20.20.0 || >=22.22.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"126bd91acf1f9ae1b64db29e8499b5e979f44fad","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"tsc --noEmit\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","prepare":"husky || exit 0","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,ink-testing-library,@vitest/coverage-v8\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","storybook":"npm run storybook --prefix src/app","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:coverage":"vitest run --coverage && npm run test:coverage --prefix src/app","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"^19.2.4","esbuild":"0.27.3","chokidar":"5.0.0","react-dom":"^19.2.4","whatwg-url":"16.0.1"},"react":"^19.2.4","gaxios":"^7.1.4","uri-js":"npm:uri-js-replace","esbuild":"0.27.3","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.2.4","dompurify":">=3.3.3","react-dom":"^19.2.4","whatwg-url":"16.0.1","monaco-editor":{"dompurify":">=3.3.3"},"fast-xml-parser":"$fast-xml-parser","https-proxy-agent":"^8.0.0","minimatch@<=3.1.3":"3.1.5","webpack-dev-server":{"express":"^4.22.1"},"serialize-javascript":">=7.0.4","@isaacs/brace-expansion":">=5.0.1"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.11.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ai":"^6.0.62","ws":"^8.19.0","ajv":"^8.18.0","ink":"^6.8.0","ora":"^9.3.0","pem":"~1.14.8","tsx":"^4.21.0","zod":"^4.3.6","cors":"^2.8.6","glob":"^13.0.6","keyv":"^5.6.0","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.6.2","execa":"^9.6.1","jsdom":"^28.1.0","json5":"^2.2.3","react":"^19.2.4","dedent":"^1.7.2","dotenv":"^17.3.1","http-z":"^8.1.1","jks-js":"^1.1.5","mathjs":"^15.1.1","openai":"^6.27.0","opener":"^1.5.2","semver":"^7.7.4","undici":"^7.21.0","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.2.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.3","csv-parse":"^6.1.0","keyv-file":"^5.3.3","lru-cache":"^11.2.6","minimatch":"^10.2.4","socket.io":"^4.8.3","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.32.3","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.1","proxy-agent":"^6.5.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"~5.24.10","python-shell":"^5.0.0","cache-manager":"^7.2.8","csv-stringify":"^6.6.0","@inquirer/core":"^11.1.5","@openai/agents":"^0.5.4","better-sqlite3":"^12.6.2","istextorbinary":"^9.5.0","proxy-from-env":"^2.0.0","@inquirer/input":"^5.0.8","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.4.2","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.8","@inquirer/select":"^5.1.0","@opencode-ai/sdk":"^1.2.19","socket.io-client":"^4.8.3","@anthropic-ai/sdk":"^0.78.0","@inquirer/confirm":"^6.0.8","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.1","@inquirer/checkbox":"^5.1.0","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.6.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","@opentelemetry/resources":"^2.6.0","@modelcontextprotocol/sdk":"^1.27.1","@opentelemetry/sdk-trace-base":"^2.6.0","@opentelemetry/sdk-trace-node":"^2.6.0","@apidevtools/json-schema-ref-parser":"^15.3.1","@opentelemetry/semantic-conventions":"^1.40.0","@opentelemetry/exporter-trace-otlp-http":"^0.213.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^5.85.0","nock":"^14.0.11","husky":"^9.1.7","madge":"^8.0.0","tsdown":"0.21.1","vitest":"^4.0.18","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"^3.8.1","pdf-parse":"^2.4.5","supertest":"^7.2.2","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.58.2","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/node":"^24.12.0","drizzle-kit":"^0.31.9","@types/async":"^3.2.25","@types/jsdom":"^27.0.0","@types/react":"19.2.14","concurrently":"^9.2.1","@smithy/types":"^4.13.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@aws-sdk/types":"^3.973.5","@biomejs/biome":"^2.4.6","@fal-ai/client":"~1.9.4","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.4.0","read-excel-file":"^7.0.2","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","winston-transport":"^4.9.0","@aws-sdk/client-s3":"^3.1003.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.8","source-map-support":"^0.5.21","@types/cli-progress":"^3.11.6","@vitest/coverage-v8":"^4.0.18","ink-testing-library":"^4.0.0","@ibm-cloud/watsonx-ai":"^1.7.9","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.2.72","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.1003.0","@aws-sdk/credential-provider-sso":"^3.972.16","@aws-sdk/client-sagemaker-runtime":"^3.1003.0","@aws-sdk/client-bedrock-agent-runtime":"^3.1003.0"},"optionalDependencies":{"hono":"^4.12.5","sharp":"^0.34.5","natural":"^8.1.1","langfuse":"^3.38.6","@swc/core":"^1.15.18","pdf-parse":"^2.4.5","playwright":"^1.58.2","@fal-ai/client":"~1.9.4","@slack/web-api":"^7.14.1","@azure/identity":"^4.13.0","node-sql-parser":"^5.4.0","read-excel-file":"^7.0.2","@azure/msal-node":"^5.0.6","playwright-extra":"^4.3.6","@openai/codex-sdk":"^0.113.0","@aws-sdk/client-s3":"^3.1003.0","@azure/ai-projects":"^1.0.1","ibm-cloud-sdk-core":"^5.4.8","google-auth-library":"^10.6.1","@swc/core-darwin-x64":"^1.15.18","@ibm-cloud/watsonx-ai":"^1.7.9","@swc/core-darwin-arm64":"^1.15.18","@swc/core-linux-x64-gnu":"^1.15.18","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.18","@swc/core-win32-x64-msvc":"^1.15.18","@huggingface/transformers":"^3.8.1","@smithy/node-http-handler":"^4.4.14","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.58.2","@rollup/rollup-linux-x64-gnu":"^4.59.0","@anthropic-ai/claude-agent-sdk":"^0.2.72","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.1003.0","@aws-sdk/credential-provider-sso":"^3.972.16","@aws-sdk/client-sagemaker-runtime":"^3.1003.0","@aws-sdk/client-bedrock-agent-runtime":"^3.1003.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.121.2_1773329036703_0.3088648555980671","host":"s3://npm-registry-packages-npm-production"}},"0.121.3":{"name":"promptfoo","version":"0.121.3","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.121.3","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"001b22cbb986d19463db738e7a6df89f2f646207","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.121.3.tgz","fileCount":389,"integrity":"sha512-fM42YYqAqhx1OY02PZDDWV8EDRmyXrSS7qlB4sjVDfwxPPcLcdGUeGtm2ot5ZeP85W3kCxoGMhMQZAgWN7BOtw==","signatures":[{"sig":"MEYCIQDdiaoMJUZ5vtqZ5pVf8YtyaFP0AnxNH5690briGDQXQwIhAK9hW+gF/nsF6jIHU12g2BRt3eqTomVMnozfnFdV+WLG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.121.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":22029945},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@huggingface/transformers","@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":"^20.20.0 || >=22.22.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"4197b03c384adad2e26a369b5ee7aeb2013a71bc","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"tsc --noEmit\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","prepare":"husky || exit 0","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,ink-testing-library,@vitest/coverage-v8\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","storybook":"npm run storybook --prefix src/app","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:coverage":"vitest run --coverage && npm run test:coverage --prefix src/app","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"^19.2.4","esbuild":"0.27.4","chokidar":"5.0.0","react-dom":"^19.2.4","whatwg-url":"16.0.1"},"react":"^19.2.4","gaxios":"^7.1.4","uri-js":"npm:uri-js-replace","esbuild":"0.27.4","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.2.4","dompurify":">=3.3.3","react-dom":"^19.2.4","whatwg-url":"16.0.1","monaco-editor":{"dompurify":">=3.3.3"},"fast-xml-parser":"$fast-xml-parser","https-proxy-agent":"^8.0.0","minimatch@<=3.1.3":"3.1.5","webpack-dev-server":{"express":"^4.22.1"},"serialize-javascript":">=7.0.4","@isaacs/brace-expansion":">=5.0.1"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.12.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.14.0","dependencies":{"ai":"^6.0.62","ws":"^8.19.0","ajv":"^8.18.0","ink":"^6.8.0","ora":"^9.3.0","pem":"~1.14.8","tsx":"^4.21.0","zod":"^4.3.6","cors":"^2.8.6","glob":"^13.0.6","keyv":"^5.6.0","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.6.2","execa":"^9.6.1","jsdom":"^29.0.0","json5":"^2.2.3","react":"^19.2.4","dedent":"^1.7.2","dotenv":"^17.3.1","http-z":"^8.1.1","jks-js":"^1.1.5","mathjs":"^15.1.1","openai":"^6.32.0","opener":"^1.5.2","semver":"^7.7.4","undici":"^7.21.0","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.2.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.3","csv-parse":"^6.2.0","keyv-file":"^5.3.3","lru-cache":"^11.2.7","minimatch":"^10.2.4","socket.io":"^4.8.3","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.33.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.1","proxy-agent":"^7.0.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"~5.24.10","python-shell":"^5.0.0","cache-manager":"^7.2.8","csv-stringify":"^6.7.0","@inquirer/core":"^11.1.5","@openai/agents":"^0.7.2","better-sqlite3":"^12.8.0","istextorbinary":"^9.5.0","proxy-from-env":"^2.1.0","@inquirer/input":"^5.0.8","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.5.5","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.8","@inquirer/select":"^5.1.0","@opencode-ai/sdk":"^1.2.19","socket.io-client":"^4.8.3","@anthropic-ai/sdk":"^0.80.0","@inquirer/confirm":"^6.0.8","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.1","@inquirer/checkbox":"^5.1.0","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.6.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","@opentelemetry/resources":"^2.6.0","@modelcontextprotocol/sdk":"^1.27.1","@opentelemetry/sdk-trace-base":"^2.6.0","@opentelemetry/sdk-trace-node":"^2.6.0","@apidevtools/json-schema-ref-parser":"^15.3.1","@opentelemetry/semantic-conventions":"^1.40.0","@opentelemetry/exporter-trace-otlp-http":"^0.213.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^5.85.0","nock":"^14.0.11","husky":"^9.1.7","madge":"^8.0.0","tsdown":"0.21.4","vitest":"^4.1.0","depcheck":"^1.4.7","langfuse":"^3.38.6","prettier":"^3.8.1","pdf-parse":"^2.4.5","supertest":"^7.2.2","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.58.2","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/node":"^24.12.0","drizzle-kit":"^0.31.10","@types/async":"^3.2.25","@types/jsdom":"^28.0.0","@types/react":"19.2.14","concurrently":"^9.2.1","@smithy/types":"^4.13.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@aws-sdk/types":"^3.973.5","@biomejs/biome":"2.4.8","@fal-ai/client":"~1.9.4","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.4.0","read-excel-file":"^7.0.2","@types/pdf-parse":"^1.1.5","@types/supertest":"^6.0.3","playwright-extra":"^4.3.6","winston-transport":"^4.9.0","@aws-sdk/client-s3":"^3.1003.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.9","source-map-support":"^0.5.21","@types/cli-progress":"^3.11.6","@vitest/coverage-v8":"^4.1.0","ink-testing-library":"^4.0.0","@ibm-cloud/watsonx-ai":"^1.7.10","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.2.81","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.1003.0","@aws-sdk/credential-provider-sso":"^3.972.16","@aws-sdk/client-sagemaker-runtime":"^3.1003.0","@aws-sdk/client-bedrock-agent-runtime":"^3.1003.0"},"optionalDependencies":{"hono":"^4.12.5","sharp":"^0.34.5","natural":"^8.1.1","langfuse":"^3.38.6","@swc/core":"^1.15.18","pdf-parse":"^2.4.5","playwright":"^1.58.2","@fal-ai/client":"~1.9.4","@slack/web-api":"^7.15.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.4.0","read-excel-file":"^7.0.2","@azure/msal-node":"^5.1.0","playwright-extra":"^4.3.6","@openai/codex-sdk":"^0.116.0","@aws-sdk/client-s3":"^3.1003.0","@azure/ai-projects":"^2.0.1","ibm-cloud-sdk-core":"^5.4.9","google-auth-library":"^10.6.2","@swc/core-darwin-x64":"^1.15.18","@ibm-cloud/watsonx-ai":"^1.7.10","@swc/core-darwin-arm64":"^1.15.18","@swc/core-linux-x64-gnu":"^1.15.18","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.18","@swc/core-win32-x64-msvc":"^1.15.18","@huggingface/transformers":"^3.8.1","@smithy/node-http-handler":"^4.4.14","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.58.2","@rollup/rollup-linux-x64-gnu":"^4.59.0","@anthropic-ai/claude-agent-sdk":"^0.2.81","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.1003.0","@aws-sdk/credential-provider-sso":"^3.972.16","@aws-sdk/client-sagemaker-runtime":"^3.1003.0","@aws-sdk/client-bedrock-agent-runtime":"^3.1003.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.121.3_1774393265184_0.44813650988878684","host":"s3://npm-registry-packages-npm-production"}},"0.121.4":{"name":"promptfoo","version":"0.121.4","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.121.4","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"777d24bc85fd41ef3f438c385a5474ae3bef1b1d","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.121.4.tgz","fileCount":400,"integrity":"sha512-1gqOlI1o/BNW3NdXksMjyGjfYDtMlhHcKI+3RdtrHnXWftwU5JNrU7t1Z+xEeObzSY4DygzcDGh5f7MJnS5piQ==","signatures":[{"sig":"MEUCIAvV0BYWS5hWgepNTwmbJeWek8M6C/Y6TCXDhBthjwRbAiEAhGe4kAjWK+DXa0JLHI5eBTD+AoaLZ+7zpgsoz7roXC4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.121.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23413049},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@huggingface/transformers","@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":"^20.20.0 || >=22.22.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"c651d4e748274dd4567dac4f13ccb9c26071844d","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"tsc --noEmit\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","prepare":"husky || exit 0","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,ink-testing-library,@vitest/coverage-v8\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm run test --prefix src/app","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","storybook":"npm run storybook --prefix src/app","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:coverage":"vitest run --coverage && npm run test:coverage --prefix src/app","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"^19.2.4","esbuild":"0.28.0","chokidar":"5.0.0","react-dom":"^19.2.4","whatwg-url":"16.0.1"},"vite":"^8.0.5","jsdom":{"@asamuzakjp/css-color":"5.1.9"},"react":"^19.2.4","gaxios":"^7.1.4","uri-js":"npm:uri-js-replace","esbuild":"0.28.0","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.2.4","dompurify":">=3.3.3","lodash-es":"^4.18.1","react-dom":"^19.2.4","storybook":{"esbuild":"0.27.7"},"whatwg-url":"16.0.1","monaco-editor":{"dompurify":">=3.3.3"},"fast-xml-parser":"$fast-xml-parser","https-proxy-agent":"^9.0.0","minimatch@<=3.1.3":"3.1.5","webpack-dev-server":{"express":"^4.22.1"},"serialize-javascript":">=7.0.4","@isaacs/brace-expansion":">=5.0.1","@anthropic-ai/claude-agent-sdk":{"@anthropic-ai/sdk":"^0.86.1"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.12.1","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ai":"^6.0.138","ws":"^8.19.0","ajv":"^8.18.0","ink":"^6.8.0","ora":"^9.3.0","pem":"~1.14.8","tsx":"^4.21.0","zod":"^4.3.6","cors":"^2.8.6","glob":"^13.0.6","keyv":"^5.6.0","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.6.2","execa":"^9.6.1","jsdom":"^29.0.0","json5":"^2.2.3","react":"^19.2.4","dedent":"^1.7.2","dotenv":"^17.3.1","http-z":"^8.1.1","jks-js":"^1.1.5","mathjs":"^15.1.1","openai":"^6.33.0","opener":"^1.5.2","semver":"^7.7.4","undici":"^7.24.5","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.2.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.3","csv-parse":"^6.2.0","keyv-file":"^5.3.3","lru-cache":"^11.2.7","minimatch":"^10.2.4","socket.io":"^4.8.3","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.33.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.1","proxy-agent":"^8.0.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"~5.24.10","python-shell":"^5.0.0","cache-manager":"^7.2.8","csv-stringify":"^6.7.0","@inquirer/core":"^11.1.5","@openai/agents":"^0.8.2","better-sqlite3":"^12.8.0","istextorbinary":"^9.5.0","proxy-from-env":"^2.1.0","@inquirer/input":"^5.0.8","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.5.5","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.8","@inquirer/select":"^5.1.0","@opencode-ai/sdk":"^1.2.19","socket.io-client":"^4.8.3","@anthropic-ai/sdk":"^0.82.0","@inquirer/confirm":"^6.0.8","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.1","@inquirer/checkbox":"^5.1.0","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.6.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","@opentelemetry/resources":"^2.6.0","@modelcontextprotocol/sdk":"^1.29.0","@opentelemetry/sdk-trace-base":"^2.6.0","@opentelemetry/sdk-trace-node":"^2.6.0","@apidevtools/json-schema-ref-parser":"^15.3.1","@opentelemetry/semantic-conventions":"^1.40.0","@opentelemetry/exporter-trace-otlp-http":"^0.214.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^5.85.0","nock":"^14.0.11","husky":"^9.1.7","tsdown":"0.21.7","vitest":"^4.1.0","depcheck":"^1.4.7","langfuse":"^3.38.20","prettier":"^3.8.1","pdf-parse":"^2.4.5","supertest":"^7.2.2","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.59.1","typescript":"^6.0.2","@types/cors":"^2.8.19","@types/node":"^24.12.0","drizzle-kit":"^0.31.10","@types/async":"^3.2.25","@types/jsdom":"^28.0.0","@types/react":"19.2.14","concurrently":"^9.2.1","@smithy/types":"^4.13.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@aws-sdk/types":"^3.973.5","@biomejs/biome":"2.4.10","@fal-ai/client":"~1.9.5","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.4.0","read-excel-file":"^8.0.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.0.0","playwright-extra":"^4.3.6","winston-transport":"^4.9.0","@aws-sdk/client-s3":"^3.1003.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.11","source-map-support":"^0.5.21","@types/cli-progress":"^3.11.6","@vitest/coverage-v8":"^4.1.0","ink-testing-library":"^4.0.0","@ibm-cloud/watsonx-ai":"^1.7.11","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.2.97","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.1018.0","@aws-sdk/credential-provider-sso":"^3.972.16","@aws-sdk/client-sagemaker-runtime":"^3.1018.0","@aws-sdk/client-bedrock-agent-runtime":"^3.1018.0"},"optionalDependencies":{"hono":"^4.12.5","sharp":"^0.34.5","natural":"^8.1.1","langfuse":"^3.38.20","@swc/core":"^1.15.18","pdf-parse":"^2.4.5","playwright":"^1.59.1","@fal-ai/client":"~1.9.5","@slack/web-api":"^7.15.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.4.0","read-excel-file":"^8.0.0","@azure/msal-node":"^5.1.0","playwright-extra":"^4.3.6","@openai/codex-sdk":"^0.118.0","@aws-sdk/client-s3":"^3.1003.0","@azure/ai-projects":"^2.0.2","ibm-cloud-sdk-core":"^5.4.11","google-auth-library":"^10.6.2","@swc/core-darwin-x64":"^1.15.18","@ibm-cloud/watsonx-ai":"^1.7.11","@swc/core-darwin-arm64":"^1.15.18","@swc/core-linux-x64-gnu":"^1.15.18","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.18","@swc/core-win32-x64-msvc":"^1.15.18","@huggingface/transformers":"^4.0.0","@smithy/node-http-handler":"^4.4.14","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.59.1","@rollup/rollup-linux-x64-gnu":"^4.59.0","@anthropic-ai/claude-agent-sdk":"^0.2.97","@aws-sdk/client-bedrock-runtime":"^3.1018.0","@aws-sdk/credential-provider-sso":"^3.972.16","@aws-sdk/client-sagemaker-runtime":"^3.1018.0","@aws-sdk/client-bedrock-agent-runtime":"^3.1018.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.121.4_1775867958528_0.6281805560975569","host":"s3://npm-registry-packages-npm-production"}},"0.121.5":{"name":"promptfoo","version":"0.121.5","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.121.5","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"ea1309cffc6cbfa796b26db6becf38c90e170c0e","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.121.5.tgz","fileCount":409,"integrity":"sha512-VjslYQGx/ldT+TBQIngNjeonSETorRycCOZoXsw4yhDKJmsaHkgD+mQKznMRfOjLxfDchdSoZmgOm9OF0GsAuQ==","signatures":[{"sig":"MEYCIQDS180XzIVDIyY7ofj4PqxWYSo7hjk/lR6ihPV1tccP+wIhAN48meMqL3rOl2dHoqyR7wzeb0vBTOen6/XF8eNxH/X/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.121.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23860783},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@huggingface/transformers","@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":"^20.20.0 || >=22.22.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"7b078ebeaffc3a73108966a8699c703acc6c6e3b","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"tsc --noEmit\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","prepare":"husky || exit 0","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,ink-testing-library,@vitest/coverage-v8\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm --prefix src/app run test --","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","storybook":"npm run storybook --prefix src/app","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:coverage":"vitest run --coverage && npm run test:coverage --prefix src/app","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:app:browser":"npm --prefix src/app run test:browser --","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:coverage:ratchet":"node --import tsx ./scripts/checkCoverageRatchets.ts","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"^19.2.4","esbuild":"0.28.0","chokidar":"5.0.0","react-dom":"^19.2.4","whatwg-url":"16.0.1"},"vite":"^8.0.5","jsdom":{"@asamuzakjp/css-color":"5.1.10"},"react":"^19.2.4","gaxios":"^7.1.4","uri-js":"npm:uri-js-replace","esbuild":"0.28.0","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.2.4","dompurify":">=3.3.3","lodash-es":"^4.18.1","react-dom":"^19.2.4","storybook":{"esbuild":"0.27.7"},"whatwg-url":"16.0.1","monaco-editor":{"dompurify":">=3.3.3"},"fast-xml-parser":"$fast-xml-parser","https-proxy-agent":"^9.0.0","minimatch@<=3.1.3":"3.1.5","webpack-dev-server":{"express":"^4.22.1"},"serialize-javascript":">=7.0.4","@isaacs/brace-expansion":">=5.0.1","@anthropic-ai/claude-agent-sdk":{"@anthropic-ai/sdk":"^0.88.0"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.11.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.14.1","dependencies":{"ai":"^6.0.138","ws":"^8.19.0","ajv":"^8.18.0","ink":"^6.8.0","ora":"^9.3.0","pem":"~1.14.8","tsx":"^4.21.0","zod":"^4.3.6","cors":"^2.8.6","glob":"^13.0.6","keyv":"^5.6.0","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.6.2","execa":"^9.6.1","json5":"^2.2.3","react":"^19.2.4","dedent":"^1.7.2","dotenv":"^17.3.1","http-z":"^8.1.1","jks-js":"^1.1.5","mathjs":"^15.1.1","openai":"^6.34.0","opener":"^1.5.2","parse5":"^8.0.0","semver":"^7.7.4","undici":"^7.24.5","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.2.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.3","csv-parse":"^6.2.0","keyv-file":"^5.3.3","lru-cache":"^11.3.0","minimatch":"^10.2.4","socket.io":"^4.8.3","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.33.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.1","proxy-agent":"^8.0.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"~5.24.10","python-shell":"^5.0.0","cache-manager":"^7.2.8","csv-stringify":"^6.7.0","@inquirer/core":"^11.1.5","@openai/agents":"^0.8.3","better-sqlite3":"^12.8.0","istextorbinary":"^9.5.0","proxy-from-env":"^2.1.0","@inquirer/input":"^5.0.8","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.5.5","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.8","@inquirer/select":"^5.1.0","@opencode-ai/sdk":"^1.2.19","socket.io-client":"^4.8.3","@anthropic-ai/sdk":"^0.88.0","@inquirer/confirm":"^6.0.8","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.1","@inquirer/checkbox":"^5.1.0","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.6.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","@opentelemetry/resources":"^2.6.0","@modelcontextprotocol/sdk":"^1.29.0","@opentelemetry/sdk-trace-base":"^2.6.0","@opentelemetry/sdk-trace-node":"^2.6.0","@apidevtools/json-schema-ref-parser":"^15.3.1","@opentelemetry/semantic-conventions":"^1.40.0","@opentelemetry/exporter-trace-otlp-http":"^0.214.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^6.0.0","nock":"^14.0.11","husky":"^9.1.7","tsdown":"0.21.7","vitest":"^4.1.0","depcheck":"^1.4.7","langfuse":"^3.38.20","prettier":"^3.8.1","pdf-parse":"^2.4.5","supertest":"^7.2.2","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.59.1","typescript":"^6.0.2","@types/cors":"^2.8.19","@types/node":"^24.12.0","drizzle-kit":"^0.31.10","@types/async":"^3.2.25","@types/jsdom":"^28.0.0","@types/react":"19.2.14","concurrently":"^9.2.1","@smithy/types":"^4.13.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@aws-sdk/types":"^3.973.5","@biomejs/biome":"2.4.11","@fal-ai/client":"~1.9.5","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.4.0","read-excel-file":"^8.0.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.0.0","playwright-extra":"^4.3.6","winston-transport":"^4.9.0","@aws-sdk/client-s3":"^3.1003.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.11","source-map-support":"^0.5.21","@types/cli-progress":"^3.11.6","@vitest/coverage-v8":"^4.1.0","ink-testing-library":"^4.0.0","@ibm-cloud/watsonx-ai":"^1.7.11","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.2.104","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.1028.0","@aws-sdk/credential-provider-sso":"^3.972.16","@aws-sdk/client-sagemaker-runtime":"^3.1028.0","@aws-sdk/client-bedrock-agent-runtime":"^3.1028.0"},"optionalDependencies":{"hono":"^4.12.5","sharp":"^0.34.5","natural":"^8.1.1","langfuse":"^3.38.20","@swc/core":"^1.15.18","pdf-parse":"^2.4.5","playwright":"^1.59.1","@fal-ai/client":"~1.9.5","@slack/web-api":"^7.15.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.4.0","read-excel-file":"^8.0.0","@azure/msal-node":"^5.1.0","playwright-extra":"^4.3.6","@openai/codex-sdk":"^0.120.0","@aws-sdk/client-s3":"^3.1003.0","@azure/ai-projects":"^2.0.2","ibm-cloud-sdk-core":"^5.4.11","google-auth-library":"^10.6.2","@swc/core-darwin-x64":"^1.15.18","@ibm-cloud/watsonx-ai":"^1.7.11","@swc/core-darwin-arm64":"^1.15.18","@swc/core-linux-x64-gnu":"^1.15.18","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.18","@swc/core-win32-x64-msvc":"^1.15.18","@huggingface/transformers":"^4.0.0","@smithy/node-http-handler":"^4.4.14","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.59.1","@rollup/rollup-linux-x64-gnu":"^4.59.0","@anthropic-ai/claude-agent-sdk":"^0.2.104","@aws-sdk/client-bedrock-runtime":"^3.1028.0","@aws-sdk/credential-provider-sso":"^3.972.16","@aws-sdk/client-sagemaker-runtime":"^3.1028.0","@aws-sdk/client-bedrock-agent-runtime":"^3.1028.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.121.5_1776200685237_0.4955553749152217","host":"s3://npm-registry-packages-npm-production"}},"0.121.7":{"name":"promptfoo","version":"0.121.7","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.121.7","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"f75d8f06bf5b863f203f57aa901092b6de19b866","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.121.7.tgz","fileCount":527,"integrity":"sha512-dYT2CxlQJdCwLijEquxegie7RAnE1UluROLXc5NQnFgiFZ6xrXrOAnZ3dOoLvAFGKC5C+62cMICerE7rZ59a1g==","signatures":[{"sig":"MEUCIAZ2AADFD3DSL5gIVgWxFY+PRfhVBnFHJbI2n401fiFGAiEAqQ7UxlqFJ+f/KJ4LP0MewwTbxYJhjGbHW71lVaYQ7zg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.121.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24886916},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@huggingface/transformers","@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":"^20.20.0 || >=22.22.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"a2c8e4691a68df7c9b7951ae747dc61c14b19d30","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"tsc --noEmit\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","prepare":"husky || exit 0","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,ink-testing-library,@vitest/coverage-v8,langium\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm --prefix src/app run test --","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","storybook":"npm run storybook --prefix src/app","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:coverage":"vitest run --coverage && npm run test:coverage --prefix src/app","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:app:browser":"npm --prefix src/app run test:browser --","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:coverage:ratchet":"node --import tsx ./scripts/checkCoverageRatchets.ts","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"^19.2.4","esbuild":"0.28.0","chokidar":"5.0.0","react-dom":"^19.2.4","whatwg-url":"16.0.1"},"vite":"^8.0.5","jsdom":{"@asamuzakjp/css-color":"5.1.11"},"react":"^19.2.4","gaxios":"^7.1.4","uri-js":"npm:uri-js-replace","esbuild":"0.28.0","langium":{".":"4.2.2","chevrotain":"11.2.0","chevrotain-allstar":"0.4.1","@chevrotain/regexp-to-ast":"11.2.0"},"webpack":"5.106.2","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.2.4","dompurify":"3.4.1","lodash-es":"^4.18.1","react-dom":"^19.2.4","storybook":{"esbuild":"0.27.7"},"chevrotain":{".":"11.2.0","@chevrotain/gast":"11.2.0","@chevrotain/types":"11.2.0","@chevrotain/utils":"11.2.0","@chevrotain/cst-dts-gen":"12.0.0","@chevrotain/regexp-to-ast":"11.2.0"},"whatwg-url":"16.0.1","monaco-editor":{".":"0.55.1","dompurify":"3.4.1"},"fast-xml-parser":"$fast-xml-parser","https-proxy-agent":"^9.0.0","minimatch@<=3.1.3":"3.1.5","chevrotain-allstar":{".":"0.4.1","chevrotain":"11.2.0"},"webpack-dev-server":{"express":"^4.22.1"},"serialize-javascript":">=7.0.4","@chevrotain/cst-dts-gen":{".":"12.0.0","@chevrotain/gast":"12.0.0","@chevrotain/types":"12.0.0"},"@isaacs/brace-expansion":">=5.0.1","@anthropic-ai/claude-agent-sdk":{"@anthropic-ai/sdk":"^0.90.0"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.11.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ai":"^6.0.138","ws":"^8.19.0","ajv":"^8.18.0","ink":"^6.8.0","ora":"^9.3.0","pem":"~1.14.8","tsx":"^4.21.0","zod":"^4.3.6","cors":"^2.8.6","glob":"^13.0.6","keyv":"^5.6.0","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.6.2","execa":"^9.6.1","json5":"^2.2.3","react":"^19.2.4","dedent":"^1.7.2","dotenv":"^17.3.1","http-z":"^8.1.1","jks-js":"^1.1.5","mathjs":"^15.1.1","openai":"^6.34.0","opener":"^1.5.2","parse5":"^8.0.0","semver":"^7.7.4","undici":"^7.24.5","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.2.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.3","csv-parse":"^6.2.0","keyv-file":"^5.3.3","lru-cache":"^11.3.0","minimatch":"^10.2.4","socket.io":"^4.8.3","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.33.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.1","proxy-agent":"^8.0.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"~5.24.10","python-shell":"^5.0.0","cache-manager":"^7.2.8","csv-stringify":"^6.7.0","@inquirer/core":"^11.1.5","@openai/agents":"^0.8.3","better-sqlite3":"^12.8.0","istextorbinary":"^9.5.0","proxy-from-env":"^2.1.0","@inquirer/input":"^5.0.8","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.5.5","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.8","@inquirer/select":"^5.1.0","@opencode-ai/sdk":"^1.2.19","socket.io-client":"^4.8.3","@anthropic-ai/sdk":"^0.90.0","@inquirer/confirm":"^6.0.8","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.1","@inquirer/checkbox":"^5.1.0","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.6.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","@opentelemetry/resources":"^2.6.0","@modelcontextprotocol/sdk":"^1.29.0","@opentelemetry/sdk-trace-base":"^2.6.0","@opentelemetry/sdk-trace-node":"^2.6.0","@apidevtools/json-schema-ref-parser":"^15.3.1","@opentelemetry/semantic-conventions":"^1.40.0","@opentelemetry/exporter-trace-otlp-http":"^0.215.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^6.0.0","nock":"^14.0.11","husky":"^9.1.7","tsdown":"0.21.9","vitest":"^4.1.0","langium":"4.2.2","depcheck":"^1.4.7","langfuse":"^3.38.20","prettier":"^3.8.1","pdf-parse":"^2.4.5","supertest":"^7.2.2","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.59.1","typescript":"^6.0.2","@types/cors":"^2.8.19","@types/node":"^24.12.0","drizzle-kit":"^0.31.10","@types/async":"^3.2.25","@types/jsdom":"^28.0.0","@types/react":"19.2.14","concurrently":"^9.2.1","@smithy/types":"^4.13.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@aws-sdk/types":"^3.973.5","@biomejs/biome":"2.4.12","@fal-ai/client":"~1.9.5","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.4.0","read-excel-file":"^9.0.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.0.0","playwright-extra":"^4.3.6","winston-transport":"^4.9.0","@aws-sdk/client-s3":"^3.1003.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.11","source-map-support":"^0.5.21","@types/cli-progress":"^3.11.6","@vitest/coverage-v8":"^4.1.0","ink-testing-library":"^4.0.0","@ibm-cloud/watsonx-ai":"^1.7.11","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.2.114","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.1031.0","@aws-sdk/credential-provider-sso":"^3.972.16","@aws-sdk/client-sagemaker-runtime":"^3.1031.0","@aws-sdk/client-bedrock-agent-runtime":"^3.1031.0"},"optionalDependencies":{"hono":"^4.12.5","sharp":"^0.34.5","natural":"^8.1.1","langfuse":"^3.38.20","@swc/core":"^1.15.18","pdf-parse":"^2.4.5","playwright":"^1.59.1","@fal-ai/client":"~1.9.5","@slack/web-api":"^7.15.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.4.0","read-excel-file":"^9.0.0","@azure/msal-node":"^5.1.0","playwright-extra":"^4.3.6","@openai/codex-sdk":"^0.121.0","@aws-sdk/client-s3":"^3.1003.0","@azure/ai-projects":"^2.1.0","ibm-cloud-sdk-core":"^5.4.11","google-auth-library":"^10.6.2","@swc/core-darwin-x64":"^1.15.18","@ibm-cloud/watsonx-ai":"^1.7.11","@swc/core-darwin-arm64":"^1.15.18","@swc/core-linux-x64-gnu":"^1.15.18","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.18","@swc/core-win32-x64-msvc":"^1.15.18","@huggingface/transformers":"^4.0.0","@smithy/node-http-handler":"^4.4.14","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.59.1","@rollup/rollup-linux-x64-gnu":"^4.59.0","@anthropic-ai/claude-agent-sdk":"^0.2.114","@aws-sdk/client-bedrock-runtime":"^3.1031.0","@aws-sdk/credential-provider-sso":"^3.972.16","@aws-sdk/client-sagemaker-runtime":"^3.1031.0","@aws-sdk/client-bedrock-agent-runtime":"^3.1031.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.121.7_1776872544327_0.55454672386737","host":"s3://npm-registry-packages-npm-production"}},"0.121.8":{"name":"promptfoo","version":"0.121.8","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.121.8","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"ea523f7eb14bd246b77e35a49832e422a546532a","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.121.8.tgz","fileCount":527,"integrity":"sha512-MqKyztEEbX/u42LfGqPpHl0UPtzDJhDS+qqyG/dlMQ+/FFJN8B2CIwKejuIaREb+8qfUFQpMMK5fsSLKmcTSaw==","signatures":[{"sig":"MEQCIHGs8jsrjEBP9PWvO3gSQnRU1HxQ9XWdUhNJuTV2PYDeAiAKyV9uUWhmr36JGEKdSdcEQtTtTlLNTr5l+GHYuqmT3A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.121.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24944562},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@huggingface/transformers","@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":"^20.20.0 || >=22.22.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"bea4bde7e294c43f9825c7e565f04f1c956e76f2","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"tsc --noEmit\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","prepare":"husky || exit 0","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,ink-testing-library,@vitest/coverage-v8,langium\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm --prefix src/app run test --","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","storybook":"npm run storybook --prefix src/app","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:coverage":"vitest run --coverage && npm run test:coverage --prefix src/app","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:app:browser":"npm --prefix src/app run test:browser --","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:coverage:ratchet":"node --import tsx ./scripts/checkCoverageRatchets.ts","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"^19.2.4","esbuild":"0.28.0","chokidar":"5.0.0","react-dom":"^19.2.4","whatwg-url":"16.0.1"},"vite":"^8.0.5","jsdom":{"@asamuzakjp/css-color":"5.1.11"},"react":"^19.2.4","gaxios":"^7.1.4","uri-js":"npm:uri-js-replace","esbuild":"0.28.0","langium":{".":"4.2.2","chevrotain":"11.2.0","chevrotain-allstar":"0.4.1","@chevrotain/regexp-to-ast":"11.2.0"},"webpack":"5.106.2","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.2.4","dompurify":"3.4.1","lodash-es":"^4.18.1","react-dom":"^19.2.4","storybook":{"esbuild":"0.27.7"},"chevrotain":{".":"11.2.0","@chevrotain/gast":"11.2.0","@chevrotain/types":"11.2.0","@chevrotain/utils":"11.2.0","@chevrotain/cst-dts-gen":"12.0.0","@chevrotain/regexp-to-ast":"11.2.0"},"whatwg-url":"16.0.1","monaco-editor":{".":"0.55.1","dompurify":"3.4.1"},"fast-xml-parser":"$fast-xml-parser","https-proxy-agent":"^9.0.0","minimatch@<=3.1.3":"3.1.5","chevrotain-allstar":{".":"0.4.1","chevrotain":"11.2.0"},"webpack-dev-server":{"express":"^4.22.1"},"serialize-javascript":">=7.0.4","@chevrotain/cst-dts-gen":{".":"12.0.0","@chevrotain/gast":"12.0.0","@chevrotain/types":"12.0.0"},"@isaacs/brace-expansion":">=5.0.1","@anthropic-ai/claude-agent-sdk":{"@anthropic-ai/sdk":"^0.90.0"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.11.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ai":"^6.0.138","ws":"^8.19.0","ajv":"^8.18.0","ink":"^6.8.0","ora":"^9.3.0","pem":"~1.14.8","tsx":"^4.21.0","zod":"^4.3.6","cors":"^2.8.6","glob":"^13.0.6","keyv":"^5.6.0","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.6.2","execa":"^9.6.1","json5":"^2.2.3","react":"^19.2.4","dedent":"^1.7.2","dotenv":"^17.3.1","http-z":"^8.1.1","jks-js":"^1.1.5","mathjs":"^15.1.1","openai":"^6.34.0","opener":"^1.5.2","parse5":"^8.0.0","semver":"^7.7.4","undici":"^7.24.5","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.2.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.3","csv-parse":"^6.2.0","keyv-file":"^5.3.3","lru-cache":"^11.3.0","minimatch":"^10.2.4","socket.io":"^4.8.3","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.33.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.1","proxy-agent":"^8.0.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"~5.24.10","python-shell":"^5.0.0","cache-manager":"^7.2.8","csv-stringify":"^6.7.0","@inquirer/core":"^11.1.5","@openai/agents":"^0.8.5","better-sqlite3":"^12.8.0","istextorbinary":"^9.5.0","proxy-from-env":"^2.1.0","@inquirer/input":"^5.0.8","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.5.5","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.8","@inquirer/select":"^5.1.0","@opencode-ai/sdk":"^1.2.19","socket.io-client":"^4.8.3","@anthropic-ai/sdk":"^0.90.0","@inquirer/confirm":"^6.0.8","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.1","@inquirer/checkbox":"^5.1.0","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.6.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","@opentelemetry/resources":"^2.6.0","@modelcontextprotocol/sdk":"^1.29.0","@opentelemetry/sdk-trace-base":"^2.6.0","@opentelemetry/sdk-trace-node":"^2.6.0","@apidevtools/json-schema-ref-parser":"^15.3.1","@opentelemetry/semantic-conventions":"^1.40.0","@opentelemetry/exporter-trace-otlp-http":"^0.215.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^6.0.0","nock":"^14.0.11","husky":"^9.1.7","tsdown":"0.21.9","vitest":"^4.1.0","langium":"4.2.2","depcheck":"^1.4.7","langfuse":"^3.38.20","prettier":"^3.8.1","pdf-parse":"^2.4.5","supertest":"^7.2.2","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.59.1","typescript":"^6.0.2","@types/cors":"^2.8.19","@types/node":"^24.12.0","drizzle-kit":"^0.31.10","@types/async":"^3.2.25","@types/jsdom":"^28.0.0","@types/react":"19.2.14","concurrently":"^9.2.1","@smithy/types":"^4.13.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@aws-sdk/types":"^3.973.5","@biomejs/biome":"2.4.12","@fal-ai/client":"~1.9.5","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.4.0","read-excel-file":"^9.0.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.0.0","playwright-extra":"^4.3.6","winston-transport":"^4.9.0","@aws-sdk/client-s3":"^3.1003.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.11","source-map-support":"^0.5.21","@types/cli-progress":"^3.11.6","@vitest/coverage-v8":"^4.1.0","ink-testing-library":"^4.0.0","@ibm-cloud/watsonx-ai":"^1.7.11","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.2.117","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.1031.0","@aws-sdk/credential-provider-sso":"^3.972.16","@aws-sdk/client-sagemaker-runtime":"^3.1031.0","@aws-sdk/client-bedrock-agent-runtime":"^3.1031.0"},"optionalDependencies":{"hono":"^4.12.5","sharp":"^0.34.5","natural":"^8.1.1","langfuse":"^3.38.20","@swc/core":"^1.15.18","pdf-parse":"^2.4.5","playwright":"^1.59.1","@fal-ai/client":"~1.9.5","@slack/web-api":"^7.15.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.4.0","read-excel-file":"^9.0.0","@azure/msal-node":"^5.1.0","playwright-extra":"^4.3.6","@openai/codex-sdk":"^0.123.0","@aws-sdk/client-s3":"^3.1003.0","@azure/ai-projects":"^2.1.0","ibm-cloud-sdk-core":"^5.4.11","google-auth-library":"^10.6.2","@swc/core-darwin-x64":"^1.15.18","@ibm-cloud/watsonx-ai":"^1.7.11","@swc/core-darwin-arm64":"^1.15.18","@swc/core-linux-x64-gnu":"^1.15.18","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.18","@swc/core-win32-x64-msvc":"^1.15.18","@huggingface/transformers":"^4.0.0","@smithy/node-http-handler":"^4.4.14","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.59.1","@rollup/rollup-linux-x64-gnu":"^4.59.0","@anthropic-ai/claude-agent-sdk":"^0.2.117","@aws-sdk/client-bedrock-runtime":"^3.1031.0","@aws-sdk/credential-provider-sso":"^3.972.16","@aws-sdk/client-sagemaker-runtime":"^3.1031.0","@aws-sdk/client-bedrock-agent-runtime":"^3.1031.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.121.8_1777067088410_0.8825888756745934","host":"s3://npm-registry-packages-npm-production"}},"0.121.9":{"name":"promptfoo","version":"0.121.9","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.121.9","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"cfece049339525f39c56c8ba8cce262b80617e27","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.121.9.tgz","fileCount":527,"integrity":"sha512-b7BxcNtg7ulGJco67KNUqityciYAGl19hccweBXcqs4nXOSfOhrE8Hk2pwDomdeKODXg6p5jbJzgqq9wBIp7/g==","signatures":[{"sig":"MEYCIQDkYbQGd0gFVYUsYpHnapc4qLxeN2jSryktwmh8asu4rgIhAI3hbEK8LBrH4b2sy8alTXgBiTCkYKp9PhUTq4pFJYXR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.121.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24956728},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@huggingface/transformers","@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":"^20.20.0 || >=22.22.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"ccf46b849a951fc89ccf9248536020a1563ec2db","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"tsc --noEmit\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","prepare":"husky || exit 0","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,ink-testing-library,@vitest/coverage-v8,langium\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm --prefix src/app run test --","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","storybook":"npm run storybook --prefix src/app","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:coverage":"vitest run --coverage && npm run test:coverage --prefix src/app","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:app:browser":"npm --prefix src/app run test:browser --","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:coverage:ratchet":"node --import tsx ./scripts/checkCoverageRatchets.ts","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"^19.2.4","esbuild":"0.28.0","chokidar":"5.0.0","react-dom":"^19.2.4","whatwg-url":"16.0.1"},"vite":"^8.0.5","jsdom":{"@asamuzakjp/css-color":"5.1.11"},"react":"^19.2.4","gaxios":"^7.1.4","uri-js":"npm:uri-js-replace","esbuild":"0.28.0","langium":{".":"4.2.2","chevrotain":"11.2.0","chevrotain-allstar":"0.4.1","@chevrotain/regexp-to-ast":"11.2.0"},"webpack":"5.106.2","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.2.4","dompurify":"3.4.1","lodash-es":"^4.18.1","react-dom":"^19.2.4","storybook":{"esbuild":"0.27.7"},"chevrotain":{".":"11.2.0","@chevrotain/gast":"11.2.0","@chevrotain/types":"11.2.0","@chevrotain/utils":"11.2.0","@chevrotain/cst-dts-gen":"12.0.0","@chevrotain/regexp-to-ast":"11.2.0"},"whatwg-url":"16.0.1","monaco-editor":{".":"0.55.1","dompurify":"3.4.1"},"fast-xml-parser":"$fast-xml-parser","https-proxy-agent":"^9.0.0","minimatch@<=3.1.3":"3.1.5","chevrotain-allstar":{".":"0.4.1","chevrotain":"11.2.0"},"webpack-dev-server":{"express":"^4.22.1"},"serialize-javascript":">=7.0.4","@chevrotain/cst-dts-gen":{".":"12.0.0","@chevrotain/gast":"12.0.0","@chevrotain/types":"12.0.0"},"@isaacs/brace-expansion":">=5.0.1","@anthropic-ai/claude-agent-sdk":{"@anthropic-ai/sdk":"^0.91.1"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.11.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ai":"^6.0.138","ws":"^8.19.0","ajv":"^8.18.0","ink":"^6.8.0","ora":"^9.3.0","pem":"~1.14.8","tsx":"^4.21.0","zod":"^4.3.6","cors":"^2.8.6","glob":"^13.0.6","keyv":"^5.6.0","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.6.2","execa":"^9.6.1","json5":"^2.2.3","react":"^19.2.4","dedent":"^1.7.2","dotenv":"^17.3.1","http-z":"^8.1.1","jks-js":"^1.1.5","mathjs":"^15.1.1","openai":"^6.34.0","opener":"^1.5.2","parse5":"^8.0.0","semver":"^7.7.4","undici":"^7.24.5","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.2.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.3","csv-parse":"^6.2.0","keyv-file":"^5.3.3","lru-cache":"^11.3.0","minimatch":"^10.2.4","socket.io":"^4.8.3","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.33.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.1","proxy-agent":"^8.0.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"~5.24.10","python-shell":"^5.0.0","cache-manager":"^7.2.8","csv-stringify":"^6.7.0","@inquirer/core":"^11.1.5","@openai/agents":"^0.8.5","better-sqlite3":"^12.8.0","istextorbinary":"^9.5.0","proxy-from-env":"^2.1.0","@inquirer/input":"^5.0.8","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.5.5","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.8","@inquirer/select":"^5.1.0","@opencode-ai/sdk":"^1.14.22","socket.io-client":"^4.8.3","@anthropic-ai/sdk":"^0.91.1","@inquirer/confirm":"^6.0.8","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.1","@inquirer/checkbox":"^5.1.0","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.6.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","@opentelemetry/resources":"^2.6.0","@modelcontextprotocol/sdk":"^1.29.0","@opentelemetry/sdk-trace-base":"^2.6.0","@opentelemetry/sdk-trace-node":"^2.6.0","@apidevtools/json-schema-ref-parser":"^15.3.1","@opentelemetry/semantic-conventions":"^1.40.0","@opentelemetry/exporter-trace-otlp-http":"^0.215.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^6.0.0","nock":"^14.0.11","husky":"^9.1.7","tsdown":"0.21.9","vitest":"^4.1.0","langium":"4.2.2","depcheck":"^1.4.7","langfuse":"^3.38.20","prettier":"^3.8.1","pdf-parse":"^2.4.5","supertest":"^7.2.2","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.59.1","typescript":"^6.0.2","@types/cors":"^2.8.19","@types/node":"^24.12.0","drizzle-kit":"^0.31.10","@types/async":"^3.2.25","@types/jsdom":"^28.0.0","@types/react":"19.2.14","concurrently":"^9.2.1","@smithy/types":"^4.13.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@aws-sdk/types":"^3.973.5","@biomejs/biome":"2.4.13","@fal-ai/client":"~1.10.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.4.0","read-excel-file":"^9.0.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.0.0","playwright-extra":"^4.3.6","winston-transport":"^4.9.0","@aws-sdk/client-s3":"^3.1003.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.11","source-map-support":"^0.5.21","@types/cli-progress":"^3.11.6","@vitest/coverage-v8":"^4.1.0","ink-testing-library":"^4.0.0","@ibm-cloud/watsonx-ai":"^1.7.11","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.2.119","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.1036.0","@aws-sdk/credential-provider-sso":"^3.972.16","@aws-sdk/client-sagemaker-runtime":"^3.1036.0","@aws-sdk/client-bedrock-agent-runtime":"^3.1036.0"},"optionalDependencies":{"hono":"^4.12.5","sharp":"^0.34.5","natural":"^8.1.1","langfuse":"^3.38.20","@swc/core":"^1.15.18","pdf-parse":"^2.4.5","playwright":"^1.59.1","@fal-ai/client":"~1.10.0","@slack/web-api":"^7.15.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.4.0","read-excel-file":"^9.0.0","@azure/msal-node":"^5.1.0","playwright-extra":"^4.3.6","@openai/codex-sdk":"^0.125.0","@aws-sdk/client-s3":"^3.1003.0","@azure/ai-projects":"^2.1.0","ibm-cloud-sdk-core":"^5.4.11","google-auth-library":"^10.6.2","@swc/core-darwin-x64":"^1.15.18","@ibm-cloud/watsonx-ai":"^1.7.11","@swc/core-darwin-arm64":"^1.15.18","@swc/core-linux-x64-gnu":"^1.15.18","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.18","@swc/core-win32-x64-msvc":"^1.15.18","@huggingface/transformers":"^4.0.0","@smithy/node-http-handler":"^4.4.14","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.59.1","@rollup/rollup-linux-x64-gnu":"^4.59.0","@anthropic-ai/claude-agent-sdk":"^0.2.119","@aws-sdk/client-bedrock-runtime":"^3.1036.0","@aws-sdk/credential-provider-sso":"^3.972.16","@aws-sdk/client-sagemaker-runtime":"^3.1036.0","@aws-sdk/client-bedrock-agent-runtime":"^3.1036.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.121.9_1777315341683_0.8812204564693542","host":"s3://npm-registry-packages-npm-production"}},"0.121.10":{"name":"promptfoo","version":"0.121.10","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.121.10","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"d2e6c750114a571a130905a07f03af6d70c2be84","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.121.10.tgz","fileCount":519,"integrity":"sha512-bIUjrXR7rV6fxzysJQYqbU6TcQGvBErejVpUhwsYSWqvA18gtA2VcyMSuzondeIe6VtHgBF/TUTKS/qLpJDluQ==","signatures":[{"sig":"MEYCIQCFlajqGF/zm0VTyaQzwmjADgZ3TY2LOSohHvkzE4/bOgIhANX9MBqIn9oIhbUhNa9GalgaT/h7zDxYRV3kqke2u0Bk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.121.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25584796},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@huggingface/transformers","@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":"^20.20.0 || >=22.22.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"1acb93faa8ac7cdf8fbaafcd4029626ebfcca5b5","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc --noEmit","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"npm run tsc\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","prepare":"husky || exit 0","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,@vitest/coverage-v8,langium\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm --prefix src/app run test --","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","storybook":"npm run storybook --prefix src/app","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","openapi:check":"tsx scripts/generateOpenApi.ts --check","test:coverage":"vitest run --coverage && npm run test:coverage --prefix src/app","deps:ownership":"tsx scripts/reportDependencyOwnership.ts","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","openapi:generate":"tsx scripts/generateOpenApi.ts","test:app:browser":"npm --prefix src/app run test:browser --","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","architecture:check":"tsx scripts/checkArchitectureBoundaries.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:coverage:ratchet":"node --import tsx ./scripts/checkCoverageRatchets.ts","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh","check:typescript-coverage":"tsx scripts/checkTypeScriptCoverage.ts"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"^19.2.4","esbuild":"0.28.0","chokidar":"5.0.0","react-dom":"^19.2.4","whatwg-url":"16.0.1"},"vite":"^8.0.5","jsdom":{"@asamuzakjp/css-color":"5.1.11"},"react":"^19.2.4","gaxios":"^7.1.4","uri-js":"npm:uri-js-replace","esbuild":"0.28.0","langium":{".":"4.2.3","chevrotain":"11.2.0","chevrotain-allstar":"0.4.1","@chevrotain/regexp-to-ast":"11.2.0"},"webpack":"5.106.2","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.2.4","dompurify":"3.4.2","lodash-es":"^4.18.1","react-dom":"^19.2.4","storybook":{"esbuild":"0.27.7"},"chevrotain":{".":"11.2.0","@chevrotain/gast":"11.2.0","@chevrotain/types":"11.2.0","@chevrotain/utils":"11.2.0","@chevrotain/cst-dts-gen":"12.0.0","@chevrotain/regexp-to-ast":"11.2.0"},"whatwg-url":"16.0.1","monaco-editor":{".":"0.55.1","dompurify":"3.4.2"},"fast-xml-parser":"$fast-xml-parser","https-proxy-agent":"^9.0.0","minimatch@<=3.1.3":"3.1.5","chevrotain-allstar":{".":"0.4.1","chevrotain":"11.2.0"},"webpack-dev-server":{"express":"^4.22.1"},"serialize-javascript":">=7.0.4","@chevrotain/cst-dts-gen":{".":"12.0.0","@chevrotain/gast":"12.0.0","@chevrotain/types":"12.0.0"},"@isaacs/brace-expansion":">=5.0.1","@anthropic-ai/claude-agent-sdk":{"@anthropic-ai/sdk":"^0.92.0"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.11.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ai":"^6.0.168","ws":"^8.19.0","ajv":"^8.18.0","ora":"^9.3.0","pem":"~1.14.8","tsx":"^4.21.0","zod":"^4.3.6","cors":"^2.8.6","glob":"^13.0.6","keyv":"^5.6.0","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.6.2","execa":"^9.6.1","json5":"^2.2.3","dedent":"^1.7.2","dotenv":"^17.3.1","http-z":"^8.1.1","jks-js":"^1.1.5","mathjs":"^15.1.1","openai":"^6.35.0","opener":"^1.5.2","parse5":"^8.0.0","semver":"^7.7.4","undici":"^7.25.0","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.2.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.3","csv-parse":"^6.2.0","keyv-file":"^5.3.3","lru-cache":"^11.3.0","minimatch":"^10.2.4","socket.io":"^4.8.3","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.33.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.1","proxy-agent":"^8.0.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"~5.24.10","python-shell":"^5.0.0","cache-manager":"^7.2.8","csv-stringify":"^6.7.0","@inquirer/core":"^11.1.5","@openai/agents":"^0.8.5","better-sqlite3":"^12.8.0","istextorbinary":"^9.5.0","proxy-from-env":"^2.1.0","@inquirer/input":"^5.0.8","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.7.1","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.8","@inquirer/select":"^5.1.0","@opencode-ai/sdk":"^1.14.33","socket.io-client":"^4.8.3","@anthropic-ai/sdk":"^0.92.0","@inquirer/confirm":"^6.0.8","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.1","@inquirer/checkbox":"^5.1.0","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.6.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","@opentelemetry/resources":"^2.6.0","@modelcontextprotocol/sdk":"^1.29.0","@opentelemetry/sdk-trace-base":"^2.6.0","@opentelemetry/sdk-trace-node":"^2.6.0","@apidevtools/json-schema-ref-parser":"^15.3.1","@opentelemetry/semantic-conventions":"^1.40.0","@opentelemetry/exporter-trace-otlp-http":"^0.216.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^6.0.0","nock":"^14.0.11","husky":"^9.1.7","tsdown":"0.21.9","vitest":"^4.1.0","langium":"4.2.3","depcheck":"^1.4.7","langfuse":"^3.38.20","prettier":"^3.8.1","pdf-parse":"^2.4.5","supertest":"^7.2.2","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.59.1","typescript":"^6.0.2","@types/cors":"^2.8.19","@types/node":"^24.12.0","drizzle-kit":"^0.31.10","@types/async":"^3.2.25","@types/jsdom":"^28.0.0","concurrently":"^9.2.1","@smithy/types":"^4.13.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@aws-sdk/types":"^3.973.5","@biomejs/biome":"2.4.13","@fal-ai/client":"~1.10.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.4.0","read-excel-file":"^9.0.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.0.0","playwright-extra":"^4.3.6","winston-transport":"^4.9.0","@aws-sdk/client-s3":"^3.1003.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.11","source-map-support":"^0.5.21","@types/cli-progress":"^3.11.6","@vitest/coverage-v8":"^4.1.0","@ibm-cloud/watsonx-ai":"^1.7.11","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.2.126","@asteasolutions/zod-to-openapi":"^8.5.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.1040.0","@aws-sdk/credential-provider-sso":"^3.972.16","@aws-sdk/client-sagemaker-runtime":"^3.1040.0","@aws-sdk/client-bedrock-agent-runtime":"^3.1040.0"},"optionalDependencies":{"hono":"^4.12.5","sharp":"^0.34.5","natural":"^8.1.1","langfuse":"^3.38.20","@swc/core":"^1.15.18","pdf-parse":"^2.4.5","playwright":"^1.59.1","@fal-ai/client":"~1.10.0","@slack/web-api":"^7.15.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.4.0","read-excel-file":"^9.0.0","@azure/msal-node":"^5.1.0","playwright-extra":"^4.3.6","@openai/codex-sdk":"^0.128.0","@aws-sdk/client-s3":"^3.1003.0","@azure/ai-projects":"^2.1.0","ibm-cloud-sdk-core":"^5.4.11","google-auth-library":"^10.6.2","@swc/core-darwin-x64":"^1.15.18","@ibm-cloud/watsonx-ai":"^1.7.11","@swc/core-darwin-arm64":"^1.15.18","@swc/core-linux-x64-gnu":"^1.15.18","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.18","@swc/core-win32-x64-msvc":"^1.15.18","@huggingface/transformers":"^4.0.0","@smithy/node-http-handler":"^4.4.14","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.59.1","@rollup/rollup-linux-x64-gnu":"^4.59.0","@anthropic-ai/claude-agent-sdk":"^0.2.126","@aws-sdk/client-bedrock-runtime":"^3.1040.0","@aws-sdk/credential-provider-sso":"^3.972.16","@aws-sdk/client-sagemaker-runtime":"^3.1040.0","@aws-sdk/client-bedrock-agent-runtime":"^3.1040.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.121.10_1778177630991_0.5779524651891048","host":"s3://npm-registry-packages-npm-production"}},"0.121.11":{"name":"promptfoo","version":"0.121.11","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.121.11","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"ff80c50f8778b1aff29cdffd3222bdd2916a2a21","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.121.11.tgz","fileCount":519,"integrity":"sha512-URdQxCgfKbXfA5jFYBkYdGNcz6z2mo/umnGUJ1irVYNNDV9X8qUNAt0sC5OixTUCEGgx1+H9frcbboTtZuJybQ==","signatures":[{"sig":"MEUCIDTBV6b6xtEBkrt6hr8fFib0E5Ekfh9u8WpaBcjm7fNjAiEAmY3JioXTHsjiKAFSByMCIKQawZKoTOaG3F+hfsZ9i44=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.121.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25651962},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@huggingface/transformers","@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":"^20.20.0 || >=22.22.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"fa7dccf6b1d2cfc8bb9b70d1f0ab21bfe9abbeee","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc --noEmit","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"npm run tsc\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","prepare":"husky || exit 0","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,@vitest/coverage-v8,langium\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm --prefix src/app run test --","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","storybook":"npm run storybook --prefix src/app","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx --watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","openapi:check":"tsx scripts/generateOpenApi.ts --check","test:coverage":"vitest run --coverage && npm run test:coverage --prefix src/app","deps:ownership":"tsx scripts/reportDependencyOwnership.ts","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","openapi:generate":"tsx scripts/generateOpenApi.ts","test:app:browser":"npm --prefix src/app run test:browser --","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","architecture:check":"tsx scripts/checkArchitectureBoundaries.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:coverage:ratchet":"node --import tsx ./scripts/checkCoverageRatchets.ts","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh","check:typescript-coverage":"tsx scripts/checkTypeScriptCoverage.ts"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"^19.2.4","esbuild":"0.28.0","chokidar":"5.0.0","react-dom":"^19.2.4","whatwg-url":"16.0.1"},"vite":"^8.0.5","jsdom":{"@asamuzakjp/css-color":"5.1.11"},"react":"^19.2.4","gaxios":"^7.1.4","uri-js":"npm:uri-js-replace","esbuild":"0.28.0","langium":{".":"4.2.3","chevrotain":"11.2.0","chevrotain-allstar":"0.4.1","@chevrotain/regexp-to-ast":"11.2.0"},"webpack":"5.106.2","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.2.4","dompurify":"3.4.2","lodash-es":"^4.18.1","react-dom":"^19.2.4","storybook":{"esbuild":"0.27.7"},"chevrotain":{".":"11.2.0","@chevrotain/gast":"11.2.0","@chevrotain/types":"11.2.0","@chevrotain/utils":"11.2.0","@chevrotain/cst-dts-gen":"12.0.0","@chevrotain/regexp-to-ast":"11.2.0"},"whatwg-url":"16.0.1","monaco-editor":{".":"0.55.1","dompurify":"3.4.2"},"fast-xml-parser":"$fast-xml-parser","https-proxy-agent":"^9.0.0","minimatch@<=3.1.3":"3.1.5","chevrotain-allstar":{".":"0.4.1","chevrotain":"11.2.0"},"webpack-dev-server":{"express":"^4.22.1"},"serialize-javascript":">=7.0.4","@chevrotain/cst-dts-gen":{".":"12.0.0","@chevrotain/gast":"12.0.0","@chevrotain/types":"12.0.0"},"@isaacs/brace-expansion":">=5.0.1","@anthropic-ai/claude-agent-sdk":{"@anthropic-ai/sdk":"^0.92.0"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.11.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ai":"^6.0.168","ws":"^8.19.0","ajv":"^8.18.0","ora":"^9.3.0","pem":"~1.14.8","tsx":"^4.21.0","zod":"^4.3.6","cors":"^2.8.6","glob":"^13.0.6","keyv":"^5.6.0","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.6.2","execa":"^9.6.1","json5":"^2.2.3","dedent":"^1.7.2","dotenv":"^17.3.1","http-z":"^8.1.1","jks-js":"^1.1.5","mathjs":"^15.1.1","openai":"^6.35.0","opener":"^1.5.2","parse5":"^8.0.0","semver":"^7.7.4","undici":"^7.25.0","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.2.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.3","csv-parse":"^6.2.0","keyv-file":"^5.3.3","lru-cache":"^11.3.0","minimatch":"^10.2.4","socket.io":"^4.8.3","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.33.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.1","proxy-agent":"^8.0.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"~5.24.10","python-shell":"^5.0.0","cache-manager":"^7.2.8","csv-stringify":"^6.7.0","@inquirer/core":"^11.1.5","@openai/agents":"^0.8.5","better-sqlite3":"^12.8.0","istextorbinary":"^9.5.0","proxy-from-env":"^2.1.0","@inquirer/input":"^5.0.8","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.7.1","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.8","@inquirer/select":"^5.1.0","@opencode-ai/sdk":"^1.14.33","socket.io-client":"^4.8.3","@anthropic-ai/sdk":"^0.92.0","@inquirer/confirm":"^6.0.8","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.1","@inquirer/checkbox":"^5.1.0","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.6.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","@opentelemetry/resources":"^2.6.0","@modelcontextprotocol/sdk":"^1.29.0","@opentelemetry/sdk-trace-base":"^2.6.0","@opentelemetry/sdk-trace-node":"^2.6.0","@apidevtools/json-schema-ref-parser":"^15.3.1","@opentelemetry/semantic-conventions":"^1.40.0","@opentelemetry/exporter-trace-otlp-http":"^0.216.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^6.0.0","nock":"^14.0.11","husky":"^9.1.7","tsdown":"0.21.9","vitest":"^4.1.0","langium":"4.2.3","depcheck":"^1.4.7","langfuse":"^3.38.20","prettier":"^3.8.1","pdf-parse":"^2.4.5","supertest":"^7.2.2","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.59.1","typescript":"^6.0.2","@types/cors":"^2.8.19","@types/node":"^24.12.0","drizzle-kit":"^0.31.10","@types/async":"^3.2.25","@types/jsdom":"^28.0.0","concurrently":"^9.2.1","@smithy/types":"^4.13.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@aws-sdk/types":"^3.973.5","@biomejs/biome":"2.4.13","@fal-ai/client":"~1.10.0","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.4.0","read-excel-file":"^9.0.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.0.0","playwright-extra":"^4.3.6","winston-transport":"^4.9.0","@aws-sdk/client-s3":"^3.1003.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.11","source-map-support":"^0.5.21","@types/cli-progress":"^3.11.6","@vitest/coverage-v8":"^4.1.0","@ibm-cloud/watsonx-ai":"^1.7.11","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.2.126","@asteasolutions/zod-to-openapi":"^8.5.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.1040.0","@aws-sdk/credential-provider-sso":"^3.972.16","@aws-sdk/client-sagemaker-runtime":"^3.1040.0","@aws-sdk/client-bedrock-agent-runtime":"^3.1040.0"},"optionalDependencies":{"hono":"^4.12.5","sharp":"^0.34.5","natural":"^8.1.1","langfuse":"^3.38.20","@swc/core":"^1.15.18","pdf-parse":"^2.4.5","playwright":"^1.59.1","@fal-ai/client":"~1.10.0","@slack/web-api":"^7.15.0","@azure/identity":"^4.13.0","node-sql-parser":"^5.4.0","read-excel-file":"^9.0.0","@azure/msal-node":"^5.1.0","playwright-extra":"^4.3.6","@openai/codex-sdk":"^0.128.0","@aws-sdk/client-s3":"^3.1003.0","@azure/ai-projects":"^2.1.0","ibm-cloud-sdk-core":"^5.4.11","google-auth-library":"^10.6.2","@swc/core-darwin-x64":"^1.15.18","@ibm-cloud/watsonx-ai":"^1.7.11","@swc/core-darwin-arm64":"^1.15.18","@swc/core-linux-x64-gnu":"^1.15.18","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.18","@swc/core-win32-x64-msvc":"^1.15.18","@huggingface/transformers":"^4.0.0","@smithy/node-http-handler":"^4.4.14","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.59.1","@rollup/rollup-linux-x64-gnu":"^4.59.0","@anthropic-ai/claude-agent-sdk":"^0.2.126","@aws-sdk/client-bedrock-runtime":"^3.1040.0","@aws-sdk/credential-provider-sso":"^3.972.16","@aws-sdk/client-sagemaker-runtime":"^3.1040.0","@aws-sdk/client-bedrock-agent-runtime":"^3.1040.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.121.11_1778207105777_0.6593551644743938","host":"s3://npm-registry-packages-npm-production"}},"0.121.12":{"name":"promptfoo","version":"0.121.12","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.121.12","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://github.com/promptfoo/promptfoo#readme","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"89813c2fe6ecee189c0fab7dd001316dc9a60b69","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.121.12.tgz","fileCount":525,"integrity":"sha512-xP/RV+J05eZEsDDDnfU6nCdL0WLUVbo4FnmpwRFascgKLXIO+95NRV7T2iI2v1+Xa51I0Pb/VKIz/qRo41R69Q==","signatures":[{"sig":"MEUCIHj11yS/BGtf7BmNTByw4Xqq1Hq/ChGYwjWIBtHvsE57AiEAlK5MWXSWxQfzz3CnZgHCWDdhZKxZsW6L6UAJ27IvuFs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.121.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25950043},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@huggingface/transformers","@playwright/browser-chromium","@swc/core","better-sqlite3","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":"^20.20.0 || >=22.22.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"7b18902260f1927dbbdb0725ac292dd27dcf3a43","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc --noEmit","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"npm run tsc\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","prepare":"husky || exit 0","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,@vitest/coverage-v8,langium\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm --prefix src/app run test --","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","storybook":"npm run storybook --prefix src/app","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","openapi:check":"tsx scripts/generateOpenApi.ts --check","test:coverage":"vitest run --coverage && npm run test:coverage --prefix src/app","deps:ownership":"tsx scripts/reportDependencyOwnership.ts","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","openapi:generate":"tsx scripts/generateOpenApi.ts","test:app:browser":"npm --prefix src/app run test:browser --","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","architecture:check":"tsx scripts/checkArchitectureBoundaries.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:coverage:ratchet":"node --import tsx ./scripts/checkCoverageRatchets.ts","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh","check:typescript-coverage":"tsx scripts/checkTypeScriptCoverage.ts"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"^19.2.4","esbuild":"0.28.0","chokidar":"5.0.0","react-dom":"^19.2.4","whatwg-url":"16.0.1"},"vite":"^8.0.5","jsdom":{"@asamuzakjp/css-color":"5.1.11"},"react":"^19.2.4","gaxios":"^7.1.4","uri-js":"npm:uri-js-replace","esbuild":"0.28.0","langium":{".":"4.2.4","chevrotain":"11.2.0","chevrotain-allstar":"0.4.1","@chevrotain/regexp-to-ast":"11.2.0"},"webpack":"5.106.2","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.2.4","dompurify":"3.4.3","lodash-es":"^4.18.1","react-dom":"^19.2.4","storybook":{"esbuild":"0.27.7"},"chevrotain":{".":"11.2.0","@chevrotain/gast":"11.2.0","@chevrotain/types":"11.2.0","@chevrotain/utils":"11.2.0","@chevrotain/cst-dts-gen":"12.0.0","@chevrotain/regexp-to-ast":"11.2.0"},"ip-address":"10.2.0","whatwg-url":"16.0.1","monaco-editor":{".":"0.55.1","dompurify":"3.4.3"},"fast-xml-parser":"$fast-xml-parser","https-proxy-agent":"^9.0.0","minimatch@<=3.1.3":"3.1.5","chevrotain-allstar":{".":"0.4.1","chevrotain":"11.2.0"},"webpack-dev-server":{"express":"^4.22.1"},"serialize-javascript":">=7.0.4","@chevrotain/cst-dts-gen":{".":"12.0.0","@chevrotain/gast":"12.0.0","@chevrotain/types":"12.0.0"},"@isaacs/brace-expansion":">=5.0.1","@anthropic-ai/claude-agent-sdk":{"@anthropic-ai/sdk":"^0.95.2"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.11.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.15.0","dependencies":{"ai":"^6.0.168","ws":"^8.19.0","ajv":"^8.18.0","ora":"^9.3.0","pem":"~1.14.8","tsx":"^4.21.0","zod":"^4.3.6","cors":"^2.8.6","glob":"^13.0.6","keyv":"^5.6.0","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.6.2","execa":"^9.6.1","json5":"^2.2.3","dedent":"^1.7.2","dotenv":"^17.3.1","http-z":"^8.1.1","jks-js":"^1.1.5","mathjs":"^15.1.1","openai":"^6.37.0","opener":"^1.5.2","parse5":"^8.0.0","semver":"^7.7.4","undici":"^7.25.0","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.2.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.3","csv-parse":"^6.2.0","keyv-file":"^5.3.3","lru-cache":"^11.3.0","minimatch":"^10.2.4","socket.io":"^4.8.3","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.33.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.1","proxy-agent":"^8.0.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"~5.24.10","python-shell":"^5.0.0","cache-manager":"^7.2.8","csv-stringify":"^6.7.0","@inquirer/core":"^11.1.5","@openai/agents":"^0.11.3","better-sqlite3":"^12.10.0","istextorbinary":"^9.5.0","proxy-from-env":"^2.1.0","@inquirer/input":"^5.0.8","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.7.1","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.8","@inquirer/search":"^4.1.8","@inquirer/select":"^5.1.0","@opencode-ai/sdk":"^1.14.33","socket.io-client":"^4.8.3","@anthropic-ai/sdk":"^0.97.1","@inquirer/confirm":"^6.0.8","binary-extensions":"^3.1.0","@googleapis/sheets":"^13.0.1","@inquirer/checkbox":"^5.1.0","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.6.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","@opentelemetry/resources":"^2.6.0","@modelcontextprotocol/sdk":"^1.29.0","@opentelemetry/sdk-trace-base":"^2.6.0","@opentelemetry/sdk-trace-node":"^2.6.0","@apidevtools/json-schema-ref-parser":"^15.3.1","@opentelemetry/semantic-conventions":"^1.40.0","@opentelemetry/exporter-trace-otlp-http":"^0.218.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^6.0.0","nock":"^14.0.11","husky":"^9.1.7","tsdown":"0.21.9","vitest":"^4.1.0","langium":"4.2.4","depcheck":"^1.4.7","langfuse":"^3.38.20","prettier":"^3.8.1","pdf-parse":"^2.4.5","supertest":"^7.2.2","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.60.0","typescript":"^6.0.2","@types/cors":"^2.8.19","@types/node":"^24.12.0","drizzle-kit":"^0.31.10","@types/async":"^3.2.25","@types/jsdom":"^28.0.0","concurrently":"^9.2.1","@smithy/types":"^4.13.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@aws-sdk/types":"^3.973.5","@biomejs/biome":"2.4.15","@fal-ai/client":"~1.10.1","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.4.0","read-excel-file":"^9.0.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.0.0","playwright-extra":"^4.3.6","winston-transport":"^4.9.0","@aws-sdk/client-s3":"^3.1003.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.11","source-map-support":"^0.5.21","@types/cli-progress":"^3.11.6","@vitest/coverage-v8":"^4.1.0","@ibm-cloud/watsonx-ai":"^1.7.12","@types/better-sqlite3":"^7.6.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"^0.2.141","@asteasolutions/zod-to-openapi":"^8.5.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.1045.0","@aws-sdk/credential-provider-sso":"^3.972.16","@aws-sdk/client-sagemaker-runtime":"^3.1045.0","@aws-sdk/client-bedrock-agent-runtime":"^3.1045.0"},"optionalDependencies":{"hono":"^4.12.5","sharp":"^0.34.5","natural":"^8.1.1","langfuse":"^3.38.20","@swc/core":"^1.15.18","pdf-parse":"^2.4.5","playwright":"^1.60.0","@fal-ai/client":"~1.10.1","@slack/web-api":"^7.15.2","@azure/identity":"^4.13.0","node-sql-parser":"^5.4.0","read-excel-file":"^9.0.0","@azure/msal-node":"^5.2.0","playwright-extra":"^4.3.6","@openai/codex-sdk":"^0.130.0","@aws-sdk/client-s3":"^3.1003.0","@azure/ai-projects":"^2.1.1","ibm-cloud-sdk-core":"^5.4.11","google-auth-library":"^10.6.2","@swc/core-darwin-x64":"^1.15.18","@ibm-cloud/watsonx-ai":"^1.7.12","@swc/core-darwin-arm64":"^1.15.18","@swc/core-linux-x64-gnu":"^1.15.18","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.18","@swc/core-win32-x64-msvc":"^1.15.18","@huggingface/transformers":"^4.0.0","@smithy/node-http-handler":"^4.4.14","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.60.0","@rollup/rollup-linux-x64-gnu":"^4.60.3","@anthropic-ai/claude-agent-sdk":"^0.2.141","@aws-sdk/client-bedrock-runtime":"^3.1045.0","@aws-sdk/credential-provider-sso":"^3.972.16","@aws-sdk/client-sagemaker-runtime":"^3.1045.0","@aws-sdk/client-bedrock-agent-runtime":"^3.1045.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.121.12_1779344824661_0.5183616230751928","host":"s3://npm-registry-packages-npm-production"}},"0.121.13":{"name":"promptfoo","version":"0.121.13","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.121.13","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://promptfoo.dev","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"564f31e1d7f6f1e5918ec55681167f8ae7eec726","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.121.13.tgz","fileCount":536,"integrity":"sha512-DBPSixUophzcD7S7lML6SqVwnVtrhK5A3HsZ03IG9Xrw0t24r5imG7nLj+YMb0vlAjbdFtE7yFG+rsqDpfYp6g==","signatures":[{"sig":"MEUCIHipQkTvLj7rwj2cyGqCL1V63UL4AsOacs7bu/n5iF6aAiEA3gduxv0WpIyQP08K7AquxzVnOQshDLN60ZuMLB0HpsQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.121.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26521266},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@huggingface/transformers","@playwright/browser-chromium","@swc/core","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":"^20.20.0 || >=22.22.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"}},"gitHead":"4860e990c7e9a2f8f677173fb92cf9867b34d03f","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc --noEmit","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"npm run tsc\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","prepare":"husky || exit 0","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,@vitest/coverage-v8,langium\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm --prefix src/app run test --","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","storybook":"npm run storybook --prefix src/app","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","openapi:check":"tsx scripts/generateOpenApi.ts --check","test:coverage":"vitest run --coverage && npm run test:coverage --prefix src/app","deps:ownership":"tsx scripts/reportDependencyOwnership.ts","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","openapi:generate":"tsx scripts/generateOpenApi.ts","test:app:browser":"npm --prefix src/app run test:browser --","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","architecture:check":"tsx scripts/checkArchitectureBoundaries.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:coverage:ratchet":"node --import tsx ./scripts/checkCoverageRatchets.ts","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh","check:typescript-coverage":"tsx scripts/checkTypeScriptCoverage.ts"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"^19.2.4","esbuild":"0.28.0","chokidar":"5.0.0","react-dom":"^19.2.4","whatwg-url":"16.0.1"},"qs":">=6.15.2 <7.0.0","vite":"^8.0.5","jsdom":{"@asamuzakjp/css-color":"5.1.11"},"react":"^19.2.4","gaxios":"^7.1.4","uri-js":"npm:uri-js-replace","esbuild":"0.28.0","langium":{".":"4.2.4","chevrotain":"11.2.0","chevrotain-allstar":"0.4.1","@chevrotain/regexp-to-ast":"11.2.0"},"webpack":"5.107.1","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.2.4","dompurify":"3.4.5","engine.io":{".":"6.6.8","ws":"$ws"},"lodash-es":"^4.18.1","react-dom":"^19.2.4","storybook":{"esbuild":"0.27.7"},"chevrotain":{".":"11.2.0","@chevrotain/gast":"11.2.0","@chevrotain/types":"11.2.0","@chevrotain/utils":"11.2.0","@chevrotain/cst-dts-gen":"12.0.0","@chevrotain/regexp-to-ast":"11.2.0"},"ip-address":"10.2.0","whatwg-url":"16.0.1","monaco-editor":{".":"0.55.1","dompurify":"3.4.5"},"fast-xml-parser":"$fast-xml-parser","engine.io-client":{".":"6.6.5","ws":"$ws"},"brace-expansion@5":"^5.0.6","https-proxy-agent":"^9.0.0","minimatch@<=3.1.3":"3.1.5","socket.io-adapter":{".":"2.5.7","ws":"$ws"},"chevrotain-allstar":{".":"0.4.1","chevrotain":"11.2.0"},"webpack-dev-server":{"express":"^4.22.2"},"serialize-javascript":">=7.0.4","@chevrotain/cst-dts-gen":{".":"12.0.0","@chevrotain/gast":"12.0.0","@chevrotain/types":"12.0.0"},"@isaacs/brace-expansion":">=5.0.1"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.11.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ai":"^6.0.168","ws":"^8.19.0","ajv":"^8.18.0","ora":"^9.3.0","tsx":"^4.21.0","zod":"^4.3.6","cors":"^2.8.6","glob":"^13.0.6","keyv":"^5.6.0","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.6.2","execa":"^9.6.1","json5":"^2.2.3","dedent":"^1.7.2","dotenv":"^17.3.1","http-z":"^8.1.1","mathjs":"^15.1.1","openai":"^6.37.0","opener":"^1.5.2","parse5":"^8.0.0","semver":"^7.7.4","undici":"^7.25.0","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.2.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.3","csv-parse":"^6.2.0","keyv-file":"^5.3.3","lru-cache":"^11.3.0","minimatch":"^10.2.4","socket.io":"^4.8.3","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.33.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.1","proxy-agent":"^8.0.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"~5.24.10","python-shell":"^5.0.0","cache-manager":"^7.2.8","csv-stringify":"^6.7.0","@inquirer/core":"^11.1.5","@libsql/client":"^0.17.3","istextorbinary":"^9.5.0","proxy-from-env":"^2.1.0","@inquirer/input":"^5.0.8","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.7.1","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.8","@inquirer/search":"^4.1.8","@inquirer/select":"^5.1.0","socket.io-client":"^4.8.3","@anthropic-ai/sdk":"0.100.0","@inquirer/confirm":"^6.0.8","binary-extensions":"^3.1.0","@inquirer/checkbox":"^5.1.0","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.6.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-trace-base":"^2.6.0","@opentelemetry/sdk-trace-node":"^2.6.0","@apidevtools/json-schema-ref-parser":"^15.3.1","@opentelemetry/semantic-conventions":"^1.40.0","@opentelemetry/exporter-trace-otlp-http":"^0.218.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^6.0.0","nock":"^14.0.11","husky":"^9.1.7","tsdown":"0.21.9","vitest":"^4.1.0","langium":"4.2.4","depcheck":"^1.4.7","langfuse":"^3.38.20","prettier":"^3.8.1","pdf-parse":"^2.4.5","supertest":"^7.2.2","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.60.0","typescript":"^6.0.2","@types/cors":"^2.8.19","@types/node":"^24.12.0","drizzle-kit":"^0.31.10","@types/async":"^3.2.25","@types/jsdom":"^28.0.0","concurrently":"^9.2.1","@smithy/types":"^4.13.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@aws-sdk/types":"^3.973.5","@biomejs/biome":"2.4.15","@fal-ai/client":"~1.10.1","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.4.0","read-excel-file":"^9.0.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.0.0","playwright-extra":"^4.3.6","winston-transport":"^4.9.0","@aws-sdk/client-s3":"^3.1003.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.11","source-map-support":"^0.5.21","@types/cli-progress":"^3.11.6","@vitest/coverage-v8":"^4.1.0","@ibm-cloud/watsonx-ai":"^1.7.12","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"0.3.153","@asteasolutions/zod-to-openapi":"^8.5.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.1045.0","@aws-sdk/credential-provider-sso":"^3.972.16","@aws-sdk/client-sagemaker-runtime":"^3.1045.0","@aws-sdk/client-bedrock-agent-runtime":"^3.1045.0"},"optionalDependencies":{"pem":"~1.14.8","hono":"^4.12.5","sharp":"^0.34.5","jks-js":"^1.1.5","natural":"^8.1.1","langfuse":"^3.38.20","@swc/core":"^1.15.18","pdf-parse":"^2.4.5","playwright":"^1.60.0","@fal-ai/client":"~1.10.1","@openai/agents":"^0.11.3","@slack/web-api":"^7.15.2","@azure/identity":"^4.13.0","node-sql-parser":"^5.4.0","read-excel-file":"^9.0.0","@azure/msal-node":"^5.2.0","@opencode-ai/sdk":"^1.14.33","playwright-extra":"^4.3.6","@openai/codex-sdk":"^0.130.0","@aws-sdk/client-s3":"^3.1003.0","@azure/ai-projects":"^2.1.1","@googleapis/sheets":"^13.0.1","ibm-cloud-sdk-core":"^5.4.11","@azure/storage-blob":"^12.31.0","google-auth-library":"^10.6.2","@swc/core-darwin-x64":"^1.15.18","@ibm-cloud/watsonx-ai":"^1.7.12","@swc/core-darwin-arm64":"^1.15.18","@swc/core-linux-x64-gnu":"^1.15.18","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.18","@swc/core-win32-x64-msvc":"^1.15.18","@huggingface/transformers":"^4.0.0","@modelcontextprotocol/sdk":"^1.29.0","@smithy/node-http-handler":"^4.4.14","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.60.0","@rollup/rollup-linux-x64-gnu":"^4.60.3","@anthropic-ai/claude-agent-sdk":"0.3.153","@aws-sdk/client-bedrock-runtime":"^3.1045.0","@aws-sdk/credential-provider-sso":"^3.972.16","@aws-sdk/client-sagemaker-runtime":"^3.1045.0","@aws-sdk/client-bedrock-agent-runtime":"^3.1045.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.121.13_1780012780035_0.08123458448827647","host":"s3://npm-registry-packages-npm-production"}},"0.121.14":{"name":"promptfoo","version":"0.121.14","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.121.14","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://promptfoo.dev","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"39d0b2835a20af39cf773b08707c782af7b5cc61","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.121.14.tgz","fileCount":567,"integrity":"sha512-YUeBMqwfv3xZC7HJ3ohwk2e0i3DdCitOrvWZPijCOMywp/S+CZEjyqVh1pUzR1PgDo9eBBn9WXyw2wbDBihcpA==","signatures":[{"sig":"MEUCIBJC/hJNlmXvsGVWUB6YCdt4axeGxxSDP1jJuYOCZgF6AiEA/KMoAKkQX0D7greCcq+Nmn3/PO0VHGi7xZeXzp/p9gI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.121.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27147115},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@huggingface/transformers","@playwright/browser-chromium","@swc/core","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":"^20.20.0 || >=22.22.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"},"./contracts":{"import":{"types":"./dist/src/contracts.d.ts","default":"./dist/src/contracts.js"},"require":{"types":"./dist/src/contracts.d.cts","default":"./dist/src/contracts.cjs"}}},"gitHead":"7a48c5fce614bee617efbb3b7fc93d404c75b628","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc --noEmit","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"npm run tsc\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","prepare":"husky || exit 0","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,@vitest/coverage-v8,langium\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm --prefix src/app run test --","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","storybook":"npm run storybook --prefix src/app","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","openapi:check":"tsx scripts/generateOpenApi.ts --check","test:coverage":"vitest run --coverage && npm run test:coverage --prefix src/app","deps:ownership":"tsx scripts/reportDependencyOwnership.ts","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","openapi:generate":"tsx scripts/generateOpenApi.ts","test:app:browser":"npm --prefix src/app run test:browser --","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","architecture:check":"tsx scripts/checkArchitectureBoundaries.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:coverage:ratchet":"node --import tsx ./scripts/checkCoverageRatchets.ts","test:package-artifact":"tsx scripts/testPackageArtifact.ts","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh","check:typescript-coverage":"tsx scripts/checkTypeScriptCoverage.ts","modelAuditSchema:generate":"python3 scripts/generate_modelaudit_schema.py && npx @biomejs/biome format --write site/static/schemas/modelaudit site/static/examples/modelaudit"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"^19.2.4","esbuild":"0.28.0","chokidar":"5.0.0","react-dom":"^19.2.4","whatwg-url":"16.0.1"},"qs":">=6.15.2 <7.0.0","vite":"^8.0.5","jsdom":{"@asamuzakjp/css-color":"5.1.11"},"react":"^19.2.4","gaxios":"^7.1.4","uri-js":"npm:uri-js-replace","esbuild":"0.28.0","langium":{".":"4.2.4","chevrotain":"11.2.0","chevrotain-allstar":"0.4.1","@chevrotain/regexp-to-ast":"11.2.0"},"webpack":"5.107.1","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.2.4","dompurify":"3.4.5","engine.io":{".":"6.6.8","ws":"$ws"},"lodash-es":"^4.18.1","react-dom":"^19.2.4","storybook":{"esbuild":"0.27.7"},"chevrotain":{".":"11.2.0","@chevrotain/gast":"11.2.0","@chevrotain/types":"11.2.0","@chevrotain/utils":"11.2.0","@chevrotain/cst-dts-gen":"12.0.0","@chevrotain/regexp-to-ast":"11.2.0"},"ip-address":"10.2.0","whatwg-url":"16.0.1","monaco-editor":{".":"0.55.1","dompurify":"3.4.5"},"fast-xml-parser":"$fast-xml-parser","engine.io-client":{".":"6.6.5","ws":"$ws"},"brace-expansion@5":"^5.0.6","https-proxy-agent":"^9.0.0","minimatch@<=3.1.3":"3.1.5","socket.io-adapter":{".":"2.5.7","ws":"$ws"},"chevrotain-allstar":{".":"0.4.1","chevrotain":"11.2.0"},"webpack-dev-server":{"express":"^4.22.2"},"serialize-javascript":">=7.0.4","@chevrotain/cst-dts-gen":{".":"12.0.0","@chevrotain/gast":"12.0.0","@chevrotain/types":"12.0.0"},"@isaacs/brace-expansion":">=5.0.1"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.11.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ai":"^6.0.190","ws":"^8.19.0","ajv":"^8.18.0","ora":"^9.3.0","tsx":"^4.21.0","zod":"^4.3.6","cors":"^2.8.6","glob":"^13.0.6","keyv":"^5.6.0","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.6.2","execa":"^9.6.1","json5":"^2.2.3","dedent":"^1.7.2","dotenv":"^17.3.1","http-z":"^8.1.1","mathjs":"^15.1.1","openai":"^6.37.0","opener":"^1.5.2","parse5":"^8.0.0","semver":"^7.7.4","undici":"^7.25.0","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.2.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.3","csv-parse":"^6.2.0","keyv-file":"^5.3.3","lru-cache":"^11.3.0","minimatch":"^10.2.4","socket.io":"^4.8.3","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.33.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.1","proxy-agent":"^8.0.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"~5.24.10","python-shell":"^5.0.0","cache-manager":"^7.2.8","csv-stringify":"^6.7.0","@inquirer/core":"^11.1.5","@libsql/client":"^0.17.3","istextorbinary":"^9.5.0","proxy-from-env":"^2.1.0","@inquirer/input":"^5.0.8","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.7.1","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.8","@inquirer/search":"^4.1.8","@inquirer/select":"^5.1.0","socket.io-client":"^4.8.3","@anthropic-ai/sdk":"0.98.0","@inquirer/confirm":"^6.0.8","binary-extensions":"^3.1.0","@inquirer/checkbox":"^5.1.0","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.6.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-trace-base":"^2.6.0","@opentelemetry/sdk-trace-node":"^2.6.0","@apidevtools/json-schema-ref-parser":"^15.3.1","@opentelemetry/semantic-conventions":"^1.40.0","@opentelemetry/exporter-trace-otlp-http":"^0.218.0"},"typesVersions":{"*":{"contracts":["dist/src/contracts.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^6.0.0","nock":"^14.0.11","husky":"^9.1.7","tsdown":"0.21.9","vitest":"^4.1.0","langium":"4.2.4","depcheck":"^1.4.7","langfuse":"^3.38.20","prettier":"^3.8.1","pdf-parse":"^2.4.5","supertest":"^7.2.2","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.60.0","typescript":"^6.0.2","@types/cors":"^2.8.19","@types/node":"^24.12.0","drizzle-kit":"^0.31.10","@types/async":"^3.2.25","@types/jsdom":"^28.0.0","concurrently":"^9.2.1","@smithy/types":"^4.13.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@aws-sdk/types":"^3.973.5","@biomejs/biome":"2.4.15","@fal-ai/client":"~1.10.1","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.4.0","read-excel-file":"^9.0.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.0.0","playwright-extra":"^4.3.6","winston-transport":"^4.9.0","@aws-sdk/client-s3":"^3.1003.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.11","source-map-support":"^0.5.21","@types/cli-progress":"^3.11.6","@vitest/coverage-v8":"^4.1.0","@ibm-cloud/watsonx-ai":"^1.7.12","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"0.3.150","@asteasolutions/zod-to-openapi":"^8.5.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.1045.0","@aws-sdk/credential-provider-sso":"^3.972.16","@aws-sdk/client-sagemaker-runtime":"^3.1045.0","@aws-sdk/client-bedrock-agent-runtime":"^3.1045.0"},"optionalDependencies":{"pem":"~1.14.8","hono":"^4.12.5","sharp":"^0.34.5","jks-js":"^1.1.5","natural":"^8.1.1","langfuse":"^3.38.20","@swc/core":"^1.15.18","pdf-parse":"^2.4.5","playwright":"^1.60.0","@fal-ai/client":"~1.10.1","@openai/agents":"^0.11.3","@slack/web-api":"^7.15.2","@azure/identity":"^4.13.0","node-sql-parser":"^5.4.0","read-excel-file":"^9.0.0","@azure/msal-node":"^5.2.0","@opencode-ai/sdk":"^1.14.33","playwright-extra":"^4.3.6","@openai/codex-sdk":"^0.130.0","@aws-sdk/client-s3":"^3.1003.0","@azure/ai-projects":"^2.1.1","@googleapis/sheets":"^13.0.1","ibm-cloud-sdk-core":"^5.4.11","@azure/storage-blob":"^12.31.0","google-auth-library":"^10.6.2","@swc/core-darwin-x64":"^1.15.18","@ibm-cloud/watsonx-ai":"^1.7.12","@swc/core-darwin-arm64":"^1.15.18","@swc/core-linux-x64-gnu":"^1.15.18","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.18","@swc/core-win32-x64-msvc":"^1.15.18","@huggingface/transformers":"^4.0.0","@modelcontextprotocol/sdk":"^1.29.0","@smithy/node-http-handler":"^4.4.14","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.60.0","@rollup/rollup-linux-x64-gnu":"^4.60.3","@anthropic-ai/claude-agent-sdk":"0.3.150","@aws-sdk/client-bedrock-runtime":"^3.1045.0","@aws-sdk/credential-provider-sso":"^3.972.16","@aws-sdk/client-sagemaker-runtime":"^3.1045.0","@aws-sdk/client-bedrock-agent-runtime":"^3.1045.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.121.14_1780408758825_0.4112837386980188","host":"s3://npm-registry-packages-npm-production"}},"0.121.15":{"name":"promptfoo","version":"0.121.15","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.121.15","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://promptfoo.dev","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"4920b6d132aa1286e6d431c69b77ba9ab264ca0b","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.121.15.tgz","fileCount":602,"integrity":"sha512-UP+7vkLGYHq+06oB4TODWPb6pucNzuOiQTvfgz4XgTrTsBTPFgWTHGYXcqsMKuCtLVsq55HvIIl0PYCjns+CPQ==","signatures":[{"sig":"MEYCIQD3GRx3b33/KcAFNahGwfTh/Lr1fJ7zP+tsVAOLPvwq1wIhAKwxtOtwD4Ock9lbqLDtS6tzA0LLf85ORvy8Ak+EdpOT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.121.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27307551},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@huggingface/transformers","@playwright/browser-chromium","@swc/core","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":"^20.20.0 || >=22.22.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"},"./contracts":{"import":{"types":"./dist/src/contracts.d.ts","default":"./dist/src/contracts.js"},"require":{"types":"./dist/src/contracts.d.cts","default":"./dist/src/contracts.cjs"}}},"gitHead":"4805856060d026521794d4e69decb938155580ad","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc --noEmit","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"npm run tsc\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/main.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","prepare":"husky || exit 0","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,@vitest/coverage-v8,langium\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm --prefix src/app run test --","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","storybook":"npm run storybook --prefix src/app","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","openapi:check":"tsx scripts/generateOpenApi.ts --check","test:coverage":"vitest run --coverage && npm run test:coverage --prefix src/app","deps:ownership":"tsx scripts/reportDependencyOwnership.ts","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","openapi:generate":"tsx scripts/generateOpenApi.ts","test:app:browser":"npm --prefix src/app run test:browser --","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","architecture:check":"tsx scripts/checkArchitectureBoundaries.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","architecture:baseline":"tsx scripts/regenerateEdgeBaseline.ts","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:coverage:ratchet":"node --import tsx ./scripts/checkCoverageRatchets.ts","test:package-artifact":"tsx scripts/testPackageArtifact.ts","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh","check:typescript-coverage":"tsx scripts/checkTypeScriptCoverage.ts","modelAuditSchema:generate":"python3 scripts/generate_modelaudit_schema.py && npx @biomejs/biome format --write site/static/schemas/modelaudit site/static/examples/modelaudit"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"^19.2.4","esbuild":"0.28.0","chokidar":"5.0.0","react-dom":"^19.2.4","whatwg-url":"16.0.1"},"qs":">=6.15.2 <7.0.0","vite":"^8.0.5","jsdom":{"@asamuzakjp/css-color":"5.1.11"},"react":"^19.2.4","gaxios":"^7.1.4","uri-js":"npm:uri-js-replace","esbuild":"0.28.0","langium":{".":"4.2.4","chevrotain":"11.2.0","chevrotain-allstar":"0.4.1","@chevrotain/regexp-to-ast":"11.2.0"},"webpack":"5.107.2","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.2.4","dompurify":"3.4.5","engine.io":{".":"6.6.8","ws":"$ws"},"lodash-es":"^4.18.1","react-dom":"^19.2.4","storybook":{"esbuild":"0.27.7"},"chevrotain":{".":"11.2.0","@chevrotain/gast":"11.2.0","@chevrotain/types":"11.2.0","@chevrotain/utils":"11.2.0","@chevrotain/cst-dts-gen":"12.0.0","@chevrotain/regexp-to-ast":"11.2.0"},"ip-address":"10.2.0","whatwg-url":"16.0.1","monaco-editor":{".":"0.55.1","dompurify":"3.4.5"},"@inquirer/core":{"mute-stream":"3.0.0"},"fast-xml-parser":"$fast-xml-parser","engine.io-client":{".":"6.6.5","ws":"$ws"},"brace-expansion@5":"^5.0.6","https-proxy-agent":"^9.0.0","minimatch@<=3.1.3":"3.1.5","socket.io-adapter":{".":"2.5.7","ws":"$ws"},"chevrotain-allstar":{".":"0.4.1","chevrotain":"11.2.0"},"webpack-dev-server":{"express":"^4.22.2"},"serialize-javascript":">=7.0.4","@chevrotain/cst-dts-gen":{".":"12.0.0","@chevrotain/gast":"12.0.0","@chevrotain/types":"12.0.0"},"@isaacs/brace-expansion":">=5.0.1"},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.11.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ai":"^6.0.190","ws":"^8.19.0","ajv":"^8.18.0","ora":"^9.3.0","tsx":"^4.21.0","zod":"^4.3.6","cors":"^2.8.6","glob":"^13.0.6","keyv":"^5.6.0","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.6.2","execa":"^9.6.1","json5":"^2.2.3","dedent":"^1.7.2","dotenv":"^17.3.1","http-z":"^8.1.1","mathjs":"^15.1.1","openai":"^6.37.0","opener":"^1.5.2","parse5":"^8.0.0","semver":"^7.7.4","undici":"^7.25.0","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.2.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.3","csv-parse":"^6.2.0","keyv-file":"^5.3.3","lru-cache":"^11.3.0","minimatch":"^10.2.4","socket.io":"^4.8.3","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.33.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.1","proxy-agent":"^8.0.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"~5.24.10","python-shell":"^5.0.0","cache-manager":"^7.2.8","csv-stringify":"^6.7.0","@inquirer/core":"^11.1.5","@libsql/client":"^0.17.3","istextorbinary":"^9.5.0","proxy-from-env":"^2.1.0","@inquirer/input":"^5.0.8","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.7.1","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.8","@inquirer/search":"^4.1.8","@inquirer/select":"^5.1.0","socket.io-client":"^4.8.3","@anthropic-ai/sdk":"0.98.0","@inquirer/confirm":"^6.0.8","binary-extensions":"^3.1.0","@inquirer/checkbox":"^5.1.0","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"^2.6.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-trace-base":"^2.6.0","@opentelemetry/sdk-trace-node":"^2.6.0","@apidevtools/json-schema-ref-parser":"^15.3.1","@opentelemetry/semantic-conventions":"^1.40.0","@opentelemetry/exporter-trace-otlp-http":"^0.218.0"},"typesVersions":{"*":{"contracts":["dist/src/contracts.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^6.0.0","nock":"^14.0.11","husky":"^9.1.7","tsdown":"0.21.9","vitest":"^4.1.0","langium":"4.2.4","depcheck":"^1.4.7","langfuse":"^3.38.20","prettier":"^3.8.1","pdf-parse":"^2.4.5","supertest":"^7.2.2","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.60.0","typescript":"^6.0.2","@types/cors":"^2.8.19","@types/node":"^24.12.0","drizzle-kit":"^0.31.10","@types/async":"^3.2.25","@types/jsdom":"^28.0.0","concurrently":"^9.2.1","@smithy/types":"^4.13.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@aws-sdk/types":"^3.973.5","@biomejs/biome":"2.4.15","@fal-ai/client":"~1.10.1","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","node-sql-parser":"^5.4.0","read-excel-file":"^9.0.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.0.0","playwright-extra":"^4.3.6","winston-transport":"^4.9.0","@aws-sdk/client-s3":"^3.1003.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.11","source-map-support":"^0.5.21","@types/cli-progress":"^3.11.6","@vitest/coverage-v8":"^4.1.0","@ibm-cloud/watsonx-ai":"^1.7.12","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"0.3.150","@asteasolutions/zod-to-openapi":"^8.5.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.1045.0","@aws-sdk/credential-provider-sso":"^3.972.16","@aws-sdk/client-sagemaker-runtime":"^3.1045.0","@aws-sdk/client-bedrock-agent-runtime":"^3.1045.0"},"optionalDependencies":{"pem":"~1.14.8","hono":"^4.12.5","sharp":"^0.34.5","jks-js":"^1.1.5","natural":"^8.1.1","langfuse":"^3.38.20","@swc/core":"^1.15.18","pdf-parse":"^2.4.5","playwright":"^1.60.0","@fal-ai/client":"~1.10.1","@openai/agents":"^0.11.3","@slack/web-api":"^7.15.2","@azure/identity":"^4.13.0","node-sql-parser":"^5.4.0","read-excel-file":"^9.0.0","@azure/msal-node":"^5.2.0","@opencode-ai/sdk":"^1.14.33","playwright-extra":"^4.3.6","@openai/codex-sdk":"^0.130.0","@aws-sdk/client-s3":"^3.1003.0","@azure/ai-projects":"^2.1.1","@googleapis/sheets":"^13.0.1","ibm-cloud-sdk-core":"^5.4.11","@azure/storage-blob":"^12.31.0","google-auth-library":"^10.6.2","@swc/core-darwin-x64":"^1.15.18","@ibm-cloud/watsonx-ai":"^1.7.12","@swc/core-darwin-arm64":"^1.15.18","@swc/core-linux-x64-gnu":"^1.15.18","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.18","@swc/core-win32-x64-msvc":"^1.15.18","@huggingface/transformers":"^4.0.0","@modelcontextprotocol/sdk":"^1.29.0","@smithy/node-http-handler":"^4.4.14","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.60.0","@rollup/rollup-linux-x64-gnu":"^4.60.3","@anthropic-ai/claude-agent-sdk":"0.3.150","@aws-sdk/client-bedrock-runtime":"^3.1045.0","@aws-sdk/credential-provider-sso":"^3.972.16","@aws-sdk/client-sagemaker-runtime":"^3.1045.0","@aws-sdk/client-bedrock-agent-runtime":"^3.1045.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.121.15_1780669868896_0.15055351840287057","host":"s3://npm-registry-packages-npm-production"}},"0.121.16":{"name":"promptfoo","version":"0.121.16","author":{"name":"Ian Webster"},"license":"MIT","_id":"promptfoo@0.121.16","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"homepage":"https://promptfoo.dev","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"bin":{"pf":"dist/src/entrypoint.js","promptfoo":"dist/src/entrypoint.js"},"dist":{"shasum":"920d4fbc7ff19223ffa089db143305e9668ee194","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.121.16.tgz","fileCount":614,"integrity":"sha512-gJKFHdewSeg0uy66XbaeD5dqssPkBBJxkMTbGR9XDdF9j9vm66xoC7GWTZMN/Rq47MBMSDi8SsDs97vYIHiBmw==","signatures":[{"sig":"MEYCIQDTOYFug4V3c0oh5WsEuMwCKmO6uWUUHaIu16M0MHD3AQIhAOTaOwC4tpLh7s7QmpeMCk52eZklTcmGp42Pe8FWpr+p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.121.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27574899},"main":"./dist/src/index.js","pnpm":{"onlyBuiltDependencies":["@huggingface/transformers","@playwright/browser-chromium","@swc/core","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"type":"module","madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"types":"dist/src/index.d.ts","engines":{"node":"^20.20.0 || >=22.22.0"},"exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"},"./contracts":{"import":{"types":"./dist/src/contracts.d.ts","default":"./dist/src/contracts.js"},"require":{"types":"./dist/src/contracts.d.cts","default":"./dist/src/contracts.cjs"}}},"gitHead":"964f01f05bdfe08b212d7edd8fe7149d445d4479","scripts":{"f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","bin":"dist/src/entrypoint.js","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","mcp":"node dist/src/entrypoint.js mcp","tsc":"tsc --noEmit","knip":"knip","lint":"npm run lint:src","test":"vitest run","build":"concurrently -g --kill-others-on-fail \"npm run tsc\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","local":"tsx src/localEntrypoint.ts","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","dev:app":"npm run dev --prefix src/app","lint:ci":"npx @biomejs/biome ci .","prepare":"husky || exit 0","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,@vitest/coverage-v8,langium,block-no-verify\" --ignore-dirs=\"dist,site,examples\"","lint:src":"npx @biomejs/biome lint src","test:app":"npm --prefix src/app run test --","audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","build:app":"npm run build --prefix src/app","db:studio":"npx drizzle-kit studio","lint:site":"npx @biomejs/biome lint site","local:web":"npm run dev --prefix src/app","postbuild":"tsx scripts/postbuild.ts","storybook":"npm run storybook --prefix src/app","test:site":"npm run test --prefix site","db:migrate":"tsx src/migrate.ts","dev:server":"tsx watch src/server/index.ts","lint:tests":"npx @biomejs/biome lint test","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","test:smoke":"vitest run --config vitest.smoke.config.ts","test:watch":"vitest","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","db:generate":"npx drizzle-kit generate","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","test:vitest":"vitest run","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","openapi:check":"tsx scripts/generateOpenApi.ts --check","test:coverage":"vitest run --coverage && npm run test:coverage --prefix src/app","deps:ownership":"tsx scripts/reportDependencyOwnership.ts","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","openapi:generate":"tsx scripts/generateOpenApi.ts","test:app:browser":"npm --prefix src/app run test:browser --","test:integration":"vitest run --config vitest.integration.config.ts","changelog:release":"node scripts/update-changelog-version.cjs","citation:generate":"tsx scripts/generateCitation.ts","test:vitest:watch":"vitest","architecture:check":"tsx scripts/checkArchitectureBoundaries.ts","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","architecture:baseline":"tsx scripts/regenerateEdgeBaseline.ts","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","test:coverage:ratchet":"node --import tsx ./scripts/checkCoverageRatchets.ts","test:package-artifact":"tsx scripts/testPackageArtifact.ts","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh","check:typescript-coverage":"tsx scripts/checkTypeScriptCoverage.ts","modelAuditSchema:generate":"python3 scripts/generate_modelaudit_schema.py && npx @biomejs/biome format --write site/static/schemas/modelaudit site/static/examples/modelaudit"},"typings":"dist/src/index.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"overrides":{"*":{"react":"^19.2.4","esbuild":"0.28.1","chokidar":"5.0.0","react-dom":"^19.2.4","whatwg-url":"16.0.1"},"qs":">=6.15.2 <7.0.0","vite":"^8.0.16","jsdom":{"@asamuzakjp/css-color":"5.1.11"},"react":"^19.2.4","gaxios":"^7.1.4","uri-js":"npm:uri-js-replace","esbuild":"0.28.1","langium":{".":"4.2.4","chevrotain":"11.2.0","chevrotain-allstar":"0.4.1","@chevrotain/regexp-to-ast":"11.2.0"},"webpack":"5.107.2","chokidar":"5.0.0","mongoose":{"gcp-metadata":"^8.1.2"},"react-is":"^19.2.4","dompurify":"3.4.9","engine.io":{".":"6.6.8","ws":"$ws"},"lodash-es":"^4.18.1","react-dom":"^19.2.4","storybook":{"esbuild":"0.28.1"},"chevrotain":{".":"11.2.0","@chevrotain/gast":"11.2.0","@chevrotain/types":"11.2.0","@chevrotain/utils":"11.2.0","@chevrotain/cst-dts-gen":"12.0.0","@chevrotain/regexp-to-ast":"11.2.0"},"ip-address":"10.2.0","whatwg-url":"16.0.1","monaco-editor":{".":"0.55.1","dompurify":"3.4.9"},"fast-xml-parser":"$fast-xml-parser","engine.io-client":{".":"6.6.5","ws":"$ws"},"brace-expansion@5":"^5.0.6","https-proxy-agent":"^9.0.0","minimatch@<=3.1.3":"3.1.5","socket.io-adapter":{".":"2.5.7","ws":"$ws"},"chevrotain-allstar":{".":"0.4.1","chevrotain":"11.2.0"},"webpack-dev-server":{"express":"^4.22.2"},"serialize-javascript":">=7.0.4","@chevrotain/cst-dts-gen":{".":"12.0.0","@chevrotain/gast":"12.0.0","@chevrotain/types":"12.0.0"},"@isaacs/brace-expansion":">=5.0.1","@opentelemetry/sdk-logs":{"@opentelemetry/core":"2.8.0"},"@opentelemetry/resources":{"@opentelemetry/core":"2.8.0"},"@opentelemetry/sdk-metrics":{"@opentelemetry/core":"2.8.0"},"@opentelemetry/sdk-trace-base":{"@opentelemetry/core":"2.8.0"},"@opentelemetry/sdk-trace-node":{"@opentelemetry/core":"2.8.0"},"@opentelemetry/otlp-transformer":{"@opentelemetry/core":"2.8.0"},"@opentelemetry/otlp-exporter-base":{"@opentelemetry/core":"2.8.0"},"@opentelemetry/exporter-trace-otlp-http":{"@opentelemetry/core":"2.8.0"}},"repository":{"url":"git+https://github.com/promptfoo/promptfoo.git","type":"git"},"workspaces":["src/app","site"],"_npmVersion":"11.11.0","description":"LLM eval & testing toolkit","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ai":"^6.0.190","ws":"^8.19.0","ajv":"^8.18.0","ora":"^9.3.0","tsx":"^4.21.0","zod":"^4.3.6","cors":"^2.8.6","glob":"^13.0.6","keyv":"^5.6.0","rfdc":"^1.4.1","rxjs":"^7.8.2","async":"^3.2.6","chalk":"^5.6.2","execa":"^9.6.1","json5":"^2.2.3","dedent":"^1.7.2","dotenv":"^17.3.1","http-z":"^8.1.1","mathjs":"^15.1.1","openai":"^6.37.0","opener":"^1.5.2","parse5":"^8.0.0","semver":"^7.7.4","undici":">=7.27.1 <8","express":"^5.2.1","exsolve":"^1.0.8","js-yaml":"^4.1.1","winston":"^3.19.0","chokidar":"5.0.0","debounce":"^3.0.0","js-rouge":"^3.2.0","nunjucks":"^3.2.4","@types/ws":"^8.18.1","commander":"^14.0.3","csv-parse":"^6.2.0","keyv-file":"^5.3.3","lru-cache":"^11.3.0","minimatch":"^10.2.4","socket.io":"^4.8.3","cli-table3":"^0.6.5","protobufjs":"^8.0.0","simple-git":"^3.33.0","ajv-formats":"^3.0.1","compression":"^1.8.1","drizzle-orm":"^0.45.1","proxy-agent":"^8.0.0","cli-progress":"^3.12.0","gcp-metadata":"^8.1.2","posthog-node":"~5.24.10","python-shell":"^5.0.0","cache-manager":"^7.2.8","csv-stringify":"^6.7.0","@inquirer/core":"^11.1.5","@libsql/client":"^0.17.3","istextorbinary":"^9.5.0","proxy-from-env":"^2.1.0","@inquirer/input":"^5.0.8","fast-deep-equal":"^3.1.3","fast-xml-parser":"^5.7.1","text-extensions":"^3.1.0","@inquirer/editor":"^5.0.8","@inquirer/search":"^4.1.8","@inquirer/select":"^5.1.0","socket.io-client":"^4.8.3","@anthropic-ai/sdk":"0.101.0","@inquirer/confirm":"^6.0.8","binary-extensions":"^3.1.0","@inquirer/checkbox":"^5.1.0","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"2.8.0","fast-safe-stringify":"^2.1.1","fastest-levenshtein":"^1.0.16","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-trace-base":"^2.6.0","@opentelemetry/sdk-trace-node":"^2.6.0","@apidevtools/json-schema-ref-parser":"^15.3.1","@opentelemetry/semantic-conventions":"^1.40.0","@opentelemetry/exporter-trace-otlp-http":"^0.218.0"},"typesVersions":{"*":{"contracts":["dist/src/contracts.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.4.0","knip":"^6.0.0","nock":"^14.0.11","husky":"^9.1.7","tsdown":"0.21.9","vitest":"^4.1.0","langium":"4.2.4","depcheck":"^1.4.7","langfuse":"^3.38.20","prettier":"^3.8.1","pdf-parse":"^2.4.5","supertest":"^7.2.2","ts-dedent":"^2.2.0","@types/pem":"^1.14.4","playwright":"^1.60.0","typescript":"^6.0.2","@types/cors":"^2.8.19","@types/node":"^24.12.0","drizzle-kit":"^0.31.10","@types/async":"^3.2.25","@types/jsdom":"^28.0.0","concurrently":"^9.2.1","@smithy/types":"^4.13.0","@types/opener":"^1.4.3","@types/semver":"^7.7.1","@aws-sdk/types":"^3.973.5","@biomejs/biome":"2.4.16","@fal-ai/client":"~1.10.1","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@azure/identity":"^4.13.0","@types/nunjucks":"^3.2.6","block-no-verify":"^1.2.0","node-sql-parser":"^5.4.0","read-excel-file":"^9.0.0","@types/pdf-parse":"^1.1.5","@types/supertest":"^7.0.0","playwright-extra":"^4.3.6","winston-transport":"^4.9.0","@aws-sdk/client-s3":"^3.1003.0","@types/compression":"^1.8.1","ibm-cloud-sdk-core":"^5.4.11","source-map-support":"^0.5.21","@types/cli-progress":"^3.11.6","@vitest/coverage-v8":"^4.1.0","@ibm-cloud/watsonx-ai":"^1.7.13","@types/proxy-from-env":"^1.0.4","@azure/openai-assistants":"^1.0.0-beta.6","@types/source-map-support":"^0.5.10","@ibm-generative-ai/node-sdk":"^3.2.4","@anthropic-ai/claude-agent-sdk":"0.3.167","@asteasolutions/zod-to-openapi":"^8.5.0","puppeteer-extra-plugin-stealth":"^2.11.2","@aws-sdk/client-bedrock-runtime":"^3.1045.0","@aws-sdk/credential-provider-sso":"^3.972.16","@aws-sdk/client-sagemaker-runtime":"^3.1045.0","@aws-sdk/client-bedrock-agent-runtime":"^3.1045.0"},"optionalDependencies":{"pem":"~1.14.8","hono":"^4.12.5","sharp":"^0.34.5","jks-js":"^1.1.5","natural":"^8.1.1","langfuse":"^3.38.20","@swc/core":"^1.15.18","pdf-parse":"^2.4.5","playwright":"^1.60.0","@fal-ai/client":"~1.10.1","@openai/agents":"^0.11.3","@slack/web-api":"^7.15.2","@azure/identity":"^4.13.0","node-sql-parser":"^5.4.0","read-excel-file":"^9.0.0","@azure/msal-node":"^5.2.0","@opencode-ai/sdk":"^1.14.33","playwright-extra":"^4.3.6","@openai/codex-sdk":"^0.130.0","@aws-sdk/client-s3":"^3.1003.0","@azure/ai-projects":"^2.1.1","@googleapis/sheets":"^13.0.1","ibm-cloud-sdk-core":"^5.4.11","@azure/storage-blob":"^12.31.0","google-auth-library":"^10.7.0","@swc/core-darwin-x64":"^1.15.18","@ibm-cloud/watsonx-ai":"^1.7.13","@swc/core-darwin-arm64":"^1.15.18","@swc/core-linux-x64-gnu":"^1.15.18","@azure/openai-assistants":"^1.0.0-beta.6","@swc/core-linux-x64-musl":"^1.15.18","@swc/core-win32-x64-msvc":"^1.15.18","@huggingface/transformers":"^4.0.0","@modelcontextprotocol/sdk":"^1.29.0","@smithy/node-http-handler":"^4.4.14","@ibm-generative-ai/node-sdk":"^3.2.4","@playwright/browser-chromium":"^1.60.0","@rollup/rollup-linux-x64-gnu":"^4.61.0","@anthropic-ai/claude-agent-sdk":"0.3.167","@aws-sdk/client-bedrock-runtime":"^3.1045.0","@aws-sdk/credential-provider-sso":"^3.972.16","@aws-sdk/client-sagemaker-runtime":"^3.1045.0","@aws-sdk/client-bedrock-agent-runtime":"^3.1045.0"},"_npmOperationalInternal":{"tmp":"tmp/promptfoo_0.121.16_1781623295991_0.6428396648437007","host":"s3://npm-registry-packages-npm-production"}},"0.121.17":{"name":"promptfoo","description":"LLM eval & testing toolkit","author":{"name":"Ian Webster"},"version":"0.121.17","license":"MIT","type":"module","repository":{"type":"git","url":"git+https://github.com/promptfoo/promptfoo.git"},"main":"./dist/src/index.js","exports":{".":{"import":"./dist/src/index.js","require":"./dist/src/index.cjs"},"./contracts":{"import":{"types":"./dist/src/contracts.d.ts","default":"./dist/src/contracts.js"},"require":{"types":"./dist/src/contracts.d.cts","default":"./dist/src/contracts.cjs"}}},"workspaces":["src/app","site"],"types":"dist/src/index.d.ts","typings":"dist/src/index.d.ts","typesVersions":{"*":{"contracts":["dist/src/contracts.d.ts"]}},"engines":{"node":"^20.20.0 || >=22.22.0"},"bin":{"promptfoo":"dist/src/entrypoint.js","pf":"dist/src/entrypoint.js"},"scripts":{"audit:fix":"npm audit fix && npm audit fix --prefix src/app && npm audit fix --prefix site","architecture:baseline":"tsx scripts/regenerateEdgeBaseline.ts","architecture:check":"tsx scripts/checkArchitectureBoundaries.ts","bin":"dist/src/entrypoint.js","build:app":"npm run build --prefix src/app","build:clean":"shx rm -rf dist","build:watch":"NODE_OPTIONS='--max-old-space-size=8192' tsdown --watch","build":"concurrently -g --kill-others-on-fail \"npm run tsc\" \"NODE_OPTIONS='--max-old-space-size=8192' tsdown\" \"npm run build:app\"","postbuild":"tsx scripts/postbuild.ts","citation:generate":"tsx scripts/generateCitation.ts","db:generate":"npx drizzle-kit generate","db:migrate":"tsx src/migrate.ts","db:studio":"npx drizzle-kit studio","openapi:generate":"tsx scripts/generateOpenApi.ts","openapi:check":"tsx scripts/generateOpenApi.ts --check","modelAuditSchema:generate":"python3 scripts/generate_modelaudit_schema.py && npx @biomejs/biome format --write site/static/schemas/modelaudit site/static/examples/modelaudit","dev:app":"npm run dev --prefix src/app","storybook":"npm run storybook --prefix src/app","dev:server":"tsx watch src/server/index.ts","dev":"concurrently \"npm run dev:server\" \"npm run dev:app\"","f":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|jsx|mjs|cjs|ts|tsx|json)$' | xargs npx @biomejs/biome check --write && git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(css|scss|html|md|mdc|mdx|yaml|yml)$' | xargs prettier --write","format:check":"npx @biomejs/biome check && prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","format:check:prettier":"prettier --check '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","format":"npx @biomejs/biome check --write . && prettier --write '**/*.{css,scss,html,md,mdc,mdx,yaml,yml}'","jsonSchema:generate":"npx -y tsx scripts/generateJsonSchema.ts > site/static/config-schema.json && npx @biomejs/biome format --write site/static/config-schema.json","knip":"knip","l":"git diff --name-only --diff-filter=ACMRTUXB origin/main | grep -E '\\.(js|ts|tsx)$' | xargs npx @biomejs/biome lint --write","lint:ci":"npx @biomejs/biome ci .","lint:site":"npx @biomejs/biome lint site","lint:src":"npx @biomejs/biome lint src","lint:tests":"npx @biomejs/biome lint test","lint":"npm run lint:src","local:web":"npm run dev --prefix src/app","local":"tsx src/localEntrypoint.ts","preversion":"command -v gh >/dev/null 2>&1 || (echo \"Error: GitHub CLI required.\" && exit 1) && [ \"$(git rev-parse --abbrev-ref HEAD)\" = \"main\" ] || (echo \"Error: Must be on main branch to version\" && exit 1) && git pull origin main && git checkout -b \"chore/bump-version-$(date +%s)\"","changelog:release":"node scripts/update-changelog-version.cjs","postversion":"npm run changelog:release && npm run citation:generate && git add CHANGELOG.md CITATION.cff && git commit --amend --no-edit && gh pr create --repo promptfoo/promptfoo --title \"chore: bump version $npm_package_version\" --body \"\"","prepublishOnly":"node -e \"if (!process.env.PROMPTFOO_POSTHOG_KEY) { console.error('Error: PROMPTFOO_POSTHOG_KEY must be set'); process.exit(1); }\" && npm run build:clean && npm run build","test:app":"npm --prefix src/app run test --","test:app:browser":"npm --prefix src/app run test:browser --","test:package-artifact":"tsx scripts/testPackageArtifact.ts","test:site":"npm run test --prefix site","test:integration":"vitest run --config vitest.integration.config.ts","test:vitest":"vitest run","test:vitest:watch":"vitest","test:watch":"vitest","test:redteam:integration":"npm run build && ./test/redteam/integration/test.sh","test:smoke":"vitest run --config vitest.smoke.config.ts","test":"vitest run","test:coverage":"vitest run --coverage && npm run test:coverage --prefix src/app","test:coverage:ratchet":"node --import tsx ./scripts/checkCoverageRatchets.ts","check:typescript-coverage":"tsx scripts/checkTypeScriptCoverage.ts","tsc":"tsc --noEmit","mcp":"node dist/src/entrypoint.js mcp","depcheck":"depcheck --ignores=\"@types/*,@biomejs/biome,prettier,shx,concurrently,madge,knip,vite,typescript,tshy,gcp-metadata,@opencode-ai/sdk,@actions/core,@actions/exec,@actions/github,@octokit/rest,nock,@vitest/coverage-v8,langium,block-no-verify\" --ignore-dirs=\"dist,site,examples\"","deps:ownership":"tsx scripts/reportDependencyOwnership.ts","prepare":"husky || exit 0"},"overrides":{"uri-js":"npm:uri-js-replace","chokidar":"5.0.0","whatwg-url":"16.0.1","esbuild":"0.28.1","jsdom":{"@asamuzakjp/css-color":"5.1.11"},"storybook":{"esbuild":"0.28.1"},"react":"^19.2.4","react-dom":"^19.2.4","react-is":"^19.2.4","*":{"whatwg-url":"16.0.1","chokidar":"5.0.0","esbuild":"0.28.1","react":"^19.2.4","react-dom":"^19.2.4"},"@opentelemetry/exporter-trace-otlp-http":{"@opentelemetry/core":"2.8.0"},"@opentelemetry/otlp-exporter-base":{"@opentelemetry/core":"2.8.0"},"@opentelemetry/otlp-transformer":{"@opentelemetry/core":"2.8.0"},"@opentelemetry/resources":{"@opentelemetry/core":"2.8.0"},"@opentelemetry/sdk-logs":{"@opentelemetry/core":"2.8.0"},"@opentelemetry/sdk-metrics":{"@opentelemetry/core":"2.8.0"},"@opentelemetry/sdk-trace-base":{"@opentelemetry/core":"2.8.0"},"@opentelemetry/sdk-trace-node":{"@opentelemetry/core":"2.8.0"},"serialize-javascript":">=7.0.4","gaxios":"^7.1.4","https-proxy-agent":"^9.0.0","ip-address":"10.2.0","mongoose":{"gcp-metadata":"^8.1.2"},"webpack-dev-server":{"express":"^4.22.2"},"engine.io":{".":"6.6.8","ws":"$ws"},"engine.io-client":{".":"6.6.5","ws":"$ws"},"socket.io-adapter":{".":"2.5.7","ws":"$ws"},"qs":">=6.15.2 <7.0.0","@isaacs/brace-expansion":">=5.0.1","brace-expansion@5":"^5.0.6","fast-xml-parser":"$fast-xml-parser","minimatch@<=3.1.3":"3.1.5","vite":"^8.0.16","lodash-es":"^4.18.1","langium":{".":"4.2.4","@chevrotain/regexp-to-ast":"11.2.0","chevrotain":"11.2.0","chevrotain-allstar":"0.4.1"},"chevrotain":{".":"11.2.0","@chevrotain/cst-dts-gen":"12.0.0","@chevrotain/gast":"11.2.0","@chevrotain/regexp-to-ast":"11.2.0","@chevrotain/types":"11.2.0","@chevrotain/utils":"11.2.0"},"@chevrotain/cst-dts-gen":{".":"12.0.0","@chevrotain/gast":"12.0.0","@chevrotain/types":"12.0.0"},"chevrotain-allstar":{".":"0.4.1","chevrotain":"11.2.0"},"webpack":"5.107.2","dompurify":"3.4.9","monaco-editor":{".":"0.55.1","dompurify":"3.4.9"}},"devDependencies":{"@anthropic-ai/claude-agent-sdk":"0.3.167","@asteasolutions/zod-to-openapi":"^8.5.0","@aws-sdk/client-bedrock-agent-runtime":"^3.1045.0","@aws-sdk/client-bedrock-runtime":"^3.1045.0","@aws-sdk/client-s3":"^3.1003.0","@aws-sdk/client-sagemaker-runtime":"^3.1045.0","@aws-sdk/credential-provider-sso":"^3.972.16","@aws-sdk/types":"^3.973.5","@azure/identity":"^4.13.0","@azure/openai-assistants":"^1.0.0-beta.6","@biomejs/biome":"2.4.16","@fal-ai/client":"~1.10.1","@ibm-cloud/watsonx-ai":"^1.7.13","@ibm-generative-ai/node-sdk":"^3.2.4","@smithy/types":"^4.13.0","@types/async":"^3.2.25","@types/cli-progress":"^3.11.6","@types/compression":"^1.8.1","@types/cors":"^2.8.19","@types/express":"^5.0.6","@types/js-yaml":"^4.0.9","@types/jsdom":"^28.0.0","@types/node":"^24.12.0","@types/nunjucks":"^3.2.6","@types/opener":"^1.4.3","@types/pdf-parse":"^1.1.5","@types/pem":"^1.14.4","@types/proxy-from-env":"^1.0.4","@types/semver":"^7.7.1","@types/source-map-support":"^0.5.10","@types/supertest":"^7.0.0","@vitest/coverage-v8":"^4.1.0","block-no-verify":"^1.2.0","concurrently":"^9.2.1","depcheck":"^1.4.7","drizzle-kit":"^0.31.10","husky":"^9.1.7","ibm-cloud-sdk-core":"^5.4.11","knip":"^6.0.0","langfuse":"^3.38.20","langium":"4.2.4","nock":"^14.0.11","node-sql-parser":"^5.4.0","pdf-parse":"^2.4.5","playwright":"^1.60.0","playwright-extra":"^4.3.6","prettier":"^3.8.1","puppeteer-extra-plugin-stealth":"^2.11.2","read-excel-file":"^9.0.0","shx":"^0.4.0","source-map-support":"^0.5.21","supertest":"^7.2.2","ts-dedent":"^2.2.0","tsdown":"0.21.9","typescript":"^6.0.2","vitest":"^4.1.0","winston-transport":"^4.9.0"},"optionalDependencies":{"@anthropic-ai/claude-agent-sdk":"0.3.167","@aws-sdk/client-bedrock-agent-runtime":"^3.1045.0","@aws-sdk/client-bedrock-runtime":"^3.1045.0","@aws-sdk/client-s3":"^3.1003.0","@aws-sdk/client-sagemaker-runtime":"^3.1045.0","@aws-sdk/credential-provider-sso":"^3.972.16","@azure/ai-projects":"^2.1.1","@azure/identity":"^4.13.0","@azure/msal-node":"^5.2.0","@azure/openai-assistants":"^1.0.0-beta.6","@azure/storage-blob":"^12.31.0","@fal-ai/client":"~1.10.1","@googleapis/sheets":"^13.0.1","@huggingface/transformers":"^4.0.0","@ibm-cloud/watsonx-ai":"^1.7.13","@ibm-generative-ai/node-sdk":"^3.2.4","@modelcontextprotocol/sdk":"^1.29.0","@openai/agents":"^0.11.3","@openai/codex-sdk":"^0.130.0","@opencode-ai/sdk":"^1.14.33","@playwright/browser-chromium":"^1.60.0","@rollup/rollup-linux-x64-gnu":"^4.61.0","@slack/web-api":"^7.15.2","@smithy/node-http-handler":"^4.4.14","@swc/core":"^1.15.18","@swc/core-darwin-arm64":"^1.15.18","@swc/core-darwin-x64":"^1.15.18","@swc/core-linux-x64-gnu":"^1.15.18","@swc/core-linux-x64-musl":"^1.15.18","@swc/core-win32-x64-msvc":"^1.15.18","google-auth-library":"^10.7.0","hono":"^4.12.5","ibm-cloud-sdk-core":"^5.4.11","jks-js":"^1.1.5","langfuse":"^3.38.20","natural":"^8.1.1","node-sql-parser":"^5.4.0","pdf-parse":"^2.4.5","pem":"~1.14.8","playwright":"^1.60.0","playwright-extra":"^4.3.6","read-excel-file":"^9.0.0","sharp":"^0.34.5"},"dependencies":{"@anthropic-ai/sdk":"0.101.0","@apidevtools/json-schema-ref-parser":"^15.3.1","@inquirer/checkbox":"^5.1.0","@inquirer/confirm":"^6.0.8","@inquirer/core":"^11.1.5","@inquirer/editor":"^5.0.8","@inquirer/input":"^5.0.8","@inquirer/search":"^4.1.8","@inquirer/select":"^5.1.0","@libsql/client":"^0.17.3","@opentelemetry/api":"^1.9.0","@opentelemetry/core":"2.8.0","@opentelemetry/exporter-trace-otlp-http":"^0.218.0","@opentelemetry/resources":"^2.6.0","@opentelemetry/sdk-trace-base":"^2.6.0","@opentelemetry/sdk-trace-node":"^2.6.0","@opentelemetry/semantic-conventions":"^1.40.0","@types/ws":"^8.18.1","ai":"^6.0.190","ajv":"^8.18.0","ajv-formats":"^3.0.1","async":"^3.2.6","binary-extensions":"^3.1.0","cache-manager":"^7.2.8","chalk":"^5.6.2","chokidar":"5.0.0","cli-progress":"^3.12.0","cli-table3":"^0.6.5","commander":"^14.0.3","compression":"^1.8.1","cors":"^2.8.6","csv-parse":"^6.2.0","csv-stringify":"^6.7.0","debounce":"^3.0.0","dedent":"^1.7.2","dotenv":"^17.3.1","drizzle-orm":"^0.45.1","execa":"^9.6.1","express":"^5.2.1","exsolve":"^1.0.8","fast-deep-equal":"^3.1.3","fast-safe-stringify":"^2.1.1","fast-xml-parser":"^5.7.1","fastest-levenshtein":"^1.0.16","gcp-metadata":"^8.1.2","glob":"^13.0.6","http-z":"^8.1.1","istextorbinary":"^9.5.0","js-rouge":"^3.2.0","js-yaml":"^4.1.1","json5":"^2.2.3","keyv":"^5.6.0","keyv-file":"^5.3.3","lru-cache":"^11.3.0","mathjs":"^15.1.1","minimatch":"^10.2.4","nunjucks":"^3.2.4","openai":"^6.37.0","opener":"^1.5.2","ora":"^9.3.0","parse5":"^8.0.0","posthog-node":"~5.24.10","protobufjs":"^8.0.0","proxy-agent":"^8.0.0","proxy-from-env":"^2.1.0","python-shell":"^5.0.0","rfdc":"^1.4.1","rxjs":"^7.8.2","semver":"^7.7.4","simple-git":"^3.33.0","socket.io":"^4.8.3","socket.io-client":"^4.8.3","text-extensions":"^3.1.0","tsx":"^4.21.0","undici":">=7.27.1 <8","winston":"^3.19.0","ws":"^8.19.0","zod":"^4.3.6"},"madge":{"detectiveOptions":{"ts":{"skipAsyncImports":true},"tsx":{"skipAsyncImports":true}}},"pnpm":{"onlyBuiltDependencies":["@huggingface/transformers","@playwright/browser-chromium","@swc/core","core-js","core-js-pure","esbuild","protobufjs","sharp"],"ignoredBuiltDependencies":[]},"homepage":"https://promptfoo.dev","gitHead":"8be17c32d44b17f4ddbd618fcaca87769e674abc","_id":"promptfoo@0.121.17","bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"_nodeVersion":"24.16.0","_npmVersion":"11.11.0","dist":{"integrity":"sha512-xrUCe9ff+5eLjrAa8Nyzsjl8Ca/+v0ai+mdhjXWQwRnz9ilCv4qdUfwQpO5ld0G+y8Qsg2lZlbIkfvBbzdeUeQ==","shasum":"d67db833bb7f9c81338ba2226d6010a6588e0fc2","tarball":"https://registry.npmjs.org/promptfoo/-/promptfoo-0.121.17.tgz","fileCount":614,"unpackedSize":27579255,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/promptfoo@0.121.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIET3r+L2YEd5wL8Qvfiq8NyKy2xDCfigcymWQgg5UtLhAiAUX8Meqv2ZuYTMqbNfewjXDdul/ZZTkEY3yVEGUcDHMw=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65fda267-241b-49a9-87ab-4acfa34625f1"}},"directories":{},"maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/promptfoo_0.121.17_1781629836909_0.9614609679259909"},"_hasShrinkwrap":false}},"time":{"created":"2023-05-03T19:53:10.282Z","modified":"2026-06-16T17:10:37.619Z","0.1.0":"2023-05-03T19:53:10.487Z","0.2.0":"2023-05-04T00:30:25.819Z","0.2.1":"2023-05-04T06:06:43.624Z","0.2.2":"2023-05-04T20:27:59.096Z","0.3.0":"2023-05-07T18:09:53.420Z","0.4.0":"2023-05-13T15:19:17.898Z","0.5.0":"2023-05-22T16:44:53.484Z","0.5.1":"2023-05-23T14:28:09.648Z","0.6.0":"2023-05-28T03:23:53.813Z","0.7.0":"2023-05-29T02:58:44.902Z","0.8.0":"2023-05-30T13:07:28.752Z","0.8.1":"2023-05-30T14:50:46.315Z","0.8.2":"2023-05-30T16:13:28.047Z","0.8.3":"2023-05-31T20:06:43.800Z","0.9.0":"2023-06-05T02:40:59.475Z","0.10.0":"2023-06-09T18:21:10.664Z","0.11.0":"2023-06-11T00:21:48.095Z","0.12.0":"2023-06-12T05:31:14.473Z","0.13.0":"2023-06-16T15:33:43.454Z","0.13.1":"2023-06-17T05:02:13.885Z","0.14.0":"2023-06-18T23:21:06.610Z","0.14.1":"2023-06-19T00:17:00.549Z","0.14.2":"2023-06-24T16:23:45.025Z","0.15.0":"2023-06-26T02:05:06.245Z","0.16.0":"2023-06-28T15:42:27.567Z","0.17.0":"2023-07-06T05:08:35.046Z","0.17.1":"2023-07-07T00:30:27.757Z","0.17.2":"2023-07-07T16:26:16.909Z","0.17.3":"2023-07-10T04:40:44.158Z","0.17.4":"2023-07-13T01:13:38.820Z","0.17.5":"2023-07-14T20:02:44.618Z","0.17.6":"2023-07-20T05:51:08.350Z","0.17.7":"2023-07-20T17:46:09.171Z","0.17.8":"2023-07-22T03:47:02.701Z","0.17.9":"2023-07-24T04:51:12.082Z","0.18.0":"2023-07-28T05:58:23.953Z","0.18.1":"2023-08-06T17:01:54.941Z","0.18.2":"2023-08-08T00:12:46.864Z","0.18.3":"2023-08-08T23:37:46.200Z","0.18.4":"2023-08-11T06:47:25.089Z","0.19.0":"2023-08-14T15:42:06.928Z","0.19.1":"2023-08-14T17:50:31.768Z","0.19.2":"2023-08-15T15:37:01.132Z","0.19.3":"2023-08-17T05:19:26.637Z","0.20.0":"2023-08-18T16:45:29.669Z","0.20.1":"2023-08-18T21:12:52.824Z","0.21.0":"2023-08-28T21:42:41.077Z","0.21.1":"2023-08-30T15:55:22.523Z","0.21.2":"2023-08-31T04:50:29.368Z","0.21.3":"2023-09-01T05:26:17.284Z","0.21.4":"2023-09-01T16:57:59.817Z","0.22.0":"2023-09-04T16:32:56.090Z","0.23.0":"2023-09-14T21:00:39.973Z","0.23.1":"2023-09-14T21:38:47.029Z","0.24.0":"2023-09-18T23:03:06.401Z","0.24.1":"2023-09-21T03:28:56.684Z","0.24.2":"2023-09-23T04:48:32.747Z","0.24.3":"2023-09-28T04:36:28.356Z","0.24.4":"2023-10-01T15:39:58.772Z","0.25.0":"2023-10-10T17:06:35.549Z","0.25.1":"2023-10-19T05:34:28.431Z","0.25.2":"2023-10-26T14:39:15.106Z","0.26.0":"2023-10-28T15:57:05.440Z","0.26.1":"2023-11-01T02:07:51.834Z","0.26.2":"2023-11-07T06:42:23.648Z","0.26.3":"2023-11-08T17:46:42.463Z","0.26.5":"2023-11-10T06:54:06.515Z","0.27.0":"2023-11-14T17:47:27.761Z","0.27.1":"2023-11-14T22:52:57.692Z","0.28.0":"2023-11-19T23:42:30.017Z","0.28.1":"2023-11-20T21:15:25.063Z","0.28.2":"2023-11-27T01:36:07.065Z","0.29.0":"2023-11-28T03:50:27.330Z","0.30.0":"2023-11-29T15:35:33.555Z","0.30.1":"2023-11-29T23:19:50.202Z","0.30.2":"2023-11-30T02:20:14.094Z","0.31.0":"2023-12-02T06:52:07.478Z","0.31.1":"2023-12-04T23:57:15.322Z","0.31.2":"2023-12-11T04:33:31.778Z","0.32.0":"2023-12-14T07:34:09.226Z","0.33.0":"2023-12-17T00:58:20.230Z","0.33.1":"2023-12-18T18:09:59.392Z","0.33.2":"2023-12-23T04:31:05.699Z","0.33.3":"2023-12-24T17:28:15.696Z","0.34.0":"2024-01-02T07:19:56.841Z","0.34.1":"2024-01-03T03:53:34.669Z","0.35.0":"2024-01-07T17:35:41.924Z","0.35.1":"2024-01-12T17:23:42.207Z","0.36.0":"2024-01-18T17:19:00.193Z","0.37.0":"2024-01-24T16:16:12.024Z","0.37.1":"2024-01-26T05:54:09.241Z","0.38.0":"2024-01-29T18:50:46.500Z","0.39.0":"2024-02-01T16:56:33.771Z","0.39.1":"2024-02-02T05:48:14.173Z","0.40.0":"2024-02-06T16:31:38.298Z","0.41.0":"2024-02-12T16:52:54.249Z","0.42.0":"2024-02-19T01:24:50.063Z","0.43.0":"2024-02-23T08:22:46.959Z","0.43.1":"2024-02-25T05:52:45.330Z","0.44.0":"2024-03-04T18:47:01.115Z","0.45.0":"2024-03-06T17:43:34.027Z","0.45.1":"2024-03-06T23:25:34.647Z","0.45.2":"2024-03-07T17:16:18.416Z","0.46.0":"2024-03-08T17:02:28.117Z","0.47.0":"2024-03-14T03:38:20.227Z","0.48.0":"2024-03-18T15:58:57.639Z","0.49.0":"2024-03-23T00:13:59.622Z","0.49.1":"2024-03-25T17:25:44.765Z","0.49.2":"2024-03-27T13:31:10.349Z","0.49.3":"2024-03-29T11:10:47.077Z","0.50.0":"2024-04-01T14:38:10.175Z","0.50.1":"2024-04-02T16:13:34.905Z","0.51.0":"2024-04-07T16:32:21.969Z","0.52.0":"2024-04-12T20:40:53.117Z","0.53.0":"2024-04-16T20:05:18.762Z","0.54.0":"2024-04-18T04:59:22.535Z","0.54.1":"2024-04-20T04:52:50.367Z","0.55.0":"2024-04-24T03:41:15.020Z","0.56.0":"2024-04-28T18:04:53.490Z","0.57.0":"2024-05-01T18:47:19.682Z","0.57.1":"2024-05-02T05:44:42.074Z","0.58.0":"2024-05-09T19:12:21.268Z","0.58.1":"2024-05-14T04:56:41.339Z","0.59.0":"2024-05-18T07:06:05.457Z","0.59.1":"2024-05-18T17:21:06.506Z","0.60.0":"2024-05-25T18:42:12.120Z","0.61.0":"2024-05-30T06:50:24.490Z","0.62.0":"2024-06-05T21:51:46.994Z","0.62.1":"2024-06-06T18:25:41.685Z","0.63.0":"2024-06-09T23:29:19.634Z","0.63.1":"2024-06-10T20:11:06.517Z","0.63.2":"2024-06-10T23:01:08.718Z","0.64.0":"2024-06-15T19:37:26.824Z","0.65.0":"2024-06-17T19:55:12.206Z","0.65.1":"2024-06-18T18:58:21.131Z","0.65.2":"2024-06-20T00:51:22.199Z","0.66.0":"2024-06-24T06:49:02.082Z","0.67.0":"2024-06-27T17:53:35.565Z","0.68.0":"2024-07-02T00:22:21.284Z","0.68.1":"2024-07-02T19:18:15.413Z","0.68.2":"2024-07-03T15:59:17.528Z","0.68.3":"2024-07-04T02:19:28.872Z","0.69.0":"2024-07-05T07:18:01.575Z","0.69.1":"2024-07-06T22:23:41.780Z","0.69.2":"2024-07-08T09:13:11.324Z","0.70.0":"2024-07-10T05:09:38.695Z","0.70.1":"2024-07-11T06:15:03.702Z","0.71.0":"2024-07-15T14:04:45.254Z","0.71.1":"2024-07-15T21:05:13.792Z","0.72.0":"2024-07-17T02:18:34.429Z","0.72.1":"2024-07-18T03:17:38.368Z","0.72.2":"2024-07-19T15:52:36.061Z","0.73.0":"2024-07-22T09:08:30.299Z","0.73.1":"2024-07-22T13:38:41.080Z","0.73.2":"2024-07-23T01:33:11.049Z","0.73.3":"2024-07-23T08:23:12.931Z","0.73.4":"2024-07-24T01:16:47.734Z","0.73.5":"2024-07-24T19:05:36.062Z","0.73.6":"2024-07-25T15:04:26.593Z","0.73.7":"2024-07-26T13:48:32.542Z","0.73.8":"2024-07-29T06:43:40.903Z","0.73.9":"2024-07-30T22:30:58.449Z","0.74.0":"2024-08-01T22:07:17.984Z","0.75.0":"2024-08-05T12:20:35.356Z","0.75.1":"2024-08-05T18:03:29.140Z","0.75.2":"2024-08-06T08:54:50.864Z","0.76.0":"2024-08-10T21:59:56.930Z","0.76.1":"2024-08-11T06:16:34.958Z","0.77.0":"2024-08-12T21:53:39.449Z","0.78.0":"2024-08-14T21:13:57.325Z","0.78.1":"2024-08-16T20:34:35.196Z","0.78.2":"2024-08-18T17:24:12.688Z","0.78.3":"2024-08-19T19:48:56.159Z","0.79.0":"2024-08-20T19:57:37.721Z","0.80.0":"2024-08-21T19:46:07.433Z","0.80.1":"2024-08-21T22:29:51.780Z","0.80.2":"2024-08-22T07:54:31.988Z","0.80.3":"2024-08-22T21:10:16.377Z","0.81.0":"2024-08-26T18:58:21.601Z","0.81.1":"2024-08-27T23:10:13.279Z","0.81.2":"2024-08-27T23:41:42.315Z","0.81.3":"2024-08-28T08:02:20.589Z","0.81.4":"2024-08-29T22:20:48.774Z","0.81.5":"2024-08-30T06:55:25.625Z","0.82.0":"2024-09-02T23:28:15.497Z","0.83.0":"2024-09-03T19:54:25.281Z","0.83.1":"2024-09-03T21:42:32.662Z","0.83.2":"2024-09-03T22:28:05.519Z","0.84.0":"2024-09-04T20:30:23.677Z","0.84.1":"2024-09-04T21:55:00.215Z","0.85.0":"2024-09-06T20:37:08.030Z","0.85.1":"2024-09-09T21:21:11.926Z","0.85.2":"2024-09-10T00:25:26.918Z","0.86.0":"2024-09-11T16:55:23.276Z","0.86.1":"2024-09-11T17:51:55.348Z","0.87.0":"2024-09-12T14:43:10.033Z","0.87.1":"2024-09-12T19:28:35.502Z","0.88.0":"2024-09-16T15:47:54.671Z","0.89.0":"2024-09-17T15:46:49.504Z","0.89.1":"2024-09-18T20:18:29.745Z","0.89.2":"2024-09-18T22:01:21.173Z","0.89.3":"2024-09-20T05:26:05.014Z","0.89.4":"2024-09-23T16:56:04.091Z","0.90.0":"2024-09-25T00:52:27.734Z","0.90.1":"2024-09-26T00:37:13.675Z","0.90.2":"2024-09-27T19:21:48.776Z","0.90.3":"2024-09-27T21:21:57.681Z","0.91.0":"2024-10-01T16:03:32.413Z","0.91.1":"2024-10-01T22:14:10.677Z","0.91.2":"2024-10-04T15:47:05.434Z","0.91.3":"2024-10-04T18:57:07.413Z","0.92.0":"2024-10-07T16:00:24.018Z","0.92.1":"2024-10-08T22:41:34.844Z","0.92.2":"2024-10-09T16:33:33.815Z","0.92.3":"2024-10-12T16:30:07.423Z","0.93.0":"2024-10-14T18:01:35.621Z","0.93.1":"2024-10-15T18:27:08.434Z","0.93.2":"2024-10-16T21:01:16.501Z","0.93.3":"2024-10-17T06:34:42.080Z","0.94.0":"2024-10-23T00:22:14.573Z","0.94.1":"2024-10-24T20:46:51.290Z","0.94.2":"2024-10-25T19:17:30.864Z","0.94.3":"2024-10-26T03:31:39.766Z","0.94.4":"2024-10-27T05:27:34.488Z","0.94.5":"2024-10-28T20:36:07.655Z","0.94.6":"2024-10-30T17:14:03.434Z","0.95.0":"2024-11-04T17:06:51.993Z","0.96.0":"2024-11-10T20:40:53.582Z","0.96.1":"2024-11-12T21:42:51.219Z","0.96.2":"2024-11-14T22:22:10.879Z","0.97.0":"2024-11-18T23:10:22.594Z","0.98.0":"2024-11-22T15:37:20.919Z","0.99.0":"2024-11-25T21:05:13.804Z","0.99.1":"2024-12-02T19:30:18.289Z","0.100.0":"2024-12-05T06:15:16.372Z","0.100.2":"2024-12-06T00:06:36.976Z","0.100.3":"2024-12-06T05:24:10.275Z","0.100.4":"2024-12-08T17:58:01.716Z","0.100.5":"2024-12-09T21:00:15.055Z","0.100.6":"2024-12-11T22:37:09.235Z","0.101.0":"2024-12-12T21:27:29.824Z","0.101.1":"2024-12-13T00:20:23.115Z","0.101.2":"2024-12-14T01:41:49.021Z","0.102.0":"2024-12-16T15:30:09.995Z","0.102.1":"2024-12-17T19:34:39.081Z","0.102.2":"2024-12-19T06:00:51.507Z","0.102.3":"2024-12-19T23:14:23.169Z","0.102.4":"2024-12-20T05:03:41.941Z","0.103.0":"2024-12-23T18:31:16.354Z","0.103.1":"2024-12-24T04:46:45.852Z","0.103.2":"2024-12-31T18:08:34.319Z","0.103.3":"2025-01-03T04:01:33.589Z","0.103.4":"2025-01-08T16:49:34.210Z","0.103.5":"2025-01-09T06:53:45.440Z","0.103.6":"2025-01-09T19:38:11.040Z","0.103.7":"2025-01-10T20:55:40.752Z","0.103.8":"2025-01-11T03:56:47.722Z","0.103.9":"2025-01-13T06:06:23.450Z","0.103.10":"2025-01-16T22:36:36.380Z","0.103.11":"2025-01-20T00:59:12.576Z","0.103.12":"2025-01-21T16:25:44.296Z","0.103.13":"2025-01-21T22:33:29.047Z","0.103.14":"2025-01-24T22:44:25.638Z","0.103.15":"2025-01-28T00:33:32.326Z","0.103.16":"2025-01-28T22:25:38.346Z","0.103.17":"2025-01-30T02:05:23.018Z","0.103.18":"2025-01-31T15:25:56.738Z","0.103.19":"2025-02-02T19:44:05.063Z","0.104.0":"2025-02-06T00:17:15.292Z","0.104.1":"2025-02-11T22:40:11.292Z","0.104.2":"2025-02-13T20:12:44.436Z","0.104.3":"2025-02-14T02:26:28.299Z","0.104.4":"2025-02-17T07:10:44.359Z","0.105.0":"2025-02-25T02:04:08.811Z","0.105.1":"2025-02-28T04:21:21.555Z","0.106.0":"2025-03-03T04:41:38.090Z","0.106.1":"2025-03-06T23:19:17.506Z","0.106.2":"2025-03-07T16:27:52.308Z","0.106.3":"2025-03-07T17:26:54.399Z","0.107.0":"2025-03-13T18:25:45.145Z","0.107.1":"2025-03-14T19:08:16.378Z","0.107.2":"2025-03-17T23:21:45.117Z","0.107.3":"2025-03-19T18:06:26.539Z","0.107.4":"2025-03-20T18:45:06.756Z","0.107.5":"2025-03-26T20:10:47.148Z","0.107.6":"2025-03-28T03:16:47.106Z","0.107.7":"2025-04-01T01:45:09.022Z","0.108.0":"2025-04-03T17:16:04.345Z","0.109.0":"2025-04-08T00:57:58.381Z","0.109.1":"2025-04-08T22:15:27.459Z","0.110.0":"2025-04-14T15:43:43.295Z","0.110.1":"2025-04-17T13:41:00.649Z","0.111.0":"2025-04-21T19:22:56.702Z","0.111.1":"2025-04-22T14:31:28.061Z","0.112.0":"2025-04-29T15:17:50.600Z","0.112.1":"2025-04-29T15:27:08.399Z","0.112.3":"2025-05-02T17:47:28.763Z","0.112.4":"2025-05-08T19:02:09.813Z","0.112.5":"2025-05-12T10:39:13.211Z","0.112.6":"2025-05-14T15:25:26.201Z","0.112.7":"2025-05-15T19:49:22.186Z","0.112.8":"2025-05-20T14:46:40.310Z","0.113.0":"2025-05-20T19:06:03.104Z","0.113.1":"2025-05-21T21:19:58.616Z","0.113.2":"2025-05-22T18:26:48.351Z","0.113.3":"2025-05-24T21:11:35.033Z","0.113.4":"2025-05-26T01:59:06.912Z","0.114.0":"2025-05-28T01:42:32.521Z","0.114.1":"2025-05-29T15:26:32.502Z","0.114.2":"2025-05-29T21:15:19.746Z","0.114.3":"2025-06-02T23:51:07.450Z","0.114.4":"2025-06-04T13:52:24.064Z","0.114.5":"2025-06-05T09:12:23.702Z","0.114.6":"2025-06-06T16:54:49.452Z","0.114.7":"2025-06-06T23:50:41.984Z","0.115.0":"2025-06-12T16:55:43.891Z","0.115.1":"2025-06-17T14:20:02.582Z","0.115.2":"2025-06-24T14:58:08.053Z","0.115.3":"2025-06-24T22:38:07.757Z","0.115.4":"2025-06-25T18:20:14.188Z","0.116.0":"2025-07-01T00:28:08.802Z","0.116.1":"2025-07-02T23:24:58.856Z","0.116.2":"2025-07-02T23:55:39.310Z","0.116.3":"2025-07-07T22:40:28.958Z","0.116.4":"2025-07-08T04:56:46.373Z","0.116.6":"2025-07-09T18:17:41.134Z","0.116.7":"2025-07-09T20:45:26.767Z","0.117.0":"2025-07-17T19:37:24.472Z","0.117.1":"2025-07-17T20:49:09.746Z","0.117.2":"2025-07-24T15:41:38.752Z","0.117.3":"2025-07-25T23:32:03.064Z","0.117.4":"2025-07-29T01:02:51.394Z","0.117.5":"2025-08-08T02:39:03.254Z","0.117.6":"2025-08-18T16:03:31.425Z","0.117.7":"2025-08-19T21:03:43.151Z","0.117.8":"2025-08-20T05:09:09.223Z","0.117.9":"2025-08-23T03:39:52.729Z","0.117.10":"2025-08-25T21:22:38.701Z","0.117.11":"2025-08-27T23:04:04.097Z","0.118.0":"2025-08-28T19:53:19.633Z","0.118.1":"2025-08-29T19:42:07.006Z","0.118.2":"2025-09-03T20:22:54.978Z","0.118.3":"2025-09-04T21:27:30.829Z","0.118.4":"2025-09-12T02:59:57.482Z","0.118.5":"2025-09-16T11:03:38.945Z","0.118.6":"2025-09-18T14:26:05.538Z","0.118.7":"2025-09-22T18:05:03.971Z","0.118.8":"2025-09-23T01:36:16.785Z","0.118.9":"2025-09-25T23:34:23.721Z","0.118.10":"2025-09-26T22:52:26.443Z","0.118.11":"2025-09-30T22:37:01.789Z","0.118.12":"2025-10-08T01:36:35.540Z","0.118.13":"2025-10-08T23:51:26.143Z","0.118.14":"2025-10-09T01:29:03.181Z","0.118.15":"2025-10-13T18:28:41.009Z","0.118.16":"2025-10-15T02:28:22.828Z","0.118.17":"2025-10-15T15:41:53.527Z","0.119.0":"2025-10-28T00:53:09.577Z","0.119.1":"2025-10-29T18:20:59.017Z","0.119.2":"2025-11-03T22:59:07.930Z","0.119.3":"2025-11-05T02:14:28.620Z","0.119.4":"2025-11-06T18:35:36.266Z","0.119.5":"2025-11-10T23:17:34.822Z","0.119.6":"2025-11-12T17:42:16.655Z","0.119.7":"2025-11-18T01:47:33.645Z","0.119.8":"2025-11-19T05:34:20.023Z","0.119.9":"2025-11-20T20:44:13.283Z","0.119.10":"2025-11-23T16:59:56.793Z","0.119.11":"2025-11-24T05:21:51.681Z","0.119.12":"2025-11-24T22:44:10.117Z","0.119.13":"2025-11-25T16:44:39.203Z","0.119.14":"2025-12-01T18:13:41.170Z","0.120.0":"2025-12-08T19:41:08.821Z","0.120.1":"2025-12-08T20:41:28.569Z","0.120.2":"2025-12-09T15:05:04.252Z","0.120.3":"2025-12-10T21:14:58.842Z","0.120.4":"2025-12-11T19:56:44.500Z","0.120.5":"2025-12-16T22:07:45.192Z","0.120.6":"2025-12-19T18:32:38.914Z","0.120.7":"2025-12-19T19:15:44.248Z","0.120.8":"2025-12-21T17:07:29.874Z","0.120.10":"2026-01-06T21:33:12.334Z","0.120.11":"2026-01-10T01:39:22.368Z","0.120.12":"2026-01-12T23:49:48.846Z","0.120.13":"2026-01-13T01:12:36.618Z","0.120.14":"2026-01-14T19:03:44.098Z","0.120.15":"2026-01-20T21:23:55.933Z","0.120.16":"2026-01-21T03:28:06.094Z","0.120.17":"2026-01-23T04:18:00.408Z","0.120.18":"2026-01-28T06:00:55.871Z","0.120.19":"2026-01-28T23:02:09.407Z","0.120.20":"2026-01-29T03:41:26.937Z","0.120.21":"2026-02-03T19:46:02.816Z","0.120.22":"2026-02-04T21:56:41.803Z","0.120.23":"2026-02-06T21:55:22.769Z","0.120.24":"2026-02-10T21:28:08.876Z","0.120.25":"2026-02-18T20:59:21.222Z","0.120.26":"2026-03-03T00:52:50.635Z","0.120.27":"2026-03-06T22:22:02.347Z","0.121.1":"2026-03-09T16:42:02.783Z","0.121.2":"2026-03-12T15:23:57.075Z","0.121.3":"2026-03-24T23:01:05.472Z","0.121.4":"2026-04-11T00:39:18.844Z","0.121.5":"2026-04-14T21:04:45.613Z","0.121.7":"2026-04-22T15:42:24.681Z","0.121.8":"2026-04-24T21:44:48.786Z","0.121.9":"2026-04-27T18:42:22.050Z","0.121.10":"2026-05-07T18:13:51.383Z","0.121.11":"2026-05-08T02:25:06.177Z","0.121.12":"2026-05-21T06:27:04.900Z","0.121.13":"2026-05-28T23:59:40.242Z","0.121.14":"2026-06-02T13:59:19.126Z","0.121.15":"2026-06-05T14:31:09.171Z","0.121.16":"2026-06-16T15:21:36.243Z","0.121.17":"2026-06-16T17:10:37.282Z"},"bugs":{"url":"https://github.com/promptfoo/promptfoo/issues"},"author":{"name":"Ian Webster"},"license":"MIT","homepage":"https://promptfoo.dev","repository":{"type":"git","url":"git+https://github.com/promptfoo/promptfoo.git"},"description":"LLM eval & testing toolkit","maintainers":[{"name":"sklein12","email":"sklein12@gmail.com"},{"name":"mdangelo","email":"michael.l.dangelo@gmail.com"},{"name":"ianw","email":"ianw_npm@ianww.com"},{"name":"justinbeckwith","email":"justin.beckwith@gmail.com"},{"name":"faizanminhas","email":"faizan1030@gmail.com"}],"readme":"# Promptfoo: LLM evals & red teaming\n\n<p align=\"center\">\n  <a href=\"https://npmjs.com/package/promptfoo\"><img src=\"https://img.shields.io/npm/v/promptfoo\" alt=\"npm\"></a>\n  <a href=\"https://npmjs.com/package/promptfoo\"><img src=\"https://img.shields.io/npm/dm/promptfoo\" alt=\"npm\"></a>\n  <a href=\"https://github.com/promptfoo/promptfoo/actions/workflows/main.yml\"><img src=\"https://img.shields.io/github/actions/workflow/status/promptfoo/promptfoo/main.yml\" alt=\"GitHub Workflow Status\"></a>\n  <a href=\"https://github.com/promptfoo/promptfoo/blob/main/LICENSE\"><img src=\"https://img.shields.io/github/license/promptfoo/promptfoo\" alt=\"MIT license\"></a>\n  <a href=\"https://discord.gg/promptfoo\"><img src=\"https://img.shields.io/discord/1146610656779440188?logo=discord&label=promptfoo\" alt=\"Discord\"></a>\n</p>\n\n<p align=\"center\">\n  <code>promptfoo</code> is a CLI and library for evaluating and red-teaming LLM apps. Stop the trial-and-error approach - start shipping secure, reliable AI apps.\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.promptfoo.dev\">Website</a> ·\n  <a href=\"https://www.promptfoo.dev/docs/getting-started/\">Getting Started</a> ·\n  <a href=\"https://www.promptfoo.dev/docs/red-team/\">Red Teaming</a> ·\n  <a href=\"https://www.promptfoo.dev/docs/\">Documentation</a> ·\n  <a href=\"https://discord.gg/promptfoo\">Discord</a>\n</p>\n\n> Promptfoo is now part of OpenAI. Promptfoo remains open source and MIT licensed. Read the [company update](https://www.promptfoo.dev/blog/promptfoo-joining-openai/).\n\n## Quick Start\n\nRequires [Node.js](https://nodejs.org/en/download) `^20.20.0` or `>=22.22.0` for npm and npx usage.\n\n```sh\nnpm install -g promptfoo\npromptfoo init --example getting-started\n```\n\nAlso available via `brew install promptfoo` and `pip install promptfoo`. You can also use `npx promptfoo@latest` to run any command without installing.\n\nMost LLM providers require an API key. Set yours as an environment variable:\n\n```sh\nexport OPENAI_API_KEY=sk-abc123\n```\n\nOnce you're in the example directory, run an eval and view results:\n\n```sh\ncd getting-started\npromptfoo eval\npromptfoo view\n```\n\nSee [Getting Started](https://www.promptfoo.dev/docs/getting-started/) (evals) or [Red Teaming](https://www.promptfoo.dev/docs/red-team/) (vulnerability scanning) for more.\n\n## What can you do with Promptfoo?\n\n- **Test your prompts and models** with [automated evaluations](https://www.promptfoo.dev/docs/getting-started/)\n- **Secure your LLM apps** with [red teaming](https://www.promptfoo.dev/docs/red-team/) and vulnerability scanning\n- **Compare models** side-by-side (OpenAI, Anthropic, Azure, Bedrock, Ollama, and [more](https://www.promptfoo.dev/docs/providers/))\n- **Automate checks** in [CI/CD](https://www.promptfoo.dev/docs/integrations/ci-cd/)\n- **Review pull requests** for LLM-related security and compliance issues with [code scanning](https://www.promptfoo.dev/docs/code-scanning/)\n- **Share results** with your team\n\nHere's what it looks like in action:\n\n<img src=\"site/static/img/claude-vs-gpt-example@2x.png\" alt=\"prompt evaluation matrix - web viewer\" width=\"700\">\n\nIt works on the command line too:\n\n<img src=\"https://www.promptfoo.dev/img/docs/self-grading.gif\" alt=\"promptfoo command line\" width=\"700\">\n\nIt also can generate [security vulnerability reports](https://www.promptfoo.dev/docs/red-team/):\n\n<img src=\"https://www.promptfoo.dev/img/redteam-dashboard@2x.jpg\" alt=\"gen ai red team\" width=\"700\">\n\n## Why Promptfoo?\n\n- **Developer-first**: Fast, with features like live reload and caching\n- **Private**: LLM evals run 100% locally - your prompts never leave your machine\n- **Flexible**: Works with any LLM API or programming language\n- **Battle-tested**: Powers LLM apps serving 10M+ users in production\n- **Data-driven**: Make decisions based on metrics, not gut feel\n- **Open source**: MIT licensed, with an active community\n\n## Learn More\n\n- [Getting Started](https://www.promptfoo.dev/docs/getting-started/)\n- [Full Documentation](https://www.promptfoo.dev/docs/intro/)\n- [Red Teaming Guide](https://www.promptfoo.dev/docs/red-team/)\n- [CLI Usage](https://www.promptfoo.dev/docs/usage/command-line/)\n- [Node.js Package](https://www.promptfoo.dev/docs/usage/node-package/)\n- [Supported Models](https://www.promptfoo.dev/docs/providers/)\n- [Code Scanning Guide](https://www.promptfoo.dev/docs/code-scanning/)\n\n## Contributing\n\nWe welcome contributions! Check out our [contributing guide](https://www.promptfoo.dev/docs/contributing/) to get started.\n\nJoin our [Discord community](https://discord.gg/promptfoo) for help and discussion.\n\n<a href=\"https://github.com/promptfoo/promptfoo/graphs/contributors\">\n  <img src=\"https://contrib.rocks/image?repo=promptfoo/promptfoo\" />\n</a>\n","readmeFilename":"README.md"}