`)}`}varhg=lw(rw("Optional"),8);varEa=lw(rw("SkipSelf"),4);functiongg(t,e){letA=t.hasOwnProperty(gB);returnA?t[gB]:null}functionHN(t,e,A){if(t.length!==e.length)return!1;for(leti=0;i<t.length;i++){leto=t[i],n=e[i];if(A&&(o=A(o),n=A(n)),n!==o)return!1}return!0}functionTN(t){returnt.flat(Number.POSITIVE_INFINITY)}functionVd(t,e){t.forEach(A=>Array.isArray(A)?Vd(A,e):e(A))}functiondw(t,e,A){e>=t.length?t.push(A):t.splice(e,0,A)}functionaB(t,e){returne>=t.length-1?t.pop():t.splice(e,1)[0]}functionON(t,e){letA=[];for(leti=0;i<t;i++)A.push(e);returnA}functionPN(t,e,A,i){leto=t.length;if(o==e)t.push(A,i);elseif(o===1)t.push(i,t[0]),t[0]=A;else{for(o--,t.push(t[o-1],t[o]);o>e;){letn=o-2;t[o]=t[n],o--}t[e]=A,t[e+1]=i}}functionKB(t,e,A){leti=la(t,e);returni>=0?t[i|1]=A:(i=~i,PN(t,i,e,A)),i}functionfl(t,e){letA=la(t,e);if(A>=0)returnt[A|1]}functionla(t,e){returnZN(t,e,1)}functionZN(t,e,A){leti=0,o=t.length>>A;for(;o!==i;){letn=i+(o-i>>1),g=t[n<<A];if(e===g)returnn<<A;g>e?o=n:i=n+1}return~(o<<A)}varIo={},yt=[],Dr=newR(""),hw=newR("",-1),uw=newR(""),IB=class{get(e,A=ig){if(A===ig){leti=newError(`NullInjectorError: No provider for ${Lt(e)}!`);throwi.name="NullInjectorError",i}returnA}};functionmw(t,e){letA=t[SN]||null;if(!A&&e===!0)thrownewError(`Type ${Lt(t)} does not have '\u0275mod' property.`);returnA}functionDn(t){returnt[kN]||null}functionpw(t){returnt[vN]||null}functionqN(t){returnt[FN]||null}functionda(t){return{\u0275providers:t}}functionVN(...t){return{\u0275providers:Dw(!0,t),\u0275fromNgModule:!0}}functionDw(t,...e){letA=[],i=newSet,o,n=g=>{A.push(g)};returnVd(e,g=>{letr=g;Jl(r,n,[],i)&&(o||=[],o.push(r))}),o!==void0&&fw(o,n),A}functionfw(t,e){for(letA=0;A<t.length;A++){let{ngModule:i,providers:o}=t[A];Wd(o,n=>{e(n,i)})}}functionJl(t,e,A,i){if(t=Ct(t),!t)return!1;leto=null,n=cf(t),g=!n&&Dn(t);if(!n&&!g){lets=t.ngModule;if(n=cf(s),n)o=s;elsereturn!1}else{if(g&&!g.standalone)return!1;o=t}letr=i.has(o);if(g){if(r)return!1;if(i.add(o),g.dependencies){lets=typeofg.dependencies=="function"?g.dependencies():g.dependencies;for(letaofs)Jl(a,e,A,i)}}elseif(n){if(n.imports!=null&&!r){i.add(o);leta;try{Vd(n.imports,c=>{Jl(c,e,A,i)&&(a||=[],a.push(c))})}finally{}a!==void0&&fw(a,e)}if(!r){leta=gg(o)||(()=>newo);e({provide:o,useFactory:a,deps:yt},o),e({provide:uw,useValue:o,multi:!0},o),e({provide:Dr,useValue:()=>eA(o),multi:!0},o)}lets=n.providers;if(s!=null&&!r){leta=t;Wd(s,c=>{e(c,a)})}}elsereturn!1;returno!==t&&t.providers!==void0}functionWd(t,e){for(letAoft)Bw(A)&&(A=A.\u0275providers),Array.isArray(A)?Wd(A,e):e(A)}varWN=me({provide:String,useValue:me});functionww(t){returnt!==null&&typeoft=="object"&&WNint}functionzN(t){return!!(t&&t.useExisting)}functionjN(t){return!!(t&&t.useFactory)}functionfr(t){returntypeoft=="function"}functionXN(t){return!!t.useClass}varxB=newR(""),eB={},df={},wl;functionYB(){returnwl===void0&&(wl=newIB),wl}varZe=class{},ra=classextendsZe{parent;source;scopes;records=newMap;_ngOnDestroyHooks=newSet;_onDestroyHooks=[];getdestroyed(){returnthis._destroyed}_destroyed=!1;injectorDefTypes;constructor(e,A,i,o){super(),this.parent=A,this.source=i,this.scopes=o,Tl(e,g=>this.processProvider(g)),this.records.set(hw,lr(void0,this)),o.has("environment")&&this.records.set(Ze,lr(void0,this));letn=this.records.get(xB);n!=null&&typeofn.value=="string"&&this.scopes.add(n.value),this.injectorDefTypes=newSet(this.get(uw,yt,ee.Self))}retrieve(e,A){leti=A;returnthis.get(e,i.optional?wC:ig,i)}destroy(){ia(this),this._destroyed=!0;lete=XA(null);try{for(letiofthis._ngOnDestroyHooks)i.ngOnDestroy();letA=this._onDestroyHooks;this._onDestroyHooks=[];for(letiofA)i()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),XA(e)}}onDestroy(e){returnia(this),this._onDestroyHooks.push(e),()=>this.removeOnDestroy(e)}runInContext(e){ia(this);letA=Ko(this),i=_t(void0),o;try{returne()}finally{Ko(A),_t(i)}}get(e,A=ig,i=ee.Default){if(ia(this),e.hasOwnProperty(Ef))returne[Ef](thi
`;return a.FS.createPath("/",a.PATH.dirname(D)),a.FS.writeFile(D,p),D}):[]}(t,i.images),typeof e=="string")o=function(a,c){let E;try{let D=a.lengthBytesUTF8(c);return E=a.ccall("malloc","number",["number"],[D+1]),a.stringToUTF8(c,E,D+1),a.ccall("viz_read_one_graph","number",["number"],[E])}finally{E&&a.ccall("free","number",["number"],[E])}}(t,e);else{if(typeof e!="object")throw new Error("input must be a string or object");o=function(a,c){let E=a.ccall("viz_create_graph","number",["string","number","number"],[c.name,c.directed===void 0||c.directed,c.strict!==void 0&&c.strict]);return vk(a,E,c),E}(t,e)}if(o===0)return{status:"failure",output:void 0,errors:GI(t)};if(Fk(t,o,i),t.ccall("viz_set_y_invert","number",["number"],[i.yInvert?1:0]),t.ccall("viz_set_reduce","number",["number"],[i.reduce?1:0]),n=t.ccall("viz_create_context"),t.ccall("viz_reset_errors"),t.ccall("viz_layout","number",["number","number","string"],[n,o,i.engine])!==0)return{status:"failure",output:void 0,errors:GI(t)};let s={};for(let a of A){if(g=t.ccall("viz_render","number",["number","number","string"],[n,o,a]),g===0)return{status:"failure",output:void 0,errors:GI(t)};s[a]=t.UTF8ToString(g),t.ccall("free","number",["number"],[g]),g=0}return{status:"success",output:s,errors:GI(t)}}catch(s){if(/^exit\(\d+\)/.test(s))return{status:"failure",output:void 0,errors:GI(t)};throw s}finally{n&&o&&t.ccall("viz_free_layout","number",["number"],[n,o]),o&&t.ccall("viz_free_graph","number",["number"],[o]),n&&t.ccall("viz_free_context","number",["number"],[n]),g&&t.ccall("free","number",["number"],[g]),r&&function(s,a){for(let c of a)s.FS.analyzePath(c).exists&&s.FS.unlink(c)}(t,r)}}function GI(t){return function(e){let A=[],i;for(let o=0;o<e.length;o++)e[o]=="Error"&&e[o+1]==": "?(i="error",o+=1):e[o]=="Warning"&&e[o+1]==": "?(i="warning",o+=1):A.push({message:e[o].trimEnd(),level:i});return A}(t.agerrMessages).concat(t.stderrMessages.map(e=>{for(let A=0;A<Mk.length;A++){let[i,o]=Mk[A],n;if((n=i.exec(e))!==null)return{message:n[1].trimEnd(),level:o}}return{message:e.trimEnd()}}))}function vk(t,e,A){Fk(t,e,A),A.nodes&&A.nodes.forEach(i=>{let o=t.ccall("viz_add_node","number",["number","string"],[e,String(i.name)]);i.attributes&&kk(t,e,o,i.attributes)}),A.edges&&A.edges.forEach(i=>{let o=t.ccall("viz_add_edge","number",["number","string","string"],[e,String(i.tail),String(i.head)]);i.attributes&&kk(t,e,o,i.attributes)}),A.subgraphs&&A.subgraphs.forEach(i=>{let o=t.ccall("viz_add_subgraph","number",["number","string"],[e,String(i.name)]);vk(t,o,i)})}function Fk(t,e,A){if(A.graphAttributes)for(let[i,o]of Object.entries(A.graphAttributes))zQ(t,e,o,n=>{t.ccall("viz_set_default_graph_attribute","number",["number","string","number"],[e,i,n])});if(A.nodeAttributes)for(let[i,o]of Object.entries(A.nodeAttributes))zQ(t,e,o,n=>{t.ccall("viz_set_default_node_attribute","number",["number","string","number"],[e,i,n])});if(A.edgeAttributes)for(let[i,o]of Object.entries(A.edgeAttributes))zQ(t,e,o,n=>{t.ccall("viz_set_default_edge_attribute","number",["number","string","number"],[e,i,n])})}function kk(t,e,A,i){for(let[o,n]of Object.entries(i))zQ(t,e,n,g=>{t.ccall("viz_set_attribute","number",["number","string","number"],[A,o,g])})}function zQ(t,e,A,i){let o;if(o=typeof A=="object"&&"html"in A?t.ccall("viz_string_dup_html","number",["number","string"],[e,String(A.html)]):t.ccall("viz_string_dup","number",["number","string"],[e,String(A)]),o==0)throw new Error("couldn't dup string");i(o),t.ccall("viz_string_free","number",["number","number"],[e,o])}var tp=class{constructor(e){this.module=e}get graphvizVersion(){return function(e){let A=e.ccall("viz_get_graphviz_version","number",[],[]);return e.UTF8ToString(A)}(this.module)}get formats(){return bk(this.module,"device")}get engines(){return bk(this.module,"layout")}renderFormats(e,A){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return Rk(this.module,e,A,v({engine:"dot"},i))}render(e){let A,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};A=i.format===void 0?"dot":i.format;let o=Rk(this.module,e,[A],v({engin
`),h(),l(4,"mat-form-field",1)(5,"input",2),Ht("ngModelChange",function(n){returngi(i.newCaseId,n)||(i.newCaseId=n),n}),F("keydown.enter",function(){returni.createNewEvalCase()}),h()(),l(6,"mat-dialog-actions",3)(7,"button",4),M(8,"Cancel"),h(),l(9,"button",5),F("click",function(){returni.createNewEvalCase()}),M(10,"Create"),h()()),A&2&&(u(5),Jt("ngModel",i.newCaseId))},dependencies:[wi,Ot,Ci,Fo,Wn,at,jt,Ri,ki,qn],encapsulation:2})};varTI=classt{constructor(e,A,i){this.evalService=e;this.data=A;this.dialogRef=i}newSetId="evalset"+JI().slice(0,6);createNewEvalSet(){!this.newSetId||this.newSetId==""?alert("Cannot create eval set with empty id!"):this.evalService.createNewEvalSet(this.data.appName,this.newSetId).subscribe(e=>{this.dialogRef.close(!0)})}static\u0275fac=function(A){returnnew(A||t)(z(Fi),z(vt),z(ot))};static\u0275cmp=H({type:t,selectors:[["app-new-eval-set-dialog-component"]],standalone:!1,decls:11,vars:1,consts:[["mat-dialog-title",""],[2,"padding-left","20px","padding-right","24px"],["matInput","",3,"ngModelChange","keydown.enter","ngModel"],["align","end"],["mat-button","","mat-dialog-close",""],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(A,i){A&1&&(l(0,"h2",0),M(1,"Create New Eval Set"),h(),l(2,"mat-dialog-content"),M(3,` Please enter the eval set name
`):[],g={type:"table",raw:A[0],header:[],align:[],rows:[]};if(i.length===o.length){for(let r of o)this.rules.other.tableAlignRight.test(r)?g.align.push("right"):this.rules.other.tableAlignCenter.test(r)?g.align.push("center"):this.rules.other.tableAlignLeft.test(r)?g.align.push("left"):g.align.push(null);for(let r=0;r<i.length;r++)g.header.push({text:i[r],tokens:this.lexer.inline(i[r]),header:!0,align:g.align[r]});for(let r of n)g.rows.push(nF(r,g.header.length).map((s,a)=>({text:s,tokens:this.lexer.inline(s),header:!1,align:g.align[a]})));return g}}lheading(e){let A=this.rules.block.lheading.exec(e);if(A)return{type:"heading",raw:A[0],depth:A[2].charAt(0)==="="?1:2,text:A[1],tokens:this.lexer.inline(A[1])}}paragraph(e){let A=this.rules.block.paragraph.exec(e);if(A){let i=A[1].charAt(A[1].length-1)===`
`+this.renderer.text(r);A?i+=this.renderer.paragraph({type:"paragraph",raw:s,text:s,tokens:[{type:"text",raw:s,text:s,escaped:!0}]}):i+=s;continue}default:{let r='Token with "'+g.type+'" type was not found.';if(this.options.silent)return console.error(r),"";throw new Error(r)}}}return i}parseInline(e,A=this.renderer){let i="";for(let o=0;o<e.length;o++){let n=e[o];if(this.options.extensions?.renderers?.[n.type]){let r=this.options.extensions.renderers[n.type].call({parser:this},n);if(r!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(n.type)){i+=r||"";continue}}let g=n;switch(g.type){case"escape":{i+=A.text(g);break}case"html":{i+=A.html(g);break}case"link":{i+=A.link(g);break}case"image":{i+=A.image(g);break}case"strong":{i+=A.strong(g);break}case"em":{i+=A.em(g);break}case"codespan":{i+=A.codespan(g);break}case"br":{i+=A.br(g);break}case"del":{i+=A.del(g);break}case"text":{i+=A.text(g);break}default:{let r='Token with "'+g.type+'" type was not found.';if(this.options.silent)return console.error(r),"";throw new Error(r)}}}return i}},Gs=class{options;block;constructor(e){this.options=e||zg}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}provideLexer(){return this.block?ji.lex:ji.lexInline}provideParser(){return this.block?Xi.parse:Xi.parseInline}},Jp=class{defaults=Hp();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=Xi;Renderer=_o;TextRenderer=jI;Lexer=ji;Tokenizer=_s;Hooks=Gs;constructor(...e){this.use(...e)}walkTokens(e,A){let i=[];for(let o of e)switch(i=i.concat(A.call(this,o)),o.type){case"table":{let n=o;for(let g of n.header)i=i.concat(this.walkTokens(g.tokens,A));for(let g of n.rows)for(let r of g)i=i.concat(this.walkTokens(r.tokens,A));break}case"list":{let n=o;i=i.concat(this.walkTokens(n.items,A));break}default:{let n=o;this.defaults.extensions?.childTokens?.[n.type]?this.defaults.extensions.childTokens[n.type].forEach(g=>{let r=n[g].flat(1/0);i=i.concat(this.walkTokens(r,A))}):n.tokens&&(i=i.concat(this.walkTokens(n.tokens,A)))}}return i}use(...e){let A=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(i=>{let o=v({},i);if(o.async=this.defaults.async||o.async||!1,i.extensions&&(i.extensions.forEach(n=>{if(!n.name)throw new Error("extension name required");if("renderer"in n){let g=A.renderers[n.name];g?A.renderers[n.name]=function(...r){let s=n.renderer.apply(this,r);return s===!1&&(s=g.apply(this,r)),s}:A.renderers[n.name]=n.renderer}if("tokenizer"in n){if(!n.level||n.level!=="block"&&n.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let g=A[n.level];g?g.unshift(n.tokenizer):A[n.level]=[n.tokenizer],n.start&&(n.level==="block"?A.startBlock?A.startBlock.push(n.start):A.startBlock=[n.start]:n.level==="inline"&&(A.startInline?A.startInline.push(n.start):A.startInline=[n.start]))}"childTokens"in n&&n.childTokens&&(A.childTokens[n.name]=n.childTokens)}),o.extensions=A),i.renderer){let n=this.defaults.renderer||new _o(this.defaults);for(let g in i.renderer){if(!(g in n))throw new Error(`renderer'${g}'doesnotexist`);if(["options","parser"].includes(g))continue;let r=g,s=i.renderer[r],a=n[r];n[r]=(...c)=>{let E=s.apply(n,c);return E===!1&&(E=a.apply(n,c)),E||""}}o.renderer=n}if(i.tokenizer){let n=this.defaults.tokenizer||new _s(this.defaults);for(let g in i.tokenizer){if(!(g in n))throw new Error(`tokenizer'${g}'doesnotexist`);if(["options","rules","lexer"].includes(g))continue;let r=g,s=i.tokenizer[r],a=n[r];n[r]=(...c)=>{let E=s.apply(n,c);return E===!1&&(E=a.apply(n,c)),E}}o.tokenizer=n}if(i.hooks){let n=this.defaults.hooks||new Gs;for(let g in i.hooks){if(!(g in n))throw new Error(`hook'${g}'doesnotexist`);if(["options","block"].includes(g))continue;let r=g,s=i.hooks[r],a=n[r];Gs.passThroughHooks.has(g)?n[r]=c=>{if(this.defaults.async)return Promise.resolve(s.call(n,c)).then(D=>a.call(n,D));let E=s.call(n,c);return a.call(n,E)}:n[r]=(...c)=>{let E=s.
Please report this to https://github.com/markedjs/marked.`,e){leto="<p>An error occurred:</p><pre>"+Go(i.message+"",!0)+"</pre>";returnA?Promise.resolve(o):o}if(A)returnPromise.reject(i);throwi}}},Wg=newJp;functionre(t,e){returnWg.parse(t,e)}re.options=re.setOptions=function(t){returnWg.setOptions(t),re.defaults=Wg.defaults,rF(re.defaults),re};re.getDefaults=Hp;re.defaults=zg;re.use=function(...t){returnWg.use(...t),re.defaults=Wg.defaults,rF(re.defaults),re};re.walkTokens=function(t,e){returnWg.walkTokens(t,e)};re.parseInline=Wg.parseInline;re.Parser=Xi;re.parser=Xi.parse;re.Renderer=_o;re.TextRenderer=jI;re.Lexer=ji;re.lexer=ji.lex;re.Tokenizer=_s;re.Hooks=Gs;re.parse=re;varRcA=re.options,kcA=re.setOptions,vcA=re.use,FcA=re.walkTokens,ScA=re.parseInline;varNcA=Xi.parse,GcA=ji.lex;varnq=["*"],gq="Copy",rq="Copied",sq=(()=>{classt{constructor(){this._buttonClick$=newJ,this.copied$=this._buttonClick$.pipe(he(()=>we(oA(!0),eg(3e3).pipe(Qr(!1)))),Ki(),Ho(1)),this.copiedText$=this.copied$.pipe(ye(!1),CA(A=>A?rq:gq))}onCopyToClipboardClick(){this._buttonClick$.next()}static{this.\u0275fac=function(i){returnnew(i||t)}}static{this.\u0275cmp=H({type:t,selectors:[["markdown-clipboard"]],decls:4,vars:7,consts:[[1,"markdown-clipboard-button",3,"click"]],template:function(i,o){i&1&&(l(0,"button",0),Oi(1,"async"),F("click",function(){returno.onCopyToClipboardClick()}),M(2),Oi(3,"async"),h()),i&2&&(iA("copied",xr(1,3,o.copied$)),u(2),LA(xr(3,5,o.copiedText$)))},dependencies:[La],encapsulation:2,changeDetection:0})}}returnt})(),aq=newR("CLIPBOARD_OPTIONS");varzp=function(t){returnt.CommandLine="command-line",t.LineHighlight="line-highlight",t.LineNumbers="line-numbers",t}(zp||{}),hF=newR("MARKED_EXTENSIONS"),Iq=newR("MARKED_OPTIONS"),Cq=newR("MERMAID_OPTIONS"),Bq="[ngx-markdown] When using the `emoji` attribute you *have to* include Emoji-Toolkit files to `angular.json` or use imports. See README for more information",cq="[ngx-markdown] When using the `katex` attribute you *have to* include KaTeX files to `angular.json` or use imports. See README for more information",Qq="[ngx-markdown] When using the `mermaid` attribute you *have to* include Mermaid files to `angular.json` or use imports. See README for more information",Eq="[ngx-markdown] When using the `clipboard` attribute you *have to* include Clipboard files to `angular.json` or use imports. See README for more information",lq="[ngx-markdown] When using the `clipboard` attribute you *have to* provide the `viewContainerRef` parameter to `MarkdownService.render()` function",dq="[ngx-markdown] When using the `src` attribute you *have to* pass the `HttpClient` as a parameter of the `forRoot` method. See README for more information",uF=newR("SECURITY_CONTEXT");varmF=(()=>{classt{getoptions(){returnthis._options}setoptions(A){this._options=v(v({},this.DEFAULT_MARKED_OPTIONS),A)}getrenderer(){returnthis.options.renderer}setrenderer(A){this.options.renderer=A}constructor(A,i,o,n,g,r,s,a){this.clipboardOptions=A,this.extensions=i,this.mermaidOptions=n,this.platform=g,this.securityContext=r,this.http=s,this.sanitizer=a,this.DEFAULT_MARKED_OPTIONS={renderer:new_o},this.DEFAULT_KATEX_OPTIONS={delimiters:[{left:"$$",right:"$$",display:!0},{left:"$",right:"$",display:!1},{left:"\\(",right:"\\)",display:!1},{left:"\\begin{equation}",right:"\\end{equation}",display:!0},{left:"\\begin{align}",right:"\\end{align}",display:!0},{left:"\\begin{alignat}",right:"\\end{alignat}",display:!0},{left:"\\begin{gather}",right:"\\end{gather}",display:!0},{left:"\\begin{CD}",right:"\\end{CD}",display:!0},{left:"\\[",right:"\\]",display:!0}]},this.DEFAULT_MERMAID_OPTIONS={startOnLoad:!1},this.DEFAULT_CLIPBOARD_OPTIONS={buttonComponent:void0},this.DEFAULT_PARSE_OPTIONS={decodeHtml:!1,inline:!1,emoji:!1,mermaid:!1,markedOptions:void0,disableSanitizer:!1},this.DEFAULT_RENDER_OPTIONS={clipboard:!1,clipboardOptions:void0,katex:!1,katexOptions:void0,mermaid:!1,mermaidOptions:void0},this._reload$=newJ,this.reload$=this._reload$.asObservable(),this.options=o}parse(A,i=this.DEFAUL
`+i+"\n```":i}parseMarked(A,i,o=!1){if(i.renderer){let n=v({},i.renderer);delete n.\u0275NgxMarkdownRendererExtendedForExtensions,delete n.\u0275NgxMarkdownRendererExtendedForMermaid,delete i.renderer,re.use({renderer:n})}return o?re.parseInline(A,i):re.parse(A,i)}parseEmoji(A){if(!po(this.platform))return A;if(typeof joypixels>"u"||typeof joypixels.shortnameToUnicode>"u")throw new Error(Bq);return joypixels.shortnameToUnicode(A)}renderKatex(A,i){if(po(this.platform)){if(typeof katex>"u"||typeof renderMathInElement>"u")throw new Error(cq);renderMathInElement(A,i)}}renderClipboard(A,i,o){if(!po(this.platform))return;if(typeof ClipboardJS>"u")throw new Error(Eq);if(!i)throw new Error(lq);let{buttonComponent:n,buttonTemplate:g}=o,r=A.querySelectorAll("pre");for(let s=0;s<r.length;s++){let a=r.item(s),c=document.createElement("div");c.style.position="relative",a.parentNode.insertBefore(c,a),c.appendChild(a);let E=document.createElement("div");E.classList.add("markdown-clipboard-toolbar"),E.style.position="absolute",E.style.top=".5em",E.style.right=".5em",E.style.zIndex="1",c.insertAdjacentElement("beforeend",E),c.onmouseenter=()=>E.classList.add("hover"),c.onmouseleave=()=>E.classList.remove("hover");let D;if(n){let w=i.createComponent(n);D=w.hostView,w.changeDetectorRef.markForCheck()}else if(g)D=i.createEmbeddedView(g);else{let w=i.createComponent(sq);D=w.hostView,w.changeDetectorRef.markForCheck()}let p;D.rootNodes.forEach(w=>{E.appendChild(w),p=new ClipboardJS(w,{text:()=>a.innerText})}),D.onDestroy(()=>p.destroy())}}renderMermaid(A,i=this.DEFAULT_MERMAID_OPTIONS){if(!po(this.platform))return;if(typeof mermaid>"u"||typeof mermaid.initialize>"u")throw new Error(Qq);let o=A.querySelectorAll(".mermaid");o.length!==0&&(mermaid.initialize(i),mermaid.run({nodes:o}))}trimIndentation(A){if(!A)return"";let i;return A.split(`
`+i;this.openSnackBar(o,"OK")}),new URL(window.location.href).searchParams.has("code")){let i=window.location.href;window.opener?.postMessage({authResponseUrl:i},window.origin),window.close()}this.agentService.getApp().subscribe(i=>{this.appName=i}),wt([this.agentService.getLoadingState(),this.isModelThinkingSubject]).subscribe(([i,o])=>{let n=this.messages[this.messages.length-1];i?!n?.isLoading&&!this.streamingTextMessage&&(this.messages.push({role:"bot",isLoading:!0}),this.messagesSubject.next(this.messages)):n?.isLoading&&!o&&(this.messages.pop(),this.messagesSubject.next(this.messages),this.changeDetectorRef.detectChanges())}),wt([this.messagesSubject,this.scrollInterruptedSubject,this.streamingTextMessageSubject]).subscribe(([i,o,n])=>{o||setTimeout(()=>{this.scrollToBottom()},100)})}ngAfterViewInit(){this.showSidePanel=!0,this.sideDrawer.open()}scrollToBottom(){setTimeout(()=>{this.scrollContainer.nativeElement.scrollTo({top:this.scrollContainer.nativeElement.scrollHeight,behavior:"smooth"})})}selectApp(e){e!=this.appName&&(this.agentService.setApp(e),this.createSession(),this.eventData=new Map,this.eventMessageIndexArray=[],this.messages=[],this.artifacts=[],this.userInput="",this.longRunningEvents=[])}createSession(){this.sessionService.createSession(this.userId,this.appName).subscribe(e=>{this.currentSessionState=e.state,this.sessionId=e.id,this.sessionTab.refreshSession()})}sendMessage(e){return gt(this,null,function*(){if(this.messages.length===0&&(this.scrollContainer.nativeElement.addEventListener("wheel",()=>{this.scrollInterruptedSubject.next(!0)}),this.scrollContainer.nativeElement.addEventListener("touchmove",()=>{this.scrollInterruptedSubject.next(!0)})),this.scrollInterruptedSubject.next(!1),e.preventDefault(),!this.userInput.trim())return;if(this.messages.push({role:"user",text:this.userInput}),this.messagesSubject.next(this.messages),this.selectedFiles.length>0){let o=this.selectedFiles.map(n=>({file:n.file,url:n.url}));this.messages.push({role:"user",attachments:o}),this.messagesSubject.next(this.messages)}let A={appName:this.appName,userId:this.userId,sessionId:this.sessionId,newMessage:{role:"user",parts:yield this.getUserMessageParts()},streaming:this.useSse};this.selectedFiles=[];let i=this.eventMessageIndexArray.length-1;this.streamingTextMessage=null,this.agentService.runSse(A).subscribe({next:o=>gt(this,null,function*(){if(o.startsWith('{"error"')){this.openSnackBar(o,"OK");return}let n=JSON.parse(o);if(n.error){this.openSnackBar(n.error,"OK");return}if(n.content)for(let g of n.content.parts)i+=1,this.processPart(n,g,i);this.changeDetectorRef.detectChanges()}),error:o=>console.error("SSEerror:",o),complete:()=>{this.streamingTextMessage=null,this.sessionTab.reloadSession(this.sessionId),this.eventService.getTrace(this.sessionId).pipe(Xe(o=>o.status===404?oA(null):oA([]))).subscribe(o=>{this.traceData=o})}}),this.userInput="",this.changeDetectorRef.detectChanges()})}processPart(e,A,i){let o=e.groundingMetadata?.searchEntryPoint?.renderedContent;if(A.text){this.isModelThinkingSubject.next(!1);let n=A.text;if(A.thought){if(n!==this.latestThought){this.storeEvents(A,e,i);let g={role:"bot",text:this.processThoughtText(n),thought:!0,eventId:e.id};this.insertMessageBeforeLoadingMessage(g)}this.latestThought=n}else if(this.streamingTextMessage){if(o&&(this.streamingTextMessage.renderedContent=e.groundingMetadata.searchEntryPoint.renderedContent),n==this.streamingTextMessage.text){this.storeEvents(A,e,i),this.eventMessageIndexArray[i]=n,this.streamingTextMessage=null;return}this.streamingTextMessage.text+=n,this.streamingTextMessageSubject.next(this.streamingTextMessage)}else if(this.streamingTextMessage={role:"bot",text:this.processThoughtText(n),thought:!!A.thought,eventId:e.id},o&&(this.streamingTextMessage.renderedContent=e.groundingMetadata.searchEntryPoint.renderedContent),this.insertMessageBeforeLoadingMessage(this.streamingTextMessage),!this.useSse){this.storeEvents(A,e,i),this.eventMessageIndexArray[i]=n,this.streamingTextMessage=null;return}}else A.thought?this.isModelThinkingSubject.next
`&&A--,this.textarea?.nativeElement.setSelectionRange(A,A)},0)}saveEvalCase(){this.evalService.updateEvalCase(this.appName,this.evalSetId,this.updatedEvalCase.evalId,this.updatedEvalCase).subscribe(e=>{this.openSnackBar("Evalcaseupdated","OK"),this.hasEvalCaseChanged.set(!1)})}cancelEditEvalCase(){this.hasEvalCaseChanged.set(!1),this.isEvalCaseEditing.set(!1),this.updatedEvalCase=null,this.updateWithSelectedEvalCase(this.evalCase)}cancelEditMessage(e){e.isEditing=!1,this.isEvalCaseEditing.set(!1)}saveEditMessage(e){this.hasEvalCaseChanged.set(!0),this.isEvalCaseEditing.set(!1),e.isEditing=!1,e.text=this.userEditEvalCaseMessage?this.userEditEvalCaseMessage:"",this.updatedEvalCase=structuredClone(this.evalCase),this.updatedEvalCase.conversation[e.invocationIndex].finalResponse.parts[e.finalResponsePartIndex]={text:this.userEditEvalCaseMessage},this.userEditEvalCaseMessage=""}handleKeydown(e,A){e.key==="Enter"&&!e.shiftKey?(e.preventDefault(),this.saveEditMessage(A)):e.key==="Escape"&&this.cancelEditMessage(A)}deleteEvalCaseMessage(e,A){this.hasEvalCaseChanged.set(!0),this.messages.splice(A,1),this.messagesSubject.next(this.messages),this.updatedEvalCase=structuredClone(this.evalCase),this.updatedEvalCase.conversation[e.invocationIndex].finalResponse.parts.splice(e.finalResponsePartIndex,1)}deleteEvalCase(){let e={title:"Confirmdelete",message:`Are you sure you want to delete ${this.evalCase.evalId}?`,confirmButtonText:"Delete",cancelButtonText:"Cancel"};this.dialog.open(ks,{width:"600px",data:e}).afterClosed().subscribe(i=>{i&&(this.evalTab.deleteEvalCase(this.evalCase.evalId),this.openSnackBar("Evalcasedeleted","OK"))})}updateSessionState(e){this.currentSessionState=e.state}onNewSessionClick(){this.createSession(),this.eventData.clear(),this.eventMessageIndexArray=[],this.messages=[],this.artifacts=[],this.evalTab.showEvalHistory&&this.evalTab.toggleEvalHistoryButton()}onFileSelect(e){let A=e.target;if(A.files)for(let i=0;i<A.files.length;i++){let o=A.files[i],n=URL.createObjectURL(o);this.selectedFiles.push({file:o,url:n})}A.value=""}removeFile(e){URL.revokeObjectURL(this.selectedFiles[e].url),this.selectedFiles.splice(e,1)}toggleSse(){this.useSse=!this.useSse}selectEvent(e){this.selectedEvent=this.eventData.get(e),this.selectedEventIndex=this.getIndexOfKeyInMap(e),this.eventService.getEventTrace(this.selectedEvent.id).subscribe(A=>{this.llmRequest=JSON.parse(A[this.llmRequestKey]),this.llmResponse=JSON.parse(A[this.llmResponseKey])}),this.eventService.getEvent(this.userId,this.appName,this.sessionId,this.selectedEvent.id).subscribe(A=>gt(this,null,function*(){if(!A.dotSrc){this.renderedEventGraph=void 0;return}let i=A.dotSrc,n=(yield ip()).renderString(i,{format:"svg",engine:"dot"});this.rawSvgString=n,this.renderedEventGraph=this.sanitizer.bypassSecurityTrustHtml(n)}))}deleteSession(e){let A={title:"Confirmdelete",message:`Are you sure you want to delete this session ${this.sessionId}?`,confirmButtonText:"Delete",cancelButtonText:"Cancel"};this.dialog.open(ks,{width:"600px",data:A}).afterClosed().subscribe(o=>{o&&this.sessionService.deleteSession(this.userId,this.appName,e).subscribe(n=>{let g=this.sessionTab.refreshSession(e);g?this.sessionTab.getSession(g.id):window.location.reload()})})}syncSelectedAppFromUrl(){wt([this.router.events.pipe(MA(e=>e instanceof Qi),CA(()=>this.activatedRoute.snapshot.queryParams)),this.apps$]).subscribe(([e,A])=>{if(A&&A.length){let i=e.app;i&&A.includes(i)?this.selectedAppControl.setValue(i):i&&this.openSnackBar(`Agent '${i}' not found`,"OK")}})}updateSelectedAppUrl(){this.selectedAppControl.valueChanges.pipe(Ki(),MA(Boolean)).subscribe(e=>{this.selectApp(e);let A=this.activatedRoute.snapshot.queryParams.app;e!==A&&this.router.navigate([],{queryParams:{app:e},queryParamsHandling:"merge"})})}handlePageEvent(e){if(e.pageIndex>=0){letA=this.getKeyAtIndexInMap(e.pageIndex);A&&this.selectEvent(A)}}closeSelectedEvent(){this.selectedEvent=void0,this.selectedEventIndex=void0}getIndexOfKeyInMap(e){letA=0,i=(n,g)=>0,o=Array.from(this.eventData.keys()).sort(i);for(letnofo){if(n===e