copilot-usage-studio 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ import{$ as ii,$a as S,A as me,Aa as xt,Ab as Ce,B as qt,Ba as Pe,Bb as si,C as _e,Ca as b,Cb as nn,D as z,Da as M,Db as on,E as Zn,Ea as bt,Eb as Jo,F,Fa as j,Fb as Ko,G as Co,Ga as B,H as X,Ha as P,I as U,Ia as s,Ib as Oe,J as y,Ja as a,Jb as Xo,K as Wt,Ka as I,Kb as Yo,L as vo,La as Te,Lb as rn,M as Me,Ma as Ee,N as le,Na as H,O as E,Oa as Fo,P as k,Pa as w,Pb as we,Q as ei,Qa as Lo,Qb as Qo,R as ce,Ra as m,Rb as Zo,S as Gt,Sa as ke,Sb as er,T as xo,Ta as q,Tb as tr,U as $,Ua as l,Ub as nr,V as ft,Va as C,Vb as ir,W as ti,Wa as v,Wb as or,X as ni,Xa as W,Y as bo,Ya as Ye,Z as L,Za as h,_ as Mo,_a as x,a as O,aa as Jt,ab as Uo,b as ie,ba as oi,bb as Ve,c as po,ca as Po,cb as te,d as uo,da as yo,db as zo,e as Vt,ea as ri,eb as jo,f as Ke,fa as Oo,fb as Bo,g as pe,ga as Kt,gb as Mt,h as ue,ha as Xt,hb as Vo,i as ge,ia as Yt,ib as $o,j as N,ja as wo,jb as Ho,k as go,ka as d,kb as Zt,l as Xn,la as _t,lb as ye,m as mo,ma as So,mb as Fe,n as Z,na as Qt,nb as re,o as ho,oa as To,ob as en,p as De,pa as Eo,pb as tn,q as fo,qa as ko,qb as qo,r as $t,ra as ai,s as Ae,sa as ee,sb as Wo,t as Yn,ta as Ro,u as ht,ua as Ct,v as Xe,va as Io,w as Ht,wa as Do,x as Ne,xa as Ao,y as Qn,ya as No,z as _o,za as vt,zb as Go}from"./chunk-F6TIG2GE.js";var Pt=class{_doc;constructor(t){this._doc=t}manager},an=(()=>{class n extends Pt{constructor(e){super(e)}supports(e){return!0}addEventListener(e,i,o,r){return e.addEventListener(i,o,r),()=>this.removeEventListener(e,i,o,r)}removeEventListener(e,i,o,r){return e.removeEventListener(i,o,r)}static \u0275fac=function(i){return new(i||n)(U(ce))};static \u0275prov=F({token:n,factory:n.\u0275fac})}return n})(),cn=new X(""),pi=(()=>{class n{_zone;_plugins;_eventNameToPlugin=new Map;constructor(e,i){this._zone=i,e.forEach(c=>{c.manager=this});let o=e.filter(c=>!(c instanceof an));this._plugins=o.slice().reverse();let r=e.find(c=>c instanceof an);r&&this._plugins.push(r)}addEventListener(e,i,o,r){return this._findPluginFor(i).addEventListener(e,i,o,r)}getZone(){return this._zone}_findPluginFor(e){let i=this._eventNameToPlugin.get(e);if(i)return i;if(i=this._plugins.find(r=>r.supports(e)),!i)throw new z(5101,!1);return this._eventNameToPlugin.set(e,i),i}static \u0275fac=function(i){return new(i||n)(U(cn),U(ft))};static \u0275prov=F({token:n,factory:n.\u0275fac})}return n})(),li="ng-app-id";function rr(n){for(let t of n)t.remove()}function ar(n,t){let e=t.createElement("style");return e.textContent=n,e}function Fa(n,t,e,i){let o=n.head?.querySelectorAll(`style[${li}="${t}"],link[${li}="${t}"]`);if(o)for(let r of o)r.removeAttribute(li),r instanceof HTMLLinkElement?i.set(r.href.slice(r.href.lastIndexOf("/")+1),{usage:0,elements:[r]}):r.textContent&&e.set(r.textContent,{usage:0,elements:[r]})}function di(n,t){let e=t.createElement("link");return e.setAttribute("rel","stylesheet"),e.setAttribute("href",n),e}var ui=(()=>{class n{doc;appId;nonce;inline=new Map;external=new Map;hosts=new Set;constructor(e,i,o,r={}){this.doc=e,this.appId=i,this.nonce=o,Fa(e,i,this.inline,this.external),this.hosts.add(e.head)}addStyles(e,i){for(let o of e)this.addUsage(o,this.inline,ar);i?.forEach(o=>this.addUsage(o,this.external,di))}removeStyles(e,i){for(let o of e)this.removeUsage(o,this.inline);i?.forEach(o=>this.removeUsage(o,this.external))}addUsage(e,i,o){let r=i.get(e);r?r.usage++:i.set(e,{usage:1,elements:[...this.hosts].map(c=>this.addElement(c,o(e,this.doc)))})}removeUsage(e,i){let o=i.get(e);o&&(o.usage--,o.usage<=0&&(rr(o.elements),i.delete(e)))}ngOnDestroy(){for(let[,{elements:e}]of[...this.inline,...this.external])rr(e);this.hosts.clear()}addHost(e){this.hosts.add(e);for(let[i,{elements:o}]of this.inline)o.push(this.addElement(e,ar(i,this.doc)));for(let[i,{elements:o}]of this.external)o.push(this.addElement(e,di(i,this.doc)))}removeHost(e){this.hosts.delete(e)}addElement(e,i){return this.nonce&&i.setAttribute("nonce",this.nonce),e.appendChild(i)}static \u0275fac=function(i){return new(i||n)(U(ce),U(ri),U(Xt,8),U(Kt))};static \u0275prov=F({token:n,factory:n.\u0275fac})}return n})(),ci={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/Math/MathML"},gi=/%COMP%/g;var lr="%COMP%",La=`_nghost-${lr}`,Ua=`_ngcontent-${lr}`,za=!0,ja=new X("",{factory:()=>za});function Ba(n){return Ua.replace(gi,n)}function Va(n){return La.replace(gi,n)}function cr(n,t){return t.map(e=>e.replace(gi,n))}var mi=(()=>{class n{eventManager;sharedStylesHost;appId;removeStylesOnCompDestroy;doc;ngZone;nonce;tracingService;rendererByCompId=new Map;defaultRenderer;constructor(e,i,o,r,c,p,u=null,g=null){this.eventManager=e,this.sharedStylesHost=i,this.appId=o,this.removeStylesOnCompDestroy=r,this.doc=c,this.ngZone=p,this.nonce=u,this.tracingService=g,this.defaultRenderer=new yt(e,c,p,this.tracingService)}createRenderer(e,i){if(!e||!i)return this.defaultRenderer;let o=this.getOrCreateRenderer(e,i);return o instanceof ln?o.applyToHost(e):o instanceof Ot&&o.applyStyles(),o}getOrCreateRenderer(e,i){let o=this.rendererByCompId,r=o.get(i.id);if(!r){let c=this.doc,p=this.ngZone,u=this.eventManager,g=this.sharedStylesHost,f=this.removeStylesOnCompDestroy,_=this.tracingService;switch(i.encapsulation){case Yt.Emulated:r=new ln(u,g,i,this.appId,f,c,p,_);break;case Yt.ShadowDom:return new sn(u,e,i,c,p,this.nonce,_,g);case Yt.ExperimentalIsolatedShadowDom:return new sn(u,e,i,c,p,this.nonce,_);default:r=new Ot(u,g,i,f,c,p,_);break}o.set(i.id,r)}return r}ngOnDestroy(){this.rendererByCompId.clear()}componentReplaced(e){this.rendererByCompId.delete(e)}static \u0275fac=function(i){return new(i||n)(U(pi),U(ui),U(ri),U(ja),U(ce),U(ft),U(Xt),U(Qt,8))};static \u0275prov=F({token:n,factory:n.\u0275fac})}return n})(),yt=class{eventManager;doc;ngZone;tracingService;data=Object.create(null);throwOnSyntheticProps=!0;constructor(t,e,i,o){this.eventManager=t,this.doc=e,this.ngZone=i,this.tracingService=o}destroy(){}destroyNode=null;createElement(t,e){return e?this.doc.createElementNS(ci[e]||e,t):this.doc.createElement(t)}createComment(t){return this.doc.createComment(t)}createText(t){return this.doc.createTextNode(t)}appendChild(t,e){(sr(t)?t.content:t).appendChild(e)}insertBefore(t,e,i){t&&(sr(t)?t.content:t).insertBefore(e,i)}removeChild(t,e){e.remove()}selectRootElement(t,e){let i=typeof t=="string"?this.doc.querySelector(t):t;if(!i)throw new z(-5104,!1);return e||(i.textContent=""),i}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,e,i,o){if(o){e=o+":"+e;let r=ci[o];r?t.setAttributeNS(r,e,i):t.setAttribute(e,i)}else t.setAttribute(e,i)}removeAttribute(t,e,i){if(i){let o=ci[i];o?t.removeAttributeNS(o,e):t.removeAttribute(`${i}:${e}`)}else t.removeAttribute(e)}addClass(t,e){t.classList.add(e)}removeClass(t,e){t.classList.remove(e)}setStyle(t,e,i,o){o&(_t.DashCase|_t.Important)?t.style.setProperty(e,i,o&_t.Important?"important":""):t.style[e]=i}removeStyle(t,e,i){i&_t.DashCase?t.style.removeProperty(e):t.style[e]=""}setProperty(t,e,i){t!=null&&(t[e]=i)}setValue(t,e){t.nodeValue=e}listen(t,e,i,o){if(typeof t=="string"&&(t=Mt().getGlobalEventTarget(this.doc,t),!t))throw new z(5102,!1);let r=this.decoratePreventDefault(i);return this.tracingService?.wrapEventListener&&(r=this.tracingService.wrapEventListener(t,e,r)),this.eventManager.addEventListener(t,e,r,o)}decoratePreventDefault(t){return e=>{if(e==="__ngUnwrap__")return t;t(e)===!1&&e.preventDefault()}}};function sr(n){return n.tagName==="TEMPLATE"&&n.content!==void 0}var sn=class extends yt{hostEl;sharedStylesHost;shadowRoot;constructor(t,e,i,o,r,c,p,u){super(t,o,r,p),this.hostEl=e,this.sharedStylesHost=u,this.shadowRoot=e.attachShadow({mode:"open"}),this.sharedStylesHost&&this.sharedStylesHost.addHost(this.shadowRoot);let g=i.styles;g=cr(i.id,g);for(let _ of g){let R=document.createElement("style");c&&R.setAttribute("nonce",c),R.textContent=_,this.shadowRoot.appendChild(R)}let f=i.getExternalStyles?.();if(f)for(let _ of f){let R=di(_,o);c&&R.setAttribute("nonce",c),this.shadowRoot.appendChild(R)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}appendChild(t,e){return super.appendChild(this.nodeOrShadowRoot(t),e)}insertBefore(t,e,i){return super.insertBefore(this.nodeOrShadowRoot(t),e,i)}removeChild(t,e){return super.removeChild(null,e)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}destroy(){this.sharedStylesHost&&this.sharedStylesHost.removeHost(this.shadowRoot)}},Ot=class extends yt{sharedStylesHost;removeStylesOnCompDestroy;styles;styleUrls;constructor(t,e,i,o,r,c,p,u){super(t,r,c,p),this.sharedStylesHost=e,this.removeStylesOnCompDestroy=o;let g=i.styles;this.styles=u?cr(u,g):g,this.styleUrls=i.getExternalStyles?.(u)}applyStyles(){this.sharedStylesHost.addStyles(this.styles,this.styleUrls)}destroy(){this.removeStylesOnCompDestroy&&So.size===0&&this.sharedStylesHost.removeStyles(this.styles,this.styleUrls)}},ln=class extends Ot{contentAttr;hostAttr;constructor(t,e,i,o,r,c,p,u){let g=o+"-"+i.id;super(t,e,i,r,c,p,u,g),this.contentAttr=Ba(g),this.hostAttr=Va(g)}applyToHost(t){this.applyStyles(),this.setAttribute(t,this.hostAttr,"")}createElement(t,e){let i=super.createElement(t,e);return super.setAttribute(i,this.contentAttr,""),i}};var dn=class n extends $o{supportsDOMEvents=!0;static makeCurrent(){Vo(new n)}onAndCancel(t,e,i,o){return t.addEventListener(e,i,o),()=>{t.removeEventListener(e,i,o)}}dispatchEvent(t,e){t.dispatchEvent(e)}remove(t){t.remove()}createElement(t,e){return e=e||this.getDefaultDocument(),e.createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,e){return e==="window"?window:e==="document"?t:e==="body"?t.body:null}getBaseHref(t){let e=$a();return e==null?null:Ha(e)}resetBaseElement(){wt=null}getUserAgent(){return window.navigator.userAgent}getCookie(t){return en(document.cookie,t)}},wt=null;function $a(){return wt=wt||document.head.querySelector("base"),wt?wt.getAttribute("href"):null}function Ha(n){return new URL(n,document.baseURI).pathname}var qa=(()=>{class n{build(){return new XMLHttpRequest}static \u0275fac=function(i){return new(i||n)};static \u0275prov=F({token:n,factory:n.\u0275fac})}return n})(),dr=["alt","control","meta","shift"],Wa={"\b":"Backspace"," ":"Tab","\x7F":"Delete","\x1B":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},Ga={alt:n=>n.altKey,control:n=>n.ctrlKey,meta:n=>n.metaKey,shift:n=>n.shiftKey},gr=(()=>{class n extends Pt{constructor(e){super(e)}supports(e){return n.parseEventName(e)!=null}addEventListener(e,i,o,r){let c=n.parseEventName(i),p=n.eventCallback(c.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Mt().onAndCancel(e,c.domEventName,p,r))}static parseEventName(e){let i=e.toLowerCase().split("."),o=i.shift();if(i.length===0||!(o==="keydown"||o==="keyup"))return null;let r=n._normalizeKey(i.pop()),c="",p=i.indexOf("code");if(p>-1&&(i.splice(p,1),c="code."),dr.forEach(g=>{let f=i.indexOf(g);f>-1&&(i.splice(f,1),c+=g+".")}),c+=r,i.length!=0||r.length===0)return null;let u={};return u.domEventName=o,u.fullKey=c,u}static matchEventFullKeyCode(e,i){let o=Wa[e.key]||e.key,r="";return i.indexOf("code.")>-1&&(o=e.code,r="code."),o==null||!o?!1:(o=o.toLowerCase(),o===" "?o="space":o==="."&&(o="dot"),dr.forEach(c=>{if(c!==o){let p=Ga[c];p(e)&&(r+=c+".")}}),r+=o,r===i)}static eventCallback(e,i,o){return r=>{n.matchEventFullKeyCode(r,e)&&o.runGuarded(()=>i(r))}}static _normalizeKey(e){return e==="esc"?"escape":e}static \u0275fac=function(i){return new(i||n)(U(ce))};static \u0275prov=F({token:n,factory:n.\u0275fac})}return n})();async function hi(n,t,e){let i=O({rootComponent:n},Ja(t,e));return Bo(i)}function Ja(n,t){return{platformRef:t?.platformRef,appProviders:[...Za,...n?.providers??[]],platformProviders:Qa}}function Ka(){dn.makeCurrent()}function Xa(){return new ti}function Ya(){return yo(document),document}var Qa=[{provide:Kt,useValue:qo},{provide:Oo,useValue:Ka,multi:!0},{provide:ce,useFactory:Ya}];var Za=[{provide:vo,useValue:"root"},{provide:ti,useFactory:Xa},{provide:cn,useClass:an,multi:!0},{provide:cn,useClass:gr,multi:!0},mi,ui,pi,{provide:To,useExisting:mi},{provide:tn,useClass:qa},[]];var Le=class n{headers;normalizedNames=new Map;lazyInit;lazyUpdate=null;constructor(t){t?typeof t=="string"?this.lazyInit=()=>{this.headers=new Map,t.split(`
2
+ `).forEach(e=>{let i=e.indexOf(":");if(i>0){let o=e.slice(0,i),r=e.slice(i+1).trim();this.addHeaderEntry(o,r)}})}:typeof Headers<"u"&&t instanceof Headers?(this.headers=new Map,t.forEach((e,i)=>{this.addHeaderEntry(i,e)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(t).forEach(([e,i])=>{this.setHeaderEntries(e,i)})}:this.headers=new Map}has(t){return this.init(),this.headers.has(t.toLowerCase())}get(t){this.init();let e=this.headers.get(t.toLowerCase());return e&&e.length>0?e[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(t){return this.init(),this.headers.get(t.toLowerCase())||null}append(t,e){return this.clone({name:t,value:e,op:"a"})}set(t,e){return this.clone({name:t,value:e,op:"s"})}delete(t,e){return this.clone({name:t,value:e,op:"d"})}maybeSetNormalizedName(t,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,t)}init(){this.lazyInit&&(this.lazyInit instanceof n?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(t=>this.applyUpdate(t)),this.lazyUpdate=null))}copyFrom(t){t.init(),Array.from(t.headers.keys()).forEach(e=>{this.headers.set(e,t.headers.get(e)),this.normalizedNames.set(e,t.normalizedNames.get(e))})}clone(t){let e=new n;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof n?this.lazyInit:this,e.lazyUpdate=(this.lazyUpdate||[]).concat([t]),e}applyUpdate(t){let e=t.name.toLowerCase();switch(t.op){case"a":case"s":let i=t.value;if(typeof i=="string"&&(i=[i]),i.length===0)return;this.maybeSetNormalizedName(t.name,e);let o=(t.op==="a"?this.headers.get(e):void 0)||[];o.push(...i),this.headers.set(e,o);break;case"d":let r=t.value;if(!r)this.headers.delete(e),this.normalizedNames.delete(e);else{let c=this.headers.get(e);if(!c)return;c=c.filter(p=>r.indexOf(p)===-1),c.length===0?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,c)}break}}addHeaderEntry(t,e){let i=t.toLowerCase();this.maybeSetNormalizedName(t,i),this.headers.has(i)?this.headers.get(i).push(e):this.headers.set(i,[e])}setHeaderEntries(t,e){let i=(Array.isArray(e)?e:[e]).map(r=>r.toString()),o=t.toLowerCase();this.headers.set(o,i),this.maybeSetNormalizedName(t,o)}forEach(t){this.init(),Array.from(this.normalizedNames.keys()).forEach(e=>t(this.normalizedNames.get(e),this.headers.get(e)))}};var un=class{map=new Map;set(t,e){return this.map.set(t,e),this}get(t){return this.map.has(t)||this.map.set(t,t.defaultValue()),this.map.get(t)}delete(t){return this.map.delete(t),this}has(t){return this.map.has(t)}keys(){return this.map.keys()}},gn=class{encodeKey(t){return mr(t)}encodeValue(t){return mr(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}};function es(n,t){let e=new Map;return n.length>0&&n.replace(/^\?/,"").split("&").forEach(o=>{let r=o.indexOf("="),[c,p]=r==-1?[t.decodeKey(o),""]:[t.decodeKey(o.slice(0,r)),t.decodeValue(o.slice(r+1))],u=e.get(c)||[];u.push(p),e.set(c,u)}),e}var ts=/%(\d[a-f0-9])/gi,ns={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function mr(n){return encodeURIComponent(n).replace(ts,(t,e)=>ns[e]??t)}function pn(n){return`${n}`}var Re=class n{map;encoder;updates=null;cloneFrom=null;constructor(t={}){if(this.encoder=t.encoder||new gn,t.fromString){if(t.fromObject)throw new z(2805,!1);this.map=es(t.fromString,this.encoder)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(e=>{let i=t.fromObject[e],o=Array.isArray(i)?i.map(pn):[pn(i)];this.map.set(e,o)})):this.map=null}has(t){return this.init(),this.map.has(t)}get(t){this.init();let e=this.map.get(t);return e?e[0]:null}getAll(t){return this.init(),this.map.get(t)||null}keys(){return this.init(),Array.from(this.map.keys())}append(t,e){return this.clone({param:t,value:e,op:"a"})}appendAll(t){let e=[];return Object.keys(t).forEach(i=>{let o=t[i];Array.isArray(o)?o.forEach(r=>{e.push({param:i,value:r,op:"a"})}):e.push({param:i,value:o,op:"a"})}),this.clone(e)}set(t,e){return this.clone({param:t,value:e,op:"s"})}delete(t,e){return this.clone({param:t,value:e,op:"d"})}toString(){return this.init(),this.keys().map(t=>{let e=this.encoder.encodeKey(t);return this.map.get(t).map(i=>e+"="+this.encoder.encodeValue(i)).join("&")}).filter(t=>t!=="").join("&")}clone(t){let e=new n({encoder:this.encoder});return e.cloneFrom=this.cloneFrom||this,e.updates=(this.updates||[]).concat(t),e}init(){this.map===null&&(this.map=new Map),this.cloneFrom!==null&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(t=>this.map.set(t,this.cloneFrom.map.get(t))),this.updates.forEach(t=>{switch(t.op){case"a":case"s":let e=(t.op==="a"?this.map.get(t.param):void 0)||[];e.push(pn(t.value)),this.map.set(t.param,e);break;case"d":if(t.value!==void 0){let i=this.map.get(t.param)||[],o=i.indexOf(pn(t.value));o!==-1&&i.splice(o,1),i.length>0?this.map.set(t.param,i):this.map.delete(t.param)}else{this.map.delete(t.param);break}}}),this.cloneFrom=this.updates=null)}};function is(n){switch(n){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}function hr(n){return typeof ArrayBuffer<"u"&&n instanceof ArrayBuffer}function fr(n){return typeof Blob<"u"&&n instanceof Blob}function _r(n){return typeof FormData<"u"&&n instanceof FormData}function os(n){return typeof URLSearchParams<"u"&&n instanceof URLSearchParams}var Cr="Content-Type",vr="Accept",xr="text/plain",br="application/json",rs=`${br}, ${xr}, */*`,Qe=class n{url;body=null;headers;context;reportProgress=!1;withCredentials=!1;credentials;keepalive=!1;cache;priority;mode;redirect;referrer;integrity;referrerPolicy;responseType="json";method;params;urlWithParams;transferCache;timeout;constructor(t,e,i,o){this.url=e,this.method=t.toUpperCase();let r;if(is(this.method)||o?(this.body=i!==void 0?i:null,r=o):r=i,r){if(this.reportProgress=!!r.reportProgress,this.withCredentials=!!r.withCredentials,this.keepalive=!!r.keepalive,r.responseType&&(this.responseType=r.responseType),r.headers&&(this.headers=r.headers),r.context&&(this.context=r.context),r.params&&(this.params=r.params),r.priority&&(this.priority=r.priority),r.cache&&(this.cache=r.cache),r.credentials&&(this.credentials=r.credentials),typeof r.timeout=="number"){if(r.timeout<1||!Number.isInteger(r.timeout))throw new z(2822,"");this.timeout=r.timeout}r.mode&&(this.mode=r.mode),r.redirect&&(this.redirect=r.redirect),r.integrity&&(this.integrity=r.integrity),r.referrer&&(this.referrer=r.referrer),r.referrerPolicy&&(this.referrerPolicy=r.referrerPolicy),this.transferCache=r.transferCache}if(this.headers??=new Le,this.context??=new un,!this.params)this.params=new Re,this.urlWithParams=e;else{let c=this.params.toString();if(c.length===0)this.urlWithParams=e;else{let p=e.indexOf("?"),u=p===-1?"?":p<e.length-1?"&":"";this.urlWithParams=e+u+c}}}serializeBody(){return this.body===null?null:typeof this.body=="string"||hr(this.body)||fr(this.body)||_r(this.body)||os(this.body)?this.body:this.body instanceof Re?this.body.toString():typeof this.body=="object"||typeof this.body=="boolean"||Array.isArray(this.body)?JSON.stringify(this.body):this.body.toString()}detectContentTypeHeader(){return this.body===null||_r(this.body)?null:fr(this.body)?this.body.type||null:hr(this.body)?null:typeof this.body=="string"?xr:this.body instanceof Re?"application/x-www-form-urlencoded;charset=UTF-8":typeof this.body=="object"||typeof this.body=="number"||typeof this.body=="boolean"?br:null}clone(t={}){let e=t.method||this.method,i=t.url||this.url,o=t.responseType||this.responseType,r=t.keepalive??this.keepalive,c=t.priority||this.priority,p=t.cache||this.cache,u=t.mode||this.mode,g=t.redirect||this.redirect,f=t.credentials||this.credentials,_=t.referrer||this.referrer,R=t.integrity||this.integrity,J=t.referrerPolicy||this.referrerPolicy,Y=t.transferCache??this.transferCache,Q=t.timeout??this.timeout,T=t.body!==void 0?t.body:this.body,A=t.withCredentials??this.withCredentials,G=t.reportProgress??this.reportProgress,K=t.headers||this.headers,ne=t.params||this.params,gt=t.context??this.context;return t.setHeaders!==void 0&&(K=Object.keys(t.setHeaders).reduce((mt,Be)=>mt.set(Be,t.setHeaders[Be]),K)),t.setParams&&(ne=Object.keys(t.setParams).reduce((mt,Be)=>mt.set(Be,t.setParams[Be]),ne)),new n(e,i,T,{params:ne,headers:K,context:gt,reportProgress:G,responseType:o,withCredentials:A,transferCache:Y,keepalive:r,cache:p,priority:c,timeout:Q,mode:u,redirect:g,credentials:f,referrer:_,integrity:R,referrerPolicy:J})}},$e=(function(n){return n[n.Sent=0]="Sent",n[n.UploadProgress=1]="UploadProgress",n[n.ResponseHeader=2]="ResponseHeader",n[n.DownloadProgress=3]="DownloadProgress",n[n.Response=4]="Response",n[n.User=5]="User",n})($e||{}),et=class{headers;status;statusText;url;ok;type;redirected;responseType;constructor(t,e=200,i="OK"){this.headers=t.headers||new Le,this.status=t.status!==void 0?t.status:e,this.statusText=t.statusText||i,this.url=t.url||null,this.redirected=t.redirected,this.responseType=t.responseType,this.ok=this.status>=200&&this.status<300}},mn=class n extends et{constructor(t={}){super(t)}type=$e.ResponseHeader;clone(t={}){return new n({headers:t.headers||this.headers,status:t.status!==void 0?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}},St=class n extends et{body;constructor(t={}){super(t),this.body=t.body!==void 0?t.body:null}type=$e.Response;clone(t={}){return new n({body:t.body!==void 0?t.body:this.body,headers:t.headers||this.headers,status:t.status!==void 0?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0,redirected:t.redirected??this.redirected,responseType:t.responseType??this.responseType})}},Ze=class extends et{name="HttpErrorResponse";message;error;ok=!1;constructor(t){super(t,0,"Unknown Error"),this.status>=200&&this.status<300?this.message=`Http failure during parsing for ${t.url||"(unknown url)"}`:this.message=`Http failure response for ${t.url||"(unknown url)"}: ${t.status} ${t.statusText}`,this.error=t.error||null}},as=200,ss=204;var ls=new X("");var cs=/^\)\]\}',?\n/;var _i=(()=>{class n{xhrFactory;tracingService=y(Qt,{optional:!0});constructor(e){this.xhrFactory=e}maybePropagateTrace(e){return this.tracingService?.propagate?this.tracingService.propagate(e):e}handle(e){if(e.method==="JSONP")throw new z(-2800,!1);let i=this.xhrFactory;return N(null).pipe(me(()=>new Vt(r=>{let c=i.build();if(c.open(e.method,e.urlWithParams),e.withCredentials&&(c.withCredentials=!0),e.headers.forEach((T,A)=>c.setRequestHeader(T,A.join(","))),e.headers.has(vr)||c.setRequestHeader(vr,rs),!e.headers.has(Cr)){let T=e.detectContentTypeHeader();T!==null&&c.setRequestHeader(Cr,T)}if(e.timeout&&(c.timeout=e.timeout),e.responseType){let T=e.responseType.toLowerCase();c.responseType=T!=="json"?T:"text"}let p=e.serializeBody(),u=null,g=()=>{if(u!==null)return u;let T=c.statusText||"OK",A=new Le(c.getAllResponseHeaders()),G=c.responseURL||e.url;return u=new mn({headers:A,status:c.status,statusText:T,url:G}),u},f=this.maybePropagateTrace(()=>{let{headers:T,status:A,statusText:G,url:K}=g(),ne=null;A!==ss&&(ne=typeof c.response>"u"?c.responseText:c.response),A===0&&(A=ne?as:0);let gt=A>=200&&A<300;if(e.responseType==="json"&&typeof ne=="string"){let mt=ne;ne=ne.replace(cs,"");try{ne=ne!==""?JSON.parse(ne):null}catch(Be){ne=mt,gt&&(gt=!1,ne={error:Be,text:ne})}}gt?(r.next(new St({body:ne,headers:T,status:A,statusText:G,url:K||void 0})),r.complete()):r.error(new Ze({error:ne,headers:T,status:A,statusText:G,url:K||void 0}))}),_=this.maybePropagateTrace(T=>{let{url:A}=g(),G=new Ze({error:T,status:c.status||0,statusText:c.statusText||"Unknown Error",url:A||void 0});r.error(G)}),R=_;e.timeout&&(R=this.maybePropagateTrace(T=>{let{url:A}=g(),G=new Ze({error:new DOMException("Request timed out","TimeoutError"),status:c.status||0,statusText:c.statusText||"Request timeout",url:A||void 0});r.error(G)}));let J=!1,Y=this.maybePropagateTrace(T=>{J||(r.next(g()),J=!0);let A={type:$e.DownloadProgress,loaded:T.loaded};T.lengthComputable&&(A.total=T.total),e.responseType==="text"&&c.responseText&&(A.partialText=c.responseText),r.next(A)}),Q=this.maybePropagateTrace(T=>{let A={type:$e.UploadProgress,loaded:T.loaded};T.lengthComputable&&(A.total=T.total),r.next(A)});return c.addEventListener("load",f),c.addEventListener("error",_),c.addEventListener("timeout",R),c.addEventListener("abort",_),e.reportProgress&&(c.addEventListener("progress",Y),p!==null&&c.upload&&c.upload.addEventListener("progress",Q)),c.send(p),r.next({type:$e.Sent}),()=>{c.removeEventListener("error",_),c.removeEventListener("abort",_),c.removeEventListener("load",f),c.removeEventListener("timeout",R),e.reportProgress&&(c.removeEventListener("progress",Y),p!==null&&c.upload&&c.upload.removeEventListener("progress",Q)),c.readyState!==c.DONE&&c.abort()}})))}static \u0275fac=function(i){return new(i||n)(U(tn))};static \u0275prov=F({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function ds(n,t){return t(n)}function ps(n,t,e){return(i,o)=>le(e,()=>t(i,r=>n(r,o)))}var Mr=new X("",{factory:()=>[]}),Pr=new X(""),yr=new X("",{factory:()=>!0});var Ci=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275prov=F({token:n,factory:function(i){let o=null;return i?o=new(i||n):o=U(_i),o},providedIn:"root"})}return n})();var hn=(()=>{class n{backend;injector;chain=null;pendingTasks=y(Mo);contributeToStability=y(yr);constructor(e,i){this.backend=e,this.injector=i}handle(e){if(this.chain===null){let i=Array.from(new Set([...this.injector.get(Mr),...this.injector.get(Pr,[])]));this.chain=i.reduceRight((o,r)=>ps(o,r,this.injector),ds)}if(this.contributeToStability){let i=this.pendingTasks.add();return this.chain(e,o=>this.backend.handle(o)).pipe(Ht(i))}else return this.chain(e,i=>this.backend.handle(i))}static \u0275fac=function(i){return new(i||n)(U(Ci),U(Me))};static \u0275prov=F({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),vi=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275prov=F({token:n,factory:function(i){let o=null;return i?o=new(i||n):o=U(hn),o},providedIn:"root"})}return n})();function fi(n,t){return{body:t,headers:n.headers,context:n.context,observe:n.observe,params:n.params,reportProgress:n.reportProgress,responseType:n.responseType,withCredentials:n.withCredentials,credentials:n.credentials,transferCache:n.transferCache,timeout:n.timeout,keepalive:n.keepalive,priority:n.priority,cache:n.cache,mode:n.mode,redirect:n.redirect,integrity:n.integrity,referrer:n.referrer,referrerPolicy:n.referrerPolicy}}var fn=(()=>{class n{handler;constructor(e){this.handler=e}request(e,i,o={}){let r;if(e instanceof Qe)r=e;else{let u;o.headers instanceof Le?u=o.headers:u=new Le(o.headers);let g;o.params&&(o.params instanceof Re?g=o.params:g=new Re({fromObject:o.params})),r=new Qe(e,i,o.body!==void 0?o.body:null,{headers:u,context:o.context,params:g,reportProgress:o.reportProgress,responseType:o.responseType||"json",withCredentials:o.withCredentials,transferCache:o.transferCache,keepalive:o.keepalive,priority:o.priority,cache:o.cache,mode:o.mode,redirect:o.redirect,credentials:o.credentials,referrer:o.referrer,referrerPolicy:o.referrerPolicy,integrity:o.integrity,timeout:o.timeout})}let c=N(r).pipe(ht(u=>this.handler.handle(u)));if(e instanceof Qe||o.observe==="events")return c;let p=c.pipe(Ae(u=>u instanceof St));switch(o.observe||"body"){case"body":switch(r.responseType){case"arraybuffer":return p.pipe(Z(u=>{if(u.body!==null&&!(u.body instanceof ArrayBuffer))throw new z(2806,!1);return u.body}));case"blob":return p.pipe(Z(u=>{if(u.body!==null&&!(u.body instanceof Blob))throw new z(2807,!1);return u.body}));case"text":return p.pipe(Z(u=>{if(u.body!==null&&typeof u.body!="string")throw new z(2808,!1);return u.body}));default:return p.pipe(Z(u=>u.body))}case"response":return p;default:throw new z(2809,!1)}}delete(e,i={}){return this.request("DELETE",e,i)}get(e,i={}){return this.request("GET",e,i)}head(e,i={}){return this.request("HEAD",e,i)}jsonp(e,i){return this.request("JSONP",e,{params:new Re().append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(e,i={}){return this.request("OPTIONS",e,i)}patch(e,i,o={}){return this.request("PATCH",e,fi(o,i))}post(e,i,o={}){return this.request("POST",e,fi(o,i))}put(e,i,o={}){return this.request("PUT",e,fi(o,i))}static \u0275fac=function(i){return new(i||n)(U(vi))};static \u0275prov=F({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var us=new X("",{factory:()=>!0}),gs="XSRF-TOKEN",ms=new X("",{factory:()=>gs}),hs="X-XSRF-TOKEN",fs=new X("",{factory:()=>hs}),_s=(()=>{class n{cookieName=y(ms);doc=y(ce);lastCookieString="";lastToken=null;parseCount=0;getToken(){let e=this.doc.cookie||"";return e!==this.lastCookieString&&(this.parseCount++,this.lastToken=en(e,this.cookieName),this.lastCookieString=e),this.lastToken}static \u0275fac=function(i){return new(i||n)};static \u0275prov=F({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Or=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275prov=F({token:n,factory:function(i){let o=null;return i?o=new(i||n):o=U(_s),o},providedIn:"root"})}return n})();function Cs(n,t){if(!y(us)||n.method==="GET"||n.method==="HEAD")return t(n);try{let o=y(Ho).href,{origin:r}=new URL(o),{origin:c}=new URL(n.url,r);if(r!==c)return t(n)}catch{return t(n)}let e=y(Or).getToken(),i=y(fs);return e!=null&&!n.headers.has(i)&&(n=n.clone({headers:n.headers.set(i,e)})),t(n)}function xi(...n){let t=[fn,hn,{provide:vi,useExisting:hn},{provide:Ci,useFactory:()=>y(ls,{optional:!0})??y(_i)},{provide:Mr,useValue:Cs,multi:!0}];for(let e of n)t.push(...e.\u0275providers);return Wt(t)}var wr=(()=>{class n{_doc;constructor(e){this._doc=e}getTitle(){return this._doc.title}setTitle(e){this._doc.title=e||""}static \u0275fac=function(i){return new(i||n)(U(ce))};static \u0275prov=F({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var D="primary",zt=Symbol("RouteTitle"),Oi=class{params;constructor(t){this.params=t||{}}has(t){return Object.prototype.hasOwnProperty.call(this.params,t)}get(t){if(this.has(t)){let e=this.params[t];return Array.isArray(e)?e[0]:e}return null}getAll(t){if(this.has(t)){let e=this.params[t];return Array.isArray(e)?e:[e]}return[]}get keys(){return Object.keys(this.params)}};function ot(n){return new Oi(n)}function bi(n,t,e){for(let i=0;i<n.length;i++){let o=n[i],r=t[i];if(o[0]===":")e[o.substring(1)]=r;else if(o!==r.path)return!1}return!0}function bs(n,t,e){let i=e.path.split("/"),o=i.indexOf("**");if(o===-1){if(i.length>n.length||e.pathMatch==="full"&&(t.hasChildren()||i.length<n.length))return null;let u={},g=n.slice(0,i.length);return bi(i,g,u)?{consumed:g,posParams:u}:null}if(o!==i.lastIndexOf("**"))return null;let r=i.slice(0,o),c=i.slice(o+1);if(r.length+c.length>n.length||e.pathMatch==="full"&&t.hasChildren()&&e.path!=="**")return null;let p={};return!bi(r,n.slice(0,r.length),p)||!bi(c,n.slice(n.length-c.length),p)?null:{consumed:n,posParams:p}}function Mn(n){return new Promise((t,e)=>{n.pipe(Ne()).subscribe({next:i=>t(i),error:i=>e(i)})})}function Ms(n,t){if(n.length!==t.length)return!1;for(let e=0;e<n.length;++e)if(!Se(n[e],t[e]))return!1;return!0}function Se(n,t){let e=n?wi(n):void 0,i=t?wi(t):void 0;if(!e||!i||e.length!=i.length)return!1;let o;for(let r=0;r<e.length;r++)if(o=e[r],!Ar(n[o],t[o]))return!1;return!0}function wi(n){return[...Object.keys(n),...Object.getOwnPropertySymbols(n)]}function Ar(n,t){if(Array.isArray(n)&&Array.isArray(t)){if(n.length!==t.length)return!1;let e=[...n].sort(),i=[...t].sort();return e.every((o,r)=>i[r]===o)}else return n===t}function Ps(n){return n.length>0?n[n.length-1]:null}function Je(n){return Xn(n)?n:Do(n)?ge(Promise.resolve(n)):N(n)}function Nr(n){return Xn(n)?Mn(n):Promise.resolve(n)}var ys={exact:Ur,subset:zr},Fr={exact:Os,subset:ws,ignored:()=>!0},Lr={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},Si={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};function Sr(n,t,e){return ys[e.paths](n.root,t.root,e.matrixParams)&&Fr[e.queryParams](n.queryParams,t.queryParams)&&!(e.fragment==="exact"&&n.fragment!==t.fragment)}function Os(n,t){return Se(n,t)}function Ur(n,t,e){if(!qe(n.segments,t.segments)||!vn(n.segments,t.segments,e)||n.numberOfChildren!==t.numberOfChildren)return!1;for(let i in t.children)if(!n.children[i]||!Ur(n.children[i],t.children[i],e))return!1;return!0}function ws(n,t){return Object.keys(t).length<=Object.keys(n).length&&Object.keys(t).every(e=>Ar(n[e],t[e]))}function zr(n,t,e){return jr(n,t,t.segments,e)}function jr(n,t,e,i){if(n.segments.length>e.length){let o=n.segments.slice(0,e.length);return!(!qe(o,e)||t.hasChildren()||!vn(o,e,i))}else if(n.segments.length===e.length){if(!qe(n.segments,e)||!vn(n.segments,e,i))return!1;for(let o in t.children)if(!n.children[o]||!zr(n.children[o],t.children[o],i))return!1;return!0}else{let o=e.slice(0,n.segments.length),r=e.slice(n.segments.length);return!qe(n.segments,o)||!vn(n.segments,o,i)||!n.children[D]?!1:jr(n.children[D],t,r,i)}}function vn(n,t,e){return t.every((i,o)=>Fr[e](n[o].parameters,i.parameters))}var be=class{root;queryParams;fragment;_queryParamMap;constructor(t=new V([],{}),e={},i=null){this.root=t,this.queryParams=e,this.fragment=i}get queryParamMap(){return this._queryParamMap??=ot(this.queryParams),this._queryParamMap}toString(){return Es.serialize(this)}},V=class{segments;children;parent=null;constructor(t,e){this.segments=t,this.children=e,Object.values(e).forEach(i=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return xn(this)}},He=class{path;parameters;_parameterMap;constructor(t,e){this.path=t,this.parameters=e}get parameterMap(){return this._parameterMap??=ot(this.parameters),this._parameterMap}toString(){return Vr(this)}};function Ss(n,t){return qe(n,t)&&n.every((e,i)=>Se(e.parameters,t[i].parameters))}function qe(n,t){return n.length!==t.length?!1:n.every((e,i)=>e.path===t[i].path)}function Ts(n,t){let e=[];return Object.entries(n.children).forEach(([i,o])=>{i===D&&(e=e.concat(t(o,i)))}),Object.entries(n.children).forEach(([i,o])=>{i!==D&&(e=e.concat(t(o,i)))}),e}var In=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275prov=F({token:n,factory:()=>new We,providedIn:"root"})}return n})(),We=class{parse(t){let e=new Ei(t);return new be(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())}serialize(t){let e=`/${Tt(t.root,!0)}`,i=Is(t.queryParams),o=typeof t.fragment=="string"?`#${ks(t.fragment)}`:"";return`${e}${i}${o}`}},Es=new We;function xn(n){return n.segments.map(t=>Vr(t)).join("/")}function Tt(n,t){if(!n.hasChildren())return xn(n);if(t){let e=n.children[D]?Tt(n.children[D],!1):"",i=[];return Object.entries(n.children).forEach(([o,r])=>{o!==D&&i.push(`${o}:${Tt(r,!1)}`)}),i.length>0?`${e}(${i.join("//")})`:e}else{let e=Ts(n,(i,o)=>o===D?[Tt(n.children[D],!1)]:[`${o}:${Tt(i,!1)}`]);return Object.keys(n.children).length===1&&n.children[D]!=null?`${xn(n)}/${e[0]}`:`${xn(n)}/(${e.join("//")})`}}function Br(n){return encodeURIComponent(n).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function _n(n){return Br(n).replace(/%3B/gi,";")}function ks(n){return encodeURI(n)}function Ti(n){return Br(n).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function bn(n){return decodeURIComponent(n)}function Tr(n){return bn(n.replace(/\+/g,"%20"))}function Vr(n){return`${Ti(n.path)}${Rs(n.parameters)}`}function Rs(n){return Object.entries(n).map(([t,e])=>`;${Ti(t)}=${Ti(e)}`).join("")}function Is(n){let t=Object.entries(n).map(([e,i])=>Array.isArray(i)?i.map(o=>`${_n(e)}=${_n(o)}`).join("&"):`${_n(e)}=${_n(i)}`).filter(e=>e);return t.length?`?${t.join("&")}`:""}var Ds=/^[^\/()?;#]+/;function Mi(n){let t=n.match(Ds);return t?t[0]:""}var As=/^[^\/()?;=#]+/;function Ns(n){let t=n.match(As);return t?t[0]:""}var Fs=/^[^=?&#]+/;function Ls(n){let t=n.match(Fs);return t?t[0]:""}var Us=/^[^&#]+/;function zs(n){let t=n.match(Us);return t?t[0]:""}var Ei=class{url;remaining;constructor(t){this.url=t,this.remaining=t}parseRootSegment(){for(;this.consumeOptional("/"););return this.remaining===""||this.peekStartsWith("?")||this.peekStartsWith("#")?new V([],{}):new V([],this.parseChildren())}parseQueryParams(){let t={};if(this.consumeOptional("?"))do this.parseQueryParam(t);while(this.consumeOptional("&"));return t}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(t=0){if(t>50)throw new z(4010,!1);if(this.remaining==="")return{};this.consumeOptional("/");let e=[];for(this.peekStartsWith("(")||e.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),e.push(this.parseSegment());let i={};this.peekStartsWith("/(")&&(this.capture("/"),i=this.parseParens(!0,t));let o={};return this.peekStartsWith("(")&&(o=this.parseParens(!1,t)),(e.length>0||Object.keys(i).length>0)&&(o[D]=new V(e,i)),o}parseSegment(){let t=Mi(this.remaining);if(t===""&&this.peekStartsWith(";"))throw new z(4009,!1);return this.capture(t),new He(bn(t),this.parseMatrixParams())}parseMatrixParams(){let t={};for(;this.consumeOptional(";");)this.parseParam(t);return t}parseParam(t){let e=Ns(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){let o=Mi(this.remaining);o&&(i=o,this.capture(i))}t[bn(e)]=bn(i)}parseQueryParam(t){let e=Ls(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){let c=zs(this.remaining);c&&(i=c,this.capture(i))}let o=Tr(e),r=Tr(i);if(t.hasOwnProperty(o)){let c=t[o];Array.isArray(c)||(c=[c],t[o]=c),c.push(r)}else t[o]=r}parseParens(t,e){let i={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){let o=Mi(this.remaining),r=this.remaining[o.length];if(r!=="/"&&r!==")"&&r!==";")throw new z(4010,!1);let c;o.indexOf(":")>-1?(c=o.slice(0,o.indexOf(":")),this.capture(c),this.capture(":")):t&&(c=D);let p=this.parseChildren(e+1);i[c??D]=Object.keys(p).length===1&&p[D]?p[D]:new V([],p),this.consumeOptional("//")}return i}peekStartsWith(t){return this.remaining.startsWith(t)}consumeOptional(t){return this.peekStartsWith(t)?(this.remaining=this.remaining.substring(t.length),!0):!1}capture(t){if(!this.consumeOptional(t))throw new z(4011,!1)}};function $r(n){return n.segments.length>0?new V([],{[D]:n}):n}function Hr(n){let t={};for(let[i,o]of Object.entries(n.children)){let r=Hr(o);if(i===D&&r.segments.length===0&&r.hasChildren())for(let[c,p]of Object.entries(r.children))t[c]=p;else(r.segments.length>0||r.hasChildren())&&(t[i]=r)}let e=new V(n.segments,t);return js(e)}function js(n){if(n.numberOfChildren===1&&n.children[D]){let t=n.children[D];return new V(n.segments.concat(t.segments),t.children)}return n}function rt(n){return n instanceof be}function Bs(n,t,e=null,i=null,o=new We){let r=qr(n);return Wr(r,t,e,i,o)}function qr(n){let t;function e(r){let c={};for(let u of r.children){let g=e(u);c[u.outlet]=g}let p=new V(r.url,c);return r===n&&(t=p),p}let i=e(n.root),o=$r(i);return t??o}function Wr(n,t,e,i,o){let r=n;for(;r.parent;)r=r.parent;if(t.length===0)return Pi(r,r,r,e,i,o);let c=Vs(t);if(c.toRoot())return Pi(r,r,new V([],{}),e,i,o);let p=$s(c,r,n),u=p.processChildren?kt(p.segmentGroup,p.index,c.commands):Jr(p.segmentGroup,p.index,c.commands);return Pi(r,p.segmentGroup,u,e,i,o)}function Pn(n){return typeof n=="object"&&n!=null&&!n.outlets&&!n.segmentPath}function Dt(n){return typeof n=="object"&&n!=null&&n.outlets}function Er(n,t,e){n||="\u0275";let i=new be;return i.queryParams={[n]:t},e.parse(e.serialize(i)).queryParams[n]}function Pi(n,t,e,i,o,r){let c={};for(let[g,f]of Object.entries(i??{}))c[g]=Array.isArray(f)?f.map(_=>Er(g,_,r)):Er(g,f,r);let p;n===t?p=e:p=Gr(n,t,e);let u=$r(Hr(p));return new be(u,c,o)}function Gr(n,t,e){let i={};return Object.entries(n.children).forEach(([o,r])=>{r===t?i[o]=e:i[o]=Gr(r,t,e)}),new V(n.segments,i)}var yn=class{isAbsolute;numberOfDoubleDots;commands;constructor(t,e,i){if(this.isAbsolute=t,this.numberOfDoubleDots=e,this.commands=i,t&&i.length>0&&Pn(i[0]))throw new z(4003,!1);let o=i.find(Dt);if(o&&o!==Ps(i))throw new z(4004,!1)}toRoot(){return this.isAbsolute&&this.commands.length===1&&this.commands[0]=="/"}};function Vs(n){if(typeof n[0]=="string"&&n.length===1&&n[0]==="/")return new yn(!0,0,n);let t=0,e=!1,i=n.reduce((o,r,c)=>{if(typeof r=="object"&&r!=null){if(r.outlets){let p={};return Object.entries(r.outlets).forEach(([u,g])=>{p[u]=typeof g=="string"?g.split("/"):g}),[...o,{outlets:p}]}if(r.segmentPath)return[...o,r.segmentPath]}return typeof r!="string"?[...o,r]:c===0?(r.split("/").forEach((p,u)=>{u==0&&p==="."||(u==0&&p===""?e=!0:p===".."?t++:p!=""&&o.push(p))}),o):[...o,r]},[]);return new yn(e,t,i)}var nt=class{segmentGroup;processChildren;index;constructor(t,e,i){this.segmentGroup=t,this.processChildren=e,this.index=i}};function $s(n,t,e){if(n.isAbsolute)return new nt(t,!0,0);if(!e)return new nt(t,!1,NaN);if(e.parent===null)return new nt(e,!0,0);let i=Pn(n.commands[0])?0:1,o=e.segments.length-1+i;return Hs(e,o,n.numberOfDoubleDots)}function Hs(n,t,e){let i=n,o=t,r=e;for(;r>o;){if(r-=o,i=i.parent,!i)throw new z(4005,!1);o=i.segments.length}return new nt(i,!1,o-r)}function qs(n){return Dt(n[0])?n[0].outlets:{[D]:n}}function Jr(n,t,e){if(n??=new V([],{}),n.segments.length===0&&n.hasChildren())return kt(n,t,e);let i=Ws(n,t,e),o=e.slice(i.commandIndex);if(i.match&&i.pathIndex<n.segments.length){let r=new V(n.segments.slice(0,i.pathIndex),{});return r.children[D]=new V(n.segments.slice(i.pathIndex),n.children),kt(r,0,o)}else return i.match&&o.length===0?new V(n.segments,{}):i.match&&!n.hasChildren()?ki(n,t,e):i.match?kt(n,0,o):ki(n,t,e)}function kt(n,t,e){if(e.length===0)return new V(n.segments,{});{let i=qs(e),o={};if(Object.keys(i).some(r=>r!==D)&&n.children[D]&&n.numberOfChildren===1&&n.children[D].segments.length===0){let r=kt(n.children[D],t,e);return new V(n.segments,r.children)}return Object.entries(i).forEach(([r,c])=>{typeof c=="string"&&(c=[c]),c!==null&&(o[r]=Jr(n.children[r],t,c))}),Object.entries(n.children).forEach(([r,c])=>{i[r]===void 0&&(o[r]=c)}),new V(n.segments,o)}}function Ws(n,t,e){let i=0,o=t,r={match:!1,pathIndex:0,commandIndex:0};for(;o<n.segments.length;){if(i>=e.length)return r;let c=n.segments[o],p=e[i];if(Dt(p))break;let u=`${p}`,g=i<e.length-1?e[i+1]:null;if(o>0&&u===void 0)break;if(u&&g&&typeof g=="object"&&g.outlets===void 0){if(!Rr(u,g,c))return r;i+=2}else{if(!Rr(u,{},c))return r;i++}o++}return{match:!0,pathIndex:o,commandIndex:i}}function ki(n,t,e){let i=n.segments.slice(0,t),o=0;for(;o<e.length;){let r=e[o];if(Dt(r)){let u=Gs(r.outlets);return new V(i,u)}if(o===0&&Pn(e[0])){let u=n.segments[t];i.push(new He(u.path,kr(e[0]))),o++;continue}let c=Dt(r)?r.outlets[D]:`${r}`,p=o<e.length-1?e[o+1]:null;c&&p&&Pn(p)?(i.push(new He(c,kr(p))),o+=2):(i.push(new He(c,{})),o++)}return new V(i,{})}function Gs(n){let t={};return Object.entries(n).forEach(([e,i])=>{typeof i=="string"&&(i=[i]),i!==null&&(t[e]=ki(new V([],{}),0,i))}),t}function kr(n){let t={};return Object.entries(n).forEach(([e,i])=>t[e]=`${i}`),t}function Rr(n,t,e){return n==e.path&&Se(t,e.parameters)}var Rt="imperative",oe=(function(n){return n[n.NavigationStart=0]="NavigationStart",n[n.NavigationEnd=1]="NavigationEnd",n[n.NavigationCancel=2]="NavigationCancel",n[n.NavigationError=3]="NavigationError",n[n.RoutesRecognized=4]="RoutesRecognized",n[n.ResolveStart=5]="ResolveStart",n[n.ResolveEnd=6]="ResolveEnd",n[n.GuardsCheckStart=7]="GuardsCheckStart",n[n.GuardsCheckEnd=8]="GuardsCheckEnd",n[n.RouteConfigLoadStart=9]="RouteConfigLoadStart",n[n.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",n[n.ChildActivationStart=11]="ChildActivationStart",n[n.ChildActivationEnd=12]="ChildActivationEnd",n[n.ActivationStart=13]="ActivationStart",n[n.ActivationEnd=14]="ActivationEnd",n[n.Scroll=15]="Scroll",n[n.NavigationSkipped=16]="NavigationSkipped",n})(oe||{}),he=class{id;url;constructor(t,e){this.id=t,this.url=e}},at=class extends he{type=oe.NavigationStart;navigationTrigger;restoredState;constructor(t,e,i="imperative",o=null){super(t,e),this.navigationTrigger=i,this.restoredState=o}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}},Ue=class extends he{urlAfterRedirects;type=oe.NavigationEnd;constructor(t,e,i){super(t,e),this.urlAfterRedirects=i}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}},se=(function(n){return n[n.Redirect=0]="Redirect",n[n.SupersededByNewNavigation=1]="SupersededByNewNavigation",n[n.NoDataFromResolver=2]="NoDataFromResolver",n[n.GuardRejected=3]="GuardRejected",n[n.Aborted=4]="Aborted",n})(se||{}),On=(function(n){return n[n.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",n[n.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",n})(On||{}),ve=class extends he{reason;code;type=oe.NavigationCancel;constructor(t,e,i,o){super(t,e),this.reason=i,this.code=o}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}};function Kr(n){return n instanceof ve&&(n.code===se.Redirect||n.code===se.SupersededByNewNavigation)}var ze=class extends he{reason;code;type=oe.NavigationSkipped;constructor(t,e,i,o){super(t,e),this.reason=i,this.code=o}},st=class extends he{error;target;type=oe.NavigationError;constructor(t,e,i,o){super(t,e),this.error=i,this.target=o}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}},wn=class extends he{urlAfterRedirects;state;type=oe.RoutesRecognized;constructor(t,e,i,o){super(t,e),this.urlAfterRedirects=i,this.state=o}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},Ri=class extends he{urlAfterRedirects;state;type=oe.GuardsCheckStart;constructor(t,e,i,o){super(t,e),this.urlAfterRedirects=i,this.state=o}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},Ii=class extends he{urlAfterRedirects;state;shouldActivate;type=oe.GuardsCheckEnd;constructor(t,e,i,o,r){super(t,e),this.urlAfterRedirects=i,this.state=o,this.shouldActivate=r}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}},Di=class extends he{urlAfterRedirects;state;type=oe.ResolveStart;constructor(t,e,i,o){super(t,e),this.urlAfterRedirects=i,this.state=o}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},Ai=class extends he{urlAfterRedirects;state;type=oe.ResolveEnd;constructor(t,e,i,o){super(t,e),this.urlAfterRedirects=i,this.state=o}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},Ni=class{route;type=oe.RouteConfigLoadStart;constructor(t){this.route=t}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}},Fi=class{route;type=oe.RouteConfigLoadEnd;constructor(t){this.route=t}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}},Li=class{snapshot;type=oe.ChildActivationStart;constructor(t){this.snapshot=t}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},Ui=class{snapshot;type=oe.ChildActivationEnd;constructor(t){this.snapshot=t}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},zi=class{snapshot;type=oe.ActivationStart;constructor(t){this.snapshot=t}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},ji=class{snapshot;type=oe.ActivationEnd;constructor(t){this.snapshot=t}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}};var lt=class{},At=class{},ct=class{url;navigationBehaviorOptions;constructor(t,e){this.url=t,this.navigationBehaviorOptions=e}};function Js(n){return!(n instanceof lt)&&!(n instanceof ct)&&!(n instanceof At)}var Bi=class{rootInjector;outlet=null;route=null;children;attachRef=null;get injector(){return this.route?.snapshot._environmentInjector??this.rootInjector}constructor(t){this.rootInjector=t,this.children=new jt(this.rootInjector)}},jt=(()=>{class n{rootInjector;contexts=new Map;constructor(e){this.rootInjector=e}onChildOutletCreated(e,i){let o=this.getOrCreateContext(e);o.outlet=i,this.contexts.set(e,o)}onChildOutletDestroyed(e){let i=this.getContext(e);i&&(i.outlet=null,i.attachRef=null)}onOutletDeactivated(){let e=this.contexts;return this.contexts=new Map,e}onOutletReAttached(e){this.contexts=e}getOrCreateContext(e){let i=this.getContext(e);return i||(i=new Bi(this.rootInjector),this.contexts.set(e,i)),i}getContext(e){return this.contexts.get(e)||null}static \u0275fac=function(i){return new(i||n)(U(Me))};static \u0275prov=F({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Sn=class{_root;constructor(t){this._root=t}get root(){return this._root.value}parent(t){let e=this.pathFromRoot(t);return e.length>1?e[e.length-2]:null}children(t){let e=Vi(t,this._root);return e?e.children.map(i=>i.value):[]}firstChild(t){let e=Vi(t,this._root);return e&&e.children.length>0?e.children[0].value:null}siblings(t){let e=$i(t,this._root);return e.length<2?[]:e[e.length-2].children.map(o=>o.value).filter(o=>o!==t)}pathFromRoot(t){return $i(t,this._root).map(e=>e.value)}};function Vi(n,t){if(n===t.value)return t;for(let e of t.children){let i=Vi(n,e);if(i)return i}return null}function $i(n,t){if(n===t.value)return[t];for(let e of t.children){let i=$i(n,e);if(i.length)return i.unshift(t),i}return[]}var de=class{value;children;constructor(t,e){this.value=t,this.children=e}toString(){return`TreeNode(${this.value})`}};function tt(n){let t={};return n&&n.children.forEach(e=>t[e.value.outlet]=e),t}var Tn=class extends Sn{snapshot;constructor(t,e){super(t),this.snapshot=e,Zi(this,t)}toString(){return this.snapshot.toString()}};function Xr(n,t){let e=Ks(n,t),i=new pe([new He("",{})]),o=new pe({}),r=new pe({}),c=new pe({}),p=new pe(""),u=new Ge(i,o,c,p,r,D,n,e.root);return u.snapshot=e.root,new Tn(new de(u,[]),e)}function Ks(n,t){let e={},i={},o={},c=new Nt([],e,o,"",i,D,n,null,{},t);return new En("",new de(c,[]))}var Ge=class{urlSubject;paramsSubject;queryParamsSubject;fragmentSubject;dataSubject;outlet;component;snapshot;_futureSnapshot;_routerState;_paramMap;_queryParamMap;title;url;params;queryParams;fragment;data;constructor(t,e,i,o,r,c,p,u){this.urlSubject=t,this.paramsSubject=e,this.queryParamsSubject=i,this.fragmentSubject=o,this.dataSubject=r,this.outlet=c,this.component=p,this._futureSnapshot=u,this.title=this.dataSubject?.pipe(Z(g=>g[zt]))??N(void 0),this.url=t,this.params=e,this.queryParams=i,this.fragment=o,this.data=r}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe(Z(t=>ot(t))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(Z(t=>ot(t))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}};function Qi(n,t,e="emptyOnly"){let i,{routeConfig:o}=n;return t!==null&&(e==="always"||o?.path===""||!t.component&&!t.routeConfig?.loadComponent)?i={params:O(O({},t.params),n.params),data:O(O({},t.data),n.data),resolve:O(O(O(O({},n.data),t.data),o?.data),n._resolvedData)}:i={params:O({},n.params),data:O({},n.data),resolve:O(O({},n.data),n._resolvedData??{})},o&&Qr(o)&&(i.resolve[zt]=o.title),i}var Nt=class{url;params;queryParams;fragment;data;outlet;component;routeConfig;_resolve;_resolvedData;_routerState;_paramMap;_queryParamMap;_environmentInjector;get title(){return this.data?.[zt]}constructor(t,e,i,o,r,c,p,u,g,f){this.url=t,this.params=e,this.queryParams=i,this.fragment=o,this.data=r,this.outlet=c,this.component=p,this.routeConfig=u,this._resolve=g,this._environmentInjector=f}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=ot(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=ot(this.queryParams),this._queryParamMap}toString(){let t=this.url.map(i=>i.toString()).join("/"),e=this.routeConfig?this.routeConfig.path:"";return`Route(url:'${t}', path:'${e}')`}},En=class extends Sn{url;constructor(t,e){super(e),this.url=t,Zi(this,e)}toString(){return Yr(this._root)}};function Zi(n,t){t.value._routerState=n,t.children.forEach(e=>Zi(n,e))}function Yr(n){let t=n.children.length>0?` { ${n.children.map(Yr).join(", ")} } `:"";return`${n.value}${t}`}function yi(n){if(n.snapshot){let t=n.snapshot,e=n._futureSnapshot;n.snapshot=e,Se(t.queryParams,e.queryParams)||n.queryParamsSubject.next(e.queryParams),t.fragment!==e.fragment&&n.fragmentSubject.next(e.fragment),Se(t.params,e.params)||n.paramsSubject.next(e.params),Ms(t.url,e.url)||n.urlSubject.next(e.url),Se(t.data,e.data)||n.dataSubject.next(e.data)}else n.snapshot=n._futureSnapshot,n.dataSubject.next(n._futureSnapshot.data)}function Hi(n,t){let e=Se(n.params,t.params)&&Ss(n.url,t.url),i=!n.parent!=!t.parent;return e&&!i&&(!n.parent||Hi(n.parent,t.parent))}function Qr(n){return typeof n.title=="string"||n.title===null}var Xs=new X(""),Zr=(()=>{class n{activated=null;get activatedComponentRef(){return this.activated}_activatedRoute=null;name=D;activateEvents=new $;deactivateEvents=new $;attachEvents=new $;detachEvents=new $;routerOutletData=zo();parentContexts=y(jt);location=y(Eo);changeDetector=y(jo);inputBinder=y(Dn,{optional:!0});supportsBindingToComponentInputs=!0;ngOnChanges(e){if(e.name){let{firstChange:i,previousValue:o}=e.name;if(i)return;this.isTrackedInParentContexts(o)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(o)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(e){return this.parentContexts.getContext(e)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;let e=this.parentContexts.getContext(this.name);e?.route&&(e.attachRef?this.attach(e.attachRef,e.route):this.activateWith(e.route,e.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new z(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new z(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new z(4012,!1);this.location.detach();let e=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(e.instance),e}attach(e,i){this.activated=e,this._activatedRoute=i,this.location.insert(e.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(e.instance)}deactivate(){if(this.activated){let e=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(e)}}activateWith(e,i){if(this.isActivated)throw new z(4013,!1);this._activatedRoute=e;let o=this.location,c=e.snapshot.component,p=this.parentContexts.getOrCreateContext(this.name).children,u=new qi(e,p,o.injector,this.routerOutletData);this.activated=o.createComponent(c,{index:o.length,injector:u,environmentInjector:i}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static \u0275fac=function(i){return new(i||n)};static \u0275dir=Ro({type:n,selectors:[["router-outlet"]],inputs:{name:"name",routerOutletData:[1,"routerOutletData"]},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],features:[Jt]})}return n})(),qi=class{route;childContexts;parent;outletData;constructor(t,e,i,o){this.route=t,this.childContexts=e,this.parent=i,this.outletData=o}get(t,e){return t===Ge?this.route:t===jt?this.childContexts:t===Xs?this.outletData:this.parent.get(t,e)}},Dn=new X("");var ea=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=ee({type:n,selectors:[["ng-component"]],exportAs:["emptyRouterOutlet"],decls:1,vars:0,template:function(i,o){i&1&&I(0,"router-outlet")},dependencies:[Zr],encapsulation:2})}return n})();function eo(n){let t=n.children&&n.children.map(eo),e=t?ie(O({},n),{children:t}):O({},n);return!e.component&&!e.loadComponent&&(t||e.loadChildren)&&e.outlet&&e.outlet!==D&&(e.component=ea),e}function Ys(n,t,e){let i=Ft(n,t._root,e?e._root:void 0);return new Tn(i,t)}function Ft(n,t,e){if(e&&n.shouldReuseRoute(t.value,e.value.snapshot)){let i=e.value;i._futureSnapshot=t.value;let o=Qs(n,t,e);return new de(i,o)}else{if(n.shouldAttach(t.value)){let r=n.retrieve(t.value);if(r!==null){let c=r.route;return c.value._futureSnapshot=t.value,c.children=t.children.map(p=>Ft(n,p)),c}}let i=Zs(t.value),o=t.children.map(r=>Ft(n,r));return new de(i,o)}}function Qs(n,t,e){return t.children.map(i=>{for(let o of e.children)if(n.shouldReuseRoute(i.value,o.value.snapshot))return Ft(n,i,o);return Ft(n,i)})}function Zs(n){return new Ge(new pe(n.url),new pe(n.params),new pe(n.queryParams),new pe(n.fragment),new pe(n.data),n.outlet,n.component,n)}var Lt=class{redirectTo;navigationBehaviorOptions;constructor(t,e){this.redirectTo=t,this.navigationBehaviorOptions=e}},ta="ngNavigationCancelingError";function kn(n,t){let{redirectTo:e,navigationBehaviorOptions:i}=rt(t)?{redirectTo:t,navigationBehaviorOptions:void 0}:t,o=na(!1,se.Redirect);return o.url=e,o.navigationBehaviorOptions=i,o}function na(n,t){let e=new Error(`NavigationCancelingError: ${n||""}`);return e[ta]=!0,e.cancellationCode=t,e}function el(n){return ia(n)&&rt(n.url)}function ia(n){return!!n&&n[ta]}var Wi=class{routeReuseStrategy;futureState;currState;forwardEvent;inputBindingEnabled;constructor(t,e,i,o,r){this.routeReuseStrategy=t,this.futureState=e,this.currState=i,this.forwardEvent=o,this.inputBindingEnabled=r}activate(t){let e=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(e,i,t),yi(this.futureState.root),this.activateChildRoutes(e,i,t)}deactivateChildRoutes(t,e,i){let o=tt(e);t.children.forEach(r=>{let c=r.value.outlet;this.deactivateRoutes(r,o[c],i),delete o[c]}),Object.values(o).forEach(r=>{this.deactivateRouteAndItsChildren(r,i)})}deactivateRoutes(t,e,i){let o=t.value,r=e?e.value:null;if(o===r)if(o.component){let c=i.getContext(o.outlet);c&&this.deactivateChildRoutes(t,e,c.children)}else this.deactivateChildRoutes(t,e,i);else r&&this.deactivateRouteAndItsChildren(e,i)}deactivateRouteAndItsChildren(t,e){t.value.component&&this.routeReuseStrategy.shouldDetach(t.value.snapshot)?this.detachAndStoreRouteSubtree(t,e):this.deactivateRouteAndOutlet(t,e)}detachAndStoreRouteSubtree(t,e){let i=e.getContext(t.value.outlet),o=i&&t.value.component?i.children:e,r=tt(t);for(let c of Object.values(r))this.deactivateRouteAndItsChildren(c,o);if(i&&i.outlet){let c=i.outlet.detach(),p=i.children.onOutletDeactivated();this.routeReuseStrategy.store(t.value.snapshot,{componentRef:c,route:t,contexts:p})}}deactivateRouteAndOutlet(t,e){let i=e.getContext(t.value.outlet),o=i&&t.value.component?i.children:e,r=tt(t);for(let c of Object.values(r))this.deactivateRouteAndItsChildren(c,o);i&&(i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated()),i.attachRef=null,i.route=null)}activateChildRoutes(t,e,i){let o=tt(e);t.children.forEach(r=>{this.activateRoutes(r,o[r.value.outlet],i),this.forwardEvent(new ji(r.value.snapshot))}),t.children.length&&this.forwardEvent(new Ui(t.value.snapshot))}activateRoutes(t,e,i){let o=t.value,r=e?e.value:null;if(yi(o),o===r)if(o.component){let c=i.getOrCreateContext(o.outlet);this.activateChildRoutes(t,e,c.children)}else this.activateChildRoutes(t,e,i);else if(o.component){let c=i.getOrCreateContext(o.outlet);if(this.routeReuseStrategy.shouldAttach(o.snapshot)){let p=this.routeReuseStrategy.retrieve(o.snapshot);this.routeReuseStrategy.store(o.snapshot,null),c.children.onOutletReAttached(p.contexts),c.attachRef=p.componentRef,c.route=p.route.value,c.outlet&&c.outlet.attach(p.componentRef,p.route.value),yi(p.route.value),this.activateChildRoutes(t,null,c.children)}else c.attachRef=null,c.route=o,c.outlet&&c.outlet.activateWith(o,c.injector),this.activateChildRoutes(t,null,c.children)}else this.activateChildRoutes(t,null,i)}},Rn=class{path;route;constructor(t){this.path=t,this.route=this.path[this.path.length-1]}},it=class{component;route;constructor(t,e){this.component=t,this.route=e}};function tl(n,t,e){let i=n._root,o=t?t._root:null;return Et(i,o,e,[i.value])}function nl(n){let t=n.routeConfig?n.routeConfig.canActivateChild:null;return!t||t.length===0?null:{node:n,guards:t}}function pt(n,t){let e=Symbol(),i=t.get(n,e);return i===e?typeof n=="function"&&!Co(n)?n:t.get(n):i}function Et(n,t,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){let r=tt(t);return n.children.forEach(c=>{il(c,r[c.value.outlet],e,i.concat([c.value]),o),delete r[c.value.outlet]}),Object.entries(r).forEach(([c,p])=>It(p,e.getContext(c),o)),o}function il(n,t,e,i,o={canDeactivateChecks:[],canActivateChecks:[]}){let r=n.value,c=t?t.value:null,p=e?e.getContext(n.value.outlet):null;if(c&&r.routeConfig===c.routeConfig){let u=ol(c,r,r.routeConfig.runGuardsAndResolvers);u?o.canActivateChecks.push(new Rn(i)):(r.data=c.data,r._resolvedData=c._resolvedData),r.component?Et(n,t,p?p.children:null,i,o):Et(n,t,e,i,o),u&&p&&p.outlet&&p.outlet.isActivated&&o.canDeactivateChecks.push(new it(p.outlet.component,c))}else c&&It(t,p,o),o.canActivateChecks.push(new Rn(i)),r.component?Et(n,null,p?p.children:null,i,o):Et(n,null,e,i,o);return o}function ol(n,t,e){if(typeof e=="function")return le(t._environmentInjector,()=>e(n,t));switch(e){case"pathParamsChange":return!qe(n.url,t.url);case"pathParamsOrQueryParamsChange":return!qe(n.url,t.url)||!Se(n.queryParams,t.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!Hi(n,t)||!Se(n.queryParams,t.queryParams);default:return!Hi(n,t)}}function It(n,t,e){let i=tt(n),o=n.value;Object.entries(i).forEach(([r,c])=>{o.component?t?It(c,t.children.getContext(r),e):It(c,null,e):It(c,t,e)}),o.component?t&&t.outlet&&t.outlet.isActivated?e.canDeactivateChecks.push(new it(t.outlet.component,o)):e.canDeactivateChecks.push(new it(null,o)):e.canDeactivateChecks.push(new it(null,o))}function Bt(n){return typeof n=="function"}function rl(n){return typeof n=="boolean"}function al(n){return n&&Bt(n.canLoad)}function sl(n){return n&&Bt(n.canActivate)}function ll(n){return n&&Bt(n.canActivateChild)}function cl(n){return n&&Bt(n.canDeactivate)}function dl(n){return n&&Bt(n.canMatch)}function oa(n){return n instanceof mo||n?.name==="EmptyError"}var Cn=Symbol("INITIAL_VALUE");function dt(){return me(n=>ho(n.map(t=>t.pipe(Xe(1),_o(Cn)))).pipe(Z(t=>{for(let e of t)if(e!==!0){if(e===Cn)return Cn;if(e===!1||pl(e))return e}return!0}),Ae(t=>t!==Cn),Xe(1)))}function pl(n){return rt(n)||n instanceof Lt}function ra(n){return n.aborted?N(void 0).pipe(Xe(1)):new Vt(t=>{let e=()=>{t.next(),t.complete()};return n.addEventListener("abort",e),()=>n.removeEventListener("abort",e)})}function aa(n){return qt(ra(n))}function ul(n){return De(t=>{let{targetSnapshot:e,currentSnapshot:i,guards:{canActivateChecks:o,canDeactivateChecks:r}}=t;return r.length===0&&o.length===0?N(ie(O({},t),{guardsResult:!0})):gl(r,e,i).pipe(De(c=>c&&rl(c)?ml(e,o,n):N(c)),Z(c=>ie(O({},t),{guardsResult:c})))})}function gl(n,t,e){return ge(n).pipe(De(i=>vl(i.component,i.route,e,t)),Ne(i=>i!==!0,!0))}function ml(n,t,e){return ge(t).pipe(ht(i=>fo(fl(i.route.parent,e),hl(i.route,e),Cl(n,i.path),_l(n,i.route))),Ne(i=>i!==!0,!0))}function hl(n,t){return n!==null&&t&&t(new zi(n)),N(!0)}function fl(n,t){return n!==null&&t&&t(new Li(n)),N(!0)}function _l(n,t){let e=t.routeConfig?t.routeConfig.canActivate:null;if(!e||e.length===0)return N(!0);let i=e.map(o=>$t(()=>{let r=t._environmentInjector,c=pt(o,r),p=sl(c)?c.canActivate(t,n):le(r,()=>c(t,n));return Je(p).pipe(Ne())}));return N(i).pipe(dt())}function Cl(n,t){let e=t[t.length-1],o=t.slice(0,t.length-1).reverse().map(r=>nl(r)).filter(r=>r!==null).map(r=>$t(()=>{let c=r.guards.map(p=>{let u=r.node._environmentInjector,g=pt(p,u),f=ll(g)?g.canActivateChild(e,n):le(u,()=>g(e,n));return Je(f).pipe(Ne())});return N(c).pipe(dt())}));return N(o).pipe(dt())}function vl(n,t,e,i){let o=t&&t.routeConfig?t.routeConfig.canDeactivate:null;if(!o||o.length===0)return N(!0);let r=o.map(c=>{let p=t._environmentInjector,u=pt(c,p),g=cl(u)?u.canDeactivate(n,t,e,i):le(p,()=>u(n,t,e,i));return Je(g).pipe(Ne())});return N(r).pipe(dt())}function xl(n,t,e,i,o){let r=t.canLoad;if(r===void 0||r.length===0)return N(!0);let c=r.map(p=>{let u=pt(p,n),g=al(u)?u.canLoad(t,e):le(n,()=>u(t,e)),f=Je(g);return o?f.pipe(aa(o)):f});return N(c).pipe(dt(),sa(i))}function sa(n){return uo(_e(t=>{if(typeof t!="boolean")throw kn(n,t)}),Z(t=>t===!0))}function bl(n,t,e,i,o,r){let c=t.canMatch;if(!c||c.length===0)return N(!0);let p=c.map(u=>{let g=pt(u,n),f=dl(g)?g.canMatch(t,e,o):le(n,()=>g(t,e,o));return Je(f).pipe(aa(r))});return N(p).pipe(dt(),sa(i))}var Ie=class n extends Error{segmentGroup;constructor(t){super(),this.segmentGroup=t||null,Object.setPrototypeOf(this,n.prototype)}},Ut=class n extends Error{urlTree;constructor(t){super(),this.urlTree=t,Object.setPrototypeOf(this,n.prototype)}};function Ml(n){throw new z(4e3,!1)}function Pl(n){throw na(!1,se.GuardRejected)}var Gi=class{urlSerializer;urlTree;constructor(t,e){this.urlSerializer=t,this.urlTree=e}async lineralizeSegments(t,e){let i=[],o=e.root;for(;;){if(i=i.concat(o.segments),o.numberOfChildren===0)return i;if(o.numberOfChildren>1||!o.children[D])throw Ml(`${t.redirectTo}`);o=o.children[D]}}async applyRedirectCommands(t,e,i,o,r){let c=await yl(e,o,r);if(c instanceof be)throw new Ut(c);let p=this.applyRedirectCreateUrlTree(c,this.urlSerializer.parse(c),t,i);if(c[0]==="/")throw new Ut(p);return p}applyRedirectCreateUrlTree(t,e,i,o){let r=this.createSegmentGroup(t,e.root,i,o);return new be(r,this.createQueryParams(e.queryParams,this.urlTree.queryParams),e.fragment)}createQueryParams(t,e){let i={};return Object.entries(t).forEach(([o,r])=>{if(typeof r=="string"&&r[0]===":"){let p=r.substring(1);i[o]=e[p]}else i[o]=r}),i}createSegmentGroup(t,e,i,o){let r=this.createSegments(t,e.segments,i,o),c={};return Object.entries(e.children).forEach(([p,u])=>{c[p]=this.createSegmentGroup(t,u,i,o)}),new V(r,c)}createSegments(t,e,i,o){return e.map(r=>r.path[0]===":"?this.findPosParam(t,r,o):this.findOrReturn(r,i))}findPosParam(t,e,i){let o=i[e.path.substring(1)];if(!o)throw new z(4001,!1);return o}findOrReturn(t,e){let i=0;for(let o of e){if(o.path===t.path)return e.splice(i),o;i++}return t}};function yl(n,t,e){if(typeof n=="string")return Promise.resolve(n);let i=n;return Mn(Je(le(e,()=>i(t))))}function Ol(n,t){return n.providers&&!n._injector&&(n._injector=ai(n.providers,t,`Route: ${n.path}`)),n._injector??t}function xe(n){return n.outlet||D}function wl(n,t){let e=n.filter(i=>xe(i)===t);return e.push(...n.filter(i=>xe(i)!==t)),e}var Ji={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function la(n){return{routeConfig:n.routeConfig,url:n.url,params:n.params,queryParams:n.queryParams,fragment:n.fragment,data:n.data,outlet:n.outlet,title:n.title,paramMap:n.paramMap,queryParamMap:n.queryParamMap}}function Sl(n,t,e,i,o,r,c){let p=ca(n,t,e);if(!p.matched)return N(p);let u=la(r(p));return i=Ol(t,i),bl(i,t,e,o,u,c).pipe(Z(g=>g===!0?p:O({},Ji)))}function ca(n,t,e){if(t.path==="")return t.pathMatch==="full"&&(n.hasChildren()||e.length>0)?O({},Ji):{matched:!0,consumedSegments:[],remainingSegments:e,parameters:{},positionalParamSegments:{}};let o=(t.matcher||bs)(e,n,t);if(!o)return O({},Ji);let r={};Object.entries(o.posParams??{}).forEach(([p,u])=>{r[p]=u.path});let c=o.consumed.length>0?O(O({},r),o.consumed[o.consumed.length-1].parameters):r;return{matched:!0,consumedSegments:o.consumed,remainingSegments:e.slice(o.consumed.length),parameters:c,positionalParamSegments:o.posParams??{}}}function Ir(n,t,e,i,o){return e.length>0&&kl(n,e,i,o)?{segmentGroup:new V(t,El(i,new V(e,n.children))),slicedSegments:[]}:e.length===0&&Rl(n,e,i)?{segmentGroup:new V(n.segments,Tl(n,e,i,n.children)),slicedSegments:e}:{segmentGroup:new V(n.segments,n.children),slicedSegments:e}}function Tl(n,t,e,i){let o={};for(let r of e)if(An(n,t,r)&&!i[xe(r)]){let c=new V([],{});o[xe(r)]=c}return O(O({},i),o)}function El(n,t){let e={};e[D]=t;for(let i of n)if(i.path===""&&xe(i)!==D){let o=new V([],{});e[xe(i)]=o}return e}function kl(n,t,e,i){return e.some(o=>!An(n,t,o)||!(xe(o)!==D)?!1:!(i!==void 0&&xe(o)===i))}function Rl(n,t,e){return e.some(i=>An(n,t,i))}function An(n,t,e){return(n.hasChildren()||t.length>0)&&e.pathMatch==="full"?!1:e.path===""}function Il(n,t,e){return t.length===0&&!n.children[e]}var Ki=class{};async function Dl(n,t,e,i,o,r,c="emptyOnly",p){return new Xi(n,t,e,i,o,c,r,p).recognize()}var Al=31,Xi=class{injector;configLoader;rootComponentType;config;urlTree;paramsInheritanceStrategy;urlSerializer;abortSignal;applyRedirects;absoluteRedirectCount=0;allowRedirects=!0;constructor(t,e,i,o,r,c,p,u){this.injector=t,this.configLoader=e,this.rootComponentType=i,this.config=o,this.urlTree=r,this.paramsInheritanceStrategy=c,this.urlSerializer=p,this.abortSignal=u,this.applyRedirects=new Gi(this.urlSerializer,this.urlTree)}noMatchError(t){return new z(4002,`'${t.segmentGroup}'`)}async recognize(){let t=Ir(this.urlTree.root,[],[],this.config).segmentGroup,{children:e,rootSnapshot:i}=await this.match(t),o=new de(i,e),r=new En("",o),c=Bs(i,[],this.urlTree.queryParams,this.urlTree.fragment);return c.queryParams=this.urlTree.queryParams,r.url=this.urlSerializer.serialize(c),{state:r,tree:c}}async match(t){let e=new Nt([],Object.freeze({}),Object.freeze(O({},this.urlTree.queryParams)),this.urlTree.fragment,Object.freeze({}),D,this.rootComponentType,null,{},this.injector);try{return{children:await this.processSegmentGroup(this.injector,this.config,t,D,e),rootSnapshot:e}}catch(i){if(i instanceof Ut)return this.urlTree=i.urlTree,this.match(i.urlTree.root);throw i instanceof Ie?this.noMatchError(i):i}}async processSegmentGroup(t,e,i,o,r){if(i.segments.length===0&&i.hasChildren())return this.processChildren(t,e,i,r);let c=await this.processSegment(t,e,i,i.segments,o,!0,r);return c instanceof de?[c]:[]}async processChildren(t,e,i,o){let r=[];for(let u of Object.keys(i.children))u==="primary"?r.unshift(u):r.push(u);let c=[];for(let u of r){let g=i.children[u],f=wl(e,u),_=await this.processSegmentGroup(t,f,g,u,o);c.push(..._)}let p=da(c);return Nl(p),p}async processSegment(t,e,i,o,r,c,p){for(let u of e)try{return await this.processSegmentAgainstRoute(u._injector??t,e,u,i,o,r,c,p)}catch(g){if(g instanceof Ie||oa(g))continue;throw g}if(Il(i,o,r))return new Ki;throw new Ie(i)}async processSegmentAgainstRoute(t,e,i,o,r,c,p,u){if(xe(i)!==c&&(c===D||!An(o,r,i)))throw new Ie(o);if(i.redirectTo===void 0)return this.matchSegmentAgainstRoute(t,o,i,r,c,u);if(this.allowRedirects&&p)return this.expandSegmentAgainstRouteUsingRedirect(t,o,e,i,r,c,u);throw new Ie(o)}async expandSegmentAgainstRouteUsingRedirect(t,e,i,o,r,c,p){let{matched:u,parameters:g,consumedSegments:f,positionalParamSegments:_,remainingSegments:R}=ca(e,o,r);if(!u)throw new Ie(e);typeof o.redirectTo=="string"&&o.redirectTo[0]==="/"&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>Al&&(this.allowRedirects=!1));let J=this.createSnapshot(t,o,r,g,p);if(this.abortSignal.aborted)throw new Error(this.abortSignal.reason);let Y=await this.applyRedirects.applyRedirectCommands(f,o.redirectTo,_,la(J),t),Q=await this.applyRedirects.lineralizeSegments(o,Y);return this.processSegment(t,i,e,Q.concat(R),c,!1,p)}createSnapshot(t,e,i,o,r){let c=new Nt(i,o,Object.freeze(O({},this.urlTree.queryParams)),this.urlTree.fragment,Ll(e),xe(e),e.component??e._loadedComponent??null,e,Ul(e),t),p=Qi(c,r,this.paramsInheritanceStrategy);return c.params=Object.freeze(p.params),c.data=Object.freeze(p.data),c}async matchSegmentAgainstRoute(t,e,i,o,r,c){if(this.abortSignal.aborted)throw new Error(this.abortSignal.reason);let p=K=>this.createSnapshot(t,i,K.consumedSegments,K.parameters,c),u=await Mn(Sl(e,i,o,t,this.urlSerializer,p,this.abortSignal));if(i.path==="**"&&(e.children={}),!u?.matched)throw new Ie(e);t=i._injector??t;let{routes:g}=await this.getChildConfig(t,i,o),f=i._loadedInjector??t,{parameters:_,consumedSegments:R,remainingSegments:J}=u,Y=this.createSnapshot(t,i,R,_,c),{segmentGroup:Q,slicedSegments:T}=Ir(e,R,J,g,r);if(T.length===0&&Q.hasChildren()){let K=await this.processChildren(f,g,Q,Y);return new de(Y,K)}if(g.length===0&&T.length===0)return new de(Y,[]);let A=xe(i)===r,G=await this.processSegment(f,g,Q,T,A?D:r,!0,Y);return new de(Y,G instanceof de?[G]:[])}async getChildConfig(t,e,i){if(e.children)return{routes:e.children,injector:t};if(e.loadChildren){if(e._loadedRoutes!==void 0){let r=e._loadedNgModuleFactory;return r&&!e._loadedInjector&&(e._loadedInjector=r.create(t).injector),{routes:e._loadedRoutes,injector:e._loadedInjector}}if(this.abortSignal.aborted)throw new Error(this.abortSignal.reason);if(await Mn(xl(t,e,i,this.urlSerializer,this.abortSignal))){let r=await this.configLoader.loadChildren(t,e);return e._loadedRoutes=r.routes,e._loadedInjector=r.injector,e._loadedNgModuleFactory=r.factory,r}throw Pl(e)}return{routes:[],injector:t}}};function Nl(n){n.sort((t,e)=>t.value.outlet===D?-1:e.value.outlet===D?1:t.value.outlet.localeCompare(e.value.outlet))}function Fl(n){let t=n.value.routeConfig;return t&&t.path===""}function da(n){let t=[],e=new Set;for(let i of n){if(!Fl(i)){t.push(i);continue}let o=t.find(r=>i.value.routeConfig===r.value.routeConfig);o!==void 0?(o.children.push(...i.children),e.add(o)):t.push(i)}for(let i of e){let o=da(i.children);t.push(new de(i.value,o))}return t.filter(i=>!e.has(i))}function Ll(n){return n.data||{}}function Ul(n){return n.resolve||{}}function zl(n,t,e,i,o,r,c){return De(async p=>{let{state:u,tree:g}=await Dl(n,t,e,i,p.extractedUrl,o,r,c);return ie(O({},p),{targetSnapshot:u,urlAfterRedirects:g})})}function jl(n){return De(t=>{let{targetSnapshot:e,guards:{canActivateChecks:i}}=t;if(!i.length)return N(t);let o=new Set(i.map(p=>p.route)),r=new Set;for(let p of o)if(!r.has(p))for(let u of pa(p))r.add(u);let c=0;return ge(r).pipe(ht(p=>o.has(p)?Bl(p,e,n):(p.data=Qi(p,p.parent,n).resolve,N(void 0))),_e(()=>c++),Qn(1),De(p=>c===r.size?N(t):ue))})}function pa(n){let t=n.children.map(e=>pa(e)).flat();return[n,...t]}function Bl(n,t,e){let i=n.routeConfig,o=n._resolve;return i?.title!==void 0&&!Qr(i)&&(o[zt]=i.title),$t(()=>(n.data=Qi(n,n.parent,e).resolve,Vl(o,n,t).pipe(Z(r=>(n._resolvedData=r,n.data=O(O({},n.data),r),null)))))}function Vl(n,t,e){let i=wi(n);if(i.length===0)return N({});let o={};return ge(i).pipe(De(r=>$l(n[r],t,e).pipe(Ne(),_e(c=>{if(c instanceof Lt)throw kn(new We,c);o[r]=c}))),Qn(1),Z(()=>o),Yn(r=>oa(r)?ue:go(r)))}function $l(n,t,e){let i=t._environmentInjector,o=pt(n,i),r=o.resolve?o.resolve(t,e):le(i,()=>o(t,e));return Je(r)}function Dr(n){return me(t=>{let e=n(t);return e?ge(e).pipe(Z(()=>t)):N(t)})}var ua=(()=>{class n{buildTitle(e){let i,o=e.root;for(;o!==void 0;)i=this.getResolvedTitleForRoute(o)??i,o=o.children.find(r=>r.outlet===D);return i}getResolvedTitleForRoute(e){return e.data[zt]}static \u0275fac=function(i){return new(i||n)};static \u0275prov=F({token:n,factory:()=>y(Hl),providedIn:"root"})}return n})(),Hl=(()=>{class n extends ua{title;constructor(e){super(),this.title=e}updateTitle(e){let i=this.buildTitle(e);i!==void 0&&this.title.setTitle(i)}static \u0275fac=function(i){return new(i||n)(U(wr))};static \u0275prov=F({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),Nn=new X("",{factory:()=>({})}),Fn=new X(""),ga=(()=>{class n{componentLoaders=new WeakMap;childrenLoaders=new WeakMap;onLoadStartListener;onLoadEndListener;compiler=y(Uo);async loadComponent(e,i){if(this.componentLoaders.get(i))return this.componentLoaders.get(i);if(i._loadedComponent)return Promise.resolve(i._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(i);let o=(async()=>{try{let r=await Nr(le(e,()=>i.loadComponent())),c=await ha(ma(r));return this.onLoadEndListener&&this.onLoadEndListener(i),i._loadedComponent=c,c}finally{this.componentLoaders.delete(i)}})();return this.componentLoaders.set(i,o),o}loadChildren(e,i){if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return Promise.resolve({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);let o=(async()=>{try{let r=await ql(i,this.compiler,e,this.onLoadEndListener);return i._loadedRoutes=r.routes,i._loadedInjector=r.injector,i._loadedNgModuleFactory=r.factory,r}finally{this.childrenLoaders.delete(i)}})();return this.childrenLoaders.set(i,o),o}static \u0275fac=function(i){return new(i||n)};static \u0275prov=F({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();async function ql(n,t,e,i){let o=await Nr(le(e,()=>n.loadChildren())),r=await ha(ma(o)),c;r instanceof ko||Array.isArray(r)?c=r:c=await t.compileModuleAsync(r),i&&i(n);let p,u,g=!1,f;return Array.isArray(c)?(u=c,g=!0):(p=c.create(e).injector,f=c,u=p.get(Fn,[],{optional:!0,self:!0}).flat()),{routes:u.map(eo),injector:p,factory:f}}function Wl(n){return n&&typeof n=="object"&&"default"in n}function ma(n){return Wl(n)?n.default:n}async function ha(n){return n}var to=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275prov=F({token:n,factory:()=>y(Gl),providedIn:"root"})}return n})(),Gl=(()=>{class n{shouldProcessUrl(e){return!0}extract(e){return e}merge(e,i){return e}static \u0275fac=function(i){return new(i||n)};static \u0275prov=F({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),fa=new X("");var Jl=()=>{},_a=new X(""),Ca=(()=>{class n{currentNavigation=L(null,{equal:()=>!1});currentTransition=null;lastSuccessfulNavigation=L(null);events=new Ke;transitionAbortWithErrorSubject=new Ke;configLoader=y(ga);environmentInjector=y(Me);destroyRef=y(Gt);urlSerializer=y(In);rootContexts=y(jt);location=y(Zt);inputBindingEnabled=y(Dn,{optional:!0})!==null;titleStrategy=y(ua);options=y(Nn,{optional:!0})||{};paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly";urlHandlingStrategy=y(to);createViewTransition=y(fa,{optional:!0});navigationErrorHandler=y(_a,{optional:!0});navigationId=0;get hasRequestedNavigation(){return this.navigationId!==0}transitions;afterPreactivation=()=>N(void 0);rootComponentType=null;destroyed=!1;constructor(){let e=o=>this.events.next(new Ni(o)),i=o=>this.events.next(new Fi(o));this.configLoader.onLoadEndListener=i,this.configLoader.onLoadStartListener=e,this.destroyRef.onDestroy(()=>{this.destroyed=!0})}complete(){this.transitions?.complete()}handleNavigationRequest(e){let i=++this.navigationId;Ve(()=>{this.transitions?.next(ie(O({},e),{extractedUrl:this.urlHandlingStrategy.extract(e.rawUrl),targetSnapshot:null,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null,id:i,routesRecognizeHandler:{},beforeActivateHandler:{}}))})}setupNavigations(e){return this.transitions=new pe(null),this.transitions.pipe(Ae(i=>i!==null),me(i=>{let o=!1,r=new AbortController,c=()=>!o&&this.currentTransition?.id===i.id;return N(i).pipe(me(p=>{if(this.navigationId>i.id)return this.cancelNavigationTransition(i,"",se.SupersededByNewNavigation),ue;this.currentTransition=i;let u=this.lastSuccessfulNavigation();this.currentNavigation.set({id:p.id,initialUrl:p.rawUrl,extractedUrl:p.extractedUrl,targetBrowserUrl:typeof p.extras.browserUrl=="string"?this.urlSerializer.parse(p.extras.browserUrl):p.extras.browserUrl,trigger:p.source,extras:p.extras,previousNavigation:u?ie(O({},u),{previousNavigation:null}):null,abort:()=>r.abort(),routesRecognizeHandler:p.routesRecognizeHandler,beforeActivateHandler:p.beforeActivateHandler});let g=!e.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl(),f=p.extras.onSameUrlNavigation??e.onSameUrlNavigation;if(!g&&f!=="reload")return this.events.next(new ze(p.id,this.urlSerializer.serialize(p.rawUrl),"",On.IgnoredSameUrlNavigation)),p.resolve(!1),ue;if(this.urlHandlingStrategy.shouldProcessUrl(p.rawUrl))return N(p).pipe(me(_=>(this.events.next(new at(_.id,this.urlSerializer.serialize(_.extractedUrl),_.source,_.restoredState)),_.id!==this.navigationId?ue:Promise.resolve(_))),zl(this.environmentInjector,this.configLoader,this.rootComponentType,e.config,this.urlSerializer,this.paramsInheritanceStrategy,r.signal),_e(_=>{i.targetSnapshot=_.targetSnapshot,i.urlAfterRedirects=_.urlAfterRedirects,this.currentNavigation.update(R=>(R.finalUrl=_.urlAfterRedirects,R)),this.events.next(new At)}),me(_=>ge(i.routesRecognizeHandler.deferredHandle??N(void 0)).pipe(Z(()=>_))),_e(()=>{let _=new wn(p.id,this.urlSerializer.serialize(p.extractedUrl),this.urlSerializer.serialize(p.urlAfterRedirects),p.targetSnapshot);this.events.next(_)}));if(g&&this.urlHandlingStrategy.shouldProcessUrl(p.currentRawUrl)){let{id:_,extractedUrl:R,source:J,restoredState:Y,extras:Q}=p,T=new at(_,this.urlSerializer.serialize(R),J,Y);this.events.next(T);let A=Xr(this.rootComponentType,this.environmentInjector).snapshot;return this.currentTransition=i=ie(O({},p),{targetSnapshot:A,urlAfterRedirects:R,extras:ie(O({},Q),{skipLocationChange:!1,replaceUrl:!1})}),this.currentNavigation.update(G=>(G.finalUrl=R,G)),N(i)}else return this.events.next(new ze(p.id,this.urlSerializer.serialize(p.extractedUrl),"",On.IgnoredByUrlHandlingStrategy)),p.resolve(!1),ue}),Z(p=>{let u=new Ri(p.id,this.urlSerializer.serialize(p.extractedUrl),this.urlSerializer.serialize(p.urlAfterRedirects),p.targetSnapshot);return this.events.next(u),this.currentTransition=i=ie(O({},p),{guards:tl(p.targetSnapshot,p.currentSnapshot,this.rootContexts)}),i}),ul(p=>this.events.next(p)),me(p=>{if(i.guardsResult=p.guardsResult,p.guardsResult&&typeof p.guardsResult!="boolean")throw kn(this.urlSerializer,p.guardsResult);let u=new Ii(p.id,this.urlSerializer.serialize(p.extractedUrl),this.urlSerializer.serialize(p.urlAfterRedirects),p.targetSnapshot,!!p.guardsResult);if(this.events.next(u),!c())return ue;if(!p.guardsResult)return this.cancelNavigationTransition(p,"",se.GuardRejected),ue;if(p.guards.canActivateChecks.length===0)return N(p);let g=new Di(p.id,this.urlSerializer.serialize(p.extractedUrl),this.urlSerializer.serialize(p.urlAfterRedirects),p.targetSnapshot);if(this.events.next(g),!c())return ue;let f=!1;return N(p).pipe(jl(this.paramsInheritanceStrategy),_e({next:()=>{f=!0;let _=new Ai(p.id,this.urlSerializer.serialize(p.extractedUrl),this.urlSerializer.serialize(p.urlAfterRedirects),p.targetSnapshot);this.events.next(_)},complete:()=>{f||this.cancelNavigationTransition(p,"",se.NoDataFromResolver)}}))}),Dr(p=>{let u=f=>{let _=[];if(f.routeConfig?._loadedComponent)f.component=f.routeConfig?._loadedComponent;else if(f.routeConfig?.loadComponent){let R=f._environmentInjector;_.push(this.configLoader.loadComponent(R,f.routeConfig).then(J=>{f.component=J}))}for(let R of f.children)_.push(...u(R));return _},g=u(p.targetSnapshot.root);return g.length===0?N(p):ge(Promise.all(g).then(()=>p))}),Dr(()=>this.afterPreactivation()),me(()=>{let{currentSnapshot:p,targetSnapshot:u}=i,g=this.createViewTransition?.(this.environmentInjector,p.root,u.root);return g?ge(g).pipe(Z(()=>i)):N(i)}),Xe(1),me(p=>{let u=Ys(e.routeReuseStrategy,p.targetSnapshot,p.currentRouterState);this.currentTransition=i=p=ie(O({},p),{targetRouterState:u}),this.currentNavigation.update(f=>(f.targetRouterState=u,f)),this.events.next(new lt);let g=i.beforeActivateHandler.deferredHandle;return g?ge(g.then(()=>p)):N(p)}),_e(p=>{new Wi(e.routeReuseStrategy,i.targetRouterState,i.currentRouterState,u=>this.events.next(u),this.inputBindingEnabled).activate(this.rootContexts),c()&&(o=!0,this.currentNavigation.update(u=>(u.abort=Jl,u)),this.lastSuccessfulNavigation.set(Ve(this.currentNavigation)),this.events.next(new Ue(p.id,this.urlSerializer.serialize(p.extractedUrl),this.urlSerializer.serialize(p.urlAfterRedirects))),this.titleStrategy?.updateTitle(p.targetRouterState.snapshot),p.resolve(!0))}),qt(ra(r.signal).pipe(Ae(()=>!o&&!i.targetRouterState),_e(()=>{this.cancelNavigationTransition(i,r.signal.reason+"",se.Aborted)}))),_e({complete:()=>{o=!0}}),qt(this.transitionAbortWithErrorSubject.pipe(_e(p=>{throw p}))),Ht(()=>{r.abort(),o||this.cancelNavigationTransition(i,"",se.SupersededByNewNavigation),this.currentTransition?.id===i.id&&(this.currentNavigation.set(null),this.currentTransition=null)}),Yn(p=>{if(o=!0,this.destroyed)return i.resolve(!1),ue;if(ia(p))this.events.next(new ve(i.id,this.urlSerializer.serialize(i.extractedUrl),p.message,p.cancellationCode)),el(p)?this.events.next(new ct(p.url,p.navigationBehaviorOptions)):i.resolve(!1);else{let u=new st(i.id,this.urlSerializer.serialize(i.extractedUrl),p,i.targetSnapshot??void 0);try{let g=le(this.environmentInjector,()=>this.navigationErrorHandler?.(u));if(g instanceof Lt){let{message:f,cancellationCode:_}=kn(this.urlSerializer,g);this.events.next(new ve(i.id,this.urlSerializer.serialize(i.extractedUrl),f,_)),this.events.next(new ct(g.redirectTo,g.navigationBehaviorOptions))}else throw this.events.next(u),p}catch(g){this.options.resolveNavigationPromiseOnError?i.resolve(!1):i.reject(g)}}return ue}))}))}cancelNavigationTransition(e,i,o){let r=new ve(e.id,this.urlSerializer.serialize(e.extractedUrl),i,o);this.events.next(r),e.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){let e=this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))),i=Ve(this.currentNavigation),o=i?.targetBrowserUrl??i?.extractedUrl;return e.toString()!==o?.toString()&&!i?.extras.skipLocationChange}static \u0275fac=function(i){return new(i||n)};static \u0275prov=F({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function Kl(n){return n!==Rt}var va=new X("");var Xl=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275prov=F({token:n,factory:()=>y(Yl),providedIn:"root"})}return n})(),Yi=class{shouldDetach(t){return!1}store(t,e){}shouldAttach(t){return!1}retrieve(t){return null}shouldReuseRoute(t,e){return t.routeConfig===e.routeConfig}shouldDestroyInjector(t){return!0}},Yl=(()=>{class n extends Yi{static \u0275fac=(()=>{let e;return function(o){return(e||(e=oi(n)))(o||n)}})();static \u0275prov=F({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),no=(()=>{class n{urlSerializer=y(In);options=y(Nn,{optional:!0})||{};canceledNavigationResolution=this.options.canceledNavigationResolution||"replace";location=y(Zt);urlHandlingStrategy=y(to);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";currentUrlTree=new be;getCurrentUrlTree(){return this.currentUrlTree}rawUrlTree=this.currentUrlTree;getRawUrlTree(){return this.rawUrlTree}createBrowserPath({finalUrl:e,initialUrl:i,targetBrowserUrl:o}){let r=e!==void 0?this.urlHandlingStrategy.merge(e,i):i,c=o??r;return c instanceof be?this.urlSerializer.serialize(c):c}routerUrlState(e){return e?.targetBrowserUrl===void 0||e?.finalUrl===void 0?{}:{\u0275routerUrl:this.urlSerializer.serialize(e.finalUrl)}}commitTransition({targetRouterState:e,finalUrl:i,initialUrl:o}){i&&e?(this.currentUrlTree=i,this.rawUrlTree=this.urlHandlingStrategy.merge(i,o),this.routerState=e):this.rawUrlTree=o}routerState=Xr(null,y(Me));getRouterState(){return this.routerState}_stateMemento=this.createStateMemento();get stateMemento(){return this._stateMemento}updateStateMemento(){this._stateMemento=this.createStateMemento()}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}restoredState(){return this.location.getState()}static \u0275fac=function(i){return new(i||n)};static \u0275prov=F({token:n,factory:()=>y(Ql),providedIn:"root"})}return n})(),Ql=(()=>{class n extends no{currentPageId=0;lastSuccessfulId=-1;get browserPageId(){return this.canceledNavigationResolution!=="computed"?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}registerNonRouterCurrentEntryChangeListener(e){return this.location.subscribe(i=>{i.type==="popstate"&&setTimeout(()=>{e(i.url,i.state,"popstate",{replaceUrl:!0})})})}handleRouterEvent(e,i){e instanceof at?this.updateStateMemento():e instanceof ze?this.commitTransition(i):e instanceof wn?this.urlUpdateStrategy==="eager"&&(i.extras.skipLocationChange||this.setBrowserUrl(this.createBrowserPath(i),i)):e instanceof lt?(this.commitTransition(i),this.urlUpdateStrategy==="deferred"&&!i.extras.skipLocationChange&&this.setBrowserUrl(this.createBrowserPath(i),i)):e instanceof ve&&!Kr(e)?this.restoreHistory(i):e instanceof st?this.restoreHistory(i,!0):e instanceof Ue&&(this.lastSuccessfulId=e.id,this.currentPageId=this.browserPageId)}setBrowserUrl(e,i){let{extras:o,id:r}=i,{replaceUrl:c,state:p}=o;if(this.location.isCurrentPathEqualTo(e)||c){let u=this.browserPageId,g=O(O({},p),this.generateNgRouterState(r,u,i));this.location.replaceState(e,"",g)}else{let u=O(O({},p),this.generateNgRouterState(r,this.browserPageId+1,i));this.location.go(e,"",u)}}restoreHistory(e,i=!1){if(this.canceledNavigationResolution==="computed"){let o=this.browserPageId,r=this.currentPageId-o;r!==0?this.location.historyGo(r):this.getCurrentUrlTree()===e.finalUrl&&r===0&&(this.resetInternalState(e),this.resetUrlToCurrentUrlTree())}else this.canceledNavigationResolution==="replace"&&(i&&this.resetInternalState(e),this.resetUrlToCurrentUrlTree())}resetInternalState({finalUrl:e}){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,e??this.rawUrlTree)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.getRawUrlTree()),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(e,i,o){return this.canceledNavigationResolution==="computed"?O({navigationId:e,\u0275routerPageId:i},this.routerUrlState(o)):O({navigationId:e},this.routerUrlState(o))}static \u0275fac=(()=>{let e;return function(o){return(e||(e=oi(n)))(o||n)}})();static \u0275prov=F({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function xa(n,t){n.events.pipe(Ae(e=>e instanceof Ue||e instanceof ve||e instanceof st||e instanceof ze),Z(e=>e instanceof Ue||e instanceof ze?0:(e instanceof ve?e.code===se.Redirect||e.code===se.SupersededByNewNavigation:!1)?2:1),Ae(e=>e!==2),Xe(1)).subscribe(()=>{t()})}var io=(()=>{class n{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}disposed=!1;nonRouterCurrentEntryChangeSubscription;console=y(Io);stateManager=y(no);options=y(Nn,{optional:!0})||{};pendingTasks=y(xo);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";navigationTransitions=y(Ca);urlSerializer=y(In);location=y(Zt);urlHandlingStrategy=y(to);injector=y(Me);_events=new Ke;get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}navigated=!1;routeReuseStrategy=y(Xl);injectorCleanup=y(va,{optional:!0});onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore";config=y(Fn,{optional:!0})?.flat()??[];componentInputBindingEnabled=!!y(Dn,{optional:!0});currentNavigation=this.navigationTransitions.currentNavigation.asReadonly();constructor(){this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this).subscribe({error:e=>{}}),this.subscribeToNavigationEvents()}eventsSubscription=new po;subscribeToNavigationEvents(){let e=this.navigationTransitions.events.subscribe(i=>{try{let o=this.navigationTransitions.currentTransition,r=Ve(this.navigationTransitions.currentNavigation);if(o!==null&&r!==null){if(this.stateManager.handleRouterEvent(i,r),i instanceof ve&&i.code!==se.Redirect&&i.code!==se.SupersededByNewNavigation)this.navigated=!0;else if(i instanceof Ue)this.navigated=!0,this.injectorCleanup?.(this.routeReuseStrategy,this.routerState,this.config);else if(i instanceof ct){let c=i.navigationBehaviorOptions,p=this.urlHandlingStrategy.merge(i.url,o.currentRawUrl),u=O({scroll:o.extras.scroll,browserUrl:o.extras.browserUrl,info:o.extras.info,skipLocationChange:o.extras.skipLocationChange,replaceUrl:o.extras.replaceUrl||this.urlUpdateStrategy==="eager"||Kl(o.source)},c);this.scheduleNavigation(p,Rt,null,u,{resolve:o.resolve,reject:o.reject,promise:o.promise})}}Js(i)&&this._events.next(i)}catch(o){this.navigationTransitions.transitionAbortWithErrorSubject.next(o)}});this.eventsSubscription.add(e)}resetRootComponentType(e){this.routerState.root.component=e,this.navigationTransitions.rootComponentType=e}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),Rt,this.stateManager.restoredState(),{replaceUrl:!0})}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((e,i,o,r)=>{this.navigateToSyncWithBrowser(e,o,i,r)})}navigateToSyncWithBrowser(e,i,o,r){let c=o?.navigationId?o:null,p=o?.\u0275routerUrl??e;if(o?.\u0275routerUrl&&(r=ie(O({},r),{browserUrl:e})),o){let g=O({},o);delete g.navigationId,delete g.\u0275routerPageId,delete g.\u0275routerUrl,Object.keys(g).length!==0&&(r.state=g)}let u=this.parseUrl(p);this.scheduleNavigation(u,i,c,r).catch(g=>{this.disposed||this.injector.get(ni)(g)})}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return Ve(this.navigationTransitions.currentNavigation)}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(e){this.config=e.map(eo),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this._events.unsubscribe(),this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription?.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0,this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(e,i={}){let{relativeTo:o,queryParams:r,fragment:c,queryParamsHandling:p,preserveFragment:u}=i,g=u?this.currentUrlTree.fragment:c,f=null;switch(p??this.options.defaultQueryParamsHandling){case"merge":f=O(O({},this.currentUrlTree.queryParams),r);break;case"preserve":f=this.currentUrlTree.queryParams;break;default:f=r||null}f!==null&&(f=this.removeEmptyProps(f));let _;try{let R=o?o.snapshot:this.routerState.snapshot.root;_=qr(R)}catch{(typeof e[0]!="string"||e[0][0]!=="/")&&(e=[]),_=this.currentUrlTree.root}return Wr(_,e,f,g??null,this.urlSerializer)}navigateByUrl(e,i={skipLocationChange:!1}){let o=rt(e)?e:this.parseUrl(e),r=this.urlHandlingStrategy.merge(o,this.rawUrlTree);return this.scheduleNavigation(r,Rt,null,i)}navigate(e,i={skipLocationChange:!1}){return Zl(e),this.navigateByUrl(this.createUrlTree(e,i),i)}serializeUrl(e){return this.urlSerializer.serialize(e)}parseUrl(e){try{return this.urlSerializer.parse(e)}catch{return this.console.warn(Zn(4018,!1)),this.urlSerializer.parse("/")}}isActive(e,i){let o;if(i===!0?o=O({},Lr):i===!1?o=O({},Si):o=O(O({},Si),i),rt(e))return Sr(this.currentUrlTree,e,o);let r=this.parseUrl(e);return Sr(this.currentUrlTree,r,o)}removeEmptyProps(e){return Object.entries(e).reduce((i,[o,r])=>(r!=null&&(i[o]=r),i),{})}scheduleNavigation(e,i,o,r,c){if(this.disposed)return Promise.resolve(!1);let p,u,g;c?(p=c.resolve,u=c.reject,g=c.promise):g=new Promise((_,R)=>{p=_,u=R});let f=this.pendingTasks.add();return xa(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(f))}),this.navigationTransitions.handleNavigationRequest({source:i,restoredState:o,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:e,extras:r,resolve:p,reject:u,promise:g,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),g.catch(Promise.reject.bind(Promise))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=F({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function Zl(n){for(let t=0;t<n.length;t++)if(n[t]==null)throw new z(4008,!1)}var ec=new X("");function oo(n,...t){return Wt([{provide:Fn,multi:!0,useValue:n},[],{provide:Ge,useFactory:tc},{provide:Ao,multi:!0,useFactory:nc},t.map(e=>e.\u0275providers)])}function tc(){return y(io).routerState.root}function nc(){let n=y(ei);return t=>{let e=n.get(No);if(t!==e.components[0])return;let i=n.get(io),o=n.get(ic);n.get(oc)===1&&i.initialNavigation(),n.get(rc,null,{optional:!0})?.setUpPreloading(),n.get(ec,null,{optional:!0})?.init(),i.resetRootComponentType(e.componentTypes[0]),o.closed||(o.next(),o.complete(),o.unsubscribe())}}var ic=new X("",{factory:()=>new Ke}),oc=new X("",{factory:()=>1});var rc=new X("");var ba=[];var Ma={providers:[bo(),xi(),oo(ba)]};var Ln=class n{http=y(fn);sessionData=L(null);loadState=L("loading");loadError=L(null);refreshState=L("idle");refreshMessage=L(null);constructor(){this.http.get("/data/sessions.json").subscribe({next:t=>{this.sessionData.set(t),this.loadState.set("ready"),this.loadError.set(null)},error:t=>{this.loadState.set("error"),this.loadError.set(this.errorMessage(t))}})}refresh(){this.refreshState()!=="refreshing"&&(this.refreshState.set("refreshing"),this.refreshMessage.set("Scanning VS Code..."),this.http.post("/api/scan",{}).subscribe({next:({sessionData:t})=>{this.sessionData.set(t),this.loadState.set("ready"),this.loadError.set(null),this.refreshState.set("success"),this.refreshMessage.set(`${t.sessions.length.toLocaleString()} sessions imported`)},error:t=>{this.refreshState.set("error"),this.refreshMessage.set(this.isMissingRuntime(t)?"Refresh is unavailable in static-only mode":this.errorMessage(t))}}))}errorMessage(t){return t&&typeof t=="object"&&"error"in t&&t.error&&typeof t.error=="object"&&"error"in t.error&&typeof t.error.error=="string"?t.error.error:t&&typeof t=="object"&&"message"in t&&typeof t.message=="string"?t.message:"The local session data could not be loaded."}isMissingRuntime(t){if(!t||typeof t!="object")return!1;let e="status"in t?Number(t.status):0;return e===0||e===404||e===502||e===504}static \u0275fac=function(e){return new(e||n)};static \u0275prov=F({token:n,factory:n.\u0275fac,providedIn:"root"})};function sc(n,t){n&1&&(Te(0,"section",0)(1,"p",2),l(2,"Loading"),Ee(),Te(3,"h2"),l(4,"Reading local sessions"),Ee(),Te(5,"p"),l(6,"Checking the local Copilot data already imported by the runtime."),Ee()())}function lc(n,t){n&1&&(Te(0,"p"),l(1,"Scan this computer for local VS Code Copilot Chat and Agent sessions."),Ee())}function cc(n,t){if(n&1&&(Te(0,"p"),l(1),Ee()),n&2){let e=m(2);d(),C(e.error||"The local session data could not be loaded.")}}function dc(n,t){if(n&1){let e=H();Te(0,"section",0)(1,"p",2),l(2),Ee(),Te(3,"h2"),l(4),Ee(),b(5,lc,2,0,"p")(6,cc,2,1,"p"),Te(7,"button",3),Lo("click",function(){E(e);let o=m();return k(o.refresh.emit())}),l(8),Ee()()}if(n&2){let e=m();q("danger",!e.isEmptyState),d(2),C(e.isEmptyState?"Get started":"Data issue"),d(2),C(e.isEmptyState?"Import your first sessions":"Could not load local session data"),d(),M(e.isEmptyState?5:6),d(2),Fo("disabled",e.refreshState==="refreshing"),Pe("aria-busy",e.refreshState==="refreshing"),d(),v(" ",e.refreshState==="refreshing"?"Scanning VS Code...":e.isEmptyState?"Scan VS Code":"Try again"," ")}}var Un=class n{state;error=null;refreshState="idle";refresh=new $;get isEmptyState(){return this.error?.toLowerCase().includes("no session data is available")??!1}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=ee({type:n,selectors:[["app-session-data-state-panel"]],inputs:{state:"state",error:"error",refreshState:"refreshState"},outputs:{refresh:"refresh"},decls:2,vars:1,consts:[[1,"state-panel"],[1,"state-panel",3,"danger"],[1,"eyebrow"],["type","button",1,"scan-button",3,"click","disabled"]],template:function(e,i){e&1&&b(0,sc,7,0,"section",0)(1,dc,9,8,"section",1),e&2&&M(i.state==="loading"?0:i.state==="error"?1:-1)},styles:["[_nghost-%COMP%]{display:block}.state-panel[_ngcontent-%COMP%]{display:grid;gap:8px;margin-bottom:18px;border:1px solid var(--line);border-radius:8px;padding:18px;background:var(--surface-soft)}.state-panel[_ngcontent-%COMP%] h2[_ngcontent-%COMP%], .state-panel[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0}.state-panel[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{color:var(--text-strong)}.state-panel[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:var(--muted);line-height:1.5}.state-panel.danger[_ngcontent-%COMP%]{border-color:#ff6b5f66;background:#ff6b5f14}.scan-button[_ngcontent-%COMP%]{justify-self:start;min-height:36px;border:1px solid color-mix(in srgb,var(--accent) 48%,var(--line));border-radius:7px;padding:0 14px;background:color-mix(in srgb,var(--accent) 10%,var(--surface));color:var(--text-strong);font:inherit;font-weight:750;cursor:pointer}.scan-button[_ngcontent-%COMP%]:hover:not(:disabled){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,var(--surface))}.scan-button[_ngcontent-%COMP%]:disabled{cursor:wait;opacity:.65}.eyebrow[_ngcontent-%COMP%]{color:var(--accent-2);font-size:12px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}"]})};function ya(n,t){let e=Oe(n),i=n.modelBreakdown.map(_=>Ko(_,e)),o=pc(i),r=fc(n.traceEvents,n.modelBreakdown,n.modelLimits??[],e,t),c=hc(n.traceEvents,n.modelBreakdown),p=mc(n,i,c),u=n.tokens.cachedInput>0||n.tokens.cacheWrite>0,g=uc(n,i,r),f=gc(r);return{hasCacheData:u,modelRows:i,categoryRows:o,costAnswer:g,costDrivers:p,modelCallRows:r,topTokenEvents:c,turnInsights:f}}function ut(n){let t=ka(n),e=Oc(t),i=[],o=Math.max(...n.traceEvents.filter(c=>c.type==="llm_request").map(c=>c.inputTokens),0);return(n.tokens.input+n.tokens.cachedInput+n.tokens.cacheWrite>=15e4||o>=1e5)&&i.push({label:"High input context",tone:"high",help:"Large prompt/context payloads are being sent into the model. This usually means repo context, prior conversation, or tool results are driving cost."}),n.modelBreakdown.length>1&&i.push({label:"Mixed models",tone:"medium",help:"This run used more than one model. Cost is the sum of each model row, so model switches can make estimates harder to read at a glance."}),{size:e,sizeTone:e==="Very large"?"high":e==="Large"?"medium":"info",totalTokens:t,warnings:i}}function Oa(n){return`${n.size} session based on ${n.totalTokens.toLocaleString()} imported tokens. Current thresholds: Small under 100k, Medium under 500k, Large under 1.5M, Very large at 1.5M or more.`}function wa(n,t){return n.filter(e=>xc(e)).map((e,i)=>{let o=co(e,t),r=lo(e),c=nn(o,{input:r,cachedInput:e.cachedInputTokens??0}),p=rn(e)??e.estimatedCost?.usd??fe(r,c.input)+fe(e.cachedInputTokens??0,c.cachedInput)+fe(e.cacheWriteTokens??0,c.cacheWrite??0)+fe(e.outputTokens,c.output);return ie(O({},e),{flowIndex:i+1,totalTokens:so(e),pricingModel:o,estimatedUsd:p})})}function Sa(n,t){return t==="all"?!0:t==="model"?!!(n.inputTokens||n.outputTokens||n.type==="llm_request"):t==="tool"?n.type.includes("tool")||bc().some(e=>n.name.toLowerCase().includes(e)):t==="discovery"?ao(n):t==="message"?n.type==="user_message":t==="response"?n.type==="agent_response"||n.type==="assistant.message":n.status!=="ok"&&n.status!=="unknown"}function Ta(n,t){let e=co(n,t),i=lo(n),o=nn(e,{input:i,cachedInput:n.cachedInputTokens??0}),r=fe(i,o.input),c=fe(n.cachedInputTokens??0,o.cachedInput),p=fe(n.cacheWriteTokens??0,o.cacheWrite??0),u=fe(n.outputTokens,o.output),g=rn(n)??n.estimatedCost?.usd??r+c+p+u,f=so(n),_=n.rawModel||n.model||jn(n.detail);return{normalizedFields:[{label:"Raw index",value:`#${n.index}`},{label:"Timestamp",value:n.timestamp},{label:"Type",value:n.type},{label:"Name",value:n.name},{label:"Status",value:n.status},...n.model?[{label:"Model",value:n.model}]:[],..._?[{label:"Raw model",value:_}]:[],...n.inputTokens||n.outputTokens?[{label:"Raw inputTokens",value:n.inputTokens.toLocaleString()},{label:"Normal input tokens",value:i.toLocaleString()},...n.cachedInputTokens?[{label:"Cached input tokens",value:n.cachedInputTokens.toLocaleString()}]:[],...n.cacheWriteTokens?[{label:"Cache write tokens",value:n.cacheWriteTokens.toLocaleString()}]:[],{label:"Output tokens",value:n.outputTokens.toLocaleString()},{label:"Total tokens",value:f.toLocaleString()},{label:"Pricing row",value:e},{label:"Pricing tier",value:n.pricingTier??o.label??o.tierLabel??"Default"},{label:n.sourceUsage?"GitHub usage":"Estimated cost",value:`$${g.toLocaleString(void 0,{minimumFractionDigits:6,maximumFractionDigits:6})}`},...n.sourceUsage?[{label:"Source usage credits",value:n.sourceUsage.credits.toLocaleString(void 0,{minimumFractionDigits:0,maximumFractionDigits:6})}]:[],...n.sourceEstimatedCost?[{label:"Source estimatedCost",value:n.sourceEstimatedCost}]:[]]:[],...n.ttftMs?[{label:"TTFT",value:`${n.ttftMs.toLocaleString()} ms`}]:[],...n.maxTokens?[{label:"Max tokens",value:n.maxTokens.toLocaleString()}]:[],...n.reasoningEffort?[{label:"Reasoning effort",value:n.reasoningEffort}]:[],...n.hasReasoning?[{label:"Reasoning text",value:"Present in debug log payload"}]:[]],attributeFields:n.attributes??[],detail:n.detail||"No detail text imported for this event.",hasCost:!!(n.inputTokens||n.outputTokens),inputUsd:r,outputUsd:u,estimatedUsd:g,totalTokens:f,pricingModel:e,usesFallbackPrice:on(_,e)}}var Ea=on;function ka(n){return yc(n.tokens)}function pc(n){return[{label:"Normal input",tokens:zn(n,"input"),usd:n.reduce((t,e)=>t+e.inputUsd,0),description:"Non-cached prompt/context tokens priced at the normal input rate. Raw VS Code inputTokens can be higher when cachedTokens are present."},{label:"Output",tokens:zn(n,"output"),usd:n.reduce((t,e)=>t+e.outputUsd,0),description:"Generated model response tokens."},{label:"Cached input",tokens:zn(n,"cachedInput"),usd:n.reduce((t,e)=>t+e.cachedInputUsd,0),description:"Prompt tokens served from provider cache when that billing signal is available."},{label:"Cache write",tokens:zn(n,"cacheWrite"),usd:n.reduce((t,e)=>t+e.cacheWriteUsd,0),description:"Provider cache creation tokens. GitHub lists this mainly for Anthropic models."}]}function uc(n,t,e){let i=Math.max(Oe(n),0),o=ka(n),r=t.reduce((T,A)=>T+A.inputUsd+A.cachedInputUsd+A.cacheWriteUsd,0),c=t.reduce((T,A)=>T+A.outputUsd,0),p=i>0?r/i*100:0,u=i>0?c/i*100:0,g=[...t].sort((T,A)=>A.totalUsd-T.totalUsd)[0]??null,f=g&&i>0?g.totalUsd/i*100:0,_=[...e].sort((T,A)=>A.estimatedUsd-T.estimatedUsd)[0]??null,R=_&&i>0?_.estimatedUsd/i*100:0,J=p>=u?"Input/context":"Output",Y=Math.max(p,u),Q=o?i/o*1e3:0;return{category:J,categoryShare:Y,categoryDetail:J==="Input/context"?"Most usage comes from tokens sent into the model: normal input, cached input, prior chat, repo context, and tool results.":"Most usage comes from generated model output. Inspect long responses or repeated generation.",costPer1k:Q,inputShare:p,outputShare:u,topModelLabel:g?.model??n.model,topModelShare:f,topCallLabel:_?`#${_.callNumber}`:"None",topCallShare:R,topCallDetail:_?`Raw event #${_.index}, ${_.totalTokens.toLocaleString()} tokens.`:"No token-bearing model call rows were imported."}}function gc(n){let t=n.reduce((c,p)=>c+p.estimatedUsd,0),e=[...n].sort((c,p)=>p.estimatedUsd-c.estimatedUsd)[0]??null,i=[...n].sort((c,p)=>p.inputTokens-c.inputTokens)[0]??null,o=[...n].sort((c,p)=>p.outputTokens-c.outputTokens)[0]??null,r=n.length?t/n.length:0;return[{label:"Model calls",value:n.length.toLocaleString(),detail:"Token-bearing llm_request events imported from the VS Code debug log."},{label:"Most expensive call",value:e?`#${e.callNumber} \xB7 $${e.estimatedUsd.toFixed(4)}`:"None",detail:e?`${e.totalTokens.toLocaleString()} tokens, raw event #${e.index}.`:"No priced model call rows are available."},{label:"Largest raw input",value:i?`#${i.callNumber} \xB7 ${i.inputTokens.toLocaleString()}`:"None",detail:i?"This is the biggest raw inputTokens payload sent into the model before splitting normal and cached input.":"No input token totals were imported."},{label:"Largest output",value:o?`#${o.callNumber} \xB7 ${o.outputTokens.toLocaleString()}`:"None",detail:o?"This is the largest generated response in the imported model calls.":"No output token totals were imported."},{label:"Avg cost / call",value:`$${r.toFixed(4)}`,detail:"Useful for spotting whether cost came from one spike or many steady calls."}]}function mc(n,t,e){let i=t.reduce((G,K)=>G+K.inputUsd+K.cachedInputUsd+K.cacheWriteUsd,0),o=t.reduce((G,K)=>G+K.outputUsd,0),r=Math.max(Oe(n),0),c=r>0?i/r*100:0,p=r>0?o/r*100:0,u=t.reduce((G,K)=>G+K.inputUsd,0),g=t.reduce((G,K)=>G+K.cachedInputUsd,0),f=t.reduce((G,K)=>G+K.cacheWriteUsd,0),_=e[0],R=_&&r>0?_.estimatedUsd/r*100:0,J=[...t].sort((G,K)=>K.totalUsd-G.totalUsd)[0],Y=J&&r>0?J.totalUsd/r*100:0,Q=n.traceSummary.toolCalls,T=n.traceSummary.modelTurns>0?Q/n.traceSummary.modelTurns:0,A=t.length;return[{title:"Input-side spend",value:`$${i.toFixed(4)}`,detail:c>=p?`${c.toFixed(0)}% of the $${r.toFixed(4)} run usage. Split: $${u.toFixed(4)} normal input, $${g.toFixed(4)} cached input${f?`, $${f.toFixed(4)} cache write`:""}.`:`Input/cache contributes ${c.toFixed(0)}% of the $${r.toFixed(4)} run usage. Output is larger here.`,tone:c>=75?"high":c>=50?"medium":"low"},{title:"Largest model call",value:_?`$${_.estimatedUsd.toFixed(4)}`:"None",detail:_?`Raw event index #${_.index} used ${_.totalTokens.toLocaleString()} tokens and accounts for about ${R.toFixed(0)}% of this run.`:"No token-bearing model calls were imported for this session.",tone:R>=25?"high":R>=10?"medium":"low"},{title:"Model mix",value:A===1?J?.model??n.model:`${A} models`,detail:J?`${J.model} contributes about ${Y.toFixed(0)}% of usage using the ${J.pricingModel} price row.`:"No model breakdown is available for this session.",tone:A>1||Y>=80?"medium":"low"},{title:"Tool activity",value:Q.toLocaleString(),detail:Q>0?`${T.toFixed(1)} tool calls per model turn. Tool results can increase later prompt/context size when they are sent back to the model.`:"No tool calls were imported for this session.",tone:T>=4?"high":T>=2?"medium":"low"}]}function hc(n,t){return Ra(n,t).sort((e,i)=>i.totalTokens-e.totalTokens).slice(0,5)}function fc(n,t,e,i,o){let r=new Map,c=-1,p=Ra(n,t).map((u,g)=>{let f=Mc(u,n),_=_c(u,n,c),R=Cc(u,e),J=vc(R,u),Y=(r.get(J)??0)+u.inputTokens;r.set(J,Y);let Q=Pa(R?.promptLimitTokens),T=Pa(R?.contextWindowTokens);return c=u.index,ie(O({},u),{callNumber:g+1,share:i>0?u.estimatedUsd/i*100:0,contextLabel:f.label,contextDetail:f.detail,startsAfterUserRequest:!!_,userRequestIndex:_?.index??null,userRequestDetail:_?ro(_.detail,110):null,promptLimitTokens:Q,contextWindowTokens:T,promptLimitShare:Q?u.inputTokens/Q:null,contextWindowShare:T?u.inputTokens/T:null,cumulativeRawInputTokens:Y,repeatedInputFactorAtCall:u.inputTokens>0?Y/u.inputTokens:0})});return o==="largest"?[...p].sort((u,g)=>g.estimatedUsd-u.estimatedUsd||g.totalTokens-u.totalTokens):p}function ao(n){let t=n.attributes?.find(o=>o.label==="category")?.value.toLowerCase()??"",e=n.name.toLowerCase(),i=n.detail.toLowerCase();return n.type==="discovery"||e.includes("discovery")||e.includes("customization")||t==="customization"||i.startsWith("resolved ")}function _c(n,t,e){return[...t].reverse().find(i=>i.type==="user_message"&&i.index>e&&i.index<n.index)??null}function Cc(n,t){if(!t.length)return null;let e=n.rawModel||n.model||jn(n.detail),i=Ce(e);return i?t.find(o=>[o.model,o.modelId,...o.rawModels].map(c=>Ce(c)).filter(Boolean).some(c=>c===i||i.includes(c)||c.includes(i)))??(t.length===1?t[0]:null):t.length===1?t[0]:null}function vc(n,t){return Ce(n?.modelId??"")||Ce(n?.model??"")||Ce(t.rawModel??"")||Ce(t.model??"")||Ce(t.pricingModel??"")||"unknown"}function Pa(n){return typeof n=="number"&&n>0?n:null}function Ra(n,t){return n.filter(e=>e.inputTokens||e.outputTokens).map(e=>{let i=co(e,t),o=lo(e),r=nn(i,{input:o,cachedInput:e.cachedInputTokens??0}),c=fe(o,r.input),p=fe(e.cachedInputTokens??0,r.cachedInput),u=fe(e.cacheWriteTokens??0,r.cacheWrite??0),g=fe(e.outputTokens,r.output),f=rn(e)??e.estimatedCost?.usd??c+p+u+g;return ie(O({},e),{totalTokens:so(e),pricingModel:i,usesFallbackPrice:on(e.model||jn(e.detail),i),inputUsd:c,cachedInputUsd:p,cacheWriteUsd:u,outputUsd:g,estimatedUsd:f})})}function so(n){return n.totalTokens??n.inputTokens+n.outputTokens+(n.cacheWriteTokens??0)}function lo(n){return Math.max(0,n.inputTokens-(n.cachedInputTokens??0))}function xc(n){return n.type==="user_message"||n.type==="llm_request"||n.type.includes("tool")||n.type==="agent_response"}function bc(){return["read_file","list_dir","grep_search","semantic_search","fetch_webpage","apply_patch","run_in_terminal"]}function co(n,t){if(n.pricingModel)return n.pricingModel;let e=t.length===1?t[0].pricingModel:null,i=n.model??jn(n.detail);return wc(i)??e??si(i)}function fe(n,t){return n/1e6*t}function Mc(n,t){let e=[...t].reverse().find(i=>i.index<n.index&&i.detail&&i.type!=="llm_request"&&i.type!=="agent_response");return e?{label:Pc(e.type),detail:ro(e.detail)}:{label:"No nearby context",detail:ro(n.detail)}}function Pc(n){return n==="user_message"?"After user prompt":n.includes("tool")?"After tool event":`After ${n.replace(/_/g," ")}`}function ro(n,t=180){let e=String(n??"").replace(/\s+/g," ").trim();return e.length>t?`${e.slice(0,t-1)}...`:e}function yc(n){return n.input+n.cachedInput+n.cacheWrite+n.output}function Oc(n){return n>=15e5?"Very large":n>=5e5?"Large":n>=1e5?"Medium":"Small"}function zn(n,t){return n.reduce((e,i)=>e+i.tokens[t],0)}function jn(n){return String(n).split(":")[0]?.trim()??""}function wc(n){let t=Ce(n);if(!t)return null;let e=si(n);return Ce(e)===t||t.includes(Ce(e))?e:null}var Bn=class n{createState(t){let e=te(()=>{let f=t.selectedSession();return f?ya(f,t.modelCallSort()):null}),i=te(()=>{let f=t.selectedSession();return f?wa(f.traceEvents,f.modelBreakdown):[]}),o=te(()=>{let f=t.selectedSession();return f?f.traceEvents.filter(_=>Sa(_,t.traceFilter())):[]}),r=te(()=>{let f=t.selectedTraceEventIndex(),_=o();return _.find(R=>R.index===f)??_[0]??null}),c=te(()=>{let f=t.selectedSession(),_=r();return!f||!_?null:Ta(_,f.modelBreakdown)}),p=te(()=>{let f=t.selectedSession();return!!(f&&!t.filteredSessions().some(_=>_.id===f.id))}),u=te(()=>{let f=t.selectedSession();return f?f.modelBreakdown.filter(_=>Ea(_.model,_.pricingModel)).map(_=>({model:_.model,pricingModel:_.pricingModel,turns:_.turns})):[]}),g=te(()=>{let f=t.selectedSession();return f?ut(f):null});return{costExplanation:e,flowEvents:i,filteredTraceEvents:o,selectedTraceEvent:r,selectedTraceEventDetails:c,selectedSessionOutsideFilters:p,selectedPricingFallbacks:u,selectedTriage:g}}static \u0275fac=function(e){return new(e||n)};static \u0275prov=F({token:n,factory:n.\u0275fac,providedIn:"root"})};var Sc=(n,t)=>t.label,Tc=(n,t)=>t.model,Ec=(n,t)=>t.title,Ia=(n,t)=>t.name;function kc(n,t){n&1&&(s(0,"strong"),l(1,"Not in local logs"),a(),s(2,"em"),l(3,"not priced for this run"),a())}function Rc(n,t){if(n&1&&(s(0,"strong"),l(1),h(2,"number"),a(),s(3,"em"),l(4),h(5,"number"),a()),n&2){let e=m().$implicit;d(),v("",x(2,2,e.tokens)," tokens"),d(3),v("$",S(5,4,e.usd,"1.6-6"))}}function Ic(n,t){if(n&1&&(s(0,"article")(1,"span"),l(2),I(3,"app-help-popover",22),a(),b(4,kc,4,0)(5,Rc,6,7),a()),n&2){let e=t.$implicit,i=m();q("unavailable",e.tokens===0&&i.isCacheCategory(e))("hidden-cache",!i.cost.hasCacheData&&i.isCacheCategory(e)),d(2),v(" ",e.label," "),d(),P("text",e.description)("label","Explain "+e.label),d(),M(!i.cost.hasCacheData&&i.isCacheCategory(e)?4:5)}}function Dc(n,t){n&1&&(s(0,"em",25),l(1,"fallback"),a())}function Ac(n,t){if(n&1&&(s(0,"em"),l(1),h(2,"number"),h(3,"number"),a()),n&2){let e=m().$implicit;d(),W("",x(2,2,e.tokens.cachedInput)," cached in / ",x(3,4,e.tokens.cacheWrite)," cache write")}}function Nc(n,t){if(n&1&&(l(0," Per-call tiered rates "),s(1,"em"),l(2),a()),n&2){let e=m().$implicit;d(2),C(e.pricingTierLabel)}}function Fc(n,t){if(n&1&&(s(0,"em"),l(1),h(2,"number"),h(3,"number"),a()),n&2){let e=m(2).$implicit;d(),W("$",S(2,2,e.cachedInputRate,"1.0-3")," cached / $",S(3,5,e.cacheWriteRate,"1.0-3")," write")}}function Lc(n,t){if(n&1&&(s(0,"em"),l(1),h(2,"number"),a()),n&2){let e=m(2).$implicit;d(),v("$",S(2,1,e.cachedInputRate,"1.0-3")," cached")}}function Uc(n,t){if(n&1&&(l(0),h(1,"number"),h(2,"number"),b(3,Fc,4,8,"em")(4,Lc,3,4,"em")),n&2){let e=m().$implicit;W(" $",S(1,3,e.inputRate,"1.0-3")," in / $",S(2,6,e.outputRate,"1.0-3")," out "),d(3),M(e.cacheWriteRate?3:4)}}function zc(n,t){if(n&1&&(l(0),h(1,"number")),n&2){let e=m().$implicit;v(" / ",S(1,1,e.cachedInputUsd,"1.6-6")," cached ")}}function jc(n,t){if(n&1&&(l(0),h(1,"number")),n&2){let e=m().$implicit;v(" / ",S(1,1,e.cacheWriteUsd,"1.6-6")," write ")}}function Bc(n,t){if(n&1&&(s(0,"div",17)(1,"strong",23),l(2),s(3,"em"),l(4),h(5,"number"),a()(),s(6,"span",24),l(7),s(8,"em"),l(9),a(),b(10,Dc,2,0,"em",25),a(),s(11,"span",26),l(12),h(13,"number"),h(14,"number"),b(15,Ac,4,6,"em"),a(),s(16,"span",27),b(17,Nc,3,1)(18,Uc,5,9),a(),s(19,"span",28),l(20),h(21,"number"),s(22,"em"),l(23),h(24,"number"),b(25,zc,2,4),b(26,jc,2,4),l(27),h(28,"number"),a()(),s(29,"span",29),l(30),h(31,"number"),a()()),n&2){let e=t.$implicit;d(2),v(" ",e.model," "),d(2),W("",x(5,16,e.turns)," model turns \xB7 ",e.provider),d(3),v(" ",e.pricingModel," "),d(2),C(e.pricingTierLabel),d(),M(e.usesFallbackPrice?10:-1),d(2),W(" ",x(13,18,e.tokens.input)," normal in / ",x(14,20,e.tokens.output)," out "),d(3),M(e.tokens.cachedInput||e.tokens.cacheWrite?15:-1),d(2),M(e.hasMixedPricingTiers?17:18),d(3),v(" $",S(21,22,e.totalUsd,"1.6-6")," "),d(3),v(" ",S(24,25,e.inputUsd,"1.6-6")," in "),d(2),M(e.cachedInputUsd||e.cacheWriteUsd?25:-1),d(),M(e.cacheWriteUsd?26:-1),d(),v(" / ",S(28,28,e.outputUsd,"1.6-6")," out "),d(3),v("",S(31,31,e.share,"1.0-0"),"%")}}function Vc(n,t){if(n&1&&(s(0,"article",21)(1,"span"),l(2),a(),s(3,"strong"),l(4),a(),s(5,"p"),l(6),a()()),n&2){let e=t.$implicit;P("ngClass",e.tone),d(2),C(e.title),d(2),C(e.value),d(2),C(e.detail)}}function $c(n,t){if(n&1&&(s(0,"li")(1,"strong"),l(2),a(),s(3,"em"),l(4),a()()),n&2){let e=t.$implicit,i=m(4);d(2),C(e.name),d(2),C(i.payloadSizeLabel(e.totalChars))}}function Hc(n,t){if(n&1&&(s(0,"ol"),j(1,$c,5,2,"li",null,Ia),a()),n&2){let e=m(),i=m(2);d(),B(i.topToolSchemas(e))}}function qc(n,t){n&1&&(s(0,"p"),l(1,"No tool schema side-file details were imported for this run."),a())}function Wc(n,t){if(n&1&&(s(0,"li")(1,"strong"),l(2),h(3,"number"),a(),s(4,"em"),l(5),a()()),n&2){let e=t.$implicit,i=m(4);d(2),W("",e.name," \xB7 ",x(3,3,e.calls)," calls"),d(3),C(i.payloadSizeLabel(e.argsChars+e.resultChars))}}function Gc(n,t){if(n&1&&(s(0,"ol"),j(1,Wc,6,5,"li",null,Ia),a()),n&2){let e=m(),i=m(2);d(),B(i.topToolResults(e))}}function Jc(n,t){n&1&&(s(0,"p"),l(1,"No tool argument/result payload sizes were imported for this run."),a())}function Kc(n,t){if(n&1&&(s(0,"details",30)(1,"summary")(2,"span"),l(3,"Setup payload clues"),a(),s(4,"em"),l(5,"Instruction, tool schema, and tool text sizes"),a()(),s(6,"div",31)(7,"article")(8,"span"),l(9,"System prompt"),a(),s(10,"strong"),l(11),a(),s(12,"em"),l(13),h(14,"number"),h(15,"number"),a()(),s(16,"article")(17,"span"),l(18,"Tool schemas"),a(),s(19,"strong"),l(20),a(),s(21,"em"),l(22),h(23,"number"),h(24,"number"),a()(),s(25,"article")(26,"span"),l(27,"MCP tools"),a(),s(28,"strong"),l(29),h(30,"number"),a(),s(31,"em"),l(32),a()(),s(33,"article")(34,"span"),l(35,"Tool text groups"),a(),s(36,"strong"),l(37),h(38,"number"),a(),s(39,"em"),l(40,"largest imported argument/result groups"),a()()(),s(41,"div",32)(42,"article")(43,"span"),l(44,"Largest tool schemas"),a(),b(45,Hc,3,0,"ol")(46,qc,2,0,"p"),a(),s(47,"article")(48,"span"),l(49,"Largest tool argument/result text"),a(),b(50,Gc,3,0,"ol")(51,Jc,2,0,"p"),a()()()),n&2){let e=t,i=m(2);d(11),C(i.payloadSizeLabel(e.systemPromptChars)),d(2),W("",x(14,11,e.modelCallsWithSystemPromptFile)," model calls referenced ",x(15,13,e.systemPromptFiles)," file(s)"),d(7),C(i.payloadSizeLabel(e.toolSchemaChars)),d(2),W("",x(23,15,e.toolCount)," tools from ",x(24,17,e.toolSchemaFiles)," file(s)"),d(7),C(x(30,19,e.mcpToolCount)),d(3),C(i.mcpToolSummary(e)),d(5),C(x(38,21,i.topToolResults(e).length)),d(8),M(i.topToolSchemas(e).length?45:46),d(5),M(i.topToolResults(e).length?50:51)}}function Xc(n,t){if(n&1&&b(0,Kc,52,23,"details",30),n&2){let e,i=m();M((e=i.session.requestPayload)?0:-1,e)}}var Vn=class n{session;cost;help;pricingSourceUrl;isCacheCategory(t){return t.label==="Cached input"||t.label==="Cache write"}formatCompactNumber(t){return t>=1e3?`${(t/1e3).toLocaleString(void 0,{maximumFractionDigits:t>=1e4?0:1})}k`:t.toLocaleString()}hasPayloadEvidence(t){return t?!!(t.systemPromptChars||t.toolSchemaChars||t.toolCount||t.mcpToolCount||t.toolResultCharsByName.length||t.reasoningEfforts.length):!1}payloadSizeLabel(t){return t>=1e6?`${(t/1e6).toLocaleString(void 0,{maximumFractionDigits:2})}M chars`:t>=1e3?`${(t/1e3).toLocaleString(void 0,{maximumFractionDigits:t>=1e4?0:1})}k chars`:`${t.toLocaleString()} chars`}topToolSchemas(t){return t.largestToolSchemas.slice(0,4)}topToolResults(t){return[...t.toolResultCharsByName].sort((e,i)=>i.resultChars+i.argsChars-(e.resultChars+e.argsChars)).slice(0,4)}mcpToolSummary(t){if(!t.mcpToolCount)return"No MCP tools found in imported tool schema side files.";let e=t.mcpToolNames.slice(0,3).join(", "),i=t.mcpToolNames.length>3?`, +${t.mcpToolNames.length-3} more`:"";return e?`${e}${i}`:"MCP tools were counted, but names were not available."}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=ee({type:n,selectors:[["app-session-cost"]],inputs:{session:"session",cost:"cost",help:"help",pricingSourceUrl:"pricingSourceUrl"},decls:94,vars:34,consts:[[1,"cost-explainer"],[1,"cost-explainer-header"],[1,"eyebrow"],[1,"panel-lede"],[1,"cost-header-actions"],["target","_blank","rel","noreferrer",1,"price-link",3,"href"],["aria-label","Cost answer",1,"diagnostic-hero"],[1,"primary-diagnosis"],[1,"diagnostic-facts"],[1,"section-label"],[1,"cost-categories"],[3,"unavailable","hidden-cache"],["role","table","aria-label","Model price rows",1,"cost-table"],["role","row",1,"cost-row","cost-row-heading"],["label","Explain price row",3,"text"],["label","Explain token columns",3,"text"],["label","Explain rates",3,"text"],["role","row",1,"cost-row"],["aria-label","Cost details",1,"cost-detail-stack"],[1,"cost-detail-panel"],[1,"driver-grid"],[3,"ngClass"],[3,"text","label"],["role","cell","data-label","Model"],["role","cell","data-label","Price row"],[1,"warning-text"],["role","cell","data-label","Tokens"],["role","cell","data-label","Rates / 1M"],["role","cell","data-label","Cost"],["role","cell","data-label","Share"],[1,"cost-detail-panel","payload-evidence"],[1,"payload-grid"],[1,"payload-lists"]],template:function(e,i){e&1&&(s(0,"section",0)(1,"div",1)(2,"div")(3,"p",2),l(4,"Cost diagnosis"),a(),s(5,"h3"),l(6,"Cost answer"),a(),s(7,"p",3),l(8,"Usage first. Token buckets explain the shape."),a()(),s(9,"div",4)(10,"a",5),l(11,"GitHub price source"),a()()(),s(12,"section",6)(13,"article",7)(14,"span"),l(15,"Primary driver"),a(),s(16,"strong"),l(17),a(),s(18,"p"),l(19),a()(),s(20,"div",8)(21,"div")(22,"span"),l(23,"Share"),a(),s(24,"strong"),l(25),h(26,"number"),a(),s(27,"em"),l(28),h(29,"number"),h(30,"number"),a()(),s(31,"div")(32,"span"),l(33,"Top model"),a(),s(34,"strong"),l(35),a(),s(36,"em"),l(37),h(38,"number"),a()(),s(39,"div")(40,"span"),l(41,"Top call"),a(),s(42,"strong"),l(43),a(),s(44,"em"),l(45),h(46,"number"),a()(),s(47,"div")(48,"span"),l(49,"Cost / 1k tokens"),a(),s(50,"strong"),l(51),h(52,"number"),a(),s(53,"em"),l(54,"Using imported token totals"),a()()()(),s(55,"div",9)(56,"h4"),l(57,"Priced buckets"),a()(),s(58,"div",10),j(59,Ic,6,8,"article",11,Sc),a(),s(61,"div",9)(62,"h4"),l(63,"Model pricing"),a()(),s(64,"div",12)(65,"div",13)(66,"span"),l(67,"Model"),a(),s(68,"span"),l(69,"Price row "),I(70,"app-help-popover",14),a(),s(71,"span"),l(72," Tokens "),I(73,"app-help-popover",15),a(),s(74,"span"),l(75,"Rates / 1M "),I(76,"app-help-popover",16),a(),s(77,"span"),l(78,"Cost"),a(),s(79,"span"),l(80,"Share"),a()(),j(81,Bc,32,34,"div",17,Tc),a(),s(83,"section",18)(84,"details",19)(85,"summary")(86,"span"),l(87,"Cost drivers"),a(),s(88,"em"),l(89,"Secondary signals behind usage"),a()(),s(90,"div",20),j(91,Vc,7,4,"article",21,Ec),a()(),b(93,Xc,1,1),a()()),e&2&&(d(10),P("href",i.pricingSourceUrl,wo),d(7),C(i.cost.costAnswer.category),d(2),C(i.cost.costAnswer.categoryDetail),d(6),v("",S(26,16,i.cost.costAnswer.categoryShare,"1.0-0"),"%"),d(3),W("",S(29,19,i.cost.costAnswer.inputShare,"1.0-0"),"% input / ",S(30,22,i.cost.costAnswer.outputShare,"1.0-0"),"% output"),d(7),C(i.cost.costAnswer.topModelLabel),d(2),v("",S(38,25,i.cost.costAnswer.topModelShare,"1.0-0"),"% of usage"),d(6),C(i.cost.costAnswer.topCallLabel),d(2),W("",S(46,28,i.cost.costAnswer.topCallShare,"1.0-0"),"% \xB7 ",i.cost.costAnswer.topCallDetail),d(6),v("$",S(52,31,i.cost.costAnswer.costPer1k,"1.4-4")),d(8),B(i.cost.categoryRows),d(11),P("text",i.help.priceRow),d(3),P("text","Token columns use priced buckets: normal input, cached input, cache write, and output. Raw VS Code inputTokens is kept in Trace event details."),d(3),P("text",i.help.appEstimate),d(5),B(i.cost.modelRows),d(10),B(i.cost.costDrivers),d(2),M(i.hasPayloadEvidence(i.session.requestPayload)?93:-1))},dependencies:[ye,we,re],styles:['[_nghost-%COMP%]{display:block}.cost-explainer[_ngcontent-%COMP%]{display:grid;gap:12px;border:1px solid var(--line);border-radius:8px;padding:14px;background:var(--surface);box-shadow:0 18px 50px #00000038}.cost-explainer-header[_ngcontent-%COMP%]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.cost-header-actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}.eyebrow[_ngcontent-%COMP%]{margin:0;color:var(--muted-2);font-size:11px;font-weight:850;letter-spacing:0;text-transform:uppercase}.cost-explainer[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:4px 0 0;color:var(--text-strong)}.panel-lede[_ngcontent-%COMP%]{margin:5px 0 0;color:var(--muted);font-size:13px}.price-link[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-self:start;width:fit-content;min-height:28px;border:1px solid var(--line);border-radius:999px;padding:0 10px;background:var(--surface-soft);color:var(--text);font-size:12px;font-weight:800;text-decoration:none;white-space:nowrap}.diagnostic-hero[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr);gap:8px}.primary-diagnosis[_ngcontent-%COMP%], .diagnostic-facts[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{border:1px solid var(--line);border-radius:8px;background:var(--surface-soft)}.primary-diagnosis[_ngcontent-%COMP%]{display:grid;align-content:start;gap:7px;min-height:100%;padding:13px;border-color:#7c5cff61;background:linear-gradient(135deg,#7c5cff33,#1fd1a514),var(--surface-soft)}.primary-diagnosis[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .diagnostic-facts[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .section-label[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:var(--muted-2);font-size:12px}.primary-diagnosis[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .diagnostic-facts[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-weight:850;text-transform:uppercase}.primary-diagnosis[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--text-strong);font-size:23px;line-height:1}.primary-diagnosis[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;color:var(--text);line-height:1.45;overflow-wrap:anywhere}.diagnostic-facts[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.diagnostic-facts[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{display:grid;gap:4px;padding:10px}.diagnostic-facts[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--text-strong);font-size:15px;line-height:1.15;overflow-wrap:anywhere}.diagnostic-facts[_ngcontent-%COMP%] em[_ngcontent-%COMP%]{color:var(--text);font-size:11px;font-style:normal;line-height:1.35;overflow-wrap:anywhere}.estimate-note[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:8px;padding:10px 12px;background:#ffffff05}.estimate-note.high[_ngcontent-%COMP%]{border-left-color:var(--danger)}.estimate-note.medium[_ngcontent-%COMP%]{border-left-color:var(--warning)}.estimate-note[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:first-child{display:grid;gap:3px}.estimate-note[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .estimate-note[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:5px}.estimate-note[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.estimate-note[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{margin-top:3px;color:var(--text-strong);font-size:14px;line-height:1.2}.estimate-note[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.35;overflow-wrap:anywhere}.estimate-note-meta[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.estimate-note-meta[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{min-height:24px;border:1px solid var(--line);border-radius:999px;padding:0 8px;background:var(--surface-soft);color:var(--text);font-size:11px;text-transform:none}.section-label[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 14px;margin-bottom:-6px}.section-label[_ngcontent-%COMP%] h4[_ngcontent-%COMP%], .cost-drivers[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{margin:0;color:var(--text-strong);font-size:15px}.section-label[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;color:var(--muted)}.cost-detail-stack[_ngcontent-%COMP%]{display:grid;gap:8px}.cost-detail-panel[_ngcontent-%COMP%]{display:grid;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--surface-soft) 58%,transparent)}.cost-detail-panel[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;cursor:pointer;padding:10px 12px;list-style:none}.cost-detail-panel[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]::-webkit-details-marker{display:none}.cost-detail-panel[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]:after{content:"+";display:inline-grid;place-items:center;width:22px;height:22px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-weight:760}.cost-detail-panel[open][_ngcontent-%COMP%] summary[_ngcontent-%COMP%]:after{content:"-"}.cost-detail-panel[_ngcontent-%COMP%] summary[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:var(--text-strong);font-size:13px;font-weight:760}.cost-detail-panel[_ngcontent-%COMP%] summary[_ngcontent-%COMP%] em[_ngcontent-%COMP%]{color:var(--muted);font-size:12px;font-style:normal}.driver-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.driver-grid[_ngcontent-%COMP%] article[_ngcontent-%COMP%]{display:grid;align-content:start;gap:7px;border:1px solid var(--line);border-top:3px solid var(--accent);border-radius:8px;padding:12px;background:var(--surface-soft)}.driver-grid[_ngcontent-%COMP%] article.medium[_ngcontent-%COMP%]{border-top-color:var(--warning)}.driver-grid[_ngcontent-%COMP%] article.high[_ngcontent-%COMP%]{border-top-color:var(--danger)}.driver-grid[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:var(--muted-2);font-size:12px;font-weight:800;text-transform:uppercase}.driver-grid[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--text-strong);font-size:20px;line-height:1.1;overflow-wrap:anywhere}.driver-grid[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;color:var(--text);font-size:13px;line-height:1.45}.payload-evidence[_ngcontent-%COMP%]{border-color:#1fd1a529;background:#1fd1a509}.payload-grid[_ngcontent-%COMP%], .payload-lists[_ngcontent-%COMP%]{display:grid;gap:8px;padding:0 10px 10px}.payload-grid[_ngcontent-%COMP%]{grid-template-columns:repeat(4,minmax(0,1fr))}.payload-lists[_ngcontent-%COMP%]{grid-template-columns:repeat(2,minmax(0,1fr));padding-top:0}.payload-grid[_ngcontent-%COMP%] article[_ngcontent-%COMP%], .payload-lists[_ngcontent-%COMP%] article[_ngcontent-%COMP%]{display:grid;align-content:start;gap:5px;border:1px solid var(--line);border-radius:12px;padding:10px;background:var(--surface-soft)}.payload-grid[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .payload-lists[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:var(--muted-2);font-size:10px;font-weight:760;letter-spacing:.08em;text-transform:uppercase}.payload-grid[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--text-strong);font-size:16px;font-weight:760;line-height:1.15;overflow-wrap:anywhere}.payload-grid[_ngcontent-%COMP%] em[_ngcontent-%COMP%], .payload-lists[_ngcontent-%COMP%] em[_ngcontent-%COMP%], .payload-lists[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;color:var(--muted);font-size:12px;font-style:normal;line-height:1.35}.payload-lists[_ngcontent-%COMP%] ol[_ngcontent-%COMP%]{display:grid;gap:5px;margin:0;padding:0;list-style:none}.payload-lists[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-width:0}.payload-lists[_ngcontent-%COMP%] li[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{min-width:0;color:var(--text);font-size:12px;font-weight:720;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cost-categories[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.cost-categories[_ngcontent-%COMP%] article[_ngcontent-%COMP%]{display:grid;gap:5px;border:1px solid var(--line);border-radius:8px;padding:12px;background:var(--surface-soft)}.cost-categories[_ngcontent-%COMP%] article.unavailable[_ngcontent-%COMP%]{background:#ffffff08}.cost-categories[_ngcontent-%COMP%] article.hidden-cache[_ngcontent-%COMP%]{border-style:dashed}.cost-categories[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .cost-categories[_ngcontent-%COMP%] em[_ngcontent-%COMP%], .cost-row[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .cost-row[_ngcontent-%COMP%] em[_ngcontent-%COMP%]{color:var(--muted);font-size:13px;font-style:normal}.cost-categories[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .cost-row-heading[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:5px}.cost-categories[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .cost-row[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--text-strong)}.cost-categories[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{font-size:18px}.cost-table[_ngcontent-%COMP%]{display:grid;border:1px solid var(--line);border-radius:8px;overflow:auto hidden;background:var(--surface)}.cost-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(140px,1.05fr) minmax(110px,.8fr) minmax(130px,1fr) minmax(130px,.92fr) minmax(120px,.86fr) minmax(54px,.32fr);gap:10px;align-items:start;min-width:760px;padding:11px 12px;border-bottom:1px solid var(--line)}.cost-row[_ngcontent-%COMP%]:last-child{border-bottom:0}.cost-row-heading[_ngcontent-%COMP%]{background:var(--surface-soft);font-size:12px;font-weight:800;text-transform:uppercase}.cost-row[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .cost-row[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:grid;gap:3px}.warning-text[_ngcontent-%COMP%]{color:var(--warning-text, #ffe0a0)!important;font-weight:800}.muted[_ngcontent-%COMP%]{color:var(--muted)}@media(max-width:1100px){.cost-categories[_ngcontent-%COMP%], .driver-grid[_ngcontent-%COMP%], .payload-grid[_ngcontent-%COMP%], .payload-lists[_ngcontent-%COMP%]{grid-template-columns:repeat(2,minmax(0,1fr))}.cost-explainer-header[_ngcontent-%COMP%]{display:grid}.diagnostic-facts[_ngcontent-%COMP%]{grid-template-columns:repeat(2,minmax(0,1fr))}.cost-table[_ngcontent-%COMP%]{overflow:visible;border:0;gap:10px;background:transparent}.cost-row-heading[_ngcontent-%COMP%]{display:none}.cost-row[_ngcontent-%COMP%]{grid-template-columns:1fr;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft)}.cost-row[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(94px,.3fr) minmax(0,1fr);gap:10px}.cost-row[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]:before{content:attr(data-label);color:var(--muted-2);font-size:11px;font-weight:850;text-transform:uppercase}}@media(max-width:900px){.diagnostic-hero[_ngcontent-%COMP%], .estimate-note[_ngcontent-%COMP%]{grid-template-columns:1fr}.estimate-note-meta[_ngcontent-%COMP%]{justify-content:flex-start}}@media(max-width:600px){.cost-categories[_ngcontent-%COMP%], .driver-grid[_ngcontent-%COMP%], .payload-grid[_ngcontent-%COMP%], .payload-lists[_ngcontent-%COMP%]{grid-template-columns:1fr}.cost-header-actions[_ngcontent-%COMP%]{display:grid;justify-content:stretch}.price-link[_ngcontent-%COMP%]{justify-content:center;width:100%}.diagnostic-facts[_ngcontent-%COMP%]{grid-template-columns:1fr}.section-label[_ngcontent-%COMP%]{display:grid}.cost-row[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{grid-template-columns:1fr;gap:3px}}.cost-explainer[_ngcontent-%COMP%]{gap:12px;border-radius:14px;box-shadow:0 14px 36px #0000002e}.eyebrow[_ngcontent-%COMP%], .primary-diagnosis[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .diagnostic-facts[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .driver-grid[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:10px;font-weight:760;letter-spacing:.08em}.cost-explainer[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{font-size:18px;font-weight:760;line-height:1.2}.panel-lede[_ngcontent-%COMP%]{font-size:12px}.price-link[_ngcontent-%COMP%]{padding:4px 8px;font-size:11px;font-weight:720}.diagnostic-hero[_ngcontent-%COMP%], .diagnostic-facts[_ngcontent-%COMP%], .driver-grid[_ngcontent-%COMP%], .cost-categories[_ngcontent-%COMP%]{gap:8px}.primary-diagnosis[_ngcontent-%COMP%], .diagnostic-facts[_ngcontent-%COMP%] > div[_ngcontent-%COMP%], .estimate-note[_ngcontent-%COMP%], .driver-grid[_ngcontent-%COMP%] article[_ngcontent-%COMP%], .cost-categories[_ngcontent-%COMP%] article[_ngcontent-%COMP%], .cost-table[_ngcontent-%COMP%]{border-radius:12px}.diagnostic-facts[_ngcontent-%COMP%] > div[_ngcontent-%COMP%], .driver-grid[_ngcontent-%COMP%] article[_ngcontent-%COMP%], .cost-categories[_ngcontent-%COMP%] article[_ngcontent-%COMP%]{padding:10px}.diagnostic-facts[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{font-size:15px;font-weight:760}.diagnostic-facts[_ngcontent-%COMP%] em[_ngcontent-%COMP%], .driver-grid[_ngcontent-%COMP%] p[_ngcontent-%COMP%], .cost-categories[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .cost-categories[_ngcontent-%COMP%] em[_ngcontent-%COMP%], .cost-row[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .cost-row[_ngcontent-%COMP%] em[_ngcontent-%COMP%], .section-label[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{font-size:12px}.section-label[_ngcontent-%COMP%] h4[_ngcontent-%COMP%], .cost-drivers[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{font-size:14px;font-weight:760}.driver-grid[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{font-size:17px;font-weight:760}.cost-categories[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{font-size:15px;font-weight:760}.cost-row[_ngcontent-%COMP%]{gap:10px;padding:9px 10px}.cost-row-heading[_ngcontent-%COMP%]{font-size:11px;font-weight:720}.theme-light[_nghost-%COMP%] .cost-explainer[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .cost-explainer[_ngcontent-%COMP%]{background:linear-gradient(180deg,#ffffffc2,#ffffff70),var(--surface);box-shadow:var(--shadow)}.theme-light[_nghost-%COMP%] .primary-diagnosis[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .primary-diagnosis[_ngcontent-%COMP%]{border-color:#6f5cff38;background:radial-gradient(circle at 0% 0%,rgba(111,92,255,.13),transparent 38%),linear-gradient(135deg,#0c9f830f,#6f5cff09),var(--surface)}.theme-light[_nghost-%COMP%] .diagnostic-facts[_ngcontent-%COMP%] > div[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .diagnostic-facts[_ngcontent-%COMP%] > div[_ngcontent-%COMP%], .theme-light[_nghost-%COMP%] .driver-grid[_ngcontent-%COMP%] article[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .driver-grid[_ngcontent-%COMP%] article[_ngcontent-%COMP%], .theme-light[_nghost-%COMP%] .cost-categories[_ngcontent-%COMP%] article[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .cost-categories[_ngcontent-%COMP%] article[_ngcontent-%COMP%], .theme-light[_nghost-%COMP%] .payload-grid[_ngcontent-%COMP%] article[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .payload-grid[_ngcontent-%COMP%] article[_ngcontent-%COMP%], .theme-light[_nghost-%COMP%] .payload-lists[_ngcontent-%COMP%] article[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .payload-lists[_ngcontent-%COMP%] article[_ngcontent-%COMP%]{background:#ffffffa3}.theme-light[_nghost-%COMP%] .estimate-note[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .estimate-note[_ngcontent-%COMP%], .theme-light[_nghost-%COMP%] .payload-evidence[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .payload-evidence[_ngcontent-%COMP%]{background:linear-gradient(135deg,#0c9f830a,#6f5cff05),var(--surface)}.theme-light[_nghost-%COMP%] .cost-table[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .cost-table[_ngcontent-%COMP%]{background:var(--surface);box-shadow:var(--shadow-soft)}']})};var $n=class n{ingestion;summary;help;static \u0275fac=function(e){return new(e||n)};static \u0275cmp=ee({type:n,selectors:[["app-session-import-context"]],inputs:{ingestion:"ingestion",summary:"summary",help:"help"},decls:64,vars:37,consts:[["aria-label","Imported data context",1,"import-context"],[1,"import-context-title"],[1,"import-context-note"],[1,"import-pill"],[1,"import-context-body"],["label","Explain debug logs",3,"text"],["label","Explain chat snapshots",3,"text"],["label","Explain state DBs",3,"text"],["label","Explain title improvement",3,"text"],["label","Explain empty logs skipped",3,"text"],["label","Explain no-request chats",3,"text"]],template:function(e,i){e&1&&(s(0,"details",0)(1,"summary")(2,"span",1),l(3,"Import context"),a(),s(4,"span",2),l(5,"Totals across imported sessions, not the selected run"),a(),s(6,"span",3),l(7),h(8,"number"),a(),s(9,"span",3),l(10),h(11,"number"),a(),s(12,"span",3),l(13),h(14,"number"),a(),s(15,"span",3),l(16),h(17,"number"),a()(),s(18,"div",4)(19,"p"),l(20," These scan diagnostics explain where the local session data came from. The selected run estimate starts below in the run header. "),a(),s(21,"dl")(22,"div")(23,"dt"),l(24,"Debug logs "),I(25,"app-help-popover",5),a(),s(26,"dd"),l(27),h(28,"number"),a()(),s(29,"div")(30,"dt"),l(31,"Chat snapshots "),I(32,"app-help-popover",6),a(),s(33,"dd"),l(34),h(35,"number"),a()(),s(36,"div")(37,"dt"),l(38,"State DBs "),I(39,"app-help-popover",7),a(),s(40,"dd"),l(41),h(42,"number"),a()(),s(43,"div")(44,"dt"),l(45,"Titles improved "),I(46,"app-help-popover",8),a(),s(47,"dd"),l(48),h(49,"number"),a()(),s(50,"div")(51,"dt"),l(52,"Empty logs skipped "),I(53,"app-help-popover",9),a(),s(54,"dd"),l(55),h(56,"number"),a()(),s(57,"div")(58,"dt"),l(59,"No-request chats "),I(60,"app-help-popover",10),a(),s(61,"dd"),l(62),h(63,"number"),a()()()()()),e&2&&(d(7),v("",x(8,16,i.summary.count)," sessions"),d(3),v("$",S(11,18,i.summary.usd,"1.2-2")," imported estimate"),d(3),v("",x(14,21,i.ingestion.importedDebugLogSessions)," debug logs"),d(3),v("",x(17,23,i.ingestion.enrichedFromStateDbs)," titles improved"),d(9),P("text",i.help.debugLogs),d(2),C(x(28,25,i.ingestion.importedDebugLogSessions)),d(5),P("text",i.help.chatSnapshots),d(2),C(x(35,27,i.ingestion.importedChatSnapshotSessions)),d(5),P("text",i.help.stateDbs),d(2),C(x(42,29,i.ingestion.scannedStateDbs)),d(5),P("text",i.help.stateEnriched),d(2),C(x(49,31,i.ingestion.enrichedFromStateDbs)),d(5),P("text",i.help.emptyDebugLogs),d(2),C(x(56,33,i.ingestion.skippedEmptyDebugLogs)),d(5),P("text",i.help.snapshotsWithoutRequests),d(2),C(x(63,35,i.ingestion.skippedChatSnapshotsWithoutRequests)))},dependencies:[we,re],styles:['.import-context[_ngcontent-%COMP%]{border:1px solid var(--line, #dfe6ed);border-radius:12px;background:#ffffff05}.import-context[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;min-height:34px;padding:7px 10px;color:var(--muted, #60717f);cursor:pointer;list-style:none}.import-context[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]::-webkit-details-marker{display:none}.import-context[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]:before{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .14s ease}.import-context[open][_ngcontent-%COMP%] summary[_ngcontent-%COMP%]:before{transform:rotate(45deg)}.import-context-title[_ngcontent-%COMP%]{color:var(--text-strong, #16202a);font-size:11px;font-weight:780;letter-spacing:.06em;text-transform:uppercase}.import-context-note[_ngcontent-%COMP%]{flex:1 1 auto;min-width:180px;color:var(--muted, #60717f);font-size:11px}.import-pill[_ngcontent-%COMP%]{flex:0 0 auto;border:1px solid var(--line, #dfe6ed);border-radius:999px;padding:3px 7px;background:var(--surface-soft, #f8fafb);color:var(--text, #16202a);font-size:10px;font-weight:720;white-space:nowrap}.import-context-body[_ngcontent-%COMP%]{display:grid;gap:8px;border-top:1px solid var(--line, #dfe6ed);padding:8px 10px 10px}.import-context-body[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;color:var(--muted, #60717f);font-size:11px}.import-context-body[_ngcontent-%COMP%] dl[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin:0}.import-context-body[_ngcontent-%COMP%] dl[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{display:grid;gap:4px;min-width:0;border:1px solid var(--line, #e6edf2);border-radius:9px;padding:7px;background:var(--surface-soft, #f8fafb)}.import-context-body[_ngcontent-%COMP%] dt[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:5px;min-width:0;color:var(--muted, #60717f);font-size:11px;line-height:1.2}.import-context-body[_ngcontent-%COMP%] dd[_ngcontent-%COMP%]{margin:0;color:var(--text-strong, #16202a);font-size:13px;font-weight:760}@media(max-width:1100px){.import-context[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]{flex-wrap:wrap}.import-context-note[_ngcontent-%COMP%]{flex:1 0 100%;order:3}.import-context-body[_ngcontent-%COMP%] dl[_ngcontent-%COMP%]{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.import-context[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start}.import-context[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]:before{margin-top:5px}.import-context-title[_ngcontent-%COMP%], .import-context-note[_ngcontent-%COMP%], .import-pill[_ngcontent-%COMP%]{grid-column:2}.import-context-body[_ngcontent-%COMP%] dl[_ngcontent-%COMP%]{grid-template-columns:1fr}}']})};var Yc=(n,t)=>t.label;function Qc(n,t){if(n&1&&(s(0,"div")(1,"span"),l(2," Reasoning "),I(3,"app-help-popover",6),a(),s(4,"strong"),l(5),a()()),n&2){let e=m();d(3),P("text",e.reasoningHelp()),d(2),C(t)}}function Zc(n,t){if(n&1&&(s(0,"span",10),l(1),I(2,"app-help-popover",11),a()),n&2){let e=t.$implicit;P("ngClass",e.tone),d(),v(" ",e.label," "),d(),P("text",e.help)("label","Explain "+e.label)}}function ed(n,t){if(n&1&&(s(0,"section",7)(1,"div",2)(2,"span"),l(3,"Attention"),a(),s(4,"h3"),l(5," Triage "),I(6,"app-help-popover",8),a()(),s(7,"div",9),j(8,Zc,3,4,"span",10,Yc),a()()),n&2){let e=m(),i=m();d(6),P("text",i.triageHelp),d(2),B(e.warnings)}}function td(n,t){n&1&&b(0,ed,10,1,"section",7),n&2&&M(t.warnings.length?0:-1)}function nd(n,t){if(n&1){let e=H();s(0,"section",4)(1,"div",2)(2,"span"),l(3,"Context snapshot"),a(),s(4,"h3"),l(5," Context movement "),I(6,"app-help-popover",12),a()(),s(7,"div",13)(8,"div")(9,"span"),l(10),a(),s(11,"strong"),l(12),a(),s(13,"p"),l(14),a()(),s(15,"button",14),w("click",function(){E(e);let o=m();return k(o.openCallsTimeline.emit())}),l(16," Open Calls timeline "),a()(),s(17,"div",15)(18,"div")(19,"span"),l(20,"Biggest request"),a(),s(21,"strong"),l(22),h(23,"number"),a()(),s(24,"div")(25,"span"),l(26,"Repeated load"),a(),s(27,"strong"),l(28),h(29,"number"),a()(),s(30,"div")(31,"span"),l(32,"Model requests"),a(),s(33,"strong"),l(34),h(35,"number"),a()()()()}if(n&2){let e=t,i=m();d(10),C(e.model),d(2),C(i.limitAnswer(e)),d(2),C(i.limitDetail(e)),d(8),C(x(23,6,e.largestRawInputTokens)),d(6),v("",S(29,8,e.repeatedInputFactor,"1.1-1"),"x"),d(6),C(x(35,11,e.modelCalls))}}function id(n,t){if(n&1&&(s(0,"div")(1,"dt"),l(2,"Permission"),a(),s(3,"dd"),l(4),a()(),s(5,"div")(6,"dt"),l(7,"Pending edits"),a(),s(8,"dd"),l(9),a()()),n&2){let e=t;d(4),C(e.permissionLevel||"unknown"),d(5),C(e.hasPendingEdits?"Yes":"No")}}var Hn=class n{session;triage=null;triageHelp="";openCallsTimeline=new $;reasoningLabel(){let t=this.session.traceSummary.reasoningEfforts??[];return t.length?t.map(e=>`${e.effort}${e.count>1?` x${e.count}`:""}`).join(", "):""}reasoningHelp(){return"Reasoning effort is shown only when VS Code logged the request setting. It is useful context for debugging a run, but it is not a separate cost bucket."}limitRead(){let t=this.session.modelLimits??[];return t.length?t.reduce((e,i)=>{let o=this.limitShare(e),r=this.limitShare(i);return r!==o?r>o?i:e:i.largestRawInputTokens>e.largestRawInputTokens?i:e}):null}limitShare(t){return t.promptLimitShare??t.contextWindowShare??0}limitPercent(t){return Math.round(this.limitShare(t)*100)}limitMeterPercent(t){return Math.min(100,Math.max(0,this.limitShare(t)*100))}limitDenominatorLabel(t){return t.promptLimitTokens?`${t.promptLimitTokens.toLocaleString()} prompt limit`:t.contextWindowTokens?`${t.contextWindowTokens.toLocaleString()} context window`:"no local limit metadata"}limitAnswer(t){let e=this.limitShare(t),i=t.modelCalls>1&&t.repeatedInputFactor>=2;return e>=.8?"Near limit":e>=.6?"Elevated peak":i?"Repeated context":"Low peak"}limitDetail(t){let e=t.largestRawInputTokens.toLocaleString(),i=this.limitPercent(t);return t.modelCalls>1?`Biggest request: ${e} input tokens, ${i}% of the model prompt limit.`:`Single model request: ${e} input tokens, ${i}% of the model prompt limit.`}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=ee({type:n,selectors:[["app-session-overview"]],inputs:{session:"session",triage:"triage",triageHelp:"triageHelp"},outputs:{openCallsTimeline:"openCallsTimeline"},decls:70,vars:27,consts:[[1,"overview-grid"],[1,"overview-panel","evidence-panel"],[1,"panel-title"],[1,"facts","trace-cards"],[1,"overview-panel","limit-panel"],[1,"overview-panel","session-details"],["label","Explain reasoning",3,"text"],[1,"overview-panel","session-triage"],["label","Explain triage labels",3,"text"],[1,"badge-row"],[1,"triage-badge",3,"ngClass"],[3,"text","label"],["text","This is a quick snapshot. The full Calls timeline shows every model request, user-prompt markers, rises, drops, and links back to Trace.","label","Explain context snapshot"],[1,"limit-snapshot"],["type","button",1,"open-calls-timeline",3,"click"],[1,"limit-facts"]],template:function(e,i){if(e&1&&(s(0,"section",0)(1,"section",1)(2,"div",2)(3,"span"),l(4,"At a glance"),a(),s(5,"h3"),l(6,"Evidence"),a()(),s(7,"div",3)(8,"div")(9,"span"),l(10,"Model calls"),a(),s(11,"strong"),l(12),h(13,"number"),a()(),s(14,"div")(15,"span"),l(16,"Tool calls"),a(),s(17,"strong"),l(18),h(19,"number"),a()(),s(20,"div")(21,"span"),l(22,"Errors"),a(),s(23,"strong"),l(24),h(25,"number"),a()(),s(26,"div")(27,"span"),l(28,"Raw events"),a(),s(29,"strong"),l(30),h(31,"number"),a()(),b(32,Qc,6,2,"div"),a()(),b(33,td,1,1),a(),b(34,nd,36,13,"section",4),s(35,"section",5)(36,"div",2)(37,"span"),l(38,"Metadata"),a(),s(39,"h3"),l(40,"Session details"),a()(),s(41,"dl")(42,"div")(43,"dt"),l(44,"Type"),a(),s(45,"dd"),l(46),a()(),s(47,"div")(48,"dt"),l(49,"Location"),a(),s(50,"dd"),l(51),a()(),s(52,"div")(53,"dt"),l(54,"Status"),a(),s(55,"dd"),l(56),a()(),s(57,"div")(58,"dt"),l(59,"Created"),a(),s(60,"dd"),l(61),h(62,"date"),a()(),s(63,"div")(64,"dt"),l(65,"Last activity"),a(),s(66,"dd"),l(67),h(68,"date"),a()(),b(69,id,10,2),a()()),e&2){let o,r,c,p;d(12),C(x(13,13,i.session.traceSummary.modelTurns)),d(6),C(x(19,15,i.session.traceSummary.toolCalls)),d(6),C(x(25,17,i.session.traceSummary.errors)),d(6),C(x(31,19,i.session.traceSummary.totalEvents)),d(2),M((o=i.reasoningLabel())?32:-1,o),d(),M((r=i.triage)?33:-1,r),d(),M((c=i.limitRead())?34:-1,c),d(12),C(i.session.sessionType),d(5),C(i.session.location),d(5),C(i.session.status),d(5),C(S(62,21,i.session.startedAt,"M/d/yyyy, h:mm:ss a")),d(6),C(S(68,24,i.session.endedAt,"M/d/yyyy, h:mm:ss a")),d(2),M((p=i.session.vscodeState)?69:-1,p)}},dependencies:[we,ye,Fe,re],styles:["[_nghost-%COMP%]{display:grid;gap:10px}.overview-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:10px;align-items:stretch}.overview-panel[_ngcontent-%COMP%]{display:grid;gap:10px;min-width:0;border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--surface)}.evidence-panel[_ngcontent-%COMP%]:only-child{grid-column:1 / -1}.panel-title[_ngcontent-%COMP%]{display:grid;gap:2px}.panel-title[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:var(--muted-2);font-size:10px;font-weight:760;letter-spacing:.08em;text-transform:uppercase}.panel-title[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:5px;margin:0;color:var(--text-strong);font-size:15px;font-weight:760}.facts[_ngcontent-%COMP%]{display:grid;gap:8px}.trace-cards[_ngcontent-%COMP%]{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.facts[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{display:grid;gap:4px;min-width:0;border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--surface-soft)}.facts[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .session-details[_ngcontent-%COMP%] dt[_ngcontent-%COMP%]{color:var(--muted);font-size:12px}.facts[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--text-strong);font-size:18px;font-weight:760;line-height:1.1;overflow-wrap:anywhere}.session-triage[_ngcontent-%COMP%]{align-content:start;background:linear-gradient(135deg,rgba(255,186,74,.08),transparent 60%),var(--surface)}.badge-row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:flex-start;align-content:flex-start;gap:6px}.triage-badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:5px;width:fit-content;max-width:100%;border:1px solid var(--line);border-radius:999px;padding:4px 8px;background:#ffffff0f;color:var(--text);font-size:11px;font-weight:720;line-height:1.2}.triage-badge.medium[_ngcontent-%COMP%]{border-color:#ffba4a6b;background:#ffba4a1f;color:var(--warning-text, #ffe0a0)}.triage-badge.high[_ngcontent-%COMP%]{border-color:#f0795a6b;background:#f0795a24;color:var(--danger-text, #ffc2b4)}.session-details[_ngcontent-%COMP%]{gap:12px}.limit-panel[_ngcontent-%COMP%]{position:relative;overflow:hidden;background:radial-gradient(circle at 92% 0%,rgba(111,92,255,.1),transparent 34%),linear-gradient(135deg,#27d6b013,#6f5cff0a),var(--surface)}.limit-snapshot[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center}.limit-snapshot[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:first-child{display:grid;gap:4px;min-width:0}.limit-snapshot[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .limit-facts[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:var(--muted);font-size:12px}.limit-snapshot[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:first-child > span[_ngcontent-%COMP%]{color:var(--accent-2);font-size:10px;font-weight:760;letter-spacing:.08em;text-transform:uppercase}.limit-snapshot[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--text-strong);font-size:17px;font-weight:780;line-height:1.08}.limit-snapshot[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{max-width:880px;margin:0;color:var(--text);font-size:12px;line-height:1.45}.open-calls-timeline[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;min-height:32px;border:1px solid rgba(31,209,165,.35);border-radius:999px;padding:0 12px;background:var(--teal-soft);color:var(--success-text, #bbfff0);font:inherit;font-size:12px;font-weight:780;white-space:nowrap;box-shadow:var(--shadow-soft, none);cursor:pointer}.open-calls-timeline[_ngcontent-%COMP%]:hover, .open-calls-timeline[_ngcontent-%COMP%]:focus-visible{border-color:var(--accent-2);outline:none;background:#1fd1a52e}.limit-facts[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.limit-facts[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{display:grid;gap:3px;min-width:0;border:1px solid var(--line);border-radius:9px;padding:8px 9px;background:color-mix(in srgb,var(--surface-soft) 84%,transparent)}.limit-facts[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--text-strong);font-size:15px;font-weight:760;line-height:1.1;overflow-wrap:anywhere}.session-details[_ngcontent-%COMP%] dl[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0}.session-details[_ngcontent-%COMP%] dl[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{display:grid;gap:4px;min-width:0;border:1px solid var(--line);border-radius:10px;padding:9px 10px;background:var(--surface-soft)}.session-details[_ngcontent-%COMP%] dt[_ngcontent-%COMP%], .session-details[_ngcontent-%COMP%] dd[_ngcontent-%COMP%]{margin:0}.session-details[_ngcontent-%COMP%] dd[_ngcontent-%COMP%]{color:var(--text);font-size:12px;font-weight:680;overflow-wrap:anywhere}.theme-light[_nghost-%COMP%] .overview-panel[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .overview-panel[_ngcontent-%COMP%]{background:linear-gradient(180deg,#ffffffb8,#ffffff6b),var(--surface);box-shadow:var(--shadow-soft)}.theme-light[_nghost-%COMP%] .facts[_ngcontent-%COMP%] > div[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .facts[_ngcontent-%COMP%] > div[_ngcontent-%COMP%], .theme-light[_nghost-%COMP%] .session-details[_ngcontent-%COMP%] dl[_ngcontent-%COMP%] > div[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .session-details[_ngcontent-%COMP%] dl[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{background:#ffffff9e}.theme-light[_nghost-%COMP%] .session-triage[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .session-triage[_ngcontent-%COMP%]{background:radial-gradient(circle at 100% 0%,rgba(255,186,74,.13),transparent 34%),var(--surface)}.theme-light[_nghost-%COMP%] .limit-panel[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .limit-panel[_ngcontent-%COMP%]{background:radial-gradient(circle at 88% 0%,rgba(111,92,255,.1),transparent 32%),linear-gradient(135deg,#0c9f8313,#6f5cff09),var(--surface)}.theme-light[_nghost-%COMP%] .limit-facts[_ngcontent-%COMP%] > div[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .limit-facts[_ngcontent-%COMP%] > div[_ngcontent-%COMP%], .theme-light[_nghost-%COMP%] .open-calls-timeline[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .open-calls-timeline[_ngcontent-%COMP%]{background:#ffffff9e}.theme-light[_nghost-%COMP%] .triage-badge[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .triage-badge[_ngcontent-%COMP%]{background:#ffffffb8}@media(max-width:1050px){.overview-grid[_ngcontent-%COMP%], .session-details[_ngcontent-%COMP%] dl[_ngcontent-%COMP%]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.overview-grid[_ngcontent-%COMP%], .trace-cards[_ngcontent-%COMP%], .session-details[_ngcontent-%COMP%] dl[_ngcontent-%COMP%], .limit-facts[_ngcontent-%COMP%], .limit-snapshot[_ngcontent-%COMP%]{grid-template-columns:1fr}}"]})};var od=(n,t)=>t.value,rd=(n,t)=>t.label;function ad(n,t){if(n&1&&(s(0,"strong"),l(1),a()),n&2){let e=m();d(),v("",e.activeFilterCount()," active")}}function sd(n,t){if(n&1&&(s(0,"option",9),l(1),a()),n&2){let e=t.$implicit;P("value",e.value),d(),C(e.label)}}function ld(n,t){if(n&1&&(s(0,"option",9),l(1),a()),n&2){let e=t.$implicit;P("value",e),d(),C(e==="all"?"All workspaces":e)}}function cd(n,t){if(n&1&&(s(0,"option",9),l(1),a()),n&2){let e=t.$implicit;P("value",e),d(),C(e==="all"?"All models":e)}}function dd(n,t){if(n&1&&(s(0,"option",9),l(1),a()),n&2){let e=t.$implicit;P("value",e),d(),C(e==="all"?"All sizes":e)}}function pd(n,t){if(n&1&&(s(0,"option",9),l(1),a()),n&2){let e=t.$implicit;P("value",e),d(),C(e==="all"?"All signals":e)}}function ud(n,t){if(n&1&&(s(0,"span",19),l(1),a()),n&2){let e=t.$implicit;P("ngClass",e.tone),d(),v(" ",e.label," ")}}function gd(n,t){if(n&1&&(s(0,"span",16)(1,"span",19),l(2),a(),j(3,ud,2,2,"span",19,rd),a()),n&2){let e=t;d(),P("ngClass",e.sizeTone),d(),v(" ",e.size," "),d(),B(e.warnings.slice(0,1))}}function md(n,t){if(n&1){let e=H();s(0,"button",13),w("click",function(){let o=E(e).$implicit,r=m();return k(r.selectSession.emit(o))}),s(1,"span",14),l(2),a(),s(3,"span",15),l(4),a(),b(5,gd,5,2,"span",16),s(6,"span",17)(7,"span"),l(8),h(9,"date"),a(),s(10,"strong"),l(11),h(12,"number"),a()(),s(13,"span",18),l(14),a()()}if(n&2){let e,i=t.$implicit,o=m();q("active",o.selectedSessionId===i.id),d(2),C(i.firstPrompt),d(2),W("",i.workspace," \xB7 ",i.model),d(),M((e=o.sessionTriage(i))?5:-1,e),d(3),C(S(9,9,i.startedAt,"MMM d, HH:mm")),d(3),v("$",S(12,12,o.usageUsd(i),"1.2-2")),d(3),C(o.sourceKindLabel(i.sourceKind))}}function hd(n,t){n&1&&(s(0,"p",12),l(1,"No sessions match these filters."),a())}var qn=class n{sessions=[];filteredSessions=[];selectedSessionId=null;query="";sizeFilter="all";warningFilter="all";workspaceFilter="all";modelFilter="all";timeFilter="all";warningOptions=[];sizeOptions=[];workspaceOptions=[];modelOptions=[];timeOptions=[];queryChange=new $;sizeFilterChange=new $;warningFilterChange=new $;workspaceFilterChange=new $;modelFilterChange=new $;timeFilterChange=new $;selectSession=new $;closeRail=new $;activeFilterCount(){return[this.timeFilter,this.workspaceFilter,this.modelFilter,this.sizeFilter,this.warningFilter].filter(t=>t!=="all").length}sessionTriage(t){return ut(t)}sourceKindLabel(t){return t==="vscode-copilot-debug-log"?"Debug log":t==="vscode-chat-session-snapshot"?"Chat snapshot":t}usageUsd(t){return Oe(t)}trackBySessionId(t,e){return e.id}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=ee({type:n,selectors:[["app-session-rail"]],inputs:{sessions:"sessions",filteredSessions:"filteredSessions",selectedSessionId:"selectedSessionId",query:"query",sizeFilter:"sizeFilter",warningFilter:"warningFilter",workspaceFilter:"workspaceFilter",modelFilter:"modelFilter",timeFilter:"timeFilter",warningOptions:"warningOptions",sizeOptions:"sizeOptions",workspaceOptions:"workspaceOptions",modelOptions:"modelOptions",timeOptions:"timeOptions"},outputs:{queryChange:"queryChange",sizeFilterChange:"sizeFilterChange",warningFilterChange:"warningFilterChange",workspaceFilterChange:"workspaceFilterChange",modelFilterChange:"modelFilterChange",timeFilterChange:"timeFilterChange",selectSession:"selectSession",closeRail:"closeRail"},decls:53,vars:10,consts:[[1,"sidebar"],[1,"sidebar-header"],["type","button","aria-label","Close session browser",1,"sidebar-close",3,"click"],[1,"search"],["type","search","placeholder","Prompt, repo, model, tag",3,"ngModelChange","ngModel"],["open","",1,"filter-disclosure"],["aria-label","Session filters",1,"filters"],[1,"wide"],[3,"ngModelChange","ngModel"],[3,"value"],[1,"session-list"],["type","button",1,"session-card",3,"active"],[1,"empty","dark"],["type","button",1,"session-card",3,"click"],[1,"session-title"],[1,"session-meta"],[1,"badge-row","compact"],[1,"session-footer"],[1,"session-scan"],[1,"triage-badge",3,"ngClass"]],template:function(e,i){e&1&&(s(0,"aside",0)(1,"header",1)(2,"div")(3,"strong"),l(4,"Sessions"),a(),s(5,"span"),l(6),a()(),s(7,"button",2),w("click",function(){return i.closeRail.emit()}),l(8,"\xD7"),a()(),s(9,"label",3)(10,"span"),l(11,"Search"),a(),s(12,"input",4),w("ngModelChange",function(r){return i.queryChange.emit(r)}),a()(),s(13,"details",5)(14,"summary")(15,"span"),l(16,"Filters"),a(),b(17,ad,2,1,"strong"),a(),s(18,"div",6)(19,"label",7)(20,"span"),l(21,"Time"),a(),s(22,"select",8),w("ngModelChange",function(r){return i.timeFilterChange.emit(r)}),j(23,sd,2,2,"option",9,od),a()(),s(25,"label",7)(26,"span"),l(27,"Workspace"),a(),s(28,"select",8),w("ngModelChange",function(r){return i.workspaceFilterChange.emit(r)}),j(29,ld,2,2,"option",9,bt),a()(),s(31,"label",7)(32,"span"),l(33,"Model"),a(),s(34,"select",8),w("ngModelChange",function(r){return i.modelFilterChange.emit(r)}),j(35,cd,2,2,"option",9,bt),a()(),s(37,"label")(38,"span"),l(39,"Size"),a(),s(40,"select",8),w("ngModelChange",function(r){return i.sizeFilterChange.emit(r)}),j(41,dd,2,2,"option",9,bt),a()(),s(43,"label")(44,"span"),l(45,"Signal"),a(),s(46,"select",8),w("ngModelChange",function(r){return i.warningFilterChange.emit(r)}),j(47,pd,2,2,"option",9,bt),a()()()(),s(49,"div",10),j(50,md,15,15,"button",11,i.trackBySessionId,!0,hd,2,0,"p",12),a()()),e&2&&(d(6),W("",i.filteredSessions.length," of ",i.sessions.length),d(6),P("ngModel",i.query),d(5),M(i.activeFilterCount()?17:-1),d(5),P("ngModel",i.timeFilter),d(),B(i.timeOptions),d(5),P("ngModel",i.workspaceFilter),d(),B(i.workspaceOptions),d(5),P("ngModel",i.modelFilter),d(),B(i.modelOptions),d(5),P("ngModel",i.sizeFilter),d(),B(i.sizeOptions),d(5),P("ngModel",i.warningFilter),d(),B(i.warningOptions),d(3),B(i.filteredSessions))},dependencies:[or,nr,ir,Qo,tr,Zo,er,ye,Fe,re],styles:["[_nghost-%COMP%]{display:block;min-width:0}.sidebar[_ngcontent-%COMP%]{position:sticky;top:58px;display:flex;flex-direction:column;gap:14px;align-self:start;min-width:0;height:calc(100vh - 58px);min-height:0;border-right:1px solid var(--line);padding:14px;background:var(--rail);color:var(--text);scrollbar-color:var(--scrollbar, #34475e) transparent}.sidebar-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px}.sidebar-header[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{display:flex;align-items:baseline;gap:8px}.sidebar-header[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--text-strong);font-size:14px}.sidebar-header[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:var(--muted);font-size:11px}.sidebar-close[_ngcontent-%COMP%]{display:none;width:32px;height:32px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);color:var(--text);font:inherit;font-size:20px;line-height:1;cursor:pointer}.filter-disclosure[_ngcontent-%COMP%]{border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--surface-soft) 76%,transparent)}.filter-disclosure[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;color:var(--text);font-size:11px;font-weight:780;cursor:pointer}.filter-disclosure[_ngcontent-%COMP%] summary[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--accent-2);font-size:10px}.filter-disclosure[_ngcontent-%COMP%] .filters[_ngcontent-%COMP%]{padding:0 8px 8px}.search[_ngcontent-%COMP%], .filters[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{display:grid;gap:6px;color:var(--muted);font-size:12px}.search[_ngcontent-%COMP%] input[_ngcontent-%COMP%], .filters[_ngcontent-%COMP%] select[_ngcontent-%COMP%]{width:100%;min-height:34px;border:1px solid var(--line);border-radius:9px;padding:7px 10px;background:var(--surface-soft);color:var(--text);font:inherit;font-size:13px}.filters[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.filters[_ngcontent-%COMP%] .wide[_ngcontent-%COMP%]{grid-column:1 / -1}.filter-count[_ngcontent-%COMP%]{margin:-2px 0 0;color:var(--muted-2);font-size:12px}.session-list[_ngcontent-%COMP%]{display:grid;gap:8px;min-height:0;min-width:0;overflow:auto}.session-card[_ngcontent-%COMP%]{display:grid;gap:6px;width:100%;min-width:0;border:1px solid var(--line);border-radius:11px;padding:11px;background:var(--session-card-bg, var(--surface));color:inherit;text-align:left;cursor:pointer;transition:border-color .14s ease,background .14s ease,box-shadow .14s ease,transform .14s ease}.session-card[_ngcontent-%COMP%]:hover{border-color:var(--line-strong);background:var(--session-card-hover, var(--surface-raised));transform:translateY(-1px)}.session-card.active[_ngcontent-%COMP%]{border-color:var(--accent);background:var(--session-card-active, var(--surface-soft));box-shadow:0 0 0 2px var(--accent-soft)}.session-card[_ngcontent-%COMP%]:focus-visible, .search[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus-visible, .filters[_ngcontent-%COMP%] select[_ngcontent-%COMP%]:focus-visible{outline:2px solid rgba(39,214,176,.75);outline-offset:2px}.session-title[_ngcontent-%COMP%]{display:-webkit-box;color:var(--text-strong);font-size:13px;font-weight:680;line-height:1.28;overflow:hidden;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2}.session-meta[_ngcontent-%COMP%], .session-footer[_ngcontent-%COMP%], .session-scan[_ngcontent-%COMP%]{color:var(--muted);font-size:12px;overflow-wrap:anywhere}.session-footer[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:16px}.session-footer[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--text-strong)}.badge-row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:7px}.triage-badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:5px;width:fit-content;border:1px solid var(--line);border-radius:999px;padding:3px 7px;background:var(--surface-soft);color:var(--text);font-size:11px;font-weight:720}.triage-badge.medium[_ngcontent-%COMP%]{border-color:#ffba4a73;background:#ffba4a1f;color:var(--warning-text, #ffe0a0)}.triage-badge.high[_ngcontent-%COMP%]{border-color:#ff6b5f80;background:#ff6b5f1f;color:var(--danger-text, #ffc2bd)}.theme-light[_nghost-%COMP%] .sidebar[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .sidebar[_ngcontent-%COMP%]{background:radial-gradient(circle at 0% 0%,rgba(12,159,131,.09),transparent 32%),linear-gradient(180deg,#ffffffb8,#fff3),var(--rail)}.theme-light[_nghost-%COMP%] .search[_ngcontent-%COMP%] input[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .search[_ngcontent-%COMP%] input[_ngcontent-%COMP%], .theme-light[_nghost-%COMP%] .filters[_ngcontent-%COMP%] select[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .filters[_ngcontent-%COMP%] select[_ngcontent-%COMP%]{background:#ffffffd1;box-shadow:0 1px #ffffffe6 inset}.theme-light[_nghost-%COMP%] .session-card[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .session-card[_ngcontent-%COMP%]{box-shadow:0 8px 20px #1f2d400e}.theme-light[_nghost-%COMP%] .session-card[_ngcontent-%COMP%]:hover, .theme-light [_nghost-%COMP%] .session-card[_ngcontent-%COMP%]:hover{box-shadow:0 12px 26px #1f2d4017}.theme-light[_nghost-%COMP%] .session-card.active[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .session-card.active[_ngcontent-%COMP%]{border-color:#6f5cff80;box-shadow:0 0 0 2px #6f5cff1f,0 14px 30px #1f2d401a}.empty[_ngcontent-%COMP%]{margin:0;color:var(--muted)}.sidebar[_ngcontent-%COMP%]::-webkit-scrollbar, .session-list[_ngcontent-%COMP%]::-webkit-scrollbar{width:10px;height:10px}.sidebar[_ngcontent-%COMP%]::-webkit-scrollbar-thumb, .session-list[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{border:3px solid transparent;border-radius:999px;background:var(--scrollbar, #34475e);background-clip:padding-box}@media(max-width:900px){[_nghost-%COMP%]{position:fixed;inset:0 auto 0 0;z-index:100;width:min(380px,92vw);transform:translate(-104%);transition:transform .18s ease}.rail-open[_nghost-%COMP%], .rail-open [_nghost-%COMP%]{transform:translate(0)}.sidebar[_ngcontent-%COMP%]{position:static;height:100%;max-height:none;border:0;border-right:1px solid var(--line);padding:14px;overflow:hidden;box-shadow:18px 0 50px #040a1247}.sidebar-close[_ngcontent-%COMP%]{display:grid;place-items:center}.session-list[_ngcontent-%COMP%]{max-height:none}}@media(max-width:600px){.session-card[_ngcontent-%COMP%]{gap:5px;padding:10px}.session-title[_ngcontent-%COMP%]{font-size:14px}.session-meta[_ngcontent-%COMP%], .session-card[_ngcontent-%COMP%] .badge-row[_ngcontent-%COMP%]{display:none}.session-footer[_ngcontent-%COMP%]{gap:8px;font-size:12px}}"]})};var fd=(n,t)=>t.value,Da=(n,t)=>t.index,Aa=(n,t)=>t.label,_d=(n,t)=>t.title;function Cd(n,t){if(n&1){let e=H();s(0,"button",4),w("click",function(){let o=E(e).$implicit,r=m(2);return k(r.traceFilterChange.emit(o.value))}),l(1),a()}if(n&2){let e=t.$implicit,i=m(2);q("active",i.traceFilter===e.value),d(),v(" ",e.label," ")}}function vd(n,t){n&1&&l(0," \xB7 opened from Calls ")}function xd(n,t){if(n&1&&(s(0,"dl")(1,"div")(2,"dt"),l(3,"Tokens"),a(),s(4,"dd"),l(5),h(6,"number"),a()(),s(7,"div")(8,"dt"),l(9,"Estimate"),a(),s(10,"dd"),l(11),h(12,"number"),a()(),s(13,"div")(14,"dt"),l(15,"Status"),a(),s(16,"dd"),l(17),a()()()),n&2){let e=t,i=m();d(5),C(e.hasCost?x(6,3,e.totalTokens):"n/a"),d(6),C(e.hasCost?"$"+S(12,5,e.estimatedUsd,"1.6-6"):"No token cost"),d(6),C(i.status)}}function bd(n,t){if(n&1&&(s(0,"section",8)(1,"div")(2,"span"),l(3," Selected event "),b(4,vd,1,0),a(),s(5,"strong"),l(6),a(),s(7,"em"),l(8),h(9,"date"),a()(),b(10,xd,18,8,"dl"),a()),n&2){let e,i=t,o=m(2);P("ngClass",o.eventKind(i)),d(4),M(o.openedFromTurns?4:-1),d(2),W("#",i.index," \xB7 ",i.name),d(2),Ye("",S(9,8,i.timestamp,"HH:mm:ss")," \xB7 ",o.eventKindLabel(i)," \xB7 ",i.type),d(2),M((e=o.selectedTraceEventDetails)?10:-1,e)}}function Md(n,t){if(n&1&&(s(0,"b"),l(1),h(2,"number"),a()),n&2){let e=m(2).$implicit;d(),v("",x(2,1,e.cachedInputTokens)," cached in")}}function Pd(n,t){if(n&1&&(s(0,"b"),l(1),h(2,"number"),a()),n&2){let e=m(2).$implicit;d(),v("",x(2,1,e.cacheWriteTokens)," cache write")}}function yd(n,t){if(n&1&&(s(0,"em",16)(1,"strong"),l(2),h(3,"number"),a(),s(4,"span"),l(5),h(6,"number"),b(7,Md,3,3,"b"),b(8,Pd,3,3,"b"),s(9,"b"),l(10),h(11,"number"),a()()()),n&2){let e=m().$implicit,i=m(2);d(2),v("",x(3,5,e.totalTokens??e.inputTokens+e.outputTokens+(e.cacheWriteTokens??0))," tokens"),d(3),v(" ",x(6,7,i.normalInputTokens(e))," normal in "),d(2),M(e.cachedInputTokens?7:-1),d(),M(e.cacheWriteTokens?8:-1),d(2),v("",x(11,9,e.outputTokens)," out")}}function Od(n,t){if(n&1&&(s(0,"em"),l(1),a()),n&2){let e=m().$implicit;d(),C(e.type)}}function wd(n,t){if(n&1){let e=H();s(0,"button",14),w("click",function(){let o=E(e).$implicit,r=m(2);return k(r.selectTraceEvent.emit(o))}),s(1,"span",15),l(2),h(3,"date"),a(),s(4,"strong"),l(5),s(6,"small"),l(7),a()(),s(8,"p"),l(9),a(),b(10,yd,12,11,"em",16)(11,Od,2,1,"em"),a()}if(n&2){let e=t.$implicit,i=m(2);q("active",(i.selectedTraceEvent==null?null:i.selectedTraceEvent.index)===e.index),P("ngClass",i.eventRowClass(e)),Pe("data-trace-event-index",e.index),d(2),W("",S(3,10,e.timestamp,"HH:mm:ss")," \xB7 #",e.index),d(3),v(" ",e.name," "),d(2),C(i.eventKindLabel(e)),d(2),C(e.detail),d(),M(e.inputTokens||e.outputTokens?10:11)}}function Sd(n,t){n&1&&(s(0,"p",12),l(1,"No trace events match this filter."),a())}function Td(n,t){n&1&&(s(0,"strong"),l(1,"Opened from Calls"),a())}function Ed(n,t){if(n&1){let e=H();s(0,"div",18)(1,"button",4),w("click",function(){let o=E(e),r=m(),c=m(2);return k(c.copyEventDetail(r,o))}),l(2),a(),s(3,"button",4),w("click",function(){E(e);let o=m(),r=m(2);return k(r.copyEventJson(o))}),l(4),a()()}if(n&2){let e=m(3);d(2),v(" ",e.copiedTarget()==="detail"?"Copied":"Copy detail"," "),d(2),v(" ",e.copiedTarget()==="json"?"Copied":"Copy JSON"," ")}}function kd(n,t){if(n&1&&(s(0,"div",21)(1,"dt"),l(2),a(),s(3,"dd"),l(4),a()()),n&2){let e=t.$implicit;P("ngClass",e.tone??"plain"),d(2),C(e.label),d(2),C(e.value)}}function Rd(n,t){if(n&1&&I(0,"i",31),n&2){let e=m(3),i=m(2);ke("width",i.cachedInputShare(e),"%")}}function Id(n,t){if(n&1&&(l(0),h(1,"number")),n&2){let e=m(3);v(" / ",x(1,1,e.cachedInputTokens)," cached input ")}}function Dd(n,t){if(n&1&&(l(0),h(1,"number")),n&2){let e=m(3);v(" / ",x(1,1,e.cacheWriteTokens)," cache write ")}}function Ad(n,t){if(n&1&&(s(0,"div",22)(1,"span"),l(2,"Input/cache/output split"),a(),s(3,"div"),I(4,"i",28),b(5,Rd,1,2,"i",29),I(6,"i",30),a(),s(7,"p"),l(8),h(9,"number"),b(10,Id,2,3),b(11,Dd,2,3),l(12),h(13,"number"),a()()),n&2){let e=m(2),i=m(2);d(4),ke("width",i.inputShare(e),"%"),d(),M(e.cachedInputTokens?5:-1),d(3),v(" ",x(9,7,i.normalInputTokens(e))," normal input "),d(2),M(e.cachedInputTokens?10:-1),d(),M(e.cacheWriteTokens?11:-1),d(),v(" / ",x(13,9,e.outputTokens)," output ")}}function Nd(n,t){if(n&1&&(s(0,"p",23),l(1),a()),n&2){let e=m();d(),v("Fallback pricing row: ",e.pricingModel)}}function Fd(n,t){if(n&1&&(s(0,"div")(1,"dt"),l(2),a(),s(3,"dd"),l(4),a()()),n&2){let e=t.$implicit;d(2),C(e.label),d(2),C(e.value)}}function Ld(n,t){if(n&1&&(s(0,"section",25)(1,"h5"),l(2),a(),s(3,"dl",32),j(4,Fd,5,2,"div",null,Aa),a()()),n&2){let e=t.$implicit;d(2),C(e.title),d(2),B(e.fields)}}function Ud(n,t){if(n&1&&(s(0,"section",19)(1,"span"),l(2),a(),s(3,"p"),l(4),a(),s(5,"dl",20),j(6,kd,5,3,"div",21,Aa),a(),b(8,Ad,14,11,"div",22),b(9,Nd,2,1,"p",23),a(),s(10,"div",24),j(11,Ld,6,1,"section",25,_d),a(),s(13,"section",26)(14,"h5"),l(15),a(),s(16,"p"),l(17),a()(),s(18,"details",27)(19,"summary")(20,"span"),l(21,"Normalized event JSON"),a(),s(22,"em"),l(23,"Imported fields only, not the full VS Code raw payload."),a()(),s(24,"pre"),l(25),a()()),n&2){let e=t,i=m(),o=m(2);P("ngClass",o.inspectorMode(i)),d(2),C(o.inspectorHeadline(i,e)),d(2),C(o.inspectorHint(i,e)),d(2),B(o.primaryFacts(i,e)),d(2),M(e.hasCost&&o.eventKind(i)==="model-call"?8:-1),d(),M(e.usesFallbackPrice?9:-1),d(2),B(o.groupedFields(e)),d(4),C(o.detailHeading(i)),d(2),C(e.detail),d(8),C(o.eventJson(i))}}function zd(n,t){if(n&1&&(s(0,"div",17)(1,"span"),l(2),a(),s(3,"div")(4,"h4"),l(5),a(),s(6,"p"),l(7),b(8,Td,2,0,"strong"),a()(),b(9,Ed,5,2,"div",18),a(),b(10,Ud,26,8)),n&2){let e,i,o=t,r=m(2);d(2),v("#",o.index),d(3),C(o.name),d(2),W(" ",r.eventKindLabel(o)," \xB7 ",o.type," "),d(),M(r.openedFromTurns?8:-1),d(),M((e=r.selectedTraceEventDetails)?9:-1,e),d(),M((i=r.selectedTraceEventDetails)?10:-1,i)}}function jd(n,t){n&1&&(s(0,"p",12),l(1,"Select a trace event to inspect it."),a())}function Bd(n,t){if(n&1&&(s(0,"div",6),j(1,Cd,2,3,"button",7,fd),a(),b(3,bd,11,11,"section",8),s(4,"div",9)(5,"div",10),j(6,wd,12,13,"button",11,Da,!1,Sd,2,0,"p",12),a(),s(9,"aside",13),b(10,zd,11,7)(11,jd,2,0,"p",12),a()()),n&2){let e,i,o=m();d(),B(o.traceFilterOptions),d(2),M((e=o.selectedTraceEvent)?3:-1,e),d(3),B(o.filteredTraceEvents),d(4),M((i=o.selectedTraceEvent)?10:11,i)}}function Vd(n,t){if(n&1&&(s(0,"em"),l(1),h(2,"number"),h(3,"number"),a()),n&2){let e=m().$implicit;d(),W("",x(2,2,e.totalTokens)," tokens \xB7 about $",S(3,4,e.estimatedUsd,"1.6-6"))}}function $d(n,t){if(n&1&&(s(0,"article",33)(1,"span"),l(2),a(),s(3,"div")(4,"strong"),l(5),a(),b(6,Vd,4,7,"em"),a(),s(7,"p"),l(8),a()()),n&2){let e=t.$implicit;P("ngClass",e.type),d(2),C(e.flowIndex),d(3),C(e.type),d(),M(e.totalTokens?6:-1),d(2),C(e.detail)}}function Hd(n,t){if(n&1&&(s(0,"div",5),j(1,$d,9,5,"article",33,Da),a()),n&2){let e=m();d(),B(e.flowEvents)}}var Wn=class n{elementRef=y(Po);pendingScrollIndex=null;copiedTarget=L(null);traceView;traceFilter;traceFilterOptions;filteredTraceEvents;selectedTraceEvent=null;selectedTraceEventDetails=null;openedFromTurns=!1;flowEvents;traceViewChange=new $;traceFilterChange=new $;selectTraceEvent=new $;ngOnChanges(t){(t.selectedTraceEvent||t.openedFromTurns)&&this.openedFromTurns&&this.selectedTraceEvent&&(this.pendingScrollIndex=this.selectedTraceEvent.index)}ngAfterViewChecked(){if(this.pendingScrollIndex===null)return;let t=this.pendingScrollIndex;this.pendingScrollIndex=null;let e=this.elementRef.nativeElement.querySelector(`[data-trace-event-index="${t}"]`);typeof e?.scrollIntoView=="function"&&e.scrollIntoView({block:"center"})}eventRowClass(t){return[this.eventKind(t),t.inputTokens||t.outputTokens?"token-bearing":"",t.status!=="ok"&&t.status!=="unknown"?"error":"",t.type==="user_message"?"user-message":""].filter(Boolean)}eventKind(t){return t.inputTokens||t.outputTokens||t.type==="llm_request"||t.type.toLowerCase().includes("model")||t.model||t.rawModel||this.modelLikeText(t.name)||this.modelLikeText(t.detail)?"model-call":t.type.includes("tool")||this.toolLikeName(t.name)?"tool-call":t.type==="user_message"?"user-message":t.type==="agent_response"||t.type==="assistant.message"?"agent-response":ao(t)?"discovery":"trace-event"}eventKindLabel(t){let e=this.eventKind(t);return e==="model-call"?"Model":e==="tool-call"?"Tool":e==="user-message"?"User":e==="agent-response"?"Response":e==="discovery"?"Discovery":"Event"}groupedFields(t){let e=[{title:"Timing",fields:[]},{title:"Model",fields:[]},{title:"Tokens",fields:[]},{title:"Pricing",fields:[]},{title:"Payload",fields:[]}];for(let i of t.normalizedFields)this.groupForField(i.label,e).fields.push(i);return t.attributeFields.length&&e.find(i=>i.title==="Payload")?.fields.push(...t.attributeFields),e.filter(i=>i.fields.length)}eventJson(t){return JSON.stringify(t,null,2)}copyEventDetail(t,e){this.copyText(e.detail||t.detail||"","detail")}copyEventJson(t){this.copyText(this.eventJson(t),"json")}inspectorMode(t){return this.eventKind(t)}inspectorHeadline(t,e){let i=this.eventKind(t);return i==="model-call"?e.hasCost?"Cost-bearing model call":"Model event without token totals":i==="tool-call"?"Tool activity":i==="user-message"?"User prompt event":i==="agent-response"?"Agent response event":i==="discovery"?"Discovery or setup event":"Raw trace event"}inspectorHint(t,e){let i=this.eventKind(t);return i==="model-call"?e.hasCost?"This is the event priced by Cost and opened from Calls.":"This event is model-related, but the imported row does not include token totals.":i==="tool-call"?"Tool calls are not priced directly here. Their results may affect later model input if sent back as context.":i==="user-message"?"This records the user message boundary. Cost appears on later model-call events.":i==="agent-response"?"This records the assistant response payload. Token cost is tied to the corresponding model-call event.":i==="discovery"?"Setup/discovery events explain environment work, but usually do not carry direct token cost.":"Inspect the normalized fields and raw JSON when you need source-level evidence."}primaryFacts(t,e){let i=this.eventKind(t);return i==="model-call"?[{label:"Estimate",value:e.hasCost?`$${this.formatCost(e.estimatedUsd)}`:"No token cost",tone:e.hasCost?"cost":"plain"},{label:"Total tokens",value:e.hasCost?e.totalTokens.toLocaleString():"n/a"},{label:"Normal input",value:this.normalInputTokens(t).toLocaleString()},...t.cachedInputTokens?[{label:"Cached input",value:t.cachedInputTokens.toLocaleString(),tone:"cost"}]:[],...t.cacheWriteTokens?[{label:"Cache write",value:t.cacheWriteTokens.toLocaleString(),tone:"cost"}]:[],{label:"Output",value:t.outputTokens?t.outputTokens.toLocaleString():"0"},...t.reasoningEffort?[{label:"Reasoning",value:t.reasoningEffort,tone:"plain"}]:[],{label:"Pricing row",value:e.pricingModel||"n/a"}]:i==="tool-call"?[{label:"Tool/event",value:t.name,tone:"tool"},{label:"Status",value:t.status},{label:"Payload fields",value:`${e.attributeFields.length}`},{label:"Direct cost",value:e.hasCost?`$${this.formatCost(e.estimatedUsd)}`:"None"}]:[{label:"Type",value:t.type},{label:"Status",value:t.status},{label:"Payload fields",value:`${e.attributeFields.length}`},{label:"Tokens",value:e.hasCost?e.totalTokens.toLocaleString():"n/a"}]}detailHeading(t){let e=this.eventKind(t);return e==="model-call"?"Model-call detail":e==="tool-call"?"Tool detail":e==="user-message"?"User message":e==="agent-response"?"Response detail":"Imported detail"}inputShare(t){let e=this.pricedTokenTotal(t);return e>0?this.normalInputTokens(t)/e*100:0}cachedInputShare(t){let e=this.pricedTokenTotal(t);return e>0?(t.cachedInputTokens??0)/e*100:0}outputShare(t){let e=this.pricedTokenTotal(t);return e>0?t.outputTokens/e*100:0}normalInputTokens(t){return Math.max(0,t.inputTokens-(t.cachedInputTokens??0))}pricedTokenTotal(t){return this.normalInputTokens(t)+(t.cachedInputTokens??0)+(t.cacheWriteTokens??0)+t.outputTokens}groupForField(t,e){let i=t.toLowerCase();return["raw index","timestamp","ttft"].includes(i)?e[0]:["type","name","status","model","raw model","reasoning text"].includes(i)?e[1]:i.includes("tokens")&&i!=="pricing row"?e[2]:i.includes("pricing")||i.includes("cost")?e[3]:e[4]}toolLikeName(t){return["read_file","list_dir","grep_search","semantic_search","fetch_webpage","apply_patch","run_in_terminal"].some(e=>t.toLowerCase().includes(e))}modelLikeText(t){let e=t.toLowerCase();return["gpt-","claude","gemini","o3","o4","llm_request","language model","copilotlanguagemodel"].some(i=>e.includes(i))}formatCost(t){return t.toLocaleString(void 0,{minimumFractionDigits:6,maximumFractionDigits:6})}async copyText(t,e){t.trim()&&(await navigator.clipboard.writeText(t),this.copiedTarget.set(e),window.setTimeout(()=>{this.copiedTarget()===e&&this.copiedTarget.set(null)},1600))}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=ee({type:n,selectors:[["app-session-trace"]],inputs:{traceView:"traceView",traceFilter:"traceFilter",traceFilterOptions:"traceFilterOptions",filteredTraceEvents:"filteredTraceEvents",selectedTraceEvent:"selectedTraceEvent",selectedTraceEventDetails:"selectedTraceEventDetails",openedFromTurns:"openedFromTurns",flowEvents:"flowEvents"},outputs:{traceViewChange:"traceViewChange",traceFilterChange:"traceFilterChange",selectTraceEvent:"selectTraceEvent"},features:[Jt],decls:16,vars:5,consts:[[1,"trace-tools"],[1,"trace-header"],[1,"eyebrow"],[1,"trace-actions"],["type","button",3,"click"],[1,"flow-chart"],["aria-label","Trace event filter",1,"trace-filter-row","segmented-control"],["type","button",3,"active"],["aria-label","Selected trace event",1,"selected-event-strip",3,"ngClass"],[1,"trace-workbench"],[1,"event-log"],["type","button",1,"event-row",3,"active","ngClass"],[1,"empty"],[1,"trace-inspector"],["type","button",1,"event-row",3,"click","ngClass"],[1,"event-time"],[1,"event-token-badge"],[1,"inspector-title"],["aria-label","Trace event actions",1,"inspector-actions"],[1,"inspector-lens",3,"ngClass"],[1,"inspector-primary-facts"],[3,"ngClass"],["aria-label","Model call token split",1,"inspector-token-split"],[1,"warning-text"],[1,"inspector-groups"],[1,"inspector-group"],[1,"inspector-detail"],[1,"raw-event"],[1,"input-bar"],[1,"cached-input-bar",3,"width"],[1,"output-bar"],[1,"cached-input-bar"],[1,"inspector-fields","compact"],[1,"flow-node",3,"ngClass"]],template:function(e,i){e&1&&(s(0,"section",0)(1,"div",1)(2,"div")(3,"p",2),l(4,"Step 3 \xB7 Verify"),a(),s(5,"h3"),l(6,"Inspect the source event"),a(),s(7,"p"),l(8,"Open the normalized debug-log event behind a turn or signal."),a()(),s(9,"div",3)(10,"button",4),w("click",function(){return i.traceViewChange.emit("logs")}),l(11," View Logs "),a(),s(12,"button",4),w("click",function(){return i.traceViewChange.emit("flow")}),l(13," Flow "),a()()(),b(14,Bd,12,3)(15,Hd,3,0,"div",5),a()),e&2&&(d(10),q("active",i.traceView==="logs"),d(2),q("active",i.traceView==="flow"),d(2),M(i.traceView==="logs"?14:15))},dependencies:[ye,Fe,re],styles:['[_nghost-%COMP%]{display:block}.trace-tools[_ngcontent-%COMP%]{display:grid;gap:14px}.trace-header[_ngcontent-%COMP%]{display:flex;gap:16px;align-items:start;justify-content:space-between}.eyebrow[_ngcontent-%COMP%]{margin:0;color:var(--muted-2);font-size:11px;font-weight:850;letter-spacing:0;text-transform:uppercase}.trace-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%], .trace-header[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0}.trace-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{color:var(--text-strong)}.trace-header[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:var(--muted)}.trace-filter-row[_ngcontent-%COMP%]{width:fit-content}.trace-actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:10px}.trace-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{border:1px solid var(--line);border-radius:6px;padding:8px 12px;background:var(--surface-soft);color:var(--text);font-weight:700;cursor:pointer}.trace-actions[_ngcontent-%COMP%] button.active[_ngcontent-%COMP%]{border-color:#1fd1a559;background:var(--teal-soft);color:var(--success-text, #bbfff0)}.segmented-control[_ngcontent-%COMP%]{display:inline-flex;flex:0 0 auto;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft)}.segmented-control[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{min-height:34px;border:0;border-right:1px solid var(--line);padding:7px 10px;background:transparent;color:var(--muted);font:inherit;font-size:13px;font-weight:800;cursor:pointer}.segmented-control[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:last-child{border-right:0}.segmented-control[_ngcontent-%COMP%] button.active[_ngcontent-%COMP%]{background:var(--accent);color:#fff}.trace-workbench[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(310px,.8fr);gap:14px;align-items:start}.selected-event-strip[_ngcontent-%COMP%]{position:sticky;top:68px;z-index:8;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;border:1px solid var(--line);border-left:4px solid var(--accent-2);border-radius:12px;padding:10px 12px;background:linear-gradient(90deg,rgba(31,209,165,.1),transparent 48%),var(--surface-raised);box-shadow:var(--shadow-soft, 0 14px 36px rgba(0, 0, 0, .24));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.selected-event-strip.model-call[_ngcontent-%COMP%]{border-left-color:#6f5cfff2;background:linear-gradient(90deg,rgba(111,92,255,.13),transparent 48%),var(--surface-raised)}.selected-event-strip.tool-call[_ngcontent-%COMP%]{border-left-color:#ffba4adb}.selected-event-strip[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:first-child{display:grid;gap:3px;min-width:0}.selected-event-strip[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .selected-event-strip[_ngcontent-%COMP%] em[_ngcontent-%COMP%], .selected-event-strip[_ngcontent-%COMP%] dt[_ngcontent-%COMP%]{color:var(--muted);font-size:11px;font-style:normal}.selected-event-strip[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px}.selected-event-strip[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--text-strong);overflow-wrap:anywhere}.selected-event-strip[_ngcontent-%COMP%] dl[_ngcontent-%COMP%]{display:flex;gap:8px;margin:0}.selected-event-strip[_ngcontent-%COMP%] dl[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{min-width:92px;border:1px solid var(--line);border-radius:9px;padding:7px 9px;background:#ffffff09}.selected-event-strip[_ngcontent-%COMP%] dt[_ngcontent-%COMP%], .selected-event-strip[_ngcontent-%COMP%] dd[_ngcontent-%COMP%]{margin:0}.selected-event-strip[_ngcontent-%COMP%] dd[_ngcontent-%COMP%]{color:var(--text-strong);font-size:12px;font-weight:820;overflow-wrap:anywhere}.event-log[_ngcontent-%COMP%]{display:grid;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface)}.event-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:76px 180px minmax(0,1fr) minmax(190px,.75fr);gap:12px;align-items:start;width:100%;border:0;border-left:4px solid transparent;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--surface-soft);text-align:left;font:inherit;cursor:pointer}.event-row[_ngcontent-%COMP%]:last-child{border-bottom:0}.event-row[_ngcontent-%COMP%]:hover, .event-row.active[_ngcontent-%COMP%]{background:#1fd1a514}.event-row.active[_ngcontent-%COMP%]{border-left-color:var(--accent-2);background:#1fd1a51a;box-shadow:inset 0 0 0 1px #1fd1a524}.event-row[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .event-row[_ngcontent-%COMP%] em[_ngcontent-%COMP%]{color:var(--muted);font-size:12px;font-style:normal}.event-row[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{display:grid;gap:5px;color:var(--text-strong);overflow-wrap:anywhere}.event-row[_ngcontent-%COMP%] strong[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{width:fit-content;border:1px solid var(--line);border-radius:999px;padding:2px 6px;color:var(--muted);background:#ffffff08;font-size:10px;font-weight:850;text-transform:uppercase}.event-row[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;color:var(--muted);overflow-wrap:anywhere}.event-row.error[_ngcontent-%COMP%]{background:#ff6b5f14}.event-row.model-call[_ngcontent-%COMP%]{border-left-color:#6f5cfff2}.event-row.model-call[_ngcontent-%COMP%] strong[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{border-color:#6f5cff6b;color:var(--accent);background:#6f5cff24}.event-row.tool-call[_ngcontent-%COMP%]{border-left-color:#ffba4ad1}.event-row.tool-call[_ngcontent-%COMP%] strong[_ngcontent-%COMP%] small[_ngcontent-%COMP%]{border-color:#ffba4a6b;color:var(--warning-text, #ffe0a0);background:#ffba4a1f}.event-row.agent-response[_ngcontent-%COMP%]{border-left-color:#4a9dffd1}.event-row.discovery[_ngcontent-%COMP%]{border-left-color:#94a3b8ad}.event-row.user-message[_ngcontent-%COMP%]{border-left-color:var(--accent-2);background:#1fd1a512}.event-row.token-bearing[_ngcontent-%COMP%]{background:linear-gradient(90deg,rgba(111,92,255,.08),transparent 42%),var(--surface-soft)}.event-token-badge[_ngcontent-%COMP%]{display:grid;gap:3px;align-items:start;width:100%;min-width:0;border:1px solid rgba(111,92,255,.38);border-radius:10px;padding:5px 8px;background:#6f5cff21;color:var(--text-strong)!important;font-weight:850;line-height:1.25}.input-bar[_ngcontent-%COMP%]{background:var(--accent)}.cached-input-bar[_ngcontent-%COMP%]{background:var(--accent-2)}.output-bar[_ngcontent-%COMP%]{flex:1;background:var(--warning)}.event-token-badge[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:grid;gap:1px;color:var(--muted);font-size:11px}.event-token-badge[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .event-token-badge[_ngcontent-%COMP%] b[_ngcontent-%COMP%]{color:inherit;font:inherit}.trace-inspector[_ngcontent-%COMP%]{position:sticky;top:92px;display:grid;gap:14px;max-height:calc(100vh - 112px);overflow:auto;border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--surface-soft)}.inspector-title[_ngcontent-%COMP%]{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:10px;align-items:start}.inspector-title[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{display:grid;place-items:center;min-height:32px;border:1px solid rgba(31,209,165,.35);border-radius:10px;background:var(--teal-soft);color:var(--success-text, #bbfff0);font-weight:900}.inspector-title[_ngcontent-%COMP%] h4[_ngcontent-%COMP%], .inspector-title[_ngcontent-%COMP%] p[_ngcontent-%COMP%], .inspector-cost[_ngcontent-%COMP%] p[_ngcontent-%COMP%], .inspector-detail[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0}.inspector-title[_ngcontent-%COMP%] h4[_ngcontent-%COMP%], .inspector-detail[_ngcontent-%COMP%] h5[_ngcontent-%COMP%]{overflow-wrap:anywhere}.inspector-title[_ngcontent-%COMP%] h4[_ngcontent-%COMP%], .inspector-cost[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .inspector-fields[_ngcontent-%COMP%] dd[_ngcontent-%COMP%], .inspector-detail[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:var(--text-strong)}.inspector-title[_ngcontent-%COMP%] p[_ngcontent-%COMP%], .inspector-cost[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .inspector-cost[_ngcontent-%COMP%] p[_ngcontent-%COMP%], .inspector-fields[_ngcontent-%COMP%] dt[_ngcontent-%COMP%], .inspector-detail[_ngcontent-%COMP%] h5[_ngcontent-%COMP%], .inspector-topline[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .inspector-group[_ngcontent-%COMP%] h5[_ngcontent-%COMP%]{color:var(--muted);font-size:12px}.inspector-title[_ngcontent-%COMP%] p[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{display:inline-flex;margin-left:6px;border:1px solid rgba(31,209,165,.35);border-radius:999px;padding:2px 6px;color:var(--success-text, #bbfff0);background:var(--teal-soft);font-size:10px;font-weight:850;text-transform:uppercase}.inspector-actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.inspector-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{min-height:28px;border:1px solid var(--line);border-radius:999px;padding:5px 9px;background:var(--surface);color:var(--text);font:inherit;font-size:11px;font-weight:760;cursor:pointer}.inspector-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover{border-color:var(--line-strong);background:#ffffff0e}.inspector-lens[_ngcontent-%COMP%]{display:grid;gap:10px;border:1px solid var(--line);border-left:4px solid var(--accent-2);border-radius:12px;padding:12px;background:linear-gradient(135deg,rgba(31,209,165,.08),transparent 58%),var(--surface)}.inspector-lens.model-call[_ngcontent-%COMP%]{border-left-color:#6f5cfff2;background:linear-gradient(135deg,rgba(111,92,255,.13),transparent 58%),var(--surface)}.inspector-lens.tool-call[_ngcontent-%COMP%]{border-left-color:#ffba4adb;background:linear-gradient(135deg,rgba(255,186,74,.1),transparent 58%),var(--surface)}.inspector-lens.agent-response[_ngcontent-%COMP%]{border-left-color:#4a9dffdb}.inspector-lens.discovery[_ngcontent-%COMP%]{border-left-color:#94a3b8d1}.inspector-lens[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{color:var(--text-strong);font-size:14px;font-weight:820}.inspector-lens[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;color:var(--muted);font-size:12px}.inspector-primary-facts[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}.inspector-primary-facts[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{display:grid;gap:4px;min-width:0;border:1px solid var(--line);border-radius:10px;padding:9px;background:#ffffff09}.inspector-primary-facts[_ngcontent-%COMP%] div[_ngcontent-%COMP%]:first-child{grid-column:1 / -1}.inspector-primary-facts[_ngcontent-%COMP%] .cost[_ngcontent-%COMP%]{border-color:#1fd1a547;background:#1fd1a512}.inspector-primary-facts[_ngcontent-%COMP%] .tool[_ngcontent-%COMP%]{border-color:#ffba4a52;background:#ffba4a14}.inspector-primary-facts[_ngcontent-%COMP%] dt[_ngcontent-%COMP%], .inspector-primary-facts[_ngcontent-%COMP%] dd[_ngcontent-%COMP%]{margin:0}.inspector-primary-facts[_ngcontent-%COMP%] dt[_ngcontent-%COMP%]{color:var(--muted);font-size:11px;font-weight:760}.inspector-primary-facts[_ngcontent-%COMP%] dd[_ngcontent-%COMP%]{color:var(--text-strong);font-size:13px;font-weight:820;overflow-wrap:anywhere}.inspector-token-split[_ngcontent-%COMP%]{display:grid;gap:6px;border:1px solid var(--line);border-radius:10px;padding:9px;background:#ffffff09}.inspector-token-split[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:var(--muted-2);font-size:10px;font-weight:760;letter-spacing:.08em;text-transform:uppercase}.inspector-token-split[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{display:flex;height:8px;overflow:hidden;border-radius:999px;background:#ffffff14}.inspector-token-split[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{display:block;min-width:2px}.inspector-token-split[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;color:var(--text);font-size:12px}.inspector-topline[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.inspector-topline[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{display:grid;gap:4px;border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--surface)}.inspector-topline.has-cost[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:first-child{border-color:#1fd1a547;background:#1fd1a512}.inspector-topline[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--text-strong);font-size:16px;line-height:1.1;overflow-wrap:anywhere}.inspector-cost[_ngcontent-%COMP%]{display:grid;gap:4px;border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--surface)}.inspector-cost[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{font-size:24px}.inspector-groups[_ngcontent-%COMP%]{display:grid;gap:10px}.inspector-group[_ngcontent-%COMP%]{display:grid;gap:8px;border:1px solid var(--line);border-radius:10px;padding:10px;background:#ffffff06}.inspector-group[_ngcontent-%COMP%] h5[_ngcontent-%COMP%]{margin:0;text-transform:uppercase}.inspector-fields[_ngcontent-%COMP%]{display:grid;gap:8px;margin:0}.inspector-fields[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{display:grid;grid-template-columns:110px minmax(0,1fr);gap:10px;align-items:baseline}.inspector-fields.compact[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{grid-template-columns:90px minmax(0,1fr)}.inspector-fields[_ngcontent-%COMP%] dt[_ngcontent-%COMP%], .inspector-fields[_ngcontent-%COMP%] dd[_ngcontent-%COMP%]{margin:0}.inspector-fields[_ngcontent-%COMP%] dd[_ngcontent-%COMP%], .inspector-detail[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{overflow-wrap:anywhere}.inspector-detail[_ngcontent-%COMP%]{display:grid;gap:8px;border-top:1px solid var(--line);padding-top:12px}.inspector-detail[_ngcontent-%COMP%] h5[_ngcontent-%COMP%]{margin:0;text-transform:uppercase}.raw-event[_ngcontent-%COMP%]{border-top:1px solid var(--line);padding-top:10px}.raw-event[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]{display:flex;align-items:baseline;justify-content:space-between;gap:10px;color:var(--muted);font-size:12px;font-weight:780;cursor:pointer}.raw-event[_ngcontent-%COMP%] summary[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:var(--text)}.raw-event[_ngcontent-%COMP%] summary[_ngcontent-%COMP%] em[_ngcontent-%COMP%]{color:var(--muted-2);font-size:11px;font-style:normal;font-weight:650;text-align:right}.raw-event[_ngcontent-%COMP%] pre[_ngcontent-%COMP%]{max-height:320px;overflow:auto;margin:10px 0 0;border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--surface-tint, rgba(0, 0, 0, .22));color:var(--text);font:12px/1.55 Cascadia Code,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.flow-chart[_ngcontent-%COMP%]{display:grid;gap:10px;max-width:760px}.flow-node[_ngcontent-%COMP%]{position:relative;display:grid;grid-template-columns:34px minmax(150px,220px) minmax(0,1fr);gap:12px;align-items:start;border:1px solid var(--line);border-radius:8px;padding:12px;background:var(--surface-soft)}.flow-node[_ngcontent-%COMP%]:after{content:"";position:absolute;left:27px;bottom:-11px;width:2px;height:10px;background:var(--line)}.flow-node[_ngcontent-%COMP%]:last-child:after{display:none}.flow-node[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--accent);color:#fff;font-weight:900}.flow-node[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--text-strong);text-transform:capitalize}.flow-node[_ngcontent-%COMP%] em[_ngcontent-%COMP%]{display:block;margin-top:3px;color:var(--muted);font-style:normal;font-size:12px}.flow-node[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;color:var(--muted);overflow-wrap:anywhere}.warning-text[_ngcontent-%COMP%]{color:var(--warning-text, #ffcf75)!important;font-weight:800}.empty[_ngcontent-%COMP%]{margin:0;color:var(--muted)}@media(max-width:900px){.trace-workbench[_ngcontent-%COMP%]{grid-template-columns:1fr}.trace-inspector[_ngcontent-%COMP%]{position:sticky}}@media(max-width:600px){.trace-header[_ngcontent-%COMP%]{display:grid}.event-row[_ngcontent-%COMP%], .inspector-fields[_ngcontent-%COMP%] div[_ngcontent-%COMP%], .inspector-fields.compact[_ngcontent-%COMP%] div[_ngcontent-%COMP%], .inspector-topline[_ngcontent-%COMP%], .inspector-primary-facts[_ngcontent-%COMP%], .flow-node[_ngcontent-%COMP%]{grid-template-columns:1fr}}.trace-tools[_ngcontent-%COMP%]{gap:12px}.eyebrow[_ngcontent-%COMP%]{font-size:10px;font-weight:760;letter-spacing:.08em}.trace-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{font-size:18px;font-weight:760}.trace-header[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{font-size:12px}.trace-actions[_ngcontent-%COMP%]{gap:6px}.trace-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%], .segmented-control[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{min-height:30px;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:720}.segmented-control[_ngcontent-%COMP%]{border-radius:999px}.trace-workbench[_ngcontent-%COMP%]{gap:12px}.event-log[_ngcontent-%COMP%], .trace-inspector[_ngcontent-%COMP%], .inspector-cost[_ngcontent-%COMP%], .flow-node[_ngcontent-%COMP%]{border-radius:12px}.event-row[_ngcontent-%COMP%]{grid-template-columns:68px 150px minmax(0,1fr) minmax(180px,.75fr);gap:10px;padding:9px 10px}.event-row[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .event-row[_ngcontent-%COMP%] em[_ngcontent-%COMP%], .event-row[_ngcontent-%COMP%] p[_ngcontent-%COMP%], .inspector-title[_ngcontent-%COMP%] p[_ngcontent-%COMP%], .inspector-cost[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .inspector-cost[_ngcontent-%COMP%] p[_ngcontent-%COMP%], .inspector-fields[_ngcontent-%COMP%] dt[_ngcontent-%COMP%], .inspector-detail[_ngcontent-%COMP%] h5[_ngcontent-%COMP%], .inspector-topline[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .inspector-group[_ngcontent-%COMP%] h5[_ngcontent-%COMP%], .flow-node[_ngcontent-%COMP%] em[_ngcontent-%COMP%], .flow-node[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{font-size:12px}.event-row[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .inspector-title[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{font-size:13px;font-weight:760}.trace-inspector[_ngcontent-%COMP%]{top:78px;gap:12px;max-height:calc(100vh - 92px);padding:12px}.inspector-title[_ngcontent-%COMP%]{grid-template-columns:34px minmax(0,1fr) auto}.inspector-title[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{min-height:28px;border-radius:9px;font-size:12px}.inspector-cost[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{font-size:19px;font-weight:760}.inspector-topline[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{font-size:15px;font-weight:760}.inspector-fields[_ngcontent-%COMP%]{gap:7px}.flow-node[_ngcontent-%COMP%]{grid-template-columns:30px minmax(140px,200px) minmax(0,1fr);padding:10px}.theme-light[_nghost-%COMP%] .trace-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .trace-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%], .theme-light[_nghost-%COMP%] .segmented-control[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .segmented-control[_ngcontent-%COMP%], .theme-light[_nghost-%COMP%] .trace-inspector[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .trace-inspector[_ngcontent-%COMP%], .theme-light[_nghost-%COMP%] .event-log[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .event-log[_ngcontent-%COMP%]{box-shadow:var(--shadow-soft)}.theme-light[_nghost-%COMP%] .trace-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .trace-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%], .theme-light[_nghost-%COMP%] .segmented-control[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .segmented-control[_ngcontent-%COMP%]{background:#ffffffad}.theme-light[_nghost-%COMP%] .selected-event-strip[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .selected-event-strip[_ngcontent-%COMP%], .theme-light[_nghost-%COMP%] .trace-inspector[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .trace-inspector[_ngcontent-%COMP%]{background:linear-gradient(180deg,#ffffffd1,#ffffffa8),var(--surface-raised)}.theme-light[_nghost-%COMP%] .selected-event-strip[_ngcontent-%COMP%] dl[_ngcontent-%COMP%] div[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .selected-event-strip[_ngcontent-%COMP%] dl[_ngcontent-%COMP%] div[_ngcontent-%COMP%], .theme-light[_nghost-%COMP%] .inspector-primary-facts[_ngcontent-%COMP%] div[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .inspector-primary-facts[_ngcontent-%COMP%] div[_ngcontent-%COMP%], .theme-light[_nghost-%COMP%] .inspector-token-split[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .inspector-token-split[_ngcontent-%COMP%], .theme-light[_nghost-%COMP%] .inspector-group[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .inspector-group[_ngcontent-%COMP%], .theme-light[_nghost-%COMP%] .inspector-topline[_ngcontent-%COMP%] > div[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .inspector-topline[_ngcontent-%COMP%] > div[_ngcontent-%COMP%], .theme-light[_nghost-%COMP%] .inspector-cost[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .inspector-cost[_ngcontent-%COMP%]{background:#ffffffa8}.theme-light[_nghost-%COMP%] .event-log[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .event-log[_ngcontent-%COMP%]{background:var(--surface)}.theme-light[_nghost-%COMP%] .event-row[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .event-row[_ngcontent-%COMP%]{background:#ffffffad}.theme-light[_nghost-%COMP%] .event-row[_ngcontent-%COMP%]:hover, .theme-light [_nghost-%COMP%] .event-row[_ngcontent-%COMP%]:hover, .theme-light[_nghost-%COMP%] .event-row.active[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .event-row.active[_ngcontent-%COMP%]{background:#0c9f8314}.theme-light[_nghost-%COMP%] .event-row.token-bearing[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .event-row.token-bearing[_ngcontent-%COMP%]{background:linear-gradient(90deg,rgba(111,92,255,.075),transparent 42%),#ffffffb3}.theme-light[_nghost-%COMP%] .inspector-lens[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .inspector-lens[_ngcontent-%COMP%]{background:linear-gradient(135deg,rgba(12,159,131,.055),transparent 58%),var(--surface)}.theme-light[_nghost-%COMP%] .inspector-lens.model-call[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .inspector-lens.model-call[_ngcontent-%COMP%]{background:linear-gradient(135deg,rgba(111,92,255,.09),transparent 58%),var(--surface)}.theme-light[_nghost-%COMP%] .raw-event[_ngcontent-%COMP%] pre[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .raw-event[_ngcontent-%COMP%] pre[_ngcontent-%COMP%]{background:#f4f8fc}@media(max-width:1250px){.trace-workbench[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1fr)}.trace-inspector[_ngcontent-%COMP%]{order:-1;top:148px;z-index:4;max-height:min(300px,calc(100vh - 168px))}.event-row[_ngcontent-%COMP%]{grid-template-columns:76px minmax(135px,.55fr) minmax(0,1fr) minmax(180px,auto)}}@media(max-width:600px){.selected-event-strip[_ngcontent-%COMP%]{grid-template-columns:1fr}.selected-event-strip[_ngcontent-%COMP%] dl[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr}.event-row[_ngcontent-%COMP%]{grid-template-columns:1fr}.inspector-title[_ngcontent-%COMP%]{grid-template-columns:34px minmax(0,1fr)}.inspector-actions[_ngcontent-%COMP%]{grid-column:1 / -1;justify-content:flex-start}.raw-event[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]{display:grid}.raw-event[_ngcontent-%COMP%] summary[_ngcontent-%COMP%] em[_ngcontent-%COMP%]{text-align:left}}']})};var qd=(n,t)=>t.label,Na=(n,t)=>t.index,Wd=(n,t)=>t.signature;function Gd(n,t){if(n&1&&I(0,"i",21),n&2){let e=m(),i=m(2);ke("width",i.cachedInputShare(e),"%")}}function Jd(n,t){if(n&1&&(l(0),h(1,"number")),n&2){let e=m();v(" / ",x(1,1,e.cachedInputTokens)," cached in ")}}function Kd(n,t){if(n&1&&(l(0),h(1,"number")),n&2){let e=m();v(" / ",x(1,1,e.cacheWriteTokens)," cache write ")}}function Xd(n,t){if(n&1){let e=H();s(0,"section",6)(1,"div")(2,"span"),l(3,"Largest single call"),a(),s(4,"strong"),l(5),h(6,"number"),a(),s(7,"p"),l(8),h(9,"number"),h(10,"number"),a()(),s(11,"div",15)(12,"span"),l(13,"Input/cache/output split"),a(),s(14,"div",16),I(15,"i",17),b(16,Gd,1,2,"i",18),I(17,"i",19),a(),s(18,"p"),l(19),h(20,"number"),b(21,Jd,2,3),b(22,Kd,2,3),l(23),h(24,"number"),a()(),s(25,"button",20),w("click",function(){let o=E(e),r=m(2);return k(r.openTraceEvent.emit(o.index))}),l(26),a()()}if(n&2){let e=t,i=m(2);d(5),W("#",e.callNumber," \xB7 $",S(6,15,e.estimatedUsd,"1.4-4")),d(3),Ye("",e.model||e.name," \xB7 ",x(9,18,e.totalTokens)," tokens \xB7 ",S(10,20,e.share,"1.0-0"),"% of usage. Most runs are cumulative, so read this as the biggest spike, not the sole cause."),d(7),ke("width",i.normalInputShare(e),"%"),d(),M(e.cachedInputTokens?16:-1),d(),ke("width",i.outputShare(e),"%"),d(2),v(" ",x(20,23,i.normalInputTokens(e))," normal in "),d(2),M(e.cachedInputTokens?21:-1),d(),M(e.cacheWriteTokens?22:-1),d(),v(" / ",x(24,25,e.outputTokens)," out "),d(3),v(" Open trace #",e.index," ")}}function Yd(n,t){if(n&1&&(s(0,"div",27)(1,"span")(2,"em"),l(3," Biggest request "),I(4,"app-help-popover",31),a(),s(5,"strong"),l(6),h(7,"number"),a()(),s(8,"span")(9,"em"),l(10," Limit used "),I(11,"app-help-popover",32),a(),s(12,"strong"),l(13),a()(),s(14,"span")(15,"em"),l(16," Repeated load "),I(17,"app-help-popover",33),a(),s(18,"strong"),l(19),h(20,"number"),a()(),s(21,"span")(22,"em"),l(23," Model requests "),I(24,"app-help-popover",34),a(),s(25,"strong"),l(26),h(27,"number"),a()()()),n&2){let e=t,i=m(3);d(4),P("text",i.contextHelp.biggestRequest)("interactive",!1),d(2),C(x(7,12,e.inputTokens)),d(5),P("text",i.contextHelp.limitUsed)("interactive",!1),d(2),C(i.contextLimitPercentLabel(e)),d(4),P("text",i.contextHelp.repeatedInput)("interactive",!1),d(2),v("",S(20,14,i.contextRepeatedFactor(),"1.1-1"),"x"),d(5),P("text",i.contextHelp.calls)("interactive",!1),d(2),C(x(27,17,i.cost.modelCallRows.length))}}function Qd(n,t){if(n&1&&(s(0,"small",26),l(1,"You"),a()),n&2){let e=m().$implicit,i=m(3);Pe("aria-label",i.userRequestMarkerLabel(e))}}function Zd(n,t){if(n&1){let e=H();s(0,"button",35),w("click",function(){let o=E(e).$implicit,r=m(3);return k(r.openTraceEvent.emit(o.index))}),s(1,"span",36),l(2),s(3,"span",37),b(4,Qd,2,1,"small",26),a()(),s(5,"i",38),I(6,"b"),a(),s(7,"strong"),l(8),h(9,"number"),a(),s(10,"em"),l(11),a()()}if(n&2){let e=t.$implicit,i=m(3);q("after-user-request",e.startsAfterUserRequest),P("ngClass",i.contextPressureClass(e)),Pe("aria-label","Open trace event "+e.index+" for model call "+e.callNumber),d(2),v(" #",e.callNumber," "),d(2),M(e.startsAfterUserRequest?4:-1),d(2),ke("height",i.contextBarHeight(e),"%"),d(2),C(x(9,10,e.inputTokens)),d(3),C(i.contextLimitPercentLabel(e))}}function ep(n,t){if(n&1&&(s(0,"p",30),l(1),a()),n&2){let e=m(3);d(),C(e.contextTimelineSummary())}}function tp(n,t){if(n&1&&(s(0,"section",7)(1,"div",22)(2,"div")(3,"span",23),l(4,"Context load"),a(),s(5,"h4"),l(6," Input sent to the model "),I(7,"app-help-popover",24),a(),s(8,"p"),l(9,"Each bar is one model request. A drop means the next request sent less context; a climb means more context was carried forward."),a(),s(10,"p",25)(11,"span",26),l(12,"You"),a(),l(13," Model request after a user prompt. "),a()(),b(14,Yd,28,19,"div",27),a(),s(15,"div",28),j(16,Zd,12,12,"button",29,Na),a(),b(18,ep,2,1,"p",30),a()),n&2){let e,i,o=m(2);d(7),P("text",o.contextHelp.timeline),d(7),M((e=o.contextPeakCall())?14:-1,e),d(2),B(o.contextTimelineRows()),d(2),M((i=o.contextPeakCall())?18:-1,i)}}function np(n,t){if(n&1&&(s(0,"div",43)(1,"span",45),l(2),s(3,"em"),l(4),h(5,"number"),a()(),s(6,"span",46),l(7),h(8,"number"),s(9,"em"),l(10),h(11,"number"),h(12,"number"),a()(),s(13,"span",47),l(14),h(15,"number"),s(16,"em"),l(17),h(18,"number"),a()(),s(19,"span",48),l(20),h(21,"number"),s(22,"em"),l(23),h(24,"number"),a()()()),n&2){let e=t.$implicit;d(2),W(" Calls #",e.firstCall,"-#",e.lastCall," "),d(2),v("",x(5,10,e.callCount)," model calls"),d(3),v(" ",x(8,12,e.totalChars)," chars "),d(3),W("",x(11,14,e.systemPromptChars)," instructions / ",x(12,16,e.toolSchemaChars)," tools"),d(4),v(" ",x(15,18,e.toolCount)," tools "),d(3),v("",x(18,20,e.mcpToolCount)," MCP tools"),d(3),v(" ",S(21,22,e.averageInputTokens,"1.0-0")," avg input "),d(3),v("",x(24,25,e.maxInputTokens)," biggest request")}}function ip(n,t){if(n&1&&(s(0,"details",8)(1,"summary")(2,"span")(3,"strong"),l(4,"Setup footprint"),a(),s(5,"em"),l(6),a()(),s(7,"b"),l(8),a()(),s(9,"div",39)(10,"div",40)(11,"article")(12,"span"),l(13,"Instructions"),a(),s(14,"strong"),l(15),h(16,"number"),a(),s(17,"p"),l(18,"chars in the referenced system/custom prompt side file."),a()(),s(19,"article")(20,"span"),l(21,"Tool schemas"),a(),s(22,"strong"),l(23),h(24,"number"),a(),s(25,"p"),l(26),h(27,"number"),a()(),s(28,"article")(29,"span"),l(30,"MCP tools"),a(),s(31,"strong"),l(32),h(33,"number"),a(),s(34,"p"),l(35),a()(),s(36,"article")(37,"span"),l(38,"Setup versions"),a(),s(39,"strong"),l(40),h(41,"number"),a(),s(42,"p"),l(43,"Different instruction/tool payloads observed across model calls."),a()()(),s(44,"div",41)(45,"div",42)(46,"span",13),l(47,"Where"),a(),s(48,"span",13),l(49,"Payload"),a(),s(50,"span",13),l(51,"Tools"),a(),s(52,"span",13),l(53,"Model input"),a()(),j(54,np,25,27,"div",43,Wd),a(),s(56,"p",44),l(57," This is efficiency evidence: it shows what setup payload was referenced near model calls. It does not assign exact dollars to instructions, tools, or MCP. "),a()()()),n&2){let e=t;d(6),C(e.summary),d(2),C(e.changeLabel),d(7),C(x(16,8,e.instructionChars)),d(8),C(x(24,10,e.toolSchemaChars)),d(3),v("",x(27,12,e.toolCount)," tools described to the model."),d(6),C(x(33,14,e.mcpToolCount)),d(3),C(e.mcpPreview),d(5),C(x(41,16,e.profiles.length)),d(14),B(e.profiles)}}function op(n,t){if(n&1&&(s(0,"article")(1,"span"),l(2),a(),s(3,"strong"),l(4),a(),s(5,"p"),l(6),a()()),n&2){let e=t.$implicit;d(2),C(e.label),d(2),C(e.value),d(2),C(e.detail)}}function rp(n,t){n&1&&(s(0,"em",54),l(1,"fallback pricing"),a())}function ap(n,t){if(n&1&&(l(0),h(1,"number")),n&2){let e=m().$implicit;v(" / ",x(1,1,e.cachedInputTokens)," cached in ")}}function sp(n,t){if(n&1&&(l(0),h(1,"number")),n&2){let e=m().$implicit;v(" / ",x(1,1,e.cacheWriteTokens)," cache write ")}}function lp(n,t){if(n&1){let e=H();s(0,"div",49)(1,"strong",50)(2,"button",51),w("click",function(){let o=E(e).$implicit,r=m(2);return k(r.openTraceEvent.emit(o.index))}),l(3),a()(),s(4,"span",52),l(5),h(6,"date"),s(7,"em"),l(8),a()(),s(9,"span",53),l(10),s(11,"em"),l(12),a(),b(13,rp,2,0,"em",54),a(),s(14,"span",55),l(15),h(16,"number"),s(17,"em"),l(18),h(19,"number"),b(20,ap,2,3),b(21,sp,2,3),l(22),h(23,"number"),a()(),s(24,"span",56),l(25),h(26,"number"),s(27,"em"),l(28),h(29,"number"),h(30,"number"),a()(),s(31,"span",57)(32,"span",58),I(33,"i"),a(),l(34),h(35,"number"),a(),s(36,"span",59),l(37),s(38,"em"),l(39),a()()()}if(n&2){let e=t.$implicit,i=m(2);ke("--share",e.share,"%"),d(3),v(" #",e.callNumber," "),d(2),v(" ",S(6,19,e.timestamp,"HH:mm:ss")," "),d(3),v("raw index #",e.index),d(2),v(" ",e.model||e.name," "),d(2),C(e.pricingModel),d(),M(e.usesFallbackPrice?13:-1),d(2),v(" ",x(16,22,e.totalTokens)," "),d(3),v(" ",x(19,24,i.normalInputTokens(e))," normal in "),d(2),M(e.cachedInputTokens?20:-1),d(),M(e.cacheWriteTokens?21:-1),d(),v(" / ",x(23,26,e.outputTokens)," out "),d(3),v(" $",S(26,28,e.estimatedUsd,"1.6-6")," "),d(3),W(" ",S(29,31,i.inputCostUsd(e),"1.6-6")," input/cache / ",S(30,34,e.outputUsd,"1.6-6")," out "),d(6),v(" ",S(35,37,e.share,"1.0-0"),"% "),d(3),v(" ",e.contextLabel," "),d(2),C(e.contextDetail)}}function cp(n,t){if(n&1&&(b(0,Xd,27,27,"section",6),b(1,tp,19,3,"section",7),b(2,ip,58,18,"details",8),s(3,"details",9)(4,"summary")(5,"span"),l(6,"Call stats"),a(),s(7,"strong"),l(8),h(9,"number"),a()(),s(10,"div",10),j(11,op,7,3,"article",null,qd),a()(),s(13,"div",11)(14,"div",12)(15,"span",13),l(16,"Call"),a(),s(17,"span",13),l(18,"When"),a(),s(19,"span",13),l(20,"Model"),a(),s(21,"span",13),l(22,"Tokens"),a(),s(23,"span",13),l(24,"Cost"),a(),s(25,"span",13),l(26,"Share"),a(),s(27,"span",13),l(28,"Nearby context"),a()(),j(29,lp,40,40,"div",14,Na),a()),n&2){let e,i,o=m();M((e=o.topModelCall())?0:-1,e),d(),M(o.hasContextTimeline()?1:-1),d(),M((i=o.setupFootprint())?2:-1,i),d(6),v("",x(9,4,o.cost.modelCallRows.length)," model calls"),d(3),B(o.cost.turnInsights),d(18),B(o.cost.modelCallRows)}}function dp(n,t){n&1&&(s(0,"p",5),l(1,"This imported session has no token-bearing model call rows."),a())}var Gn=class n{cost;sort;sortChange=new $;openTraceEvent=new $;contextHelp={timeline:"Each bar is one model request from the VS Code Agent Debug Log. Taller means more input was sent into the model for that request. A sharp drop means the next request sent less context. A You marker means a user prompt happened before that model request.",biggestRequest:"The single model request with the most input tokens recorded by VS Code. This helps spot the largest one-time context load.",limitUsed:"How much of the model prompt limit the biggest request used. This comes from VS Code model metadata, not billing. Lower is more room left in that one request.",repeatedInput:"Total raw input across all model calls divided by the biggest single request. High means the run repeatedly sent a lot of context, even if no one request was near the model limit.",calls:"Token-bearing model requests imported from the VS Code Agent Debug Log. Tool calls and UI events are not counted here unless they include model tokens."};topModelCall(){return[...this.cost.modelCallRows].sort((t,e)=>e.estimatedUsd-t.estimatedUsd)[0]??null}contextTimelineRows(){return[...this.cost.modelCallRows].sort((t,e)=>t.callNumber-e.callNumber)}hasContextTimeline(){return this.contextTimelineRows().some(t=>t.inputTokens>0)}contextPeakCall(){return[...this.cost.modelCallRows].sort((t,e)=>e.inputTokens-t.inputTokens)[0]??null}contextBarHeight(t){let e=this.contextPeakCall()?.inputTokens??0;return e>0&&t.inputTokens>0?Math.max(6,t.inputTokens/e*100):0}contextLimitShare(t){return t.promptLimitShare??t.contextWindowShare??null}contextLimitLabel(t){return t.promptLimitTokens?`${t.promptLimitTokens.toLocaleString()} prompt limit`:t.contextWindowTokens?`${t.contextWindowTokens.toLocaleString()} context window`:"limit unavailable"}contextLimitPercentLabel(t){let e=this.contextLimitShare(t);return e===null?"limit n/a":`${Math.round(e*100)}%`}contextPressureClass(t){let e=this.contextLimitShare(t);return e===null?"":e>=.8?"near-limit":e>=.6?"elevated-limit":""}contextRepeatedFactor(){let t=this.contextTimelineRows(),e=Math.max(...t.map(o=>o.inputTokens),0),i=t.reduce((o,r)=>o+r.inputTokens,0);return e>0?i/e:0}contextTimelineSummary(){let t=this.contextPeakCall();return t?`Call #${t.callNumber} sent the most context: ${t.inputTokens.toLocaleString()} input tokens, using ${this.contextLimitPercentLabel(t)} of the model prompt limit. The run kept sending context repeatedly: ${this.contextRepeatedFactor().toFixed(1)}x the biggest request in total.`:"No token-bearing model calls were imported for this run."}userRequestMarkerLabel(t){return t.userRequestDetail?`After user request #${t.userRequestIndex}: ${t.userRequestDetail}`:"After a user request"}setupPayloadBadges(t){let e=t.setupPayload;if(!e)return[];let i=[];return e.systemPromptChars>0&&i.push({label:"Inst",detail:`${e.systemPromptChars.toLocaleString()} chars from ${e.systemPromptFile}`}),(e.toolSchemaChars>0||e.toolCount>0)&&i.push({label:"Tools",detail:`${e.toolCount.toLocaleString()} tools, ${e.toolSchemaChars.toLocaleString()} schema chars`}),e.mcpToolCount>0&&i.push({label:"MCP",detail:`${e.mcpToolCount.toLocaleString()} MCP tools referenced`}),i}setupPayloadSummary(t){let e=this.setupPayloadBadges(t);return e.length?`Setup payload: ${e.map(i=>i.detail).join(" \xB7 ")}`:""}setupFootprint(){let t=this.contextTimelineRows().filter(p=>this.setupPayloadSignature(p));if(!t.length)return null;let e=new Map;for(let p of t){let u=p.setupPayload,g=this.setupPayloadSignature(p);if(!u||!g)continue;let f=e.get(g);if(f){f.lastCall=p.callNumber,f.callCount+=1,f.totalInputTokens+=p.inputTokens,f.averageInputTokens=f.totalInputTokens/f.callCount,f.maxInputTokens=Math.max(f.maxInputTokens,p.inputTokens);continue}e.set(g,{signature:g,firstCall:p.callNumber,lastCall:p.callNumber,callCount:1,systemPromptChars:u.systemPromptChars,toolSchemaChars:u.toolSchemaChars,totalChars:u.systemPromptChars+u.toolSchemaChars,toolCount:u.toolCount,mcpToolCount:u.mcpToolCount,totalInputTokens:p.inputTokens,averageInputTokens:p.inputTokens,maxInputTokens:p.inputTokens})}let i=[...e.values()].sort((p,u)=>p.firstCall-u.firstCall),o=i[i.length-1],r=t[t.length-1]?.setupPayload?.mcpToolNames??[],c=r.length>3?`${r.slice(0,3).join(", ")} +${r.length-3} more`:r.length?r.join(", "):"No MCP tools in setup payload.";return{summary:i.length===1?`Same setup payload across ${t.length.toLocaleString()} model calls`:`${i.length.toLocaleString()} setup payload versions across ${t.length.toLocaleString()} model calls`,changeLabel:i.length===1?"No setup changes":`${i.length-1} change${i.length===2?"":"s"}`,instructionChars:o.systemPromptChars,toolSchemaChars:o.toolSchemaChars,toolCount:o.toolCount,mcpToolCount:o.mcpToolCount,mcpPreview:c,profiles:i}}setupPayloadChanged(t){let e=this.setupPayloadSignature(t);if(!e)return!1;let i=this.contextTimelineRows().filter(o=>o.callNumber<t.callNumber).reverse().find(o=>this.setupPayloadSignature(o));return!i||this.setupPayloadSignature(i)!==e}setupPayloadChangeSummary(t){return this.setupPayloadChanged(t)?this.setupPayloadSummary(t).replace("Setup payload: ","Setup changed: "):""}setupPayloadSignature(t){let e=t.setupPayload;return e?[e.systemPromptFile,e.systemPromptChars,e.toolsFile,e.toolSchemaChars,e.toolCount,e.mcpToolCount,e.mcpToolNames.join(",")].join("|"):""}inputShare(t){return t.totalTokens>0?t.inputTokens/t.totalTokens*100:0}normalInputTokens(t){return Math.max(0,t.inputTokens-(t.cachedInputTokens??0))}normalInputShare(t){return t.totalTokens>0?this.normalInputTokens(t)/t.totalTokens*100:0}cachedInputShare(t){return t.totalTokens>0?(t.cachedInputTokens??0)/t.totalTokens*100:0}inputCostUsd(t){return t.inputUsd+(t.cachedInputUsd??0)+(t.cacheWriteUsd??0)}outputShare(t){return t.totalTokens>0?t.outputTokens/t.totalTokens*100:0}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=ee({type:n,selectors:[["app-session-turns"]],inputs:{cost:"cost",sort:"sort"},outputs:{sortChange:"sortChange",openTraceEvent:"openTraceEvent"},decls:16,vars:5,consts:[[1,"model-call-table","run-panel"],[1,"model-call-header"],[1,"eyebrow"],["aria-label","Model call sort",1,"segmented-control"],["type","button",3,"click"],[1,"empty"],["aria-label","Highest cost model call",1,"turn-focus-strip"],["aria-label","Context load timeline",1,"context-load-timeline"],[1,"setup-footprint-panel"],[1,"turn-insights-disclosure"],["aria-label","Turn highlights",1,"turn-insight-grid"],["role","table","aria-label","Per-turn model calls",1,"model-call-table"],["role","row",1,"model-call-row","model-call-heading"],["role","columnheader"],["role","row",1,"model-call-row",3,"--share"],["aria-label","Token split",1,"token-split"],[1,"token-split-bar"],[1,"input-bar"],[1,"cached-input-bar",3,"width"],[1,"output-bar"],["type","button",1,"trace-jump",3,"click"],[1,"cached-input-bar"],[1,"context-load-header"],[1,"mini-label"],["label","Explain context load timeline",3,"text"],[1,"context-load-legend"],[1,"user-request-marker"],["aria-label","Context load summary",1,"context-load-summary"],["aria-label","Raw input timeline",1,"context-call-bars"],["type","button",1,"context-call-bar",3,"ngClass","after-user-request"],[1,"context-load-note"],["label","Explain biggest request",3,"text","interactive"],["label","Explain limit used",3,"text","interactive"],["label","Explain repeated load",3,"text","interactive"],["label","Explain model requests",3,"text","interactive"],["type","button",1,"context-call-bar",3,"click","ngClass"],[1,"context-call-index"],[1,"context-marker-stack"],["aria-hidden","true"],[1,"setup-footprint-body"],["aria-label","Setup footprint metrics",1,"setup-footprint-metrics"],["role","table","aria-label","Setup footprint profiles",1,"setup-profile-table"],["role","row",1,"setup-profile-row","setup-profile-heading"],["role","row",1,"setup-profile-row"],[1,"setup-footprint-note"],["role","cell","data-label","Where"],["role","cell","data-label","Payload"],["role","cell","data-label","Tools"],["role","cell","data-label","Model input"],["role","row",1,"model-call-row"],["role","cell","data-label","Call"],["type","button",1,"trace-link",3,"click"],["role","cell","data-label","When"],["role","cell","data-label","Model"],[1,"warning-text"],["role","cell","data-label","Tokens"],["role","cell","data-label","Cost"],["role","cell","data-label","Share"],["aria-hidden","true",1,"share-meter"],["role","cell","data-label","Nearby context"]],template:function(e,i){e&1&&(s(0,"section",0)(1,"div",1)(2,"div")(3,"p",2),l(4,"Step 2 \xB7 Review"),a(),s(5,"h3"),l(6,"Model call timeline"),a(),s(7,"p"),l(8,"Scan priced model calls as a sequence. The share column shows how much each call contributed to this run."),a()(),s(9,"div",3)(10,"button",4),w("click",function(){return i.sortChange.emit("timeline")}),l(11," Timeline "),a(),s(12,"button",4),w("click",function(){return i.sortChange.emit("largest")}),l(13," Largest first "),a()()(),b(14,cp,31,6)(15,dp,2,0,"p",5),a()),e&2&&(d(10),q("active",i.sort==="timeline"),d(2),q("active",i.sort==="largest"),d(2),M(i.cost.modelCallRows.length?14:15))},dependencies:[ye,we,Fe,re],styles:['[_nghost-%COMP%]{display:block}.run-panel[_ngcontent-%COMP%]{border:1px solid var(--line);border-radius:14px;padding:18px;background:var(--surface)}.model-call-table[_ngcontent-%COMP%]{display:grid;gap:14px}.model-call-header[_ngcontent-%COMP%]{display:flex;align-items:flex-end;justify-content:space-between;gap:14px}.eyebrow[_ngcontent-%COMP%]{margin:0;color:var(--muted-2);font-size:11px;font-weight:850;letter-spacing:0;text-transform:uppercase}.model-call-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:4px 0 0;color:var(--text-strong)}.model-call-header[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:4px 0 0;color:var(--muted);font-size:13px}.segmented-control[_ngcontent-%COMP%]{display:inline-flex;flex:0 0 auto;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft)}.segmented-control[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{min-height:34px;border:0;border-right:1px solid var(--line);padding:7px 10px;background:transparent;color:var(--muted);font:inherit;font-size:13px;font-weight:800;cursor:pointer}.segmented-control[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:last-child{border-right:0}.segmented-control[_ngcontent-%COMP%] button.active[_ngcontent-%COMP%]{background:var(--accent);color:#fff}.turn-insight-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.turn-insights-disclosure[_ngcontent-%COMP%]{border:1px solid var(--line);border-radius:12px;background:#ffffff05}.turn-insights-disclosure[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:36px;padding:0 12px;color:var(--text);cursor:pointer;list-style:none}.turn-insights-disclosure[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]::-webkit-details-marker{display:none}.turn-insights-disclosure[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]:before{content:">";color:var(--accent);font-weight:800;transition:transform .18s ease}.turn-insights-disclosure[open][_ngcontent-%COMP%] summary[_ngcontent-%COMP%]:before{transform:rotate(90deg)}.turn-insights-disclosure[_ngcontent-%COMP%] summary[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{margin-right:auto;color:var(--muted-2);font-size:11px;font-weight:850;text-transform:uppercase}.turn-insights-disclosure[_ngcontent-%COMP%] summary[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--text-strong);font-size:12px}.turn-insights-disclosure[open][_ngcontent-%COMP%] .turn-insight-grid[_ngcontent-%COMP%]{padding:0 10px 10px}.turn-insight-grid[_ngcontent-%COMP%] article[_ngcontent-%COMP%]{display:grid;gap:5px;border:1px solid var(--line);border-radius:8px;padding:12px;background:var(--surface-soft)}.turn-insight-grid[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:var(--muted-2);font-size:12px;font-weight:850;text-transform:uppercase}.turn-insight-grid[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--text-strong);font-size:19px;line-height:1.15;overflow-wrap:anywhere}.turn-insight-grid[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;color:var(--text);line-height:1.45;overflow-wrap:anywhere}.turn-focus-strip[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,.6fr) auto;gap:14px;align-items:center;border:1px solid rgba(124,92,255,.34);border-radius:12px;padding:10px 12px;background:linear-gradient(135deg,#7c5cff26,#1fd1a512),var(--surface-soft)}.turn-focus-strip[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .token-split[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:var(--muted-2);font-size:11px;font-weight:850;text-transform:uppercase}.turn-focus-strip[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{display:block;margin-top:4px;color:var(--text-strong);font-size:17px;line-height:1.15}.turn-focus-strip[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:5px 0 0;color:var(--text);font-size:12px;line-height:1.35}.token-split-bar[_ngcontent-%COMP%]{display:flex;height:8px;overflow:hidden;border-radius:999px;margin-top:8px;background:#ffffff14}.token-split-bar[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{display:block;min-width:2px}.context-load-timeline[_ngcontent-%COMP%]{display:grid;gap:12px;border:1px solid rgba(31,209,165,.24);border-radius:12px;padding:12px;background:radial-gradient(circle at 8% 0%,rgba(31,209,165,.12),transparent 38%),linear-gradient(135deg,#7c5cff14,#1fd1a509),var(--surface-soft)}.context-load-header[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.8fr);gap:14px;align-items:start}.mini-label[_ngcontent-%COMP%]{color:var(--muted-2);font-size:10px;font-weight:760;letter-spacing:.08em;text-transform:uppercase}.context-load-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;margin:3px 0 0;color:var(--text-strong);font-size:16px;font-weight:760;line-height:1.2}.context-load-header[_ngcontent-%COMP%] p[_ngcontent-%COMP%], .context-load-note[_ngcontent-%COMP%]{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.45}.context-load-legend[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;margin-top:8px!important}.context-load-header[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{color:var(--text-strong);font:inherit;font-weight:760}.context-load-summary[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.context-load-summary[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:grid;gap:4px;border:1px solid var(--line);border-radius:10px;padding:9px;background:#ffffff06}.context-load-summary[_ngcontent-%COMP%] em[_ngcontent-%COMP%]{display:flex;align-items:center;gap:5px;color:var(--muted-2);font-size:10px;font-style:normal;font-weight:760;text-transform:uppercase}.context-load-summary[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--text-strong);font-size:14px;line-height:1.1;overflow-wrap:anywhere}.context-call-bars[_ngcontent-%COMP%]{display:grid;grid-auto-columns:minmax(60px,1fr);grid-auto-flow:column;gap:7px;overflow-x:auto;padding:2px 0 6px}.context-call-bar[_ngcontent-%COMP%]{display:grid;grid-template-rows:auto 58px auto auto;gap:5px;align-items:end;min-width:60px;border:1px solid var(--line);border-radius:10px;padding:7px;background:#ffffff06;color:var(--text);font:inherit;text-align:left;cursor:pointer}.context-call-bar.after-user-request[_ngcontent-%COMP%]{border-color:#1fd1a53d;box-shadow:inset 0 2px #1fd1a54d}.context-call-bar[_ngcontent-%COMP%]:hover, .context-call-bar[_ngcontent-%COMP%]:focus-visible{border-color:#1fd1a580;outline:none;background:#1fd1a512}.context-call-bar[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .context-call-bar[_ngcontent-%COMP%] em[_ngcontent-%COMP%]{color:var(--muted-2);font-size:10px;font-style:normal;font-weight:760}.context-call-index[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:4px}.context-marker-stack[_ngcontent-%COMP%]{display:inline-flex;flex-wrap:wrap;justify-content:flex-end;gap:3px}.user-request-marker[_ngcontent-%COMP%], .setup-payload-marker[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:fit-content;min-width:19px;height:13px;border:1px solid rgba(31,209,165,.24);border-radius:999px;padding:0 4px;background:#1fd1a512;color:var(--success-text, #bbfff0);font-size:8px;font-weight:760;line-height:1;text-transform:none}.setup-payload-marker[_ngcontent-%COMP%]{min-width:30px;border-color:#7c5cff3d;background:#7c5cff14;color:var(--text)}.setup-payload-line[_ngcontent-%COMP%]{color:var(--muted-2)!important}.setup-footprint-panel[_ngcontent-%COMP%]{border:1px solid rgba(124,92,255,.2);border-radius:12px;background:radial-gradient(circle at 0% 0%,rgba(124,92,255,.08),transparent 34%),var(--surface-soft)}.setup-footprint-panel[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:0 12px;cursor:pointer;list-style:none}.setup-footprint-panel[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]::-webkit-details-marker{display:none}.setup-footprint-panel[_ngcontent-%COMP%] summary[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:grid;gap:2px}.setup-footprint-panel[_ngcontent-%COMP%] summary[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--text-strong);font-size:13px;font-weight:760}.setup-footprint-panel[_ngcontent-%COMP%] summary[_ngcontent-%COMP%] em[_ngcontent-%COMP%], .setup-footprint-note[_ngcontent-%COMP%]{color:var(--muted);font-size:12px;font-style:normal;line-height:1.4}.setup-footprint-panel[_ngcontent-%COMP%] summary[_ngcontent-%COMP%] b[_ngcontent-%COMP%]{flex:0 0 auto;border:1px solid rgba(124,92,255,.24);border-radius:999px;padding:4px 8px;background:#7c5cff17;color:var(--text);font-size:11px;font-weight:760}.setup-footprint-body[_ngcontent-%COMP%]{display:grid;gap:10px;padding:0 12px 12px}.setup-footprint-metrics[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.setup-footprint-metrics[_ngcontent-%COMP%] article[_ngcontent-%COMP%]{display:grid;gap:4px;border:1px solid var(--line);border-radius:10px;padding:9px;background:#ffffff06}.setup-footprint-metrics[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:var(--muted-2);font-size:10px;font-weight:760;letter-spacing:.08em;text-transform:uppercase}.setup-footprint-metrics[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--text-strong);font-size:16px;line-height:1.1;overflow-wrap:anywhere}.setup-footprint-metrics[_ngcontent-%COMP%] p[_ngcontent-%COMP%], .setup-profile-row[_ngcontent-%COMP%] em[_ngcontent-%COMP%]{margin:0;color:var(--muted);font-size:12px;line-height:1.35;overflow-wrap:anywhere}.setup-profile-table[_ngcontent-%COMP%]{display:grid;overflow:auto hidden;border:1px solid var(--line);border-radius:10px}.setup-profile-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(160px,1fr) minmax(120px,.75fr) minmax(170px,1fr);gap:10px;min-width:720px;padding:9px 10px;border-bottom:1px solid var(--line)}.setup-profile-row[_ngcontent-%COMP%]:last-child{border-bottom:0}.setup-profile-heading[_ngcontent-%COMP%]{background:var(--surface-soft);color:var(--muted-2);font-size:11px;font-weight:760;text-transform:uppercase}.setup-profile-row[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:grid;gap:3px;color:var(--text-strong);font-size:12px}.setup-footprint-note[_ngcontent-%COMP%]{margin:0}.context-call-bar[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{display:flex;align-items:end;width:100%;height:58px;overflow:hidden;border-radius:8px;background:#ffffff0e}.context-call-bar[_ngcontent-%COMP%] b[_ngcontent-%COMP%]{display:block;width:100%;min-height:4px;border-radius:8px 8px 0 0;background:linear-gradient(180deg,var(--accent-2),var(--accent))}.context-call-bar[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--text-strong);font-size:11px;line-height:1.1;overflow-wrap:anywhere}.context-call-bar.elevated-limit[_ngcontent-%COMP%] b[_ngcontent-%COMP%]{background:linear-gradient(180deg,var(--warning),var(--accent))}.context-call-bar.near-limit[_ngcontent-%COMP%] b[_ngcontent-%COMP%]{background:linear-gradient(180deg,var(--danger),var(--warning))}.context-call-bar.elevated-limit[_ngcontent-%COMP%]{border-color:#f4a0415c}.context-call-bar.near-limit[_ngcontent-%COMP%]{border-color:#ff5b6e61}.input-bar[_ngcontent-%COMP%]{background:var(--accent)}.cached-input-bar[_ngcontent-%COMP%]{background:var(--accent-2)}.output-bar[_ngcontent-%COMP%]{background:var(--warning)}.model-call-table[_ngcontent-%COMP%]{display:grid;border:1px solid var(--line);border-radius:8px;overflow:auto hidden;background:var(--surface)}.model-call-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(58px,.35fr) minmax(92px,.55fr) minmax(150px,.95fr) minmax(145px,.85fr) minmax(145px,.85fr) minmax(64px,.35fr) minmax(260px,1.45fr);gap:12px;align-items:start;min-width:1000px;padding:11px 12px;border-bottom:1px solid var(--line);background:transparent}.model-call-row[_ngcontent-%COMP%]:last-child{border-bottom:0}.model-call-heading[_ngcontent-%COMP%]{background:var(--surface-soft);font-size:12px;font-weight:800;text-transform:uppercase}.model-call-row[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .model-call-row[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:grid;gap:3px}.model-call-row[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--text-strong)}.model-call-row[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .model-call-row[_ngcontent-%COMP%] em[_ngcontent-%COMP%]{color:var(--muted);font-size:13px;font-style:normal}.model-call-row[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:last-child em[_ngcontent-%COMP%]{overflow-wrap:anywhere}.trace-link[_ngcontent-%COMP%]{width:fit-content;border:1px solid rgba(31,209,165,.35);border-radius:999px;padding:4px 8px;background:var(--teal-soft);color:var(--success-text, #bbfff0);font:inherit;font-size:12px;font-weight:900;cursor:pointer}.trace-link[_ngcontent-%COMP%]:hover, .trace-jump[_ngcontent-%COMP%]:hover{border-color:var(--accent-2);background:#1fd1a52e}.trace-jump[_ngcontent-%COMP%]{min-height:32px;border:1px solid rgba(31,209,165,.35);border-radius:999px;padding:0 12px;background:var(--teal-soft);color:var(--success-text, #bbfff0);font:inherit;font-size:12px;font-weight:800;white-space:nowrap;cursor:pointer}.share-meter[_ngcontent-%COMP%]{display:block!important;width:54px;height:5px;overflow:hidden;border-radius:999px;background:#ffffff14}.share-meter[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{display:block;width:var(--share, 0%);height:100%;border-radius:inherit;background:var(--accent)}.warning-text[_ngcontent-%COMP%]{color:var(--warning-text, #ffe0a0)!important;font-weight:800}.empty[_ngcontent-%COMP%]{margin:0;color:var(--muted)}@media(max-width:1100px){.model-call-header[_ngcontent-%COMP%]{display:grid}.turn-focus-strip[_ngcontent-%COMP%], .context-load-header[_ngcontent-%COMP%]{grid-template-columns:1fr}.model-call-table[_ngcontent-%COMP%]{overflow:visible;border:0;gap:10px;background:transparent}.setup-footprint-metrics[_ngcontent-%COMP%]{grid-template-columns:repeat(2,minmax(0,1fr))}.model-call-heading[_ngcontent-%COMP%]{display:none}.model-call-row[_ngcontent-%COMP%]{grid-template-columns:1fr;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft)}.model-call-row[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(92px,.28fr) minmax(0,1fr);gap:10px}.model-call-row[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]:before{content:attr(data-label);color:var(--muted-2);font-size:11px;font-weight:850;text-transform:uppercase}}@media(max-width:560px){.setup-footprint-panel[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]{align-items:flex-start;flex-direction:column;padding:10px 12px}.setup-footprint-metrics[_ngcontent-%COMP%]{grid-template-columns:1fr}.model-call-row[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{grid-template-columns:1fr;gap:3px}}.run-panel[_ngcontent-%COMP%]{border-radius:14px;padding:14px}.eyebrow[_ngcontent-%COMP%], .turn-insight-grid[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:10px;font-weight:760;letter-spacing:.08em}.model-call-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{font-size:18px;font-weight:760;line-height:1.2}.model-call-header[_ngcontent-%COMP%] p[_ngcontent-%COMP%], .model-call-row[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .model-call-row[_ngcontent-%COMP%] em[_ngcontent-%COMP%], .turn-insight-grid[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{font-size:12px}.segmented-control[_ngcontent-%COMP%]{border-radius:999px}.segmented-control[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{min-height:30px;padding:6px 10px;font-size:12px;font-weight:720}.turn-insight-grid[_ngcontent-%COMP%], .model-call-table[_ngcontent-%COMP%]{gap:10px}.turn-insight-grid[_ngcontent-%COMP%] article[_ngcontent-%COMP%], .model-call-table[_ngcontent-%COMP%], .model-call-row[_ngcontent-%COMP%]{border-radius:12px}.turn-insight-grid[_ngcontent-%COMP%] article[_ngcontent-%COMP%]{padding:10px}.turn-insight-grid[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{font-size:16px;font-weight:760}.model-call-row[_ngcontent-%COMP%]{gap:10px;padding:9px 10px}.model-call-heading[_ngcontent-%COMP%]{font-size:11px;font-weight:720}.trace-link[_ngcontent-%COMP%]{padding:3px 7px;font-size:11px;font-weight:760}.turn-focus-strip[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .token-split[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:10px;font-weight:760;letter-spacing:.08em}.turn-focus-strip[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{font-size:16px;font-weight:760}.theme-light[_nghost-%COMP%] .run-panel[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .run-panel[_ngcontent-%COMP%]{background:linear-gradient(180deg,#ffffffc2,#ffffff75),var(--surface);box-shadow:var(--shadow)}.theme-light[_nghost-%COMP%] .segmented-control[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .segmented-control[_ngcontent-%COMP%], .theme-light[_nghost-%COMP%] .turn-insights-disclosure[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .turn-insights-disclosure[_ngcontent-%COMP%]{background:#ffffff94}.theme-light[_nghost-%COMP%] .turn-insight-grid[_ngcontent-%COMP%] article[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .turn-insight-grid[_ngcontent-%COMP%] article[_ngcontent-%COMP%], .theme-light[_nghost-%COMP%] .model-call-row[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .model-call-row[_ngcontent-%COMP%]{background:#ffffffa3}.theme-light[_nghost-%COMP%] .turn-focus-strip[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .turn-focus-strip[_ngcontent-%COMP%]{border-color:#6f5cff33;background:radial-gradient(circle at 0% 0%,rgba(111,92,255,.12),transparent 36%),linear-gradient(135deg,#0c9f830e,#6f5cff06),var(--surface)}.theme-light[_nghost-%COMP%] .context-load-timeline[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .context-load-timeline[_ngcontent-%COMP%]{border-color:#0c9f832e;background:radial-gradient(circle at 8% 0%,rgba(12,159,131,.11),transparent 36%),linear-gradient(135deg,#6f5cff0e,#0c9f830a),#ffffffb3}.theme-light[_nghost-%COMP%] .context-load-summary[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .context-load-summary[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .theme-light[_nghost-%COMP%] .context-call-bar[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .context-call-bar[_ngcontent-%COMP%]{background:#ffffffa3}.theme-light[_nghost-%COMP%] .context-call-bar[_ngcontent-%COMP%]:hover, .theme-light [_nghost-%COMP%] .context-call-bar[_ngcontent-%COMP%]:hover, .theme-light[_nghost-%COMP%] .context-call-bar[_ngcontent-%COMP%]:focus-visible, .theme-light [_nghost-%COMP%] .context-call-bar[_ngcontent-%COMP%]:focus-visible{background:#0c9f8314}.theme-light[_nghost-%COMP%] .context-call-bar[_ngcontent-%COMP%] i[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .context-call-bar[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{background:#61708521}.theme-light[_nghost-%COMP%] .user-request-marker[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .user-request-marker[_ngcontent-%COMP%]{border-color:#0c9f833d;background:#0c9f8317;color:#087763}.theme-light[_nghost-%COMP%] .setup-payload-marker[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .setup-payload-marker[_ngcontent-%COMP%]{border-color:#6f5cff33;background:#6f5cff12;color:#5846b8}.theme-light[_nghost-%COMP%] .setup-footprint-panel[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .setup-footprint-panel[_ngcontent-%COMP%]{border-color:#6f5cff29;background:radial-gradient(circle at 0% 0%,rgba(111,92,255,.07),transparent 34%),#ffffffa3}.theme-light[_nghost-%COMP%] .setup-footprint-metrics[_ngcontent-%COMP%] article[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .setup-footprint-metrics[_ngcontent-%COMP%] article[_ngcontent-%COMP%], .theme-light[_nghost-%COMP%] .setup-profile-row[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .setup-profile-row[_ngcontent-%COMP%]{background:#ffffff94}.theme-light[_nghost-%COMP%] .model-call-table[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .model-call-table[_ngcontent-%COMP%]{background:var(--surface);box-shadow:var(--shadow-soft)}.theme-light[_nghost-%COMP%] .model-call-row[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .model-call-row[_ngcontent-%COMP%]{background:#ffffffb8}.theme-light[_nghost-%COMP%] .share-meter[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .share-meter[_ngcontent-%COMP%], .theme-light[_nghost-%COMP%] .token-split-bar[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .token-split-bar[_ngcontent-%COMP%]{background:#61708529}']})};var pp=(n,t)=>t.model+t.pricingModel;function up(n,t){if(n&1&&(s(0,"span"),l(1),I(2,"app-help-popover",8),a()),n&2){let e=t,i=m();d(),v(" ",e.size," "),d(),P("text",i.sessionSizeHelp(e))}}function gp(n,t){if(n&1&&(s(0,"span",2),l(1),I(2,"app-help-popover",9),a()),n&2){let e=m();d(),v(" Reasoning ",t," "),d(),P("text",e.reasoningEffortHelp(e.session))}}function mp(n,t){if(n&1){let e=H();s(0,"button",11),w("click",function(){E(e);let o=m(2);return k(o.openFirstFilteredSession.emit())}),l(1,"Open first visible run"),a()}}function hp(n,t){if(n&1&&(s(0,"div",6)(1,"div")(2,"span"),l(3,"Open run is outside the current filters"),a(),s(4,"strong"),l(5),a(),s(6,"p"),l(7,"The selected run stays open so you do not lose your place, but the sidebar filters currently hide it."),a()(),b(8,mp,2,0,"button",10),a()),n&2){let e=m();d(5),v("",e.filteredCount," sessions visible in the rail"),d(3),M(e.filteredCount?8:-1)}}function fp(n,t){if(n&1&&(s(0,"span",12),l(1),I(2,"app-help-popover",13),a()),n&2){let e=t.$implicit,i=m(2);d(),W(" ",e.model," priced as ",e.pricingModel," "),d(),P("text",i.pricingFallbackReason(e.model,e.pricingModel))}}function _p(n,t){if(n&1){let e=H();s(0,"div",7)(1,"div")(2,"span"),l(3,"Pricing assumption"),a(),s(4,"strong"),l(5),a(),s(6,"p"),j(7,fp,3,3,"span",12,pp),a()(),s(9,"button",11),w("click",function(){E(e);let o=m();return k(o.viewPrices.emit())}),l(10,"View prices"),a()()}if(n&2){let e=m();d(5),W("",e.pricingFallbacks.length," raw model id",e.pricingFallbacks.length===1?"":"s"," used fallback pricing"),d(2),B(e.pricingFallbacks)}}var Jn=class n{session;triage=null;outsideFilters=!1;filteredCount=0;pricingFallbacks=[];sessionSizeHelp;pricingFallbackReason;openFirstFilteredSession=new $;viewPrices=new $;reasoningEffortLabel(t){let e=t.traceSummary.reasoningEfforts??[];return e.length?e.map(i=>`${i.effort} (${i.count})`).join(", "):""}reasoningEffortHelp(t){let e=this.reasoningEffortLabel(t);return e?`Reasoning setting VS Code recorded for this run's model requests. Higher reasoning can improve hard tasks, but it may also use more tokens or take longer. Imported values: ${e}.`:"VS Code did not record a reasoning setting for this run."}costLabel(t){return Yo(t)}costHelp(t){return t.sourceUsage?"Usage reported by VS Code Copilot for this run.":"Fallback estimate from imported token buckets and GitHub model prices because source usage was not logged."}displayedUsageUsd(t){return Oe(t)}displayedUsageCredits(t){return Xo(t)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=ee({type:n,selectors:[["app-selected-run-header"]],inputs:{session:"session",triage:"triage",outsideFilters:"outsideFilters",filteredCount:"filteredCount",pricingFallbacks:"pricingFallbacks",sessionSizeHelp:"sessionSizeHelp",pricingFallbackReason:"pricingFallbackReason"},outputs:{openFirstFilteredSession:"openFirstFilteredSession",viewPrices:"viewPrices"},decls:23,vars:22,consts:[[1,"detail-header"],[1,"source-meta"],[1,"reasoning-chip"],[1,"detail-subtitle"],[1,"price"],["label","Explain displayed cost",3,"text"],[1,"source-callout","filter-mismatch-callout"],[1,"source-callout","pricing-fallback-callout"],["label","Explain run size",3,"text"],["label","Explain reasoning effort",3,"text"],["type","button",1,"ghost-button"],["type","button",1,"ghost-button",3,"click"],[1,"inline-fallback"],["label","Explain fallback pricing",3,"text"]],template:function(e,i){if(e&1&&(s(0,"div",0)(1,"div")(2,"div",1),b(3,up,3,2,"span"),b(4,gp,3,2,"span",2),a(),s(5,"h2"),l(6),a(),s(7,"p",3),l(8),h(9,"number"),h(10,"number"),a()(),s(11,"div",4)(12,"span"),l(13),I(14,"app-help-popover",5),a(),s(15,"strong"),l(16),h(17,"number"),a(),s(18,"em"),l(19),h(20,"number"),a()()(),b(21,hp,9,2,"div",6),b(22,_p,11,2,"div",7)),e&2){let o,r;d(3),M((o=i.triage)?3:-1,o),d(),M((r=i.reasoningEffortLabel(i.session))?4:-1,r),d(2),C(i.session.title),d(2),Ye(" ",i.session.model," \xB7 ",x(9,12,i.session.traceSummary.modelTurns)," model turns \xB7 ",x(10,14,i.session.traceSummary.totalTokens)," tokens "),d(5),v(" ",i.costLabel(i.session)," "),d(),P("text",i.costHelp(i.session)),d(2),v("$",S(17,16,i.displayedUsageUsd(i.session),"1.2-2")),d(3),v("",S(20,19,i.displayedUsageCredits(i.session),"1.0-2")," credits"),d(2),M(i.outsideFilters?21:-1),d(),M(i.pricingFallbacks.length?22:-1)}},dependencies:[we,re],styles:[".detail-header[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,auto);align-items:stretch;gap:12px;border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--header-gradient, linear-gradient(135deg, rgba(111, 92, 255, .13), rgba(39, 214, 176, .055)), var(--surface-soft))}.detail-header[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:first-child{min-width:min(100%,380px)}.source-meta[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 3px}.source-meta[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:999px;padding:2px 7px;background:var(--surface-soft);color:var(--text);font-size:10px;font-weight:720}.source-meta[_ngcontent-%COMP%] > span.reasoning-chip[_ngcontent-%COMP%]{border-color:#8b7dff6b;background:#8b7dff21;color:var(--text-strong)}h2[_ngcontent-%COMP%]{margin:3px 0 0;color:var(--text-strong);font-size:17px;font-weight:760;line-height:1.18;letter-spacing:0}.detail-subtitle[_ngcontent-%COMP%]{margin:4px 0 0;color:var(--text);font-size:12px}.price[_ngcontent-%COMP%]{display:grid;align-content:center;justify-items:end;min-width:220px;border:1px solid rgba(31,209,165,.22);border-radius:10px;padding:10px;background:#1fd1a514}.price[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:var(--muted);font-size:12px}.price[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--text-strong);font-size:clamp(22px,2.5vw,30px);font-weight:760;line-height:1;letter-spacing:0}.price[_ngcontent-%COMP%] > em[_ngcontent-%COMP%]{margin-top:4px;color:var(--muted);font-size:11px;font-style:normal;font-weight:720}.source-callout[_ngcontent-%COMP%]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-left:4px solid var(--accent-2);border-radius:12px;padding:12px;background:var(--surface-soft)}.source-callout[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:block;margin-bottom:3px;color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.source-callout[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--text-strong);font-size:15px;font-weight:760}.source-callout[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{max-width:920px;margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.42}.source-callout[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{align-self:center;white-space:nowrap}.source-callout[_ngcontent-%COMP%] .inline-fallback[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:5px;margin:0 12px 4px 0;color:inherit;font-size:13px;font-weight:800;text-transform:none}.filter-mismatch-callout[_ngcontent-%COMP%], .pricing-fallback-callout[_ngcontent-%COMP%]{margin-top:10px}.ghost-button[_ngcontent-%COMP%]{border:1px solid var(--line);border-radius:9px;padding:7px 10px;background:var(--surface-soft);color:var(--text);font:inherit;font-size:13px;font-weight:720;cursor:pointer}.ghost-button[_ngcontent-%COMP%]:hover{border-color:var(--line-strong)}.ghost-button[_ngcontent-%COMP%]:focus-visible{outline:2px solid rgba(39,214,176,.75);outline-offset:2px}.theme-light[_nghost-%COMP%] .detail-header[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .detail-header[_ngcontent-%COMP%]{border-color:#bdcbdae6;box-shadow:var(--shadow-soft)}.theme-light[_nghost-%COMP%] .source-meta[_ngcontent-%COMP%] > span[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .source-meta[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{background:#ffffffb8}.theme-light[_nghost-%COMP%] .price[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .price[_ngcontent-%COMP%]{border-color:#0c9f8338;background:radial-gradient(circle at 100% 0%,rgba(12,159,131,.1),transparent 42%),#ffffff9e;box-shadow:0 10px 24px #1f2d4014}.theme-light[_nghost-%COMP%] .source-callout[_ngcontent-%COMP%], .theme-light [_nghost-%COMP%] .source-callout[_ngcontent-%COMP%]{box-shadow:var(--shadow-soft)}@media(max-width:900px){.detail-header[_ngcontent-%COMP%], .source-callout[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr;gap:12px}.price[_ngcontent-%COMP%]{justify-items:start;min-width:0}}@media(max-width:600px){.source-meta[_ngcontent-%COMP%]{gap:5px}}"]})};var Cp=()=>[import("./chunk-RNKEPBEU.js").then(n=>n.UsagePageComponent)],vp=()=>[import("./chunk-DLWQO3VR.js").then(n=>n.PricingPageComponent)],xp=()=>[import("./chunk-C6VWIY5S.js").then(n=>n.AnalyticsPageComponent)],bp=()=>[import("./chunk-Z3XIAKMM.js").then(n=>n.ComparePageComponent)];function Mp(n,t){if(n&1){let e=H();s(0,"app-session-rail",19),w("queryChange",function(o){E(e);let r=m();return k(r.setQuery(o))})("sizeFilterChange",function(o){E(e);let r=m();return k(r.setSizeFilter(o))})("warningFilterChange",function(o){E(e);let r=m();return k(r.setWarningFilter(o))})("workspaceFilterChange",function(o){E(e);let r=m();return k(r.setWorkspaceFilter(o))})("modelFilterChange",function(o){E(e);let r=m();return k(r.setModelFilter(o))})("timeFilterChange",function(o){E(e);let r=m();return k(r.setTimeFilter(o))})("selectSession",function(o){E(e);let r=m();return k(r.selectSessionFromRail(o))})("closeRail",function(){E(e);let o=m();return k(o.closeSessionRail())}),a(),s(1,"button",20),w("click",function(){E(e);let o=m();return k(o.closeSessionRail())}),a()}if(n&2){let e,i=m();P("sessions",i.sessions())("filteredSessions",i.filteredSessions())("selectedSessionId",((e=i.selectedSession())==null?null:e.id)??null)("query",i.query())("sizeFilter",i.sizeFilter())("warningFilter",i.warningFilter())("workspaceFilter",i.workspaceFilter())("modelFilter",i.modelFilter())("timeFilter",i.timeFilter())("warningOptions",i.warningOptions())("sizeOptions",i.sizeOptions)("workspaceOptions",i.workspaceOptions())("modelOptions",i.modelOptions())("timeOptions",i.timeOptions)}}function Pp(n,t){if(n&1){let e=H();s(0,"app-usage-page",21),w("allowancePlanChange",function(o){E(e);let r=m(2);return k(r.setAllowancePlan(o))})("openSession",function(o){E(e);let r=m(2);return k(r.openSession(o))}),a()}if(n&2){let e=m(2);P("sessions",e.sessions())("allowancePlan",e.allowancePlan())}}function yp(n,t){n&1&&(s(0,"p",22),l(1,"Loading usage..."),a())}function Op(n,t){n&1&&(Ct(0,Pp,1,2)(1,yp,2,0),vt(2,0,Cp,null,1),xt())}function wp(n,t){if(n&1){let e=H();s(0,"app-pricing-page",23),w("selectedAllowancePlanChange",function(o){E(e);let r=m(2);return k(r.setAllowancePlan(o))}),a()}if(n&2){let e=m(2);P("sessions",e.sessions())("selectedAllowancePlan",e.allowancePlan())}}function Sp(n,t){n&1&&(s(0,"p",22),l(1,"Loading prices\u2026"),a())}function Tp(n,t){n&1&&(Ct(0,wp,1,2)(1,Sp,2,0),vt(2,0,vp,null,1),xt())}function Ep(n,t){if(n&1){let e=H();s(0,"app-analytics-page",24),w("openSession",function(o){E(e);let r=m(2);return k(r.openSession(o))}),a()}if(n&2){let e=m(2);P("sessions",e.sessions())}}function kp(n,t){n&1&&(s(0,"p",22),l(1,"Loading insights..."),a())}function Rp(n,t){n&1&&(Ct(0,Ep,1,1)(1,kp,2,0),vt(2,0,xp,null,1),xt())}function Ip(n,t){if(n&1){let e=H();s(0,"app-compare-page",25),w("compareAChange",function(o){E(e);let r=m(2);return k(r.compareA.set(o))})("compareBChange",function(o){E(e);let r=m(2);return k(r.compareB.set(o))}),a()}if(n&2){let e=m(2);P("sessions",e.sessions())("compareA",e.compareA())("compareB",e.compareB())}}function Dp(n,t){n&1&&(s(0,"p",22),l(1,"Loading comparison\u2026"),a())}function Ap(n,t){n&1&&(Ct(0,Ip,1,3)(1,Dp,2,0),vt(2,0,bp,null,1),xt())}function Np(n,t){n&1&&(s(0,"span"),l(1),a()),n&2&&(d(),C(t.title))}function Fp(n,t){if(n&1&&I(0,"app-session-import-context",28),n&2){let e=m(2);P("ingestion",t)("summary",e.summary())("help",e.help)}}function Lp(n,t){if(n&1){let e=H();s(0,"button",35),w("click",function(){E(e);let o=m(3);return k(o.selectedRunView.set("cost"))}),s(1,"span"),l(2,"1 \xB7 Diagnose"),a(),s(3,"strong"),l(4,"Cost"),a(),s(5,"em"),l(6),h(7,"number"),a()(),s(8,"button",35),w("click",function(){E(e);let o=m(3);return k(o.selectedRunView.set("turns"))}),s(9,"span"),l(10,"2 \xB7 Review"),a(),s(11,"strong"),l(12,"Calls"),a(),s(13,"em"),l(14),h(15,"number"),a()(),s(16,"button",35),w("click",function(){E(e);let o=m(3);return k(o.selectedRunView.set("trace"))}),s(17,"span"),l(18,"3 \xB7 Verify"),a(),s(19,"strong"),l(20,"Trace"),a(),s(21,"em"),l(22),h(23,"number"),a()()}if(n&2){let e=t,i=m(),o=m(2);q("active",o.selectedRunView()==="cost"),d(6),W("",e.costAnswer.category," \xB7 ",S(7,10,e.costAnswer.categoryShare,"1.0-0"),"%"),d(2),q("active",o.selectedRunView()==="turns"),d(6),v("",x(15,13,e.modelCallRows.length)," model calls"),d(2),q("active",o.selectedRunView()==="trace"),d(6),v("",x(23,15,i.traceSummary.totalEvents)," raw events")}}function Up(n,t){if(n&1){let e=H();s(0,"app-session-overview",36),w("openCallsTimeline",function(){E(e);let o=m(3);return k(o.selectedRunView.set("turns"))}),a()}if(n&2){let e=m(),i=m(2);P("session",e)("triage",i.selectedTriage())("triageHelp",i.sessionTriageHelp)}}function zp(n,t){if(n&1&&I(0,"app-session-cost",37),n&2){let e=m(2),i=m(2);P("session",e)("cost",t)("help",i.help)("pricingSourceUrl",i.pricingSourceUrl)}}function jp(n,t){if(n&1&&b(0,zp,1,4,"app-session-cost",37),n&2){let e,i=m(3);M((e=i.costExplanation())?0:-1,e)}}function Bp(n,t){if(n&1){let e=H();s(0,"app-session-turns",39),w("sortChange",function(o){E(e);let r=m(4);return k(r.modelCallSort.set(o))})("openTraceEvent",function(o){E(e);let r=m(4);return k(r.openTraceEvent(o))}),a()}if(n&2){let e=m(4);P("cost",t)("sort",e.modelCallSort())}}function Vp(n,t){if(n&1&&b(0,Bp,1,2,"app-session-turns",38),n&2){let e,i=m(3);M((e=i.costExplanation())?0:-1,e)}}function $p(n,t){if(n&1){let e=H();s(0,"app-session-trace",40),w("traceViewChange",function(o){E(e);let r=m(3);return k(r.traceView.set(o))})("traceFilterChange",function(o){E(e);let r=m(3);return k(r.setTraceFilter(o))})("selectTraceEvent",function(o){E(e);let r=m(3);return k(r.selectTraceEvent(o))}),a()}if(n&2){let e=m(3);P("traceView",e.traceView())("traceFilter",e.traceFilter())("traceFilterOptions",e.traceFilterOptions)("filteredTraceEvents",e.filteredTraceEvents())("selectedTraceEvent",e.selectedTraceEvent())("selectedTraceEventDetails",e.selectedTraceEventDetails())("openedFromTurns",e.traceOpenedFromTurns())("flowEvents",e.flowEvents())}}function Hp(n,t){if(n&1){let e=H();s(0,"section",29)(1,"app-selected-run-header",30),w("openFirstFilteredSession",function(){E(e);let o=m(2);return k(o.openFirstFilteredSession())})("viewPrices",function(){E(e);let o=m(2);return k(o.activeView.set("pricing"))}),a(),s(2,"nav",31)(3,"button",32),w("click",function(){E(e);let o=m(2);return k(o.selectedRunView.set("overview"))}),s(4,"span"),l(5,"Run facts"),a(),s(6,"strong"),l(7,"Overview"),a(),s(8,"em"),l(9,"Metadata and evidence counts"),a()(),b(10,Lp,24,17),a(),b(11,Up,1,3,"app-session-overview",33),b(12,jp,1,1),b(13,Vp,1,1),b(14,$p,1,8,"app-session-trace",34),a()}if(n&2){let e,i=m(2);d(),P("session",t)("triage",i.selectedTriage())("outsideFilters",i.selectedSessionOutsideFilters())("filteredCount",i.filteredSessions().length)("pricingFallbacks",i.selectedPricingFallbacks())("sessionSizeHelp",i.sessionSizeHelp)("pricingFallbackReason",i.pricingFallbackReason),d(2),q("active",i.selectedRunView()==="overview"),d(7),M((e=i.costExplanation())?10:-1,e),d(),M(i.selectedRunView()==="overview"?11:-1),d(),M(i.selectedRunView()==="cost"?12:-1),d(),M(i.selectedRunView()==="turns"?13:-1),d(),M(i.selectedRunView()==="trace"?14:-1)}}function qp(n,t){if(n&1){let e=H();s(0,"section",18)(1,"div",26)(2,"button",27),w("click",function(){E(e);let o=m();return k(o.openSessionRail())}),s(3,"span"),l(4,"Browse sessions"),a(),s(5,"strong"),l(6),h(7,"number"),a()(),b(8,Np,2,1,"span"),a(),b(9,Fp,1,3,"app-session-import-context",28),b(10,Hp,15,14,"section",29),a()}if(n&2){let e,i,o,r=m();d(6),C(x(7,4,r.filteredSessions().length)),d(2),M((e=r.selectedSession())?8:-1,e),d(),M((i=(i=r.sessionData())==null?null:i.ingestion)?9:-1,i),d(),M((o=r.selectedSession())?10:-1,o)}}var Kn=class n{sessionDataService=y(Ln);selectedRunExplanationService=y(Bn);document=y(ce);sessionData=this.sessionDataService.sessionData;sessionDataLoadState=this.sessionDataService.loadState;sessionDataLoadError=this.sessionDataService.loadError;sessionDataRefreshState=this.sessionDataService.refreshState;sessionDataRefreshMessage=this.sessionDataService.refreshMessage;selectedId=L(null);compareA=L(null);compareB=L(null);query=L("");sizeFilter=L("all");warningFilter=L("all");workspaceFilter=L("all");modelFilter=L("all");timeFilter=L("all");traceView=L("logs");traceFilter=L("all");selectedTraceEventIndex=L(null);traceOpenedFromTurns=L(!1);modelCallSort=L("timeline");activeView=L(this.readInitialView());selectedRunView=L("overview");sessionRailOpen=L(!1);theme=L(this.readStoredTheme());allowancePlan=L("business-standard");pricingSourceUrl=Wo;help={appEstimate:"Estimated from imported local token counts and GitHub published model prices. This is useful for debugging a run, but it is not your GitHub bill.",debugLogs:"Best source for cost debugging. These VS Code logs include the model used plus input and output token counts for each model call.",chatSnapshots:"Useful for seeing chat history, but weaker for cost. They often do not include the full prompt/context token count sent to the model.",stateDbs:"VS Code local databases. We read them only to improve titles, labels, location, and restored-session details.",stateEnriched:"This many sessions got better names/details from VS Code state. Cost still comes from debug logs.",emptyDebugLogs:"Folders VS Code created but never filled with useful chat/model activity. We skip them so they do not look like real zero-cost runs.",snapshotsWithoutRequests:"Chat files without usable request records. They do not contain enough structure to import safely.",inputTokens:"Normal, non-cached input/context tokens priced at the GitHub input rate. Raw VS Code inputTokens can be higher when cachedTokens are present.",outputTokens:"Generated model response tokens.",cachedInput:"Input/context tokens VS Code reported as cachedTokens. They are part of the raw input sent to the model, but priced with GitHub cached-input rates instead of normal input rates.",cacheWrite:"Provider cache creation tokens when the billing source exposes them. GitHub lists this mainly for Anthropic pricing rows.",priceRow:"The GitHub model pricing row used to estimate this model. Unknown models keep their display label and show any pricing fallback separately.",pricingFallback:"The raw model name from VS Code did not match a GitHub price row in the local pricing table, so the estimate uses the displayed fallback price row. Treat this as an explicit estimate assumption."};sessionTriageHelp="Fast read derived from imported tokens and model mix. These are cost-debugging signals, not billing rows.";sizeOptions=["all","Small","Medium","Large","Very large"];timeOptions=[{value:"all",label:"All time"},{value:"7d",label:"Last 7 days"},{value:"30d",label:"Last 30 days"},{value:"90d",label:"Last 90 days"}];traceFilterOptions=[{value:"all",label:"All events"},{value:"model",label:"Model calls"},{value:"tool",label:"Tools"},{value:"discovery",label:"Discovery"},{value:"message",label:"User messages"},{value:"response",label:"Agent responses"},{value:"error",label:"Errors"}];sessions=te(()=>this.sessionData()?.sessions??[]);warningOptions=te(()=>{let t=new Set;for(let e of this.sessions())for(let i of this.sessionTriage(e).warnings)t.add(i.label);return["all",...[...t].sort()]});workspaceOptions=te(()=>["all",...[...new Set(this.sessions().map(t=>t.workspace).filter(Boolean))].sort()]);modelOptions=te(()=>["all",...[...new Set(this.sessions().map(t=>t.model).filter(Boolean))].sort()]);latestSessionTime=te(()=>Math.max(0,...this.sessions().map(t=>Date.parse(t.startedAt)||0)));filteredSessions=te(()=>{let t=this.query().trim().toLowerCase(),e=this.sizeFilter(),i=this.warningFilter(),o=this.workspaceFilter(),r=this.modelFilter(),c=this.timeFilter();return[...this.sessions()].sort((u,g)=>g.startedAt.localeCompare(u.startedAt)).filter(u=>this.matchesQuery(u,t)&&this.matchesSizeFilter(u,e)&&this.matchesWarningFilter(u,i)&&this.matchesWorkspaceFilter(u,o)&&this.matchesModelFilter(u,r)&&this.matchesTimeFilter(u,c))});selectedSession=te(()=>{let t=this.selectedId()??this.filteredSessions()[0]?.id;return this.sessions().find(e=>e.id===t)??null});selectedRunExplanationState=this.selectedRunExplanationService.createState({filteredSessions:this.filteredSessions,selectedSession:this.selectedSession,modelCallSort:this.modelCallSort,traceFilter:this.traceFilter,selectedTraceEventIndex:this.selectedTraceEventIndex});costExplanation=this.selectedRunExplanationState.costExplanation;flowEvents=this.selectedRunExplanationState.flowEvents;filteredTraceEvents=this.selectedRunExplanationState.filteredTraceEvents;selectedTraceEvent=this.selectedRunExplanationState.selectedTraceEvent;selectedTraceEventDetails=this.selectedRunExplanationState.selectedTraceEventDetails;selectedSessionOutsideFilters=this.selectedRunExplanationState.selectedSessionOutsideFilters;selectedPricingFallbacks=this.selectedRunExplanationState.selectedPricingFallbacks;selectedTriage=this.selectedRunExplanationState.selectedTriage;summary=te(()=>{let t=this.sessions(),e=t.reduce((i,o)=>(i.usd+=Oe(o),i.input+=o.tokens.input,i.output+=o.tokens.output,i.cachedInput+=o.tokens.cachedInput,i.cacheWrite+=o.tokens.cacheWrite,i),{usd:0,input:0,output:0,cachedInput:0,cacheWrite:0});return O({count:t.length},e)});initializedFromSessionData=!1;constructor(){ii(()=>{let t=this.sessionData();!t||this.initializedFromSessionData||(this.initializedFromSessionData=!0,this.selectedId.set(t.sessions[0]?.id??null),this.compareA.set(t.sessions[0]?.id??null),this.compareB.set(t.sessions[1]?.id??null))}),ii(()=>{let t=this.theme();this.document.documentElement.dataset.theme=t,this.document.documentElement.style.colorScheme=t,this.persistTheme(t)})}toggleTheme(){this.theme.set(this.theme()==="light"?"dark":"light")}themeLabel(){return this.theme()==="light"?"Light":"Dark"}refreshSessionData(){this.sessionDataService.refresh()}dataUpdatedLabel(){let t=this.sessionData()?.generatedAt;if(!t)return"No imported data";let e=new Date(t);return Number.isNaN(e.getTime())?"Imported data ready":`Updated ${e.toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}`}selectSession(t){this.selectedId.set(t.id),this.selectedRunView.set("overview"),this.selectedTraceEventIndex.set(null),this.traceOpenedFromTurns.set(!1)}openFirstFilteredSession(){let t=this.filteredSessions()[0];t&&this.selectSession(t)}setQuery(t){this.query.set(t)}setSizeFilter(t){this.sizeFilter.set(t)}setWarningFilter(t){this.warningFilter.set(t)}selectSessionFromRail(t){this.selectSession(t),this.sessionRailOpen.set(!1)}openSessionRail(){this.sessionRailOpen.set(!0)}closeSessionRail(){this.sessionRailOpen.set(!1)}setWorkspaceFilter(t){this.workspaceFilter.set(t)}setModelFilter(t){this.modelFilter.set(t)}setTimeFilter(t){this.timeFilter.set(t)}setAllowancePlan(t){Go.some(e=>e.id===t)&&this.allowancePlan.set(t)}setTraceFilter(t){this.traceFilter.set(t),this.selectedTraceEventIndex.set(null),this.traceOpenedFromTurns.set(!1)}selectTraceEvent(t){this.selectedTraceEventIndex.set(t.index),this.traceOpenedFromTurns.set(!1)}openTraceEvent(t){this.selectedRunView.set("trace"),this.traceView.set("logs"),this.traceFilter.set("all"),this.selectedTraceEventIndex.set(t),this.traceOpenedFromTurns.set(!0)}pricingFallbackReason=Jo;openSession(t){t&&(this.selectedId.set(t.id),this.activeView.set("sessions"),this.selectedRunView.set("overview"),this.selectedTraceEventIndex.set(null),this.traceOpenedFromTurns.set(!1))}sessionTriage(t){return ut(t)}sessionSizeHelp(t){return Oa(t)}matchesQuery(t,e){return e?[t.firstPrompt,t.title,t.workspace,t.model,t.tags.join(" ")].join(" ").toLowerCase().includes(e):!0}matchesSizeFilter(t,e){return e==="all"||this.sessionTriage(t).size===e}matchesWarningFilter(t,e){return e==="all"||this.sessionTriage(t).warnings.some(i=>i.label===e)}matchesWorkspaceFilter(t,e){return e==="all"||t.workspace===e}matchesModelFilter(t,e){return e==="all"||t.model===e}matchesTimeFilter(t,e){if(e==="all")return!0;let i=this.latestSessionTime(),o=Date.parse(t.startedAt),r=Number(e.replace("d",""));return!i||!Number.isFinite(o)||!Number.isFinite(r)?!1:o>=i-r*24*60*60*1e3}readStoredTheme(){try{return globalThis.localStorage?.getItem("copilot-usage-studio-theme")==="dark"?"dark":"light"}catch{return"light"}}readInitialView(){try{let t=new URL(globalThis.location?.href??"").searchParams.get("view");return t==="sessions"||t==="usage"||t==="compare"||t==="analytics"||t==="pricing"?t:"usage"}catch{return"usage"}}persistTheme(t){try{globalThis.localStorage?.setItem("copilot-usage-studio-theme",t)}catch{}}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=ee({type:n,selectors:[["app-root"]],decls:44,vars:34,consts:[[1,"shell"],[1,"topbar"],[1,"brand"],["aria-hidden","true",1,"brand-mark"],[1,"eyebrow"],["aria-label","Application views",1,"view-nav"],["type","button",3,"click"],[1,"topbar-actions"],[1,"data-refresh"],["type","button",1,"data-refresh-button",3,"click","disabled"],["aria-hidden","true",1,"refresh-icon"],["aria-live","polite",1,"data-refresh-status"],["type","button",1,"theme-toggle",3,"click"],["aria-hidden","true",1,"theme-toggle-track"],[1,"theme-toggle-thumb"],[1,"app-body"],[1,"content"],[3,"refresh","state","error","refreshState"],[1,"sessions-page"],[3,"queryChange","sizeFilterChange","warningFilterChange","workspaceFilterChange","modelFilterChange","timeFilterChange","selectSession","closeRail","sessions","filteredSessions","selectedSessionId","query","sizeFilter","warningFilter","workspaceFilter","modelFilter","timeFilter","warningOptions","sizeOptions","workspaceOptions","modelOptions","timeOptions"],["type","button","aria-label","Close session browser",1,"rail-backdrop",3,"click"],[3,"allowancePlanChange","openSession","sessions","allowancePlan"],[1,"deferred-panel"],[3,"selectedAllowancePlanChange","sessions","selectedAllowancePlan"],[3,"openSession","sessions"],[3,"compareAChange","compareBChange","sessions","compareA","compareB"],[1,"sessions-mobile-toolbar"],["type","button",1,"session-rail-toggle",3,"click"],[3,"ingestion","summary","help"],[1,"detail"],[3,"openFirstFilteredSession","viewPrices","session","triage","outsideFilters","filteredCount","pricingFallbacks","sessionSizeHelp","pricingFallbackReason"],["aria-label","Selected run investigation flow",1,"run-tabs","debugger-map"],["type","button",1,"overview-tab",3,"click"],[3,"session","triage","triageHelp"],[3,"traceView","traceFilter","traceFilterOptions","filteredTraceEvents","selectedTraceEvent","selectedTraceEventDetails","openedFromTurns","flowEvents"],["type","button",1,"flow-tab",3,"click"],[3,"openCallsTimeline","session","triage","triageHelp"],[3,"session","cost","help","pricingSourceUrl"],[3,"cost","sort"],[3,"sortChange","openTraceEvent","cost","sort"],[3,"traceViewChange","traceFilterChange","selectTraceEvent","traceView","traceFilter","traceFilterOptions","filteredTraceEvents","selectedTraceEvent","selectedTraceEventDetails","openedFromTurns","flowEvents"]],template:function(e,i){e&1&&(s(0,"main",0)(1,"header",1)(2,"div",2)(3,"span",3),l(4,"US"),a(),s(5,"div")(6,"p",4),l(7,"Local usage intelligence"),a(),s(8,"h1"),l(9,"Copilot Usage Studio"),a()()(),s(10,"nav",5)(11,"button",6),w("click",function(){return i.activeView.set("usage")}),l(12," Usage "),a(),s(13,"button",6),w("click",function(){return i.activeView.set("sessions")}),l(14," Sessions "),a(),s(15,"button",6),w("click",function(){return i.activeView.set("compare")}),l(16," Compare "),a(),s(17,"button",6),w("click",function(){return i.activeView.set("analytics")}),l(18," Insights "),a(),s(19,"button",6),w("click",function(){return i.activeView.set("pricing")}),l(20," Prices "),a()(),s(21,"div",7)(22,"div",8)(23,"button",9),w("click",function(){return i.refreshSessionData()}),s(24,"span",10),l(25,"\u21BB"),a(),s(26,"span"),l(27),a()(),s(28,"span",11),l(29),a()(),s(30,"button",12),w("click",function(){return i.toggleTheme()}),s(31,"span",13),I(32,"span",14),a(),s(33,"span"),l(34),a()()()(),s(35,"div",15),b(36,Mp,2,14),s(37,"section",16)(38,"app-session-data-state-panel",17),w("refresh",function(){return i.refreshSessionData()}),a(),b(39,Op,4,0)(40,Tp,4,0)(41,Rp,4,0)(42,Ap,4,0)(43,qp,11,6,"section",18),a()()()),e&2&&(q("theme-light",i.theme()==="light")("theme-dark",i.theme()==="dark"),d(11),q("active",i.activeView()==="usage"),d(2),q("active",i.activeView()==="sessions"),d(2),q("active",i.activeView()==="compare"),d(2),q("active",i.activeView()==="analytics"),d(2),q("active",i.activeView()==="pricing"),d(3),q("error",i.sessionDataRefreshState()==="error"),d(),P("disabled",i.sessionDataRefreshState()==="refreshing"),Pe("aria-busy",i.sessionDataRefreshState()==="refreshing"),d(),q("spinning",i.sessionDataRefreshState()==="refreshing"),d(3),C(i.sessionDataRefreshState()==="refreshing"?"Scanning":"Refresh"),d(2),v(" ",i.sessionDataRefreshMessage()||i.dataUpdatedLabel()," "),d(),Pe("aria-pressed",i.theme()==="dark")("aria-label","Switch to "+(i.theme()==="light"?"dark":"light")+" theme"),d(4),C(i.themeLabel()),d(),q("with-rail",i.activeView()==="sessions")("rail-open",i.sessionRailOpen()),d(),M(i.activeView()==="sessions"?36:-1),d(2),P("state",i.sessionDataLoadState())("error",i.sessionDataLoadError())("refreshState",i.sessionDataRefreshState()),d(),M(i.activeView()==="usage"?39:i.activeView()==="pricing"?40:i.activeView()==="analytics"?41:i.activeView()==="compare"?42:i.activeView()==="sessions"?43:-1))},dependencies:[Un,Vn,$n,Hn,qn,Wn,Gn,Jn,re],styles:['.shell[_ngcontent-%COMP%], .shell[_ngcontent-%COMP%] *[_ngcontent-%COMP%]{box-sizing:border-box}.shell[_ngcontent-%COMP%]{display:grid;grid-template-columns:360px 1fr;min-height:100vh}.sidebar[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:20px;min-height:100vh;padding:24px;background:#17212b;color:#f7fafc}.brand[_ngcontent-%COMP%], .detail-header[_ngcontent-%COMP%], .session-footer[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:16px}.brand[_ngcontent-%COMP%] h1[_ngcontent-%COMP%], .detail[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:4px 0 0;letter-spacing:0}.brand[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{font-size:24px}.eyebrow[_ngcontent-%COMP%]{margin:0;color:#66818d;font-size:12px;font-weight:700;letter-spacing:0;text-transform:uppercase}.sidebar[_ngcontent-%COMP%] .eyebrow[_ngcontent-%COMP%]{color:#9fb1bf}.source-meta[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 4px}.source-meta[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:5px;border:1px solid #dbe5eb;border-radius:999px;padding:3px 8px;color:#60717f;background:#f8fafb;font-size:12px;font-weight:800}.view-nav[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.view-nav[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{min-width:0;border:1px solid rgba(255,255,255,.14);border-radius:6px;padding:9px 10px;background:#ffffff12;color:#d8e4eb;font-weight:800;cursor:pointer}.view-nav[_ngcontent-%COMP%] button.active[_ngcontent-%COMP%]{border-color:#52b4a9;background:#52b4a92e;color:#fff}.search[_ngcontent-%COMP%]{display:grid;gap:8px;color:#cbd6df;font-size:13px}.search[_ngcontent-%COMP%] input[_ngcontent-%COMP%], .filters[_ngcontent-%COMP%] select[_ngcontent-%COMP%]{width:100%;border:1px solid #d5dde5;border-radius:8px;padding:10px 12px;background:#fff;color:#16202a}.search[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{border-color:#ffffff24;background:#ffffff14;color:#fff}.session-list[_ngcontent-%COMP%]{display:grid;gap:10px;overflow:auto}.session-card[_ngcontent-%COMP%]{display:grid;gap:8px;width:100%;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:14px;background:#ffffff0f;color:inherit;text-align:left;cursor:pointer}.session-card.active[_ngcontent-%COMP%]{border-color:#52b4a9;background:#52b4a924}.session-title[_ngcontent-%COMP%]{font-weight:800;line-height:1.3;overflow-wrap:anywhere}.session-meta[_ngcontent-%COMP%], .session-footer[_ngcontent-%COMP%]{color:#b6c3ce;font-size:13px;overflow-wrap:anywhere}.session-footer[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:#f7fafc}.sidebar[_ngcontent-%COMP%], .session-list[_ngcontent-%COMP%], .session-card[_ngcontent-%COMP%]{min-width:0}.badge-row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:7px}.triage-badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:5px;width:fit-content;border:1px solid #d8e2e8;border-radius:999px;padding:4px 8px;background:#f7fafb;color:#445766;font-size:12px;font-weight:850}.sidebar[_ngcontent-%COMP%] .triage-badge[_ngcontent-%COMP%]{border-color:#ffffff26;background:#ffffff14;color:#dce8ef}.triage-badge.medium[_ngcontent-%COMP%]{border-color:#e6c98f;background:#fff8ea;color:#7a4d09}.triage-badge.high[_ngcontent-%COMP%]{border-color:#e7b6a6;background:#fff3ef;color:#8a391f}.content[_ngcontent-%COMP%]{display:grid;gap:22px;align-content:start;padding:28px}.workspace-overview[_ngcontent-%COMP%]{display:grid;gap:12px}.import-context[_ngcontent-%COMP%]{border:1px solid var(--line, #dfe6ed);border-radius:12px;background:#ffffff05}.import-context[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;min-height:42px;padding:9px 12px;color:var(--muted, #60717f);cursor:pointer;list-style:none}.import-context[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]::-webkit-details-marker{display:none}.import-context[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]:before{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .14s ease}.import-context[open][_ngcontent-%COMP%] summary[_ngcontent-%COMP%]:before{transform:rotate(45deg)}.import-context-title[_ngcontent-%COMP%]{color:var(--text-strong, #16202a);font-size:12px;font-weight:780;letter-spacing:.06em;text-transform:uppercase}.import-context-note[_ngcontent-%COMP%]{flex:1 1 auto;min-width:180px;color:var(--muted, #60717f);font-size:12px}.import-pill[_ngcontent-%COMP%]{flex:0 0 auto;border:1px solid var(--line, #dfe6ed);border-radius:999px;padding:4px 8px;background:var(--surface-soft, #f8fafb);color:var(--text, #16202a);font-size:11px;font-weight:720;white-space:nowrap}.import-context-body[_ngcontent-%COMP%]{display:grid;gap:10px;border-top:1px solid var(--line, #dfe6ed);padding:10px 12px 12px}.import-context-body[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;color:var(--muted, #60717f);font-size:12px}.import-context-body[_ngcontent-%COMP%] dl[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;margin:0}.import-context-body[_ngcontent-%COMP%] dl[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{display:grid;gap:4px;min-width:0;border:1px solid var(--line, #e6edf2);border-radius:9px;padding:8px;background:var(--surface-soft, #f8fafb)}.import-context-body[_ngcontent-%COMP%] dt[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:5px;min-width:0;color:var(--muted, #60717f);font-size:11px;line-height:1.2}.import-context-body[_ngcontent-%COMP%] dd[_ngcontent-%COMP%]{margin:0;color:var(--text-strong, #16202a);font-size:15px;font-weight:760}.summary-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.metric[_ngcontent-%COMP%], .detail[_ngcontent-%COMP%], .ingestion[_ngcontent-%COMP%]{border:1px solid #dfe6ed;border-radius:8px;background:#fff}.metric[_ngcontent-%COMP%]{display:grid;gap:6px;padding:16px}.metric[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .price[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#60717f;font-size:13px}.metric[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .price[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:#16202a;font-size:24px;letter-spacing:0}.detail[_ngcontent-%COMP%], .ingestion[_ngcontent-%COMP%]{display:grid;gap:18px;padding:22px}.detail[_ngcontent-%COMP%] h2[_ngcontent-%COMP%], .ingestion[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{font-size:26px}.detail[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0 0 14px;color:#3b312a;font-size:16px}.ingestion[_ngcontent-%COMP%] p[_ngcontent-%COMP%], .ingestion-lede[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{margin:5px 0 0;color:#60717f;font-size:13px}.compact-ingestion[_ngcontent-%COMP%]{grid-template-columns:minmax(210px,.65fr) minmax(0,1.35fr);align-items:center;gap:14px;padding:12px 14px}.ingestion-lede[_ngcontent-%COMP%]{min-width:0}.ingestion-lede[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{display:block;margin-top:3px;color:#16202a;font-size:16px;line-height:1.2}.ingestion-lede[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:block;overflow-wrap:anywhere}.ingestion[_ngcontent-%COMP%] dl[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0}.ingestion[_ngcontent-%COMP%] dl[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;border:1px solid #e6edf2;border-radius:8px;padding:8px 10px;background:#f8fafb}.ingestion[_ngcontent-%COMP%] dt[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:5px;min-width:0;color:#60717f;font-size:12px;line-height:1.2}.ingestion[_ngcontent-%COMP%] dd[_ngcontent-%COMP%]{flex:0 0 auto;margin:0;color:#16202a;font-size:16px;font-weight:800}.price[_ngcontent-%COMP%]{display:grid;justify-items:end;min-width:140px}.source-callout[_ngcontent-%COMP%]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.source-callout[_ngcontent-%COMP%]{border-left:4px solid #52b4a9;padding-left:14px}.source-callout[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:block;margin-bottom:3px;color:#60717f;font-size:12px;font-weight:800;text-transform:uppercase}.source-callout[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:#16202a}.source-callout[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{max-width:920px;margin:5px 0 0;color:#4e6070;line-height:1.5}.source-callout[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:#245a62;font-weight:800;white-space:nowrap}.source-callout[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{align-self:center;white-space:nowrap}.source-callout[_ngcontent-%COMP%] .inline-fallback[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:5px;margin:0 12px 4px 0;color:inherit;font-size:13px;font-weight:800;text-transform:none}.filter-mismatch-callout[_ngcontent-%COMP%], .pricing-fallback-callout[_ngcontent-%COMP%]{margin-top:14px}.empty[_ngcontent-%COMP%]{margin:0;color:#60717f}.ghost-button[_ngcontent-%COMP%]{border:1px solid #c9d7de;border-radius:6px;padding:9px 12px;color:#245a62;background:#fff;font-weight:800;cursor:pointer}.ghost-button[_ngcontent-%COMP%]:hover{border-color:#7fb0b7}.pricing-header[_ngcontent-%COMP%]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.pricing-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:4px 0 0;color:#16202a;font-size:28px;letter-spacing:0}.muted[_ngcontent-%COMP%]{color:#8795a1!important}@media(max-width:1200px)and (min-width:901px){.shell[_ngcontent-%COMP%]{grid-template-columns:300px minmax(0,1fr)}.sidebar[_ngcontent-%COMP%]{gap:16px;padding:20px}.brand[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{font-size:22px}.view-nav[_ngcontent-%COMP%]{grid-template-columns:1fr}.session-card[_ngcontent-%COMP%]{padding:12px}}@media(max-width:900px){.shell[_ngcontent-%COMP%]{grid-template-columns:1fr}.sidebar[_ngcontent-%COMP%]{gap:14px;min-height:auto}.session-list[_ngcontent-%COMP%]{max-height:240px;padding-right:4px}.brand[_ngcontent-%COMP%]{display:grid;justify-content:start}.view-nav[_ngcontent-%COMP%], .summary-grid[_ngcontent-%COMP%], .ingestion[_ngcontent-%COMP%], .ingestion[_ngcontent-%COMP%] dl[_ngcontent-%COMP%]{grid-template-columns:1fr}.detail-header[_ngcontent-%COMP%], .source-callout[_ngcontent-%COMP%], .pricing-header[_ngcontent-%COMP%]{display:grid}.price[_ngcontent-%COMP%]{justify-items:start}}@media(max-width:600px){.sidebar[_ngcontent-%COMP%]{padding:20px 16px}.session-list[_ngcontent-%COMP%]{max-height:150px}.session-card[_ngcontent-%COMP%]{gap:5px;padding:10px}.session-title[_ngcontent-%COMP%]{font-size:14px}.session-meta[_ngcontent-%COMP%], .session-card[_ngcontent-%COMP%] .badge-row[_ngcontent-%COMP%]{display:none}.session-footer[_ngcontent-%COMP%]{gap:8px;font-size:12px}}.shell[_ngcontent-%COMP%]{--bg: #0d1118;--top: #101824;--rail: #0a0e15;--surface: #151d29;--surface-raised: #192333;--surface-soft: #111923;--text: #eef5ff;--text-strong: #ffffff;--muted: #93a4b8;--muted-2: #6f8094;--line: #263445;--line-strong: #34475e;--accent: #7c5cff;--accent-2: #1fd1a5;--warning: #ffba4a;--danger: #ff6b5f;--accent-soft: rgba(124, 92, 255, .2);--teal-soft: rgba(31, 209, 165, .13);display:grid;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);min-height:100vh;background:var(--bg);color:var(--text)}.topbar[_ngcontent-%COMP%]{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:minmax(220px,1fr) auto minmax(220px,1fr);gap:18px;align-items:center;border-bottom:1px solid var(--line);padding:14px 22px;background:radial-gradient(circle at 18% 0%,rgba(124,92,255,.16),transparent 28%),var(--top)}.brand[_ngcontent-%COMP%]{justify-content:flex-start}.brand-mark[_ngcontent-%COMP%]{display:grid;place-items:center;width:36px;height:36px;border-radius:9px;background:linear-gradient(135deg,var(--accent),#4d9cff);color:#fff;font-size:13px;font-weight:950}.brand[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{margin-top:2px;color:var(--text-strong);font-size:18px}.eyebrow[_ngcontent-%COMP%]{color:var(--muted-2)}.topbar[_ngcontent-%COMP%] .eyebrow[_ngcontent-%COMP%]{color:#8fa0b5}.view-nav[_ngcontent-%COMP%]{display:inline-flex;justify-self:center;gap:6px;border:1px solid var(--line);border-radius:10px;padding:4px;background:#0a0e15ad}.view-nav[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{border:0;border-radius:7px;padding:8px 12px;background:transparent;color:var(--muted);font-size:13px}.view-nav[_ngcontent-%COMP%] button.active[_ngcontent-%COMP%]{background:var(--accent);color:#fff}.app-body[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr;min-height:calc(100vh - 65px);min-width:0;background:var(--bg)}.app-body.with-rail[_ngcontent-%COMP%]{grid-template-columns:330px minmax(0,1fr)}.sidebar[_ngcontent-%COMP%]{position:sticky;top:65px;align-self:start;min-width:0;height:calc(100vh - 65px);min-height:0;border-right:1px solid var(--line);padding:18px;background:var(--rail)}.content[_ngcontent-%COMP%]{min-width:0;padding:24px;background:radial-gradient(circle at 80% 0%,rgba(124,92,255,.12),transparent 30%),var(--bg)}.search[_ngcontent-%COMP%], .filters[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{color:var(--muted)}.search[_ngcontent-%COMP%] input[_ngcontent-%COMP%], .filters[_ngcontent-%COMP%] select[_ngcontent-%COMP%]{border-color:var(--line);background:var(--surface-soft);color:var(--text)}.session-list[_ngcontent-%COMP%]{min-height:0}.session-card[_ngcontent-%COMP%]{border-color:var(--line);background:#111a25}.session-card[_ngcontent-%COMP%]:hover{border-color:var(--line-strong);background:#142033}.session-card.active[_ngcontent-%COMP%]{border-color:var(--accent);background:#201a3e;box-shadow:0 0 0 2px var(--accent-soft)}.sessions-page[_ngcontent-%COMP%]{display:grid;gap:14px}.sessions-page[_ngcontent-%COMP%] > .summary-grid[_ngcontent-%COMP%]{margin:0}.sessions-page[_ngcontent-%COMP%] .ingestion[_ngcontent-%COMP%]{margin:0}.detail[_ngcontent-%COMP%]{display:grid;gap:14px;overflow:visible}.detail-header[_ngcontent-%COMP%]{align-items:stretch;border:1px solid var(--line);border-radius:14px;padding:18px;background:linear-gradient(135deg,#7c5cff2e,#1fd1a514),var(--surface-soft)}.detail-header[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:first-child{min-width:min(100%,380px)}.detail[_ngcontent-%COMP%] .price[_ngcontent-%COMP%]{display:grid;align-content:center;min-width:190px;border:1px solid rgba(31,209,165,.22);border-radius:12px;padding:16px;background:#1fd1a514}.detail[_ngcontent-%COMP%] .price[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{font-size:clamp(26px,4vw,42px);line-height:1}.credit-meter[_ngcontent-%COMP%]{display:grid;gap:7px;width:100%;margin-top:12px}.credit-meter[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:8px}.credit-meter[_ngcontent-%COMP%] select[_ngcontent-%COMP%]{max-width:120px;border:1px solid var(--line);border-radius:999px;padding:5px 8px;background:#050c1661;color:var(--text);font:inherit;font-size:12px;font-weight:720}.credit-bar[_ngcontent-%COMP%]{height:6px;overflow:hidden;border-radius:999px;background:#ffffff1a}.credit-bar[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent-2),#ffba4a)}.credit-meter[_ngcontent-%COMP%] em[_ngcontent-%COMP%]{color:var(--muted);font-size:11px;font-style:normal;font-weight:650;text-align:right}.run-tabs[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(120px,.72fr) repeat(3,minmax(145px,1fr));gap:6px}.run-tabs[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{position:relative;display:grid;align-content:center;gap:3px;min-height:58px;border:1px solid var(--line);border-radius:11px;padding:9px 10px;background:var(--surface-soft);color:var(--muted);font:inherit;text-align:left;cursor:pointer}.run-tabs[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:after{content:"";position:absolute;top:50%;right:-12px;width:14px;height:1px;background:var(--line-strong)}.run-tabs[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:last-child:after{display:none}.run-tabs[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover{border-color:var(--line-strong);color:var(--text)}.run-tabs[_ngcontent-%COMP%] button.active[_ngcontent-%COMP%]{border-color:#6f5cff80;background:linear-gradient(135deg,#6f5cff2e,#27d6b014),var(--surface-soft);color:var(--text-strong);box-shadow:0 0 0 1px #6f5cff1f,0 14px 30px #00000029}.run-tabs[_ngcontent-%COMP%] button[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:var(--muted-2);font-size:9px;font-weight:760;letter-spacing:.08em;text-transform:uppercase}.run-tabs[_ngcontent-%COMP%] button[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--text-strong);font-size:14px;font-weight:760;line-height:1.1}.run-tabs[_ngcontent-%COMP%] button[_ngcontent-%COMP%] em[_ngcontent-%COMP%]{color:var(--muted);font-size:11px;font-style:normal;line-height:1.25;overflow-wrap:anywhere}.run-tabs[_ngcontent-%COMP%] .flow-tab[_ngcontent-%COMP%]{border-top:3px solid var(--accent-2)}.run-tabs[_ngcontent-%COMP%] .overview-tab[_ngcontent-%COMP%]{border-top:3px solid var(--line-strong)}.session-title[_ngcontent-%COMP%], .session-footer[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .metric[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .price[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .detail[_ngcontent-%COMP%] h2[_ngcontent-%COMP%], .ingestion[_ngcontent-%COMP%] h2[_ngcontent-%COMP%], .ingestion-lede[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .pricing-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%], .source-callout[_ngcontent-%COMP%] strong[_ngcontent-%COMP%], .detail[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{color:var(--text-strong)}.session-meta[_ngcontent-%COMP%], .session-footer[_ngcontent-%COMP%], .session-scan[_ngcontent-%COMP%], .filter-count[_ngcontent-%COMP%], .metric[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .price[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .pricing-header[_ngcontent-%COMP%] p[_ngcontent-%COMP%], .source-callout[_ngcontent-%COMP%] p[_ngcontent-%COMP%], .ingestion-lede[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .empty[_ngcontent-%COMP%], .muted[_ngcontent-%COMP%]{color:var(--muted)}.deferred-panel[_ngcontent-%COMP%]{margin:0;border:1px solid var(--line);border-radius:14px;padding:18px;background:var(--surface);color:var(--muted);box-shadow:var(--shadow-soft)}.ingestion[_ngcontent-%COMP%] dd[_ngcontent-%COMP%], .detail-subtitle[_ngcontent-%COMP%]{color:var(--text)}.metric[_ngcontent-%COMP%], .detail[_ngcontent-%COMP%], .ingestion[_ngcontent-%COMP%]{border-color:var(--line);background:var(--surface)}.detail[_ngcontent-%COMP%], .ingestion[_ngcontent-%COMP%]{box-shadow:0 18px 50px #00000038}.ingestion[_ngcontent-%COMP%] dl[_ngcontent-%COMP%] > div[_ngcontent-%COMP%], .source-callout[_ngcontent-%COMP%]{background:var(--surface-soft)}.ingestion[_ngcontent-%COMP%] dl[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{border-color:var(--line)}.source-callout[_ngcontent-%COMP%]{border-left-color:var(--accent-2)}.triage-badge[_ngcontent-%COMP%], .source-meta[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{border-color:var(--line);background:var(--surface-soft);color:var(--text)}.triage-badge.medium[_ngcontent-%COMP%]{border-color:#ffba4a73;background:#ffba4a1f;color:#ffe0a0}.triage-badge.high[_ngcontent-%COMP%]{border-color:#ff6b5f80;background:#ff6b5f1f;color:#ffc2bd}.ghost-button[_ngcontent-%COMP%]{border-color:var(--line);background:var(--surface-soft);color:var(--text)}@media(max-width:1100px){.app-body.with-rail[_ngcontent-%COMP%]{grid-template-columns:280px minmax(0,1fr)}.topbar[_ngcontent-%COMP%]{grid-template-columns:minmax(170px,1fr) auto minmax(170px,1fr);justify-items:initial}.view-nav[_ngcontent-%COMP%]{justify-self:center}}@media(max-width:900px){.app-body.with-rail[_ngcontent-%COMP%]{grid-template-columns:1fr}.content[_ngcontent-%COMP%]{order:1;padding:18px}.sidebar[_ngcontent-%COMP%]{order:2;position:static;height:auto;max-height:45vh;border-top:1px solid var(--line);border-right:0;overflow:auto}.view-nav[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.summary-grid[_ngcontent-%COMP%], .metrics[_ngcontent-%COMP%]{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-ingestion[_ngcontent-%COMP%]{grid-template-columns:1fr}.compact-ingestion[_ngcontent-%COMP%] dl[_ngcontent-%COMP%]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.topbar[_ngcontent-%COMP%]{padding:12px 14px}.brand[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{font-size:16px}.view-nav[_ngcontent-%COMP%], .run-tabs[_ngcontent-%COMP%]{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-grid[_ngcontent-%COMP%], .metrics[_ngcontent-%COMP%], .compact-ingestion[_ngcontent-%COMP%] dl[_ngcontent-%COMP%]{grid-template-columns:1fr}}.shell[_ngcontent-%COMP%], [_nghost-%COMP%]{background:#090d14}.shell[_ngcontent-%COMP%]{--bg: #090d14;--top: #0d1420;--rail: #0a1019;--surface: #111a26;--surface-raised: #152130;--surface-soft: #0d1520;--text: #dfe7f1;--text-strong: #f7fbff;--muted: #91a0b3;--muted-2: #728196;--line: #1f2b3a;--line-strong: #314154;--accent: #6f5cff;--accent-2: #27d6b0;--accent-soft: rgba(111, 92, 255, .16);--teal-soft: rgba(39, 214, 176, .12);font-size:14px}.topbar[_ngcontent-%COMP%]{grid-template-columns:minmax(190px,1fr) auto minmax(190px,1fr);gap:14px;min-height:58px;padding:10px 18px;background:linear-gradient(180deg,rgba(255,255,255,.018),transparent),var(--top)}.brand[_ngcontent-%COMP%]{gap:10px;align-items:center}.brand-mark[_ngcontent-%COMP%]{width:30px;height:30px;border-radius:8px;font-size:11px;box-shadow:0 8px 28px #6f5cff40}.brand[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{margin:0;font-size:16px;font-weight:760;line-height:1.1}.eyebrow[_ngcontent-%COMP%], .topbar[_ngcontent-%COMP%] .eyebrow[_ngcontent-%COMP%], .sidebar[_ngcontent-%COMP%] .eyebrow[_ngcontent-%COMP%]{color:var(--muted-2);font-size:10px;font-weight:760;letter-spacing:.08em}.view-nav[_ngcontent-%COMP%]{gap:3px;border-radius:999px;padding:3px;background:#070b12c7}.view-nav[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{border-radius:999px;min-height:30px;padding:6px 11px;font-size:12px;font-weight:720}.view-nav[_ngcontent-%COMP%] button.active[_ngcontent-%COMP%]{box-shadow:0 7px 18px #6f5cff3d}.app-body[_ngcontent-%COMP%]{min-height:calc(100vh - 58px)}.app-body.with-rail[_ngcontent-%COMP%]{grid-template-columns:clamp(236px,24vw,300px) minmax(0,1fr)}.sidebar[_ngcontent-%COMP%]{top:58px;height:calc(100vh - 58px);gap:14px;padding:14px}.content[_ngcontent-%COMP%]{gap:18px;padding:20px;background:var(--bg)}.search[_ngcontent-%COMP%]{gap:6px;font-size:12px}.search[_ngcontent-%COMP%] input[_ngcontent-%COMP%], .filters[_ngcontent-%COMP%] select[_ngcontent-%COMP%]{min-height:34px;border-radius:9px;padding:7px 10px;font-size:13px}.filters[_ngcontent-%COMP%]{display:grid;gap:8px}.filters[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{display:grid;gap:5px;font-size:12px}.filter-count[_ngcontent-%COMP%]{margin:-2px 0 0;color:var(--muted-2);font-size:12px}.session-list[_ngcontent-%COMP%]{gap:8px}.session-card[_ngcontent-%COMP%]{gap:6px;border-radius:11px;padding:11px;background:#0e1723;transition:border-color .14s ease,background .14s ease,box-shadow .14s ease,transform .14s ease}.session-title[_ngcontent-%COMP%]{display:-webkit-box;font-size:13px;font-weight:680;line-height:1.28;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:4}.session-meta[_ngcontent-%COMP%], .session-footer[_ngcontent-%COMP%], .session-scan[_ngcontent-%COMP%]{font-size:12px}.session-card[_ngcontent-%COMP%]:hover{transform:translateY(-1px)}.session-card[_ngcontent-%COMP%]:focus-visible, .view-nav[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:focus-visible, .run-tabs[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:focus-visible, .ghost-button[_ngcontent-%COMP%]:focus-visible, .search[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus-visible, .filters[_ngcontent-%COMP%] select[_ngcontent-%COMP%]:focus-visible{outline:2px solid rgba(39,214,176,.75);outline-offset:2px}.triage-badge[_ngcontent-%COMP%], .source-meta[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{padding:3px 7px;font-size:11px;font-weight:720}.summary-grid[_ngcontent-%COMP%]{gap:10px}.metric[_ngcontent-%COMP%]{gap:4px;border-radius:12px;padding:12px;background:var(--surface)}.metric[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .price[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:12px}.metric[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{font-size:19px;font-weight:760}.detail[_ngcontent-%COMP%], .ingestion[_ngcontent-%COMP%]{border-radius:14px;padding:16px;box-shadow:0 14px 36px #0000002e}.compact-ingestion[_ngcontent-%COMP%]{gap:12px;padding:12px}.ingestion-lede[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{font-size:14px}.ingestion[_ngcontent-%COMP%] dl[_ngcontent-%COMP%]{gap:7px}.ingestion[_ngcontent-%COMP%] dl[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]{border-radius:9px;padding:7px 9px}.ingestion[_ngcontent-%COMP%] dt[_ngcontent-%COMP%]{font-size:11px}.ingestion[_ngcontent-%COMP%] dd[_ngcontent-%COMP%]{font-size:14px;font-weight:760}.detail[_ngcontent-%COMP%]{gap:16px}.detail-header[_ngcontent-%COMP%]{border-radius:14px;padding:14px;background:linear-gradient(135deg,#6f5cff21,#27d6b00e),var(--surface-soft)}.detail[_ngcontent-%COMP%] h2[_ngcontent-%COMP%], .ingestion[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{font-size:19px;font-weight:760;line-height:1.18}.detail-subtitle[_ngcontent-%COMP%]{margin:6px 0 0;font-size:13px}.detail[_ngcontent-%COMP%] .price[_ngcontent-%COMP%]{min-width:150px;border-radius:12px;padding:12px}.detail[_ngcontent-%COMP%] .price[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{font-size:clamp(24px,3vw,34px);font-weight:760}.credit-meter[_ngcontent-%COMP%]{margin-top:10px}.run-tabs[_ngcontent-%COMP%]{gap:6px}.run-tabs[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{min-height:58px}.source-callout[_ngcontent-%COMP%]{border-radius:12px;padding:12px}.source-callout[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{font-size:15px;font-weight:760}.source-callout[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{font-size:13px;line-height:1.42}.sidebar[_ngcontent-%COMP%], .session-list[_ngcontent-%COMP%], .content[_ngcontent-%COMP%]{scrollbar-color:#34475e transparent}.sidebar[_ngcontent-%COMP%]::-webkit-scrollbar, .session-list[_ngcontent-%COMP%]::-webkit-scrollbar, .content[_ngcontent-%COMP%]::-webkit-scrollbar{width:10px;height:10px}.sidebar[_ngcontent-%COMP%]::-webkit-scrollbar-thumb, .session-list[_ngcontent-%COMP%]::-webkit-scrollbar-thumb, .content[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{border:3px solid transparent;border-radius:999px;background:#34475e;background-clip:padding-box}.ghost-button[_ngcontent-%COMP%]{border-radius:9px;padding:7px 10px;font-size:13px;font-weight:720}@media(max-width:1100px){.app-body.with-rail[_ngcontent-%COMP%]{grid-template-columns:248px minmax(0,1fr)}.topbar[_ngcontent-%COMP%]{grid-template-columns:minmax(170px,1fr) auto minmax(170px,1fr)}.view-nav[_ngcontent-%COMP%]{justify-self:center;grid-column:auto}}@media(max-width:760px){.topbar[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1fr) auto}.view-nav[_ngcontent-%COMP%]{justify-self:stretch;grid-column:1 / -1}}@media(max-width:900px){.app-body.with-rail[_ngcontent-%COMP%]{grid-template-columns:1fr}.topbar[_ngcontent-%COMP%]{gap:10px}.content[_ngcontent-%COMP%]{padding:14px}.sidebar[_ngcontent-%COMP%]{max-height:36vh;padding:12px 14px}.view-nav[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.detail-header[_ngcontent-%COMP%]{gap:12px}.run-tabs[_ngcontent-%COMP%]{grid-template-columns:repeat(2,minmax(0,1fr))}.run-tabs[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:after{display:none}}@media(max-width:600px){.topbar[_ngcontent-%COMP%]{padding:9px 12px}.topbar[_ngcontent-%COMP%] .eyebrow[_ngcontent-%COMP%]{display:none}.brand-mark[_ngcontent-%COMP%]{width:28px;height:28px}.brand[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{font-size:15px}.view-nav[_ngcontent-%COMP%]{grid-template-columns:repeat(5,minmax(0,1fr))}.view-nav[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{padding:6px 5px;font-size:11px}.summary-grid[_ngcontent-%COMP%], .metrics[_ngcontent-%COMP%]{grid-template-columns:repeat(2,minmax(0,1fr))}.session-list[_ngcontent-%COMP%]{max-height:170px}.source-meta[_ngcontent-%COMP%]{gap:5px}.run-tabs[_ngcontent-%COMP%]{grid-template-columns:1fr}}@media(max-width:1100px){.import-context[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]{flex-wrap:wrap}.import-context-note[_ngcontent-%COMP%]{flex:1 0 100%;order:3}.import-context-body[_ngcontent-%COMP%] dl[_ngcontent-%COMP%]{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.import-context[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start}.import-context[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]:before{margin-top:5px}.import-context-title[_ngcontent-%COMP%], .import-context-note[_ngcontent-%COMP%], .import-pill[_ngcontent-%COMP%]{grid-column:2}.import-context-body[_ngcontent-%COMP%] dl[_ngcontent-%COMP%]{grid-template-columns:1fr}}.shell[_ngcontent-%COMP%]{--bg: #f4f7fb;--top: rgba(255, 255, 255, .86);--rail: #eef5f7;--surface: #ffffff;--surface-raised: #ffffff;--surface-soft: #f8fbfd;--surface-tint: #eef6ff;--text: #26364a;--text-strong: #081423;--muted: #617187;--muted-2: #8191a5;--line: #dbe5ee;--line-strong: #b6c8da;--accent: #6f5cff;--accent-2: #0c9f83;--warning: #c77900;--danger: #d84a3a;--accent-soft: rgba(111, 92, 255, .13);--teal-soft: rgba(12, 159, 131, .1);--focus-ring: rgba(12, 159, 131, .42);--shadow: 0 18px 42px rgba(31, 45, 64, .1);--shadow-soft: 0 8px 22px rgba(31, 45, 64, .07);--control-bg: rgba(255, 255, 255, .82);--nav-bg: rgba(255, 255, 255, .72);--session-card-bg: rgba(255, 255, 255, .7);--session-card-hover: #ffffff;--session-card-active: linear-gradient(135deg, rgba(111, 92, 255, .12), rgba(12, 159, 131, .08)), #ffffff;--header-gradient: radial-gradient(circle at 100% 0%, rgba(111, 92, 255, .12), transparent 34%), linear-gradient(135deg, rgba(12, 159, 131, .065), rgba(111, 92, 255, .035)), var(--surface);--page-gradient: radial-gradient(circle at 78% 0%, rgba(111, 92, 255, .11), transparent 30%), radial-gradient(circle at 12% 0%, rgba(12, 159, 131, .105), transparent 24%), var(--bg);--scrollbar: #b7c6d7;--success-text: #047863;--warning-text: #8a5700;--danger-text: #a4372b;color-scheme:light}.shell.theme-dark[_ngcontent-%COMP%]{--bg: #090d14;--top: #0d1420;--rail: #0a1019;--surface: #111a26;--surface-raised: #152130;--surface-soft: #0d1520;--surface-tint: #101a28;--text: #dfe7f1;--text-strong: #f7fbff;--muted: #91a0b3;--muted-2: #728196;--line: #1f2b3a;--line-strong: #314154;--accent: #6f5cff;--accent-2: #27d6b0;--warning: #ffba4a;--danger: #ff6b5f;--accent-soft: rgba(111, 92, 255, .16);--teal-soft: rgba(39, 214, 176, .12);--focus-ring: rgba(39, 214, 176, .75);--shadow: 0 18px 50px rgba(0, 0, 0, .22);--shadow-soft: 0 14px 36px rgba(0, 0, 0, .18);--control-bg: rgba(7, 11, 18, .78);--nav-bg: rgba(7, 11, 18, .78);--session-card-bg: #0e1723;--session-card-hover: #142033;--session-card-active: #201a3e;--header-gradient: linear-gradient(135deg, rgba(111, 92, 255, .13), rgba(39, 214, 176, .055)), var(--surface-soft);--page-gradient: var(--bg);--scrollbar: #34475e;--success-text: #bbfff0;--warning-text: #ffe0a0;--danger-text: #ffc2bd;color-scheme:dark}.shell.theme-light[_ngcontent-%COMP%]{background:var(--page-gradient);color:var(--text)}.shell.theme-light[_ngcontent-%COMP%] .topbar[_ngcontent-%COMP%]{background:linear-gradient(180deg,#ffffffc7,#ffffff94),radial-gradient(circle at 22% 0%,rgba(111,92,255,.16),transparent 30%),var(--top);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 1px #ffffffb3 inset,0 12px 30px #1f2d4014}.topbar-actions[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}.theme-toggle[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:8px;min-height:32px;border:1px solid var(--line);border-radius:999px;padding:4px 10px 4px 5px;background:var(--control-bg);color:var(--text);font:inherit;font-size:12px;font-weight:740;cursor:pointer;box-shadow:var(--shadow-soft)}.theme-toggle-track[_ngcontent-%COMP%]{position:relative;display:inline-flex;width:36px;height:22px;border-radius:999px;background:linear-gradient(135deg,#6f5cff2e,#0c9f8333)}.theme-toggle-thumb[_ngcontent-%COMP%]{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 4px 10px #1f2d4038;transition:transform .16s ease,background .16s ease}.theme-dark[_ngcontent-%COMP%] .theme-toggle-thumb[_ngcontent-%COMP%]{transform:translate(14px);background:#101824}.theme-toggle[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.shell.theme-light[_ngcontent-%COMP%] .brand-mark[_ngcontent-%COMP%]{color:#fff;box-shadow:0 10px 26px #6f5cff3d}.shell.theme-light[_ngcontent-%COMP%] .topbar[_ngcontent-%COMP%] .eyebrow[_ngcontent-%COMP%]{color:#738094}.shell.theme-light[_ngcontent-%COMP%] .view-nav[_ngcontent-%COMP%]{background:var(--nav-bg);box-shadow:0 1px #ffffffdb inset,0 10px 28px #1f2d4014}.shell.theme-light[_ngcontent-%COMP%] .view-nav[_ngcontent-%COMP%] button.active[_ngcontent-%COMP%]{background:linear-gradient(135deg,var(--accent),#4d9cff)}.shell.theme-light[_ngcontent-%COMP%] .app-body[_ngcontent-%COMP%], .shell.theme-light[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{background:var(--page-gradient)}.shell.theme-light[_ngcontent-%COMP%] .sidebar[_ngcontent-%COMP%]{background:linear-gradient(180deg,#ffffff8f,#fff3),var(--rail)}.shell.theme-light[_ngcontent-%COMP%] .detail-header[_ngcontent-%COMP%], .shell.theme-light[_ngcontent-%COMP%] .run-tabs[_ngcontent-%COMP%] button.active[_ngcontent-%COMP%]{background:var(--header-gradient)}.shell.theme-light[_ngcontent-%COMP%] .metric[_ngcontent-%COMP%], .shell.theme-light[_ngcontent-%COMP%] .detail[_ngcontent-%COMP%], .shell.theme-light[_ngcontent-%COMP%] .ingestion[_ngcontent-%COMP%]{box-shadow:var(--shadow)}.shell.theme-light[_ngcontent-%COMP%] .session-card[_ngcontent-%COMP%]{background:var(--session-card-bg)}.shell.theme-light[_ngcontent-%COMP%] .session-card[_ngcontent-%COMP%]:hover{background:var(--session-card-hover)}.shell.theme-light[_ngcontent-%COMP%] .session-card.active[_ngcontent-%COMP%]{background:var(--session-card-active)}.shell.theme-light[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{gap:16px}.shell.theme-light[_ngcontent-%COMP%] .detail[_ngcontent-%COMP%], .shell.theme-light[_ngcontent-%COMP%] .ingestion[_ngcontent-%COMP%], .shell.theme-light[_ngcontent-%COMP%] .import-context[_ngcontent-%COMP%], .shell.theme-light[_ngcontent-%COMP%] .run-tabs[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{box-shadow:var(--shadow-soft)}.shell.theme-light[_ngcontent-%COMP%] .detail[_ngcontent-%COMP%]{background:linear-gradient(180deg,#ffffffb8,#ffffff5c),var(--surface)}.shell.theme-light[_ngcontent-%COMP%] .run-tabs[_ngcontent-%COMP%]{border:1px solid rgba(219,229,238,.82);border-radius:14px;padding:6px;background:#ffffff7a;box-shadow:var(--shadow-soft)}.shell.theme-light[_ngcontent-%COMP%] .run-tabs[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{background:#ffffffa8}.shell.theme-light[_ngcontent-%COMP%] .run-tabs[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover{background:#fff}.shell.theme-light[_ngcontent-%COMP%] .run-tabs[_ngcontent-%COMP%] button.active[_ngcontent-%COMP%]{box-shadow:0 10px 24px #1f2d401c}.shell.theme-light[_ngcontent-%COMP%] .import-context[_ngcontent-%COMP%]{background:#ffffffa8}.shell.theme-light[_ngcontent-%COMP%] .source-callout[_ngcontent-%COMP%]{background:linear-gradient(135deg,#0c9f830b,#6f5cff05),var(--surface)}.shell.theme-light[_ngcontent-%COMP%] .credit-meter[_ngcontent-%COMP%] select[_ngcontent-%COMP%], .shell.theme-light[_ngcontent-%COMP%] .search[_ngcontent-%COMP%] input[_ngcontent-%COMP%], .shell.theme-light[_ngcontent-%COMP%] .filters[_ngcontent-%COMP%] select[_ngcontent-%COMP%]{background:var(--control-bg)}.shell.theme-light[_ngcontent-%COMP%] .credit-bar[_ngcontent-%COMP%]{background:#6170852e}.shell.theme-light[_ngcontent-%COMP%] .triage-badge.medium[_ngcontent-%COMP%]{color:var(--warning-text)}.shell.theme-light[_ngcontent-%COMP%] .triage-badge.high[_ngcontent-%COMP%]{color:var(--danger-text)}.sidebar[_ngcontent-%COMP%], .session-list[_ngcontent-%COMP%], .content[_ngcontent-%COMP%]{scrollbar-color:var(--scrollbar) transparent}.sidebar[_ngcontent-%COMP%]::-webkit-scrollbar-thumb, .session-list[_ngcontent-%COMP%]::-webkit-scrollbar-thumb, .content[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:var(--scrollbar);background-clip:padding-box}@media(max-width:760px){.topbar-actions[_ngcontent-%COMP%]{justify-content:end}}@media(max-width:520px){.theme-toggle[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]:last-child{display:none}.theme-toggle[_ngcontent-%COMP%]{padding-inline:5px}}.app-body.with-rail[_ngcontent-%COMP%]{grid-template-columns:clamp(280px,26vw,360px) minmax(0,1fr)}.rail-backdrop[_ngcontent-%COMP%], .sessions-mobile-toolbar[_ngcontent-%COMP%]{display:none}@media(max-width:900px){.app-body.with-rail[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1fr)}.app-body.rail-open[_ngcontent-%COMP%] .rail-backdrop[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:90;display:block;border:0;background:#040a127a;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);cursor:pointer}.sessions-mobile-toolbar[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;min-width:0}.sessions-mobile-toolbar[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{min-width:0;overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.session-rail-toggle[_ngcontent-%COMP%]{display:inline-flex;flex:0 0 auto;align-items:center;gap:8px;min-height:34px;border:1px solid var(--line);border-radius:9px;padding:7px 10px;background:var(--surface);color:var(--text-strong);font:inherit;font-size:12px;font-weight:760;cursor:pointer;box-shadow:var(--shadow-soft)}.session-rail-toggle[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{display:grid;place-items:center;min-width:20px;height:20px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:10px}}@media(max-width:600px){.topbar[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1fr) auto;width:100%;min-width:0}.brand[_ngcontent-%COMP%]{grid-column:1;grid-row:1;min-width:0}.topbar-actions[_ngcontent-%COMP%]{grid-column:2;grid-row:1}.view-nav[_ngcontent-%COMP%]{display:grid;grid-column:1 / -1;grid-row:2;grid-template-columns:repeat(5,minmax(0,1fr));justify-self:stretch;width:100%;min-width:0;gap:2px}.view-nav[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{min-width:0;padding:6px 2px;font-size:10px}}']})};hi(Kn,Ma).catch(n=>console.error(n));