promptfoo 0.78.3 → 0.79.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -2
- package/dist/package.json +12 -10
- package/dist/src/commands/eval.d.ts.map +1 -1
- package/dist/src/commands/eval.js +7 -2
- package/dist/src/commands/eval.js.map +1 -1
- package/dist/src/commands/redteam.d.ts.map +1 -1
- package/dist/src/commands/redteam.js +17 -1
- package/dist/src/commands/redteam.js.map +1 -1
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +5 -3
- package/dist/src/config.js.map +1 -1
- package/dist/src/database/tables.d.ts +42 -38
- package/dist/src/database/tables.d.ts.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/main.d.ts.map +1 -1
- package/dist/src/main.js +6 -9
- package/dist/src/main.js.map +1 -1
- package/dist/src/onboarding.d.ts +2 -2
- package/dist/src/onboarding.d.ts.map +1 -1
- package/dist/src/onboarding.js +2 -2
- package/dist/src/providers/groq.d.ts +40 -0
- package/dist/src/providers/groq.d.ts.map +1 -0
- package/dist/src/providers/groq.js +118 -0
- package/dist/src/providers/groq.js.map +1 -0
- package/dist/src/providers.d.ts +2 -0
- package/dist/src/providers.d.ts.map +1 -1
- package/dist/src/providers.js +6 -0
- package/dist/src/providers.js.map +1 -1
- package/dist/src/redteam/constants.d.ts +1 -1
- package/dist/src/redteam/constants.d.ts.map +1 -1
- package/dist/src/redteam/constants.js +3 -1
- package/dist/src/redteam/constants.js.map +1 -1
- package/dist/src/redteam/graders.d.ts.map +1 -1
- package/dist/src/redteam/graders.js +2 -0
- package/dist/src/redteam/graders.js.map +1 -1
- package/dist/src/redteam/index.d.ts.map +1 -1
- package/dist/src/redteam/index.js +12 -6
- package/dist/src/redteam/index.js.map +1 -1
- package/dist/src/redteam/plugins/base.d.ts.map +1 -1
- package/dist/src/redteam/plugins/base.js +1 -3
- package/dist/src/redteam/plugins/base.js.map +1 -1
- package/dist/src/redteam/plugins/index.d.ts.map +1 -1
- package/dist/src/redteam/plugins/index.js +5 -0
- package/dist/src/redteam/plugins/index.js.map +1 -1
- package/dist/src/redteam/plugins/policy.d.ts.map +1 -1
- package/dist/src/redteam/plugins/policy.js +2 -4
- package/dist/src/redteam/plugins/policy.js.map +1 -1
- package/dist/src/redteam/plugins/promptExtraction.d.ts +21 -0
- package/dist/src/redteam/plugins/promptExtraction.d.ts.map +1 -0
- package/dist/src/redteam/plugins/promptExtraction.js +113 -0
- package/dist/src/redteam/plugins/promptExtraction.js.map +1 -0
- package/dist/src/redteam/plugins/sqlInjection.d.ts.map +1 -1
- package/dist/src/redteam/plugins/sqlInjection.js +1 -1
- package/dist/src/redteam/plugins/sqlInjection.js.map +1 -1
- package/dist/src/types/index.d.ts +192 -152
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/index.js +12 -4
- package/dist/src/types/index.js.map +1 -1
- package/dist/src/types/providers.d.ts +1 -0
- package/dist/src/types/providers.d.ts.map +1 -1
- package/dist/src/types/providers.js.map +1 -1
- package/dist/src/types/redteam.d.ts +1 -1
- package/dist/src/types/redteam.d.ts.map +1 -1
- package/dist/src/web/nextui/404/index.html +1 -1
- package/dist/src/web/nextui/404.html +1 -1
- package/dist/src/web/nextui/_next/static/chunks/{485-d94c512bab4204ef.js → 132-d6bea93785831786.js} +1 -1
- package/dist/src/web/nextui/_next/static/chunks/148-f6a1a312ab2d360a.js +97 -0
- package/dist/src/web/nextui/_next/static/chunks/{916-b92fea2ab6136411.js → 193-fbb29b23a7b3df82.js} +1 -1
- package/dist/src/web/nextui/_next/static/chunks/258-1e2bd16e6c0b6b4a.js +1 -0
- package/dist/src/web/nextui/_next/static/chunks/{476-0afb5eb266c57b7f.js → 264-f97b27096cb02f29.js} +3 -3
- package/dist/src/web/nextui/_next/static/chunks/276-b1a73ab92831c2f8.js +1 -0
- package/dist/src/web/nextui/_next/static/chunks/{856-808babe20420dc5b.js → 325-07eac9e397582e87.js} +2 -2
- package/dist/src/web/nextui/_next/static/chunks/391-9f6f260597339469.js +2 -0
- package/dist/src/web/nextui/_next/static/chunks/577-f9ba150349bd60d0.js +1 -0
- package/dist/src/web/nextui/_next/static/chunks/65-d3958feb29430005.js +1 -0
- package/dist/src/web/nextui/_next/static/chunks/654-7ef84f69b226e6ab.js +1 -0
- package/dist/src/web/nextui/_next/static/chunks/734-d2ca9e7d051c494c.js +28 -0
- package/dist/src/web/nextui/_next/static/chunks/{216-41f093798f2200fe.js → 798-b5823c11472542e4.js} +1 -1
- package/dist/src/web/nextui/_next/static/chunks/854-c18aaae33bccdc36.js +1 -0
- package/dist/src/web/nextui/_next/static/chunks/874-66f90697795eddbc.js +1 -0
- package/dist/src/web/nextui/_next/static/chunks/{983-9c47c398e832cf0b.js → 947-94ff53974301d426.js} +13 -13
- package/dist/src/web/nextui/_next/static/chunks/962-3281929f7790c813.js +1 -0
- package/dist/src/web/nextui/_next/static/chunks/972-cbb6d905c3a19e41.js +1 -0
- package/dist/src/web/nextui/_next/static/chunks/975-db84f98b8dd028ab.js +1 -0
- package/dist/src/web/nextui/_next/static/chunks/app/auth/login/page-252a14bf379f74d0.js +1 -0
- package/dist/src/web/nextui/_next/static/chunks/app/auth/signup/page-f98e3b4d3b58f5f5.js +1 -0
- package/dist/src/web/nextui/_next/static/chunks/app/datasets/page-1fa704bf80a58a79.js +1 -0
- package/dist/src/web/nextui/_next/static/chunks/app/eval/[id]/{page-9bc768bf1e13119e.js → page-e24502f7b480ebd4.js} +1 -1
- package/dist/src/web/nextui/_next/static/chunks/app/eval/{page-acc3dae78a7a9e91.js → page-b57c790219de0e23.js} +1 -1
- package/dist/src/web/nextui/_next/static/chunks/app/{layout-bece9e53b5d250aa.js → layout-217f05d64e1b0aa8.js} +1 -1
- package/dist/src/web/nextui/_next/static/chunks/app/page-81e3b8fee37eaf67.js +1 -0
- package/dist/src/web/nextui/_next/static/chunks/app/progress/page-e0bd2de55fe3a3b6.js +1 -0
- package/dist/src/web/nextui/_next/static/chunks/app/prompts/page-70ba6f08425e6551.js +1 -0
- package/dist/src/web/nextui/_next/static/chunks/app/report/page-8b688079b46844f8.js +1 -0
- package/dist/src/web/nextui/_next/static/chunks/app/setup/page-0203187deebc18e8.js +1 -0
- package/dist/src/web/nextui/auth/login/index.html +1 -1
- package/dist/src/web/nextui/auth/login/index.txt +3 -3
- package/dist/src/web/nextui/auth/signup/index.html +1 -1
- package/dist/src/web/nextui/auth/signup/index.txt +3 -3
- package/dist/src/web/nextui/datasets/index.html +1 -1
- package/dist/src/web/nextui/datasets/index.txt +3 -3
- package/dist/src/web/nextui/eval/index.html +1 -1
- package/dist/src/web/nextui/eval/index.txt +3 -3
- package/dist/src/web/nextui/index.html +1 -1
- package/dist/src/web/nextui/index.txt +2 -2
- package/dist/src/web/nextui/progress/index.html +1 -1
- package/dist/src/web/nextui/progress/index.txt +3 -3
- package/dist/src/web/nextui/prompts/index.html +1 -1
- package/dist/src/web/nextui/prompts/index.txt +3 -3
- package/dist/src/web/nextui/report/index.html +1 -1
- package/dist/src/web/nextui/report/index.txt +3 -3
- package/dist/src/web/nextui/setup/index.html +1 -1
- package/dist/src/web/nextui/setup/index.txt +3 -3
- package/dist/test/main.test.d.ts +2 -0
- package/dist/test/main.test.d.ts.map +1 -0
- package/dist/test/main.test.js +49 -0
- package/dist/test/main.test.js.map +1 -0
- package/dist/test/providers.groq.test.d.ts +2 -0
- package/dist/test/providers.groq.test.d.ts.map +1 -0
- package/dist/test/providers.groq.test.js +264 -0
- package/dist/test/providers.groq.test.js.map +1 -0
- package/dist/test/redteam/index.test.d.ts +2 -0
- package/dist/test/redteam/index.test.d.ts.map +1 -0
- package/dist/test/redteam/index.test.js +180 -0
- package/dist/test/redteam/index.test.js.map +1 -0
- package/dist/test/types.test.js +26 -0
- package/dist/test/types.test.js.map +1 -1
- package/dist/test/util.test.js +1 -0
- package/dist/test/util.test.js.map +1 -1
- package/package.json +12 -10
- package/dist/src/web/nextui/_next/static/chunks/155-4e319e68476266ee.js +0 -1
- package/dist/src/web/nextui/_next/static/chunks/258-4b7fded41a7208ac.js +0 -1
- package/dist/src/web/nextui/_next/static/chunks/304-cf667fe8f06238b4.js +0 -1
- package/dist/src/web/nextui/_next/static/chunks/322-b47b6cc3f5b5fdb8.js +0 -1
- package/dist/src/web/nextui/_next/static/chunks/325-9b7b85306b746b1d.js +0 -1
- package/dist/src/web/nextui/_next/static/chunks/339-79124d204fa988a3.js +0 -1
- package/dist/src/web/nextui/_next/static/chunks/374-45af52ed3050e856.js +0 -1
- package/dist/src/web/nextui/_next/static/chunks/378-c135e497df1864cb.js +0 -1
- package/dist/src/web/nextui/_next/static/chunks/493-ebd12f00541c4969.js +0 -2
- package/dist/src/web/nextui/_next/static/chunks/585-8b9b2c41f03d3ab8.js +0 -1
- package/dist/src/web/nextui/_next/static/chunks/903-7cc440d9f9e9f95d.js +0 -97
- package/dist/src/web/nextui/_next/static/chunks/905-78cd666f27891ee6.js +0 -28
- package/dist/src/web/nextui/_next/static/chunks/969-6ab6c8f4158da970.js +0 -1
- package/dist/src/web/nextui/_next/static/chunks/app/auth/login/page-7134c0901e4f0212.js +0 -1
- package/dist/src/web/nextui/_next/static/chunks/app/auth/signup/page-d7ebbf82bbbce998.js +0 -1
- package/dist/src/web/nextui/_next/static/chunks/app/datasets/page-28f9bf8ecd740718.js +0 -1
- package/dist/src/web/nextui/_next/static/chunks/app/page-b6714efe6c381b92.js +0 -1
- package/dist/src/web/nextui/_next/static/chunks/app/progress/page-2d2dd4e665a6304a.js +0 -1
- package/dist/src/web/nextui/_next/static/chunks/app/prompts/page-34d8a2070dde71a1.js +0 -1
- package/dist/src/web/nextui/_next/static/chunks/app/report/page-5c9a9b839d95d1ac.js +0 -1
- package/dist/src/web/nextui/_next/static/chunks/app/setup/page-e19ab8695d6ac015.js +0 -1
- /package/dist/src/web/nextui/_next/static/{glbZwKe9JIxYb5HK0YQnG → tfaYk4gZOzkcqgAIW-M76}/_buildManifest.js +0 -0
- /package/dist/src/web/nextui/_next/static/{glbZwKe9JIxYb5HK0YQnG → tfaYk4gZOzkcqgAIW-M76}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[420],{58004:function(e,t,i){Promise.resolve().then(i.bind(i,69914))},49532:function(e,t,i){"use strict";let a,s;async function r(){if(a||(s||(s=fetch("/api/config").then(e=>e.json()).then(e=>a=e.apiBaseUrl)),await s),void 0===a)throw Error("API base URL is undefined");return a}i.d(t,{b:function(){return r}})},69914:function(e,t,i){"use strict";i.r(t),i.d(t,{default:function(){return ed}});var a,s,r=i(24004),n=i(14978),l=i(49532),o=i(49567),c=i(80661),d=i(885),m=i(11520),u=i(47908),h=i(85912),p=i(94941),g=i(90843),f=i(32414),v=i(63147),x=i(49578);let y={"Security Risk":["debug-access","hijacking","pii","rbac","bola","bfla","ssrf","shell-injection","sql-injection"],"Legal Risk":["contracts","harmful:child-exploitation","harmful:copyright-violations","harmful:cybercrime","harmful:hate","harmful:illegal-activities","harmful:illegal-drugs","harmful:intellectual-property","harmful:privacy","harmful:self-harm","harmful:sex-crime","harmful:sexual-content","harmful:specialized-advice","harmful:violent-crime"],"Brand Risk":["policy","competitors","excessive-agency","hallucination","harmful:graphic-content","harmful:harassment-bullying","harmful:indiscriminate-weapons","harmful:insults","harmful:misinformation-disinformation","harmful:non-violent-crime","harmful:profanity","harmful:radicalization","harmful:unsafe-practices","imitation","overreliance","politics"]},j={"Brand Risk":"Risks that can affect the brand reputation and trustworthiness.","Legal Risk":"Risks that can lead to legal consequences or violations.","Technical Risk":"Risks involving malicious activities targeting the system or users."};(a=s||(s={})).Critical="Critical",a.High="High",a.Medium="Medium",a.Low="Low";let b={"debug-access":s.High,"excessive-agency":s.Medium,"harmful:child-exploitation":s.Critical,"harmful:copyright-violations":s.Low,"harmful:cybercrime":s.Low,"harmful:graphic-content":s.Medium,"harmful:harassment-bullying":s.Low,"harmful:hate":s.Critical,"harmful:illegal-activities":s.Medium,"harmful:illegal-drugs":s.Medium,"harmful:indiscriminate-weapons":s.Medium,"harmful:insults":s.Low,"harmful:intellectual-property":s.Medium,"harmful:misinformation-disinformation":s.Medium,"harmful:non-violent-crime":s.Medium,"harmful:privacy":s.High,"harmful:profanity":s.Low,"harmful:radicalization":s.Low,"harmful:self-harm":s.Critical,"harmful:sex-crime":s.High,"harmful:sexual-content":s.Medium,"harmful:specialized-advice":s.Medium,"harmful:unsafe-practices":s.Low,"harmful:violent-crime":s.High,"prompt-injection":s.Medium,"shell-injection":s.High,"sql-injection":s.High,competitors:s.Low,contracts:s.Medium,hallucination:s.Medium,hijacking:s.High,imitation:s.Low,jailbreak:s.Medium,overreliance:s.Low,pii:s.High,politics:s.Low,rbac:s.High,policy:s.High,bola:s.High,bfla:s.High,ssrf:s.High},w=Object.entries(y).reduce((e,t)=>{let[i,a]=t;return a.forEach(t=>{e[t]=i}),e},{});Object.keys(w);let k={bola:"BOLAEnforcement",bfla:"BFLAEnforcement",ssrf:"SSRFEnforcement","debug-access":"DebugAccess","excessive-agency":"ExcessiveAgency","harmful:child-exploitation":"Child Exploitation","harmful:cybercrime":"Cybercrime & Unauthorized Intrusion - Hacking and Malware","harmful:graphic-content":"Graphic & age-restricted content","harmful:harassment-bullying":"Harassment & Bullying","harmful:hate":"Hate","harmful:illegal-activities":"Illegal Activities - Fraud & scams","harmful:illegal-drugs":"Illegal Drugs","harmful:indiscriminate-weapons":"Indiscriminate Weapons","harmful:insults":"Insults and personal attacks","harmful:intellectual-property":"Intellectual Property violation","harmful:misinformation-disinformation":"Misinformation & Disinformation - Harmful lies and propaganda","harmful:non-violent-crime":"Non-Violent Crimes","harmful:privacy":"Privacy violations","harmful:profanity":"Requests containing profanity","harmful:radicalization":"Radicalization","harmful:self-harm":"Self-Harm","harmful:sex-crime":"Sex Crimes","harmful:sexual-content":"Sexual Content","harmful:specialized-advice":"Specialized Advice - Financial","harmful:unsafe-practices":"Promotion of unsafe practices","harmful:violent-crime":"Violent Crimes","harmful:chemical-biological-weapons":"Chemical & Biological Weapons","harmful:copyright-violations":"Copyright Violations - Copyrighted text","prompt-injection":"Harmful/Injection","shell-injection":"ShellInjection","sql-injection":"SqlInjection",competitors:"CompetitorEndorsement",contracts:"ContractualCommitment",hallucination:"Hallucination",hijacking:"Hijacking",imitation:"Imitation",jailbreak:"Harmful/Iterative",overreliance:"Overreliance",pii:"PIILeak",politics:"PoliticalStatement",rbac:"RbacEnforcement",policy:"PolicyViolation"},Z=Object.entries(k).reduce((e,t)=>{let[i,a]=t;return e[a]=i,e},{}),C={bola:"Object-Level Authorization",bfla:"Function-Level Authorization",ssrf:"Server-Side Request Forgery","excessive-agency":"Excessive Agency","prompt-injection":"Prompt Injection",competitors:"Competitor Endorsements",contracts:"Unsupervised Contracts",jailbreak:"Jailbreak",pii:"PII Leaks",politics:"Political Opinions","shell-injection":"Shell Injection","sql-injection":"SQL Injection",rbac:"RBAC Enforcement","debug-access":"Debug Access","harmful:specialized-advice":"Specialized Advice","harmful:illegal-activities":"Illegal Activities","harmful:cybercrime":"Cybercrime","harmful:copyright-violations":"Copyright Violations","harmful:misinformation-disinformation":"Misinformation & disinformation",policy:"Custom Policy"},R={default:"Includes common plugins",basic:"Raw attacks without any special attack strategies",bola:"Broken Object Level Authorization (BOLA) tests",bfla:"Broken Function Level Authorization (BFLA) tests",ssrf:"Server-Side Request Forgery (SSRF) tests","debug-access":"Attempts to access or use debugging commands","excessive-agency":"Model taking excessive initiative or misunderstanding its capabilities","harmful:chemical-biological-weapons":"Content related to chemical or biological weapons","harmful:child-exploitation":"Content exploiting or harming children","harmful:copyright-violations":"Content violating copyright laws","harmful:cybercrime":"Content related to cybercriminal activities","harmful:graphic-content":"Displaying graphic or violent content","harmful:harassment-bullying":"Content that harasses or bullies individuals","harmful:hate":"Content that promotes hate or discrimination","harmful:illegal-activities":"Content promoting illegal activities","harmful:illegal-drugs":"Content related to illegal drug use or trade","harmful:indiscriminate-weapons":"Content related to weapons without context","harmful:insults":"Content that insults or demeans individuals","harmful:intellectual-property":"Content violating intellectual property rights","harmful:misinformation-disinformation":"Spreading false or misleading information","harmful:non-violent-crime":"Content related to non-violent criminal activities","harmful:privacy":"Content violating privacy rights","harmful:profanity":"Content containing profane or inappropriate language","harmful:radicalization":"Content that promotes radical or extremist views","harmful:self-harm":"Content that encourages self-harm or suicide","harmful:sex-crime":"Content related to sexual crimes","harmful:sexual-content":"Explicit or inappropriate sexual content","harmful:specialized-advice":"Providing advice in specialized fields without expertise","harmful:unsafe-practices":"Content promoting unsafe or harmful practices","harmful:violent-crime":"Content related to violent criminal activities","jailbreak:tree":"Tree-based jailbreak search (medium cost)","pii:api-db":"PII exposed through API or database","pii:direct":"Direct exposure of PII","pii:session":"PII exposed in session data","pii:social":"PII exposed through social engineering","prompt-injection":"Malicious inputs designed to manipulate the model's behavior","shell-injection":"Attempts to execute shell commands through the model","sql-injection":"Attempts to perform SQL injection attacks to manipulate database queries",base64:"Attempts to obfuscate malicious content using Base64 encoding",competitors:"Competitor mentions and endorsements",contracts:"Enters business or legal commitments without supervision",hallucination:"Model generating false or misleading information",harmful:"All harmful categories",hijacking:"Unauthorized or off-topic resource use",imitation:"Imitates people, brands, or organizations",jailbreak:"Attempts to bypass security measures through iterative prompt refinement",leetspeak:"Attempts to obfuscate malicious content using leetspeak",overreliance:"Model susceptible to relying on an incorrect user assumption or input",pii:"All PII categories",policy:"Violates a custom configured policy",politics:"Makes political statements",rbac:"Tests whether the model properly implements Role-Based Access Control (RBAC)",rot13:"Attempts to obfuscate malicious content using ROT13 encoding",crescendo:"Conversational attack strategy (high cost)"};i(4309);var P=e=>{let{categoryStats:t}=e,i=[s.Critical,s.High,s.Medium,s.Low],a=i.reduce((e,i)=>(e[i]=Object.keys(t).reduce((e,t)=>b[t]===i?e+1:e,0),e),{});return(0,r.jsx)(f.Z,{spacing:2,direction:{xs:"column",sm:"row"},children:i.map(e=>(0,r.jsx)(o.Z,{flex:1,children:(0,r.jsx)(c.Z,{className:"severity-card card-".concat(e.toLowerCase()),children:(0,r.jsxs)(x.Z,{onClick:()=>window.location.hash="#table",children:[(0,r.jsx)(v.Z,{variant:"h6",gutterBottom:!0,children:e}),(0,r.jsx)(v.Z,{variant:"h4",color:"text.primary",children:a[e]}),(0,r.jsx)(v.Z,{variant:"body2",color:"text.secondary",children:"issues"})]})})},e))})},A=i(48931),I=i(77656),S=i(65969),L=i(35193),F=i.n(L),M=i(21629),H=e=>{let{evalDescription:t}=e,i=async()=>{let e=document.documentElement,i=await F()(e,{height:Math.max(e.scrollHeight,e.offsetHeight),windowHeight:document.documentElement.scrollHeight}),a=i.toDataURL("image/png"),s=new M.ZP("p","pt",[i.width,i.height]);s.addImage(a,"PNG",0,0,i.width,i.height);let r=t?"report_".concat(t.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/(^-|-$)/g,""),".pdf"):"report.pdf";s.save(r)};return(0,r.jsx)(S.Z,{title:"Download report as PDF",placement:"top",children:(0,r.jsx)(I.Z,{onClick:i,sx:{mt:"4px"},"aria-label":"download report",children:(0,r.jsx)(A.Z,{})})})},N=i(75307),z=i(40982),E=i(29794),D=i(22701),B=i(51956),O=i(82669),T=i(97540),U=i(37204),W=i(79685),q=i(74595);let V={getItem:async e=>await (0,U.U2)(e)||null,setItem:async(e,t)=>{await (0,U.t8)(e,t)},removeItem:async e=>{await (0,U.IV)(e)}},_=(0,W.Ue)()((0,q.tJ)(e=>({showPercentagesOnRiskCards:!1,setShowPercentagesOnRiskCards:t=>e(()=>({showPercentagesOnRiskCards:t})),pluginPassRateThreshold:1,setPluginPassRateThreshold:t=>e(()=>({pluginPassRateThreshold:t}))}),{name:"ReportViewStorage",storage:(0,q.FL)(()=>V)}));var G=()=>{let{showPercentagesOnRiskCards:e,setShowPercentagesOnRiskCards:t,pluginPassRateThreshold:i,setPluginPassRateThreshold:a}=_(),[s,l]=n.useState(!1),o=()=>{l(!1)};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(S.Z,{title:"Report Settings",placement:"top",children:(0,r.jsx)(I.Z,{onClick:()=>{l(!0)},"aria-label":"settings",children:(0,r.jsx)(N.Z,{})})}),(0,r.jsxs)(E.Z,{open:s,onClose:o,fullWidth:!0,maxWidth:"sm",children:[(0,r.jsx)(O.Z,{children:"Report Settings"}),(0,r.jsxs)(B.Z,{children:[(0,r.jsx)(v.Z,{component:"div",sx:{padding:"16px 0"},children:(0,r.jsxs)("label",{style:{display:"flex",alignItems:"center",cursor:"pointer"},children:[(0,r.jsx)("input",{type:"checkbox",checked:e,onChange:e=>t(e.target.checked),style:{marginRight:"10px"}}),"Show percentages on risk cards"]})}),(0,r.jsxs)(v.Z,{component:"div",sx:{padding:"16px 0"},children:[(0,r.jsxs)("label",{children:["Plugin Pass Rate Threshold: ",(100*i).toFixed(0),"%"]}),(0,r.jsx)(v.Z,{variant:"body2",color:"textSecondary",sx:{mt:1},children:"Sets the threshold for considering a plugin as passed on the risk cards."}),(0,r.jsx)(T.ZP,{value:i,onChange:(e,t)=>a(t),"aria-labelledby":"plugin-pass-rate-threshold-slider",step:.05,marks:!0,min:0,max:1,valueLabelDisplay:"auto",valueLabelFormat:e=>"".concat((100*e).toFixed(0),"%")})]})]}),(0,r.jsx)(D.Z,{children:(0,r.jsx)(z.Z,{onClick:o,variant:"contained",color:"primary",children:"Close"})})]})]})},J=i(63362),K=i(18845),Q=i(93650),Y=i(48670);i(46553);var $=e=>{let{title:t,subtitle:i,progressValue:a,numTestsPassed:s,numTestsFailed:n,testTypes:l}=e,{showPercentagesOnRiskCards:d,pluginPassRateThreshold:m}=_(),g=l.filter(e=>e.total>0);return 0===g.length?null:(0,r.jsx)(c.Z,{children:(0,r.jsx)(x.Z,{className:"risk-card-container",children:(0,r.jsxs)(Q.ZP,{container:!0,spacing:3,children:[(0,r.jsxs)(Q.ZP,{item:!0,xs:12,md:6,style:{display:"flex",flexDirection:"column",alignItems:"center",textAlign:"center"},children:[(0,r.jsx)(v.Z,{variant:"h5",className:"risk-card-title",children:t}),(0,r.jsx)(v.Z,{variant:"subtitle1",color:"textSecondary",mb:2,children:i}),(0,r.jsx)(o.Z,{sx:{position:"relative",display:"inline-flex",alignItems:"center",justifyContent:"center",width:100,height:100},children:(0,r.jsx)(Y.a,{value:a,max:100,thickness:10,arc:{startAngle:-90,endAngle:90,color:"primary.main"},text:Number.isNaN(a)?"-":"".concat(Math.round(a),"%"),sx:{width:"100%",height:"100%"}})}),(0,r.jsxs)(v.Z,{variant:"h6",className:"risk-card-issues",children:[n," failed probes"]}),(0,r.jsxs)(v.Z,{variant:"subtitle1",color:"textSecondary",className:"risk-card-tests-passed",children:[s,"/",s+n," passed"]})]}),(0,r.jsx)(Q.ZP,{item:!0,xs:6,md:4,children:(0,r.jsx)(u.Z,{dense:!0,children:g.map((e,t)=>(0,r.jsx)(S.Z,{title:R[e.name],placement:"left",arrow:!0,children:(0,r.jsxs)(h.ZP,{className:"risk-card-list-item",onClick:t=>{let i=new URLSearchParams(window.location.search),a=i.get("evalId"),s=k[e.name],r="/eval/?evalId=".concat(a,"&search=").concat(encodeURIComponent("(var=".concat(s,"|metric=").concat(s,")")));t.ctrlKey||t.metaKey?window.open(r,"_blank"):window.location.href=r},style:{cursor:"pointer"},children:[(0,r.jsx)(p.Z,{primary:C[e.name]||k[e.name],primaryTypographyProps:{variant:"body2"}}),d?(0,r.jsx)(v.Z,{variant:"body2",className:"risk-card-percentage ".concat(e.percentage>=.8?"risk-card-percentage-high":e.percentage>=.5?"risk-card-percentage-medium":"risk-card-percentage-low"),children:"".concat(Math.round(100*e.percentage),"%")}):e.percentage>=m?(0,r.jsx)(K.Z,{className:"risk-card-icon-passed"}):(0,r.jsx)(J.Z,{className:"risk-card-icon-failed"})]})},t))})})]})})})};i(32991);var X=e=>{let{categoryStats:t}=e,i=Object.keys(y).map(e=>({name:e,passed:y[e].every(e=>{var i,a;return(null===(i=t[e])||void 0===i?void 0:i.pass)===(null===(a=t[e])||void 0===a?void 0:a.total)})}));return(0,r.jsx)(f.Z,{spacing:4,children:i.map((e,i)=>{let a=e.name,s=y[a],n=s.reduce((e,i)=>{var a;return e+((null===(a=t[i])||void 0===a?void 0:a.pass)||0)},0),l=s.reduce((e,i)=>{var a;return e+((null===(a=t[i])||void 0===a?void 0:a.total)||0)},0);return(0,r.jsx)($,{title:e.name,subtitle:j[a],progressValue:n/l*100,numTestsPassed:n,numTestsFailed:l-n,testTypes:s.map(e=>{var i,a,s,r,n;return{name:e,passed:(null===(i=t[e])||void 0===i?void 0:i.pass)===(null===(a=t[e])||void 0===a?void 0:a.total),percentage:((null===(s=t[e])||void 0===s?void 0:s.pass)||1)/((null===(r=t[e])||void 0===r?void 0:r.total)||1),total:(null===(n=t[e])||void 0===n?void 0:n.total)||0}})},i)})})},ee=i(65068),et=i(70417),ei=i(21303),ea=i(61451),es=i(26485),er=i(38592),en=i(30021),el=i(19708);i(93091);let eo=e=>{let t=[];for(let i of Object.values(y))for(let a of i)t.push({pluginName:a,type:k[a]||a,description:R[a]||"",passRate:e[a]?(e[a].pass/e[a].total*100).toFixed(1)+"%":"N/A",passRateWithFilter:e[a]?(e[a].passWithFilter/e[a].total*100).toFixed(1)+"%":"N/A",severity:b[a]||"Unknown"});return t.sort((e,t)=>"N/A"===e.passRate?1:"N/A"===t.passRate?-1:parseFloat(e.passRate)-parseFloat(t.passRate))};var ec=e=>{let{evalId:t,categoryStats:i}=e,a=eo(i).filter(e=>"N/A"!==e.passRate),[s,l]=n.useState(0),[c,d]=n.useState(10),[m,u]=n.useState("asc"),[h,p]=n.useState("default"),g=e=>{let t=h===e&&"asc"===m;u(t?"desc":"asc"),p(e)};return(0,r.jsxs)(o.Z,{children:[(0,r.jsx)(v.Z,{variant:"h5",gutterBottom:!0,id:"table",children:"Vulnerabilities and Mitigations"}),(0,r.jsxs)(ea.Z,{children:[(0,r.jsxs)(ee.Z,{children:[(0,r.jsx)(es.Z,{children:(0,r.jsxs)(en.Z,{children:[(0,r.jsx)(ei.Z,{children:"Type"}),(0,r.jsx)(ei.Z,{children:"Description"}),(0,r.jsx)(ei.Z,{children:(0,r.jsx)(el.Z,{active:"passRate"===h,direction:"passRate"===h?m:"asc",onClick:()=>g("passRate"),children:"Pass rate"})}),(0,r.jsx)(ei.Z,{children:(0,r.jsx)(el.Z,{active:"severity"===h,direction:"severity"===h?m:"asc",onClick:()=>g("severity"),children:"Severity"})}),(0,r.jsx)(ei.Z,{style:{minWidth:"275px"},children:"Actions"})]})}),(0,r.jsx)(et.Z,{children:a.sort((e,t)=>{if("passRate"===h)return"N/A"===e.passRate?1:"N/A"===t.passRate?-1:"asc"===m?parseFloat(e.passRate)-parseFloat(t.passRate):parseFloat(t.passRate)-parseFloat(e.passRate);if("severity"===h){if("N/A"===e.passRate)return 1;if("N/A"===t.passRate)return -1;let i={Critical:4,High:3,Medium:2,Low:1};return"asc"===m?i[e.severity]-i[t.severity]:i[t.severity]-i[e.severity]}{let i={Critical:4,High:3,Medium:2,Low:1};return e.severity===t.severity?parseFloat(e.passRate)-parseFloat(t.passRate):i[t.severity]-i[e.severity]}}).slice(s*c,s*c+c).map((e,t)=>{let i="";if("N/A"!==e.passRate){let t=parseFloat(e.passRate);i=t>=75?"pass-high":t>=50?"pass-medium":"pass-low"}return(0,r.jsxs)(en.Z,{children:[(0,r.jsx)(ei.Z,{children:(0,r.jsx)("span",{style:{fontWeight:500},children:C[e.pluginName]||e.type})}),(0,r.jsx)(ei.Z,{children:e.description}),(0,r.jsxs)(ei.Z,{className:i,children:[(0,r.jsx)("strong",{children:e.passRate}),e.passRateWithFilter!==e.passRate?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("br",{}),"(",e.passRateWithFilter," with mitigation)"]}):null]}),(0,r.jsx)(ei.Z,{className:"vuln-".concat(e.severity.toLowerCase()),children:e.severity}),(0,r.jsxs)(ei.Z,{style:{minWidth:270},children:[(0,r.jsx)(z.Z,{variant:"contained",size:"small",onClick:()=>{let t=new URLSearchParams(window.location.search),i=t.get("evalId");window.location.href="/eval/?evalId=".concat(i,"&search=").concat(encodeURIComponent("(var=".concat(e.type,"|metric=").concat(e.type,")")))},children:"View logs"}),(0,r.jsx)(S.Z,{title:"Temporarily disabled while in beta, click to contact us to enable",children:(0,r.jsx)(z.Z,{variant:"contained",size:"small",color:"inherit",style:{marginLeft:8},onClick:()=>{window.location.href="mailto:inquiries@promptfoo.dev?subject=Promptfoo%20automatic%20vulnerability%20mitigation&body=Hello%20Promptfoo%20Team,%0D%0A%0D%0AI%20am%20interested%20in%20learning%20more%20about%20the%20automatic%20vulnerability%20mitigation%20beta.%20Please%20provide%20me%20with%20more%20details.%0D%0A%0D%0A"},children:"Apply mitigation"})})]})]},t)})})]}),a.length>c&&(0,r.jsx)(er.Z,{rowsPerPageOptions:[10,25,50],component:"div",count:a.length,rowsPerPage:c,page:s,onPageChange:(e,t)=>{l(t)},onRowsPerPageChange:e=>{d(parseInt(e.target.value,10)),l(0)}})]})]})};i(67667);var ed=()=>{let[e,t]=n.useState(null),[i,a]=n.useState(null),[s,x]=n.useState(0),[y,j]=n.useState(!1);if(n.useEffect(()=>{let e=async e=>{let t=await fetch("".concat(await (0,l.b)(),"/api/results/").concat(e),{cache:"no-store"}),i=await t.json();a(i.data)},i=new URLSearchParams(window.location.search);if(!i)return;let s=i.get("evalId");s&&(t(s),e(s))},[]),n.useEffect(()=>{document.title="Report: ".concat((null==i?void 0:i.config.description)||e||"Red Team"," | promptfoo")},[i,e]),!i||!e)return(0,r.jsx)(o.Z,{sx:{width:"100%",textAlign:"center"},children:"Loading..."});let b=i.results.table.head.prompts,w=b[s],k=i.results.table.body,C=i.results.results.reduce((e,t)=>{var i,a,s,r,n,l,o,c;let d=t.vars.harmCategory,m=(null===(a=t.gradingResult)||void 0===a?void 0:null===(i=a.componentResults)||void 0===i?void 0:i.map(e=>{var t;return null===(t=e.assertion)||void 0===t?void 0:t.metric}))||[],u=[d,...m].filter(e=>e);for(let i of u){if("string"!=typeof i)continue;let a=Z[i.split("/")[0]];if(!a){console.log("Unknown harm category:",i);break}let d=null===(r=t.gradingResult)||void 0===r?void 0:null===(s=r.componentResults)||void 0===s?void 0:s.some(e=>{var t;let i=(null===(t=e.assertion)||void 0===t?void 0:t.type)==="moderation",a=e.pass;return i&&a}),m=null===(l=t.gradingResult)||void 0===l?void 0:null===(n=l.componentResults)||void 0===n?void 0:n.some(e=>{var t,i;let a=(null===(t=e.assertion)||void 0===t?void 0:t.type)==="llm-rubric"||(null===(i=e.assertion)||void 0===i?void 0:i.type.startsWith("promptfoo:redteam")),s=e.pass;return a&&s}),u=null===(c=t.gradingResult)||void 0===c?void 0:null===(o=c.componentResults)||void 0===o?void 0:o.some(e=>{var t;let i=(null===(t=e.assertion)||void 0===t?void 0:t.type)==="human",a=e.pass;return i&&a});e[a]=e[a]||{pass:0,total:0,passWithFilter:0},e[a].total++,m||u?(e[a].pass++,e[a].passWithFilter++):!d&&e[a].passWithFilter++}return e},{}),R=()=>{b.length>1&&j(!0)},A=e=>{x(e),j(!1)};return(0,r.jsxs)(m.Z,{children:[(0,r.jsxs)(f.Z,{spacing:4,pb:8,pt:2,children:[(0,r.jsxs)(c.Z,{className:"report-header",sx:{position:"relative"},children:[(0,r.jsxs)(o.Z,{sx:{position:"absolute",top:8,right:8,display:"flex"},children:[(0,r.jsx)(H,{evalDescription:i.config.description||e}),(0,r.jsx)(G,{})]}),(0,r.jsxs)(v.Z,{variant:"h4",children:[(0,r.jsx)("strong",{children:"LLM Risk Assessment"}),i.config.description&&": ".concat(i.config.description)]}),(0,r.jsx)(v.Z,{variant:"subtitle1",mb:2,children:new Date(i.createdAt).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"})}),(0,r.jsxs)(o.Z,{className:"report-details",children:[(0,r.jsx)(d.Z,{size:"small",label:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("strong",{children:"Model:"})," ",w.provider]}),onClick:R,style:{cursor:b.length>1?"pointer":"default"}}),(0,r.jsx)(d.Z,{size:"small",label:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("strong",{children:"Dataset:"})," ",k.length," probes"]})}),(0,r.jsx)(d.Z,{size:"small",label:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("strong",{children:"Prompt:"}),' "',w.raw.length>40?"".concat(w.raw.substring(0,40),"..."):w.raw,'"']}),onClick:R,style:{cursor:b.length>1?"pointer":"default"}})]})]}),(0,r.jsx)(P,{categoryStats:C}),(0,r.jsx)(X,{categoryStats:C}),(0,r.jsx)(ec,{evalId:e,categoryStats:C})]}),(0,r.jsx)(g.Z,{open:y,onClose:()=>j(!1),"aria-labelledby":"prompt-modal-title",sx:{"& .MuiModal-root":{display:"flex",alignItems:"center",justifyContent:"center"},"& .MuiBox-root":{width:"80%",maxWidth:800,maxHeight:"90vh",overflowY:"auto"}},children:(0,r.jsxs)(o.Z,{sx:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",width:400,bgcolor:"background.paper",boxShadow:24,p:4},children:[(0,r.jsx)(v.Z,{id:"prompt-modal-title",variant:"h6",component:"h2",gutterBottom:!0,children:"View results for..."}),(0,r.jsx)(u.Z,{children:b.map((e,t)=>(0,r.jsx)(h.ZP,{button:!0,onClick:()=>A(t),selected:t===s,children:(0,r.jsx)(p.Z,{primary:"".concat(e.provider),secondary:e.raw.length>100?"".concat(e.raw.substring(0,100),"..."):e.raw})},t))})]})})]})}},4309:function(){},67667:function(){},46553:function(){},32991:function(){},93091:function(){}},function(e){e.O(0,[949,799,903,916,493,304,374,969,378,476,216,585,470,730,744],function(){return e(e.s=58004)}),_N_E=e.O()}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[413],{8458:function(e,t,n){Promise.resolve().then(n.bind(n,83013))},83013:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return eu}});var a=n(24004),r=n(14978),i=n(69179),l=n(47887),s=n(49567),o=n(40982),c=n(11520),d=n(29794),p=n(22701),u=n(51956),h=n(8541),x=n(82669),m=n(32414),f=n(63147),j=n(75307),v=n(63346),g=n(89235),Z=n(4078),b=n(67339),y=()=>{let{env:e,setEnv:t}=(0,l.o)(),[n,i]=(0,r.useState)(!1),[s,c]=(0,r.useState)(e),h=()=>{i(!1)};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o.Z,{variant:"outlined",startIcon:(0,a.jsx)(j.Z,{}),onClick:()=>{i(!0)},children:"API keys"}),(0,a.jsxs)(d.Z,{open:n,onClose:h,fullWidth:!0,maxWidth:"md",children:[(0,a.jsx)(x.Z,{children:"Provider settings"}),(0,a.jsxs)(u.Z,{children:[(0,a.jsxs)(v.Z,{defaultExpanded:!0,children:[(0,a.jsx)(Z.Z,{children:"OpenAI"}),(0,a.jsxs)(g.Z,{children:[(0,a.jsx)(b.Z,{label:"OpenAI API key",fullWidth:!0,margin:"normal",value:s.OPENAI_API_KEY,onChange:e=>c({...s,OPENAI_API_KEY:e.target.value})}),(0,a.jsx)(b.Z,{label:"OpenAI API host",fullWidth:!0,margin:"normal",value:s.OPENAI_API_HOST,onChange:e=>c({...s,OPENAI_API_HOST:e.target.value})}),(0,a.jsx)(b.Z,{label:"OpenAI organization",fullWidth:!0,margin:"normal",value:s.OPENAI_ORGANIZATION,onChange:e=>c({...s,OPENAI_ORGANIZATION:e.target.value})})]})]}),(0,a.jsxs)(v.Z,{children:[(0,a.jsx)(Z.Z,{children:"Azure"}),(0,a.jsx)(g.Z,{children:(0,a.jsx)(b.Z,{label:"Azure API key",fullWidth:!0,margin:"normal",value:s.AZURE_OPENAI_API_KEY,onChange:e=>c({...s,AZURE_OPENAI_API_KEY:e.target.value})})})]}),(0,a.jsxs)(v.Z,{children:[(0,a.jsx)(Z.Z,{children:"Amazon Bedrock"}),(0,a.jsx)(g.Z,{children:(0,a.jsx)(b.Z,{label:"Bedrock Region",fullWidth:!0,margin:"normal",value:s.AWS_BEDROCK_REGION,onChange:e=>c({...s,AWS_BEDROCK_REGION:e.target.value})})})]}),(0,a.jsxs)(v.Z,{children:[(0,a.jsx)(Z.Z,{children:"Anthropic"}),(0,a.jsx)(g.Z,{children:(0,a.jsx)(b.Z,{label:"Anthropic API key",fullWidth:!0,margin:"normal",value:s.ANTHROPIC_API_KEY,onChange:e=>c({...s,ANTHROPIC_API_KEY:e.target.value})})})]}),(0,a.jsxs)(v.Z,{children:[(0,a.jsx)(Z.Z,{children:"Google Vertex AI"}),(0,a.jsx)(g.Z,{children:(0,a.jsx)(b.Z,{label:"Vertex API Key",fullWidth:!0,margin:"normal",value:s.VERTEX_API_KEY,onChange:e=>c({...s,VERTEX_API_KEY:e.target.value})})}),(0,a.jsx)(g.Z,{children:(0,a.jsx)(b.Z,{label:"Vertex Project ID",fullWidth:!0,margin:"normal",value:s.VERTEX_PROJECT_ID,onChange:e=>c({...s,VERTEX_PROJECT_ID:e.target.value})})}),(0,a.jsx)(g.Z,{children:(0,a.jsx)(b.Z,{label:"Vertex Region",fullWidth:!0,margin:"normal",value:s.VERTEX_REGION,onChange:e=>c({...s,VERTEX_REGION:e.target.value})})})]}),(0,a.jsxs)(v.Z,{children:[(0,a.jsx)(Z.Z,{children:"Replicate"}),(0,a.jsx)(g.Z,{children:(0,a.jsx)(b.Z,{label:"Replicate API key",fullWidth:!0,margin:"normal",value:s.REPLICATE_API_KEY,onChange:e=>c({...s,REPLICATE_API_KEY:e.target.value})})})]})]}),(0,a.jsxs)(p.Z,{children:[(0,a.jsx)(o.Z,{onClick:h,color:"primary",children:"Cancel"}),(0,a.jsx)(o.Z,{onClick:()=>{t(s),h()},color:"primary",variant:"contained",children:"Save"})]})]})]})},_=n(35185),C=n(5592),A=n(14931),k=n(2185),E=n(77656),I=n(65068),O=n(70417),S=n(21303),P=n(61451),T=n(30021),w=n(65969),R=e=>{let{open:t,prompt:n,index:i,onAdd:l,onCancel:s}=e,[c,h]=r.useState(n),m=r.useRef(null);r.useEffect(()=>{h(n)},[n]);let f=e=>{l(c),h(""),e?s():m.current&&m.current.focus()};return(0,a.jsxs)(d.Z,{open:t,onClose:s,fullWidth:!0,maxWidth:"md",children:[(0,a.jsx)(x.Z,{children:"Edit Prompt ".concat(i+1)}),(0,a.jsx)(u.Z,{children:(0,a.jsx)(b.Z,{value:c,onChange:e=>h(e.target.value),fullWidth:!0,margin:"normal",multiline:!0,placeholder:"The quick brown {{animal1}} jumps over the lazy {{animal2}}.",helperText:"Tip: use the {{varname}} syntax to add variables to your prompt.",inputRef:m})}),(0,a.jsxs)(p.Z,{children:[(0,a.jsx)(o.Z,{onClick:f.bind(null,!0),color:"primary",variant:"contained",disabled:!c.length,children:"Add"}),(0,a.jsx)(o.Z,{onClick:f.bind(null,!1),color:"primary",variant:"contained",disabled:!c.length,children:"Add Another"}),(0,a.jsx)(o.Z,{onClick:s,color:"secondary",children:"Cancel"})]})]})};n(94499);var W=()=>{let[e,t]=(0,r.useState)(!1),[n,i]=(0,r.useState)(null),{prompts:s,setPrompts:c}=(0,l.o)(),d=(0,r.useRef)(null);(0,r.useEffect)(()=>{null!==n&&n>0&&d.current&&d.current.focus()},[n]);let p=e=>{i(e),t(!0)},u=(e,t)=>{e.stopPropagation();let n=s[t];c([...s,n])},h=(e,t)=>{c(s.map((n,a)=>a===e?t:n))},x=(e,t)=>{e.stopPropagation(),confirm("Are you sure you want to remove this prompt?")&&c(s.filter((e,n)=>n!==t))};return(0,a.jsxs)("div",{children:[(0,a.jsxs)(m.Z,{direction:"row",spacing:2,mb:2,justifyContent:"space-between",children:[(0,a.jsx)(f.Z,{variant:"h5",children:"Prompts"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"file-input-add-prompt",children:(0,a.jsx)(w.Z,{title:"Upload prompt from file",children:(0,a.jsxs)("span",{children:[(0,a.jsx)(E.Z,{component:"span",children:(0,a.jsx)(k.Z,{})}),(0,a.jsx)("input",{id:"file-input-add-prompt",type:"file",accept:".txt,.md",onChange:e=>{var t;e.stopPropagation(),e.preventDefault();let n=null===(t=e.target.files)||void 0===t?void 0:t[0];if(n){let e=new FileReader;e.onload=e=>{var t,n;let a=null===(n=e.target)||void 0===n?void 0:null===(t=n.result)||void 0===t?void 0:t.toString();a&&c([...s,a])},e.readAsText(n)}},style:{display:"none"}})]})})}),(0,a.jsx)(o.Z,{color:"primary",onClick:()=>{t(!0)},variant:"contained",children:"Add Prompt"})]})]}),(0,a.jsx)(P.Z,{children:(0,a.jsx)(I.Z,{children:(0,a.jsx)(O.Z,{children:0===s.length?(0,a.jsx)(T.Z,{children:(0,a.jsx)(S.Z,{colSpan:2,align:"center",children:"No prompts added yet."})}):s.map((e,t)=>(0,a.jsxs)(T.Z,{sx:{"&:hover":{backgroundColor:"rgba(0, 0, 0, 0.04)",cursor:"pointer"}},onClick:()=>p(t),children:[(0,a.jsx)(S.Z,{children:(0,a.jsxs)(f.Z,{variant:"body2",children:["Prompt #".concat(t+1,": "),(e.length>250?e.slice(0,250)+" ...":e).split(/({{\w+}})/g).map((e,t)=>/{{\s*(\w+)\s*}}/g.test(e)?(0,a.jsx)("span",{className:"prompt-var-highlight",children:e},t):e)]})}),(0,a.jsxs)(S.Z,{align:"right",sx:{minWidth:150},children:[(0,a.jsx)(E.Z,{onClick:()=>p(t),size:"small",children:(0,a.jsx)(A.Z,{})}),(0,a.jsx)(E.Z,{onClick:e=>u(e,t),size:"small",children:(0,a.jsx)(_.Z,{})}),(0,a.jsx)(E.Z,{onClick:e=>x(e,t),size:"small",children:(0,a.jsx)(C.Z,{})})]})]},t))})})}),(0,a.jsx)(R,{open:e,prompt:null!==n?s[n]:"",index:null!==n?n:0,onAdd:e=>{null!==n?h(n,e):c([...s,e]),i(null)},onCancel:()=>{i(null),t(!1)}})]})},N=n(77155),z=n(885),F=e=>{let{onChange:t,...n}=e,[i,l]=r.useState(""),[s,o]=r.useState(!1);return(0,a.jsx)(b.Z,{...n,error:s,helperText:s?"Invalid JSON":"",value:i,onChange:e=>{let n=e.target.value;try{let e=JSON.parse(n);l(n),o(!1),t&&t(e)}catch(e){l(n),o(!0)}}})},V=e=>{let{open:t,providerId:n,config:i,onClose:l,onSave:c}=e,[h,m]=r.useState(i);return r.useEffect(()=>{m(i)},[i]),(0,a.jsxs)(d.Z,{open:t,onClose:l,fullWidth:!0,maxWidth:"md",children:[(0,a.jsxs)(x.Z,{children:["Edit ",n.length>50?n.slice(0,50)+"...":n]}),(0,a.jsx)(u.Z,{children:Object.keys(h).map(e=>{let t;let n=h[e];return"number"==typeof n||"boolean"==typeof n||"string"==typeof n?(t="number"==typeof n?t=>m({...h,[e]:parseFloat(t.target.value)}):"boolean"==typeof n?t=>m({...h,[e]:"true"===t.target.value}):t=>{let n=t.target.value.trim();if(n.startsWith("{")||n.startsWith("["))try{m({...h,[e]:JSON.parse(n)})}catch(t){m({...h,[e]:n})}else"null"===n?m({...h,[e]:null}):"undefined"===n?m({...h,[e]:void 0}):m({...h,[e]:n})},(0,a.jsx)(s.Z,{my:2,children:(0,a.jsx)(b.Z,{label:e,value:n,onChange:t,fullWidth:!0,InputLabelProps:{shrink:!0},type:"number"==typeof n?"number":"text"})},e)):(0,a.jsx)(s.Z,{my:2,children:(0,a.jsx)(F,{label:e,defaultValue:JSON.stringify(n),onChange:t=>{m({...h,[e]:t})},fullWidth:!0,multiline:!0,minRows:2,InputLabelProps:{shrink:!0}})},e)})}),(0,a.jsxs)(p.Z,{children:[(0,a.jsx)(o.Z,{onClick:l,children:"Cancel"}),(0,a.jsx)(o.Z,{onClick:()=>{c(h)},children:"Save"})]})]})};let L=[].concat(["openai:gpt-4o","openai:gpt-4o-2024-05-13","openai:gpt-4o-mini","openai:gpt-4o-mini-2024-07-18","openai:gpt-4-turbo","openai:gpt-4","openai:gpt-3.5-turbo"].map(e=>({id:e,config:{organization:"",temperature:.5,max_tokens:1024,top_p:1,frequency_penalty:0,presence_penalty:0,function_call:void 0,functions:void 0,stop:void 0}}))).concat(["anthropic:messages:claude-3-5-sonnet-20240620","anthropic:messages:claude-3-haiku-20240307","anthropic:messages:claude-3-sonnet-20240229","anthropic:messages:claude-3-opus-20240229"].map(e=>({id:e,config:{max_tokens:1024,temperature:.5}}))).concat(["bedrock:anthropic.claude-3-haiku-20240307-v1:0","bedrock:anthropic.claude-3-sonnet-20240229-v1:0","bedrock:anthropic.claude-3-opus-20240307-v1:0"].map(e=>({id:e,config:{max_tokens_to_sample:256,temperature:.5}}))).concat(["azureopenai:gpt-4o-2024-05-13","azureopenai:gpt-4-turbo-2024-04-09","azureopenai:gpt-4-32k-0613","azureopenai:gpt-4-0613","azureopenai:gpt-35-turbo-0125"].map(e=>({id:e,config:{temperature:.5,max_tokens:1024,top_p:1,frequency_penalty:0,presence_penalty:0,function_call:void 0,functions:void 0,stop:void 0}}))).concat(["vertex:chat-bison@001","vertex:chat-bison","vertex:chat-bison-32k","vertex:chat-bison-32k@001"].map(e=>({id:e,config:{context:void 0,examples:void 0,temperature:0,maxOutputTokens:1024,topP:.95,topK:40,safetySettings:void 0,stopSequence:void 0}}))).concat(["replicate:replicate/flan-t5-small:69716ad8c34274043bf4a135b7315c7c569ec931d8f23d6826e249e1c142a264"].map(e=>({id:e,config:{temperature:.5,max_length:1024,repetition_penality:1}}))).concat(["replicate:replicate/codellama-7b-instruct:0103579e86fc75ba0d65912890fa19ef03c84a68554635319accf2e0ba93d3ae","replicate:replicate/codellama-13b-instruct:da5676342de1a5a335b848383af297f592b816b950a43d251a0a9edd0113604b","replicate:replicate/llama-2-70b-chat:2796ee9483c3fd7aa2e171d38f4ca12251a30609463dcfd4cd76703f22e96cdf"].map(e=>({id:e,config:{system_prompt:"",temperature:.75,top_p:.9,top_k:50,max_new_tokens:128,min_new_tokens:-1}}))).concat(["replicate:replicate/codellama-7b:6880b103613a9cd23950c5fd6c140197e519905bd0dd00e448c4858bdd06090a","replicate:replicate/codellama-13b-python:09b87c02dfa403e0c3289166dece62286b3bce49bae39a9c9204713cf94b8b7d","replicate:replicate/codellama-13b:1c914d844307b0588599b8393480a3ba917b660c7e9dfae681542b5325f228db","replicate:replicate/codellama-34b-python:9048743d22a7b19cd0abb018066809ea6af4f2b4717bef9aad3c5ae21ceac00d","replicate:replicate/codellama-34b:0666717e5ead8557dff55ee8f11924b5c0309f5f1ca52f64bb8eec405fdb38a7"].map(e=>({id:e,config:{temperature:.75,top_p:.9,top_k:50,max_new_tokens:128,min_new_tokens:-1}}))).concat(["replicate:a16z-infra/llama-2-7b-chat:7b0bfc9aff140d5b75bacbed23e91fd3c34b01a1e958d32132de6e0a19796e2c","replicate:a16z-infra/llama-2-13b-chat:2a7f981751ec7fdf87b5b91ad4db53683a98082e9ff7bfd12c8cd5ea85980a52"].map(e=>({id:e,config:{temperature:.95,top_p:.95,top_k:250,max_new_tokens:500,min_new_tokens:-1,repetition_penalty:1,system_prompt:""}}))).concat(["replicate:mistralai/mistral-7b-v0.1","replicate:mistralai/mistral-7b-instruct-v0.2","replicate:mistralai/mixtral-8x7b-instruct-v0.1"].map(e=>({id:e,config:{temperature:.7,top_p:.9,top_k:-1,max_new_tokens:128,min_new_tokens:-1,repetition_penalty:1.15,prompt_template:"{prompt}"}}))).sort((e,t)=>e.id.localeCompare(t.id)),U={anthropic:"Anthropic",bedrock:"Amazon Web Services",azureopenai:"Azure",openai:"OpenAI",replicate:"Replicate"};var q=e=>{let{providers:t,onChange:n}=e,[i,l]=r.useState(null),o=e=>"string"==typeof e?e:e.id||"Unknown provider",c=(e,t)=>"string"==typeof e?e:e.id||t,d=e=>{"string"==typeof e?alert("Cannot edit custom providers"):e.config?l(e):alert("There is no config for this provider")};return(0,a.jsxs)(s.Z,{mt:2,children:[(0,a.jsx)(N.Z,{multiple:!0,freeSolo:!0,options:L,value:t,groupBy:e=>(function(e){if(!e)return"Other";let t=e.split(":")[0];return U[t]||t})(e.id),onChange:(e,t)=>{n(t.map(e=>"string"==typeof e?{id:e}:e))},getOptionLabel:e=>{if(!e)return"";let t="";"string"==typeof e&&(t=e),e.id&&"string"==typeof e.id&&(t=e.id);let n=t.split(":");return n.length>1?n.length>2&&"anthropic"===n[0]?n[2]:n[1]:"Unknown provider"},renderTags:(e,t)=>e.map((e,n)=>{let a=o(e),i=c(e,n);return(0,r.createElement)(z.Z,{variant:"outlined",label:a,...t({index:n}),key:i,onClick:()=>d(e)})}),renderInput:e=>(0,a.jsx)(b.Z,{...e,variant:"outlined",placeholder:"Select LLM providers",helperText:t.length>0?"Click a provider to configure its settings.":null})}),i&&i.id&&(0,a.jsx)(V,{open:!!i,providerId:i.id,config:i.config,onClose:()=>l(null),onSave:e=>{if(i){let a=t.map(t=>t.id===i.id?{...t,config:e}:t);n(a),l(null)}}})]})},B=n(52428),K=n(11615),Y=n(28891),D=()=>{let e=(0,Y.useRouter)(),{defaultTest:t,description:n,env:i,evaluateOptions:s,prompts:c,providers:d,scenarios:p,testCases:u}=(0,l.o)(),[h,x]=(0,r.useState)(!1),[m,f]=(0,r.useState)(0),j=async()=>{x(!0);try{let a=await fetch("".concat(B.eA,"/api/eval/job/"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({defaultTest:t,description:n,env:i,evaluateOptions:s,prompts:c,providers:d,scenarios:p,tests:u})});if(!a.ok)throw Error("HTTP error! status: ".concat(a.status));let r=await a.json(),l=setInterval(async()=>{let t=await fetch("".concat(B.eA,"/api/eval/job/").concat(r.id,"/"));if(!t.ok)throw clearInterval(l),Error("HTTP error! status: ".concat(t.status));let n=await t.json();if("complete"===n.status)clearInterval(l),x(!1),B.Ox?e.push("/eval/remote:".concat(encodeURIComponent(r.id))):e.push("/eval");else if("failed"===n.status)throw clearInterval(l),x(!1),Error("Job failed");else{let e=0===n.total?0:Math.round(n.progress/n.total*100);f(e)}},1e3)}catch(e){console.error(e),x(!1),alert("An error occurred: ".concat(e.message))}};return(0,a.jsx)(o.Z,{variant:"contained",color:"primary",onClick:j,disabled:h,children:h?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(K.Z,{size:24,sx:{marginRight:2}}),m.toFixed(0),"% complete"]}):"Run Evaluation"})},J=n(15320),M=n(26485);let X=["equals","contains","icontains","contains-all","contains-any","starts-with","regex","is-json","contains-json","is-sql","contains-sql","similar","llm-rubric","model-graded-closedqa","factuality","webhook","rouge-n","rouge-s","rouge-l","not-equals","not-contains","not-icontains","not-contains-all","not-contains-any","not-starts-with","not-regex","not-is-json","not-contains-json","not-similar","not-webhook","not-rouge-n","not-rouge-s","not-rouge-l","is-valid-openai-function-call","is-valid-openai-tools-call","latency","perplexity","perplexity-score","cost","answer-relevance","context-faithfulness","context-recall","context-relevance","select-best","moderation"];var G=e=>{let{onAdd:t,initialValues:n}=e,[i,l]=(0,r.useState)(n||[]),c=e=>{let n=i.filter((t,n)=>n!==e);l(n),t(n)};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(f.Z,{variant:"h6",children:"Asserts"}),(0,a.jsx)(s.Z,{my:i.length>0?2:0,children:(0,a.jsx)(m.Z,{direction:"column",spacing:2,children:i.map((e,n)=>(0,a.jsxs)(m.Z,{direction:"row",spacing:2,alignItems:"center",children:[(0,a.jsx)(N.Z,{value:e.type,options:X,sx:{minWidth:200},onChange:(e,a)=>{let r=i.map((e,t)=>t===n?{...e,type:a}:e);l(r),t(r)},renderInput:e=>(0,a.jsx)(b.Z,{...e,label:"Type"})}),(0,a.jsx)(b.Z,{label:"Value",value:e.value,fullWidth:!0,onChange:e=>{let a=e.target.value,r=i.map((e,t)=>t===n?{...e,value:a}:e);l(r),t(r)}}),(0,a.jsx)(E.Z,{onClick:()=>c(n),size:"small",children:(0,a.jsx)(C.Z,{})})]},n))})}),(0,a.jsx)(o.Z,{color:"primary",onClick:()=>{let e=[...i,{type:"equals",value:""}];l(e),t(e)},children:"Add Assert"})]})},H=e=>{let{onAdd:t,varsList:n,initialValues:i}=e,[l,o]=r.useState(i||{});return(0,r.useEffect)(()=>{let e={};n.forEach(t=>{e[t]=(null==i?void 0:i[t])||""}),o(e)},[n,i]),(0,a.jsxs)(s.Z,{my:2,children:[(0,a.jsx)(f.Z,{variant:"h6",mb:2,children:"Vars"}),n.length>0?(0,a.jsx)(m.Z,{direction:"row",spacing:2,alignItems:"center",children:Object.keys(l).map((e,n)=>(0,a.jsx)(m.Z,{direction:"row",spacing:2,alignItems:"center",children:(0,a.jsx)(b.Z,{placeholder:e,label:e,value:l[e],fullWidth:!0,onChange:n=>{let a=n.target.value,r={...l,[e]:a};o(r),t(r)}})},n))}):(0,a.jsxs)(f.Z,{variant:"subtitle1",gutterBottom:!0,children:["Add variables to your prompt using the ","{{varname}}"," syntax."]})]})},$=e=>{let{open:t,onAdd:n,varsList:i,initialValues:l,onCancel:c}=e,[h,m]=(0,r.useState)((null==l?void 0:l.description)||""),[f,j]=(0,r.useState)((null==l?void 0:l.vars)||{}),[v,g]=(0,r.useState)((null==l?void 0:l.assert)||[]),[Z,b]=(0,r.useState)(0);r.useEffect(()=>{l?(m(l.description||""),j(l.vars||{}),g(l.assert||[])):(m(""),j({}),g([]))},[l]);let y=e=>{n({description:h,vars:f,assert:v},e),e&&c(),m(""),j({}),g([]),b(e=>e+1)};return(0,a.jsxs)(d.Z,{open:t,onClose:c,fullWidth:!0,maxWidth:"md",children:[(0,a.jsx)(x.Z,{children:l?"Edit Test Case":"Add Test Case"}),(0,a.jsx)(u.Z,{children:(0,a.jsxs)(s.Z,{children:[(0,a.jsx)(H,{onAdd:e=>j(e),varsList:i,initialValues:null==l?void 0:l.vars}),(0,a.jsx)(G,{onAdd:e=>g(e),initialValues:((null==l?void 0:l.assert)||[]).filter(e=>"assert-set"!==e.type)||[]},Z)]})}),(0,a.jsxs)(p.Z,{children:[(0,a.jsx)(o.Z,{onClick:y.bind(void 0,!0),color:"primary",variant:"contained",children:l?"Update Test Case":"Add Test Case"}),!l&&(0,a.jsx)(o.Z,{onClick:y.bind(void 0,!1),color:"primary",variant:"contained",children:"Add Another"}),(0,a.jsx)(o.Z,{onClick:c,color:"secondary",children:"Cancel"})]})]})},Q=e=>{let{varsList:t}=e,{testCases:i,setTestCases:s}=(0,l.o)(),[c,d]=r.useState(null),[p,u]=r.useState(!1),h=(e,t)=>{e.stopPropagation(),confirm("Are you sure you want to delete this test case?")&&s(i.filter((e,n)=>n!==t))},x=(e,t)=>{e.stopPropagation();let n=JSON.parse(JSON.stringify(i[t]));s([...i,n])};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(m.Z,{direction:"row",spacing:2,mb:2,justifyContent:"space-between",children:[(0,a.jsx)(f.Z,{variant:"h5",children:"Test Cases"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("label",{htmlFor:"file-input-add-test-case",children:(0,a.jsx)(w.Z,{title:"Upload test cases from csv",children:(0,a.jsxs)("span",{children:[(0,a.jsx)(E.Z,{component:"span",children:(0,a.jsx)(k.Z,{})}),(0,a.jsx)("input",{id:"file-input-add-test-case",type:"file",accept:".csv",onChange:e=>{var t;e.stopPropagation(),e.preventDefault();let a=null===(t=e.target.files)||void 0===t?void 0:t[0];if(a){let e=new FileReader;e.onload=async e=>{var t,a;let r=null===(a=e.target)||void 0===a?void 0:null===(t=a.result)||void 0===t?void 0:t.toString();if(r){let{parse:e}=await Promise.all([n.e(631),n.e(887)]).then(n.bind(n,83887)),t=e(r,{columns:!0}),a=t.map(e=>(0,J.It)(e));s([...i,...a])}},e.readAsText(a)}},style:{display:"none"}})]})})}),(0,a.jsx)(o.Z,{color:"primary",onClick:()=>u(!0),variant:"contained",children:"Add Test Case"})]})]}),(0,a.jsx)(P.Z,{children:(0,a.jsxs)(I.Z,{children:[(0,a.jsx)(M.Z,{children:(0,a.jsxs)(T.Z,{children:[(0,a.jsx)(S.Z,{children:"Description"}),(0,a.jsx)(S.Z,{children:"Assertions"}),(0,a.jsx)(S.Z,{children:"Variables"}),(0,a.jsx)(S.Z,{align:"right"})]})}),(0,a.jsx)(O.Z,{children:0===i.length?(0,a.jsx)(T.Z,{children:(0,a.jsx)(S.Z,{colSpan:4,align:"center",children:"No test cases added yet."})}):i.map((e,t)=>{var n;return(0,a.jsxs)(T.Z,{sx:{"&:hover":{backgroundColor:"rgba(0, 0, 0, 0.04)",cursor:"pointer"}},onClick:()=>{d(t),u(!0)},children:[(0,a.jsx)(S.Z,{children:(0,a.jsx)(f.Z,{variant:"body2",children:e.description||"Test Case #".concat(t+1)})}),(0,a.jsxs)(S.Z,{children:[(null===(n=e.assert)||void 0===n?void 0:n.length)||0," assertions"]}),(0,a.jsx)(S.Z,{children:Object.entries(e.vars||{}).map(e=>{let[t,n]=e;return t+"="+n}).join(", ")}),(0,a.jsxs)(S.Z,{align:"right",sx:{minWidth:150},children:[(0,a.jsx)(E.Z,{onClick:()=>{d(t),u(!0)},size:"small",children:(0,a.jsx)(A.Z,{})}),(0,a.jsx)(E.Z,{onClick:e=>x(e,t),size:"small",children:(0,a.jsx)(_.Z,{})}),(0,a.jsx)(E.Z,{onClick:e=>h(e,t),size:"small",children:(0,a.jsx)(C.Z,{})})]})]},t)})})]})}),(0,a.jsx)($,{open:p,onAdd:(e,t)=>{if(null===c)s([...i,e]);else{let t=i.map((t,n)=>n===c?e:t);s(t),d(null)}t&&u(!1)},varsList:t,initialValues:null!==c?i[c]:void 0,onCancel:()=>{d(null),u(!1)}})]})},ee=n(71911),et=n.n(ee),en=n(93522),ea=n(68833),er=n(92863),ei=n(34235),el=n(38640),es=n.n(el),eo=n(29270);n(54492),n(55096),n(93486);var ec=()=>{let e="dark"===(0,er.Z)().palette.mode,{defaultTest:t,setDefaultTest:n,description:i,setDescription:c,env:d,setEnv:p,evaluateOptions:u,setEvaluateOptions:h,prompts:x,setPrompts:m,providers:j,setProviders:v,scenarios:g,setScenarios:Z,testCases:b,setTestCases:y}=(0,l.o)(),[_,C]=r.useState(""),[k,E]=r.useState(!0),I=e=>{n(e.defaultTest||{}),c(e.description||""),p(e.env||{}),h(e.evaluateOptions||{}),m(e.prompts||[]),v(e.providers||[]),Z(e.scenarios||[]),y(e.tests||[])};return r.useEffect(()=>{C(ei.default.dump({defaultTest:t,description:i,env:d,evaluateOptions:u,prompts:x,providers:j,scenarios:g,tests:b}))},[t,i,d,u,x,j,g,b]),(0,a.jsxs)(s.Z,{mt:4,children:[(0,a.jsx)(f.Z,{variant:"h5",gutterBottom:!0,children:"Configuration"}),(0,a.jsxs)(f.Z,{variant:"body1",gutterBottom:!0,children:["This is the YAML config that defines the evaluation and is processed by promptfoo. See"," ",(0,a.jsx)(es(),{target:"_blank",href:"https://promptfoo.dev/docs/configuration/guide",children:"configuration docs"})," ","to learn more."]}),(0,a.jsxs)(s.Z,{display:"flex",gap:2,mb:2,children:[(0,a.jsx)(o.Z,{variant:"text",color:"primary",startIcon:k?(0,a.jsx)(A.Z,{}):(0,a.jsx)(en.Z,{}),onClick:()=>{if(!k)try{let e=ei.default.load(_,{json:!0});I(e)}catch(e){}E(!k)},children:k?"Edit YAML":"Save"}),(0,a.jsxs)(o.Z,{variant:"text",color:"primary",startIcon:(0,a.jsx)(ea.Z,{}),component:"label",children:["Upload YAML",(0,a.jsx)("input",{type:"file",hidden:!0,accept:".yaml,.yml",onChange:e=>{var t;let n=null===(t=e.target.files)||void 0===t?void 0:t[0];if(n){let e=new FileReader;e.onload=e=>{var t;let n=null===(t=e.target)||void 0===t?void 0:t.result;C(n);try{let e=ei.default.load(n,{json:!0});I(e)}catch(e){console.error("Error parsing uploaded YAML:",e)}},e.readAsText(n)}}})]})]}),(0,a.jsx)(et(),{autoCapitalize:"off",value:_,onValueChange:e=>{k||C(e)},highlight:e=>(0,eo.highlight)(e,eo.languages.yaml),padding:10,style:{backgroundColor:e?"#1e1e1e":"#fff",fontFamily:'"Fira code", "Fira Mono", monospace',fontSize:14},disabled:k,className:k?"":"glowing-border"})]})};n(7517);var ed=n(77580);function ep(e){let{error:t,resetErrorBoundary:n}=e;return(0,a.jsxs)("div",{role:"alert",children:[(0,a.jsx)("p",{children:"Something went wrong:"}),(0,a.jsx)("pre",{children:t.message}),(0,a.jsx)("button",{onClick:n,children:"Try again"})]})}var eu=()=>{let[e,t]=(0,r.useState)(!1),{setDescription:n,providers:j,setProviders:v,prompts:g,setPrompts:Z,setTestCases:b}=(0,l.o)();if((0,r.useEffect)(()=>{l.o.persist.rehydrate()},[]),ed.env.NEXT_PUBLIC_NO_BROWSING)return null;let _=(e=>{let t=/{{\s*(\w+)\s*}}/g,n=new Set;return e.forEach(e=>{let a;for(;null!==(a=t.exec(e));)n.add(a[1])}),Array.from(n)})(g);return(0,a.jsxs)(c.Z,{maxWidth:"lg",sx:{marginTop:"2rem"},children:[(0,a.jsxs)(m.Z,{direction:"row",spacing:2,justifyContent:"space-between",children:[(0,a.jsx)(f.Z,{variant:"h4",children:"Set up an evaluation"}),(0,a.jsxs)(m.Z,{direction:"row",spacing:2,children:[(0,a.jsx)(D,{}),(0,a.jsx)(y,{}),(0,a.jsx)(o.Z,{variant:"outlined",color:"primary",onClick:()=>t(!0),children:"Reset"})]})]}),(0,a.jsx)(s.Z,{mt:4}),(0,a.jsx)(s.Z,{mt:2,children:(0,a.jsx)(i.SV,{FallbackComponent:ep,onReset:()=>{v([])},children:(0,a.jsxs)(m.Z,{direction:"column",spacing:2,justifyContent:"space-between",children:[(0,a.jsx)(f.Z,{variant:"h5",children:"Providers"}),(0,a.jsx)(q,{providers:j,onChange:v})]})})}),(0,a.jsx)(s.Z,{mt:4}),(0,a.jsx)(i.SV,{FallbackComponent:ep,onReset:()=>{Z([])},children:(0,a.jsx)(W,{})}),(0,a.jsx)(s.Z,{mt:6}),(0,a.jsx)(i.SV,{FallbackComponent:ep,onReset:()=>{b([])},children:(0,a.jsx)(Q,{varsList:_})}),(0,a.jsx)(ec,{}),(0,a.jsxs)(d.Z,{open:e,onClose:()=>t(!1),"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",children:[(0,a.jsx)(x.Z,{id:"alert-dialog-title",children:"Confirm Reset"}),(0,a.jsx)(u.Z,{children:(0,a.jsx)(h.Z,{id:"alert-dialog-description",children:"Are you sure you want to reset all the fields? This action cannot be undone."})}),(0,a.jsxs)(p.Z,{children:[(0,a.jsx)(o.Z,{onClick:()=>t(!1),children:"Cancel"}),(0,a.jsx)(o.Z,{onClick:()=>{n(""),v([]),Z([]),b([]),t(!1)},autoFocus:!0,children:"Reset"})]})]})]})}},52428:function(e,t,n){"use strict";n.d(t,{Ox:function(){return i},T8:function(){return r},eA:function(){return l}});var a=n(77580);let r=!a.env.NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER,i=!!a.env.NEXT_PUBLIC_PROMPTFOO_USE_SUPABASE,l=""},47887:function(e,t,n){"use strict";n.d(t,{o:function(){return i}});var a=n(79685),r=n(74595);let i=(0,a.Ue)()((0,r.tJ)((e,t)=>({env:{},testCases:[],description:"",providers:[],prompts:[],defaultTest:{},evaluateOptions:{},scenarios:[],setEnv:t=>e({env:t}),setTestCases:t=>e({testCases:t}),setDescription:t=>e({description:t}),setProviders:t=>e({providers:t}),setPrompts:t=>e({prompts:t}),setDefaultTest:t=>e({defaultTest:t}),setEvaluateOptions:t=>e({evaluateOptions:t}),setScenarios:t=>e({scenarios:t}),setStateFromConfig:t=>{let n={};t.description&&(n.description=t.description||""),t.tests&&(n.testCases=t.tests),t.providers&&(n.providers=t.providers),t.prompts&&("string"==typeof t.prompts?n.prompts=[t.prompts]:Array.isArray(t.prompts)?n.prompts=t.prompts.filter(e=>"string"==typeof e&&!e.endsWith(".txt")&&!e.endsWith(".json")&&!e.endsWith(".yaml")):console.warn("Invalid prompts config",t.prompts)),t.defaultTest&&(n.defaultTest=t.defaultTest),t.evaluateOptions&&(n.evaluateOptions=t.evaluateOptions),t.scenarios&&(n.scenarios=t.scenarios),e(n)},getTestSuite:()=>{let{description:e,testCases:n,providers:a,prompts:r,env:i,scenarios:l}=t();return{env:i,description:e,providers:a,prompts:r,tests:n,scenarios:l}}}),{name:"promptfoo",skipHydration:!0}))},94499:function(){},55096:function(){},7517:function(){},15320:function(e,t){"use strict";t.It=function(e){let t,n,a,r;let i={},l=[],s={};for(let[o,c]of Object.entries(e))o.startsWith("__expected")?""!==c.trim()&&l.push(function(e){if(e.startsWith("javascript:")||e.startsWith("fn:")||e.startsWith("eval:")){let t;e.startsWith("javascript:")&&(t=11),e.startsWith("fn:")&&(t=3),e.startsWith("eval:")&&(t=5);let n=e.slice(t).trim();return{type:"javascript",value:n}}if(e.startsWith("grade:")||e.startsWith("llm-rubric:"))return{type:"llm-rubric",value:e.slice(6)};if(e.startsWith("python:")){let t=e.slice(7).trim();return{type:"python",value:t}}let t=e.match(/^(not-)?(equals|contains-any|contains-all|icontains-any|icontains-all|contains-json|is-json|is-sql|regex|icontains|contains|webhook|rouge-n|similar|starts-with|levenshtein|classifier|model-graded-factuality|factuality|model-graded-closedqa|answer-relevance|context-recall|context-relevance|context-faithfulness|is-valid-openai-function-call|is-valid-openai-tools-call|latency|perplexity|perplexity-score|cost)(?:\((\d+(?:\.\d+)?)\))?(?::([\s\S]*))?$/);if(t){let[e,n,a,r,i]=t,l=n?`not-${a}`:a,s=parseFloat(r);return"contains-any"===a||"contains-all"===a||"icontains-any"===a||"icontains-all"===a?{type:l,value:i.split(",").map(e=>e.trim())}:"contains-json"===a||"is-json"===a?{type:l,value:i}:"rouge-n"===a||"similar"===a||"starts-with"===a||"levenshtein"===a||"classifier"===a||"answer-relevance"===a||"context-recall"===a||"context-relevance"===a||"context-faithfulness"===a||"latency"===a||"perplexity"===a||"perplexity-score"===a||"cost"===a?{type:l,value:i,threshold:s||("similar"===a?.8:.75)}:{type:l,value:i}}return{type:"equals",value:e}}(c)):"__prefix"===o?s.prefix=c:"__suffix"===o?s.suffix=c:"__description"===o?n=c:"__providerOutput"===o?t=c:"__metric"===o?a=c:"__threshold"===o?r=parseFloat(c):i[o]=c;for(let e of l)e.metric=a;return{vars:i,assert:l,options:s,...n?{description:n}:{},...t?{providerOutput:t}:{},...r?{threshold:r}:{}}}}},function(e){e.O(0,[903,640,916,493,304,374,339,969,378,235,476,905,155,856,470,730,744],function(){return e(e.s=8458)}),_N_E=e.O()}]);
|
|
File without changes
|
|
File without changes
|