promptfoo 0.50.0 → 0.50.1
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/dist/package.json +1 -1
- package/dist/src/constants.js +2 -2
- package/dist/src/constants.js.map +1 -1
- package/dist/src/esm.d.ts.map +1 -1
- package/dist/src/esm.js +3 -2
- package/dist/src/esm.js.map +1 -1
- package/dist/src/evaluator.d.ts.map +1 -1
- package/dist/src/evaluator.js +5 -2
- package/dist/src/evaluator.js.map +1 -1
- package/dist/src/prompts.d.ts.map +1 -1
- package/dist/src/prompts.js +3 -1
- package/dist/src/prompts.js.map +1 -1
- package/dist/src/testCases.d.ts.map +1 -1
- package/dist/src/testCases.js +6 -2
- package/dist/src/testCases.js.map +1 -1
- package/dist/src/util.d.ts.map +1 -1
- package/dist/src/util.js +6 -2
- package/dist/src/util.js.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/{670-8cc4b4f4fc7b80ad.js → 670-5be688930d520e54.js} +1 -1
- package/dist/src/web/nextui/api/results +1 -1
- package/dist/src/web/nextui/auth/login/index.html +1 -1
- package/dist/src/web/nextui/auth/login/index.txt +1 -1
- package/dist/src/web/nextui/auth/signup/index.html +1 -1
- package/dist/src/web/nextui/auth/signup/index.txt +1 -1
- package/dist/src/web/nextui/datasets/index.html +1 -1
- package/dist/src/web/nextui/datasets/index.txt +1 -1
- package/dist/src/web/nextui/eval/index.html +1 -1
- package/dist/src/web/nextui/eval/index.txt +2 -2
- package/dist/src/web/nextui/index.html +1 -1
- package/dist/src/web/nextui/index.txt +1 -1
- package/dist/src/web/nextui/prompts/index.html +1 -1
- package/dist/src/web/nextui/prompts/index.txt +1 -1
- package/dist/src/web/nextui/setup/index.html +1 -1
- package/dist/src/web/nextui/setup/index.txt +1 -1
- package/package.json +1 -1
- /package/dist/src/web/nextui/_next/static/{vh97xvBohjbcaZhzFItCJ → cQksOHrqbI8gLOJlpyPzu}/_buildManifest.js +0 -0
- /package/dist/src/web/nextui/_next/static/{vh97xvBohjbcaZhzFItCJ → cQksOHrqbI8gLOJlpyPzu}/_ssgManifest.js +0 -0
package/dist/src/web/nextui/_next/static/chunks/{670-8cc4b4f4fc7b80ad.js → 670-5be688930d520e54.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[670],{2810:function(e,t,s){"use strict";let n,l;async function r(){if(n||(l||(l=fetch("/api/config").then(e=>e.json()).then(e=>n=e.apiBaseUrl)),await l),void 0===n)throw Error("API base URL is undefined");return n}s.d(t,{b:function(){return r}})},9670:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return eW}});var n=s(7437),l=s(2265),r=s(2130),i=s(6882),a=s(3388),o=s(4033),c=s(3082),d=s(8440),u=s(6507),p=s(5551),h=s(7760),m=s(3391),x=s(4081),j=s(3226),g=s(819),f=s(8212),v=s(5507),b=s(923),y=s(654),Z=s(3295),w=s(2467),C=s(3457),k=s(1975),S=s(8276),N=s(9605),R=s(9190),E=s(2053),O=s(8339),P=s(2481),F=s(3375),I=s(4660);let T=(0,I.Ue)(e=>({evalId:null,setEvalId:t=>e(()=>({evalId:t})),table:null,setTable:t=>e(()=>({table:t})),config:null,setConfig:t=>e(()=>({config:t})),maxTextLength:250,setMaxTextLength:t=>e(()=>({maxTextLength:t})),wordBreak:"break-word",setWordBreak:t=>e(()=>({wordBreak:t})),showInferenceDetails:!0,setShowInferenceDetails:t=>e(()=>({showInferenceDetails:t})),renderMarkdown:!1,setRenderMarkdown:t=>e(()=>({renderMarkdown:t})),prettifyJson:!1,setPrettifyJson:t=>e(()=>({prettifyJson:t})),showPrompts:!1,setShowPrompts:t=>e(()=>({showPrompts:t}))}));var L=function(){let{table:e,config:t,evalId:s}=T(),[r,i]=l.useState(null),a=(e,t)=>{let s=URL.createObjectURL(e),n=document.createElement("a");n.href=s,n.download=t,document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(s)};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(S.Z,{title:"Download options",children:(0,n.jsx)(p.Z,{color:"primary","aria-controls":"download-menu","aria-haspopup":"true",onClick:e=>{i(e.currentTarget)},startIcon:(0,n.jsx)(P.Z,{}),children:"Download"})}),(0,n.jsxs)(F.Z,{id:"download-menu",anchorEl:r,keepMounted:!0,open:!!r,onClose:()=>i(null),children:[(0,n.jsx)(v.Z,{onClick:()=>{i(null);let e=O.default.dump(t),s=new Blob([e],{type:"text/yaml;charset=utf-8"});a(s,"promptfooconfig.yaml")},children:"YAML config"}),(0,n.jsx)(v.Z,{onClick:()=>{if(i(null),!e){alert("No table data");return}let t=new Blob([JSON.stringify(e,null,2)],{type:"application/json"});a(t,"".concat(s,"-table.json"))},children:"Table JSON"}),(0,n.jsx)(v.Z,{onClick:()=>{if(i(null),!e){alert("No table data");return}let t=e.body.map((t,s)=>({chosen:t.outputs.filter(e=>e.pass).map(e=>e.text),rejected:t.outputs.filter(e=>!e.pass).map(e=>e.text),vars:t.test.vars,providers:e.head.prompts.map(e=>e.provider),prompts:e.head.prompts.map(e=>e.display)})),n=new Blob([JSON.stringify(t,null,2)],{type:"application/json"});a(n,"".concat(s,"-dpo.json"))},children:"DPO JSON"})]})]})},M=s(6704),D=s(9394),U=s(1797),A=s(6337),_=s(1101),W=s(9872),V=s(2653),z=s(3533),B=s(4740);let J=["#fd7f6f","#7eb0d5","#b2e061","#bd7ebe","#ffb55a","#ffee65","#beb9db","#fdcce5","#8bd3c7"];function H(e){let{table:t}=e,s=(0,l.useRef)(null),r=(0,l.useRef)(null);return(0,l.useEffect)(()=>{if(!s.current)return;r.current&&r.current.destroy();let e=t.body.flatMap(e=>e.outputs.map(e=>e.score)),n=Math.min(...e),l=(Math.ceil(Math.max(...e))-Math.floor(n))/10,i=Array.from({length:11},(e,t)=>parseFloat((Math.floor(n)+t*l).toFixed(2))),a=t.head.prompts.map((e,s)=>{let n=t.body.flatMap(e=>e.outputs[s].score),r=i.map(e=>n.filter(t=>t>=e&&t<e+l).length);return{label:"Prompt ".concat(s+1),data:r,backgroundColor:J[s%J.length]}});r.current=new M.kL(s.current,{type:"bar",data:{labels:i,datasets:a},options:{animation:!1,plugins:{title:{display:!0,text:"Score Distribution"},legend:{display:!1},tooltip:{callbacks:{title:function(e){let t=e[0].datasetIndex;return"Prompt ".concat(t+1)},label:function(e){let t=e.dataIndex,s=i[t],n=i[t+1];return n?"".concat(s," <= score < ").concat(n):"".concat(s," <= score")}}}}}})},[t]),(0,n.jsx)("canvas",{ref:s,style:{maxHeight:"300px"}})}function G(e){let{table:t}=e,s=(0,l.useRef)(null),r=(0,l.useRef)(null);return(0,l.useEffect)(()=>{if(!s.current)return;r.current&&r.current.destroy();let e=t.head.prompts.map((e,s)=>{let n=t.body.flatMap(e=>e.outputs[s]),l=n.filter(e=>e.pass).length,r=l/n.length*100;return{label:"Prompt ".concat(s+1),data:[r],backgroundColor:J[s%J.length]}});r.current=new M.kL(s.current,{type:"bar",data:{labels:["Pass Rate (%)"],datasets:e},options:{animation:!1,plugins:{title:{display:!0,text:"Pass rate"},legend:{display:!0}}}})},[t]),(0,n.jsx)("canvas",{ref:s,style:{maxHeight:"300px"}})}function X(e){let{table:t}=e,s=(0,l.useRef)(null),r=(0,l.useRef)(null),[i,a]=(0,l.useState)(0),[o,c]=(0,l.useState)(1),[d,u]=(0,l.useState)(!1);return(0,l.useEffect)(()=>{if(!s.current)return;r.current&&r.current.destroy();let e=t.body.flatMap(e=>e.outputs.map(e=>e.score)),n=Math.min(...e),l=Math.max(...e),a=t.body.map(e=>{let t=e.outputs[i].score,s=e.outputs[o].score;return{x:t,y:s,backgroundColor:s>t?"green":s<t?"red":"gray"}});r.current=new M.kL(s.current,{type:"scatter",data:{datasets:[{data:a,backgroundColor:a.map(e=>e.backgroundColor)},{type:"line",data:[{x:n,y:n},{x:l,y:l}],borderColor:"gray",borderWidth:1,borderDash:[5,5],pointRadius:0}]},options:{animation:!1,plugins:{legend:{display:!1},tooltip:{callbacks:{label:function(e){let s=t.body[e.dataIndex],n=s.outputs[0].text,l=s.outputs[1].text;return n.length>30&&(n=n.substring(0,30)+"..."),l.length>30&&(l=l.substring(0,30)+"..."),"Output 1: ".concat(n,"\nOutput 2: ").concat(l)}}}},scales:{x:{title:{display:!0,text:"Prompt ".concat(i+1," Score")}},y:{title:{display:!0,text:"Prompt ".concat(o+1," Score")}}}}})},[t,i,o]),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(D.Z,{open:d,onClose:()=>u(!1),children:[(0,n.jsx)(U.Z,{children:"Compare prompt outputs"}),(0,n.jsxs)(A.Z,{children:[(0,n.jsx)(x.Z,{sx:{m:1,minWidth:120},children:(0,n.jsx)(y.Z,{value:i,onChange:e=>a(Number(e.target.value)),children:t.head.prompts.map((e,t)=>(0,n.jsxs)(v.Z,{value:t,children:["Prompt ",t+1]},t))})}),(0,n.jsx)(x.Z,{sx:{m:1,minWidth:120},children:(0,n.jsx)(y.Z,{value:o,onChange:e=>c(Number(e.target.value)),children:t.head.prompts.map((e,t)=>(0,n.jsxs)(v.Z,{value:t,children:["Prompt ",t+1]},t))})})]})]}),(0,n.jsx)("canvas",{ref:s,style:{maxHeight:"300px",cursor:"pointer"},onClick:()=>u(!0)})]})}function Y(e){let{columnVisibility:t}=e,s=(0,_.Z)();M.kL.defaults.color="dark"===s.palette.mode?"#aaa":"#666";let[r,i]=(0,l.useState)(!0),{table:a}=T();if(!a||!r||a.head.prompts.length<2)return null;let o=a.body.flatMap(e=>e.outputs.map(e=>e.score));return 1===new Set(o).size?null:(0,n.jsx)(B.SV,{fallback:null,children:(0,n.jsxs)(W.Z,{style:{position:"relative",padding:s.spacing(3)},children:[(0,n.jsx)(V.Z,{style:{position:"absolute",right:0,top:0},onClick:()=>i(!1),children:(0,n.jsx)(z.Z,{})}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",width:"100%"},children:[(0,n.jsx)("div",{style:{width:"33%"},children:(0,n.jsx)(G,{table:a})}),(0,n.jsx)("div",{style:{width:"33%"},children:(0,n.jsx)(H,{table:a})}),(0,n.jsx)("div",{style:{width:"33%"},children:(0,n.jsx)(X,{table:a})})]})]})})}M.kL.register(M.vn,M.ST,M.ho,M.uw,M.f$,M.ZL,M.jn,M.od,M.u,M.wL);var q=s(9116);s(5777);var $=s(3425),K=s(7660),Q=s(3216),ee=s(182),et=s(5391),es=s(1396),en=s.n(es);s(8715);var el=e=>{let{lookup:t}=e;return t&&Object.keys(t).length?(0,n.jsx)("div",{className:"custom-metric-container",children:Object.entries(t).map(e=>{let[t,s]=e;return t&&s?(0,n.jsxs)("span",{children:[t,": ",s.toFixed(2)]},t):null})}):null},er=s(2834),ei=s(5446),ea=s(9329),eo=s(4719),ec=s(3701),ed=s(9279),eu=s(666),ep=s(5795),eh=s(6988),em=s(4147);function ex(e){let{gradingResults:t}=e;return t?(0,n.jsxs)(u.Z,{mt:2,children:[(0,n.jsx)(j.Z,{variant:"subtitle1",children:"Assertions"}),(0,n.jsx)(ep.Z,{children:(0,n.jsxs)(ec.Z,{children:[(0,n.jsx)(eh.Z,{children:(0,n.jsxs)(em.Z,{children:[(0,n.jsx)(eu.Z,{style:{fontWeight:"bold"},children:"Pass"}),(0,n.jsx)(eu.Z,{style:{fontWeight:"bold"},children:"Score"}),(0,n.jsx)(eu.Z,{style:{fontWeight:"bold"},children:"Type"}),(0,n.jsx)(eu.Z,{style:{fontWeight:"bold"},children:"Value"}),(0,n.jsx)(eu.Z,{style:{fontWeight:"bold"},children:"Reason"})]})}),(0,n.jsx)(ed.Z,{children:t.map((e,t)=>{var s,l;return(0,n.jsxs)(em.Z,{children:[(0,n.jsx)(eu.Z,{children:e.pass?"✅":"❌"}),(0,n.jsx)(eu.Z,{children:e.score.toFixed(2)}),(0,n.jsx)(eu.Z,{children:(null===(s=e.assertion)||void 0===s?void 0:s.type)||""}),(0,n.jsx)(eu.Z,{style:{whiteSpace:"pre-wrap"},children:(null===(l=e.assertion)||void 0===l?void 0:l.value)?String(e.assertion.value):"-"}),(0,n.jsx)(eu.Z,{style:{whiteSpace:"pre-wrap"},children:e.reason})]},t)})})]})})]}):null}function ej(e){let{open:t,onClose:s,prompt:r,provider:i,output:a,gradingResults:o}=e,[c,d]=(0,l.useState)(!1);(0,l.useEffect)(()=>{d(!1)},[r]);let h=async e=>{await navigator.clipboard.writeText(e),d(!0)};return(0,n.jsxs)(D.Z,{open:t,onClose:s,fullWidth:!0,maxWidth:"lg",children:[(0,n.jsxs)(U.Z,{children:["Details",i&&": ".concat(i)]}),(0,n.jsxs)(A.Z,{children:[(0,n.jsxs)(u.Z,{mb:2,children:[(0,n.jsx)(j.Z,{variant:"subtitle1",style:{marginBottom:"1rem"},children:"Prompt"}),(0,n.jsx)(ei.u,{readOnly:!0,value:r,style:{width:"100%",padding:"0.75rem"},maxRows:20}),(0,n.jsx)(V.Z,{onClick:()=>h(r),style:{position:"absolute",right:"10px",top:"10px"},children:c?(0,n.jsx)(eo.Z,{}):(0,n.jsx)(ea.Z,{})})]}),a&&(0,n.jsxs)(u.Z,{my:2,children:[(0,n.jsx)(j.Z,{variant:"subtitle1",style:{marginBottom:"1rem",marginTop:"1rem"},children:"Output"}),(0,n.jsx)(ei.u,{readOnly:!0,maxRows:20,value:a,style:{width:"100%",padding:"0.75rem"}})]}),(0,n.jsx)(ex,{gradingResults:o})]}),(0,n.jsx)(er.Z,{children:(0,n.jsx)(p.Z,{onClick:s,children:"Close"})})]})}var eg=s(9396),ef=s(4173),ev=function(){let e=(0,_.Z)(),[t,s]=l.useState(!1),r=()=>{s(!1)};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{style:{textAlign:"center",marginTop:20,marginBottom:40},children:(0,n.jsx)(p.Z,{variant:"text",color:"primary",startIcon:(0,n.jsx)(eg.Z,{}),onClick:()=>{s(!0)},children:"Generate test cases"})}),(0,n.jsxs)(D.Z,{open:t,onClose:r,children:[(0,n.jsx)(U.Z,{children:"Run on Command Line"}),(0,n.jsx)(A.Z,{children:(0,n.jsxs)(ef.Z,{children:[(0,n.jsx)("p",{children:"This feature is in beta. UI coming soon."}),(0,n.jsxs)("p",{children:["Run"," ",(0,n.jsx)(u.Z,{component:"code",sx:{backgroundColor:"dark"===e.palette.mode?"#424242":"#f0f0f0",padding:"2px 4px",borderRadius:"4px"},children:"promptfoo generate dataset"}),"to generate test cases on the command line."]})]})}),(0,n.jsx)(er.Z,{children:(0,n.jsx)(p.Z,{onClick:r,color:"primary",children:"Close"})})]})]})},eb=s(2810);function ey(e){return null===e||0===e||1===e?"":"(".concat(e.toFixed(2),")")}function eZ(e){return"string"==typeof e||"number"==typeof e?e.toString().length:Array.isArray(e)?e.reduce((e,t)=>e+eZ(t),0):l.isValidElement(e)&&e.props.children?l.Children.toArray(e.props.children).reduce((e,t)=>e+eZ(t),0):0}function ew(e){let t,{text:s,maxLength:r}=e,[i,a]=l.useState(!0),o=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if("string"==typeof e||"number"==typeof e){let s=e.toString();return s.slice(0,r-t)}if(Array.isArray(e)){let s=[],n=t;for(let t of e){let e=eZ(t);if(n+e>r){s.push(o(t,n));break}s.push(t),n+=e}return s}if(l.isValidElement(e)&&e.props.children){let s=eZ(e.props.children);if(s>r-t)return l.cloneElement(e,{...e.props,children:o(e.props.children,t)})}return e};t=l.isValidElement(s)||"string"==typeof s?s:JSON.stringify(s);let c=i?o(t):t,d=eZ(t)>r;return(0,n.jsxs)("div",{style:{cursor:d?"pointer":"normal"},onClick:()=>{a(!i)},children:[c,i&&eZ(t)>r&&(0,n.jsx)("span",{children:"..."})]})}function eC(e){var t,s,r,i,a,o;let c,d,u,p,h,{output:m,maxTextLength:x,rowIndex:j,promptIndex:g,onRating:f,firstOutput:v,filterMode:b,searchText:y,showStats:Z}=e,{renderMarkdown:w,prettifyJson:C,showPrompts:k}=T(),[N,R]=l.useState(!1),[E,O]=l.useState(!1),P=()=>O(!E),F="string"==typeof m.text?m.text:JSON.stringify(m.text),I=[];if(F.startsWith("[IMAGE]")){let e=F.slice(7).trim();c=(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("img",{loading:"lazy",src:e,alt:m.prompt,onClick:P}),E&&(0,n.jsx)("div",{className:"lightbox",onClick:P,children:(0,n.jsx)("img",{src:e,alt:m.prompt})})]})}else!m.pass&&F.includes("---")?F=(I=F.split("---")).slice(1).join("---"):I=[F];if("different"===b&&v){let e,t="string"==typeof v.text?v.text:JSON.stringify(v.text);t.includes("---")&&(t=t.split("---").slice(1).join("---"));try{JSON.parse(t),JSON.parse(F),e=(0,q.CT)(t,F)}catch(s){e=t.includes(". ")&&F.includes(". ")?(0,q.SY)(t,F):(0,q.NV)(t,F)}c=(0,n.jsx)(n.Fragment,{children:e.map((e,t)=>e.added?(0,n.jsx)("ins",{children:e.value},t):e.removed?(0,n.jsx)("del",{children:e.value},t):(0,n.jsx)("span",{children:e.value},t))})}if(y){let e;let t=RegExp(y,"gi"),s=[];for(;null!==(e=t.exec(F));)s.push({start:e.index,end:t.lastIndex}),t.lastIndex;c=(0,n.jsx)(n.Fragment,{children:s.length>0?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{children:F.substring(0,s[0].start)},"text-before"),s.map((e,t)=>(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"search-highlight",children:F.substring(e.start,e.end)},"match-"+t),(0,n.jsx)("span",{children:F.substring(e.end,s[t+1]?s[t+1].start:F.length)},"text-after-"+t)]}))]}):(0,n.jsx)("span",{children:F},"no-match")})}else if(w)c=(0,n.jsx)($.U,{children:F});else if(C)try{c=(0,n.jsx)("pre",{children:JSON.stringify(JSON.parse(F),null,2)})}catch(e){}let L=e=>{var t;f(j,g,e,void 0,null===(t=m.gradingResult)||void 0===t?void 0:t.comment)},M=()=>{var e;let t=prompt("Comment:",(null===(e=m.gradingResult)||void 0===e?void 0:e.comment)||"");null!=t&&f(j,g,void 0,void 0,t)};if(null===(t=m.tokenUsage)||void 0===t?void 0:t.completion){u=(0,n.jsxs)("span",{children:[Intl.NumberFormat(void 0,{maximumFractionDigits:0}).format(m.latencyMs)," ms"]});let e=m.tokenUsage.completion/(m.latencyMs/1e3);p=(0,n.jsx)("span",{children:Intl.NumberFormat(void 0,{maximumFractionDigits:0}).format(e)})}m.cost&&(h=(0,n.jsxs)("span",{children:["$",m.cost.toPrecision(2)]})),(null===(s=m.tokenUsage)||void 0===s?void 0:s.cached)?d=(0,n.jsxs)("span",{children:[Intl.NumberFormat(void 0,{maximumFractionDigits:0}).format(m.tokenUsage.cached)," ","(cached)"]}):(null===(r=m.tokenUsage)||void 0===r?void 0:r.total)&&(d=(0,n.jsx)("span",{children:Intl.NumberFormat(void 0,{maximumFractionDigits:0}).format(m.tokenUsage.total)}));let D=(null===(i=m.gradingResult)||void 0===i?void 0:i.comment)?(0,n.jsx)("div",{className:"comment",onClick:M,children:m.gradingResult.comment}):null,U=Z?(0,n.jsxs)("div",{className:"cell-detail",children:[d&&(0,n.jsxs)("div",{className:"stat-item",children:[(0,n.jsx)("strong",{children:"Tokens:"})," ",d]}),u&&(0,n.jsxs)("div",{className:"stat-item",children:[(0,n.jsx)("strong",{children:"Latency:"})," ",u]}),p&&(0,n.jsxs)("div",{className:"stat-item",children:[(0,n.jsx)("strong",{children:"Tokens/Sec:"})," ",p]}),h&&(0,n.jsxs)("div",{className:"stat-item",children:[(0,n.jsx)("strong",{children:"Cost:"})," ",h]})]}):null,A=(0,n.jsxs)("div",{className:"cell-actions",children:[m.prompt&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"action",onClick:()=>{R(!0)},children:(0,n.jsx)(S.Z,{title:"View ouput and test details",children:(0,n.jsx)("span",{children:"\uD83D\uDD0E"})})}),(0,n.jsx)(ej,{open:N,onClose:()=>{R(!1)},prompt:m.prompt,provider:m.provider,gradingResults:null===(a=m.gradingResult)||void 0===a?void 0:a.componentResults,output:F})]}),(0,n.jsx)("span",{className:"action",onClick:()=>L(!0),children:(0,n.jsx)(S.Z,{title:"Mark test passed (score 1.0)",children:(0,n.jsx)("span",{children:"\uD83D\uDC4D"})})}),(0,n.jsx)("span",{className:"action",onClick:()=>L(!1),children:(0,n.jsx)(S.Z,{title:"Mark test failed (score 0.0)",children:(0,n.jsx)("span",{children:"\uD83D\uDC4E"})})}),(0,n.jsx)("span",{className:"action",onClick:()=>{let e=prompt("Set test score (0.0 - 1.0):",String(m.score));if(null!==e){let s=parseFloat(e);if(!isNaN(s)&&s>=0&&s<=1){var t;f(j,g,void 0,s,null===(t=m.gradingResult)||void 0===t?void 0:t.comment)}else alert("Invalid score. Please enter a value between 0.0 and 1.0.")}},children:(0,n.jsx)(S.Z,{title:"Set test score",children:(0,n.jsx)("span",{children:"\uD83D\uDD22"})})}),(0,n.jsx)("span",{className:"action",onClick:M,children:(0,n.jsx)(S.Z,{title:"Edit comment",children:(0,n.jsx)("span",{children:"✏️"})})})]});return(0,n.jsxs)("div",{className:"cell",children:[m.pass?(0,n.jsx)(n.Fragment,{children:(0,n.jsxs)("div",{className:"status pass",children:[(0,n.jsxs)("div",{className:"pill",children:["PASS ",(0,n.jsx)("span",{className:"score",children:ey(m.score)})]}),(0,n.jsx)(el,{lookup:m.namedScores})]})}):(0,n.jsx)(n.Fragment,{children:(0,n.jsxs)("div",{className:"status fail",children:[(0,n.jsxs)("div",{className:"pill",children:["FAIL",m.score>0?" ":"",(0,n.jsx)("span",{className:"score",children:ey(m.score)})]}),(0,n.jsx)(el,{lookup:m.namedScores}),(0,n.jsx)("span",{className:"fail-reason",children:null===(o=I[0])||void 0===o?void 0:o.trim().split("\n").map((e,t)=>(0,n.jsxs)(l.Fragment,{children:[e,(0,n.jsx)("br",{})]},t))})]})}),k&&v.prompt&&(0,n.jsxs)("div",{className:"prompt",children:[(0,n.jsx)("span",{className:"pill",children:"Prompt"}),m.prompt]}),(0,n.jsx)(ew,{text:c||F,maxLength:x}),D,U,A]})}function ek(e){let{text:t,maxLength:s,expandedText:r,resourceId:i,className:a}=e,[o,c]=l.useState(!1);return(0,n.jsxs)("div",{className:"".concat(a||""),children:[(0,n.jsx)(ew,{text:t,maxLength:s}),r&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(S.Z,{title:"View prompt",children:(0,n.jsx)("span",{className:"action",onClick:()=>{c(!0)},children:"\uD83D\uDD0E"})}),(0,n.jsx)(ej,{open:o,onClose:()=>{c(!1)},prompt:r}),i&&(0,n.jsx)(S.Z,{title:"View other evals and datasets for this prompt",children:(0,n.jsx)("span",{className:"action",children:(0,n.jsx)(en(),{href:"/prompts/?id=".concat(i),target:"_blank",children:(0,n.jsx)(et.Z,{fontSize:"small"})})})})]})]})}function eS(e){let{maxTextLength:t,columnVisibility:s,wordBreak:i,filterMode:a,failureFilter:o,searchText:c,showStats:d,onFailureFilterToggle:u}=e,{evalId:p,table:m,setTable:x}=T();(0,r.Z)(m,"Table should be defined");let{head:j,body:g}=m,f=j.prompts.map((e,t)=>g.reduce((e,s)=>e+(s.outputs[t].pass?1:0),0)),v=j.prompts.map((e,t)=>g.reduce((e,s)=>{var n,l;return e+((null===(l=s.outputs[t].gradingResult)||void 0===l?void 0:null===(n=l.componentResults)||void 0===n?void 0:n.length)||0)},0)),b=j.prompts.map((e,t)=>g.reduce((e,s)=>{var n;let l=null===(n=s.outputs[t].gradingResult)||void 0===n?void 0:n.componentResults;return e+(l?l.filter(e=>e.pass).length:0)},0)),y=async(e,t,s,n,l)=>{let r=[...g],i={...r[e]},a=[...i.outputs],o=null!=s?s:a[t].pass,c=void 0===n?s?1:0:n||0;a[t].pass=o,a[t].score=c;let d={...a[t].gradingResult||{},pass:o,score:c,reason:"Manual result (overrides all other grading results)",comment:l,assertion:null};a[t].gradingResult=d,i.outputs=a,r[e]=i;let u={head:j,body:r};x(u);try{let e=await fetch("".concat(await (0,eb.b)(),"/api/eval/").concat(p),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({table:u})});if(!e.ok)throw Error("Network response was not ok")}catch(e){console.error("Failed to update table:",e)}},Z=f.reduce((e,t,s,n)=>t>n[e]?s:e,0),w=f[Z],C=(0,K.Cl)(),k=[];j.vars.length>0&&k.push(C.group({id:"vars",header:()=>(0,n.jsx)("span",{className:"font-bold",children:"Variables"}),columns:j.vars.map((e,s)=>C.accessor(e=>e.vars[s],{id:"Variable ".concat(s+1),header:()=>(0,n.jsx)(ek,{text:e,maxLength:t,className:"font-bold"}),cell:e=>(0,n.jsx)(ew,{text:e.getValue(),maxLength:t}),size:50}))})),k.push(C.group({id:"prompts",header:()=>(0,n.jsx)("span",{className:"font-bold",children:"Outputs"}),columns:j.prompts.map((e,s)=>C.accessor(e=>(function(e){if("string"==typeof e){let t=e.startsWith("[PASS]"),s=e;return e.startsWith("[PASS]")?s=s.slice(6):e.startsWith("[FAIL]")&&(s=s.slice(6)),{text:s,pass:t,score:t?1:0}}return e})(e.outputs[s]),{id:"Prompt ".concat(s+1),header:()=>{var l,r,i,c,p,m,x,y;let Z=f[s]&&g.length?(f[s]/g.length*100).toFixed(2):"0.00",C=f[s]===w&&0!==w,k="Prompt ".concat(s+1),S=o[k]||!1,N=d?(0,n.jsxs)("div",{className:"prompt-detail",children:[v[s]?(0,n.jsxs)("div",{children:[(0,n.jsx)("strong",{children:"Asserts:"})," ",b[s],"/",v[s]," passed"]}):null,(null===(l=e.metrics)||void 0===l?void 0:l.totalLatencyMs)?(0,n.jsxs)("div",{children:[(0,n.jsx)("strong",{children:"Avg Latency:"})," ",Intl.NumberFormat(void 0,{maximumFractionDigits:0}).format(e.metrics.totalLatencyMs/g.length)," ","ms"]}):null,(null===(i=e.metrics)||void 0===i?void 0:null===(r=i.tokenUsage)||void 0===r?void 0:r.total)?(0,n.jsxs)("div",{children:[(0,n.jsx)("strong",{children:"Avg Tokens:"})," ",Intl.NumberFormat(void 0,{maximumFractionDigits:0}).format(e.metrics.tokenUsage.total/g.length)]}):null,(null===(c=e.metrics)||void 0===c?void 0:c.totalLatencyMs)&&(null===(m=e.metrics)||void 0===m?void 0:null===(p=m.tokenUsage)||void 0===p?void 0:p.completion)?(0,n.jsxs)("div",{children:[(0,n.jsx)("strong",{children:"Tokens/Sec:"})," ",Intl.NumberFormat(void 0,{maximumFractionDigits:0}).format(e.metrics.tokenUsage.completion/(e.metrics.totalLatencyMs/1e3))]}):null,(null===(x=e.metrics)||void 0===x?void 0:x.cost)?(0,n.jsxs)("div",{children:[(0,n.jsx)("strong",{children:"Cost:"})," $",e.metrics.cost.toPrecision(2)]}):null]}):null,R=j.prompts.every(e=>e.provider===j.prompts[0].provider),E=e.provider?e.provider.split(":"):[],O=E.length>1?(0,n.jsxs)(n.Fragment,{children:[E[0],":",(0,n.jsx)("strong",{children:E.slice(1).join(":")})]}):(0,n.jsx)("strong",{children:e.provider});return(0,n.jsxs)("div",{className:"output-header",children:[(0,n.jsxs)("div",{className:"pills",children:[!R&&e.provider?(0,n.jsx)("div",{className:"provider",children:O}):null,(0,n.jsx)("div",{className:"summary",children:(0,n.jsxs)("div",{className:"highlight ".concat(C?"success":""),children:[(0,n.jsxs)("strong",{children:[Z,"% passing"]})," (",f[s],"/",g.length," cases)"]})}),(null===(y=e.metrics)||void 0===y?void 0:y.namedScores)&&Object.keys(e.metrics.namedScores).length>0?(0,n.jsx)(el,{lookup:e.metrics.namedScores}):null]}),(0,n.jsx)(ek,{className:"prompt-container",text:e.display,expandedText:e.raw,maxLength:t,resourceId:e.id}),N,"failures"===a&&(0,n.jsx)(ee.Z,{sx:{"& .MuiFormControlLabel-label":{fontSize:"0.75rem"}},control:(0,n.jsx)(h.Z,{checked:S,onChange:e=>u(k,e.target.checked)}),label:"Show failures"})]})},cell:e=>(0,n.jsx)(eC,{output:e.getValue(),maxTextLength:t,rowIndex:e.row.index,promptIndex:s,onRating:y,firstOutput:R[e.row.index].outputs[0],filterMode:a,searchText:c,showStats:d})}))}));let S=g.some(e=>e.description);S&&k.splice(0,0,{accessorFn:e=>e.description||"",id:"description",header:()=>(0,n.jsx)("span",{className:"font-bold",children:"Description"}),cell:e=>(0,n.jsx)(ew,{text:String(e.getValue()),maxLength:t}),size:50});let N=Object.keys(s).length>0,R=l.useMemo(()=>{let e=RegExp(c,"i");return g.filter(t=>{let n="failures"===a?t.outputs.some((e,t)=>{let n="Prompt ".concat(t+1);return o[n]&&!e.pass&&(!N||s[n])}):"different"!==a||!t.outputs.every(e=>e.text===t.outputs[0].text),l=!c||t.outputs.some(t=>{var s;let n="".concat(t.text," ").concat(Object.keys(t.namedScores)," ").concat(null===(s=t.gradingResult)||void 0===s?void 0:s.reason);return e.test(n)});return n&&l})},[g,o,a,c,s,N]),E=(0,Q.b7)({data:R,columns:k,columnResizeMode:"onChange",getCoreRowModel:(0,K.sC)(),state:{columnVisibility:s}});return(0,n.jsxs)("div",{children:[(0,n.jsxs)("table",{className:"results-table firefox-fix ".concat(t<=25?"compact":""),style:{wordBreak:i},children:[(0,n.jsx)("thead",{children:E.getHeaderGroups().map(e=>(0,n.jsx)("tr",{className:"header",children:e.headers.map(e=>(0,n.jsxs)("th",{colSpan:e.colSpan,style:{width:e.getSize()},children:[e.isPlaceholder?null:(0,Q.ie)(e.column.columnDef.header,e.getContext()),(0,n.jsx)("div",{onMouseDown:e.getResizeHandler(),onTouchStart:e.getResizeHandler(),className:"resizer ".concat(e.column.getIsResizing()?"isResizing":"")})]},e.id))},e.id))}),(0,n.jsx)("tbody",{children:E.getRowModel().rows.map((e,t)=>{let s=!1;return(0,n.jsx)("tr",{children:e.getVisibleCells().map(e=>{let l=e.column.id.startsWith("Variable")||"description"===e.column.id,r=!l&&!s;return r&&(s=!0),(0,n.jsx)("td",{style:{width:e.column.getSize()},className:"".concat(l?"variable":""," ").concat(0!==t||l?"":"first-prompt-row"," ").concat(r?"first-prompt-col":""),children:(0,Q.ie)(e.column.columnDef.cell,e.getContext())},e.id)})},e.id)})})]}),(0,n.jsx)(ev,{})]})}s(2604);var eN=s(7175);function eR(e){let{open:t,onClose:r}=e,{config:i}=T(),a=l.useRef(null),[o,c]=l.useState(!1),[d,h]=l.useState("");l.useEffect(()=>{t&&(async()=>{let{default:e}=await Promise.resolve().then(s.bind(s,8339));h(e.dump(i))})()},[t,i]);let m=()=>{c(!1),r()};return(0,n.jsxs)(D.Z,{open:t,onClose:m,"aria-labelledby":"config-dialog-title",maxWidth:"md",fullWidth:!0,children:[(0,n.jsx)(U.Z,{id:"config-dialog-title",children:(0,n.jsxs)(u.Z,{display:"flex",justifyContent:"space-between",alignItems:"center",children:[(0,n.jsx)(j.Z,{variant:"h6",style:{flexGrow:1},children:"Config"}),(0,n.jsxs)(u.Z,{children:[(0,n.jsx)(S.Z,{title:"Copy to clipboard",children:(0,n.jsx)(V.Z,{onClick:()=>{a.current&&(a.current.select(),document.execCommand("copy"),c(!0))},children:o?(0,n.jsx)(eo.Z,{}):(0,n.jsx)(eN.Z,{})})}),(0,n.jsx)(S.Z,{title:"Download .yaml",children:(0,n.jsx)(V.Z,{onClick:()=>{let e=new Blob([d],{type:"text/yaml;charset=utf-8"}),t=URL.createObjectURL(e),s=document.createElement("a");s.href=t,s.download="config.yaml",document.body.appendChild(s),s.click(),document.body.removeChild(s),URL.revokeObjectURL(t)},children:(0,n.jsx)(P.Z,{})})})]})]})}),(0,n.jsx)(A.Z,{children:(0,n.jsx)(j.Z,{variant:"body1",component:"div",children:(0,n.jsx)("textarea",{ref:a,readOnly:!0,value:d,style:{width:"100%",minHeight:"400px",fontFamily:"monospace",border:"1px solid #ccc"}})})}),(0,n.jsx)(er.Z,{children:(0,n.jsx)(p.Z,{onClick:m,color:"primary",children:"Close"})})]})}var eE=e=>{let{open:t,onClose:s,shareUrl:r}=e,i=(0,l.useRef)(null),[a,o]=(0,l.useState)(!1),c=()=>{s(),o(!1)};return(0,n.jsxs)(D.Z,{open:t,onClose:c,PaperProps:{style:{minWidth:"min(660px, 100%)"}},children:[(0,n.jsx)(U.Z,{children:"Your eval is ready to share"}),(0,n.jsxs)(A.Z,{children:[(0,n.jsx)(k.Z,{inputRef:i,value:r,fullWidth:!0,InputProps:{readOnly:!0,endAdornment:(0,n.jsx)(V.Z,{onClick:()=>{i.current&&(i.current.select(),document.execCommand("copy"),o(!0))},children:a?(0,n.jsx)(eo.Z,{}):(0,n.jsx)(eN.Z,{})})}}),(0,n.jsx)(ef.Z,{sx:{fontSize:"0.75rem"},children:"Shared URLs are deleted after 2 weeks."})]}),(0,n.jsx)(er.Z,{children:(0,n.jsx)(p.Z,{onClick:c,color:"primary",children:"Close"})})]})},eO=s(33),eP=e=>{let{open:t,onClose:s}=e,{maxTextLength:l,setMaxTextLength:r,wordBreak:i,setWordBreak:a,showInferenceDetails:o,setShowInferenceDetails:c,renderMarkdown:d,setRenderMarkdown:m,prettifyJson:x,setPrettifyJson:g,showPrompts:f,setShowPrompts:v}=T();return(0,n.jsxs)(D.Z,{open:t,onClose:s,fullWidth:!0,maxWidth:"sm",children:[(0,n.jsx)(U.Z,{children:"Table View Settings"}),(0,n.jsxs)(A.Z,{children:[(0,n.jsx)(u.Z,{children:(0,n.jsx)(S.Z,{title:"Forcing line breaks makes it easier to adjust column widths to your liking",children:(0,n.jsx)(ee.Z,{control:(0,n.jsx)(h.Z,{checked:"break-all"===i,onChange:e=>a(e.target.checked?"break-all":"break-word")}),label:"Force line breaks"})})}),(0,n.jsx)(u.Z,{children:(0,n.jsx)(ee.Z,{control:(0,n.jsx)(h.Z,{checked:d,onChange:e=>m(e.target.checked)}),label:"Render model outputs as Markdown"})}),(0,n.jsx)(u.Z,{children:(0,n.jsx)(ee.Z,{control:(0,n.jsx)(h.Z,{checked:x,onChange:e=>g(e.target.checked)}),label:"Prettify JSON outputs"})}),(0,n.jsx)(u.Z,{children:(0,n.jsx)(S.Z,{title:"Show the final prompt that produced the output in each cell.",children:(0,n.jsx)(ee.Z,{control:(0,n.jsx)(h.Z,{checked:f,onChange:e=>v(e.target.checked)}),label:"Show full prompt in output cell"})})}),(0,n.jsx)(u.Z,{children:(0,n.jsx)(S.Z,{title:"Show detailed inference statistics such as latency, tokens used, cost, etc.",children:(0,n.jsx)(ee.Z,{control:(0,n.jsx)(h.Z,{checked:o,onChange:e=>c(e.target.checked)}),label:"Show inference details"})})}),(0,n.jsxs)(u.Z,{maxWidth:"sm",children:[(0,n.jsxs)(j.Z,{mt:2,children:["Max text length: ",l]}),(0,n.jsx)(eO.ZP,{min:25,max:1e3,value:l,onChange:(e,t)=>r(t)})]})]}),(0,n.jsx)(er.Z,{children:(0,n.jsx)(p.Z,{onClick:s,children:"Close"})})]})},eF=s(1938),eI=s(7580);let eT=eI.env.NEXT_PUBLIC_PROMPTFOO_REMOTE_API_BASE_URL||eI.env.NEXT_PUBLIC_PROMPTFOO_REMOTE_BASE_URL||eI.env.PROMPTFOO_REMOTE_API_BASE_URL||"https://api.promptfoo.dev",eL=eI.env.NEXT_PUBLIC_PROMPTFOO_REMOTE_BASE_URL||eI.env.PROMPTFOO_REMOTE_APP_BASE_URL||"https://app.promptfoo.dev";s(6911);let eM=(0,R.Z)(C.Z)(e=>{let{theme:t}=e;return{maxWidth:"100%",flexWrap:"wrap",[t.breakpoints.down("sm")]:{flexDirection:"column"}}});function eD(e){let{recentEvals:t,onRecentEvalSelected:s,defaultEvalId:a}=e,c=(0,o.useRouter)(),{table:C,config:R,setConfig:O,maxTextLength:P,wordBreak:F,showInferenceDetails:I,evalId:M}=T(),{setStateFromConfig:D}=(0,eF.o)(),[U,A]=l.useState({}),[_,W]=l.useState([]),[V,z]=l.useState(""),[B]=(0,E.Nr)(V,1e3),[J,H]=l.useState({}),[G,X]=l.useState("all"),[q,$]=l.useState(!1),[K,Q]=l.useState(""),[ee,et]=l.useState(!1),es=async()=>{et(!0);try{let e=await fetch("".concat(eT,"/api/eval"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:{version:2,createdAt:new Date().toISOString(),results:{table:C},config:R}})}),{id:t}=await e.json(),s="".concat(eL,"/eval/").concat(t);Q(s),$(!0)}catch(e){alert("Sorry, something went wrong.")}finally{et(!1)}},[en,el]=l.useState(!1),[er,ei]=l.useState(!1);(0,r.Z)(C,"Table data must be loaded before rendering ResultsView");let{head:ea}=C,eo=async()=>{(0,r.Z)(R,"Config must be loaded before clicking its description");let e=window.prompt("Enter new description:",R.description);if(null!==e&&e!==R.description){let t={...R,description:e};try{let e=await fetch("".concat(await (0,eb.b)(),"/api/eval/").concat(M),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({config:t})});if(!e.ok)throw Error("Network response was not ok");O(t)}catch(e){console.error("Failed to update table:",e)}}},ec=[...ea.vars.map((e,t)=>({value:"Variable ".concat(t+1),label:"Var ".concat(t+1,": ").concat(ea.vars[t].length>100?ea.vars[t].slice(0,97)+"...":ea.vars[t]),group:"Variables"})),...ea.prompts.map((e,t)=>({value:"Prompt ".concat(t+1),label:"Prompt ".concat(t+1,": ").concat(ea.prompts[t].display.length>100?ea.prompts[t].display.slice(0,97)+"...":ea.prompts[t].display),group:"Prompts"}))];return l.useEffect(()=>{W(ec.map(e=>e.value))},[ea]),(0,n.jsxs)("div",{style:{marginLeft:"1rem",marginRight:"1rem"},children:[(0,n.jsx)(u.Z,{mb:2,sx:{display:"flex",alignItems:"center"},children:(0,n.jsxs)(j.Z,{variant:"h5",sx:{flexGrow:1},children:[(0,n.jsx)("span",{className:"description",onClick:eo,children:(null==R?void 0:R.description)||M})," ",(null==R?void 0:R.description)&&(0,n.jsx)("span",{className:"description-filepath",children:M})]})}),(0,n.jsx)(u.Z,{py:"md",children:(0,n.jsxs)(eM,{direction:"row",spacing:4,alignItems:"center",children:[(0,n.jsx)(u.Z,{children:t&&t.length>0&&(0,n.jsx)(x.Z,{sx:{m:1,minWidth:200},size:"small",children:(0,n.jsx)(d.Z,{size:"small",options:t,renderOption:(e,t)=>(0,l.createElement)("li",{...e,key:t.id},t.label),style:{width:350},renderInput:e=>(0,n.jsx)(k.Z,{...e,label:"Eval run",variant:"outlined"}),defaultValue:t.find(e=>e.id===a)||t[0],onChange:(e,t)=>{t&&t.id&&s(t.id)},disableClearable:!0})})}),(0,n.jsx)(u.Z,{children:(0,n.jsxs)(x.Z,{sx:{m:1,minWidth:200,maxWidth:350},size:"small",children:[(0,n.jsx)(g.Z,{id:"visible-columns-label",children:"Columns"}),(0,n.jsx)(y.Z,{labelId:"visible-columns-label",id:"visible-columns",multiple:!0,value:_,onChange:e=>{let{target:{value:t}}=e;W("string"==typeof t?t.split(","):t);let s=[...ea.vars.map((e,t)=>"Variable ".concat(t+1)),...ea.prompts.map((e,t)=>"Prompt ".concat(t+1))],n={};s.forEach(e=>{n[e]=("string"==typeof t?t.split(","):t).includes(e)}),A(n)},input:(0,n.jsx)(b.Z,{label:"Visible columns"}),renderValue:e=>e.join(", "),children:ec.map(e=>(0,n.jsxs)(v.Z,{dense:!0,value:e.value,children:[(0,n.jsx)(h.Z,{checked:_.indexOf(e.value)>-1}),(0,n.jsx)(f.Z,{primary:e.label})]},e.value))})]})}),(0,n.jsx)(u.Z,{children:(0,n.jsxs)(x.Z,{sx:{minWidth:180},size:"small",children:[(0,n.jsx)(g.Z,{id:"failure-filter-mode-label",children:"Display"}),(0,n.jsxs)(y.Z,{labelId:"filter-mode-label",id:"filter-mode",value:G,onChange:e=>{let t=e.target.value;X(t);let s={};ea.prompts.forEach((e,n)=>{s["Prompt ".concat(n+1)]="failures"===t}),H(s)},label:"Filter",children:[(0,n.jsx)(v.Z,{value:"all",children:"Show all results"}),(0,n.jsx)(v.Z,{value:"failures",children:"Show failures only"}),(0,n.jsx)(v.Z,{value:"different",children:"Show different only"})]})]})}),(0,n.jsx)(u.Z,{children:(0,n.jsx)(k.Z,{sx:{minWidth:180},size:"small",label:"Search",placeholder:"Text or regex",value:V,onChange:e=>{z(e.target.value)}})}),(0,n.jsx)(u.Z,{flexGrow:1}),(0,n.jsx)(u.Z,{display:"flex",justifyContent:"flex-end",children:(0,n.jsxs)(eM,{direction:"row",spacing:2,children:[(0,n.jsx)(S.Z,{title:"Edit table view settings",children:(0,n.jsx)(p.Z,{color:"primary",onClick:()=>ei(!0),startIcon:(0,n.jsx)(Z.Z,{}),children:"Table Settings"})}),R&&(0,n.jsx)(S.Z,{title:"View the configuration that defines this eval",children:(0,n.jsx)(p.Z,{color:"primary",onClick:()=>el(!0),startIcon:(0,n.jsx)(N.Z,{}),children:"View YAML"})}),R&&(0,n.jsx)(S.Z,{title:"Edit eval",children:(0,n.jsx)(p.Z,{color:"primary",onClick:()=>{D(R),c.push("/setup/")},startIcon:(0,n.jsx)(m.Z,{}),children:"Edit Eval"})}),R&&(0,n.jsx)(L,{}),(null==R?void 0:R.sharing)&&(0,n.jsx)(S.Z,{title:"Generate a unique URL that others can access",children:(0,n.jsx)(p.Z,{color:"primary",onClick:es,disabled:ee,startIcon:ee?(0,n.jsx)(i.Z,{size:16}):(0,n.jsx)(w.Z,{}),children:"Share"})})]})})]})}),(0,n.jsx)(Y,{columnVisibility:U}),(0,n.jsx)(eS,{maxTextLength:P,columnVisibility:U,wordBreak:F,showStats:I,filterMode:G,failureFilter:J,searchText:B,onFailureFilterToggle:(e,t)=>{H(s=>({...s,[e]:t}))}}),(0,n.jsx)(eR,{open:en,onClose:()=>el(!1)}),(0,n.jsx)(eE,{open:q,onClose:()=>$(!1),shareUrl:K}),(0,n.jsx)(eP,{open:er,onClose:()=>ei(!1)})]})}var eU=s(279);async function eA(){let e=(0,c.createClientComponentClient)(),{data:{user:t}}=await e.auth.getUser();(0,r.Z)(t,"User not logged in");let{data:s,error:n}=await e.from("EvaluationResult").select("id, createdAt").eq("user_id",t.id).order("createdAt",{ascending:!1}).limit(100);return s||[]}async function e_(e){let t=(0,c.createClientComponentClient)(),{data:s,error:n}=await t.from("EvaluationResult").select("*").eq("id",e).single();return s}function eW(e){var t;let{fetchId:s,preloadedData:c,recentEvals:d,defaultEvalId:u}=e,p=(0,o.useRouter)(),{table:h,setTable:m,setConfig:x,setEvalId:j}=T(),[g,f]=l.useState(!1),[v,b]=l.useState(!1),[y,Z]=l.useState(d||[]),w=async()=>{let e=await fetch("".concat(await (0,eb.b)(),"/api/results"),{cache:"no-store"}),t=await e.json();return Z(t.data),t.data},C=l.useCallback(async e=>{let t=await fetch("".concat(await (0,eb.b)(),"/api/results/").concat(e),{cache:"no-store"}),s=await t.json();m(s.data.results.table),x(s.data.config),j(e)},[m,x,j]),k=async e=>{eU.Ox?(f(!1),p.push("/eval/remote:".concat(encodeURIComponent(e)))):p.push("/eval/?evalId=".concat(encodeURIComponent(e)))},[S,N]=l.useState(u||(null===(t=y[0])||void 0===t?void 0:t.id)),R=(0,o.useSearchParams)(),E=R?R.get("evalId"):null;return(l.useEffect(()=>{if(E){let e=async()=>{await C(E),f(!0),N(E),w()};e()}else if(c){var e;m(null===(e=c.data.results)||void 0===e?void 0:e.table),x(c.data.config),f(!0)}else if(s){let e=async()=>{var e;let t="".concat(eT,"/api/eval/").concat(s);console.log("Fetching eval from remote server",t);let n=await fetch(t);if(!n.ok){b(!0);return}let l=await n.json();m(null===(e=l.data.results)||void 0===e?void 0:e.table),x(l.data.config),f(!0)};e()}else if(eU.T8)(0,eb.b)().then(e=>{let t=(0,a.io)(e);return t.on("init",e=>{console.log("Initialized socket connection",e),f(!0),m(null==e?void 0:e.results.table),x(null==e?void 0:e.config),w().then(e=>{var t,s;N(null===(t=e[0])||void 0===t?void 0:t.id),j(null===(s=e[0])||void 0===s?void 0:s.id)})}),t.on("update",e=>{console.log("Received data update",e),m(e.results.table),x(e.config),w().then(e=>{var t;let s=null===(t=e[0])||void 0===t?void 0:t.id;s&&(N(s),j(s))})}),()=>{t.disconnect()}});else if(eU.Ox)eA().then(e=>{Z(e.map(e=>({id:e.id,label:e.createdAt}))),e.length>0&&e_(e[0].id).then(t=>{(0,r.Z)(t,"Eval not found");let s=t.results,n=t.config;N(e[0].id),m(s.table),x(n),f(!0)})});else{let e=async()=>{let e=await w();if(!(e.length>0))return(0,n.jsx)("div",{className:"notice",children:"No evals yet. Share some evals to this server and they will appear here."});{let t=await (0,eb.b)(),s=e[0].id,n=await fetch("".concat(t,"/api/results/").concat(s)),l=await n.json();m(l.data.results.table),x(l.data.config),f(!0),N(s),j(s)}};e()}},[s,m,x,j,C,c,N,E]),v)?(0,n.jsx)("div",{className:"notice",children:"404 Eval not found"}):g&&h?(0,n.jsx)(eD,{defaultEvalId:S,recentEvals:y,onRecentEvalSelected:k}):(0,n.jsxs)("div",{className:"notice",children:[(0,n.jsx)("div",{children:(0,n.jsx)(i.Z,{size:22})}),(0,n.jsx)("div",{children:"Loading eval data"})]})}s(5038)},279:function(e,t,s){"use strict";s.d(t,{Ox:function(){return r},T8:function(){return l},eA:function(){return i}});var n=s(7580);let l=!n.env.NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER,r=!!n.env.NEXT_PUBLIC_PROMPTFOO_USE_SUPABASE,i=""},1938:function(e,t,s){"use strict";s.d(t,{o:function(){return r}});var n=s(4660),l=s(4810);let r=(0,n.Ue)()((0,l.tJ)((e,t)=>({env:{},testCases:[],description:"",providers:[],prompts:[],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}),setStateFromConfig:t=>{let s={};t.description&&(s.description=t.description||""),t.tests&&(s.testCases=t.tests),t.providers&&(s.providers=t.providers),t.prompts&&("string"==typeof t.prompts?s.prompts=[t.prompts]:Array.isArray(t.prompts)?s.prompts=t.prompts.filter(e=>!e.endsWith(".txt")&&!e.endsWith(".json")&&!e.endsWith(".yaml")):console.warn("Invalid prompts config",t.prompts)),e(s)},getTestSuite:()=>{let{description:e,testCases:s,providers:n,prompts:l,env:r}=t();return{env:r,description:e,providers:n,prompts:l,tests:s}}}),{name:"promptfoo",skipHydration:!0}))},8715:function(){},5038:function(){},2604:function(){},6911:function(){},5777:function(){}}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[670],{2810:function(e,t,s){"use strict";let n,l;async function r(){if(n||(l||(l=fetch("/api/config").then(e=>e.json()).then(e=>n=e.apiBaseUrl)),await l),void 0===n)throw Error("API base URL is undefined");return n}s.d(t,{b:function(){return r}})},9670:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return eW}});var n=s(7437),l=s(2265),r=s(2130),i=s(6882),a=s(3388),o=s(4033),c=s(3082),d=s(8440),u=s(6507),p=s(5551),h=s(7760),m=s(3391),x=s(4081),j=s(3226),g=s(819),f=s(8212),v=s(5507),b=s(923),y=s(654),Z=s(3295),w=s(2467),C=s(3457),k=s(1975),S=s(8276),N=s(9605),R=s(9190),P=s(2053),E=s(8339),O=s(2481),F=s(3375),I=s(4660);let L=(0,I.Ue)(e=>({evalId:null,setEvalId:t=>e(()=>({evalId:t})),table:null,setTable:t=>e(()=>({table:t})),config:null,setConfig:t=>e(()=>({config:t})),maxTextLength:250,setMaxTextLength:t=>e(()=>({maxTextLength:t})),wordBreak:"break-word",setWordBreak:t=>e(()=>({wordBreak:t})),showInferenceDetails:!0,setShowInferenceDetails:t=>e(()=>({showInferenceDetails:t})),renderMarkdown:!1,setRenderMarkdown:t=>e(()=>({renderMarkdown:t})),prettifyJson:!1,setPrettifyJson:t=>e(()=>({prettifyJson:t})),showPrompts:!1,setShowPrompts:t=>e(()=>({showPrompts:t}))}));var T=function(){let{table:e,config:t,evalId:s}=L(),[r,i]=l.useState(null),a=(e,t)=>{let s=URL.createObjectURL(e),n=document.createElement("a");n.href=s,n.download=t,document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(s)};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(S.Z,{title:"Download options",children:(0,n.jsx)(p.Z,{color:"primary","aria-controls":"download-menu","aria-haspopup":"true",onClick:e=>{i(e.currentTarget)},startIcon:(0,n.jsx)(O.Z,{}),children:"Download"})}),(0,n.jsxs)(F.Z,{id:"download-menu",anchorEl:r,keepMounted:!0,open:!!r,onClose:()=>i(null),children:[(0,n.jsx)(v.Z,{onClick:()=>{i(null);let e=E.default.dump(t),s=new Blob([e],{type:"text/yaml;charset=utf-8"});a(s,"promptfooconfig.yaml")},children:"YAML config"}),(0,n.jsx)(v.Z,{onClick:()=>{if(i(null),!e){alert("No table data");return}let t=new Blob([JSON.stringify(e,null,2)],{type:"application/json"});a(t,"".concat(s,"-table.json"))},children:"Table JSON"}),(0,n.jsx)(v.Z,{onClick:()=>{if(i(null),!e){alert("No table data");return}let t=e.body.map((t,s)=>({chosen:t.outputs.filter(e=>e.pass).map(e=>e.text),rejected:t.outputs.filter(e=>!e.pass).map(e=>e.text),vars:t.test.vars,providers:e.head.prompts.map(e=>e.provider),prompts:e.head.prompts.map(e=>e.display)})),n=new Blob([JSON.stringify(t,null,2)],{type:"application/json"});a(n,"".concat(s,"-dpo.json"))},children:"DPO JSON"})]})]})},M=s(6704),D=s(9394),U=s(1797),A=s(6337),_=s(1101),W=s(9872),V=s(2653),z=s(3533),B=s(4740);let J=["#fd7f6f","#7eb0d5","#b2e061","#bd7ebe","#ffb55a","#ffee65","#beb9db","#fdcce5","#8bd3c7"];function H(e){let{table:t}=e,s=(0,l.useRef)(null),r=(0,l.useRef)(null);return(0,l.useEffect)(()=>{if(!s.current)return;r.current&&r.current.destroy();let e=t.body.flatMap(e=>e.outputs.map(e=>e.score)),n=Math.min(...e),l=(Math.ceil(Math.max(...e))-Math.floor(n))/10,i=Array.from({length:11},(e,t)=>parseFloat((Math.floor(n)+t*l).toFixed(2))),a=t.head.prompts.map((e,s)=>{let n=t.body.flatMap(e=>e.outputs[s].score),r=i.map(e=>n.filter(t=>t>=e&&t<e+l).length);return{label:"Prompt ".concat(s+1),data:r,backgroundColor:J[s%J.length]}});r.current=new M.kL(s.current,{type:"bar",data:{labels:i,datasets:a},options:{animation:!1,plugins:{title:{display:!0,text:"Score Distribution"},legend:{display:!1},tooltip:{callbacks:{title:function(e){let t=e[0].datasetIndex;return"Prompt ".concat(t+1)},label:function(e){let t=e.dataIndex,s=i[t],n=i[t+1];return n?"".concat(s," <= score < ").concat(n):"".concat(s," <= score")}}}}}})},[t]),(0,n.jsx)("canvas",{ref:s,style:{maxHeight:"300px"}})}function G(e){let{table:t}=e,s=(0,l.useRef)(null),r=(0,l.useRef)(null);return(0,l.useEffect)(()=>{if(!s.current)return;r.current&&r.current.destroy();let e=t.head.prompts.map((e,s)=>{let n=t.body.flatMap(e=>e.outputs[s]),l=n.filter(e=>e.pass).length,r=l/n.length*100;return{label:"Prompt ".concat(s+1),data:[r],backgroundColor:J[s%J.length]}});r.current=new M.kL(s.current,{type:"bar",data:{labels:["Pass Rate (%)"],datasets:e},options:{animation:!1,plugins:{title:{display:!0,text:"Pass rate"},legend:{display:!0}}}})},[t]),(0,n.jsx)("canvas",{ref:s,style:{maxHeight:"300px"}})}function X(e){let{table:t}=e,s=(0,l.useRef)(null),r=(0,l.useRef)(null),[i,a]=(0,l.useState)(0),[o,c]=(0,l.useState)(1),[d,u]=(0,l.useState)(!1);return(0,l.useEffect)(()=>{if(!s.current)return;r.current&&r.current.destroy();let e=t.body.flatMap(e=>e.outputs.map(e=>e.score)),n=Math.min(...e),l=Math.max(...e),a=t.body.map(e=>{let t=e.outputs[i].score,s=e.outputs[o].score;return{x:t,y:s,backgroundColor:s>t?"green":s<t?"red":"gray"}});r.current=new M.kL(s.current,{type:"scatter",data:{datasets:[{data:a,backgroundColor:a.map(e=>e.backgroundColor)},{type:"line",data:[{x:n,y:n},{x:l,y:l}],borderColor:"gray",borderWidth:1,borderDash:[5,5],pointRadius:0}]},options:{animation:!1,plugins:{legend:{display:!1},tooltip:{callbacks:{label:function(e){let s=t.body[e.dataIndex],n=s.outputs[0].text,l=s.outputs[1].text;return n.length>30&&(n=n.substring(0,30)+"..."),l.length>30&&(l=l.substring(0,30)+"..."),"Output 1: ".concat(n,"\nOutput 2: ").concat(l)}}}},scales:{x:{title:{display:!0,text:"Prompt ".concat(i+1," Score")}},y:{title:{display:!0,text:"Prompt ".concat(o+1," Score")}}}}})},[t,i,o]),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(D.Z,{open:d,onClose:()=>u(!1),children:[(0,n.jsx)(U.Z,{children:"Compare prompt outputs"}),(0,n.jsxs)(A.Z,{children:[(0,n.jsx)(x.Z,{sx:{m:1,minWidth:120},children:(0,n.jsx)(y.Z,{value:i,onChange:e=>a(Number(e.target.value)),children:t.head.prompts.map((e,t)=>(0,n.jsxs)(v.Z,{value:t,children:["Prompt ",t+1]},t))})}),(0,n.jsx)(x.Z,{sx:{m:1,minWidth:120},children:(0,n.jsx)(y.Z,{value:o,onChange:e=>c(Number(e.target.value)),children:t.head.prompts.map((e,t)=>(0,n.jsxs)(v.Z,{value:t,children:["Prompt ",t+1]},t))})})]})]}),(0,n.jsx)("canvas",{ref:s,style:{maxHeight:"300px",cursor:"pointer"},onClick:()=>u(!0)})]})}function Y(e){let{columnVisibility:t}=e,s=(0,_.Z)();M.kL.defaults.color="dark"===s.palette.mode?"#aaa":"#666";let[r,i]=(0,l.useState)(!0),{table:a}=L();if(!a||!r||a.head.prompts.length<2)return null;let o=a.body.flatMap(e=>e.outputs.map(e=>e.score));return 1===new Set(o).size?null:(0,n.jsx)(B.SV,{fallback:null,children:(0,n.jsxs)(W.Z,{style:{position:"relative",padding:s.spacing(3)},children:[(0,n.jsx)(V.Z,{style:{position:"absolute",right:0,top:0},onClick:()=>i(!1),children:(0,n.jsx)(z.Z,{})}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",width:"100%"},children:[(0,n.jsx)("div",{style:{width:"33%"},children:(0,n.jsx)(G,{table:a})}),(0,n.jsx)("div",{style:{width:"33%"},children:(0,n.jsx)(H,{table:a})}),(0,n.jsx)("div",{style:{width:"33%"},children:(0,n.jsx)(X,{table:a})})]})]})})}M.kL.register(M.vn,M.ST,M.ho,M.uw,M.f$,M.ZL,M.jn,M.od,M.u,M.wL);var q=s(9116);s(5777);var $=s(3425),K=s(7660),Q=s(3216),ee=s(182),et=s(5391),es=s(1396),en=s.n(es);s(8715);var el=e=>{let{lookup:t}=e;return t&&Object.keys(t).length?(0,n.jsx)("div",{className:"custom-metric-container",children:Object.entries(t).map(e=>{let[t,s]=e;return t&&s?(0,n.jsxs)("span",{children:[t,": ",s.toFixed(2)]},t):null})}):null},er=s(2834),ei=s(5446),ea=s(9329),eo=s(4719),ec=s(3701),ed=s(9279),eu=s(666),ep=s(5795),eh=s(6988),em=s(4147);function ex(e){let{gradingResults:t}=e;return t?(0,n.jsxs)(u.Z,{mt:2,children:[(0,n.jsx)(j.Z,{variant:"subtitle1",children:"Assertions"}),(0,n.jsx)(ep.Z,{children:(0,n.jsxs)(ec.Z,{children:[(0,n.jsx)(eh.Z,{children:(0,n.jsxs)(em.Z,{children:[(0,n.jsx)(eu.Z,{style:{fontWeight:"bold"},children:"Pass"}),(0,n.jsx)(eu.Z,{style:{fontWeight:"bold"},children:"Score"}),(0,n.jsx)(eu.Z,{style:{fontWeight:"bold"},children:"Type"}),(0,n.jsx)(eu.Z,{style:{fontWeight:"bold"},children:"Value"}),(0,n.jsx)(eu.Z,{style:{fontWeight:"bold"},children:"Reason"})]})}),(0,n.jsx)(ed.Z,{children:t.map((e,t)=>{var s,l;return(0,n.jsxs)(em.Z,{children:[(0,n.jsx)(eu.Z,{children:e.pass?"✅":"❌"}),(0,n.jsx)(eu.Z,{children:e.score.toFixed(2)}),(0,n.jsx)(eu.Z,{children:(null===(s=e.assertion)||void 0===s?void 0:s.type)||""}),(0,n.jsx)(eu.Z,{style:{whiteSpace:"pre-wrap"},children:(null===(l=e.assertion)||void 0===l?void 0:l.value)?String(e.assertion.value):"-"}),(0,n.jsx)(eu.Z,{style:{whiteSpace:"pre-wrap"},children:e.reason})]},t)})})]})})]}):null}function ej(e){let{open:t,onClose:s,prompt:r,provider:i,output:a,gradingResults:o}=e,[c,d]=(0,l.useState)(!1);(0,l.useEffect)(()=>{d(!1)},[r]);let h=async e=>{await navigator.clipboard.writeText(e),d(!0)};return(0,n.jsxs)(D.Z,{open:t,onClose:s,fullWidth:!0,maxWidth:"lg",children:[(0,n.jsxs)(U.Z,{children:["Details",i&&": ".concat(i)]}),(0,n.jsxs)(A.Z,{children:[(0,n.jsxs)(u.Z,{mb:2,children:[(0,n.jsx)(j.Z,{variant:"subtitle1",style:{marginBottom:"1rem"},children:"Prompt"}),(0,n.jsx)(ei.u,{readOnly:!0,value:r,style:{width:"100%",padding:"0.75rem"},maxRows:20}),(0,n.jsx)(V.Z,{onClick:()=>h(r),style:{position:"absolute",right:"10px",top:"10px"},children:c?(0,n.jsx)(eo.Z,{}):(0,n.jsx)(ea.Z,{})})]}),a&&(0,n.jsxs)(u.Z,{my:2,children:[(0,n.jsx)(j.Z,{variant:"subtitle1",style:{marginBottom:"1rem",marginTop:"1rem"},children:"Output"}),(0,n.jsx)(ei.u,{readOnly:!0,maxRows:20,value:a,style:{width:"100%",padding:"0.75rem"}})]}),(0,n.jsx)(ex,{gradingResults:o})]}),(0,n.jsx)(er.Z,{children:(0,n.jsx)(p.Z,{onClick:s,children:"Close"})})]})}var eg=s(9396),ef=s(4173),ev=function(){let e=(0,_.Z)(),[t,s]=l.useState(!1),r=()=>{s(!1)};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{style:{textAlign:"center",marginTop:20,marginBottom:40},children:(0,n.jsx)(p.Z,{variant:"text",color:"primary",startIcon:(0,n.jsx)(eg.Z,{}),onClick:()=>{s(!0)},children:"Generate test cases"})}),(0,n.jsxs)(D.Z,{open:t,onClose:r,children:[(0,n.jsx)(U.Z,{children:"Run on Command Line"}),(0,n.jsx)(A.Z,{children:(0,n.jsxs)(ef.Z,{children:[(0,n.jsx)("p",{children:"This feature is in beta. UI coming soon."}),(0,n.jsxs)("p",{children:["Run"," ",(0,n.jsx)(u.Z,{component:"code",sx:{backgroundColor:"dark"===e.palette.mode?"#424242":"#f0f0f0",padding:"2px 4px",borderRadius:"4px"},children:"promptfoo generate dataset"}),"to generate test cases on the command line."]})]})}),(0,n.jsx)(er.Z,{children:(0,n.jsx)(p.Z,{onClick:r,color:"primary",children:"Close"})})]})]})},eb=s(2810);function ey(e){return null===e||0===e||1===e?"":"(".concat(e.toFixed(2),")")}function eZ(e){return"string"==typeof e||"number"==typeof e?e.toString().length:Array.isArray(e)?e.reduce((e,t)=>e+eZ(t),0):l.isValidElement(e)&&e.props.children?l.Children.toArray(e.props.children).reduce((e,t)=>e+eZ(t),0):0}function ew(e){let t,{text:s,maxLength:r}=e,[i,a]=l.useState(!0),o=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if("string"==typeof e||"number"==typeof e){let s=e.toString();return s.slice(0,r-t)}if(Array.isArray(e)){let s=[],n=t;for(let t of e){let e=eZ(t);if(n+e>r){s.push(o(t,n));break}s.push(t),n+=e}return s}if(l.isValidElement(e)&&e.props.children){let s=eZ(e.props.children);if(s>r-t)return l.cloneElement(e,{...e.props,children:o(e.props.children,t)})}return e};t=l.isValidElement(s)||"string"==typeof s?s:JSON.stringify(s);let c=i?o(t):t,d=eZ(t)>r;return(0,n.jsxs)("div",{style:{cursor:d?"pointer":"normal"},onClick:()=>{a(!i)},children:[c,i&&eZ(t)>r&&(0,n.jsx)("span",{children:"..."})]})}function eC(e){var t,s,r,i,a,o;let c,d,u,p,h,{output:m,maxTextLength:x,rowIndex:j,promptIndex:g,onRating:f,firstOutput:v,filterMode:b,searchText:y,showStats:Z}=e,{renderMarkdown:w,prettifyJson:C,showPrompts:k}=L(),[N,R]=l.useState(!1),[P,E]=l.useState(!1),O=()=>E(!P),F="string"==typeof m.text?m.text:JSON.stringify(m.text),I=[];if(F.startsWith("[IMAGE]")){let e=F.slice(7).trim();c=(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("img",{loading:"lazy",src:e,alt:m.prompt,onClick:O}),P&&(0,n.jsx)("div",{className:"lightbox",onClick:O,children:(0,n.jsx)("img",{src:e,alt:m.prompt})})]})}else!m.pass&&F.includes("---")?F=(I=F.split("---")).slice(1).join("---"):I=[F];if("different"===b&&v){let e,t="string"==typeof v.text?v.text:JSON.stringify(v.text);t.includes("---")&&(t=t.split("---").slice(1).join("---"));try{JSON.parse(t),JSON.parse(F),e=(0,q.CT)(t,F)}catch(s){e=t.includes(". ")&&F.includes(". ")?(0,q.SY)(t,F):(0,q.NV)(t,F)}c=(0,n.jsx)(n.Fragment,{children:e.map((e,t)=>e.added?(0,n.jsx)("ins",{children:e.value},t):e.removed?(0,n.jsx)("del",{children:e.value},t):(0,n.jsx)("span",{children:e.value},t))})}if(y){let e;let t=RegExp(y,"gi"),s=[];for(;null!==(e=t.exec(F));)s.push({start:e.index,end:t.lastIndex}),t.lastIndex;c=(0,n.jsx)(n.Fragment,{children:s.length>0?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{children:F.substring(0,s[0].start)},"text-before"),s.map((e,t)=>(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"search-highlight",children:F.substring(e.start,e.end)},"match-"+t),(0,n.jsx)("span",{children:F.substring(e.end,s[t+1]?s[t+1].start:F.length)},"text-after-"+t)]}))]}):(0,n.jsx)("span",{children:F},"no-match")})}else if(w)c=(0,n.jsx)($.U,{children:F});else if(C)try{c=(0,n.jsx)("pre",{children:JSON.stringify(JSON.parse(F),null,2)})}catch(e){}let T=e=>{var t;f(j,g,e,void 0,null===(t=m.gradingResult)||void 0===t?void 0:t.comment)},M=()=>{var e;let t=prompt("Comment:",(null===(e=m.gradingResult)||void 0===e?void 0:e.comment)||"");null!=t&&f(j,g,void 0,void 0,t)};if(null===(t=m.tokenUsage)||void 0===t?void 0:t.completion){u=(0,n.jsxs)("span",{children:[Intl.NumberFormat(void 0,{maximumFractionDigits:0}).format(m.latencyMs)," ms"]});let e=m.tokenUsage.completion/(m.latencyMs/1e3);p=(0,n.jsx)("span",{children:Intl.NumberFormat(void 0,{maximumFractionDigits:0}).format(e)})}m.cost&&(h=(0,n.jsxs)("span",{children:["$",m.cost.toPrecision(2)]})),(null===(s=m.tokenUsage)||void 0===s?void 0:s.cached)?d=(0,n.jsxs)("span",{children:[Intl.NumberFormat(void 0,{maximumFractionDigits:0}).format(m.tokenUsage.cached)," ","(cached)"]}):(null===(r=m.tokenUsage)||void 0===r?void 0:r.total)&&(d=(0,n.jsx)("span",{children:Intl.NumberFormat(void 0,{maximumFractionDigits:0}).format(m.tokenUsage.total)}));let D=(null===(i=m.gradingResult)||void 0===i?void 0:i.comment)?(0,n.jsx)("div",{className:"comment",onClick:M,children:m.gradingResult.comment}):null,U=Z?(0,n.jsxs)("div",{className:"cell-detail",children:[d&&(0,n.jsxs)("div",{className:"stat-item",children:[(0,n.jsx)("strong",{children:"Tokens:"})," ",d]}),u&&(0,n.jsxs)("div",{className:"stat-item",children:[(0,n.jsx)("strong",{children:"Latency:"})," ",u]}),p&&(0,n.jsxs)("div",{className:"stat-item",children:[(0,n.jsx)("strong",{children:"Tokens/Sec:"})," ",p]}),h&&(0,n.jsxs)("div",{className:"stat-item",children:[(0,n.jsx)("strong",{children:"Cost:"})," ",h]})]}):null,A=(0,n.jsxs)("div",{className:"cell-actions",children:[m.prompt&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"action",onClick:()=>{R(!0)},children:(0,n.jsx)(S.Z,{title:"View ouput and test details",children:(0,n.jsx)("span",{children:"\uD83D\uDD0E"})})}),(0,n.jsx)(ej,{open:N,onClose:()=>{R(!1)},prompt:m.prompt,provider:m.provider,gradingResults:null===(a=m.gradingResult)||void 0===a?void 0:a.componentResults,output:F})]}),(0,n.jsx)("span",{className:"action",onClick:()=>T(!0),children:(0,n.jsx)(S.Z,{title:"Mark test passed (score 1.0)",children:(0,n.jsx)("span",{children:"\uD83D\uDC4D"})})}),(0,n.jsx)("span",{className:"action",onClick:()=>T(!1),children:(0,n.jsx)(S.Z,{title:"Mark test failed (score 0.0)",children:(0,n.jsx)("span",{children:"\uD83D\uDC4E"})})}),(0,n.jsx)("span",{className:"action",onClick:()=>{let e=prompt("Set test score (0.0 - 1.0):",String(m.score));if(null!==e){let s=parseFloat(e);if(!isNaN(s)&&s>=0&&s<=1){var t;f(j,g,void 0,s,null===(t=m.gradingResult)||void 0===t?void 0:t.comment)}else alert("Invalid score. Please enter a value between 0.0 and 1.0.")}},children:(0,n.jsx)(S.Z,{title:"Set test score",children:(0,n.jsx)("span",{children:"\uD83D\uDD22"})})}),(0,n.jsx)("span",{className:"action",onClick:M,children:(0,n.jsx)(S.Z,{title:"Edit comment",children:(0,n.jsx)("span",{children:"✏️"})})})]});return(0,n.jsxs)("div",{className:"cell",children:[m.pass?(0,n.jsx)(n.Fragment,{children:(0,n.jsxs)("div",{className:"status pass",children:[(0,n.jsxs)("div",{className:"pill",children:["PASS ",(0,n.jsx)("span",{className:"score",children:ey(m.score)})]}),(0,n.jsx)(el,{lookup:m.namedScores})]})}):(0,n.jsx)(n.Fragment,{children:(0,n.jsxs)("div",{className:"status fail",children:[(0,n.jsxs)("div",{className:"pill",children:["FAIL",m.score>0?" ":"",(0,n.jsx)("span",{className:"score",children:ey(m.score)})]}),(0,n.jsx)(el,{lookup:m.namedScores}),(0,n.jsx)("span",{className:"fail-reason",children:null===(o=I[0])||void 0===o?void 0:o.trim().split("\n").map((e,t)=>(0,n.jsxs)(l.Fragment,{children:[e,(0,n.jsx)("br",{})]},t))})]})}),k&&v.prompt&&(0,n.jsxs)("div",{className:"prompt",children:[(0,n.jsx)("span",{className:"pill",children:"Prompt"}),m.prompt]}),(0,n.jsx)(ew,{text:c||F,maxLength:x}),D,U,A]})}function ek(e){let{text:t,maxLength:s,expandedText:r,resourceId:i,className:a}=e,[o,c]=l.useState(!1);return(0,n.jsxs)("div",{className:"".concat(a||""),children:[(0,n.jsx)(ew,{text:t,maxLength:s}),r&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(S.Z,{title:"View prompt",children:(0,n.jsx)("span",{className:"action",onClick:()=>{c(!0)},children:"\uD83D\uDD0E"})}),(0,n.jsx)(ej,{open:o,onClose:()=>{c(!1)},prompt:r}),i&&(0,n.jsx)(S.Z,{title:"View other evals and datasets for this prompt",children:(0,n.jsx)("span",{className:"action",children:(0,n.jsx)(en(),{href:"/prompts/?id=".concat(i),target:"_blank",children:(0,n.jsx)(et.Z,{fontSize:"small"})})})})]})]})}function eS(e){let{maxTextLength:t,columnVisibility:s,wordBreak:i,filterMode:a,failureFilter:o,searchText:c,showStats:d,onFailureFilterToggle:u}=e,{evalId:p,table:m,setTable:x}=L();(0,r.Z)(m,"Table should be defined");let{head:j,body:g}=m,f=j.prompts.map((e,t)=>g.reduce((e,s)=>e+(s.outputs[t].pass?1:0),0)),v=j.prompts.map((e,t)=>g.reduce((e,s)=>{var n,l;return e+((null===(l=s.outputs[t].gradingResult)||void 0===l?void 0:null===(n=l.componentResults)||void 0===n?void 0:n.length)||0)},0)),b=j.prompts.map((e,t)=>g.reduce((e,s)=>{var n;let l=null===(n=s.outputs[t].gradingResult)||void 0===n?void 0:n.componentResults;return e+(l?l.filter(e=>e.pass).length:0)},0)),y=async(e,t,s,n,l)=>{let r=[...g],i={...r[e]},a=[...i.outputs],o=null!=s?s:a[t].pass,c=void 0===n?s?1:0:n||0;a[t].pass=o,a[t].score=c;let d={...a[t].gradingResult||{},pass:o,score:c,reason:"Manual result (overrides all other grading results)",comment:l,assertion:null};a[t].gradingResult=d,i.outputs=a,r[e]=i;let u={head:j,body:r};x(u);try{let e=await fetch("".concat(await (0,eb.b)(),"/api/eval/").concat(p),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({table:u})});if(!e.ok)throw Error("Network response was not ok")}catch(e){console.error("Failed to update table:",e)}},Z=f.reduce((e,t,s,n)=>t>n[e]?s:e,0),w=f[Z],C=(0,K.Cl)(),k=[];j.vars.length>0&&k.push(C.group({id:"vars",header:()=>(0,n.jsx)("span",{className:"font-bold",children:"Variables"}),columns:j.vars.map((e,s)=>C.accessor(e=>e.vars[s],{id:"Variable ".concat(s+1),header:()=>(0,n.jsx)(ek,{text:e,maxLength:t,className:"font-bold"}),cell:e=>(0,n.jsx)(ew,{text:e.getValue(),maxLength:t}),size:50}))})),k.push(C.group({id:"prompts",header:()=>(0,n.jsx)("span",{className:"font-bold",children:"Outputs"}),columns:j.prompts.map((e,s)=>C.accessor(e=>(function(e){if("string"==typeof e){let t=e.startsWith("[PASS]"),s=e;return e.startsWith("[PASS]")?s=s.slice(6):e.startsWith("[FAIL]")&&(s=s.slice(6)),{text:s,pass:t,score:t?1:0}}return e})(e.outputs[s]),{id:"Prompt ".concat(s+1),header:()=>{var l,r,i,c,p,m,x,y;let Z=f[s]&&g.length?(f[s]/g.length*100).toFixed(2):"0.00",C=f[s]===w&&0!==w,k="Prompt ".concat(s+1),S=o[k]||!1,N=d?(0,n.jsxs)("div",{className:"prompt-detail",children:[v[s]?(0,n.jsxs)("div",{children:[(0,n.jsx)("strong",{children:"Asserts:"})," ",b[s],"/",v[s]," passed"]}):null,(null===(l=e.metrics)||void 0===l?void 0:l.totalLatencyMs)?(0,n.jsxs)("div",{children:[(0,n.jsx)("strong",{children:"Avg Latency:"})," ",Intl.NumberFormat(void 0,{maximumFractionDigits:0}).format(e.metrics.totalLatencyMs/g.length)," ","ms"]}):null,(null===(i=e.metrics)||void 0===i?void 0:null===(r=i.tokenUsage)||void 0===r?void 0:r.total)?(0,n.jsxs)("div",{children:[(0,n.jsx)("strong",{children:"Avg Tokens:"})," ",Intl.NumberFormat(void 0,{maximumFractionDigits:0}).format(e.metrics.tokenUsage.total/g.length)]}):null,(null===(c=e.metrics)||void 0===c?void 0:c.totalLatencyMs)&&(null===(m=e.metrics)||void 0===m?void 0:null===(p=m.tokenUsage)||void 0===p?void 0:p.completion)?(0,n.jsxs)("div",{children:[(0,n.jsx)("strong",{children:"Tokens/Sec:"})," ",Intl.NumberFormat(void 0,{maximumFractionDigits:0}).format(e.metrics.tokenUsage.completion/(e.metrics.totalLatencyMs/1e3))]}):null,(null===(x=e.metrics)||void 0===x?void 0:x.cost)?(0,n.jsxs)("div",{children:[(0,n.jsx)("strong",{children:"Cost:"})," $",e.metrics.cost.toPrecision(2)]}):null]}):null,R=j.prompts.every(e=>e.provider===j.prompts[0].provider),P=e.provider?e.provider.split(":"):[],E=P.length>1?(0,n.jsxs)(n.Fragment,{children:[P[0],":",(0,n.jsx)("strong",{children:P.slice(1).join(":")})]}):(0,n.jsx)("strong",{children:e.provider});return(0,n.jsxs)("div",{className:"output-header",children:[(0,n.jsxs)("div",{className:"pills",children:[!R&&e.provider?(0,n.jsx)("div",{className:"provider",children:E}):null,(0,n.jsx)("div",{className:"summary",children:(0,n.jsxs)("div",{className:"highlight ".concat(C?"success":""),children:[(0,n.jsxs)("strong",{children:[Z,"% passing"]})," (",f[s],"/",g.length," cases)"]})}),(null===(y=e.metrics)||void 0===y?void 0:y.namedScores)&&Object.keys(e.metrics.namedScores).length>0?(0,n.jsx)(el,{lookup:e.metrics.namedScores}):null]}),(0,n.jsx)(ek,{className:"prompt-container",text:e.display,expandedText:e.raw,maxLength:t,resourceId:e.id}),N,"failures"===a&&(0,n.jsx)(ee.Z,{sx:{"& .MuiFormControlLabel-label":{fontSize:"0.75rem"}},control:(0,n.jsx)(h.Z,{checked:S,onChange:e=>u(k,e.target.checked)}),label:"Show failures"})]})},cell:e=>(0,n.jsx)(eC,{output:e.getValue(),maxTextLength:t,rowIndex:e.row.index,promptIndex:s,onRating:y,firstOutput:R[e.row.index].outputs[0],filterMode:a,searchText:c,showStats:d})}))}));let S=g.some(e=>e.description);S&&k.splice(0,0,{accessorFn:e=>e.description||"",id:"description",header:()=>(0,n.jsx)("span",{className:"font-bold",children:"Description"}),cell:e=>(0,n.jsx)(ew,{text:String(e.getValue()),maxLength:t}),size:50});let N=Object.keys(s).length>0,R=l.useMemo(()=>{let e=RegExp(c,"i");return g.filter(t=>{let n="failures"===a?t.outputs.some((e,t)=>{let n="Prompt ".concat(t+1);return o[n]&&!e.pass&&(!N||s[n])}):"different"!==a||!t.outputs.every(e=>e.text===t.outputs[0].text),l=!c||t.outputs.some(t=>{var s;let n="".concat(t.text," ").concat(Object.keys(t.namedScores)," ").concat(null===(s=t.gradingResult)||void 0===s?void 0:s.reason);return e.test(n)});return n&&l})},[g,o,a,c,s,N]),P=(0,Q.b7)({data:R,columns:k,columnResizeMode:"onChange",getCoreRowModel:(0,K.sC)(),state:{columnVisibility:s}});return(0,n.jsxs)("div",{children:[(0,n.jsxs)("table",{className:"results-table firefox-fix ".concat(t<=25?"compact":""),style:{wordBreak:i},children:[(0,n.jsx)("thead",{children:P.getHeaderGroups().map(e=>(0,n.jsx)("tr",{className:"header",children:e.headers.map(e=>(0,n.jsxs)("th",{colSpan:e.colSpan,style:{width:e.getSize()},children:[e.isPlaceholder?null:(0,Q.ie)(e.column.columnDef.header,e.getContext()),(0,n.jsx)("div",{onMouseDown:e.getResizeHandler(),onTouchStart:e.getResizeHandler(),className:"resizer ".concat(e.column.getIsResizing()?"isResizing":"")})]},e.id))},e.id))}),(0,n.jsx)("tbody",{children:P.getRowModel().rows.map((e,t)=>{let s=!1;return(0,n.jsx)("tr",{children:e.getVisibleCells().map(e=>{let l=e.column.id.startsWith("Variable")||"description"===e.column.id,r=!l&&!s;return r&&(s=!0),(0,n.jsx)("td",{style:{width:e.column.getSize()},className:"".concat(l?"variable":""," ").concat(0!==t||l?"":"first-prompt-row"," ").concat(r?"first-prompt-col":""),children:(0,Q.ie)(e.column.columnDef.cell,e.getContext())},e.id)})},e.id)})})]}),(0,n.jsx)(ev,{})]})}s(2604);var eN=s(7175);function eR(e){let{open:t,onClose:r}=e,{config:i}=L(),a=l.useRef(null),[o,c]=l.useState(!1),[d,h]=l.useState("");l.useEffect(()=>{t&&(async()=>{let{default:e}=await Promise.resolve().then(s.bind(s,8339));h(e.dump(i))})()},[t,i]);let m=()=>{c(!1),r()};return(0,n.jsxs)(D.Z,{open:t,onClose:m,"aria-labelledby":"config-dialog-title",maxWidth:"md",fullWidth:!0,children:[(0,n.jsx)(U.Z,{id:"config-dialog-title",children:(0,n.jsxs)(u.Z,{display:"flex",justifyContent:"space-between",alignItems:"center",children:[(0,n.jsx)(j.Z,{variant:"h6",style:{flexGrow:1},children:"Config"}),(0,n.jsxs)(u.Z,{children:[(0,n.jsx)(S.Z,{title:"Copy to clipboard",children:(0,n.jsx)(V.Z,{onClick:()=>{a.current&&(a.current.select(),document.execCommand("copy"),c(!0))},children:o?(0,n.jsx)(eo.Z,{}):(0,n.jsx)(eN.Z,{})})}),(0,n.jsx)(S.Z,{title:"Download .yaml",children:(0,n.jsx)(V.Z,{onClick:()=>{let e=new Blob([d],{type:"text/yaml;charset=utf-8"}),t=URL.createObjectURL(e),s=document.createElement("a");s.href=t,s.download="config.yaml",document.body.appendChild(s),s.click(),document.body.removeChild(s),URL.revokeObjectURL(t)},children:(0,n.jsx)(O.Z,{})})})]})]})}),(0,n.jsx)(A.Z,{children:(0,n.jsx)(j.Z,{variant:"body1",component:"div",children:(0,n.jsx)("textarea",{ref:a,readOnly:!0,value:d,style:{width:"100%",minHeight:"400px",fontFamily:"monospace",border:"1px solid #ccc"}})})}),(0,n.jsx)(er.Z,{children:(0,n.jsx)(p.Z,{onClick:m,color:"primary",children:"Close"})})]})}var eP=e=>{let{open:t,onClose:s,shareUrl:r}=e,i=(0,l.useRef)(null),[a,o]=(0,l.useState)(!1),c=()=>{s(),o(!1)};return(0,n.jsxs)(D.Z,{open:t,onClose:c,PaperProps:{style:{minWidth:"min(660px, 100%)"}},children:[(0,n.jsx)(U.Z,{children:"Your eval is ready to share"}),(0,n.jsxs)(A.Z,{children:[(0,n.jsx)(k.Z,{inputRef:i,value:r,fullWidth:!0,InputProps:{readOnly:!0,endAdornment:(0,n.jsx)(V.Z,{onClick:()=>{i.current&&(i.current.select(),document.execCommand("copy"),o(!0))},children:a?(0,n.jsx)(eo.Z,{}):(0,n.jsx)(eN.Z,{})})}}),(0,n.jsx)(ef.Z,{sx:{fontSize:"0.75rem"},children:"Shared URLs are deleted after 2 weeks."})]}),(0,n.jsx)(er.Z,{children:(0,n.jsx)(p.Z,{onClick:c,color:"primary",children:"Close"})})]})},eE=s(33),eO=e=>{let{open:t,onClose:s}=e,{maxTextLength:l,setMaxTextLength:r,wordBreak:i,setWordBreak:a,showInferenceDetails:o,setShowInferenceDetails:c,renderMarkdown:d,setRenderMarkdown:m,prettifyJson:x,setPrettifyJson:g,showPrompts:f,setShowPrompts:v}=L();return(0,n.jsxs)(D.Z,{open:t,onClose:s,fullWidth:!0,maxWidth:"sm",children:[(0,n.jsx)(U.Z,{children:"Table View Settings"}),(0,n.jsxs)(A.Z,{children:[(0,n.jsx)(u.Z,{children:(0,n.jsx)(S.Z,{title:"Forcing line breaks makes it easier to adjust column widths to your liking",children:(0,n.jsx)(ee.Z,{control:(0,n.jsx)(h.Z,{checked:"break-all"===i,onChange:e=>a(e.target.checked?"break-all":"break-word")}),label:"Force line breaks"})})}),(0,n.jsx)(u.Z,{children:(0,n.jsx)(ee.Z,{control:(0,n.jsx)(h.Z,{checked:d,onChange:e=>m(e.target.checked)}),label:"Render model outputs as Markdown"})}),(0,n.jsx)(u.Z,{children:(0,n.jsx)(ee.Z,{control:(0,n.jsx)(h.Z,{checked:x,onChange:e=>g(e.target.checked)}),label:"Prettify JSON outputs"})}),(0,n.jsx)(u.Z,{children:(0,n.jsx)(S.Z,{title:"Show the final prompt that produced the output in each cell.",children:(0,n.jsx)(ee.Z,{control:(0,n.jsx)(h.Z,{checked:f,onChange:e=>v(e.target.checked)}),label:"Show full prompt in output cell"})})}),(0,n.jsx)(u.Z,{children:(0,n.jsx)(S.Z,{title:"Show detailed inference statistics such as latency, tokens used, cost, etc.",children:(0,n.jsx)(ee.Z,{control:(0,n.jsx)(h.Z,{checked:o,onChange:e=>c(e.target.checked)}),label:"Show inference details"})})}),(0,n.jsxs)(u.Z,{maxWidth:"sm",children:[(0,n.jsxs)(j.Z,{mt:2,children:["Max text length: ",l]}),(0,n.jsx)(eE.ZP,{min:25,max:1e3,value:l,onChange:(e,t)=>r(t)})]})]}),(0,n.jsx)(er.Z,{children:(0,n.jsx)(p.Z,{onClick:s,children:"Close"})})]})},eF=s(1938),eI=s(7580);let eL=eI.env.NEXT_PUBLIC_PROMPTFOO_REMOTE_API_BASE_URL||eI.env.NEXT_PUBLIC_PROMPTFOO_BASE_URL||eI.env.PROMPTFOO_REMOTE_API_BASE_URL||"https://api.promptfoo.dev",eT=eI.env.NEXT_PUBLIC_PROMPTFOO_BASE_URL||eI.env.PROMPTFOO_REMOTE_APP_BASE_URL||"https://app.promptfoo.dev";s(6911);let eM=(0,R.Z)(C.Z)(e=>{let{theme:t}=e;return{maxWidth:"100%",flexWrap:"wrap",[t.breakpoints.down("sm")]:{flexDirection:"column"}}});function eD(e){let{recentEvals:t,onRecentEvalSelected:s,defaultEvalId:a}=e,c=(0,o.useRouter)(),{table:C,config:R,setConfig:E,maxTextLength:O,wordBreak:F,showInferenceDetails:I,evalId:M}=L(),{setStateFromConfig:D}=(0,eF.o)(),[U,A]=l.useState({}),[_,W]=l.useState([]),[V,z]=l.useState(""),[B]=(0,P.Nr)(V,1e3),[J,H]=l.useState({}),[G,X]=l.useState("all"),[q,$]=l.useState(!1),[K,Q]=l.useState(""),[ee,et]=l.useState(!1),es=async()=>{et(!0);try{let e=await fetch("".concat(eL,"/api/eval"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({data:{version:2,createdAt:new Date().toISOString(),results:{table:C},config:R}})}),{id:t}=await e.json(),s="".concat(eT,"/eval/").concat(t);Q(s),$(!0)}catch(e){alert("Sorry, something went wrong.")}finally{et(!1)}},[en,el]=l.useState(!1),[er,ei]=l.useState(!1);(0,r.Z)(C,"Table data must be loaded before rendering ResultsView");let{head:ea}=C,eo=async()=>{(0,r.Z)(R,"Config must be loaded before clicking its description");let e=window.prompt("Enter new description:",R.description);if(null!==e&&e!==R.description){let t={...R,description:e};try{let e=await fetch("".concat(await (0,eb.b)(),"/api/eval/").concat(M),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({config:t})});if(!e.ok)throw Error("Network response was not ok");E(t)}catch(e){console.error("Failed to update table:",e)}}},ec=[...ea.vars.map((e,t)=>({value:"Variable ".concat(t+1),label:"Var ".concat(t+1,": ").concat(ea.vars[t].length>100?ea.vars[t].slice(0,97)+"...":ea.vars[t]),group:"Variables"})),...ea.prompts.map((e,t)=>({value:"Prompt ".concat(t+1),label:"Prompt ".concat(t+1,": ").concat(ea.prompts[t].display.length>100?ea.prompts[t].display.slice(0,97)+"...":ea.prompts[t].display),group:"Prompts"}))];return l.useEffect(()=>{W(ec.map(e=>e.value))},[ea]),(0,n.jsxs)("div",{style:{marginLeft:"1rem",marginRight:"1rem"},children:[(0,n.jsx)(u.Z,{mb:2,sx:{display:"flex",alignItems:"center"},children:(0,n.jsxs)(j.Z,{variant:"h5",sx:{flexGrow:1},children:[(0,n.jsx)("span",{className:"description",onClick:eo,children:(null==R?void 0:R.description)||M})," ",(null==R?void 0:R.description)&&(0,n.jsx)("span",{className:"description-filepath",children:M})]})}),(0,n.jsx)(u.Z,{py:"md",children:(0,n.jsxs)(eM,{direction:"row",spacing:4,alignItems:"center",children:[(0,n.jsx)(u.Z,{children:t&&t.length>0&&(0,n.jsx)(x.Z,{sx:{m:1,minWidth:200},size:"small",children:(0,n.jsx)(d.Z,{size:"small",options:t,renderOption:(e,t)=>(0,l.createElement)("li",{...e,key:t.id},t.label),style:{width:350},renderInput:e=>(0,n.jsx)(k.Z,{...e,label:"Eval run",variant:"outlined"}),defaultValue:t.find(e=>e.id===a)||t[0],onChange:(e,t)=>{t&&t.id&&s(t.id)},disableClearable:!0})})}),(0,n.jsx)(u.Z,{children:(0,n.jsxs)(x.Z,{sx:{m:1,minWidth:200,maxWidth:350},size:"small",children:[(0,n.jsx)(g.Z,{id:"visible-columns-label",children:"Columns"}),(0,n.jsx)(y.Z,{labelId:"visible-columns-label",id:"visible-columns",multiple:!0,value:_,onChange:e=>{let{target:{value:t}}=e;W("string"==typeof t?t.split(","):t);let s=[...ea.vars.map((e,t)=>"Variable ".concat(t+1)),...ea.prompts.map((e,t)=>"Prompt ".concat(t+1))],n={};s.forEach(e=>{n[e]=("string"==typeof t?t.split(","):t).includes(e)}),A(n)},input:(0,n.jsx)(b.Z,{label:"Visible columns"}),renderValue:e=>e.join(", "),children:ec.map(e=>(0,n.jsxs)(v.Z,{dense:!0,value:e.value,children:[(0,n.jsx)(h.Z,{checked:_.indexOf(e.value)>-1}),(0,n.jsx)(f.Z,{primary:e.label})]},e.value))})]})}),(0,n.jsx)(u.Z,{children:(0,n.jsxs)(x.Z,{sx:{minWidth:180},size:"small",children:[(0,n.jsx)(g.Z,{id:"failure-filter-mode-label",children:"Display"}),(0,n.jsxs)(y.Z,{labelId:"filter-mode-label",id:"filter-mode",value:G,onChange:e=>{let t=e.target.value;X(t);let s={};ea.prompts.forEach((e,n)=>{s["Prompt ".concat(n+1)]="failures"===t}),H(s)},label:"Filter",children:[(0,n.jsx)(v.Z,{value:"all",children:"Show all results"}),(0,n.jsx)(v.Z,{value:"failures",children:"Show failures only"}),(0,n.jsx)(v.Z,{value:"different",children:"Show different only"})]})]})}),(0,n.jsx)(u.Z,{children:(0,n.jsx)(k.Z,{sx:{minWidth:180},size:"small",label:"Search",placeholder:"Text or regex",value:V,onChange:e=>{z(e.target.value)}})}),(0,n.jsx)(u.Z,{flexGrow:1}),(0,n.jsx)(u.Z,{display:"flex",justifyContent:"flex-end",children:(0,n.jsxs)(eM,{direction:"row",spacing:2,children:[(0,n.jsx)(S.Z,{title:"Edit table view settings",children:(0,n.jsx)(p.Z,{color:"primary",onClick:()=>ei(!0),startIcon:(0,n.jsx)(Z.Z,{}),children:"Table Settings"})}),R&&(0,n.jsx)(S.Z,{title:"View the configuration that defines this eval",children:(0,n.jsx)(p.Z,{color:"primary",onClick:()=>el(!0),startIcon:(0,n.jsx)(N.Z,{}),children:"View YAML"})}),R&&(0,n.jsx)(S.Z,{title:"Edit eval",children:(0,n.jsx)(p.Z,{color:"primary",onClick:()=>{D(R),c.push("/setup/")},startIcon:(0,n.jsx)(m.Z,{}),children:"Edit Eval"})}),R&&(0,n.jsx)(T,{}),(null==R?void 0:R.sharing)&&(0,n.jsx)(S.Z,{title:"Generate a unique URL that others can access",children:(0,n.jsx)(p.Z,{color:"primary",onClick:es,disabled:ee,startIcon:ee?(0,n.jsx)(i.Z,{size:16}):(0,n.jsx)(w.Z,{}),children:"Share"})})]})})]})}),(0,n.jsx)(Y,{columnVisibility:U}),(0,n.jsx)(eS,{maxTextLength:O,columnVisibility:U,wordBreak:F,showStats:I,filterMode:G,failureFilter:J,searchText:B,onFailureFilterToggle:(e,t)=>{H(s=>({...s,[e]:t}))}}),(0,n.jsx)(eR,{open:en,onClose:()=>el(!1)}),(0,n.jsx)(eP,{open:q,onClose:()=>$(!1),shareUrl:K}),(0,n.jsx)(eO,{open:er,onClose:()=>ei(!1)})]})}var eU=s(279);async function eA(){let e=(0,c.createClientComponentClient)(),{data:{user:t}}=await e.auth.getUser();(0,r.Z)(t,"User not logged in");let{data:s,error:n}=await e.from("EvaluationResult").select("id, createdAt").eq("user_id",t.id).order("createdAt",{ascending:!1}).limit(100);return s||[]}async function e_(e){let t=(0,c.createClientComponentClient)(),{data:s,error:n}=await t.from("EvaluationResult").select("*").eq("id",e).single();return s}function eW(e){var t;let{fetchId:s,preloadedData:c,recentEvals:d,defaultEvalId:u}=e,p=(0,o.useRouter)(),{table:h,setTable:m,setConfig:x,setEvalId:j}=L(),[g,f]=l.useState(!1),[v,b]=l.useState(!1),[y,Z]=l.useState(d||[]),w=async()=>{let e=await fetch("".concat(await (0,eb.b)(),"/api/results"),{cache:"no-store"}),t=await e.json();return Z(t.data),t.data},C=l.useCallback(async e=>{let t=await fetch("".concat(await (0,eb.b)(),"/api/results/").concat(e),{cache:"no-store"}),s=await t.json();m(s.data.results.table),x(s.data.config),j(e)},[m,x,j]),k=async e=>{eU.Ox?(f(!1),p.push("/eval/remote:".concat(encodeURIComponent(e)))):p.push("/eval/?evalId=".concat(encodeURIComponent(e)))},[S,N]=l.useState(u||(null===(t=y[0])||void 0===t?void 0:t.id)),R=(0,o.useSearchParams)(),P=R?R.get("evalId"):null;return(l.useEffect(()=>{if(P){let e=async()=>{await C(P),f(!0),N(P),w()};e()}else if(c){var e;m(null===(e=c.data.results)||void 0===e?void 0:e.table),x(c.data.config),f(!0)}else if(s){let e=async()=>{var e;let t="".concat(eL,"/api/eval/").concat(s);console.log("Fetching eval from remote server",t);let n=await fetch(t);if(!n.ok){b(!0);return}let l=await n.json();m(null===(e=l.data.results)||void 0===e?void 0:e.table),x(l.data.config),f(!0)};e()}else if(eU.T8)(0,eb.b)().then(e=>{let t=(0,a.io)(e);return t.on("init",e=>{console.log("Initialized socket connection",e),f(!0),m(null==e?void 0:e.results.table),x(null==e?void 0:e.config),w().then(e=>{var t,s;N(null===(t=e[0])||void 0===t?void 0:t.id),j(null===(s=e[0])||void 0===s?void 0:s.id)})}),t.on("update",e=>{console.log("Received data update",e),m(e.results.table),x(e.config),w().then(e=>{var t;let s=null===(t=e[0])||void 0===t?void 0:t.id;s&&(N(s),j(s))})}),()=>{t.disconnect()}});else if(eU.Ox)eA().then(e=>{Z(e.map(e=>({id:e.id,label:e.createdAt}))),e.length>0&&e_(e[0].id).then(t=>{(0,r.Z)(t,"Eval not found");let s=t.results,n=t.config;N(e[0].id),m(s.table),x(n),f(!0)})});else{let e=async()=>{let e=await w();if(!(e.length>0))return(0,n.jsx)("div",{className:"notice",children:"No evals yet. Share some evals to this server and they will appear here."});{let t=await (0,eb.b)(),s=e[0].id,n=await fetch("".concat(t,"/api/results/").concat(s)),l=await n.json();m(l.data.results.table),x(l.data.config),f(!0),N(s),j(s)}};e()}},[s,m,x,j,C,c,N,P]),v)?(0,n.jsx)("div",{className:"notice",children:"404 Eval not found"}):g&&h?(0,n.jsx)(eD,{defaultEvalId:S,recentEvals:y,onRecentEvalSelected:k}):(0,n.jsxs)("div",{className:"notice",children:[(0,n.jsx)("div",{children:(0,n.jsx)(i.Z,{size:22})}),(0,n.jsx)("div",{children:"Loading eval data"})]})}s(5038)},279:function(e,t,s){"use strict";s.d(t,{Ox:function(){return r},T8:function(){return l},eA:function(){return i}});var n=s(7580);let l=!n.env.NEXT_PUBLIC_PROMPTFOO_BUILD_STANDALONE_SERVER,r=!!n.env.NEXT_PUBLIC_PROMPTFOO_USE_SUPABASE,i=""},1938:function(e,t,s){"use strict";s.d(t,{o:function(){return r}});var n=s(4660),l=s(4810);let r=(0,n.Ue)()((0,l.tJ)((e,t)=>({env:{},testCases:[],description:"",providers:[],prompts:[],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}),setStateFromConfig:t=>{let s={};t.description&&(s.description=t.description||""),t.tests&&(s.testCases=t.tests),t.providers&&(s.providers=t.providers),t.prompts&&("string"==typeof t.prompts?s.prompts=[t.prompts]:Array.isArray(t.prompts)?s.prompts=t.prompts.filter(e=>!e.endsWith(".txt")&&!e.endsWith(".json")&&!e.endsWith(".yaml")):console.warn("Invalid prompts config",t.prompts)),e(s)},getTestSuite:()=>{let{description:e,testCases:s,providers:n,prompts:l,env:r}=t();return{env:r,description:e,providers:n,prompts:l,tests:s}}}),{name:"promptfoo",skipHydration:!0}))},8715:function(){},5038:function(){},2604:function(){},6911:function(){},5777:function(){}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"data":[{"id":"eval-2024-04-01T14:09:47","label":"eval-2024-04-01T14:09:47"},{"id":"eval-2024-04-01T14:08:52","label":"eval-2024-04-01T14:08:52"},{"id":"eval-2024-04-01T14:08:34","label":"eval-2024-04-01T14:08:34"},{"id":"eval-2024-04-01T13:41:02","label":"eval-2024-04-01T13:41:02"},{"id":"eval-2024-04-01T13:40:43","label":"eval-2024-04-01T13:40:43"},{"id":"eval-2024-04-01T13:40:29","label":"eval-2024-04-01T13:40:29"},{"id":"eval-2024-04-01T12:57:44","label":"Transform with external function (eval-2024-04-01T12:57:44)"},{"id":"eval-2024-04-01T12:57:10","label":"Transform with external function (eval-2024-04-01T12:57:10)"},{"id":"eval-2024-03-31T21:19:32","label":"eval-2024-03-31T21:19:32"},{"id":"eval-2024-03-31T00:47:02","label":"eval-2024-03-31T00:47:02"},{"id":"eval-2024-03-31T00:18:09","label":"eval-2024-03-31T00:18:09"},{"id":"eval-2024-03-31T00:13:39","label":"eval-2024-03-31T00:13:39"},{"id":"eval-2024-03-31T00:13:15","label":"eval-2024-03-31T00:13:15"},{"id":"eval-2024-03-30T18:05:30","label":"eval-2024-03-30T18:05:30"},{"id":"eval-2024-03-30T18:04:39","label":"eval-2024-03-30T18:04:39"},{"id":"eval-2024-03-30T18:04:24","label":"eval-2024-03-30T18:04:24"},{"id":"eval-2024-03-30T17:24:41","label":"eval-2024-03-30T17:24:41"},{"id":"eval-2024-03-30T16:38:25","label":"eval-2024-03-30T16:38:25"},{"id":"eval-2024-03-30T16:38:17","label":"eval-2024-03-30T16:38:17"},{"id":"eval-2024-03-30T16:15:15","label":"eval-2024-03-30T16:15:15"},{"id":"eval-2024-03-30T16:14:18","label":"eval-2024-03-30T16:14:18"},{"id":"eval-2024-03-30T13:14:40","label":"eval-2024-03-30T13:14:40"},{"id":"eval-2024-03-30T13:14:04","label":"eval-2024-03-30T13:14:04"},{"id":"eval-2024-03-30T12:46:52","label":"eval-2024-03-30T12:46:52"},{"id":"eval-2024-03-30T12:44:44","label":"eval-2024-03-30T12:44:44"},{"id":"eval-2024-03-29T13:08:13","label":"eval-2024-03-29T13:08:13"},{"id":"eval-2024-03-29T13:05:16","label":"eval-2024-03-29T13:05:16"},{"id":"eval-2024-03-28T23:22:52","label":"eval-2024-03-28T23:22:52"},{"id":"eval-2024-03-28T23:13:26","label":"eval-2024-03-28T23:13:26"},{"id":"eval-2024-03-28T23:12:59","label":"eval-2024-03-28T23:12:59"},{"id":"eval-2024-03-28T23:11:09","label":"eval-2024-03-28T23:11:09"},{"id":"eval-2024-03-28T23:10:28","label":"eval-2024-03-28T23:10:28"},{"id":"eval-2024-03-28T23:08:32","label":"eval-2024-03-28T23:08:32"},{"id":"eval-2024-03-28T23:07:53","label":"eval-2024-03-28T23:07:53"},{"id":"eval-2024-03-28T23:07:36","label":"eval-2024-03-28T23:07:36"},{"id":"eval-2024-03-28T23:04:22","label":"eval-2024-03-28T23:04:22"},{"id":"eval-2024-03-28T23:04:10","label":"eval-2024-03-28T23:04:10"},{"id":"eval-2024-03-28T23:02:54","label":"eval-2024-03-28T23:02:54"},{"id":"eval-2024-03-28T22:56:47","label":"eval-2024-03-28T22:56:47"},{"id":"eval-2024-03-28T22:47:05","label":"eval-2024-03-28T22:47:05"},{"id":"eval-2024-03-28T22:46:50","label":"eval-2024-03-28T22:46:50"},{"id":"eval-2024-03-27T18:53:44","label":"eval-2024-03-27T18:53:44"},{"id":"eval-2024-03-27T17:15:35","label":"eval-2024-03-27T17:15:35"},{"id":"eval-2024-03-27T17:14:25","label":"eval-2024-03-27T17:14:25"},{"id":"eval-2024-03-27T17:14:08","label":"eval-2024-03-27T17:14:08"},{"id":"eval-2024-03-27T17:13:40","label":"eval-2024-03-27T17:13:40"},{"id":"eval-2024-03-27T12:55:28","label":"Simple test (eval-2024-03-27T12:55:28)"},{"id":"eval-2024-03-27T12:55:24","label":"Simple test (eval-2024-03-27T12:55:24)"},{"id":"eval-2024-03-26T20:56:31","label":"Dynamic var example (eval-2024-03-26T20:56:31)"},{"id":"eval-2024-03-26T20:54:38","label":"Dynamic var example (eval-2024-03-26T20:54:38)"},{"id":"eval-2024-03-26T20:54:22","label":"Dynamic var example (eval-2024-03-26T20:54:22)"},{"id":"eval-2024-03-26T20:53:19","label":"Dynamic var example (eval-2024-03-26T20:53:19)"},{"id":"eval-2024-03-26T20:52:29","label":"Dynamic var example (eval-2024-03-26T20:52:29)"},{"id":"eval-2024-03-26T20:52:14","label":"Dynamic var example (eval-2024-03-26T20:52:14)"},{"id":"eval-2024-03-26T20:51:52","label":"Dynamic var example (eval-2024-03-26T20:51:52)"},{"id":"eval-2024-03-26T20:51:18","label":"Dynamic var example (eval-2024-03-26T20:51:18)"},{"id":"eval-2024-03-26T20:51:01","label":"Dynamic var example (eval-2024-03-26T20:51:01)"},{"id":"eval-2024-03-26T20:50:29","label":"Dynamic var example (eval-2024-03-26T20:50:29)"},{"id":"eval-2024-03-26T20:50:03","label":"Dynamic var example (eval-2024-03-26T20:50:03)"},{"id":"eval-2024-03-26T20:49:40","label":"Dynamic var example (eval-2024-03-26T20:49:40)"},{"id":"eval-2024-03-26T20:49:19","label":"Dynamic var example (eval-2024-03-26T20:49:19)"},{"id":"eval-2024-03-26T19:55:56","label":"eval-2024-03-26T19:55:56"},{"id":"eval-2024-03-26T19:39:39","label":"eval-2024-03-26T19:39:39"},{"id":"eval-2024-03-26T19:39:36","label":"eval-2024-03-26T19:39:36"},{"id":"eval-2024-03-26T19:39:27","label":"eval-2024-03-26T19:39:27"},{"id":"eval-2024-03-26T19:39:11","label":"eval-2024-03-26T19:39:11"},{"id":"eval-2024-03-26T17:44:59","label":"eval-2024-03-26T17:44:59"},{"id":"eval-2024-03-26T14:15:17","label":"eval-2024-03-26T14:15:17"},{"id":"eval-2024-03-25T13:11:17","label":"eval-2024-03-25T13:11:17"},{"id":"eval-2024-03-25T13:11:10","label":"eval-2024-03-25T13:11:10"},{"id":"eval-2024-03-25T13:07:54","label":"Azure OpenAI assistant (eval-2024-03-25T13:07:54)"},{"id":"eval-2024-03-25T13:00:19","label":"eval-2024-03-25T13:00:19"},{"id":"eval-2024-03-23T14:13:18","label":"Glob test (eval-2024-03-23T14:13:18)"},{"id":"eval-2024-03-23T14:12:31","label":"Glob test (eval-2024-03-23T14:12:31)"},{"id":"eval-2024-03-23T14:12:01","label":"Glob test (eval-2024-03-23T14:12:01)"},{"id":"eval-2024-03-23T00:00:21","label":"eval-2024-03-23T00:00:21"},{"id":"eval-2024-03-22T23:59:05","label":"eval-2024-03-22T23:59:05"},{"id":"eval-2024-03-22T23:56:53","label":"eval-2024-03-22T23:56:53"},{"id":"eval-2024-03-22T23:56:38","label":"eval-2024-03-22T23:56:38"},{"id":"eval-2024-03-22T23:56:08","label":"eval-2024-03-22T23:56:08"},{"id":"eval-2024-03-22T23:55:00","label":"eval-2024-03-22T23:55:00"},{"id":"eval-2024-03-22T20:48:02","label":"eval-2024-03-22T20:48:02"},{"id":"eval-2024-03-22T20:45:53","label":"eval-2024-03-22T20:45:53"},{"id":"eval-2024-03-22T20:44:52","label":"eval-2024-03-22T20:44:52"}
|
|
1
|
+
{"data":[{"id":"eval-2024-04-02T16:08:42","label":"Simple test (eval-2024-04-02T16:08:42)"},{"id":"eval-2024-04-02T16:08:31","label":"Simple test (eval-2024-04-02T16:08:31)"},{"id":"eval-2024-04-02T16:08:13","label":"Simple test (eval-2024-04-02T16:08:13)"},{"id":"eval-2024-04-02T16:07:51","label":"Simple test (eval-2024-04-02T16:07:51)"},{"id":"eval-2024-04-02T16:07:39","label":"Simple test (eval-2024-04-02T16:07:39)"},{"id":"eval-2024-04-02T16:04:56","label":"Simple test (eval-2024-04-02T16:04:56)"},{"id":"eval-2024-04-02T16:04:45","label":"Simple test (eval-2024-04-02T16:04:45)"},{"id":"eval-2024-04-02T16:04:38","label":"Simple test (eval-2024-04-02T16:04:38)"},{"id":"eval-2024-04-02T16:04:30","label":"Simple test (eval-2024-04-02T16:04:30)"},{"id":"eval-2024-04-02T16:04:05","label":"Simple test (eval-2024-04-02T16:04:05)"},{"id":"eval-2024-04-02T15:41:55","label":"Simple test (eval-2024-04-02T15:41:55)"},{"id":"eval-2024-04-02T15:41:51","label":"Simple test (eval-2024-04-02T15:41:51)"},{"id":"eval-2024-04-02T14:50:48","label":"eval-2024-04-02T14:50:48"},{"id":"eval-2024-04-02T12:39:32","label":"eval-2024-04-02T12:39:32"},{"id":"eval-2024-04-02T12:30:22","label":"Glob test (eval-2024-04-02T12:30:22)"},{"id":"eval-2024-04-01T15:58:45","label":"JSON object evals (eval-2024-04-01T15:58:45)"},{"id":"eval-2024-04-01T14:09:47","label":"eval-2024-04-01T14:09:47"},{"id":"eval-2024-04-01T14:08:52","label":"eval-2024-04-01T14:08:52"},{"id":"eval-2024-04-01T14:08:34","label":"eval-2024-04-01T14:08:34"},{"id":"eval-2024-04-01T13:41:02","label":"eval-2024-04-01T13:41:02"},{"id":"eval-2024-04-01T13:40:43","label":"eval-2024-04-01T13:40:43"},{"id":"eval-2024-04-01T13:40:29","label":"eval-2024-04-01T13:40:29"},{"id":"eval-2024-04-01T12:57:44","label":"Transform with external function (eval-2024-04-01T12:57:44)"},{"id":"eval-2024-04-01T12:57:10","label":"Transform with external function (eval-2024-04-01T12:57:10)"},{"id":"eval-2024-03-31T21:19:32","label":"eval-2024-03-31T21:19:32"},{"id":"eval-2024-03-31T00:47:02","label":"eval-2024-03-31T00:47:02"},{"id":"eval-2024-03-31T00:18:09","label":"eval-2024-03-31T00:18:09"},{"id":"eval-2024-03-31T00:13:39","label":"eval-2024-03-31T00:13:39"},{"id":"eval-2024-03-31T00:13:15","label":"eval-2024-03-31T00:13:15"},{"id":"eval-2024-03-30T18:05:30","label":"eval-2024-03-30T18:05:30"},{"id":"eval-2024-03-30T18:04:39","label":"eval-2024-03-30T18:04:39"},{"id":"eval-2024-03-30T18:04:24","label":"eval-2024-03-30T18:04:24"},{"id":"eval-2024-03-30T17:24:41","label":"eval-2024-03-30T17:24:41"},{"id":"eval-2024-03-30T16:38:25","label":"eval-2024-03-30T16:38:25"},{"id":"eval-2024-03-30T16:38:17","label":"eval-2024-03-30T16:38:17"},{"id":"eval-2024-03-30T16:15:15","label":"eval-2024-03-30T16:15:15"},{"id":"eval-2024-03-30T16:14:18","label":"eval-2024-03-30T16:14:18"},{"id":"eval-2024-03-30T13:14:40","label":"eval-2024-03-30T13:14:40"},{"id":"eval-2024-03-30T13:14:04","label":"eval-2024-03-30T13:14:04"},{"id":"eval-2024-03-30T12:46:52","label":"eval-2024-03-30T12:46:52"},{"id":"eval-2024-03-30T12:44:44","label":"eval-2024-03-30T12:44:44"},{"id":"eval-2024-03-29T13:08:13","label":"eval-2024-03-29T13:08:13"},{"id":"eval-2024-03-29T13:05:16","label":"eval-2024-03-29T13:05:16"},{"id":"eval-2024-03-28T23:22:52","label":"eval-2024-03-28T23:22:52"},{"id":"eval-2024-03-28T23:13:26","label":"eval-2024-03-28T23:13:26"},{"id":"eval-2024-03-28T23:12:59","label":"eval-2024-03-28T23:12:59"},{"id":"eval-2024-03-28T23:11:09","label":"eval-2024-03-28T23:11:09"},{"id":"eval-2024-03-28T23:10:28","label":"eval-2024-03-28T23:10:28"},{"id":"eval-2024-03-28T23:08:32","label":"eval-2024-03-28T23:08:32"},{"id":"eval-2024-03-28T23:07:53","label":"eval-2024-03-28T23:07:53"},{"id":"eval-2024-03-28T23:07:36","label":"eval-2024-03-28T23:07:36"},{"id":"eval-2024-03-28T23:04:22","label":"eval-2024-03-28T23:04:22"},{"id":"eval-2024-03-28T23:04:10","label":"eval-2024-03-28T23:04:10"},{"id":"eval-2024-03-28T23:02:54","label":"eval-2024-03-28T23:02:54"},{"id":"eval-2024-03-28T22:56:47","label":"eval-2024-03-28T22:56:47"},{"id":"eval-2024-03-28T22:47:05","label":"eval-2024-03-28T22:47:05"},{"id":"eval-2024-03-28T22:46:50","label":"eval-2024-03-28T22:46:50"},{"id":"eval-2024-03-27T18:53:44","label":"eval-2024-03-27T18:53:44"},{"id":"eval-2024-03-27T17:15:35","label":"eval-2024-03-27T17:15:35"},{"id":"eval-2024-03-27T17:14:25","label":"eval-2024-03-27T17:14:25"},{"id":"eval-2024-03-27T17:14:08","label":"eval-2024-03-27T17:14:08"},{"id":"eval-2024-03-27T17:13:40","label":"eval-2024-03-27T17:13:40"},{"id":"eval-2024-03-27T12:55:28","label":"Simple test (eval-2024-03-27T12:55:28)"},{"id":"eval-2024-03-27T12:55:24","label":"Simple test (eval-2024-03-27T12:55:24)"},{"id":"eval-2024-03-26T20:56:31","label":"Dynamic var example (eval-2024-03-26T20:56:31)"},{"id":"eval-2024-03-26T20:54:38","label":"Dynamic var example (eval-2024-03-26T20:54:38)"},{"id":"eval-2024-03-26T20:54:22","label":"Dynamic var example (eval-2024-03-26T20:54:22)"},{"id":"eval-2024-03-26T20:53:19","label":"Dynamic var example (eval-2024-03-26T20:53:19)"},{"id":"eval-2024-03-26T20:52:29","label":"Dynamic var example (eval-2024-03-26T20:52:29)"},{"id":"eval-2024-03-26T20:52:14","label":"Dynamic var example (eval-2024-03-26T20:52:14)"},{"id":"eval-2024-03-26T20:51:52","label":"Dynamic var example (eval-2024-03-26T20:51:52)"},{"id":"eval-2024-03-26T20:51:18","label":"Dynamic var example (eval-2024-03-26T20:51:18)"},{"id":"eval-2024-03-26T20:51:01","label":"Dynamic var example (eval-2024-03-26T20:51:01)"},{"id":"eval-2024-03-26T20:50:29","label":"Dynamic var example (eval-2024-03-26T20:50:29)"},{"id":"eval-2024-03-26T20:50:03","label":"Dynamic var example (eval-2024-03-26T20:50:03)"},{"id":"eval-2024-03-26T20:49:40","label":"Dynamic var example (eval-2024-03-26T20:49:40)"},{"id":"eval-2024-03-26T20:49:19","label":"Dynamic var example (eval-2024-03-26T20:49:19)"},{"id":"eval-2024-03-26T19:55:56","label":"eval-2024-03-26T19:55:56"},{"id":"eval-2024-03-26T19:39:39","label":"eval-2024-03-26T19:39:39"},{"id":"eval-2024-03-26T19:39:36","label":"eval-2024-03-26T19:39:36"},{"id":"eval-2024-03-26T19:39:27","label":"eval-2024-03-26T19:39:27"},{"id":"eval-2024-03-26T19:39:11","label":"eval-2024-03-26T19:39:11"},{"id":"eval-2024-03-26T17:44:59","label":"eval-2024-03-26T17:44:59"},{"id":"eval-2024-03-26T14:15:17","label":"eval-2024-03-26T14:15:17"},{"id":"eval-2024-03-25T13:11:17","label":"eval-2024-03-25T13:11:17"},{"id":"eval-2024-03-25T13:11:10","label":"eval-2024-03-25T13:11:10"},{"id":"eval-2024-03-25T13:07:54","label":"Azure OpenAI assistant (eval-2024-03-25T13:07:54)"},{"id":"eval-2024-03-25T13:00:19","label":"eval-2024-03-25T13:00:19"},{"id":"eval-2024-03-23T14:13:18","label":"Glob test (eval-2024-03-23T14:13:18)"},{"id":"eval-2024-03-23T14:12:31","label":"Glob test (eval-2024-03-23T14:12:31)"},{"id":"eval-2024-03-23T14:12:01","label":"Glob test (eval-2024-03-23T14:12:01)"},{"id":"eval-2024-03-23T00:00:21","label":"eval-2024-03-23T00:00:21"},{"id":"eval-2024-03-22T23:59:05","label":"eval-2024-03-22T23:59:05"},{"id":"eval-2024-03-22T23:56:53","label":"eval-2024-03-22T23:56:53"},{"id":"eval-2024-03-22T23:56:38","label":"eval-2024-03-22T23:56:38"},{"id":"eval-2024-03-22T23:56:08","label":"eval-2024-03-22T23:56:08"},{"id":"eval-2024-03-22T23:55:00","label":"eval-2024-03-22T23:55:00"},{"id":"eval-2024-03-22T20:48:02","label":"eval-2024-03-22T20:48:02"},{"id":"eval-2024-03-22T20:45:53","label":"eval-2024-03-22T20:45:53"},{"id":"eval-2024-03-22T20:44:52","label":"eval-2024-03-22T20:44:52"}]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><link rel="preload" as="font" href="/_next/static/media/0e4fe491bf84089c-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/3a04115668d8070d-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/3a18fc8da1cdcd01-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/627622453ef56b0d-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/699512af39861afa-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/934c4b7cb736f2a3-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/51a17e8edcdfdbb2.css" data-precedence="next"/><link rel="preload" href="/_next/static/chunks/webpack-a35a338695cdcd13.js" as="script"/><link rel="preload" href="/_next/static/chunks/fd9d1056-a95b789c94c05ff6.js" as="script"/><link rel="preload" href="/_next/static/chunks/596-f3a131b7c336dd5d.js" as="script"/><link rel="preload" href="/_next/static/chunks/main-app-581ccf0003955b21.js" as="script"/><title>promptfoo</title><meta name="description" content="LLM testing and evaluation"/><meta name="viewport" content="width=device-width, initial-scale=1"/><meta property="og:image" content="https://www.promptfoo.dev/img/thumbnail.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://www.promptfoo.dev/img/thumbnail.png"/><meta name="next-size-adjust"/><script src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script></head><body class="__className_c5054f"><div><style data-emotion="css jj2ztu">.css-jj2ztu{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-jj2ztu>:not(style):not(style){margin:0;}.css-jj2ztu>:not(style)~:not(style){margin-left:16px;}</style><div class="MuiStack-root nav css-jj2ztu"><div class="logo MuiBox-root css-0"><img alt="Promptfoo logo" loading="lazy" width="25" height="25" decoding="async" data-nimg="1" style="color:transparent" src="/logo.svg"/> <span>promptfoo</span></div><a class="" href="/setup/">New Eval</a><a class="" href="/eval/">Evals</a><a class="" href="/prompts/">Prompts</a><a class="" href="/datasets/">Datasets</a><div class="right-aligned"><div class="dark-mode-toggle"><style data-emotion="css vubbuv">.css-vubbuv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;}</style><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv" focusable="false" aria-hidden="true" viewBox="0 0 24 24" data-testid="LightModeIcon"><path d="M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zM2 13h2c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1s.45 1 1 1zm18 0h2c.55 0 1-.45 1-1s-.45-1-1-1h-2c-.55 0-1 .45-1 1s.45 1 1 1zM11 2v2c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1zm0 18v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1zM5.99 4.58c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0s.39-1.03 0-1.41L5.99 4.58zm12.37 12.37c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0 .39-.39.39-1.03 0-1.41l-1.06-1.06zm1.06-10.96c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06zM7.05 18.36c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06z"></path></svg></div></div></div><div><style data-emotion="css hltdia">.css-hltdia{width:100%;margin-left:auto;box-sizing:border-box;margin-right:auto;display:block;padding-left:16px;padding-right:16px;}@media (min-width:600px){.css-hltdia{padding-left:24px;padding-right:24px;}}@media (min-width:0px){.css-hltdia{max-width:444px;}}</style><main class="MuiContainer-root MuiContainer-maxWidthXs css-hltdia"><style data-emotion="css 1d79rw6">.css-1d79rw6{margin:0;font-family:inherit;font-weight:400;font-size:1.5rem;line-height:1.334;}</style><h1 class="MuiTypography-root MuiTypography-h5 css-1d79rw6">Sign in</h1><form><style data-emotion="css 1u0h3mu">.css-1u0h3mu{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;position:relative;min-width:0;padding:0;margin:0;border:0;vertical-align:top;margin-top:16px;margin-bottom:8px;width:100%;}</style><div class="MuiFormControl-root MuiFormControl-marginNormal MuiFormControl-fullWidth MuiTextField-root css-1u0h3mu"><style data-emotion="css nd1nwr">.css-nd1nwr{display:block;transform-origin:top left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 24px);position:absolute;left:0;top:0;-webkit-transform:translate(14px, 16px) scale(1);-moz-transform:translate(14px, 16px) scale(1);-ms-transform:translate(14px, 16px) scale(1);transform:translate(14px, 16px) scale(1);-webkit-transition:color 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,-webkit-transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,max-width 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;transition:color 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,max-width 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;z-index:1;pointer-events:none;}</style><style data-emotion="css jzaigm">.css-jzaigm{color:rgba(0, 0, 0, 0.6);font-family:inherit;font-weight:400;font-size:1rem;line-height:1.4375em;padding:0;position:relative;display:block;transform-origin:top left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 24px);position:absolute;left:0;top:0;-webkit-transform:translate(14px, 16px) scale(1);-moz-transform:translate(14px, 16px) scale(1);-ms-transform:translate(14px, 16px) scale(1);transform:translate(14px, 16px) scale(1);-webkit-transition:color 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,-webkit-transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,max-width 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;transition:color 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,max-width 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;z-index:1;pointer-events:none;}.css-jzaigm.Mui-focused{color:#1976d2;}.css-jzaigm.Mui-disabled{color:rgba(0, 0, 0, 0.38);}.css-jzaigm.Mui-error{color:#d32f2f;}</style><label class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-outlined MuiFormLabel-colorPrimary Mui-required MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-outlined css-jzaigm" data-shrink="false" for="email" id="email-label">Email Address<style data-emotion="css sp68t1">.css-sp68t1.Mui-error{color:#d32f2f;}</style><span aria-hidden="true" class="MuiFormLabel-asterisk MuiInputLabel-asterisk css-sp68t1"> <!-- -->*</span></label><style data-emotion="css-global 1prfaxn">@-webkit-keyframes mui-auto-fill{from{display:block;}}@keyframes mui-auto-fill{from{display:block;}}@-webkit-keyframes mui-auto-fill-cancel{from{display:block;}}@keyframes mui-auto-fill-cancel{from{display:block;}}</style><style data-emotion="css 18bxsfn">.css-18bxsfn{font-family:inherit;font-weight:400;font-size:1rem;line-height:1.4375em;color:rgba(0, 0, 0, 0.87);box-sizing:border-box;position:relative;cursor:text;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;position:relative;border-radius:4px;}.css-18bxsfn.Mui-disabled{color:rgba(0, 0, 0, 0.38);cursor:default;}.css-18bxsfn:hover .MuiOutlinedInput-notchedOutline{border-color:rgba(0, 0, 0, 0.87);}@media (hover: none){.css-18bxsfn:hover .MuiOutlinedInput-notchedOutline{border-color:rgba(0, 0, 0, 0.23);}}.css-18bxsfn.Mui-focused .MuiOutlinedInput-notchedOutline{border-color:#1976d2;border-width:2px;}.css-18bxsfn.Mui-error .MuiOutlinedInput-notchedOutline{border-color:#d32f2f;}.css-18bxsfn.Mui-disabled .MuiOutlinedInput-notchedOutline{border-color:rgba(0, 0, 0, 0.26);}</style><div class="MuiInputBase-root MuiOutlinedInput-root MuiInputBase-colorPrimary MuiInputBase-fullWidth MuiInputBase-formControl css-18bxsfn"><style data-emotion="css 1x5jdmq">.css-1x5jdmq{font:inherit;letter-spacing:inherit;color:currentColor;padding:4px 0 5px;border:0;box-sizing:content-box;background:none;height:1.4375em;margin:0;-webkit-tap-highlight-color:transparent;display:block;min-width:0;width:100%;-webkit-animation-name:mui-auto-fill-cancel;animation-name:mui-auto-fill-cancel;-webkit-animation-duration:10ms;animation-duration:10ms;padding:16.5px 14px;}.css-1x5jdmq::-webkit-input-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-1x5jdmq::-moz-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-1x5jdmq:-ms-input-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-1x5jdmq::-ms-input-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-1x5jdmq:focus{outline:0;}.css-1x5jdmq:invalid{box-shadow:none;}.css-1x5jdmq::-webkit-search-decoration{-webkit-appearance:none;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq::-webkit-input-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq::-moz-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq:-ms-input-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq::-ms-input-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq:focus::-webkit-input-placeholder{opacity:0.42;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq:focus::-moz-placeholder{opacity:0.42;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq:focus:-ms-input-placeholder{opacity:0.42;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq:focus::-ms-input-placeholder{opacity:0.42;}.css-1x5jdmq.Mui-disabled{opacity:1;-webkit-text-fill-color:rgba(0, 0, 0, 0.38);}.css-1x5jdmq:-webkit-autofill{-webkit-animation-duration:5000s;animation-duration:5000s;-webkit-animation-name:mui-auto-fill;animation-name:mui-auto-fill;}.css-1x5jdmq:-webkit-autofill{border-radius:inherit;}</style><input aria-invalid="false" autoComplete="email" autofocus="" id="email" required="" type="text" class="MuiInputBase-input MuiOutlinedInput-input css-1x5jdmq" name="email" value=""/><style data-emotion="css 19w1uun">.css-19w1uun{border-color:rgba(0, 0, 0, 0.23);}</style><style data-emotion="css igs3ac">.css-igs3ac{text-align:left;position:absolute;bottom:0;right:0;top:-5px;left:0;margin:0;padding:0 8px;pointer-events:none;border-radius:inherit;border-style:solid;border-width:1px;overflow:hidden;min-width:0%;border-color:rgba(0, 0, 0, 0.23);}</style><fieldset aria-hidden="true" class="MuiOutlinedInput-notchedOutline css-igs3ac"><style data-emotion="css yjsfm1">.css-yjsfm1{float:unset;width:auto;overflow:hidden;display:block;padding:0;height:11px;font-size:0.75em;visibility:hidden;max-width:0.01px;-webkit-transition:max-width 50ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;transition:max-width 50ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;white-space:nowrap;}.css-yjsfm1>span{padding-left:5px;padding-right:5px;display:inline-block;opacity:0;visibility:visible;}</style><legend class="css-yjsfm1"><span>Email Address<!-- --> <!-- -->*</span></legend></fieldset></div></div><div class="MuiFormControl-root MuiFormControl-marginNormal MuiFormControl-fullWidth MuiTextField-root css-1u0h3mu"><label class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-outlined MuiFormLabel-colorPrimary Mui-required MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-outlined css-jzaigm" data-shrink="false" for="password" id="password-label">Password<span aria-hidden="true" class="MuiFormLabel-asterisk MuiInputLabel-asterisk css-sp68t1"> <!-- -->*</span></label><style data-emotion="css-global 1prfaxn">@-webkit-keyframes mui-auto-fill{from{display:block;}}@keyframes mui-auto-fill{from{display:block;}}@-webkit-keyframes mui-auto-fill-cancel{from{display:block;}}@keyframes mui-auto-fill-cancel{from{display:block;}}</style><div class="MuiInputBase-root MuiOutlinedInput-root MuiInputBase-colorPrimary MuiInputBase-fullWidth MuiInputBase-formControl css-18bxsfn"><input aria-invalid="false" autoComplete="current-password" id="password" required="" type="password" class="MuiInputBase-input MuiOutlinedInput-input css-1x5jdmq" name="password" value=""/><fieldset aria-hidden="true" class="MuiOutlinedInput-notchedOutline css-igs3ac"><legend class="css-yjsfm1"><span>Password<!-- --> <!-- -->*</span></legend></fieldset></div></div><style data-emotion="css 1pz372j">.css-1pz372j{font-family:inherit;font-weight:500;font-size:0.875rem;line-height:1.75;text-transform:uppercase;min-width:64px;padding:6px 16px;border-radius:4px;-webkit-transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;color:#fff;background-color:#1976d2;box-shadow:0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12);width:100%;margin-top:1em;}.css-1pz372j:hover{-webkit-text-decoration:none;text-decoration:none;background-color:#1565c0;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);}@media (hover: none){.css-1pz372j:hover{background-color:#1976d2;}}.css-1pz372j:active{box-shadow:0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12);}.css-1pz372j.Mui-focusVisible{box-shadow:0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12);}.css-1pz372j.Mui-disabled{color:rgba(0, 0, 0, 0.26);box-shadow:none;background-color:rgba(0, 0, 0, 0.12);}</style><style data-emotion="css 1j0w7x1">.css-1j0w7x1{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;font-family:inherit;font-weight:500;font-size:0.875rem;line-height:1.75;text-transform:uppercase;min-width:64px;padding:6px 16px;border-radius:4px;-webkit-transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;color:#fff;background-color:#1976d2;box-shadow:0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12);width:100%;margin-top:1em;}.css-1j0w7x1::-moz-focus-inner{border-style:none;}.css-1j0w7x1.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-1j0w7x1{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-1j0w7x1:hover{-webkit-text-decoration:none;text-decoration:none;background-color:#1565c0;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);}@media (hover: none){.css-1j0w7x1:hover{background-color:#1976d2;}}.css-1j0w7x1:active{box-shadow:0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12);}.css-1j0w7x1.Mui-focusVisible{box-shadow:0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12);}.css-1j0w7x1.Mui-disabled{color:rgba(0, 0, 0, 0.26);box-shadow:none;background-color:rgba(0, 0, 0, 0.12);}</style><button class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-fullWidth MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-fullWidth css-1j0w7x1" tabindex="0" type="submit">Sign In</button><p>Don't have an account yet? <a href="/auth/signup/">Sign up</a></p></form></main></div></div><script src="/_next/static/chunks/webpack-a35a338695cdcd13.js" async=""></script><script src="/_next/static/chunks/fd9d1056-a95b789c94c05ff6.js" async=""></script><script src="/_next/static/chunks/596-f3a131b7c336dd5d.js" async=""></script><script src="/_next/static/chunks/main-app-581ccf0003955b21.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/media/0e4fe491bf84089c-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n2:HL[\"/_next/static/media/3a04115668d8070d-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n3:HL[\"/_next/static/media/3a18fc8da1cdcd01-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n4:HL[\"/_next/static/media/627622453ef56b0d-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n5:HL[\"/_next/static/media/699512af39861afa-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n6:HL[\"/_next/static/media/934c4b7cb736f2a3-s.p.woff2\",{\"as\":\"font\","])</script><script>self.__next_f.push([1,"\"type\":\"font/woff2\"}]\n7:HL[\"/_next/static/css/51a17e8edcdfdbb2.css\",{\"as\":\"style\"}]\n0:\"$L8\"\n"])</script><script>self.__next_f.push([1,"9:I{\"id\":7948,\"chunks\":[\"272:static/chunks/webpack-a35a338695cdcd13.js\",\"971:static/chunks/fd9d1056-a95b789c94c05ff6.js\",\"596:static/chunks/596-f3a131b7c336dd5d.js\"],\"name\":\"default\",\"async\":false}\nb:I{\"id\":6628,\"chunks\":[\"272:static/chunks/webpack-a35a338695cdcd13.js\",\"971:static/chunks/fd9d1056-a95b789c94c05ff6.js\",\"596:static/chunks/596-f3a131b7c336dd5d.js\"],\"name\":\"\",\"async\":false}\nc:I{\"id\":2112,\"chunks\":[\"293:static/chunks/293-fa7b9b02f62ab5d8.js\",\"548:static/chunks/548-ffb8dd99ad3940cb.js\",\"82:static/"])</script><script>self.__next_f.push([1,"chunks/82-6e8c9ebc91ff932b.js\",\"886:static/chunks/886-ed0ff9e461fce55a.js\",\"445:static/chunks/445-74742af8ab1894f2.js\",\"185:static/chunks/app/layout-d634a41da738217d.js\"],\"name\":\"PageShell\",\"async\":false}\nd:I{\"id\":7767,\"chunks\":[\"272:static/chunks/webpack-a35a338695cdcd13.js\",\"971:static/chunks/fd9d1056-a95b789c94c05ff6.js\",\"596:static/chunks/596-f3a131b7c336dd5d.js\"],\"name\":\"default\",\"async\":false}\ne:I{\"id\":7920,\"chunks\":[\"272:static/chunks/webpack-a35a338695cdcd13.js\",\"971:static/chunks/fd9d1056-a95b789c9"])</script><script>self.__next_f.push([1,"4c05ff6.js\",\"596:static/chunks/596-f3a131b7c336dd5d.js\"],\"name\":\"default\",\"async\":false}\n10:I{\"id\":6722,\"chunks\":[\"293:static/chunks/293-fa7b9b02f62ab5d8.js\",\"808:static/chunks/808-b64f39fb5aa81c36.js\",\"548:static/chunks/548-ffb8dd99ad3940cb.js\",\"82:static/chunks/82-6e8c9ebc91ff932b.js\",\"975:static/chunks/975-41f6ad20b4031b30.js\",\"716:static/chunks/app/auth/login/page-1c10570a7e431039.js\"],\"name\":\"\",\"async\":false}\n"])</script><script>self.__next_f.push([1,"8:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/51a17e8edcdfdbb2.css\",\"precedence\":\"next\"}]],[\"$\",\"$L9\",null,{\"buildId\":\"vh97xvBohjbcaZhzFItCJ\",\"assetPrefix\":\"\",\"initialCanonicalUrl\":\"/auth/login/\",\"initialTree\":[\"\",{\"children\":[\"auth\",{\"children\":[\"login\",{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],\"initialHead\":\"$La\",\"globalErrorComponent\":\"$b\",\"children\":[null,[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"__className_c5054f\",\"children\":[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$Ld\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"loading\":\"$undefined\",\"loadingStyles\":\"$undefined\",\"hasLoading\":false,\"template\":[\"$\",\"$Le\",null,{}],\"templateStyles\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":\"$undefined\",\"childProp\":{\"current\":[\"$\",\"$Ld\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"auth\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"loading\":\"$undefined\",\"loadingStyles\":\"$undefined\",\"hasLoading\":false,\"template\":[\"$\",\"$Le\",null,{}],\"templateStyles\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"childProp\":{\"current\":[\"$\",\"$Ld\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"auth\",\"children\",\"login\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"loading\":\"$undefined\",\"loadingStyles\":\"$undefined\",\"hasLoading\":false,\"template\":[\"$\",\"$Le\",null,{}],\"templateStyles\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"childProp\":{\"current\":[\"$Lf\",[\"$\",\"$L10\",null,{}],null],\"segment\":\"__PAGE__\"},\"styles\":[]}],\"segment\":\"login\"},\"styles\":[]}],\"segment\":\"auth\"},\"styles\":[]}]}]}]}],null]}]]\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"1\",{\"children\":\"promptfoo\"}],[\"$\",\"meta\",\"2\",{\"name\":\"description\",\"content\":\"LLM testing and evaluation\"}],[\"$\",\"meta\",\"3\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:image\",\"content\":\"https://www.promptfoo.dev/img/thumbnail.png\"}],[\"$\",\"meta\",\"5\",{\"name\":\"twitter:card\",\"content\":\"summary\"}],[\"$\",\"meta\",\"6\",{\"name\":\"twitter:image\",\"content\":\"https://www.promptfoo.dev/img/thumbnail.png\"}],[\"$\",\"meta\",\"7\",{\"name\":\"next-size-adjust\"}]]\n"])</script><script>self.__next_f.push([1,"f:null\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><link rel="preload" as="font" href="/_next/static/media/0e4fe491bf84089c-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/3a04115668d8070d-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/3a18fc8da1cdcd01-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/627622453ef56b0d-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/699512af39861afa-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/934c4b7cb736f2a3-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/51a17e8edcdfdbb2.css" data-precedence="next"/><link rel="preload" href="/_next/static/chunks/webpack-a35a338695cdcd13.js" as="script"/><link rel="preload" href="/_next/static/chunks/fd9d1056-a95b789c94c05ff6.js" as="script"/><link rel="preload" href="/_next/static/chunks/596-f3a131b7c336dd5d.js" as="script"/><link rel="preload" href="/_next/static/chunks/main-app-581ccf0003955b21.js" as="script"/><title>promptfoo</title><meta name="description" content="LLM testing and evaluation"/><meta name="viewport" content="width=device-width, initial-scale=1"/><meta property="og:image" content="https://www.promptfoo.dev/img/thumbnail.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://www.promptfoo.dev/img/thumbnail.png"/><meta name="next-size-adjust"/><script src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script></head><body class="__className_c5054f"><div><style data-emotion="css jj2ztu">.css-jj2ztu{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-jj2ztu>:not(style):not(style){margin:0;}.css-jj2ztu>:not(style)~:not(style){margin-left:16px;}</style><div class="MuiStack-root nav css-jj2ztu"><div class="logo MuiBox-root css-0"><img alt="Promptfoo logo" loading="lazy" width="25" height="25" decoding="async" data-nimg="1" style="color:transparent" src="/logo.svg"/> <span>promptfoo</span></div><a class="" href="/setup/">New Eval</a><a class="" href="/eval/">Evals</a><a class="" href="/prompts/">Prompts</a><a class="" href="/datasets/">Datasets</a><div class="right-aligned"><div class="dark-mode-toggle"><style data-emotion="css vubbuv">.css-vubbuv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;}</style><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv" focusable="false" aria-hidden="true" viewBox="0 0 24 24" data-testid="LightModeIcon"><path d="M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zM2 13h2c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1s.45 1 1 1zm18 0h2c.55 0 1-.45 1-1s-.45-1-1-1h-2c-.55 0-1 .45-1 1s.45 1 1 1zM11 2v2c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1zm0 18v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1zM5.99 4.58c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0s.39-1.03 0-1.41L5.99 4.58zm12.37 12.37c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0 .39-.39.39-1.03 0-1.41l-1.06-1.06zm1.06-10.96c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06zM7.05 18.36c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06z"></path></svg></div></div></div><div><style data-emotion="css hltdia">.css-hltdia{width:100%;margin-left:auto;box-sizing:border-box;margin-right:auto;display:block;padding-left:16px;padding-right:16px;}@media (min-width:600px){.css-hltdia{padding-left:24px;padding-right:24px;}}@media (min-width:0px){.css-hltdia{max-width:444px;}}</style><main class="MuiContainer-root MuiContainer-maxWidthXs css-hltdia"><style data-emotion="css 1d79rw6">.css-1d79rw6{margin:0;font-family:inherit;font-weight:400;font-size:1.5rem;line-height:1.334;}</style><h1 class="MuiTypography-root MuiTypography-h5 css-1d79rw6">Sign in</h1><form><style data-emotion="css 1u0h3mu">.css-1u0h3mu{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;position:relative;min-width:0;padding:0;margin:0;border:0;vertical-align:top;margin-top:16px;margin-bottom:8px;width:100%;}</style><div class="MuiFormControl-root MuiFormControl-marginNormal MuiFormControl-fullWidth MuiTextField-root css-1u0h3mu"><style data-emotion="css nd1nwr">.css-nd1nwr{display:block;transform-origin:top left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 24px);position:absolute;left:0;top:0;-webkit-transform:translate(14px, 16px) scale(1);-moz-transform:translate(14px, 16px) scale(1);-ms-transform:translate(14px, 16px) scale(1);transform:translate(14px, 16px) scale(1);-webkit-transition:color 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,-webkit-transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,max-width 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;transition:color 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,max-width 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;z-index:1;pointer-events:none;}</style><style data-emotion="css jzaigm">.css-jzaigm{color:rgba(0, 0, 0, 0.6);font-family:inherit;font-weight:400;font-size:1rem;line-height:1.4375em;padding:0;position:relative;display:block;transform-origin:top left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 24px);position:absolute;left:0;top:0;-webkit-transform:translate(14px, 16px) scale(1);-moz-transform:translate(14px, 16px) scale(1);-ms-transform:translate(14px, 16px) scale(1);transform:translate(14px, 16px) scale(1);-webkit-transition:color 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,-webkit-transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,max-width 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;transition:color 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,max-width 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;z-index:1;pointer-events:none;}.css-jzaigm.Mui-focused{color:#1976d2;}.css-jzaigm.Mui-disabled{color:rgba(0, 0, 0, 0.38);}.css-jzaigm.Mui-error{color:#d32f2f;}</style><label class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-outlined MuiFormLabel-colorPrimary Mui-required MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-outlined css-jzaigm" data-shrink="false" for="email" id="email-label">Email Address<style data-emotion="css sp68t1">.css-sp68t1.Mui-error{color:#d32f2f;}</style><span aria-hidden="true" class="MuiFormLabel-asterisk MuiInputLabel-asterisk css-sp68t1"> <!-- -->*</span></label><style data-emotion="css-global 1prfaxn">@-webkit-keyframes mui-auto-fill{from{display:block;}}@keyframes mui-auto-fill{from{display:block;}}@-webkit-keyframes mui-auto-fill-cancel{from{display:block;}}@keyframes mui-auto-fill-cancel{from{display:block;}}</style><style data-emotion="css 18bxsfn">.css-18bxsfn{font-family:inherit;font-weight:400;font-size:1rem;line-height:1.4375em;color:rgba(0, 0, 0, 0.87);box-sizing:border-box;position:relative;cursor:text;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;position:relative;border-radius:4px;}.css-18bxsfn.Mui-disabled{color:rgba(0, 0, 0, 0.38);cursor:default;}.css-18bxsfn:hover .MuiOutlinedInput-notchedOutline{border-color:rgba(0, 0, 0, 0.87);}@media (hover: none){.css-18bxsfn:hover .MuiOutlinedInput-notchedOutline{border-color:rgba(0, 0, 0, 0.23);}}.css-18bxsfn.Mui-focused .MuiOutlinedInput-notchedOutline{border-color:#1976d2;border-width:2px;}.css-18bxsfn.Mui-error .MuiOutlinedInput-notchedOutline{border-color:#d32f2f;}.css-18bxsfn.Mui-disabled .MuiOutlinedInput-notchedOutline{border-color:rgba(0, 0, 0, 0.26);}</style><div class="MuiInputBase-root MuiOutlinedInput-root MuiInputBase-colorPrimary MuiInputBase-fullWidth MuiInputBase-formControl css-18bxsfn"><style data-emotion="css 1x5jdmq">.css-1x5jdmq{font:inherit;letter-spacing:inherit;color:currentColor;padding:4px 0 5px;border:0;box-sizing:content-box;background:none;height:1.4375em;margin:0;-webkit-tap-highlight-color:transparent;display:block;min-width:0;width:100%;-webkit-animation-name:mui-auto-fill-cancel;animation-name:mui-auto-fill-cancel;-webkit-animation-duration:10ms;animation-duration:10ms;padding:16.5px 14px;}.css-1x5jdmq::-webkit-input-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-1x5jdmq::-moz-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-1x5jdmq:-ms-input-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-1x5jdmq::-ms-input-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-1x5jdmq:focus{outline:0;}.css-1x5jdmq:invalid{box-shadow:none;}.css-1x5jdmq::-webkit-search-decoration{-webkit-appearance:none;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq::-webkit-input-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq::-moz-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq:-ms-input-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq::-ms-input-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq:focus::-webkit-input-placeholder{opacity:0.42;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq:focus::-moz-placeholder{opacity:0.42;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq:focus:-ms-input-placeholder{opacity:0.42;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq:focus::-ms-input-placeholder{opacity:0.42;}.css-1x5jdmq.Mui-disabled{opacity:1;-webkit-text-fill-color:rgba(0, 0, 0, 0.38);}.css-1x5jdmq:-webkit-autofill{-webkit-animation-duration:5000s;animation-duration:5000s;-webkit-animation-name:mui-auto-fill;animation-name:mui-auto-fill;}.css-1x5jdmq:-webkit-autofill{border-radius:inherit;}</style><input aria-invalid="false" autoComplete="email" autofocus="" id="email" required="" type="text" class="MuiInputBase-input MuiOutlinedInput-input css-1x5jdmq" name="email" value=""/><style data-emotion="css 19w1uun">.css-19w1uun{border-color:rgba(0, 0, 0, 0.23);}</style><style data-emotion="css igs3ac">.css-igs3ac{text-align:left;position:absolute;bottom:0;right:0;top:-5px;left:0;margin:0;padding:0 8px;pointer-events:none;border-radius:inherit;border-style:solid;border-width:1px;overflow:hidden;min-width:0%;border-color:rgba(0, 0, 0, 0.23);}</style><fieldset aria-hidden="true" class="MuiOutlinedInput-notchedOutline css-igs3ac"><style data-emotion="css yjsfm1">.css-yjsfm1{float:unset;width:auto;overflow:hidden;display:block;padding:0;height:11px;font-size:0.75em;visibility:hidden;max-width:0.01px;-webkit-transition:max-width 50ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;transition:max-width 50ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;white-space:nowrap;}.css-yjsfm1>span{padding-left:5px;padding-right:5px;display:inline-block;opacity:0;visibility:visible;}</style><legend class="css-yjsfm1"><span>Email Address<!-- --> <!-- -->*</span></legend></fieldset></div></div><div class="MuiFormControl-root MuiFormControl-marginNormal MuiFormControl-fullWidth MuiTextField-root css-1u0h3mu"><label class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-outlined MuiFormLabel-colorPrimary Mui-required MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-outlined css-jzaigm" data-shrink="false" for="password" id="password-label">Password<span aria-hidden="true" class="MuiFormLabel-asterisk MuiInputLabel-asterisk css-sp68t1"> <!-- -->*</span></label><style data-emotion="css-global 1prfaxn">@-webkit-keyframes mui-auto-fill{from{display:block;}}@keyframes mui-auto-fill{from{display:block;}}@-webkit-keyframes mui-auto-fill-cancel{from{display:block;}}@keyframes mui-auto-fill-cancel{from{display:block;}}</style><div class="MuiInputBase-root MuiOutlinedInput-root MuiInputBase-colorPrimary MuiInputBase-fullWidth MuiInputBase-formControl css-18bxsfn"><input aria-invalid="false" autoComplete="current-password" id="password" required="" type="password" class="MuiInputBase-input MuiOutlinedInput-input css-1x5jdmq" name="password" value=""/><fieldset aria-hidden="true" class="MuiOutlinedInput-notchedOutline css-igs3ac"><legend class="css-yjsfm1"><span>Password<!-- --> <!-- -->*</span></legend></fieldset></div></div><style data-emotion="css 1pz372j">.css-1pz372j{font-family:inherit;font-weight:500;font-size:0.875rem;line-height:1.75;text-transform:uppercase;min-width:64px;padding:6px 16px;border-radius:4px;-webkit-transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;color:#fff;background-color:#1976d2;box-shadow:0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12);width:100%;margin-top:1em;}.css-1pz372j:hover{-webkit-text-decoration:none;text-decoration:none;background-color:#1565c0;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);}@media (hover: none){.css-1pz372j:hover{background-color:#1976d2;}}.css-1pz372j:active{box-shadow:0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12);}.css-1pz372j.Mui-focusVisible{box-shadow:0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12);}.css-1pz372j.Mui-disabled{color:rgba(0, 0, 0, 0.26);box-shadow:none;background-color:rgba(0, 0, 0, 0.12);}</style><style data-emotion="css 1j0w7x1">.css-1j0w7x1{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;font-family:inherit;font-weight:500;font-size:0.875rem;line-height:1.75;text-transform:uppercase;min-width:64px;padding:6px 16px;border-radius:4px;-webkit-transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;color:#fff;background-color:#1976d2;box-shadow:0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12);width:100%;margin-top:1em;}.css-1j0w7x1::-moz-focus-inner{border-style:none;}.css-1j0w7x1.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-1j0w7x1{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-1j0w7x1:hover{-webkit-text-decoration:none;text-decoration:none;background-color:#1565c0;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);}@media (hover: none){.css-1j0w7x1:hover{background-color:#1976d2;}}.css-1j0w7x1:active{box-shadow:0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12);}.css-1j0w7x1.Mui-focusVisible{box-shadow:0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12);}.css-1j0w7x1.Mui-disabled{color:rgba(0, 0, 0, 0.26);box-shadow:none;background-color:rgba(0, 0, 0, 0.12);}</style><button class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-fullWidth MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-fullWidth css-1j0w7x1" tabindex="0" type="submit">Sign In</button><p>Don't have an account yet? <a href="/auth/signup/">Sign up</a></p></form></main></div></div><script src="/_next/static/chunks/webpack-a35a338695cdcd13.js" async=""></script><script src="/_next/static/chunks/fd9d1056-a95b789c94c05ff6.js" async=""></script><script src="/_next/static/chunks/596-f3a131b7c336dd5d.js" async=""></script><script src="/_next/static/chunks/main-app-581ccf0003955b21.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/media/0e4fe491bf84089c-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n2:HL[\"/_next/static/media/3a04115668d8070d-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n3:HL[\"/_next/static/media/3a18fc8da1cdcd01-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n4:HL[\"/_next/static/media/627622453ef56b0d-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n5:HL[\"/_next/static/media/699512af39861afa-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n6:HL[\"/_next/static/media/934c4b7cb736f2a3-s.p.woff2\",{\"as\":\"font\","])</script><script>self.__next_f.push([1,"\"type\":\"font/woff2\"}]\n7:HL[\"/_next/static/css/51a17e8edcdfdbb2.css\",{\"as\":\"style\"}]\n0:\"$L8\"\n"])</script><script>self.__next_f.push([1,"9:I{\"id\":7948,\"chunks\":[\"272:static/chunks/webpack-a35a338695cdcd13.js\",\"971:static/chunks/fd9d1056-a95b789c94c05ff6.js\",\"596:static/chunks/596-f3a131b7c336dd5d.js\"],\"name\":\"default\",\"async\":false}\nb:I{\"id\":6628,\"chunks\":[\"272:static/chunks/webpack-a35a338695cdcd13.js\",\"971:static/chunks/fd9d1056-a95b789c94c05ff6.js\",\"596:static/chunks/596-f3a131b7c336dd5d.js\"],\"name\":\"\",\"async\":false}\nc:I{\"id\":2112,\"chunks\":[\"293:static/chunks/293-fa7b9b02f62ab5d8.js\",\"548:static/chunks/548-ffb8dd99ad3940cb.js\",\"82:static/"])</script><script>self.__next_f.push([1,"chunks/82-6e8c9ebc91ff932b.js\",\"886:static/chunks/886-ed0ff9e461fce55a.js\",\"445:static/chunks/445-74742af8ab1894f2.js\",\"185:static/chunks/app/layout-d634a41da738217d.js\"],\"name\":\"PageShell\",\"async\":false}\nd:I{\"id\":7767,\"chunks\":[\"272:static/chunks/webpack-a35a338695cdcd13.js\",\"971:static/chunks/fd9d1056-a95b789c94c05ff6.js\",\"596:static/chunks/596-f3a131b7c336dd5d.js\"],\"name\":\"default\",\"async\":false}\ne:I{\"id\":7920,\"chunks\":[\"272:static/chunks/webpack-a35a338695cdcd13.js\",\"971:static/chunks/fd9d1056-a95b789c9"])</script><script>self.__next_f.push([1,"4c05ff6.js\",\"596:static/chunks/596-f3a131b7c336dd5d.js\"],\"name\":\"default\",\"async\":false}\n10:I{\"id\":6722,\"chunks\":[\"293:static/chunks/293-fa7b9b02f62ab5d8.js\",\"808:static/chunks/808-b64f39fb5aa81c36.js\",\"548:static/chunks/548-ffb8dd99ad3940cb.js\",\"82:static/chunks/82-6e8c9ebc91ff932b.js\",\"975:static/chunks/975-41f6ad20b4031b30.js\",\"716:static/chunks/app/auth/login/page-1c10570a7e431039.js\"],\"name\":\"\",\"async\":false}\n"])</script><script>self.__next_f.push([1,"8:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/51a17e8edcdfdbb2.css\",\"precedence\":\"next\"}]],[\"$\",\"$L9\",null,{\"buildId\":\"cQksOHrqbI8gLOJlpyPzu\",\"assetPrefix\":\"\",\"initialCanonicalUrl\":\"/auth/login/\",\"initialTree\":[\"\",{\"children\":[\"auth\",{\"children\":[\"login\",{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],\"initialHead\":\"$La\",\"globalErrorComponent\":\"$b\",\"children\":[null,[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"__className_c5054f\",\"children\":[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$Ld\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"loading\":\"$undefined\",\"loadingStyles\":\"$undefined\",\"hasLoading\":false,\"template\":[\"$\",\"$Le\",null,{}],\"templateStyles\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":\"$undefined\",\"childProp\":{\"current\":[\"$\",\"$Ld\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"auth\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"loading\":\"$undefined\",\"loadingStyles\":\"$undefined\",\"hasLoading\":false,\"template\":[\"$\",\"$Le\",null,{}],\"templateStyles\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"childProp\":{\"current\":[\"$\",\"$Ld\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"auth\",\"children\",\"login\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"loading\":\"$undefined\",\"loadingStyles\":\"$undefined\",\"hasLoading\":false,\"template\":[\"$\",\"$Le\",null,{}],\"templateStyles\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"childProp\":{\"current\":[\"$Lf\",[\"$\",\"$L10\",null,{}],null],\"segment\":\"__PAGE__\"},\"styles\":[]}],\"segment\":\"login\"},\"styles\":[]}],\"segment\":\"auth\"},\"styles\":[]}]}]}]}],null]}]]\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"1\",{\"children\":\"promptfoo\"}],[\"$\",\"meta\",\"2\",{\"name\":\"description\",\"content\":\"LLM testing and evaluation\"}],[\"$\",\"meta\",\"3\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:image\",\"content\":\"https://www.promptfoo.dev/img/thumbnail.png\"}],[\"$\",\"meta\",\"5\",{\"name\":\"twitter:card\",\"content\":\"summary\"}],[\"$\",\"meta\",\"6\",{\"name\":\"twitter:image\",\"content\":\"https://www.promptfoo.dev/img/thumbnail.png\"}],[\"$\",\"meta\",\"7\",{\"name\":\"next-size-adjust\"}]]\n"])</script><script>self.__next_f.push([1,"f:null\n"])</script></body></html>
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
5:HL["/_next/static/media/699512af39861afa-s.p.woff2",{"as":"font","type":"font/woff2"}]
|
|
6
6
|
6:HL["/_next/static/media/934c4b7cb736f2a3-s.p.woff2",{"as":"font","type":"font/woff2"}]
|
|
7
7
|
7:HL["/_next/static/css/51a17e8edcdfdbb2.css",{"as":"style"}]
|
|
8
|
-
0:["
|
|
8
|
+
0:["cQksOHrqbI8gLOJlpyPzu",[[["",{"children":["auth",{"children":["login",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],"$L8",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/51a17e8edcdfdbb2.css","precedence":"next"}]],"$L9"]]]]
|
|
9
9
|
a:I{"id":2112,"chunks":["293:static/chunks/293-fa7b9b02f62ab5d8.js","548:static/chunks/548-ffb8dd99ad3940cb.js","82:static/chunks/82-6e8c9ebc91ff932b.js","886:static/chunks/886-ed0ff9e461fce55a.js","445:static/chunks/445-74742af8ab1894f2.js","185:static/chunks/app/layout-d634a41da738217d.js"],"name":"PageShell","async":false}
|
|
10
10
|
b:I{"id":7767,"chunks":["272:static/chunks/webpack-a35a338695cdcd13.js","971:static/chunks/fd9d1056-a95b789c94c05ff6.js","596:static/chunks/596-f3a131b7c336dd5d.js"],"name":"default","async":false}
|
|
11
11
|
c:I{"id":7920,"chunks":["272:static/chunks/webpack-a35a338695cdcd13.js","971:static/chunks/fd9d1056-a95b789c94c05ff6.js","596:static/chunks/596-f3a131b7c336dd5d.js"],"name":"default","async":false}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><link rel="preload" as="font" href="/_next/static/media/0e4fe491bf84089c-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/3a04115668d8070d-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/3a18fc8da1cdcd01-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/627622453ef56b0d-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/699512af39861afa-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/934c4b7cb736f2a3-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/51a17e8edcdfdbb2.css" data-precedence="next"/><link rel="preload" href="/_next/static/chunks/webpack-a35a338695cdcd13.js" as="script"/><link rel="preload" href="/_next/static/chunks/fd9d1056-a95b789c94c05ff6.js" as="script"/><link rel="preload" href="/_next/static/chunks/596-f3a131b7c336dd5d.js" as="script"/><link rel="preload" href="/_next/static/chunks/main-app-581ccf0003955b21.js" as="script"/><title>promptfoo</title><meta name="description" content="LLM testing and evaluation"/><meta name="viewport" content="width=device-width, initial-scale=1"/><meta property="og:image" content="https://www.promptfoo.dev/img/thumbnail.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://www.promptfoo.dev/img/thumbnail.png"/><meta name="next-size-adjust"/><script src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script></head><body class="__className_c5054f"><div><style data-emotion="css jj2ztu">.css-jj2ztu{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-jj2ztu>:not(style):not(style){margin:0;}.css-jj2ztu>:not(style)~:not(style){margin-left:16px;}</style><div class="MuiStack-root nav css-jj2ztu"><div class="logo MuiBox-root css-0"><img alt="Promptfoo logo" loading="lazy" width="25" height="25" decoding="async" data-nimg="1" style="color:transparent" src="/logo.svg"/> <span>promptfoo</span></div><a class="" href="/setup/">New Eval</a><a class="" href="/eval/">Evals</a><a class="" href="/prompts/">Prompts</a><a class="" href="/datasets/">Datasets</a><div class="right-aligned"><div class="dark-mode-toggle"><style data-emotion="css vubbuv">.css-vubbuv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;}</style><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv" focusable="false" aria-hidden="true" viewBox="0 0 24 24" data-testid="LightModeIcon"><path d="M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zM2 13h2c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1s.45 1 1 1zm18 0h2c.55 0 1-.45 1-1s-.45-1-1-1h-2c-.55 0-1 .45-1 1s.45 1 1 1zM11 2v2c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1zm0 18v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1zM5.99 4.58c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0s.39-1.03 0-1.41L5.99 4.58zm12.37 12.37c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0 .39-.39.39-1.03 0-1.41l-1.06-1.06zm1.06-10.96c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06zM7.05 18.36c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06z"></path></svg></div></div></div><div><style data-emotion="css hltdia">.css-hltdia{width:100%;margin-left:auto;box-sizing:border-box;margin-right:auto;display:block;padding-left:16px;padding-right:16px;}@media (min-width:600px){.css-hltdia{padding-left:24px;padding-right:24px;}}@media (min-width:0px){.css-hltdia{max-width:444px;}}</style><main class="MuiContainer-root MuiContainer-maxWidthXs css-hltdia"><style data-emotion="css 1d79rw6">.css-1d79rw6{margin:0;font-family:inherit;font-weight:400;font-size:1.5rem;line-height:1.334;}</style><h1 class="MuiTypography-root MuiTypography-h5 css-1d79rw6">Sign up</h1><p><style data-emotion="css 100vuwi">.css-100vuwi{margin:0;font-family:inherit;font-weight:400;font-size:1rem;line-height:1.5;}</style><p class="MuiTypography-root MuiTypography-body1 css-100vuwi">An account helps you easily save, view, and share your evals.</p></p><form><style data-emotion="css 1u0h3mu">.css-1u0h3mu{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;position:relative;min-width:0;padding:0;margin:0;border:0;vertical-align:top;margin-top:16px;margin-bottom:8px;width:100%;}</style><div class="MuiFormControl-root MuiFormControl-marginNormal MuiFormControl-fullWidth MuiTextField-root css-1u0h3mu"><style data-emotion="css nd1nwr">.css-nd1nwr{display:block;transform-origin:top left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 24px);position:absolute;left:0;top:0;-webkit-transform:translate(14px, 16px) scale(1);-moz-transform:translate(14px, 16px) scale(1);-ms-transform:translate(14px, 16px) scale(1);transform:translate(14px, 16px) scale(1);-webkit-transition:color 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,-webkit-transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,max-width 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;transition:color 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,max-width 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;z-index:1;pointer-events:none;}</style><style data-emotion="css jzaigm">.css-jzaigm{color:rgba(0, 0, 0, 0.6);font-family:inherit;font-weight:400;font-size:1rem;line-height:1.4375em;padding:0;position:relative;display:block;transform-origin:top left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 24px);position:absolute;left:0;top:0;-webkit-transform:translate(14px, 16px) scale(1);-moz-transform:translate(14px, 16px) scale(1);-ms-transform:translate(14px, 16px) scale(1);transform:translate(14px, 16px) scale(1);-webkit-transition:color 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,-webkit-transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,max-width 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;transition:color 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,max-width 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;z-index:1;pointer-events:none;}.css-jzaigm.Mui-focused{color:#1976d2;}.css-jzaigm.Mui-disabled{color:rgba(0, 0, 0, 0.38);}.css-jzaigm.Mui-error{color:#d32f2f;}</style><label class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-outlined MuiFormLabel-colorPrimary Mui-required MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-outlined css-jzaigm" data-shrink="false" for="email" id="email-label">Email Address<style data-emotion="css sp68t1">.css-sp68t1.Mui-error{color:#d32f2f;}</style><span aria-hidden="true" class="MuiFormLabel-asterisk MuiInputLabel-asterisk css-sp68t1"> <!-- -->*</span></label><style data-emotion="css-global 1prfaxn">@-webkit-keyframes mui-auto-fill{from{display:block;}}@keyframes mui-auto-fill{from{display:block;}}@-webkit-keyframes mui-auto-fill-cancel{from{display:block;}}@keyframes mui-auto-fill-cancel{from{display:block;}}</style><style data-emotion="css 18bxsfn">.css-18bxsfn{font-family:inherit;font-weight:400;font-size:1rem;line-height:1.4375em;color:rgba(0, 0, 0, 0.87);box-sizing:border-box;position:relative;cursor:text;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;position:relative;border-radius:4px;}.css-18bxsfn.Mui-disabled{color:rgba(0, 0, 0, 0.38);cursor:default;}.css-18bxsfn:hover .MuiOutlinedInput-notchedOutline{border-color:rgba(0, 0, 0, 0.87);}@media (hover: none){.css-18bxsfn:hover .MuiOutlinedInput-notchedOutline{border-color:rgba(0, 0, 0, 0.23);}}.css-18bxsfn.Mui-focused .MuiOutlinedInput-notchedOutline{border-color:#1976d2;border-width:2px;}.css-18bxsfn.Mui-error .MuiOutlinedInput-notchedOutline{border-color:#d32f2f;}.css-18bxsfn.Mui-disabled .MuiOutlinedInput-notchedOutline{border-color:rgba(0, 0, 0, 0.26);}</style><div class="MuiInputBase-root MuiOutlinedInput-root MuiInputBase-colorPrimary MuiInputBase-fullWidth MuiInputBase-formControl css-18bxsfn"><style data-emotion="css 1x5jdmq">.css-1x5jdmq{font:inherit;letter-spacing:inherit;color:currentColor;padding:4px 0 5px;border:0;box-sizing:content-box;background:none;height:1.4375em;margin:0;-webkit-tap-highlight-color:transparent;display:block;min-width:0;width:100%;-webkit-animation-name:mui-auto-fill-cancel;animation-name:mui-auto-fill-cancel;-webkit-animation-duration:10ms;animation-duration:10ms;padding:16.5px 14px;}.css-1x5jdmq::-webkit-input-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-1x5jdmq::-moz-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-1x5jdmq:-ms-input-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-1x5jdmq::-ms-input-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-1x5jdmq:focus{outline:0;}.css-1x5jdmq:invalid{box-shadow:none;}.css-1x5jdmq::-webkit-search-decoration{-webkit-appearance:none;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq::-webkit-input-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq::-moz-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq:-ms-input-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq::-ms-input-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq:focus::-webkit-input-placeholder{opacity:0.42;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq:focus::-moz-placeholder{opacity:0.42;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq:focus:-ms-input-placeholder{opacity:0.42;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq:focus::-ms-input-placeholder{opacity:0.42;}.css-1x5jdmq.Mui-disabled{opacity:1;-webkit-text-fill-color:rgba(0, 0, 0, 0.38);}.css-1x5jdmq:-webkit-autofill{-webkit-animation-duration:5000s;animation-duration:5000s;-webkit-animation-name:mui-auto-fill;animation-name:mui-auto-fill;}.css-1x5jdmq:-webkit-autofill{border-radius:inherit;}</style><input aria-invalid="false" autoComplete="email" autofocus="" id="email" required="" type="text" class="MuiInputBase-input MuiOutlinedInput-input css-1x5jdmq" name="email" value=""/><style data-emotion="css 19w1uun">.css-19w1uun{border-color:rgba(0, 0, 0, 0.23);}</style><style data-emotion="css igs3ac">.css-igs3ac{text-align:left;position:absolute;bottom:0;right:0;top:-5px;left:0;margin:0;padding:0 8px;pointer-events:none;border-radius:inherit;border-style:solid;border-width:1px;overflow:hidden;min-width:0%;border-color:rgba(0, 0, 0, 0.23);}</style><fieldset aria-hidden="true" class="MuiOutlinedInput-notchedOutline css-igs3ac"><style data-emotion="css yjsfm1">.css-yjsfm1{float:unset;width:auto;overflow:hidden;display:block;padding:0;height:11px;font-size:0.75em;visibility:hidden;max-width:0.01px;-webkit-transition:max-width 50ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;transition:max-width 50ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;white-space:nowrap;}.css-yjsfm1>span{padding-left:5px;padding-right:5px;display:inline-block;opacity:0;visibility:visible;}</style><legend class="css-yjsfm1"><span>Email Address<!-- --> <!-- -->*</span></legend></fieldset></div></div><div class="MuiFormControl-root MuiFormControl-marginNormal MuiFormControl-fullWidth MuiTextField-root css-1u0h3mu"><label class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-outlined MuiFormLabel-colorPrimary Mui-required MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-outlined css-jzaigm" data-shrink="false" for="password" id="password-label">Password<span aria-hidden="true" class="MuiFormLabel-asterisk MuiInputLabel-asterisk css-sp68t1"> <!-- -->*</span></label><style data-emotion="css-global 1prfaxn">@-webkit-keyframes mui-auto-fill{from{display:block;}}@keyframes mui-auto-fill{from{display:block;}}@-webkit-keyframes mui-auto-fill-cancel{from{display:block;}}@keyframes mui-auto-fill-cancel{from{display:block;}}</style><div class="MuiInputBase-root MuiOutlinedInput-root MuiInputBase-colorPrimary MuiInputBase-fullWidth MuiInputBase-formControl css-18bxsfn"><input aria-invalid="false" autoComplete="current-password" id="password" required="" type="password" class="MuiInputBase-input MuiOutlinedInput-input css-1x5jdmq" name="password" value=""/><fieldset aria-hidden="true" class="MuiOutlinedInput-notchedOutline css-igs3ac"><legend class="css-yjsfm1"><span>Password<!-- --> <!-- -->*</span></legend></fieldset></div></div><style data-emotion="css 1pz372j">.css-1pz372j{font-family:inherit;font-weight:500;font-size:0.875rem;line-height:1.75;text-transform:uppercase;min-width:64px;padding:6px 16px;border-radius:4px;-webkit-transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;color:#fff;background-color:#1976d2;box-shadow:0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12);width:100%;margin-top:1em;}.css-1pz372j:hover{-webkit-text-decoration:none;text-decoration:none;background-color:#1565c0;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);}@media (hover: none){.css-1pz372j:hover{background-color:#1976d2;}}.css-1pz372j:active{box-shadow:0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12);}.css-1pz372j.Mui-focusVisible{box-shadow:0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12);}.css-1pz372j.Mui-disabled{color:rgba(0, 0, 0, 0.26);box-shadow:none;background-color:rgba(0, 0, 0, 0.12);}</style><style data-emotion="css 1j0w7x1">.css-1j0w7x1{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;font-family:inherit;font-weight:500;font-size:0.875rem;line-height:1.75;text-transform:uppercase;min-width:64px;padding:6px 16px;border-radius:4px;-webkit-transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;color:#fff;background-color:#1976d2;box-shadow:0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12);width:100%;margin-top:1em;}.css-1j0w7x1::-moz-focus-inner{border-style:none;}.css-1j0w7x1.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-1j0w7x1{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-1j0w7x1:hover{-webkit-text-decoration:none;text-decoration:none;background-color:#1565c0;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);}@media (hover: none){.css-1j0w7x1:hover{background-color:#1976d2;}}.css-1j0w7x1:active{box-shadow:0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12);}.css-1j0w7x1.Mui-focusVisible{box-shadow:0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12);}.css-1j0w7x1.Mui-disabled{color:rgba(0, 0, 0, 0.26);box-shadow:none;background-color:rgba(0, 0, 0, 0.12);}</style><button class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-fullWidth MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-fullWidth css-1j0w7x1" tabindex="0" type="submit">Sign Up</button><p>Already have an account? <a href="/auth/login/">Sign in</a></p></form></main></div></div><script src="/_next/static/chunks/webpack-a35a338695cdcd13.js" async=""></script><script src="/_next/static/chunks/fd9d1056-a95b789c94c05ff6.js" async=""></script><script src="/_next/static/chunks/596-f3a131b7c336dd5d.js" async=""></script><script src="/_next/static/chunks/main-app-581ccf0003955b21.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/media/0e4fe491bf84089c-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n2:HL[\"/_next/static/media/3a04115668d8070d-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n3:HL[\"/_next/static/media/3a18fc8da1cdcd01-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n4:HL[\"/_next/static/media/627622453ef56b0d-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n5:HL[\"/_next/static/media/699512af39861afa-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n6:HL[\"/_next/static/media/934c4b7cb736f2a3-s.p.woff2\",{\"as\":\"font\","])</script><script>self.__next_f.push([1,"\"type\":\"font/woff2\"}]\n7:HL[\"/_next/static/css/51a17e8edcdfdbb2.css\",{\"as\":\"style\"}]\n0:\"$L8\"\n"])</script><script>self.__next_f.push([1,"9:I{\"id\":7948,\"chunks\":[\"272:static/chunks/webpack-a35a338695cdcd13.js\",\"971:static/chunks/fd9d1056-a95b789c94c05ff6.js\",\"596:static/chunks/596-f3a131b7c336dd5d.js\"],\"name\":\"default\",\"async\":false}\nb:I{\"id\":6628,\"chunks\":[\"272:static/chunks/webpack-a35a338695cdcd13.js\",\"971:static/chunks/fd9d1056-a95b789c94c05ff6.js\",\"596:static/chunks/596-f3a131b7c336dd5d.js\"],\"name\":\"\",\"async\":false}\nc:I{\"id\":2112,\"chunks\":[\"293:static/chunks/293-fa7b9b02f62ab5d8.js\",\"548:static/chunks/548-ffb8dd99ad3940cb.js\",\"82:static/"])</script><script>self.__next_f.push([1,"chunks/82-6e8c9ebc91ff932b.js\",\"886:static/chunks/886-ed0ff9e461fce55a.js\",\"445:static/chunks/445-74742af8ab1894f2.js\",\"185:static/chunks/app/layout-d634a41da738217d.js\"],\"name\":\"PageShell\",\"async\":false}\nd:I{\"id\":7767,\"chunks\":[\"272:static/chunks/webpack-a35a338695cdcd13.js\",\"971:static/chunks/fd9d1056-a95b789c94c05ff6.js\",\"596:static/chunks/596-f3a131b7c336dd5d.js\"],\"name\":\"default\",\"async\":false}\ne:I{\"id\":7920,\"chunks\":[\"272:static/chunks/webpack-a35a338695cdcd13.js\",\"971:static/chunks/fd9d1056-a95b789c9"])</script><script>self.__next_f.push([1,"4c05ff6.js\",\"596:static/chunks/596-f3a131b7c336dd5d.js\"],\"name\":\"default\",\"async\":false}\n10:I{\"id\":3948,\"chunks\":[\"293:static/chunks/293-fa7b9b02f62ab5d8.js\",\"808:static/chunks/808-b64f39fb5aa81c36.js\",\"548:static/chunks/548-ffb8dd99ad3940cb.js\",\"82:static/chunks/82-6e8c9ebc91ff932b.js\",\"975:static/chunks/975-41f6ad20b4031b30.js\",\"271:static/chunks/app/auth/signup/page-57f3e1b961ec3eac.js\"],\"name\":\"\",\"async\":false}\n"])</script><script>self.__next_f.push([1,"8:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/51a17e8edcdfdbb2.css\",\"precedence\":\"next\"}]],[\"$\",\"$L9\",null,{\"buildId\":\"vh97xvBohjbcaZhzFItCJ\",\"assetPrefix\":\"\",\"initialCanonicalUrl\":\"/auth/signup/\",\"initialTree\":[\"\",{\"children\":[\"auth\",{\"children\":[\"signup\",{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],\"initialHead\":\"$La\",\"globalErrorComponent\":\"$b\",\"children\":[null,[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"__className_c5054f\",\"children\":[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$Ld\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"loading\":\"$undefined\",\"loadingStyles\":\"$undefined\",\"hasLoading\":false,\"template\":[\"$\",\"$Le\",null,{}],\"templateStyles\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":\"$undefined\",\"childProp\":{\"current\":[\"$\",\"$Ld\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"auth\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"loading\":\"$undefined\",\"loadingStyles\":\"$undefined\",\"hasLoading\":false,\"template\":[\"$\",\"$Le\",null,{}],\"templateStyles\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"childProp\":{\"current\":[\"$\",\"$Ld\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"auth\",\"children\",\"signup\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"loading\":\"$undefined\",\"loadingStyles\":\"$undefined\",\"hasLoading\":false,\"template\":[\"$\",\"$Le\",null,{}],\"templateStyles\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"childProp\":{\"current\":[\"$Lf\",[\"$\",\"$L10\",null,{}],null],\"segment\":\"__PAGE__\"},\"styles\":[]}],\"segment\":\"signup\"},\"styles\":[]}],\"segment\":\"auth\"},\"styles\":[]}]}]}]}],null]}]]\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"1\",{\"children\":\"promptfoo\"}],[\"$\",\"meta\",\"2\",{\"name\":\"description\",\"content\":\"LLM testing and evaluation\"}],[\"$\",\"meta\",\"3\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:image\",\"content\":\"https://www.promptfoo.dev/img/thumbnail.png\"}],[\"$\",\"meta\",\"5\",{\"name\":\"twitter:card\",\"content\":\"summary\"}],[\"$\",\"meta\",\"6\",{\"name\":\"twitter:image\",\"content\":\"https://www.promptfoo.dev/img/thumbnail.png\"}],[\"$\",\"meta\",\"7\",{\"name\":\"next-size-adjust\"}]]\n"])</script><script>self.__next_f.push([1,"f:null\n"])</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><link rel="preload" as="font" href="/_next/static/media/0e4fe491bf84089c-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/3a04115668d8070d-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/3a18fc8da1cdcd01-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/627622453ef56b0d-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/699512af39861afa-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="preload" as="font" href="/_next/static/media/934c4b7cb736f2a3-s.p.woff2" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/51a17e8edcdfdbb2.css" data-precedence="next"/><link rel="preload" href="/_next/static/chunks/webpack-a35a338695cdcd13.js" as="script"/><link rel="preload" href="/_next/static/chunks/fd9d1056-a95b789c94c05ff6.js" as="script"/><link rel="preload" href="/_next/static/chunks/596-f3a131b7c336dd5d.js" as="script"/><link rel="preload" href="/_next/static/chunks/main-app-581ccf0003955b21.js" as="script"/><title>promptfoo</title><meta name="description" content="LLM testing and evaluation"/><meta name="viewport" content="width=device-width, initial-scale=1"/><meta property="og:image" content="https://www.promptfoo.dev/img/thumbnail.png"/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://www.promptfoo.dev/img/thumbnail.png"/><meta name="next-size-adjust"/><script src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script></head><body class="__className_c5054f"><div><style data-emotion="css jj2ztu">.css-jj2ztu{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-jj2ztu>:not(style):not(style){margin:0;}.css-jj2ztu>:not(style)~:not(style){margin-left:16px;}</style><div class="MuiStack-root nav css-jj2ztu"><div class="logo MuiBox-root css-0"><img alt="Promptfoo logo" loading="lazy" width="25" height="25" decoding="async" data-nimg="1" style="color:transparent" src="/logo.svg"/> <span>promptfoo</span></div><a class="" href="/setup/">New Eval</a><a class="" href="/eval/">Evals</a><a class="" href="/prompts/">Prompts</a><a class="" href="/datasets/">Datasets</a><div class="right-aligned"><div class="dark-mode-toggle"><style data-emotion="css vubbuv">.css-vubbuv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;}</style><svg class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv" focusable="false" aria-hidden="true" viewBox="0 0 24 24" data-testid="LightModeIcon"><path d="M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zM2 13h2c.55 0 1-.45 1-1s-.45-1-1-1H2c-.55 0-1 .45-1 1s.45 1 1 1zm18 0h2c.55 0 1-.45 1-1s-.45-1-1-1h-2c-.55 0-1 .45-1 1s.45 1 1 1zM11 2v2c0 .55.45 1 1 1s1-.45 1-1V2c0-.55-.45-1-1-1s-1 .45-1 1zm0 18v2c0 .55.45 1 1 1s1-.45 1-1v-2c0-.55-.45-1-1-1s-1 .45-1 1zM5.99 4.58c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0s.39-1.03 0-1.41L5.99 4.58zm12.37 12.37c-.39-.39-1.03-.39-1.41 0-.39.39-.39 1.03 0 1.41l1.06 1.06c.39.39 1.03.39 1.41 0 .39-.39.39-1.03 0-1.41l-1.06-1.06zm1.06-10.96c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06zM7.05 18.36c.39-.39.39-1.03 0-1.41-.39-.39-1.03-.39-1.41 0l-1.06 1.06c-.39.39-.39 1.03 0 1.41s1.03.39 1.41 0l1.06-1.06z"></path></svg></div></div></div><div><style data-emotion="css hltdia">.css-hltdia{width:100%;margin-left:auto;box-sizing:border-box;margin-right:auto;display:block;padding-left:16px;padding-right:16px;}@media (min-width:600px){.css-hltdia{padding-left:24px;padding-right:24px;}}@media (min-width:0px){.css-hltdia{max-width:444px;}}</style><main class="MuiContainer-root MuiContainer-maxWidthXs css-hltdia"><style data-emotion="css 1d79rw6">.css-1d79rw6{margin:0;font-family:inherit;font-weight:400;font-size:1.5rem;line-height:1.334;}</style><h1 class="MuiTypography-root MuiTypography-h5 css-1d79rw6">Sign up</h1><p><style data-emotion="css 100vuwi">.css-100vuwi{margin:0;font-family:inherit;font-weight:400;font-size:1rem;line-height:1.5;}</style><p class="MuiTypography-root MuiTypography-body1 css-100vuwi">An account helps you easily save, view, and share your evals.</p></p><form><style data-emotion="css 1u0h3mu">.css-1u0h3mu{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;position:relative;min-width:0;padding:0;margin:0;border:0;vertical-align:top;margin-top:16px;margin-bottom:8px;width:100%;}</style><div class="MuiFormControl-root MuiFormControl-marginNormal MuiFormControl-fullWidth MuiTextField-root css-1u0h3mu"><style data-emotion="css nd1nwr">.css-nd1nwr{display:block;transform-origin:top left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 24px);position:absolute;left:0;top:0;-webkit-transform:translate(14px, 16px) scale(1);-moz-transform:translate(14px, 16px) scale(1);-ms-transform:translate(14px, 16px) scale(1);transform:translate(14px, 16px) scale(1);-webkit-transition:color 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,-webkit-transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,max-width 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;transition:color 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,max-width 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;z-index:1;pointer-events:none;}</style><style data-emotion="css jzaigm">.css-jzaigm{color:rgba(0, 0, 0, 0.6);font-family:inherit;font-weight:400;font-size:1rem;line-height:1.4375em;padding:0;position:relative;display:block;transform-origin:top left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 24px);position:absolute;left:0;top:0;-webkit-transform:translate(14px, 16px) scale(1);-moz-transform:translate(14px, 16px) scale(1);-ms-transform:translate(14px, 16px) scale(1);transform:translate(14px, 16px) scale(1);-webkit-transition:color 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,-webkit-transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,max-width 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;transition:color 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,transform 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms,max-width 200ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;z-index:1;pointer-events:none;}.css-jzaigm.Mui-focused{color:#1976d2;}.css-jzaigm.Mui-disabled{color:rgba(0, 0, 0, 0.38);}.css-jzaigm.Mui-error{color:#d32f2f;}</style><label class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-outlined MuiFormLabel-colorPrimary Mui-required MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-outlined css-jzaigm" data-shrink="false" for="email" id="email-label">Email Address<style data-emotion="css sp68t1">.css-sp68t1.Mui-error{color:#d32f2f;}</style><span aria-hidden="true" class="MuiFormLabel-asterisk MuiInputLabel-asterisk css-sp68t1"> <!-- -->*</span></label><style data-emotion="css-global 1prfaxn">@-webkit-keyframes mui-auto-fill{from{display:block;}}@keyframes mui-auto-fill{from{display:block;}}@-webkit-keyframes mui-auto-fill-cancel{from{display:block;}}@keyframes mui-auto-fill-cancel{from{display:block;}}</style><style data-emotion="css 18bxsfn">.css-18bxsfn{font-family:inherit;font-weight:400;font-size:1rem;line-height:1.4375em;color:rgba(0, 0, 0, 0.87);box-sizing:border-box;position:relative;cursor:text;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;position:relative;border-radius:4px;}.css-18bxsfn.Mui-disabled{color:rgba(0, 0, 0, 0.38);cursor:default;}.css-18bxsfn:hover .MuiOutlinedInput-notchedOutline{border-color:rgba(0, 0, 0, 0.87);}@media (hover: none){.css-18bxsfn:hover .MuiOutlinedInput-notchedOutline{border-color:rgba(0, 0, 0, 0.23);}}.css-18bxsfn.Mui-focused .MuiOutlinedInput-notchedOutline{border-color:#1976d2;border-width:2px;}.css-18bxsfn.Mui-error .MuiOutlinedInput-notchedOutline{border-color:#d32f2f;}.css-18bxsfn.Mui-disabled .MuiOutlinedInput-notchedOutline{border-color:rgba(0, 0, 0, 0.26);}</style><div class="MuiInputBase-root MuiOutlinedInput-root MuiInputBase-colorPrimary MuiInputBase-fullWidth MuiInputBase-formControl css-18bxsfn"><style data-emotion="css 1x5jdmq">.css-1x5jdmq{font:inherit;letter-spacing:inherit;color:currentColor;padding:4px 0 5px;border:0;box-sizing:content-box;background:none;height:1.4375em;margin:0;-webkit-tap-highlight-color:transparent;display:block;min-width:0;width:100%;-webkit-animation-name:mui-auto-fill-cancel;animation-name:mui-auto-fill-cancel;-webkit-animation-duration:10ms;animation-duration:10ms;padding:16.5px 14px;}.css-1x5jdmq::-webkit-input-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-1x5jdmq::-moz-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-1x5jdmq:-ms-input-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-1x5jdmq::-ms-input-placeholder{color:currentColor;opacity:0.42;-webkit-transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:opacity 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;}.css-1x5jdmq:focus{outline:0;}.css-1x5jdmq:invalid{box-shadow:none;}.css-1x5jdmq::-webkit-search-decoration{-webkit-appearance:none;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq::-webkit-input-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq::-moz-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq:-ms-input-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq::-ms-input-placeholder{opacity:0!important;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq:focus::-webkit-input-placeholder{opacity:0.42;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq:focus::-moz-placeholder{opacity:0.42;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq:focus:-ms-input-placeholder{opacity:0.42;}label[data-shrink=false]+.MuiInputBase-formControl .css-1x5jdmq:focus::-ms-input-placeholder{opacity:0.42;}.css-1x5jdmq.Mui-disabled{opacity:1;-webkit-text-fill-color:rgba(0, 0, 0, 0.38);}.css-1x5jdmq:-webkit-autofill{-webkit-animation-duration:5000s;animation-duration:5000s;-webkit-animation-name:mui-auto-fill;animation-name:mui-auto-fill;}.css-1x5jdmq:-webkit-autofill{border-radius:inherit;}</style><input aria-invalid="false" autoComplete="email" autofocus="" id="email" required="" type="text" class="MuiInputBase-input MuiOutlinedInput-input css-1x5jdmq" name="email" value=""/><style data-emotion="css 19w1uun">.css-19w1uun{border-color:rgba(0, 0, 0, 0.23);}</style><style data-emotion="css igs3ac">.css-igs3ac{text-align:left;position:absolute;bottom:0;right:0;top:-5px;left:0;margin:0;padding:0 8px;pointer-events:none;border-radius:inherit;border-style:solid;border-width:1px;overflow:hidden;min-width:0%;border-color:rgba(0, 0, 0, 0.23);}</style><fieldset aria-hidden="true" class="MuiOutlinedInput-notchedOutline css-igs3ac"><style data-emotion="css yjsfm1">.css-yjsfm1{float:unset;width:auto;overflow:hidden;display:block;padding:0;height:11px;font-size:0.75em;visibility:hidden;max-width:0.01px;-webkit-transition:max-width 50ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;transition:max-width 50ms cubic-bezier(0.0, 0, 0.2, 1) 0ms;white-space:nowrap;}.css-yjsfm1>span{padding-left:5px;padding-right:5px;display:inline-block;opacity:0;visibility:visible;}</style><legend class="css-yjsfm1"><span>Email Address<!-- --> <!-- -->*</span></legend></fieldset></div></div><div class="MuiFormControl-root MuiFormControl-marginNormal MuiFormControl-fullWidth MuiTextField-root css-1u0h3mu"><label class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-outlined MuiFormLabel-colorPrimary Mui-required MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-outlined css-jzaigm" data-shrink="false" for="password" id="password-label">Password<span aria-hidden="true" class="MuiFormLabel-asterisk MuiInputLabel-asterisk css-sp68t1"> <!-- -->*</span></label><style data-emotion="css-global 1prfaxn">@-webkit-keyframes mui-auto-fill{from{display:block;}}@keyframes mui-auto-fill{from{display:block;}}@-webkit-keyframes mui-auto-fill-cancel{from{display:block;}}@keyframes mui-auto-fill-cancel{from{display:block;}}</style><div class="MuiInputBase-root MuiOutlinedInput-root MuiInputBase-colorPrimary MuiInputBase-fullWidth MuiInputBase-formControl css-18bxsfn"><input aria-invalid="false" autoComplete="current-password" id="password" required="" type="password" class="MuiInputBase-input MuiOutlinedInput-input css-1x5jdmq" name="password" value=""/><fieldset aria-hidden="true" class="MuiOutlinedInput-notchedOutline css-igs3ac"><legend class="css-yjsfm1"><span>Password<!-- --> <!-- -->*</span></legend></fieldset></div></div><style data-emotion="css 1pz372j">.css-1pz372j{font-family:inherit;font-weight:500;font-size:0.875rem;line-height:1.75;text-transform:uppercase;min-width:64px;padding:6px 16px;border-radius:4px;-webkit-transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;color:#fff;background-color:#1976d2;box-shadow:0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12);width:100%;margin-top:1em;}.css-1pz372j:hover{-webkit-text-decoration:none;text-decoration:none;background-color:#1565c0;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);}@media (hover: none){.css-1pz372j:hover{background-color:#1976d2;}}.css-1pz372j:active{box-shadow:0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12);}.css-1pz372j.Mui-focusVisible{box-shadow:0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12);}.css-1pz372j.Mui-disabled{color:rgba(0, 0, 0, 0.26);box-shadow:none;background-color:rgba(0, 0, 0, 0.12);}</style><style data-emotion="css 1j0w7x1">.css-1j0w7x1{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;font-family:inherit;font-weight:500;font-size:0.875rem;line-height:1.75;text-transform:uppercase;min-width:64px;padding:6px 16px;border-radius:4px;-webkit-transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;color:#fff;background-color:#1976d2;box-shadow:0px 3px 1px -2px rgba(0,0,0,0.2),0px 2px 2px 0px rgba(0,0,0,0.14),0px 1px 5px 0px rgba(0,0,0,0.12);width:100%;margin-top:1em;}.css-1j0w7x1::-moz-focus-inner{border-style:none;}.css-1j0w7x1.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-1j0w7x1{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-1j0w7x1:hover{-webkit-text-decoration:none;text-decoration:none;background-color:#1565c0;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);}@media (hover: none){.css-1j0w7x1:hover{background-color:#1976d2;}}.css-1j0w7x1:active{box-shadow:0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12);}.css-1j0w7x1.Mui-focusVisible{box-shadow:0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12);}.css-1j0w7x1.Mui-disabled{color:rgba(0, 0, 0, 0.26);box-shadow:none;background-color:rgba(0, 0, 0, 0.12);}</style><button class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-fullWidth MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-fullWidth css-1j0w7x1" tabindex="0" type="submit">Sign Up</button><p>Already have an account? <a href="/auth/login/">Sign in</a></p></form></main></div></div><script src="/_next/static/chunks/webpack-a35a338695cdcd13.js" async=""></script><script src="/_next/static/chunks/fd9d1056-a95b789c94c05ff6.js" async=""></script><script src="/_next/static/chunks/596-f3a131b7c336dd5d.js" async=""></script><script src="/_next/static/chunks/main-app-581ccf0003955b21.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/media/0e4fe491bf84089c-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n2:HL[\"/_next/static/media/3a04115668d8070d-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n3:HL[\"/_next/static/media/3a18fc8da1cdcd01-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n4:HL[\"/_next/static/media/627622453ef56b0d-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n5:HL[\"/_next/static/media/699512af39861afa-s.p.woff2\",{\"as\":\"font\",\"type\":\"font/woff2\"}]\n6:HL[\"/_next/static/media/934c4b7cb736f2a3-s.p.woff2\",{\"as\":\"font\","])</script><script>self.__next_f.push([1,"\"type\":\"font/woff2\"}]\n7:HL[\"/_next/static/css/51a17e8edcdfdbb2.css\",{\"as\":\"style\"}]\n0:\"$L8\"\n"])</script><script>self.__next_f.push([1,"9:I{\"id\":7948,\"chunks\":[\"272:static/chunks/webpack-a35a338695cdcd13.js\",\"971:static/chunks/fd9d1056-a95b789c94c05ff6.js\",\"596:static/chunks/596-f3a131b7c336dd5d.js\"],\"name\":\"default\",\"async\":false}\nb:I{\"id\":6628,\"chunks\":[\"272:static/chunks/webpack-a35a338695cdcd13.js\",\"971:static/chunks/fd9d1056-a95b789c94c05ff6.js\",\"596:static/chunks/596-f3a131b7c336dd5d.js\"],\"name\":\"\",\"async\":false}\nc:I{\"id\":2112,\"chunks\":[\"293:static/chunks/293-fa7b9b02f62ab5d8.js\",\"548:static/chunks/548-ffb8dd99ad3940cb.js\",\"82:static/"])</script><script>self.__next_f.push([1,"chunks/82-6e8c9ebc91ff932b.js\",\"886:static/chunks/886-ed0ff9e461fce55a.js\",\"445:static/chunks/445-74742af8ab1894f2.js\",\"185:static/chunks/app/layout-d634a41da738217d.js\"],\"name\":\"PageShell\",\"async\":false}\nd:I{\"id\":7767,\"chunks\":[\"272:static/chunks/webpack-a35a338695cdcd13.js\",\"971:static/chunks/fd9d1056-a95b789c94c05ff6.js\",\"596:static/chunks/596-f3a131b7c336dd5d.js\"],\"name\":\"default\",\"async\":false}\ne:I{\"id\":7920,\"chunks\":[\"272:static/chunks/webpack-a35a338695cdcd13.js\",\"971:static/chunks/fd9d1056-a95b789c9"])</script><script>self.__next_f.push([1,"4c05ff6.js\",\"596:static/chunks/596-f3a131b7c336dd5d.js\"],\"name\":\"default\",\"async\":false}\n10:I{\"id\":3948,\"chunks\":[\"293:static/chunks/293-fa7b9b02f62ab5d8.js\",\"808:static/chunks/808-b64f39fb5aa81c36.js\",\"548:static/chunks/548-ffb8dd99ad3940cb.js\",\"82:static/chunks/82-6e8c9ebc91ff932b.js\",\"975:static/chunks/975-41f6ad20b4031b30.js\",\"271:static/chunks/app/auth/signup/page-57f3e1b961ec3eac.js\"],\"name\":\"\",\"async\":false}\n"])</script><script>self.__next_f.push([1,"8:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/51a17e8edcdfdbb2.css\",\"precedence\":\"next\"}]],[\"$\",\"$L9\",null,{\"buildId\":\"cQksOHrqbI8gLOJlpyPzu\",\"assetPrefix\":\"\",\"initialCanonicalUrl\":\"/auth/signup/\",\"initialTree\":[\"\",{\"children\":[\"auth\",{\"children\":[\"signup\",{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],\"initialHead\":\"$La\",\"globalErrorComponent\":\"$b\",\"children\":[null,[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"__className_c5054f\",\"children\":[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$Ld\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"loading\":\"$undefined\",\"loadingStyles\":\"$undefined\",\"hasLoading\":false,\"template\":[\"$\",\"$Le\",null,{}],\"templateStyles\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":\"$undefined\",\"childProp\":{\"current\":[\"$\",\"$Ld\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"auth\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"loading\":\"$undefined\",\"loadingStyles\":\"$undefined\",\"hasLoading\":false,\"template\":[\"$\",\"$Le\",null,{}],\"templateStyles\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"childProp\":{\"current\":[\"$\",\"$Ld\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"auth\",\"children\",\"signup\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"loading\":\"$undefined\",\"loadingStyles\":\"$undefined\",\"hasLoading\":false,\"template\":[\"$\",\"$Le\",null,{}],\"templateStyles\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"childProp\":{\"current\":[\"$Lf\",[\"$\",\"$L10\",null,{}],null],\"segment\":\"__PAGE__\"},\"styles\":[]}],\"segment\":\"signup\"},\"styles\":[]}],\"segment\":\"auth\"},\"styles\":[]}]}]}]}],null]}]]\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"1\",{\"children\":\"promptfoo\"}],[\"$\",\"meta\",\"2\",{\"name\":\"description\",\"content\":\"LLM testing and evaluation\"}],[\"$\",\"meta\",\"3\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:image\",\"content\":\"https://www.promptfoo.dev/img/thumbnail.png\"}],[\"$\",\"meta\",\"5\",{\"name\":\"twitter:card\",\"content\":\"summary\"}],[\"$\",\"meta\",\"6\",{\"name\":\"twitter:image\",\"content\":\"https://www.promptfoo.dev/img/thumbnail.png\"}],[\"$\",\"meta\",\"7\",{\"name\":\"next-size-adjust\"}]]\n"])</script><script>self.__next_f.push([1,"f:null\n"])</script></body></html>
|