@whoz-oss/coday-client 3.18.0 → 3.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/{chunk-DOHvMo5p.js → chunk-2H_m7V_L.js} +1 -1
- package/browser/{chunk-Buu9Jf-V.js → chunk-3m_nS8Y5.js} +1 -1
- package/browser/{chunk-Cjk-zAXy.js → chunk-4tOVGgPj.js} +1 -1
- package/browser/{chunk-BVmICoo4.js → chunk-82BMsVX3.js} +1 -1
- package/browser/{chunk-CakkML6n.js → chunk-B3NyUUXq.js} +1 -1
- package/browser/chunk-B55TXBfo.js +1 -0
- package/browser/{chunk-py_Q_oQH.js → chunk-B9NYLAhC.js} +1 -1
- package/browser/{chunk-CgNkwpQ7.js → chunk-BEaYQhbI.js} +1 -1
- package/browser/chunk-BI4kHPfc.js +1 -0
- package/browser/{chunk-DMyGIjcZ.js → chunk-BID9NaLj.js} +1 -1
- package/browser/{chunk-CxpHnwnx.js → chunk-BOpm3F5F.js} +1 -1
- package/browser/{chunk-DoqL_RuM.js → chunk-BWLCegs8.js} +1 -1
- package/browser/{chunk-CJEW8Ogd.js → chunk-BWZcAdUl.js} +1 -1
- package/browser/{chunk-BEdQqXxw.js → chunk-BXsNw_60.js} +1 -1
- package/browser/chunk-BZ-rNYX5.js +1 -0
- package/browser/{chunk-DMUiJ7oP.js → chunk-B_5qWQZJ.js} +1 -1
- package/browser/{chunk-BGTRsbsl.js → chunk-BcHHkjC4.js} +1 -1
- package/browser/{chunk-zvR-rokl.js → chunk-BhD8uvAV.js} +1 -1
- package/browser/{chunk-IYMfBoNU.js → chunk-Bha8h69K.js} +1 -1
- package/browser/{chunk-FMHkoXwM.js → chunk-BhdMedPO.js} +1 -1
- package/browser/{chunk-CR817PBg.js → chunk-BiwhEkuA.js} +1 -1
- package/browser/{chunk-4uEZjTft.js → chunk-Bkwb10Tz.js} +1 -1
- package/browser/{chunk-BXCHG0wB.js → chunk-BlO8XEX7.js} +1 -1
- package/browser/{chunk-D6nkbOg1.js → chunk-BmiWFhjp.js} +1 -1
- package/browser/{chunk-W5DNK5PC.js → chunk-BnDz6aYG.js} +1 -1
- package/browser/{chunk-ClCDsg8D.js → chunk-BqH7Wffn.js} +1 -1
- package/browser/{chunk-B_Sx6nwb.js → chunk-BrZnGAfk.js} +1 -1
- package/browser/{chunk-BbPMe8u2.js → chunk-Bu2KbiEO.js} +1 -1
- package/browser/{chunk-WSA7xa0h.js → chunk-C3kED08r.js} +1 -1
- package/browser/{chunk-Bb_J3EoX.js → chunk-C4bnTLvT.js} +1 -1
- package/browser/{chunk-CqJ7rGVY.js → chunk-C5I2MlRU.js} +1 -1
- package/browser/{chunk-DVTNoWCQ.js → chunk-C9j9HPDY.js} +1 -1
- package/browser/{chunk-DJjbZAaS.js → chunk-CEeAV-bb.js} +1 -1
- package/browser/{chunk-CJAdjOmi.js → chunk-CNQEET68.js} +1 -1
- package/browser/{chunk--yaU4Sri.js → chunk-CNfTQeDy.js} +1 -1
- package/browser/{chunk-D1ZnLng-.js → chunk-CR2xcumM.js} +1 -1
- package/browser/{chunk-BfE6wTUj.js → chunk-CUeRU4T-.js} +1 -1
- package/browser/{chunk-B17Inq8D.js → chunk-Cno6SC-J.js} +1 -1
- package/browser/{chunk-CXgj_KJY.js → chunk-CorOD5-V.js} +1 -1
- package/browser/{chunk-DKQvH1hP.js → chunk-CvEqqOCm.js} +1 -1
- package/browser/{chunk-D4dmZgr6.js → chunk-Cwpn9dPE.js} +1 -1
- package/browser/{chunk-DmaEv05C.js → chunk-Cx3RQESQ.js} +1 -1
- package/browser/{chunk-D26Y186i.js → chunk-CxKynLjd.js} +1 -1
- package/browser/{chunk-B13_C_P9.js → chunk-D8Bz7q-C.js} +1 -1
- package/browser/{chunk-t87lD8bQ.js → chunk-DAyHNJOx.js} +1 -1
- package/browser/{chunk-D8nXP3jN.js → chunk-DBfSV0o-.js} +1 -1
- package/browser/{chunk-D2zGvbD2.js → chunk-DEAo8Gsm.js} +1 -1
- package/browser/{chunk-D30bRRTP.js → chunk-DHF4GvxN.js} +1 -1
- package/browser/{chunk-BJld3zB5.js → chunk-DIhIuMRR.js} +4 -4
- package/browser/{chunk-CM1_Z4h5.js → chunk-DK7la0Zv.js} +1 -1
- package/browser/{chunk-CP3b1EMm.js → chunk-DKUyWR_o.js} +1 -1
- package/browser/{chunk-B1vuv-dv.js → chunk-DP1Oiy0T.js} +1 -1
- package/browser/{chunk-Bnj9Hkqy.js → chunk-DSgmn8Nl.js} +1 -1
- package/browser/{chunk-D92adUD_.js → chunk-DVVwrDwV.js} +1 -1
- package/browser/{chunk-BqWEyotW.js → chunk-DWlwteaE.js} +1 -1
- package/browser/{chunk-HHPhxe9B.js → chunk-DXAodgYO.js} +1 -1
- package/browser/{chunk-Qpb04pBJ.js → chunk-Ddy7zzYX.js} +1 -1
- package/browser/{chunk-DFjZf9oL.js → chunk-DrITgtaw.js} +1 -1
- package/browser/{chunk-CfPmQ0Fw.js → chunk-Drt7fOvo.js} +1 -1
- package/browser/{chunk-PQu4_Hy2.js → chunk-Dw8nvU1v.js} +1 -1
- package/browser/{chunk-o2LY9dfG.js → chunk-HERnQhug.js} +1 -1
- package/browser/{chunk-CmyT-Z4A.js → chunk-RlCcRMQy.js} +1 -1
- package/browser/{chunk-4v7WiOTx.js → chunk-iwYQP1W9.js} +1 -1
- package/browser/{chunk-DV_7IOl_.js → chunk-kXODoW4J.js} +1 -1
- package/browser/{chunk-Fr6-w83-.js → chunk-nbZfjdVD.js} +1 -1
- package/browser/{chunk-BHiaH1Jm.js → chunk-t5r49PeM.js} +1 -1
- package/browser/{chunk-vL7dLM7S.js → chunk-vG5Um99w.js} +1 -1
- package/browser/{chunk-DDu5Ufv3.js → chunk-vse5stCO.js} +1 -1
- package/browser/{chunk-B-UKlpjJ.js → chunk-wricEDWB.js} +1 -1
- package/browser/index.html +1 -1
- package/browser/{main-YYHD6X7H.js → main-K6RKSHKK.js} +13 -13
- package/package.json +1 -1
- package/browser/chunk-DaoWXYMw.js +0 -1
- package/browser/chunk-lX2E6ugr.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import {c}from'./chunk-
|
|
1
|
+
import {c}from'./chunk-DIhIuMRR.js';import {g,ao as V,dp as G,W as Wi,an as ue$1,cd as $f,j as jw,s as si,cF as $b,k as Cs,J as JC,m as hl,o as aC,t as sI,u as cC,bR as Sd,bS as Da,cB as on,$ as $y,a7 as va,a9 as vC,n as kg,ai as rm,a3 as ZI,ac as CC,ak as nm,a6 as QI,a8 as Kg,q as dC,v as fC,cg as pT,b4 as fT,bf as gT,bg as yT,b0 as Xg,bi as vT,aa as Cf,ab as Tf,aj as iT,a5 as Dl}from'./main-K6RKSHKK.js';import {t as ti,J as Jn,Y as Ye,Z as Zn,l as Xn,g as gt,c as cn,d as an}from'./chunk-BhdMedPO.js';import'./chunk-Bkwb10Tz.js';import'./chunk-D8Bz7q-C.js';import'./chunk-BEaYQhbI.js';var ne=e=>({title:"By agent",rows:e}),ie=e=>({title:"By model",rows:e}),ae=(e,o)=>[e,o],oe=(e,o)=>o.title,re=(e,o)=>o.key;function se(e,o){e&1&&(Cs(0,"p",2),JC(1,"Loading usage settings\u2026"),hl());}function le(e,o){if(e&1){let t=vC();Cs(0,"p",3),JC(1,"Could not load usage settings. Please try again."),hl(),Cs(2,"button",4),kg("click",function(){Cf(t);let s=CC();return Tf(s.configuration.retry())}),JC(3,"Retry usage settings"),hl();}}function me(e,o){e&1&&(Cs(0,"p",2),JC(1,"Usage tracking is disabled."),hl());}function de(e,o){e&1&&(Cs(0,"p",3),JC(1),hl()),e&2&&(sI(),Kg(o));}function ce(e,o){e&1&&(Cs(0,"p",2),JC(1,"Loading usage\u2026"),hl());}function pe(e,o){e&1&&(Cs(0,"p"),JC(1,"No recorded usage for this period."),hl());}function ge(e,o){if(e&1&&(Cs(0,"small"),JC(1),hl()),e&2){let t=CC().$implicit;sI(),Dl("",t.aggregate.unknownCostCount," record(s) with unknown cost");}}function ue(e,o){if(e&1&&(Cs(0,"tr")(1,"th",11),JC(2),hl(),Cs(3,"td"),JC(4),gT(5,"number"),hl(),Cs(6,"td"),JC(7),gT(8,"number"),gT(9,"number"),hl(),Cs(10,"td"),JC(11),gT(12,"number"),gT(13,"number"),hl(),Cs(14,"td"),JC(15),gT(16,"number"),aC(17,ge,2,1,"small"),hl()()),e&2){let t=o.$implicit;sI(2),Kg(t.key),sI(2),Kg(yT(5,9,t.aggregate.totalTokens)),sI(3),Xg("",yT(8,11,t.aggregate.inputTokens)," / ",yT(9,13,t.aggregate.outputTokens)),sI(4),Xg(" ",yT(12,15,t.aggregate.cacheReadTokens)," / ",yT(13,17,t.aggregate.cacheWriteTokens)," "),sI(4),Xg(" ",t.aggregate.unknownCostCount>0?"At least ":"","",vT(16,19,t.aggregate.cost,"1.2-6")," "),sI(2),cC(t.aggregate.unknownCostCount>0?17:-1);}}function _e(e,o){if(e&1&&(Cs(0,"div",9)(1,"table")(2,"thead")(3,"tr")(4,"th",10),JC(5,"Name"),hl(),Cs(6,"th",10),JC(7,"Tokens"),hl(),Cs(8,"th",10),JC(9,"Input / output"),hl(),Cs(10,"th",10),JC(11,"Cache read / write"),hl(),Cs(12,"th",10),JC(13,"Estimated cost"),hl()()(),Cs(14,"tbody"),dC(15,ue,18,22,"tr",null,re),hl()()()),e&2){let t=CC().$implicit;sI(15),fC(t.rows);}}function Ce(e,o){if(e&1&&(Cs(0,"h2"),JC(1),hl(),aC(2,pe,2,0,"p")(3,_e,17,0,"div",9)),e&2){let t=o.$implicit;sI(),Kg(t.title),sI(),cC(t.rows.length===0?2:3);}}function fe(e,o){if(e&1&&(dC(0,Ce,4,2,null,null,oe),Cs(2,"p"),JC(3,"Unpriced usage is kept separate from known costs. Active agent runs appear here after they finish."),hl()),e&2){let t=CC(2);fC(pT(4,ae,fT(0,ne,t.agents()),fT(2,ie,t.models())));}}function ye(e,o){if(e&1){let t=vC();Cs(0,"p"),JC(1,"Recorded LLM usage across this namespace. Costs are estimates in the platform currency."),hl(),Cs(2,"form",5),kg("ngSubmit",function(){Cf(t);let s=CC();return Tf(s.load())}),Cs(3,"label"),JC(4,"From (UTC)"),Cs(5,"input",6),rm("ngModelChange",function(s){Cf(t);let d=CC();return iT(d.from,s)||(d.from=s),Tf(s)}),hl(),ZI(),hl(),Cs(6,"label"),JC(7,"To (UTC)"),Cs(8,"input",7),rm("ngModelChange",function(s){Cf(t);let d=CC();return iT(d.to,s)||(d.to=s),Tf(s)}),hl(),ZI(),hl(),Cs(9,"button",8),JC(10,"Refresh"),hl()(),aC(11,de,2,1,"p",3),aC(12,ce,2,0,"p",2)(13,fe,4,7);}if(e&2){let t,r=CC();sI(5),nm("ngModel",r.from),QI(),sI(3),nm("ngModel",r.to),QI(),sI(3),cC((t=r.error())?11:-1,t),sI(),cC(r.loading()?12:r.error()?-1:13);}}var te=class e{route=g(V);api=g(G);configuration=g(c);namespaceId=this.route.snapshot.params.namespaceId;agents=Wi([]);models=Wi([]);error=Wi(null);loading=Wi(false);from=new Date(Date.now()-30*864e5).toISOString().slice(0,10);to=new Date().toISOString().slice(0,10);refresh=new ue$1;constructor(){$f(o=>{if(!this.configuration.enabled())return;let t=this.refresh.pipe(Sd(void 0),Da(()=>{this.error.set(null),this.agents.set([]),this.models.set([]);let r=new Date(`${this.from}T00:00:00.000Z`),s=new Date(`${this.to}T23:59:59.999Z`);return !Number.isFinite(r.getTime())||!Number.isFinite(s.getTime())||r>s?(this.error.set("Select a valid date range."),this.loading.set(false),on):(this.loading.set(true),$y({agents:this.api.aggregateByAgentUsageRecord(this.namespaceId,r.toISOString(),s.toISOString()),models:this.api.aggregateByModelUsageRecord(this.namespaceId,r.toISOString(),s.toISOString())}).pipe(va(d=>(this.loading.set(false),this.error.set(d.status===403?"Namespace admin permission is required to view this report.":"Could not load usage. Please try again."),on))))})).subscribe(({agents:r,models:s})=>{this.agents.set(r),this.models.set(s),this.loading.set(false);});o(()=>t.unsubscribe());});}load(){this.configuration.enabled()&&this.refresh.next();}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=jw({type:e,selectors:[["agentos-namespace-usage"]],decls:9,vars:1,consts:[[1,"report"],["routerLink","/agentos/namespaces"],["role","status"],["role","alert"],["type","button",3,"click"],[1,"filters",3,"ngSubmit"],["type","date","name","from","required","",3,"ngModelChange","ngModel"],["type","date","name","to","required","",3,"ngModelChange","ngModel"],["type","submit"],[1,"table-wrap"],["scope","col"],["scope","row"]],template:function(t,r){t&1&&(Cs(0,"section",0)(1,"a",1),JC(2,"\u2190 Namespaces"),hl(),Cs(3,"h1"),JC(4,"Usage and costs"),hl(),aC(5,se,2,0,"p",2)(6,le,4,0)(7,me,2,0,"p",2)(8,ye,14,4),hl()),t&2&&(sI(5),cC(r.configuration.state()==="loading"?5:r.configuration.state()==="error"?6:r.configuration.state()==="disabled"?7:8));},dependencies:[ti,Jn,Ye,Zn,Xn,gt,cn,an,si,$b],styles:["[_nghost-%COMP%]{display:block}.report[_ngcontent-%COMP%]{max-width:1100px;margin:auto;padding:1.5rem;color:var(--color-text, inherit)}a[_ngcontent-%COMP%]{color:inherit}.filters[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:1rem;align-items:end;margin:1.5rem 0}label[_ngcontent-%COMP%]{display:grid;gap:.4rem}input[_ngcontent-%COMP%], button[_ngcontent-%COMP%]{font:inherit;color:inherit;background:transparent;border:1px solid var(--color-border, rgba(136, 136, 136, .5333333333));border-radius:.4rem;padding:.5rem .75rem}button[_ngcontent-%COMP%]{cursor:pointer}.table-wrap[_ngcontent-%COMP%]{overflow-x:auto}table[_ngcontent-%COMP%]{border-collapse:collapse;width:100%}th[_ngcontent-%COMP%], td[_ngcontent-%COMP%]{text-align:left;padding:.75rem;border-bottom:1px solid var(--color-border, rgba(136, 136, 136, .3333333333))}small[_ngcontent-%COMP%]{display:block;margin-top:.3rem}h2[_ngcontent-%COMP%]{margin-top:2rem}"]})};export{te as NamespaceUsageComponent};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {b as Qe}from'./chunk-
|
|
1
|
+
import {b as Qe}from'./chunk-BEaYQhbI.js';import {D as D$1,i as y}from'./chunk-BhdMedPO.js';import {aL as wo,aM as Zn,aO as wt,g as g$1,az as Xt,bs as bl,aP as G,aS as K,aW as C,al as vt,aX as D,bx as on,by as dm,aT as Ut,W as Wi,j as jw,bz as Oi,aC as bu,a_ as rb,bA as bC,k as Cs,n as kg,m as hl,M as Mg,c9 as Pf,ck as Lf,bB as SC,A as AC,_ as _g,t as sI,w as zg,S as Sg,b5 as lT,bC as _i,c8 as ob,c0 as Rg,b$ as UC,x as jg,y as MC,N as NC}from'./main-K6RKSHKK.js';var W=["input"],Y=["label"],ee=["*"],f={color:"accent",clickAction:"check-indeterminate",disabledInteractive:false},ce=new C("mat-checkbox-default-options",{providedIn:"root",factory:()=>f}),a=(function(t){return t[t.Init=0]="Init",t[t.Checked=1]="Checked",t[t.Unchecked=2]="Unchecked",t[t.Indeterminate=3]="Indeterminate",t})(a||{}),g=class{source;checked},ne=(()=>{class t{_elementRef=g$1(Xt);_changeDetectorRef=g$1(bl);_ngZone=g$1(G);_animationsDisabled=K();_options=g$1(ce,{optional:true});focus(){this._inputElement.nativeElement.focus();}_createChangeEvent(e){let n=new g;return n.source=this,n.checked=e,n}_getAnimationTargetElement(){return this._inputElement?.nativeElement}_animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"};ariaLabel="";ariaLabelledby=null;ariaDescribedby;ariaExpanded;ariaControls;ariaOwns;_uniqueId;id;get inputId(){return `${this.id||this._uniqueId}-input`}required=false;labelPosition="after";name=null;change=new vt;indeterminateChange=new vt;value;disableRipple=false;_inputElement;_labelElement;tabIndex;color;disabledInteractive;_onTouched=()=>{};_currentAnimationClass="";_currentCheckState=a.Init;_controlValueAccessorChangeFn=()=>{};_validatorChangeFn=()=>{};constructor(){g$1(D).load(on);let e=g$1(new dm("tabindex"),{optional:true});this._options=this._options||f,this.color=this._options.color||f.color,this.tabIndex=e==null?0:parseInt(e)||0,this.id=this._uniqueId=g$1(Ut).getId("mat-mdc-checkbox-"),this.disabledInteractive=this._options?.disabledInteractive??false;}ngOnChanges(e){e.required&&this._validatorChangeFn();}ngAfterViewInit(){this._syncIndeterminate(this.indeterminate);}get checked(){return this._checked}set checked(e){e!=this.checked&&(this._checked=e,this._changeDetectorRef.markForCheck());}_checked=false;get disabled(){return this._disabled}set disabled(e){e!==this.disabled&&(this._disabled=e,this._changeDetectorRef.markForCheck());}_disabled=false;get indeterminate(){return this._indeterminate()}set indeterminate(e){let n=e!=this._indeterminate();this._indeterminate.set(e),n&&(e?this._transitionCheckState(a.Indeterminate):this._transitionCheckState(this.checked?a.Checked:a.Unchecked),this.indeterminateChange.emit(e)),this._syncIndeterminate(e);}_indeterminate=Wi(false);_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges();}writeValue(e){this.checked=!!e;}registerOnChange(e){this._controlValueAccessorChangeFn=e;}registerOnTouched(e){this._onTouched=e;}setDisabledState(e){this.disabled=e;}validate(e){return this.required&&e.value!==true?{required:true}:null}registerOnValidatorChange(e){this._validatorChangeFn=e;}_transitionCheckState(e){let n=this._currentCheckState,c=this._getAnimationTargetElement();if(!(n===e||!c)&&(this._currentAnimationClass&&c.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(n,e),this._currentCheckState=e,this._currentAnimationClass.length>0)){c.classList.add(this._currentAnimationClass);let o=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{c.classList.remove(o);},1e3);});}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked);}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked);}_handleInputClick(){let e=this._options?.clickAction;!this.disabled&&e!=="noop"?(this.indeterminate&&e!=="check"&&Promise.resolve().then(()=>{this._indeterminate.set(false),this.indeterminateChange.emit(false);}),this._checked=!this._checked,this._transitionCheckState(this._checked?a.Checked:a.Unchecked),this._emitChangeEvent()):(this.disabled&&this.disabledInteractive||!this.disabled&&e==="noop")&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate);}_onInteractionEvent(e){e.stopPropagation();}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck();});}_getAnimationClassForCheckStateTransition(e,n){if(this._animationsDisabled)return "";switch(e){case a.Init:if(n===a.Checked)return this._animationClasses.uncheckedToChecked;if(n==a.Indeterminate)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case a.Unchecked:return n===a.Checked?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case a.Checked:return n===a.Unchecked?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case a.Indeterminate:return n===a.Checked?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return ""}_syncIndeterminate(e){let n=this._inputElement;n&&(n.nativeElement.indeterminate=e);}_onInputClick(){this._handleInputClick();}_onTouchTargetClick(){this._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus();}_preventBubblingFromLabel(e){e.target&&this._labelElement.nativeElement.contains(e.target)&&e.stopPropagation();}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=jw({type:t,selectors:[["mat-checkbox"]],viewQuery:function(n,c){if(n&1&&jg(W,5)(Y,5),n&2){let o;MC(o=NC())&&(c._inputElement=o.first),MC(o=NC())&&(c._labelElement=o.first);}},hostAttrs:[1,"mat-mdc-checkbox"],hostVars:16,hostBindings:function(n,c){n&2&&(Rg("id",c.id),Sg("tabindex",null)("aria-label",null)("aria-labelledby",null),UC(c.color?"mat-"+c.color:"mat-accent"),zg("_mat-animation-noopable",c._animationsDisabled)("mdc-checkbox--disabled",c.disabled)("mat-mdc-checkbox-disabled",c.disabled)("mat-mdc-checkbox-checked",c.checked)("mat-mdc-checkbox-disabled-interactive",c.disabledInteractive));},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],ariaExpanded:[2,"aria-expanded","ariaExpanded",rb],ariaControls:[0,"aria-controls","ariaControls"],ariaOwns:[0,"aria-owns","ariaOwns"],id:"id",required:[2,"required","required",rb],labelPosition:"labelPosition",name:"name",value:"value",disableRipple:[2,"disableRipple","disableRipple",rb],tabIndex:[2,"tabIndex","tabIndex",e=>e==null?void 0:ob(e)],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",rb],checked:[2,"checked","checked",rb],disabled:[2,"disabled","disabled",rb],indeterminate:[2,"indeterminate","indeterminate",rb]},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],features:[lT([{provide:D$1,useExisting:_i(()=>t),multi:true},{provide:y,useExisting:t,multi:true}]),bu],ngContentSelectors:ee,decls:15,vars:23,consts:[["checkbox",""],["input",""],["label",""],["mat-internal-form-field","",3,"click","labelPosition"],[1,"mdc-checkbox"],["aria-hidden","true",1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"blur","click","change","checked","indeterminate","disabled","id","required","tabIndex"],["aria-hidden","true",1,"mdc-checkbox__ripple"],["aria-hidden","true",1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","","aria-hidden","true",1,"mat-mdc-checkbox-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"]],template:function(n,c){if(n&1&&(bC(),Cs(0,"div",3),kg("click",function(k){return c._preventBubblingFromLabel(k)}),Cs(1,"div",4,0)(3,"div",5),kg("click",function(){return c._onTouchTargetClick()}),hl(),Cs(4,"input",6,1),kg("blur",function(){return c._onBlur()})("click",function(){return c._onInputClick()})("change",function(k){return c._onInteractionEvent(k)}),hl(),Mg(6,"div",7),Cs(7,"div",8),Pf(),Cs(8,"svg",9),Mg(9,"path",10),hl(),Lf(),Mg(10,"div",11),hl(),Mg(11,"div",12),hl(),Cs(12,"label",13,2),SC(14),hl()()),n&2){let o=AC(2);_g("labelPosition",c.labelPosition),sI(4),zg("mdc-checkbox--selected",c.checked),_g("checked",c.checked)("indeterminate",c.indeterminate)("disabled",c.disabled&&!c.disabledInteractive)("id",c.inputId)("required",c.required)("tabIndex",c.disabled&&!c.disabledInteractive?-1:c.tabIndex),Sg("aria-label",c.ariaLabel||null)("aria-labelledby",c.ariaLabelledby)("aria-describedby",c.ariaDescribedby)("aria-checked",c.indeterminate?"mixed":null)("aria-controls",c.ariaControls)("aria-disabled",c.disabled&&c.disabledInteractive?true:null)("aria-expanded",c.ariaExpanded)("aria-owns",c.ariaOwns)("name",c.name)("value",c.value),sI(7),_g("matRippleTrigger",o)("matRippleDisabled",c.disableRipple||c.disabled)("matRippleCentered",true),sI(),_g("for",c.inputId);}},dependencies:[Oi,Qe],styles:[`.mdc-checkbox {
|
|
2
2
|
display: inline-block;
|
|
3
3
|
position: relative;
|
|
4
4
|
flex: 0 0 18px;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {g,bm as xm,W as Wi,T as TT,cF as $b,j as jw,h as hr,i as Gn,k as Cs,n as kg,J as JC,m as hl,a3 as ZI,o as aC,t as sI,_ as _g,a6 as QI,u as cC,C as Ce,z as z$1,a as P,$ as $y,b as U,K as x,b1 as On,bf as gT,ac as CC,a8 as Kg,bi as vT,cG as DT,q as dC,cH as iC,M as Mg,v as fC,B as gy,cI as xt,aw as gl,ax as ml,c9 as Pf,b6 as Ng,ck as Lf,S as Sg,a5 as Dl,a9 as vC,cJ as Fg,aa as Cf,ab as Tf,ad as $g}from'./main-YYHD6X7H.js';import {t as ti,Q as Qn,e as ei,Y as Ye$1,A as At,Z as Zn,c as cn,y as yt,w as wt}from'./chunk-FMHkoXwM.js';var Ae=(o,t)=>t.date,He=(o,t)=>t.x,$e=(o,t)=>t.label;function Ve(o,t){o&1&&(gl(0,"div",0),JC(1,"No daily data points for this period."),ml());}function Le(o,t){if(o&1&&(Pf(),Ng(0,"rect",18)),o&2){let e=CC().$implicit,n=CC(2);Sg("x",e.w+6)("y",n.yBase-e.tokensStubH)("width",e.w)("height",e.tokensStubH);}}function Ge(o,t){if(o&1&&(Pf(),Ng(0,"rect",19)(1,"rect",20)),o&2){let e=CC().$implicit,n=CC(2);Sg("x",e.w+6)("y",n.yBase-(e.promptH??0))("width",e.w)("height",e.promptH??0),sI(),Sg("x",e.w+6)("y",n.yBase-((e.promptH??0)+(e.completionH??0)))("width",e.w)("height",e.completionH??0);}}function Ye(o,t){if(o&1){let e=vC();Pf(),gl(0,"g",15),Fg("mouseenter",function(i){let d=Cf(e).$implicit,u=CC(2);return Tf(u.showTooltip(i,d.point))})("mousemove",function(i){let d=Cf(e).$implicit,u=CC(2);return Tf(u.showTooltip(i,d.point))})("mouseleave",function(){Cf(e);let i=CC(2);return Tf(i.hideTooltip())}),Ng(1,"rect",16)(2,"rect",17),aC(3,Le,1,4,":svg:rect",18)(4,Ge,2,8),ml();}if(o&2){let e=t.$implicit,n=CC(2);Sg("transform","translate("+e.xGroup+",0)"),sI(),Sg("y",n.yTop)("width",e.groupW)("height",n.yBase-n.yTop),sI(),Sg("y",n.yBase-e.costH)("width",e.w)("height",e.costH),sI(),cC(e.tokensStubH!==null?3:4);}}function We(o,t){if(o&1&&(Pf(),gl(0,"text",5),JC(1),ml()),o&2){let e=t.$implicit,n=CC(2);Sg("x",e.x)("y",n.yAxis),sI(),Kg(e.label);}}function je(o,t){if(o&1&&(gl(0,"div",24),JC(1),ml(),gl(2,"div",25),JC(3),ml()),o&2){let e=t.$implicit;sI(),Kg(e.label),sI(2),Kg(e.value);}}function ze(o,t){if(o&1&&(gl(0,"div",21)(1,"div",22),JC(2),ml(),gl(3,"div",23),dC(4,je,4,2,null,null,$e),ml()()),o&2){let e=CC(2);$g("left",e.tooltip().x+12,"px")("top",e.tooltip().y+12,"px"),sI(2),Kg(e.tooltip().data.date),sI(2),fC(e.tooltipLines());}}function Xe(o,t){if(o&1&&(gl(0,"div",8)(1,"span",10),JC(2),ml()()),o&2){let e=CC(2);sI(2),Kg(e.tokenCoverageLabel());}}function Je(o,t){if(o&1&&(gl(0,"div",1),Pf(),gl(1,"svg",2),Ng(2,"line",3)(3,"line",3),dC(4,Ye,5,8,":svg:g",4,Ae),dC(6,We,2,3,":svg:text",5,He),ml(),aC(8,ze,6,5,"div",6),Lf(),gl(9,"div",7)(10,"div",8),Ng(11,"span",9),gl(12,"span",10),JC(13,"Cost (per day)"),ml(),gl(14,"span",11),JC(15),ml()(),gl(16,"div",8),Ng(17,"span",12),gl(18,"span",10),JC(19,"Prompt tokens"),ml()(),gl(20,"div",8),Ng(21,"span",13),gl(22,"span",10),JC(23,"Completion tokens"),ml()(),gl(24,"div",8),Ng(25,"span",14),gl(26,"span",10),JC(27,"Tokens missing"),ml()(),gl(28,"div",8)(29,"span",10),JC(30,"Tokens scale"),ml(),gl(31,"span",11),JC(32),ml()(),aC(33,Xe,3,1,"div",8),ml()()),o&2){let e=CC();sI(),Sg("viewBox",e.viewBox),sI(),Sg("y1",e.yTop)("x2",720)("y2",e.yTop),sI(),Sg("y1",e.yBase)("x2",720)("y2",e.yBase),sI(),fC(e.bars()),sI(2),fC(e.axisLabels()),sI(2),cC(e.tooltip().visible&&e.tooltip().data?8:-1),sI(7),Dl("max ",e.maxCostLabel()),sI(17),Dl("max ",e.maxTokensLabel()),sI(),cC(e.tokenCoverageLabel()?33:-1);}}var j=class o{points=[];width=720;height=240;paddingX=12;paddingY=16;bottomAxisH=48;viewBox=`0 0 ${this.width} ${this.height}`;innerW=this.width-this.paddingX*2;innerH=this.height-this.paddingY*2-this.bottomAxisH;barGap=6;groupGap=14;safePoints=TT(()=>(this.points??[]).filter(t=>!!t.date));maxCost=TT(()=>Math.max(0,...this.safePoints().map(t=>t.cost??0)));maxTokens=TT(()=>{let t=this.safePoints().map(e=>{let n=e.promptTokens??null,i=e.completionTokens??null;return n===null&&i===null?null:(n??0)+(i??0)}).filter(e=>e!==null);return Math.max(0,...t)});tokenCoverageLabel=TT(()=>{let t=this.safePoints();return t.length===0?"":`Tokens available for ${t.filter(n=>n.promptTokens!==null||n.completionTokens!==null).length}/${t.length} days`});maxCostLabel=TT(()=>"$"+(new $b("en-US").transform(this.maxCost(),"1.2-2")??"0.00"));maxTokensLabel=TT(()=>new $b("en-US").transform(this.maxTokens(),"1.0-2")??"0");tooltip=Wi({visible:false,x:0,y:0,data:null});toTooltipData(t){let e=t.promptTokens,n=t.completionTokens,i=e===null&&n===null?null:(e??0)+(n??0);return {date:t.date,cost:t.cost??0,promptTokens:e,completionTokens:n,totalTokens:i,callCount:t.callCount??0}}showTooltip(t,e){let i=t.currentTarget?.closest(".chart")?.getBoundingClientRect(),d=i?t.clientX-i.left:t.clientX,u=i?t.clientY-i.top:t.clientY,f=320,k=170,U=12,C=i?Math.max(0,i.width-f-U):d,B=i?Math.max(0,i.height-k-U):u,F=i?Math.min(Math.max(0,d),C):d,ne=i?Math.min(Math.max(0,u),B):u;this.tooltip.set({visible:true,x:F,y:ne,data:this.toTooltipData(e)});}hideTooltip(){this.tooltip.update(t=>z$1(P({},t),{visible:false}));}formatTokens(t){return t===null?"\u2014":new $b("en-US").transform(t,"1.0-2")??"0"}formatCost(t){return "$"+(new $b("en-US").transform(t??0,"1.2-2")??"0.00")}tooltipLines=TT(()=>{let t=this.tooltip(),e=t.data;return !t.visible||!e?[]:[{label:"Cost",value:this.formatCost(e.cost)},{label:"Prompt tokens",value:this.formatTokens(e.promptTokens)},{label:"Completion tokens",value:this.formatTokens(e.completionTokens)},{label:"Total tokens",value:this.formatTokens(e.totalTokens)},{label:"Calls",value:`${e.callCount}`}]});bars=TT(()=>{let t=this.safePoints(),e=t.length;if(e===0)return [];let n=(this.innerW-(e-1)*this.groupGap)/e,i=Math.max(2,n),d=(i-this.barGap)/2,u=Math.max(1,d),f=this.maxCost()||1,k=this.maxTokens()||1,U=45;return t.map((C,B)=>{let F=this.paddingX+B*(i+this.groupGap),Ie=(C.cost??0)/f*this.innerH,oe=C.promptTokens,ae=C.completionTokens,Z=oe!==null||ae!==null,Ne=oe??0,Ue=ae??0,Be=Z?Ne/k*this.innerH:null,Fe=Z?Ue/k*this.innerH:null;return {date:C.date,point:C,xGroup:F,groupW:i,xCost:F,w:u,costH:Ie,xTokens:F+u+this.barGap,promptH:Be,completionH:Fe,tokensStubH:Z?null:U}})});axisLabels=TT(()=>{let t=this.safePoints(),e=t.length;if(e===0)return [];let i=Math.max(1,Math.ceil(e/8)),d=(this.innerW-(e-1)*this.groupGap)/e,u=Math.max(2,d);return t.map((f,k)=>({p:f,i:k})).filter(({i:f})=>f%i===0||f===e-1).map(({p:f,i:k})=>{let C=this.paddingX+k*(u+this.groupGap)+u/2,B=f.date.slice(5);return {x:C,label:B}})});yTop=this.paddingY;yBase=this.paddingY+this.innerH;yAxis=this.yBase+28;static \u0275fac=function(e){return new(e||o)};static \u0275cmp=jw({type:o,selectors:[["app-daily-series-chart"]],inputs:{points:"points"},decls:2,vars:1,consts:[[1,"muted"],[1,"chart"],["preserveAspectRatio","none","role","img","aria-label","Daily token and cost usage",1,"chart__svg"],["x1","0",1,"chart__grid"],[1,"chart__day"],["text-anchor","middle",1,"chart__axis-label"],[1,"chart__tooltip",3,"left","top"],[1,"chart__legend"],[1,"chart__legend-item"],["aria-hidden","true",1,"chart__legend-swatch","chart__legend-swatch--cost"],[1,"chart__legend-label"],[1,"chart__legend-value"],["aria-hidden","true",1,"chart__legend-swatch","chart__legend-swatch--prompt"],["aria-hidden","true",1,"chart__legend-swatch","chart__legend-swatch--completion"],["aria-hidden","true",1,"chart__legend-swatch","chart__legend-swatch--tokens-missing"],[1,"chart__day",3,"mouseenter","mousemove","mouseleave"],["x","0",1,"chart__hover"],["x","0",1,"chart__bar","chart__bar--cost"],[1,"chart__bar","chart__bar--tokens-missing"],[1,"chart__bar","chart__bar--prompt"],[1,"chart__bar","chart__bar--completion"],[1,"chart__tooltip"],[1,"chart__tooltip-title"],[1,"chart__tooltip-grid"],[1,"chart__tooltip-label"],[1,"chart__tooltip-value"]],template:function(e,n){e&1&&aC(0,Ve,2,0,"div",0)(1,Je,34,11,"div",1),e&2&&cC(n.safePoints().length===0?0:1);},styles:[".chart[_ngcontent-%COMP%]{display:grid;gap:.5rem;position:relative}.chart__svg[_ngcontent-%COMP%]{width:100%;height:260px;display:block;border-radius:12px;background:var(--color-bg-secondary, rgba(255, 255, 255, .72));border:1px solid var(--color-border-light, rgba(0, 0, 0, .08))}.chart__grid[_ngcontent-%COMP%]{stroke:var(--color-border-light, rgba(0, 0, 0, .08));stroke-width:1}.chart__day[_ngcontent-%COMP%]{cursor:default}.chart__hover[_ngcontent-%COMP%]{fill:transparent}.chart__day[_ngcontent-%COMP%]:hover .chart__hover[_ngcontent-%COMP%]{fill:var(--color-bg-hover, rgba(0, 0, 0, .03))}.chart__tooltip[_ngcontent-%COMP%]{position:absolute;z-index:2;min-width:220px;max-width:320px;padding:10px 12px;border-radius:12px;background:rgb(var(--color-bg-secondary-rgb, 255 255 255)/1);border:1px solid var(--color-border-light, rgba(0, 0, 0, .08));box-shadow:var(--glass-shadow, 0 8px 24px rgba(0, 0, 0, .12));pointer-events:none}.chart__tooltip-title[_ngcontent-%COMP%]{font-weight:650;margin-bottom:6px}.chart__tooltip-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr auto;column-gap:10px;row-gap:4px}.chart__tooltip-label[_ngcontent-%COMP%]{color:var(--color-text-secondary, rgba(29, 29, 31, .7));font-size:.85rem}.chart__tooltip-value[_ngcontent-%COMP%]{font-variant-numeric:tabular-nums;text-align:right}.chart__bar[_ngcontent-%COMP%]{shape-rendering:geometricPrecision;rx:2;ry:2}.chart__bar--cost[_ngcontent-%COMP%]{fill:var(--color-primary, #007aff);opacity:.85}.chart__bar--prompt[_ngcontent-%COMP%]{fill:var(--color-success, #34c759);opacity:.85}.chart__bar--completion[_ngcontent-%COMP%]{fill:var(--color-warning, #ff9500);opacity:.85}.chart__bar--tokens-missing[_ngcontent-%COMP%]{fill:transparent;stroke:var(--color-text-secondary, rgba(29, 29, 31, .55));stroke-width:1.5;stroke-dasharray:4 3}.chart__axis-label[_ngcontent-%COMP%]{fill:var(--color-text-secondary, rgba(29, 29, 31, .7));font-size:12px;font-variant-numeric:tabular-nums}.chart__legend[_ngcontent-%COMP%]{display:flex;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.chart__legend-item[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:baseline}.chart__legend-swatch[_ngcontent-%COMP%]{width:10px;height:10px;border-radius:3px;align-self:center}.chart__legend-swatch--cost[_ngcontent-%COMP%]{background:var(--color-primary, #007aff)}.chart__legend-swatch--prompt[_ngcontent-%COMP%]{background:var(--color-success, #34c759)}.chart__legend-swatch--completion[_ngcontent-%COMP%]{background:var(--color-warning, #ff9500)}.chart__legend-swatch--tokens-missing[_ngcontent-%COMP%]{background:transparent;border:1px dashed var(--color-text-secondary, rgba(29, 29, 31, .55))}.chart__legend-label[_ngcontent-%COMP%]{color:var(--color-text-secondary, rgba(29, 29, 31, .7));font-size:.85rem}.chart__legend-value[_ngcontent-%COMP%]{font-variant-numeric:tabular-nums}.muted[_ngcontent-%COMP%]{color:var(--color-text-secondary, rgba(29, 29, 31, .7))}"]})};var X=class o{http=g(gy);getTokenUsage(t){let e=new xt;return t.from&&(e=e.set("from",t.from)),t.to&&(e=e.set("to",t.to)),this.http.get("/api/token-usage",{params:e})}getTokenUsageSeries(t){let e=new xt;return t.from&&(e=e.set("from",t.from)),t.to&&(e=e.set("to",t.to)),this.http.get("/api/token-usage/series",{params:e})}static \u0275fac=function(e){return new(e||o)};static \u0275prov=x({token:o,factory:o.\u0275fac,providedIn:"root"})};function Pe(o){return `${o}`.padStart(2,"0")}function we(o){return `${o.getUTCFullYear()}-${Pe(o.getUTCMonth()+1)}-${Pe(o.getUTCDate())}`}function qe(o=new Date){return new Date(Date.UTC(o.getUTCFullYear(),o.getUTCMonth(),1))}function Ke(o=new Date){return new Date(Date.UTC(o.getUTCFullYear(),o.getUTCMonth()+1,1))}var J=class o{api=g(X);destroyRef=g(Ce);defaultFrom=we(qe());defaultTo=we(Ke());draftFilters=Wi({from:this.defaultFrom,to:this.defaultTo});appliedFilters=Wi({from:this.defaultFrom,to:this.defaultTo});loading=Wi(false);error=Wi(null);aggregation=Wi(null);seriesResponse=Wi(null);series=Wi(null);tokenDataPartial=Wi(false);aggregationByModelId=Wi(null);seriesByModelId=Wi(null);init(){this.reload();}setDraftFrom(t){this.draftFilters.update(e=>z$1(P({},e),{from:t}));}setDraftTo(t){this.draftFilters.update(e=>z$1(P({},e),{to:t}));}clearDraftFrom(){this.setDraftFrom(null);}clearDraftTo(){this.setDraftTo(null);}apply(){this.appliedFilters.set(this.draftFilters()),this.reload();}addNullableTokens(t,e){return t===null&&e===null?null:(t??0)+(e??0)}aggregateByModelId(t){let e=new Map;for(let n of t){let i=n.modelId,d=e.get(i);d?(d.promptTokens=this.addNullableTokens(d.promptTokens,n.promptTokens),d.completionTokens=this.addNullableTokens(d.completionTokens,n.completionTokens),d.totalTokens=this.addNullableTokens(d.totalTokens,n.totalTokens),d.callCount+=n.callCount??0,d.cost=(d.cost??0)+(n.cost??0)):e.set(i,{agentName:"All agents",providerName:"all",modelId:n.modelId,promptTokens:n.promptTokens,completionTokens:n.completionTokens,totalTokens:n.totalTokens,callCount:n.callCount??0,cost:n.cost??0});}return [...e.values()].sort((n,i)=>(i.totalTokens??0)-(n.totalTokens??0))}aggregateSeriesByModelId(t){let e=new Map;for(let n of t){let i=`${n.date}|${n.modelId}`,d=e.get(i);d?(d.promptTokens=this.addNullableTokens(d.promptTokens,n.promptTokens),d.completionTokens=this.addNullableTokens(d.completionTokens,n.completionTokens),d.totalTokens=this.addNullableTokens(d.totalTokens,n.totalTokens),d.callCount+=n.callCount??0,d.cost=(d.cost??0)+(n.cost??0)):e.set(i,{date:n.date,agentName:"All agents",providerName:"all",modelId:n.modelId,promptTokens:n.promptTokens,completionTokens:n.completionTokens,totalTokens:n.totalTokens,callCount:n.callCount??0,cost:n.cost??0});}return [...e.values()].sort((n,i)=>n.date<i.date?-1:1)}reload(){let{from:t,to:e}=this.appliedFilters();this.loading.set(true),this.error.set(null),$y({aggregation:this.api.getTokenUsage({from:t,to:e}),series:this.api.getTokenUsageSeries({from:t,to:e})}).pipe(U(this.destroyRef)).subscribe({next:({aggregation:n,series:i})=>{this.aggregation.set(n),this.seriesResponse.set(i);let d=i.points??[];this.series.set(d),this.tokenDataPartial.set(n.tokenDataPartial||i.tokenDataPartial);let u=this.aggregateByModelId(n.models??[]);this.aggregationByModelId.set(u),this.seriesByModelId.set(this.aggregateSeriesByModelId(d)),this.loading.set(false);},error:n=>{this.loading.set(false),this.aggregation.set(null),this.seriesResponse.set(null),this.series.set(null),this.tokenDataPartial.set(false),this.aggregationByModelId.set(null),this.seriesByModelId.set(null),this.error.set(n instanceof Error?n.message:"Failed to load token usage");}});}static \u0275fac=function(e){return new(e||o)};static \u0275prov=x({token:o,factory:o.\u0275fac,providedIn:"root"})};var q=function(){throw new Error("DON'T USE this INSIDE A FUNCTION CALLED BY | call OR | apply IT MUST BE A PURE FUNCTION!")},De=typeof Proxy!="function"?Object.seal({}):new Proxy({},{get:q,set:q,deleteProperty:q,has:q}),K=class o{transform(t,e){if(typeof e!="function")throw new TypeError("You must pass a PURE function to | call");return e?.call(De,t)}static \u0275fac=function(e){return new(e||o)};static \u0275pipe=On({name:"call",type:o,pure:true})},Q=class o{transform(t,...e){if(typeof t!="function")throw new TypeError("You must use | apply on a PURE function");return t.apply(De,e)}static \u0275fac=function(e){return new(e||o)};static \u0275pipe=On({name:"apply",type:o,pure:true})};function Qe(o,t){o&1&&(Cs(0,"div",23),JC(1," Partial data \u2014 token counts may not cover the full period "),hl());}function Ze(o,t){o&1&&(Cs(0,"div",24),JC(1," No token data collected for this period "),hl());}function et(o,t){if(o&1&&(Cs(0,"div",19)(1,"div",20)(2,"div",21),JC(3,"Total tokens"),hl(),Cs(4,"div",22),JC(5),gT(6,"call"),hl()(),Cs(7,"div",20)(8,"div",21),JC(9,"Total calls"),hl(),Cs(10,"div",22),JC(11),hl()(),Cs(12,"div",20)(13,"div",21),JC(14,"Total cost"),hl(),Cs(15,"div",22),JC(16),gT(17,"apply"),hl()()(),aC(18,Qe,2,0,"div",23),aC(19,Ze,2,0,"div",24)),o&2){let e=CC();sI(5),Kg(vT(6,5,e.totalRow().totalTokens,e.formatTokenValue)),sI(6),Kg(e.totalRow().callCount),sI(5),Kg(DT(17,8,e.formatCostValue,e.isMissingPeriod(),e.totalRow().cost)),sI(2),cC(e.isPartialPeriod()?18:-1),sI(),cC(e.isMissingPeriod()?19:-1);}}function tt(o,t){o&1&&(Cs(0,"div",16)(1,"div",25),JC(2,"Loading token usage\u2026"),hl()());}function nt(o,t){if(o&1&&(Cs(0,"div",17)(1,"div",26),JC(2,"Failed to load"),hl(),Cs(3,"div",25),JC(4),hl()()),o&2){let e=CC();sI(4),Kg(e.state.error());}}function ot(o,t){o&1&&(Cs(0,"div",16)(1,"div",26),JC(2,"No data"),hl(),Cs(3,"div",25),JC(4,"No token usage recorded yet for this period."),hl()());}function at(o,t){if(o&1&&(Cs(0,"div",32)(1,"div",29),JC(2),hl(),Cs(3,"div",29),JC(4),hl(),Cs(5,"div",29),JC(6),hl(),Cs(7,"div",30),JC(8),gT(9,"call"),hl(),Cs(10,"div",30),JC(11),gT(12,"call"),hl(),Cs(13,"div",30),JC(14),gT(15,"call"),hl(),Cs(16,"div",30),JC(17),hl(),Cs(18,"div",30),JC(19),gT(20,"apply"),hl()()),o&2){let e=t.$implicit,n=CC(2);sI(2),Kg(e.agentName),sI(2),Kg(e.providerName),sI(2),Kg(e.modelId),sI(2),Kg(vT(9,8,e.promptTokens,n.formatTokenValue)),sI(3),Kg(vT(12,11,e.completionTokens,n.formatTokenValue)),sI(3),Kg(vT(15,14,e.totalTokens,n.formatTokenValue)),sI(3),Kg(e.callCount),sI(2),Dl(" ",DT(20,17,n.formatCostValue,n.isMissingPeriod(),e.cost)," ");}}function it(o,t){if(o&1&&(Cs(0,"div",33)(1,"div",29),JC(2),hl(),Cs(3,"div",29),JC(4),hl(),Cs(5,"div",29),JC(6),hl(),Cs(7,"div",30),JC(8),gT(9,"call"),hl(),Cs(10,"div",30),JC(11),gT(12,"call"),hl(),Cs(13,"div",30),JC(14),gT(15,"call"),hl(),Cs(16,"div",30),JC(17),hl(),Cs(18,"div",30),JC(19),gT(20,"apply"),hl()()),o&2){let e=CC(2);sI(2),Kg(e.totalRow().agentName),sI(2),Kg(e.totalRow().providerName),sI(2),Kg(e.totalRow().modelId),sI(2),Kg(vT(9,8,e.totalRow().promptTokens,e.formatTokenValue)),sI(3),Dl(" ",vT(12,11,e.totalRow().completionTokens,e.formatTokenValue)," "),sI(3),Kg(vT(15,14,e.totalRow().totalTokens,e.formatTokenValue)),sI(3),Kg(e.totalRow().callCount),sI(2),Dl(" ",DT(20,17,e.formatCostValue,e.isMissingPeriod(),e.totalRow().cost)," ");}}function rt(o,t){if(o&1&&(Cs(0,"div",18)(1,"section",16)(2,"div",26),JC(3,"Summary"),hl(),Cs(4,"div",27)(5,"div",28)(6,"div",29),JC(7,"agentName"),hl(),Cs(8,"div",29),JC(9,"providerName"),hl(),Cs(10,"div",29),JC(11,"modelId"),hl(),Cs(12,"div",30),JC(13,"promptTokens"),hl(),Cs(14,"div",30),JC(15,"completionTokens"),hl(),Cs(16,"div",30),JC(17,"totalTokens"),hl(),Cs(18,"div",30),JC(19,"callCount"),hl(),Cs(20,"div",30),JC(21,"cost"),hl()(),Cs(22,"div",31),dC(23,at,21,21,"div",32,iC().trackRow,true),aC(25,it,21,21,"div",33),hl()()(),Cs(26,"section",16)(27,"div",26),JC(28,"Daily series"),hl(),Mg(29,"app-daily-series-chart",34),hl()()),o&2){let e=CC();sI(23),fC(e.rows()),sI(2),cC(e.totalRow()?25:-1),sI(4),_g("points",e.chartPoints());}}var Ee="\u2014",Oe=class o{location=g(xm);state=g(J);view=Wi("byModel");rowsByAgent=TT(()=>this.state.aggregation()?.models??[]);totalRow=TT(()=>this.state.aggregation()?.total??null);rowsByModel=TT(()=>this.state.aggregationByModelId()??[]);chartPointsByAgent=TT(()=>{let t=this.state.series()??[];return this.aggregateDailyPoints(t)});chartPointsByModel=TT(()=>{let t=this.state.seriesByModelId()??[];return this.aggregateDailyPoints(t)});chartPoints=TT(()=>this.view()==="byAgent"?this.chartPointsByAgent():this.chartPointsByModel());rows=TT(()=>this.view()==="byAgent"?this.rowsByAgent():this.rowsByModel());isEmpty=TT(()=>{let t=this.state.aggregation();return t?(t.models?.length??0)===0&&(t.total?.callCount??0)===0:false});ngOnInit(){this.state.init();}onFromChange(t){this.state.setDraftFrom(t||null);}onToChange(t){this.state.setDraftTo(t||null);}clearFrom(){this.state.clearDraftFrom();}clearTo(){this.state.clearDraftTo();}apply(){this.state.apply();}aggregateDailyPoints(t){let e=new Map;for(let n of t){let i=e.get(n.date);if(!i)e.set(n.date,{date:n.date,promptTokens:n.promptTokens,completionTokens:n.completionTokens,cost:n.cost??0,callCount:n.callCount??0});else {let d=(u,f)=>u===null&&f===null?null:(u??0)+(f??0);i.promptTokens=d(i.promptTokens,n.promptTokens),i.completionTokens=d(i.completionTokens,n.completionTokens),i.cost=(i.cost??0)+(n.cost??0),i.callCount=(i.callCount??0)+(n.callCount??0);}}return [...e.values()].sort((n,i)=>n.date<i.date?-1:1)}trackRow(t,e){return `${e.agentName}|${e.providerName}|${e.modelId}`}isMissingPeriod=TT(()=>{if(this.state.loading())return false;let t=this.state.aggregation()?.total;return t?t.totalTokens===null&&(t.cost===null||t.cost===void 0):false});isPartialPeriod=TT(()=>!this.isMissingPeriod()&&this.state.tokenDataPartial());navigateBack(){this.location.back();}formatTokenValue(t){return t===null?Ee:new $b("en-US").transform(t,"1.0-2")??"0"}formatCostValue(t,e){return t?Ee:"$"+(new $b("en-US").transform(e??0,"1.2-2")??"0.00")}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=jw({type:o,selectors:[["app-token-usage"]],decls:41,vars:8,consts:[[1,"page"],[1,"page__header"],[1,"page__title-block"],["mat-icon-button","","title","Back",3,"click"],[1,"page__title"],[1,"page__subtitle"],[1,"filters"],[1,"filters__field"],[1,"filters__label"],[1,"filters__control"],["type","date",1,"filters__input",3,"ngModelChange","ngModel"],["type","button",1,"filters__clear",3,"click","disabled"],[1,"filters__select",3,"ngModelChange","ngModel"],["value","byModel"],["value","byAgent"],["type","button",1,"filters__apply",3,"click","disabled"],[1,"card"],[1,"card","card--error"],[1,"grid"],[1,"kpis"],[1,"kpi"],[1,"kpi__label"],[1,"kpi__value"],["title","Some calls in this period were recorded before token tracking was enabled. Token counts reflect only the portion where data was collected.",1,"hint"],["title","No token usage data was collected for this period.",1,"hint"],[1,"muted"],[1,"card__title"],[1,"table"],[1,"table__head"],[1,"table__cell"],[1,"table__cell","table__cell--num"],[1,"table__body"],[1,"table__row"],[1,"table__row","table__row--total"],[3,"points"]],template:function(e,n){e&1&&(Cs(0,"section",0)(1,"header",1)(2,"div",2)(3,"button",3),kg("click",function(){return n.navigateBack()}),Cs(4,"mat-icon"),JC(5,"chevron_left"),hl()(),Cs(6,"div")(7,"h1",4),JC(8,"Token Usage"),hl(),Cs(9,"p",5),JC(10,"Track prompt and completion token usage by agent and model."),hl()()(),Cs(11,"div",6)(12,"label",7)(13,"span",8),JC(14,"From"),hl(),Cs(15,"div",9)(16,"input",10),kg("ngModelChange",function(d){return n.onFromChange(d)}),hl(),ZI(),Cs(17,"button",11),kg("click",function(){return n.clearFrom()}),JC(18," Clear "),hl()()(),Cs(19,"label",7)(20,"span",8),JC(21,"To"),hl(),Cs(22,"div",9)(23,"input",10),kg("ngModelChange",function(d){return n.onToChange(d)}),hl(),ZI(),Cs(24,"button",11),kg("click",function(){return n.clearTo()}),JC(25," Clear "),hl()()(),Cs(26,"label",7)(27,"span",8),JC(28,"View"),hl(),Cs(29,"select",12),kg("ngModelChange",function(d){return n.view.set(d)}),Cs(30,"option",13),JC(31,"By model"),hl(),Cs(32,"option",14),JC(33,"By agent"),hl()(),ZI(),hl(),Cs(34,"button",15),kg("click",function(){return n.apply()}),JC(35,"Apply"),hl()()(),aC(36,et,20,12),aC(37,tt,3,0,"div",16)(38,nt,5,1,"div",17)(39,ot,5,0,"div",16)(40,rt,30,2,"div",18),hl()),e&2&&(sI(16),_g("ngModel",n.state.draftFilters().from),QI(),sI(),_g("disabled",!n.state.draftFilters().from),sI(6),_g("ngModel",n.state.draftFilters().to),QI(),sI(),_g("disabled",!n.state.draftFilters().to),sI(5),_g("ngModel",n.view()),QI(),sI(5),_g("disabled",n.state.loading()),sI(2),cC(n.totalRow()?36:-1),sI(),cC(n.state.loading()?37:n.state.error()?38:n.isEmpty()?39:40));},dependencies:[ti,Qn,ei,Ye$1,At,Zn,cn,j,hr,Gn,yt,wt,K,Q],styles:[".page[_ngcontent-%COMP%]{padding:1.5rem;color:var(--color-text, #1d1d1f)}.page__header[_ngcontent-%COMP%]{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;margin-bottom:1rem}.page__title-block[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:.75rem}.page__title[_ngcontent-%COMP%]{margin:0;font-size:1.25rem;font-weight:650}.page__subtitle[_ngcontent-%COMP%]{margin:.25rem 0 0;color:var(--color-text-secondary, rgba(29, 29, 31, .7));font-size:.95rem}.filters[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:flex-end;gap:.75rem}.filters__field[_ngcontent-%COMP%]{display:grid;gap:.25rem}.filters__label[_ngcontent-%COMP%]{font-size:.8rem;color:var(--color-text-secondary, rgba(29, 29, 31, .7))}.filters__control[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem}.filters__input[_ngcontent-%COMP%], .filters__select[_ngcontent-%COMP%]{height:34px;padding:0 .5rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .12));background:var(--color-bg-secondary, rgba(255, 255, 255, .72));color:var(--color-text, #1d1d1f)}.filters__apply[_ngcontent-%COMP%], .filters__clear[_ngcontent-%COMP%]{height:34px;padding:0 .75rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .12));background:var(--color-bg-secondary, rgba(255, 255, 255, .72));color:var(--color-text, #1d1d1f);cursor:pointer}.kpis[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:.75rem 0 1rem}@media(max-width:900px){.kpis[_ngcontent-%COMP%]{grid-template-columns:1fr}}.kpi[_ngcontent-%COMP%]{border-radius:14px;padding:.75rem 1rem;background:var(--glass-bg, rgba(255, 255, 255, .72));border:1px solid var(--glass-border, rgba(255, 255, 255, .18));box-shadow:var(--glass-shadow, 0 8px 24px rgba(0, 0, 0, .08))}.kpi__label[_ngcontent-%COMP%]{font-size:.8rem;color:var(--color-text-secondary, rgba(29, 29, 31, .7))}.kpi__value[_ngcontent-%COMP%]{margin-top:.25rem;font-size:1.2rem;font-weight:650;font-variant-numeric:tabular-nums}.filters__apply[_ngcontent-%COMP%]{border-color:var(--color-primary, #007aff);background:var(--color-primary, #007aff);color:var(--color-text-inverse, #ffffff)}.filters__apply[_ngcontent-%COMP%]:disabled, .filters__clear[_ngcontent-%COMP%]:disabled{opacity:.6;cursor:not-allowed}.grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:1.5fr 1fr;gap:1rem;align-items:start}@media(max-width:1100px){.grid[_ngcontent-%COMP%]{grid-template-columns:1fr}}.card[_ngcontent-%COMP%]{border-radius:14px;padding:1rem;background:var(--glass-bg, rgba(255, 255, 255, .72));border:1px solid var(--glass-border, rgba(255, 255, 255, .18));box-shadow:var(--glass-shadow, 0 8px 24px rgba(0, 0, 0, .08))}.card--error[_ngcontent-%COMP%]{border-color:var(--color-error, #ff3b30)}.card__title[_ngcontent-%COMP%]{font-weight:650;margin-bottom:.75rem}.muted[_ngcontent-%COMP%]{color:var(--color-text-secondary, rgba(29, 29, 31, .7))}.table[_ngcontent-%COMP%]{overflow-x:auto}.table__head[_ngcontent-%COMP%], .table__row[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr 2fr 1fr 1fr 1fr .7fr 1fr;gap:.5rem;align-items:center}.table__head[_ngcontent-%COMP%]{font-size:.8rem;color:var(--color-text-secondary, rgba(29, 29, 31, .7));padding:.25rem 0;border-bottom:1px solid var(--color-border-light, rgba(0, 0, 0, .08))}.table__row[_ngcontent-%COMP%]{padding:.5rem 0;border-bottom:1px solid var(--color-border-light, rgba(0, 0, 0, .08))}.table__row--total[_ngcontent-%COMP%]{font-weight:650;background:var(--color-bg-hover, rgba(0, 0, 0, .03));border-radius:10px;padding:.6rem .5rem;border-bottom:none;margin-top:.5rem}.table__cell[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table__cell--num[_ngcontent-%COMP%]{text-align:right;font-variant-numeric:tabular-nums}.hint[_ngcontent-%COMP%]{margin:.25rem 0 1rem;color:var(--color-text-secondary, rgba(29, 29, 31, .7));font-size:.85rem}"],changeDetection:1})};export{Oe as TokenUsageComponent};
|
|
1
|
+
import {g,bm as xm,W as Wi,T as TT,cF as $b,j as jw,h as hr,i as Gn,k as Cs,n as kg,J as JC,m as hl,a3 as ZI,o as aC,t as sI,_ as _g,a6 as QI,u as cC,C as Ce,z as z$1,a as P,$ as $y,b as U,K as x,b1 as On,bf as gT,ac as CC,a8 as Kg,bi as vT,cG as DT,q as dC,cH as iC,M as Mg,v as fC,B as gy,cI as xt,aw as gl,ax as ml,c9 as Pf,b6 as Ng,ck as Lf,S as Sg,a5 as Dl,a9 as vC,cJ as Fg,aa as Cf,ab as Tf,ad as $g}from'./main-K6RKSHKK.js';import {t as ti,Q as Qn,e as ei,Y as Ye$1,A as At,Z as Zn,c as cn,y as yt,w as wt}from'./chunk-BhdMedPO.js';var Ae=(o,t)=>t.date,He=(o,t)=>t.x,$e=(o,t)=>t.label;function Ve(o,t){o&1&&(gl(0,"div",0),JC(1,"No daily data points for this period."),ml());}function Le(o,t){if(o&1&&(Pf(),Ng(0,"rect",18)),o&2){let e=CC().$implicit,n=CC(2);Sg("x",e.w+6)("y",n.yBase-e.tokensStubH)("width",e.w)("height",e.tokensStubH);}}function Ge(o,t){if(o&1&&(Pf(),Ng(0,"rect",19)(1,"rect",20)),o&2){let e=CC().$implicit,n=CC(2);Sg("x",e.w+6)("y",n.yBase-(e.promptH??0))("width",e.w)("height",e.promptH??0),sI(),Sg("x",e.w+6)("y",n.yBase-((e.promptH??0)+(e.completionH??0)))("width",e.w)("height",e.completionH??0);}}function Ye(o,t){if(o&1){let e=vC();Pf(),gl(0,"g",15),Fg("mouseenter",function(i){let d=Cf(e).$implicit,u=CC(2);return Tf(u.showTooltip(i,d.point))})("mousemove",function(i){let d=Cf(e).$implicit,u=CC(2);return Tf(u.showTooltip(i,d.point))})("mouseleave",function(){Cf(e);let i=CC(2);return Tf(i.hideTooltip())}),Ng(1,"rect",16)(2,"rect",17),aC(3,Le,1,4,":svg:rect",18)(4,Ge,2,8),ml();}if(o&2){let e=t.$implicit,n=CC(2);Sg("transform","translate("+e.xGroup+",0)"),sI(),Sg("y",n.yTop)("width",e.groupW)("height",n.yBase-n.yTop),sI(),Sg("y",n.yBase-e.costH)("width",e.w)("height",e.costH),sI(),cC(e.tokensStubH!==null?3:4);}}function We(o,t){if(o&1&&(Pf(),gl(0,"text",5),JC(1),ml()),o&2){let e=t.$implicit,n=CC(2);Sg("x",e.x)("y",n.yAxis),sI(),Kg(e.label);}}function je(o,t){if(o&1&&(gl(0,"div",24),JC(1),ml(),gl(2,"div",25),JC(3),ml()),o&2){let e=t.$implicit;sI(),Kg(e.label),sI(2),Kg(e.value);}}function ze(o,t){if(o&1&&(gl(0,"div",21)(1,"div",22),JC(2),ml(),gl(3,"div",23),dC(4,je,4,2,null,null,$e),ml()()),o&2){let e=CC(2);$g("left",e.tooltip().x+12,"px")("top",e.tooltip().y+12,"px"),sI(2),Kg(e.tooltip().data.date),sI(2),fC(e.tooltipLines());}}function Xe(o,t){if(o&1&&(gl(0,"div",8)(1,"span",10),JC(2),ml()()),o&2){let e=CC(2);sI(2),Kg(e.tokenCoverageLabel());}}function Je(o,t){if(o&1&&(gl(0,"div",1),Pf(),gl(1,"svg",2),Ng(2,"line",3)(3,"line",3),dC(4,Ye,5,8,":svg:g",4,Ae),dC(6,We,2,3,":svg:text",5,He),ml(),aC(8,ze,6,5,"div",6),Lf(),gl(9,"div",7)(10,"div",8),Ng(11,"span",9),gl(12,"span",10),JC(13,"Cost (per day)"),ml(),gl(14,"span",11),JC(15),ml()(),gl(16,"div",8),Ng(17,"span",12),gl(18,"span",10),JC(19,"Prompt tokens"),ml()(),gl(20,"div",8),Ng(21,"span",13),gl(22,"span",10),JC(23,"Completion tokens"),ml()(),gl(24,"div",8),Ng(25,"span",14),gl(26,"span",10),JC(27,"Tokens missing"),ml()(),gl(28,"div",8)(29,"span",10),JC(30,"Tokens scale"),ml(),gl(31,"span",11),JC(32),ml()(),aC(33,Xe,3,1,"div",8),ml()()),o&2){let e=CC();sI(),Sg("viewBox",e.viewBox),sI(),Sg("y1",e.yTop)("x2",720)("y2",e.yTop),sI(),Sg("y1",e.yBase)("x2",720)("y2",e.yBase),sI(),fC(e.bars()),sI(2),fC(e.axisLabels()),sI(2),cC(e.tooltip().visible&&e.tooltip().data?8:-1),sI(7),Dl("max ",e.maxCostLabel()),sI(17),Dl("max ",e.maxTokensLabel()),sI(),cC(e.tokenCoverageLabel()?33:-1);}}var j=class o{points=[];width=720;height=240;paddingX=12;paddingY=16;bottomAxisH=48;viewBox=`0 0 ${this.width} ${this.height}`;innerW=this.width-this.paddingX*2;innerH=this.height-this.paddingY*2-this.bottomAxisH;barGap=6;groupGap=14;safePoints=TT(()=>(this.points??[]).filter(t=>!!t.date));maxCost=TT(()=>Math.max(0,...this.safePoints().map(t=>t.cost??0)));maxTokens=TT(()=>{let t=this.safePoints().map(e=>{let n=e.promptTokens??null,i=e.completionTokens??null;return n===null&&i===null?null:(n??0)+(i??0)}).filter(e=>e!==null);return Math.max(0,...t)});tokenCoverageLabel=TT(()=>{let t=this.safePoints();return t.length===0?"":`Tokens available for ${t.filter(n=>n.promptTokens!==null||n.completionTokens!==null).length}/${t.length} days`});maxCostLabel=TT(()=>"$"+(new $b("en-US").transform(this.maxCost(),"1.2-2")??"0.00"));maxTokensLabel=TT(()=>new $b("en-US").transform(this.maxTokens(),"1.0-2")??"0");tooltip=Wi({visible:false,x:0,y:0,data:null});toTooltipData(t){let e=t.promptTokens,n=t.completionTokens,i=e===null&&n===null?null:(e??0)+(n??0);return {date:t.date,cost:t.cost??0,promptTokens:e,completionTokens:n,totalTokens:i,callCount:t.callCount??0}}showTooltip(t,e){let i=t.currentTarget?.closest(".chart")?.getBoundingClientRect(),d=i?t.clientX-i.left:t.clientX,u=i?t.clientY-i.top:t.clientY,f=320,k=170,U=12,C=i?Math.max(0,i.width-f-U):d,B=i?Math.max(0,i.height-k-U):u,F=i?Math.min(Math.max(0,d),C):d,ne=i?Math.min(Math.max(0,u),B):u;this.tooltip.set({visible:true,x:F,y:ne,data:this.toTooltipData(e)});}hideTooltip(){this.tooltip.update(t=>z$1(P({},t),{visible:false}));}formatTokens(t){return t===null?"\u2014":new $b("en-US").transform(t,"1.0-2")??"0"}formatCost(t){return "$"+(new $b("en-US").transform(t??0,"1.2-2")??"0.00")}tooltipLines=TT(()=>{let t=this.tooltip(),e=t.data;return !t.visible||!e?[]:[{label:"Cost",value:this.formatCost(e.cost)},{label:"Prompt tokens",value:this.formatTokens(e.promptTokens)},{label:"Completion tokens",value:this.formatTokens(e.completionTokens)},{label:"Total tokens",value:this.formatTokens(e.totalTokens)},{label:"Calls",value:`${e.callCount}`}]});bars=TT(()=>{let t=this.safePoints(),e=t.length;if(e===0)return [];let n=(this.innerW-(e-1)*this.groupGap)/e,i=Math.max(2,n),d=(i-this.barGap)/2,u=Math.max(1,d),f=this.maxCost()||1,k=this.maxTokens()||1,U=45;return t.map((C,B)=>{let F=this.paddingX+B*(i+this.groupGap),Ie=(C.cost??0)/f*this.innerH,oe=C.promptTokens,ae=C.completionTokens,Z=oe!==null||ae!==null,Ne=oe??0,Ue=ae??0,Be=Z?Ne/k*this.innerH:null,Fe=Z?Ue/k*this.innerH:null;return {date:C.date,point:C,xGroup:F,groupW:i,xCost:F,w:u,costH:Ie,xTokens:F+u+this.barGap,promptH:Be,completionH:Fe,tokensStubH:Z?null:U}})});axisLabels=TT(()=>{let t=this.safePoints(),e=t.length;if(e===0)return [];let i=Math.max(1,Math.ceil(e/8)),d=(this.innerW-(e-1)*this.groupGap)/e,u=Math.max(2,d);return t.map((f,k)=>({p:f,i:k})).filter(({i:f})=>f%i===0||f===e-1).map(({p:f,i:k})=>{let C=this.paddingX+k*(u+this.groupGap)+u/2,B=f.date.slice(5);return {x:C,label:B}})});yTop=this.paddingY;yBase=this.paddingY+this.innerH;yAxis=this.yBase+28;static \u0275fac=function(e){return new(e||o)};static \u0275cmp=jw({type:o,selectors:[["app-daily-series-chart"]],inputs:{points:"points"},decls:2,vars:1,consts:[[1,"muted"],[1,"chart"],["preserveAspectRatio","none","role","img","aria-label","Daily token and cost usage",1,"chart__svg"],["x1","0",1,"chart__grid"],[1,"chart__day"],["text-anchor","middle",1,"chart__axis-label"],[1,"chart__tooltip",3,"left","top"],[1,"chart__legend"],[1,"chart__legend-item"],["aria-hidden","true",1,"chart__legend-swatch","chart__legend-swatch--cost"],[1,"chart__legend-label"],[1,"chart__legend-value"],["aria-hidden","true",1,"chart__legend-swatch","chart__legend-swatch--prompt"],["aria-hidden","true",1,"chart__legend-swatch","chart__legend-swatch--completion"],["aria-hidden","true",1,"chart__legend-swatch","chart__legend-swatch--tokens-missing"],[1,"chart__day",3,"mouseenter","mousemove","mouseleave"],["x","0",1,"chart__hover"],["x","0",1,"chart__bar","chart__bar--cost"],[1,"chart__bar","chart__bar--tokens-missing"],[1,"chart__bar","chart__bar--prompt"],[1,"chart__bar","chart__bar--completion"],[1,"chart__tooltip"],[1,"chart__tooltip-title"],[1,"chart__tooltip-grid"],[1,"chart__tooltip-label"],[1,"chart__tooltip-value"]],template:function(e,n){e&1&&aC(0,Ve,2,0,"div",0)(1,Je,34,11,"div",1),e&2&&cC(n.safePoints().length===0?0:1);},styles:[".chart[_ngcontent-%COMP%]{display:grid;gap:.5rem;position:relative}.chart__svg[_ngcontent-%COMP%]{width:100%;height:260px;display:block;border-radius:12px;background:var(--color-bg-secondary, rgba(255, 255, 255, .72));border:1px solid var(--color-border-light, rgba(0, 0, 0, .08))}.chart__grid[_ngcontent-%COMP%]{stroke:var(--color-border-light, rgba(0, 0, 0, .08));stroke-width:1}.chart__day[_ngcontent-%COMP%]{cursor:default}.chart__hover[_ngcontent-%COMP%]{fill:transparent}.chart__day[_ngcontent-%COMP%]:hover .chart__hover[_ngcontent-%COMP%]{fill:var(--color-bg-hover, rgba(0, 0, 0, .03))}.chart__tooltip[_ngcontent-%COMP%]{position:absolute;z-index:2;min-width:220px;max-width:320px;padding:10px 12px;border-radius:12px;background:rgb(var(--color-bg-secondary-rgb, 255 255 255)/1);border:1px solid var(--color-border-light, rgba(0, 0, 0, .08));box-shadow:var(--glass-shadow, 0 8px 24px rgba(0, 0, 0, .12));pointer-events:none}.chart__tooltip-title[_ngcontent-%COMP%]{font-weight:650;margin-bottom:6px}.chart__tooltip-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr auto;column-gap:10px;row-gap:4px}.chart__tooltip-label[_ngcontent-%COMP%]{color:var(--color-text-secondary, rgba(29, 29, 31, .7));font-size:.85rem}.chart__tooltip-value[_ngcontent-%COMP%]{font-variant-numeric:tabular-nums;text-align:right}.chart__bar[_ngcontent-%COMP%]{shape-rendering:geometricPrecision;rx:2;ry:2}.chart__bar--cost[_ngcontent-%COMP%]{fill:var(--color-primary, #007aff);opacity:.85}.chart__bar--prompt[_ngcontent-%COMP%]{fill:var(--color-success, #34c759);opacity:.85}.chart__bar--completion[_ngcontent-%COMP%]{fill:var(--color-warning, #ff9500);opacity:.85}.chart__bar--tokens-missing[_ngcontent-%COMP%]{fill:transparent;stroke:var(--color-text-secondary, rgba(29, 29, 31, .55));stroke-width:1.5;stroke-dasharray:4 3}.chart__axis-label[_ngcontent-%COMP%]{fill:var(--color-text-secondary, rgba(29, 29, 31, .7));font-size:12px;font-variant-numeric:tabular-nums}.chart__legend[_ngcontent-%COMP%]{display:flex;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.chart__legend-item[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:baseline}.chart__legend-swatch[_ngcontent-%COMP%]{width:10px;height:10px;border-radius:3px;align-self:center}.chart__legend-swatch--cost[_ngcontent-%COMP%]{background:var(--color-primary, #007aff)}.chart__legend-swatch--prompt[_ngcontent-%COMP%]{background:var(--color-success, #34c759)}.chart__legend-swatch--completion[_ngcontent-%COMP%]{background:var(--color-warning, #ff9500)}.chart__legend-swatch--tokens-missing[_ngcontent-%COMP%]{background:transparent;border:1px dashed var(--color-text-secondary, rgba(29, 29, 31, .55))}.chart__legend-label[_ngcontent-%COMP%]{color:var(--color-text-secondary, rgba(29, 29, 31, .7));font-size:.85rem}.chart__legend-value[_ngcontent-%COMP%]{font-variant-numeric:tabular-nums}.muted[_ngcontent-%COMP%]{color:var(--color-text-secondary, rgba(29, 29, 31, .7))}"]})};var X=class o{http=g(gy);getTokenUsage(t){let e=new xt;return t.from&&(e=e.set("from",t.from)),t.to&&(e=e.set("to",t.to)),this.http.get("/api/token-usage",{params:e})}getTokenUsageSeries(t){let e=new xt;return t.from&&(e=e.set("from",t.from)),t.to&&(e=e.set("to",t.to)),this.http.get("/api/token-usage/series",{params:e})}static \u0275fac=function(e){return new(e||o)};static \u0275prov=x({token:o,factory:o.\u0275fac,providedIn:"root"})};function Pe(o){return `${o}`.padStart(2,"0")}function we(o){return `${o.getUTCFullYear()}-${Pe(o.getUTCMonth()+1)}-${Pe(o.getUTCDate())}`}function qe(o=new Date){return new Date(Date.UTC(o.getUTCFullYear(),o.getUTCMonth(),1))}function Ke(o=new Date){return new Date(Date.UTC(o.getUTCFullYear(),o.getUTCMonth()+1,1))}var J=class o{api=g(X);destroyRef=g(Ce);defaultFrom=we(qe());defaultTo=we(Ke());draftFilters=Wi({from:this.defaultFrom,to:this.defaultTo});appliedFilters=Wi({from:this.defaultFrom,to:this.defaultTo});loading=Wi(false);error=Wi(null);aggregation=Wi(null);seriesResponse=Wi(null);series=Wi(null);tokenDataPartial=Wi(false);aggregationByModelId=Wi(null);seriesByModelId=Wi(null);init(){this.reload();}setDraftFrom(t){this.draftFilters.update(e=>z$1(P({},e),{from:t}));}setDraftTo(t){this.draftFilters.update(e=>z$1(P({},e),{to:t}));}clearDraftFrom(){this.setDraftFrom(null);}clearDraftTo(){this.setDraftTo(null);}apply(){this.appliedFilters.set(this.draftFilters()),this.reload();}addNullableTokens(t,e){return t===null&&e===null?null:(t??0)+(e??0)}aggregateByModelId(t){let e=new Map;for(let n of t){let i=n.modelId,d=e.get(i);d?(d.promptTokens=this.addNullableTokens(d.promptTokens,n.promptTokens),d.completionTokens=this.addNullableTokens(d.completionTokens,n.completionTokens),d.totalTokens=this.addNullableTokens(d.totalTokens,n.totalTokens),d.callCount+=n.callCount??0,d.cost=(d.cost??0)+(n.cost??0)):e.set(i,{agentName:"All agents",providerName:"all",modelId:n.modelId,promptTokens:n.promptTokens,completionTokens:n.completionTokens,totalTokens:n.totalTokens,callCount:n.callCount??0,cost:n.cost??0});}return [...e.values()].sort((n,i)=>(i.totalTokens??0)-(n.totalTokens??0))}aggregateSeriesByModelId(t){let e=new Map;for(let n of t){let i=`${n.date}|${n.modelId}`,d=e.get(i);d?(d.promptTokens=this.addNullableTokens(d.promptTokens,n.promptTokens),d.completionTokens=this.addNullableTokens(d.completionTokens,n.completionTokens),d.totalTokens=this.addNullableTokens(d.totalTokens,n.totalTokens),d.callCount+=n.callCount??0,d.cost=(d.cost??0)+(n.cost??0)):e.set(i,{date:n.date,agentName:"All agents",providerName:"all",modelId:n.modelId,promptTokens:n.promptTokens,completionTokens:n.completionTokens,totalTokens:n.totalTokens,callCount:n.callCount??0,cost:n.cost??0});}return [...e.values()].sort((n,i)=>n.date<i.date?-1:1)}reload(){let{from:t,to:e}=this.appliedFilters();this.loading.set(true),this.error.set(null),$y({aggregation:this.api.getTokenUsage({from:t,to:e}),series:this.api.getTokenUsageSeries({from:t,to:e})}).pipe(U(this.destroyRef)).subscribe({next:({aggregation:n,series:i})=>{this.aggregation.set(n),this.seriesResponse.set(i);let d=i.points??[];this.series.set(d),this.tokenDataPartial.set(n.tokenDataPartial||i.tokenDataPartial);let u=this.aggregateByModelId(n.models??[]);this.aggregationByModelId.set(u),this.seriesByModelId.set(this.aggregateSeriesByModelId(d)),this.loading.set(false);},error:n=>{this.loading.set(false),this.aggregation.set(null),this.seriesResponse.set(null),this.series.set(null),this.tokenDataPartial.set(false),this.aggregationByModelId.set(null),this.seriesByModelId.set(null),this.error.set(n instanceof Error?n.message:"Failed to load token usage");}});}static \u0275fac=function(e){return new(e||o)};static \u0275prov=x({token:o,factory:o.\u0275fac,providedIn:"root"})};var q=function(){throw new Error("DON'T USE this INSIDE A FUNCTION CALLED BY | call OR | apply IT MUST BE A PURE FUNCTION!")},De=typeof Proxy!="function"?Object.seal({}):new Proxy({},{get:q,set:q,deleteProperty:q,has:q}),K=class o{transform(t,e){if(typeof e!="function")throw new TypeError("You must pass a PURE function to | call");return e?.call(De,t)}static \u0275fac=function(e){return new(e||o)};static \u0275pipe=On({name:"call",type:o,pure:true})},Q=class o{transform(t,...e){if(typeof t!="function")throw new TypeError("You must use | apply on a PURE function");return t.apply(De,e)}static \u0275fac=function(e){return new(e||o)};static \u0275pipe=On({name:"apply",type:o,pure:true})};function Qe(o,t){o&1&&(Cs(0,"div",23),JC(1," Partial data \u2014 token counts may not cover the full period "),hl());}function Ze(o,t){o&1&&(Cs(0,"div",24),JC(1," No token data collected for this period "),hl());}function et(o,t){if(o&1&&(Cs(0,"div",19)(1,"div",20)(2,"div",21),JC(3,"Total tokens"),hl(),Cs(4,"div",22),JC(5),gT(6,"call"),hl()(),Cs(7,"div",20)(8,"div",21),JC(9,"Total calls"),hl(),Cs(10,"div",22),JC(11),hl()(),Cs(12,"div",20)(13,"div",21),JC(14,"Total cost"),hl(),Cs(15,"div",22),JC(16),gT(17,"apply"),hl()()(),aC(18,Qe,2,0,"div",23),aC(19,Ze,2,0,"div",24)),o&2){let e=CC();sI(5),Kg(vT(6,5,e.totalRow().totalTokens,e.formatTokenValue)),sI(6),Kg(e.totalRow().callCount),sI(5),Kg(DT(17,8,e.formatCostValue,e.isMissingPeriod(),e.totalRow().cost)),sI(2),cC(e.isPartialPeriod()?18:-1),sI(),cC(e.isMissingPeriod()?19:-1);}}function tt(o,t){o&1&&(Cs(0,"div",16)(1,"div",25),JC(2,"Loading token usage\u2026"),hl()());}function nt(o,t){if(o&1&&(Cs(0,"div",17)(1,"div",26),JC(2,"Failed to load"),hl(),Cs(3,"div",25),JC(4),hl()()),o&2){let e=CC();sI(4),Kg(e.state.error());}}function ot(o,t){o&1&&(Cs(0,"div",16)(1,"div",26),JC(2,"No data"),hl(),Cs(3,"div",25),JC(4,"No token usage recorded yet for this period."),hl()());}function at(o,t){if(o&1&&(Cs(0,"div",32)(1,"div",29),JC(2),hl(),Cs(3,"div",29),JC(4),hl(),Cs(5,"div",29),JC(6),hl(),Cs(7,"div",30),JC(8),gT(9,"call"),hl(),Cs(10,"div",30),JC(11),gT(12,"call"),hl(),Cs(13,"div",30),JC(14),gT(15,"call"),hl(),Cs(16,"div",30),JC(17),hl(),Cs(18,"div",30),JC(19),gT(20,"apply"),hl()()),o&2){let e=t.$implicit,n=CC(2);sI(2),Kg(e.agentName),sI(2),Kg(e.providerName),sI(2),Kg(e.modelId),sI(2),Kg(vT(9,8,e.promptTokens,n.formatTokenValue)),sI(3),Kg(vT(12,11,e.completionTokens,n.formatTokenValue)),sI(3),Kg(vT(15,14,e.totalTokens,n.formatTokenValue)),sI(3),Kg(e.callCount),sI(2),Dl(" ",DT(20,17,n.formatCostValue,n.isMissingPeriod(),e.cost)," ");}}function it(o,t){if(o&1&&(Cs(0,"div",33)(1,"div",29),JC(2),hl(),Cs(3,"div",29),JC(4),hl(),Cs(5,"div",29),JC(6),hl(),Cs(7,"div",30),JC(8),gT(9,"call"),hl(),Cs(10,"div",30),JC(11),gT(12,"call"),hl(),Cs(13,"div",30),JC(14),gT(15,"call"),hl(),Cs(16,"div",30),JC(17),hl(),Cs(18,"div",30),JC(19),gT(20,"apply"),hl()()),o&2){let e=CC(2);sI(2),Kg(e.totalRow().agentName),sI(2),Kg(e.totalRow().providerName),sI(2),Kg(e.totalRow().modelId),sI(2),Kg(vT(9,8,e.totalRow().promptTokens,e.formatTokenValue)),sI(3),Dl(" ",vT(12,11,e.totalRow().completionTokens,e.formatTokenValue)," "),sI(3),Kg(vT(15,14,e.totalRow().totalTokens,e.formatTokenValue)),sI(3),Kg(e.totalRow().callCount),sI(2),Dl(" ",DT(20,17,e.formatCostValue,e.isMissingPeriod(),e.totalRow().cost)," ");}}function rt(o,t){if(o&1&&(Cs(0,"div",18)(1,"section",16)(2,"div",26),JC(3,"Summary"),hl(),Cs(4,"div",27)(5,"div",28)(6,"div",29),JC(7,"agentName"),hl(),Cs(8,"div",29),JC(9,"providerName"),hl(),Cs(10,"div",29),JC(11,"modelId"),hl(),Cs(12,"div",30),JC(13,"promptTokens"),hl(),Cs(14,"div",30),JC(15,"completionTokens"),hl(),Cs(16,"div",30),JC(17,"totalTokens"),hl(),Cs(18,"div",30),JC(19,"callCount"),hl(),Cs(20,"div",30),JC(21,"cost"),hl()(),Cs(22,"div",31),dC(23,at,21,21,"div",32,iC().trackRow,true),aC(25,it,21,21,"div",33),hl()()(),Cs(26,"section",16)(27,"div",26),JC(28,"Daily series"),hl(),Mg(29,"app-daily-series-chart",34),hl()()),o&2){let e=CC();sI(23),fC(e.rows()),sI(2),cC(e.totalRow()?25:-1),sI(4),_g("points",e.chartPoints());}}var Ee="\u2014",Oe=class o{location=g(xm);state=g(J);view=Wi("byModel");rowsByAgent=TT(()=>this.state.aggregation()?.models??[]);totalRow=TT(()=>this.state.aggregation()?.total??null);rowsByModel=TT(()=>this.state.aggregationByModelId()??[]);chartPointsByAgent=TT(()=>{let t=this.state.series()??[];return this.aggregateDailyPoints(t)});chartPointsByModel=TT(()=>{let t=this.state.seriesByModelId()??[];return this.aggregateDailyPoints(t)});chartPoints=TT(()=>this.view()==="byAgent"?this.chartPointsByAgent():this.chartPointsByModel());rows=TT(()=>this.view()==="byAgent"?this.rowsByAgent():this.rowsByModel());isEmpty=TT(()=>{let t=this.state.aggregation();return t?(t.models?.length??0)===0&&(t.total?.callCount??0)===0:false});ngOnInit(){this.state.init();}onFromChange(t){this.state.setDraftFrom(t||null);}onToChange(t){this.state.setDraftTo(t||null);}clearFrom(){this.state.clearDraftFrom();}clearTo(){this.state.clearDraftTo();}apply(){this.state.apply();}aggregateDailyPoints(t){let e=new Map;for(let n of t){let i=e.get(n.date);if(!i)e.set(n.date,{date:n.date,promptTokens:n.promptTokens,completionTokens:n.completionTokens,cost:n.cost??0,callCount:n.callCount??0});else {let d=(u,f)=>u===null&&f===null?null:(u??0)+(f??0);i.promptTokens=d(i.promptTokens,n.promptTokens),i.completionTokens=d(i.completionTokens,n.completionTokens),i.cost=(i.cost??0)+(n.cost??0),i.callCount=(i.callCount??0)+(n.callCount??0);}}return [...e.values()].sort((n,i)=>n.date<i.date?-1:1)}trackRow(t,e){return `${e.agentName}|${e.providerName}|${e.modelId}`}isMissingPeriod=TT(()=>{if(this.state.loading())return false;let t=this.state.aggregation()?.total;return t?t.totalTokens===null&&(t.cost===null||t.cost===void 0):false});isPartialPeriod=TT(()=>!this.isMissingPeriod()&&this.state.tokenDataPartial());navigateBack(){this.location.back();}formatTokenValue(t){return t===null?Ee:new $b("en-US").transform(t,"1.0-2")??"0"}formatCostValue(t,e){return t?Ee:"$"+(new $b("en-US").transform(e??0,"1.2-2")??"0.00")}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=jw({type:o,selectors:[["app-token-usage"]],decls:41,vars:8,consts:[[1,"page"],[1,"page__header"],[1,"page__title-block"],["mat-icon-button","","title","Back",3,"click"],[1,"page__title"],[1,"page__subtitle"],[1,"filters"],[1,"filters__field"],[1,"filters__label"],[1,"filters__control"],["type","date",1,"filters__input",3,"ngModelChange","ngModel"],["type","button",1,"filters__clear",3,"click","disabled"],[1,"filters__select",3,"ngModelChange","ngModel"],["value","byModel"],["value","byAgent"],["type","button",1,"filters__apply",3,"click","disabled"],[1,"card"],[1,"card","card--error"],[1,"grid"],[1,"kpis"],[1,"kpi"],[1,"kpi__label"],[1,"kpi__value"],["title","Some calls in this period were recorded before token tracking was enabled. Token counts reflect only the portion where data was collected.",1,"hint"],["title","No token usage data was collected for this period.",1,"hint"],[1,"muted"],[1,"card__title"],[1,"table"],[1,"table__head"],[1,"table__cell"],[1,"table__cell","table__cell--num"],[1,"table__body"],[1,"table__row"],[1,"table__row","table__row--total"],[3,"points"]],template:function(e,n){e&1&&(Cs(0,"section",0)(1,"header",1)(2,"div",2)(3,"button",3),kg("click",function(){return n.navigateBack()}),Cs(4,"mat-icon"),JC(5,"chevron_left"),hl()(),Cs(6,"div")(7,"h1",4),JC(8,"Token Usage"),hl(),Cs(9,"p",5),JC(10,"Track prompt and completion token usage by agent and model."),hl()()(),Cs(11,"div",6)(12,"label",7)(13,"span",8),JC(14,"From"),hl(),Cs(15,"div",9)(16,"input",10),kg("ngModelChange",function(d){return n.onFromChange(d)}),hl(),ZI(),Cs(17,"button",11),kg("click",function(){return n.clearFrom()}),JC(18," Clear "),hl()()(),Cs(19,"label",7)(20,"span",8),JC(21,"To"),hl(),Cs(22,"div",9)(23,"input",10),kg("ngModelChange",function(d){return n.onToChange(d)}),hl(),ZI(),Cs(24,"button",11),kg("click",function(){return n.clearTo()}),JC(25," Clear "),hl()()(),Cs(26,"label",7)(27,"span",8),JC(28,"View"),hl(),Cs(29,"select",12),kg("ngModelChange",function(d){return n.view.set(d)}),Cs(30,"option",13),JC(31,"By model"),hl(),Cs(32,"option",14),JC(33,"By agent"),hl()(),ZI(),hl(),Cs(34,"button",15),kg("click",function(){return n.apply()}),JC(35,"Apply"),hl()()(),aC(36,et,20,12),aC(37,tt,3,0,"div",16)(38,nt,5,1,"div",17)(39,ot,5,0,"div",16)(40,rt,30,2,"div",18),hl()),e&2&&(sI(16),_g("ngModel",n.state.draftFilters().from),QI(),sI(),_g("disabled",!n.state.draftFilters().from),sI(6),_g("ngModel",n.state.draftFilters().to),QI(),sI(),_g("disabled",!n.state.draftFilters().to),sI(5),_g("ngModel",n.view()),QI(),sI(5),_g("disabled",n.state.loading()),sI(2),cC(n.totalRow()?36:-1),sI(),cC(n.state.loading()?37:n.state.error()?38:n.isEmpty()?39:40));},dependencies:[ti,Qn,ei,Ye$1,At,Zn,cn,j,hr,Gn,yt,wt,K,Q],styles:[".page[_ngcontent-%COMP%]{padding:1.5rem;color:var(--color-text, #1d1d1f)}.page__header[_ngcontent-%COMP%]{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;margin-bottom:1rem}.page__title-block[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:.75rem}.page__title[_ngcontent-%COMP%]{margin:0;font-size:1.25rem;font-weight:650}.page__subtitle[_ngcontent-%COMP%]{margin:.25rem 0 0;color:var(--color-text-secondary, rgba(29, 29, 31, .7));font-size:.95rem}.filters[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:flex-end;gap:.75rem}.filters__field[_ngcontent-%COMP%]{display:grid;gap:.25rem}.filters__label[_ngcontent-%COMP%]{font-size:.8rem;color:var(--color-text-secondary, rgba(29, 29, 31, .7))}.filters__control[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem}.filters__input[_ngcontent-%COMP%], .filters__select[_ngcontent-%COMP%]{height:34px;padding:0 .5rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .12));background:var(--color-bg-secondary, rgba(255, 255, 255, .72));color:var(--color-text, #1d1d1f)}.filters__apply[_ngcontent-%COMP%], .filters__clear[_ngcontent-%COMP%]{height:34px;padding:0 .75rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .12));background:var(--color-bg-secondary, rgba(255, 255, 255, .72));color:var(--color-text, #1d1d1f);cursor:pointer}.kpis[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:.75rem 0 1rem}@media(max-width:900px){.kpis[_ngcontent-%COMP%]{grid-template-columns:1fr}}.kpi[_ngcontent-%COMP%]{border-radius:14px;padding:.75rem 1rem;background:var(--glass-bg, rgba(255, 255, 255, .72));border:1px solid var(--glass-border, rgba(255, 255, 255, .18));box-shadow:var(--glass-shadow, 0 8px 24px rgba(0, 0, 0, .08))}.kpi__label[_ngcontent-%COMP%]{font-size:.8rem;color:var(--color-text-secondary, rgba(29, 29, 31, .7))}.kpi__value[_ngcontent-%COMP%]{margin-top:.25rem;font-size:1.2rem;font-weight:650;font-variant-numeric:tabular-nums}.filters__apply[_ngcontent-%COMP%]{border-color:var(--color-primary, #007aff);background:var(--color-primary, #007aff);color:var(--color-text-inverse, #ffffff)}.filters__apply[_ngcontent-%COMP%]:disabled, .filters__clear[_ngcontent-%COMP%]:disabled{opacity:.6;cursor:not-allowed}.grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:1.5fr 1fr;gap:1rem;align-items:start}@media(max-width:1100px){.grid[_ngcontent-%COMP%]{grid-template-columns:1fr}}.card[_ngcontent-%COMP%]{border-radius:14px;padding:1rem;background:var(--glass-bg, rgba(255, 255, 255, .72));border:1px solid var(--glass-border, rgba(255, 255, 255, .18));box-shadow:var(--glass-shadow, 0 8px 24px rgba(0, 0, 0, .08))}.card--error[_ngcontent-%COMP%]{border-color:var(--color-error, #ff3b30)}.card__title[_ngcontent-%COMP%]{font-weight:650;margin-bottom:.75rem}.muted[_ngcontent-%COMP%]{color:var(--color-text-secondary, rgba(29, 29, 31, .7))}.table[_ngcontent-%COMP%]{overflow-x:auto}.table__head[_ngcontent-%COMP%], .table__row[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr 2fr 1fr 1fr 1fr .7fr 1fr;gap:.5rem;align-items:center}.table__head[_ngcontent-%COMP%]{font-size:.8rem;color:var(--color-text-secondary, rgba(29, 29, 31, .7));padding:.25rem 0;border-bottom:1px solid var(--color-border-light, rgba(0, 0, 0, .08))}.table__row[_ngcontent-%COMP%]{padding:.5rem 0;border-bottom:1px solid var(--color-border-light, rgba(0, 0, 0, .08))}.table__row--total[_ngcontent-%COMP%]{font-weight:650;background:var(--color-bg-hover, rgba(0, 0, 0, .03));border-radius:10px;padding:.6rem .5rem;border-bottom:none;margin-top:.5rem}.table__cell[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table__cell--num[_ngcontent-%COMP%]{text-align:right;font-variant-numeric:tabular-nums}.hint[_ngcontent-%COMP%]{margin:.25rem 0 1rem;color:var(--color-text-secondary, rgba(29, 29, 31, .7));font-size:.85rem}"],changeDetection:1})};export{Oe as TokenUsageComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {g,G,cb as JB,cc as XB,W as Wi,j as jw,k as Cs,J as JC,m as hl,o as aC,t as sI,a8 as Kg,u as cC,ac as CC,a9 as vC,n as kg,_ as _g,aa as Cf,ab as Tf}from'./main-
|
|
1
|
+
import {g,G,cb as JB,cc as XB,W as Wi,j as jw,k as Cs,J as JC,m as hl,o as aC,t as sI,a8 as Kg,u as cC,ac as CC,a9 as vC,n as kg,_ as _g,aa as Cf,ab as Tf}from'./main-K6RKSHKK.js';import {K as Kn,Z as Zn,S as Se}from'./chunk-D8Bz7q-C.js';function P(n,o){if(n&1&&(Cs(0,"span",3),JC(1),hl()),n&2){let e=CC();sI(),Kg(e.config().modelName);}}function k(n,o){if(n&1&&(Cs(0,"span",4),JC(1),hl()),n&2){let e=CC();sI(),Kg(e.config().description);}}function S(n,o){if(n&1){let e=vC();Cs(0,"span",7),JC(1,"Delete?"),hl(),Cs(2,"ds-icon-button",8),kg("action",function(){Cf(e);let l=CC();return Tf(l.onDeleteConfirmed())}),hl(),Cs(3,"ds-icon-button",9),kg("action",function(){Cf(e);let l=CC();return Tf(l.onDeleteCancelled())}),hl();}}function E(n,o){if(n&1){let e=vC();Cs(0,"ds-kebab-menu",10),kg("itemSelected",function(l){Cf(e);let A=CC();return Tf(A.onMenuAction(l))}),hl();}if(n&2){let e=CC();_g("items",e.readOnly()?e.readOnlyMenuItems:e.menuItems);}}var O=class n{router=g(G);config=JB.required();namespaceId=JB(void 0);platformMode=JB(false);readOnly=JB(false);deleteRequested=XB();pendingDelete=Wi(false);menuItems=[{key:"edit",label:"Edit agent config",icon:"edit"},{key:"inspect",label:"Inspect definition",icon:"search"},{key:"delete",label:"Delete agent config",icon:"delete",variant:"danger"}];readOnlyMenuItems=[{key:"inspect",label:"Inspect definition",icon:"search"}];onMenuAction(o){switch(o){case "edit":this.platformMode()?this.router.navigate(["/agentos","admin","agent-configs",this.config().id,"edit"]):this.router.navigate(["/agentos",this.namespaceId(),"agent-configs",this.config().id,"edit"]);break;case "inspect":this.platformMode()?this.router.navigate(["/agentos","admin","agent-configs",this.config().id,"inspect"]):this.router.navigate(["/agentos",this.namespaceId(),"agent-configs",this.config().id,"inspect"]);break;case "delete":this.pendingDelete.set(true);break}}onDeleteConfirmed(){this.pendingDelete.set(false),this.deleteRequested.emit(this.config());}onDeleteCancelled(){this.pendingDelete.set(false);}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=jw({type:n,selectors:[["agentos-agent-config-item"]],inputs:{config:[1,"config"],namespaceId:[1,"namespaceId"],platformMode:[1,"platformMode"],readOnly:[1,"readOnly"]},outputs:{deleteRequested:"deleteRequested"},decls:9,vars:4,consts:[["role","listitem","dsBlueprint","",1,"agent-config-item"],[1,"agent-config-item__body"],[1,"agent-config-item__name"],[1,"agent-config-item__model"],[1,"agent-config-item__description"],[1,"agent-config-item__actions"],[3,"items"],[1,"agent-config-item__confirm-label"],["icon","check","variant","danger","title","Confirm deletion",3,"action"],["icon","close","title","Cancel deletion",3,"action"],[3,"itemSelected","items"]],template:function(e,a){e&1&&(Cs(0,"div",0)(1,"div",1)(2,"span",2),JC(3),hl(),aC(4,P,2,1,"span",3),aC(5,k,2,1,"span",4),hl(),Cs(6,"div",5),aC(7,S,4,0)(8,E,1,1,"ds-kebab-menu",6),hl()()),e&2&&(sI(3),Kg(a.config().name),sI(),cC(a.config().modelName?4:-1),sI(),cC(a.config().description?5:-1),sI(2),cC(a.pendingDelete()?7:8));},dependencies:[Kn,Zn,Se],styles:[".agent-config-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:14px 16px;position:relative;border-radius:0;border:1px solid var(--color-divider);background:var(--color-bg);box-shadow:var(--shadow-sm);overflow:visible;transition:border-color .15s ease}.agent-config-item[_ngcontent-%COMP%]:hover{border-color:var(--color-accent)}.agent-config-item__body[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.agent-config-item__name[_ngcontent-%COMP%]{font-size:15px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-config-item__model[_ngcontent-%COMP%], .agent-config-item__description[_ngcontent-%COMP%]{font-size:13px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-config-item__actions[_ngcontent-%COMP%]{flex-shrink:0;display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.agent-config-item[_ngcontent-%COMP%]:hover .agent-config-item__actions[_ngcontent-%COMP%], .agent-config-item[_ngcontent-%COMP%]:focus-within .agent-config-item__actions[_ngcontent-%COMP%]{opacity:1}.agent-config-item[_ngcontent-%COMP%]:has(.agent-config-item__confirm-label) .agent-config-item__actions[_ngcontent-%COMP%]{opacity:1}.agent-config-item__confirm-label[_ngcontent-%COMP%]{font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--red-deep);margin-right:.25rem;white-space:nowrap}"]})};export{O};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {K as Kn,Z as Zn,S as Se}from'./chunk-
|
|
1
|
+
import {K as Kn,Z as Zn,S as Se}from'./chunk-D8Bz7q-C.js';import {cb as JB,cc as XB,W as Wi,T as TT,j as jw,k as Cs,J as JC,m as hl,o as aC,t as sI,a8 as Kg,u as cC,ac as CC,S as Sg,a5 as Dl,a9 as vC,n as kg,_ as _g,aa as Cf,ab as Tf}from'./main-K6RKSHKK.js';function I(t,d){if(t&1&&(Cs(0,"span",4),JC(1),hl()),t&2){let e=CC();Sg("data-variant",e.badge().variant)("aria-label",e.badge().ariaLabel),sI(),Dl(" ",e.badge().label," ");}}function E(t,d){if(t&1&&(Cs(0,"span",6),JC(1),hl()),t&2){let e=CC();sI(),Kg(e.config().baseUrl);}}function R(t,d){if(t&1){let e=vC();Cs(0,"span",8),JC(1,"Delete?"),hl(),Cs(2,"ds-icon-button",9),kg("action",function(){Cf(e);let l=CC();return Tf(l.onDeleteConfirmed())}),hl(),Cs(3,"ds-icon-button",10),kg("action",function(){Cf(e);let l=CC();return Tf(l.onDeleteCancelled())}),hl();}}function k(t,d){if(t&1){let e=vC();Cs(0,"ds-kebab-menu",13),kg("itemSelected",function(l){Cf(e);let A=CC(2);return Tf(A.onMenuAction(l))}),hl();}if(t&2){let e=CC(2);_g("items",e.menuItems());}}function q(t,d){if(t&1){let e=vC();Cs(0,"ds-icon-button",11),kg("action",function(){Cf(e);let l=CC();return Tf(l.onDuplicate())}),hl(),aC(1,k,1,1,"ds-kebab-menu",12);}if(t&2){let e=CC();sI(),cC(e.readOnly()?-1:1);}}var B=Object.freeze({platform:{label:"PLATFORM",ariaLabel:"Configuration de niveau plateforme (lecture seule)",variant:"neutral"},namespace:{label:"NS",ariaLabel:"Configuration partag\xE9e du namespace",variant:"neutral"},userOnNs:{label:"USER \xD7 NS",ariaLabel:"Configuration utilisateur sur ce namespace",variant:"info"},userGlobal:{label:"USER GLOBAL",ariaLabel:"Configuration utilisateur globale",variant:"warning"}}),S=class t{config=JB.required();scope=JB.required();readOnly=JB(false);showBadge=JB(true);editRequested=XB();deleteRequested=XB();duplicateRequested=XB();pendingDelete=Wi(false);badge=TT(()=>B[this.scope()]);menuItems=TT(()=>[{key:"edit",label:"Edit provider",icon:"edit"},{key:"delete",label:"Delete provider",icon:"delete",variant:"danger"}]);onMenuAction(d){switch(d){case "edit":this.editRequested.emit(this.config());break;case "delete":this.pendingDelete.set(true);break}}onDuplicate(){this.duplicateRequested.emit(this.config());}onDeleteConfirmed(){this.pendingDelete.set(false),this.deleteRequested.emit(this.config());}onDeleteCancelled(){this.pendingDelete.set(false);}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=jw({type:t,selectors:[["agentos-ai-provider-item"]],inputs:{config:[1,"config"],scope:[1,"scope"],readOnly:[1,"readOnly"],showBadge:[1,"showBadge"]},outputs:{editRequested:"editRequested",deleteRequested:"deleteRequested",duplicateRequested:"duplicateRequested"},decls:12,vars:5,consts:[["role","listitem","dsBlueprint","",1,"ai-provider-item"],[1,"ai-provider-item__body"],[1,"ai-provider-item__heading"],[1,"ai-provider-item__name"],[1,"ai-provider-item__badge"],[1,"ai-provider-item__type"],[1,"ai-provider-item__url"],[1,"ai-provider-item__actions"],[1,"ai-provider-item__confirm-label"],["icon","check","variant","danger","title","Confirm deletion",3,"action"],["icon","close","title","Cancel deletion",3,"action"],["icon","content_copy","title","Duplicate this provider",3,"action"],[3,"items"],[3,"itemSelected","items"]],template:function(e,o){e&1&&(Cs(0,"div",0)(1,"div",1)(2,"div",2)(3,"span",3),JC(4),hl(),aC(5,I,2,3,"span",4),hl(),Cs(6,"span",5),JC(7),hl(),aC(8,E,2,1,"span",6),hl(),Cs(9,"div",7),aC(10,R,4,0)(11,q,2,1),hl()()),e&2&&(sI(4),Kg(o.config().name),sI(),cC(o.showBadge()?5:-1),sI(2),Kg(o.config().apiType),sI(),cC(o.config().baseUrl?8:-1),sI(2),cC(o.pendingDelete()?10:11));},dependencies:[Kn,Zn,Se],styles:[".ai-provider-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:14px 16px;position:relative;border-radius:0;border:1px solid var(--color-divider);background:var(--color-bg);box-shadow:var(--shadow-sm);overflow:visible;transition:border-color .15s ease}.ai-provider-item[_ngcontent-%COMP%]:hover{border-color:var(--color-accent)}.ai-provider-item__body[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.ai-provider-item__heading[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;min-width:0}.ai-provider-item__name[_ngcontent-%COMP%]{font-size:15px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.ai-provider-item__badge[_ngcontent-%COMP%]{flex-shrink:0;font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;border-radius:0;padding:.1rem .4rem;line-height:1.2;white-space:nowrap}.ai-provider-item__badge[data-variant=neutral][_ngcontent-%COMP%]{border:1px solid var(--color-divider);color:var(--color-neutral-600);background:transparent}.ai-provider-item__badge[data-variant=info][_ngcontent-%COMP%]{border:1px solid color-mix(in srgb,var(--color-info) 40%,transparent);color:var(--color-info);background:color-mix(in srgb,var(--color-info) 10%,transparent)}.ai-provider-item__badge[data-variant=warning][_ngcontent-%COMP%]{border:1px solid color-mix(in srgb,var(--color-warning) 40%,transparent);color:var(--color-warning);background:color-mix(in srgb,var(--color-warning) 10%,transparent)}.ai-provider-item__type[_ngcontent-%COMP%], .ai-provider-item__url[_ngcontent-%COMP%]{font-size:13px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-provider-item__actions[_ngcontent-%COMP%]{flex-shrink:0;display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.ai-provider-item[_ngcontent-%COMP%]:hover .ai-provider-item__actions[_ngcontent-%COMP%], .ai-provider-item[_ngcontent-%COMP%]:focus-within .ai-provider-item__actions[_ngcontent-%COMP%]{opacity:1}.ai-provider-item__confirm-label[_ngcontent-%COMP%]{font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--red-deep);margin-right:.25rem;white-space:nowrap}"]})};export{S};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {bS as Da,a7 as va,I as br,cE as kd}from'./main-K6RKSHKK.js';function i(t,o,p){return t.pipe(Da(()=>o().pipe(va(()=>br(p)))),kd({bufferSize:1,refCount:true}))}export{i};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {cb as JB,cc as XB,g,G as G$1,P,T as TT,j as jw,h as hr,i as Gn,k as Cs,n as kg,o as aC,J as JC,m as hl,b$ as UC,w as zg,S as Sg,t as sI,u as cC,a8 as Kg,a5 as Dl,_ as _g,a9 as vC,aa as Cf,ac as CC,ab as Tf,M as Mg}from'./main-YYHD6X7H.js';import {v as ve,n as ne}from'./chunk-Buu9Jf-V.js';import {V as Ve,n as ne$1}from'./chunk-CgNkwpQ7.js';import {y as yt,w as wt}from'./chunk-FMHkoXwM.js';function L(a,e){if(a&1){let n=vC();Cs(0,"div",1)(1,"mat-checkbox",21),kg("click",function(r){return r.stopPropagation()})("change",function(r){Cf(n);let i=CC();return Tf(i.selectionChanged.emit({id:i.task().id,selected:r.checked}))}),hl()();}if(a&2){let n=CC();sI(),_g("checked",n.selected()),Sg("aria-label","Select task: "+n.task().name);}}function Y(a,e){a&1&&(Cs(0,"mat-icon",2),JC(1,"star"),hl());}function W(a,e){a&1&&Mg(0,"span",6);}function U(a,e){if(a&1&&(Cs(0,"div",7)(1,"mat-icon",22),JC(2,"folder"),hl(),Cs(3,"span"),JC(4),hl()()),a&2){let n=CC();sI(4),Kg(n.projectName());}}function B(a,e){if(a&1&&(Cs(0,"p",9),JC(1),hl()),a&2){let n=CC();sI(),Kg(n.task().summary);}}function $(a,e){a&1&&(Cs(0,"p",10),JC(1,"No summary yet"),hl());}function H(a,e){if(a&1){let n=vC();Cs(0,"button",23),kg("click",function(r){Cf(n);let i=CC();return Tf(i.onOpenDirect(r))}),Cs(1,"mat-icon"),JC(2,"open_in_new"),hl()();}}function F(a,e){if(a&1){let n=vC();Cs(0,"button",24),kg("click",function(r){Cf(n);let i=CC();return Tf(i.onStop(r))}),Cs(1,"mat-icon"),JC(2,"stop_circle"),hl()();}}function G(a,e){if(a&1){let n=vC();Cs(0,"button",25),kg("click",function(r){Cf(n);let i=CC();return Tf(i.onMarkDone(r))}),Cs(1,"mat-icon"),JC(2,"check_circle_outline"),hl()();}}function K(a,e){if(a&1){let n=vC();Cs(0,"button",26),kg("click",function(r){Cf(n);let i=CC();return Tf(i.onMarkActive(r))}),Cs(1,"mat-icon"),JC(2,"replay"),hl()();}}function J(a,e){if(a&1){let n=vC();Cs(0,"button",27),kg("click",function(r){Cf(n);let i=CC();return Tf(i.onCloseTask(r))}),Cs(1,"mat-icon"),JC(2,"close_fullscreen"),hl()();}}var A=class a{task=JB.required();projectNameOverride=JB(null);showProject=JB(false);previewMode=JB(false);selectable=JB(false);selected=JB(false);stopRequested=XB();deleteRequested=XB();starToggled=XB();closeTaskRequested=XB();markDoneRequested=XB();markActiveRequested=XB();previewRequested=XB();selectionChanged=XB();router=g(G$1);projectState=g(P);projectName=TT(()=>this.projectNameOverride()??this.projectState.getSelectedProjectId());statusLabel=TT(()=>Q[this.task().status]);statusIcon=TT(()=>X[this.task().status]);isWorktree=TT(()=>!!this.task().worktreeProject);navigate(){if(this.previewMode()){this.previewRequested.emit(this.task().id);return}let e=this.projectName();e&&(this.projectState.selectProject(e),this.router.navigate(["project",e,"thread",this.task().id]));}onStop(e){e.stopPropagation(),this.stopRequested.emit(this.task().id);}onDelete(e){e.stopPropagation(),this.deleteRequested.emit(this.task().id);}onStarToggle(e){e.stopPropagation(),this.starToggled.emit(this.task().id);}onCloseTask(e){e.stopPropagation(),this.closeTaskRequested.emit(this.task().id);}onMarkDone(e){e.stopPropagation(),this.markDoneRequested.emit(this.task().id);}onMarkActive(e){e.stopPropagation(),this.markActiveRequested.emit(this.task().id);}onOpenDirect(e){e.stopPropagation();let n=this.projectName();n&&(this.projectState.selectProject(n),this.router.navigate(["project",n,"thread",this.task().id]));}formatRelativeTime(e){let n=Date.now()-new Date(e).getTime(),t=Math.floor(n/6e4);if(t<1)return "just now";if(t<60)return `${t} min ago`;let r=Math.floor(t/60);if(r<24)return `${r}h ago`;let i=Math.floor(r/24);return i===1?"yesterday":i<7?`${i} days ago`:new Date(e).toLocaleDateString("en",{day:"numeric",month:"short"})}static \u0275fac=function(n){return new(n||a)};static \u0275cmp=jw({type:a,selectors:[["app-task-card"]],inputs:{task:[1,"task"],projectNameOverride:[1,"projectNameOverride"],showProject:[1,"showProject"],previewMode:[1,"previewMode"],selectable:[1,"selectable"],selected:[1,"selected"]},outputs:{stopRequested:"stopRequested",deleteRequested:"deleteRequested",starToggled:"starToggled",closeTaskRequested:"closeTaskRequested",markDoneRequested:"markDoneRequested",markActiveRequested:"markActiveRequested",previewRequested:"previewRequested",selectionChanged:"selectionChanged"},decls:29,vars:25,consts:[["role","button","tabindex","0",1,"task-card",3,"click","keydown.enter","keydown.space"],[1,"selection-checkbox"],["aria-label","Starred",1,"starred-indicator"],[1,"status-badge"],[1,"status-icon"],[1,"status-label"],["aria-hidden","true",1,"pulse-ring"],[1,"task-project"],[1,"task-name"],[1,"task-summary"],[1,"task-summary","empty"],[1,"task-footer"],[1,"task-time"],[1,"task-actions"],["mat-icon-button","","matTooltip","Open full view","aria-label","Open task in full view",1,"action-btn","open-btn"],["mat-icon-button","","matTooltip","Stop agent","aria-label","Stop agent",1,"action-btn","stop-btn"],["mat-icon-button","","matTooltip","Mark as done","aria-label","Mark as done",1,"action-btn","mark-done-btn"],["mat-icon-button","","matTooltip","Mark as active","aria-label","Mark as active",1,"action-btn","mark-active-btn"],["mat-icon-button","",1,"action-btn","star-btn",3,"click","matTooltip"],["mat-icon-button","","matTooltip","Close task (removes worktree)","aria-label","Close task",1,"action-btn","close-task-btn"],["mat-icon-button","","matTooltip","Delete task","aria-label","Delete task",1,"action-btn","delete-btn",3,"click"],[3,"click","change","checked"],[1,"project-icon"],["mat-icon-button","","matTooltip","Open full view","aria-label","Open task in full view",1,"action-btn","open-btn",3,"click"],["mat-icon-button","","matTooltip","Stop agent","aria-label","Stop agent",1,"action-btn","stop-btn",3,"click"],["mat-icon-button","","matTooltip","Mark as done","aria-label","Mark as done",1,"action-btn","mark-done-btn",3,"click"],["mat-icon-button","","matTooltip","Mark as active","aria-label","Mark as active",1,"action-btn","mark-active-btn",3,"click"],["mat-icon-button","","matTooltip","Close task (removes worktree)","aria-label","Close task",1,"action-btn","close-task-btn",3,"click"]],template:function(n,t){n&1&&(Cs(0,"article",0),kg("click",function(){return t.navigate()})("keydown.enter",function(){return t.navigate()})("keydown.space",function(i){return t.navigate(),i.preventDefault()}),aC(1,L,2,2,"div",1),aC(2,Y,2,0,"mat-icon",2),Cs(3,"div",3)(4,"mat-icon",4),JC(5),hl(),Cs(6,"span",5),JC(7),hl(),aC(8,W,1,0,"span",6),hl(),aC(9,U,5,1,"div",7),Cs(10,"h3",8),JC(11),hl(),aC(12,B,2,1,"p",9)(13,$,2,0,"p",10),Cs(14,"footer",11)(15,"span",12),JC(16),hl(),Cs(17,"div",13),aC(18,H,3,0,"button",14),aC(19,F,3,0,"button",15),aC(20,G,3,0,"button",16)(21,K,3,0,"button",17),Cs(22,"button",18),kg("click",function(i){return t.onStarToggle(i)}),Cs(23,"mat-icon"),JC(24),hl()(),aC(25,J,3,0,"button",19),Cs(26,"button",20),kg("click",function(i){return t.onDelete(i)}),Cs(27,"mat-icon"),JC(28,"delete_outline"),hl()()()()()),n&2&&(UC("status-"+t.task().status),zg("is-active",t.task().isActive)("is-selected",t.selected()),Sg("aria-label","Open task: "+t.task().name),sI(),cC(t.selectable()?1:-1),sI(),cC(t.task().starring.length>0?2:-1),sI(3),Kg(t.statusIcon()),sI(2),Kg(t.statusLabel()),sI(),cC(t.task().status==="waiting-you"?8:-1),sI(),cC(t.showProject()&&t.projectName()?9:-1),sI(2),Dl(" ",t.task().name||"Unnamed task"," "),sI(),cC(t.task().summary?12:13),sI(4),Kg(t.formatRelativeTime(t.task().modifiedDate)),sI(2),cC(t.previewMode()?18:-1),sI(),cC(t.task().status==="in-progress"?19:-1),sI(),cC(t.task().status!=="done"?20:21),sI(2),zg("starred",t.task().starring.length>0),_g("matTooltip",t.task().starring.length>0?"Unstar":"Star"),Sg("aria-label",t.task().starring.length>0?"Unstar task":"Star task"),sI(2),Kg(t.task().starring.length>0?"star":"star_border"),sI(),cC(t.isWorktree()?25:-1));},dependencies:[ve,ne,yt,wt,hr,Gn,Ve,ne$1],styles:['.glass-panel[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.glass-interactive[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-interactive[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-interactive[_ngcontent-%COMP%]:active{transform:translateY(0)}.glass-card[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:20px;padding:1.5rem}.glass-button[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-button[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-button[_ngcontent-%COMP%]:active{transform:translateY(0)}.glass-button[_ngcontent-%COMP%]{border-radius:12px;padding:.75rem 1.5rem;font-weight:600;cursor:pointer}.glass-button[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed;transform:none}.glass-button[_ngcontent-%COMP%]:disabled:hover{transform:none}.smooth-theme-transition[_ngcontent-%COMP%]{transition:background .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}[_nghost-%COMP%]{display:block}.task-card[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:16px;padding:1.25rem;cursor:pointer;position:relative;overflow:hidden;transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,.2,1),border-color .2s ease;outline:none;display:flex;flex-direction:column;gap:.5rem;min-height:160px}.task-card[_ngcontent-%COMP%]:hover, .task-card[_ngcontent-%COMP%]:focus-visible{transform:translateY(-3px);box-shadow:0 16px 48px #00000026}.task-card[_ngcontent-%COMP%]:active{transform:translateY(-1px)}.task-card[_ngcontent-%COMP%]:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:16px 0 0 16px;background:var(--status-color, var(--color-text-secondary))}.task-card.status-waiting-you[_ngcontent-%COMP%]{--status-color: var(--color-error);border-color:#ff3b3040}.task-card.status-in-progress[_ngcontent-%COMP%]{--status-color: var(--color-warning);border-color:#ff950033}.task-card.status-done[_ngcontent-%COMP%]{--status-color: var(--color-success)}.task-card.status-paused[_ngcontent-%COMP%]{--status-color: var(--color-text-secondary)}.task-card.status-error[_ngcontent-%COMP%]{--status-color: var(--color-error)}.task-card.is-active[_ngcontent-%COMP%]{box-shadow:var(--glass-shadow),0 0 0 2px rgba(var(--color-primary),.3)}.selection-checkbox[_ngcontent-%COMP%]{position:absolute;right:.875rem;top:1.125rem;z-index:2}.task-card.is-selected[_ngcontent-%COMP%]{border-color:var(--color-primary);box-shadow:var(--glass-shadow),0 0 0 2px var(--color-primary)}.task-card.is-selected[_ngcontent-%COMP%]:before{background:var(--color-primary)}.starred-indicator[_ngcontent-%COMP%]{position:absolute;top:.75rem;right:.75rem;font-size:1rem;width:1rem;height:1rem;color:#f5a623;pointer-events:none}.status-badge[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;position:relative}.status-badge[_ngcontent-%COMP%] .status-icon[_ngcontent-%COMP%]{font-size:1rem;width:1rem;height:1rem;color:var(--status-color, var(--color-text-secondary))}.status-in-progress[_ngcontent-%COMP%] .status-badge[_ngcontent-%COMP%] .status-icon[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_spin 2s linear infinite}.status-badge[_ngcontent-%COMP%] .status-label[_ngcontent-%COMP%]{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--status-color, var(--color-text-secondary))}.status-badge[_ngcontent-%COMP%] .pulse-ring[_ngcontent-%COMP%]{position:absolute;left:-2px;top:-2px;width:20px;height:20px;border-radius:50%;border:2px solid var(--color-error);animation:_ngcontent-%COMP%_pulse 1.5s ease-out infinite;pointer-events:none}.task-project[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem;font-size:.72rem;font-weight:600;color:var(--color-primary);opacity:.8;text-transform:uppercase;letter-spacing:.04em}.task-project[_ngcontent-%COMP%] .project-icon[_ngcontent-%COMP%]{font-size:.75rem;width:.75rem;height:.75rem}.task-name[_ngcontent-%COMP%]{margin:0;font-size:.95rem;font-weight:600;color:var(--color-text);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.task-summary[_ngcontent-%COMP%]{margin:0;font-size:.8rem;color:var(--color-text-secondary);line-height:1.4;flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.task-summary.empty[_ngcontent-%COMP%]{font-style:italic;opacity:.6}.task-footer[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:.25rem}.task-time[_ngcontent-%COMP%]{font-size:.72rem;color:var(--color-text-secondary);opacity:.8}.task-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.task-card[_ngcontent-%COMP%]:hover .task-actions[_ngcontent-%COMP%], .task-card[_ngcontent-%COMP%]:focus-within .task-actions[_ngcontent-%COMP%]{opacity:1}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%]{width:28px;height:28px;display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1rem;width:1rem;height:1rem;display:flex;align-items:center;justify-content:center}.task-actions[_ngcontent-%COMP%] .stop-btn[_ngcontent-%COMP%]{color:var(--color-error)}.task-actions[_ngcontent-%COMP%] .mark-done-btn[_ngcontent-%COMP%]{color:var(--color-success)}.task-actions[_ngcontent-%COMP%] .star-btn[_ngcontent-%COMP%]{color:var(--color-text-secondary)}.task-actions[_ngcontent-%COMP%] .star-btn.starred[_ngcontent-%COMP%]{color:#f5a623}.task-actions[_ngcontent-%COMP%] .delete-btn[_ngcontent-%COMP%]{color:var(--color-text-secondary)}.task-actions[_ngcontent-%COMP%] .delete-btn[_ngcontent-%COMP%]:hover{color:var(--color-error)}.task-actions[_ngcontent-%COMP%] .open-btn[_ngcontent-%COMP%]{color:var(--color-primary)}.task-actions[_ngcontent-%COMP%] .open-btn[_ngcontent-%COMP%]:hover{color:var(--color-primary-hover)}@media(max-width:600px){.task-actions[_ngcontent-%COMP%]{opacity:1}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%]{width:36px;height:36px}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.25rem;width:1.25rem;height:1.25rem}}@keyframes _ngcontent-%COMP%_spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes _ngcontent-%COMP%_pulse{0%{transform:scale(.8);opacity:1}to{transform:scale(2.2);opacity:0}}']})},Q={"waiting-you":"Waiting for you","in-progress":"In progress\u2026",done:"Done",paused:"Paused",error:"Error"},X={"waiting-you":"mark_unread_chat_alt","in-progress":"pending",done:"check_circle",paused:"pause_circle",error:"error"};var bt=300*1e3,kt={"waiting-you":0,"in-progress":1,done:2,paused:3,error:4};export{A,bt as b,kt as k};
|
|
1
|
+
import {cb as JB,cc as XB,g,G as G$1,P,T as TT,j as jw,h as hr,i as Gn,k as Cs,n as kg,o as aC,J as JC,m as hl,b$ as UC,w as zg,S as Sg,t as sI,u as cC,a8 as Kg,a5 as Dl,_ as _g,a9 as vC,aa as Cf,ac as CC,ab as Tf,M as Mg}from'./main-K6RKSHKK.js';import {v as ve,n as ne}from'./chunk-3m_nS8Y5.js';import {V as Ve,n as ne$1}from'./chunk-BEaYQhbI.js';import {y as yt,w as wt}from'./chunk-BhdMedPO.js';function L(a,e){if(a&1){let n=vC();Cs(0,"div",1)(1,"mat-checkbox",21),kg("click",function(r){return r.stopPropagation()})("change",function(r){Cf(n);let i=CC();return Tf(i.selectionChanged.emit({id:i.task().id,selected:r.checked}))}),hl()();}if(a&2){let n=CC();sI(),_g("checked",n.selected()),Sg("aria-label","Select task: "+n.task().name);}}function Y(a,e){a&1&&(Cs(0,"mat-icon",2),JC(1,"star"),hl());}function W(a,e){a&1&&Mg(0,"span",6);}function U(a,e){if(a&1&&(Cs(0,"div",7)(1,"mat-icon",22),JC(2,"folder"),hl(),Cs(3,"span"),JC(4),hl()()),a&2){let n=CC();sI(4),Kg(n.projectName());}}function B(a,e){if(a&1&&(Cs(0,"p",9),JC(1),hl()),a&2){let n=CC();sI(),Kg(n.task().summary);}}function $(a,e){a&1&&(Cs(0,"p",10),JC(1,"No summary yet"),hl());}function H(a,e){if(a&1){let n=vC();Cs(0,"button",23),kg("click",function(r){Cf(n);let i=CC();return Tf(i.onOpenDirect(r))}),Cs(1,"mat-icon"),JC(2,"open_in_new"),hl()();}}function F(a,e){if(a&1){let n=vC();Cs(0,"button",24),kg("click",function(r){Cf(n);let i=CC();return Tf(i.onStop(r))}),Cs(1,"mat-icon"),JC(2,"stop_circle"),hl()();}}function G(a,e){if(a&1){let n=vC();Cs(0,"button",25),kg("click",function(r){Cf(n);let i=CC();return Tf(i.onMarkDone(r))}),Cs(1,"mat-icon"),JC(2,"check_circle_outline"),hl()();}}function K(a,e){if(a&1){let n=vC();Cs(0,"button",26),kg("click",function(r){Cf(n);let i=CC();return Tf(i.onMarkActive(r))}),Cs(1,"mat-icon"),JC(2,"replay"),hl()();}}function J(a,e){if(a&1){let n=vC();Cs(0,"button",27),kg("click",function(r){Cf(n);let i=CC();return Tf(i.onCloseTask(r))}),Cs(1,"mat-icon"),JC(2,"close_fullscreen"),hl()();}}var A=class a{task=JB.required();projectNameOverride=JB(null);showProject=JB(false);previewMode=JB(false);selectable=JB(false);selected=JB(false);stopRequested=XB();deleteRequested=XB();starToggled=XB();closeTaskRequested=XB();markDoneRequested=XB();markActiveRequested=XB();previewRequested=XB();selectionChanged=XB();router=g(G$1);projectState=g(P);projectName=TT(()=>this.projectNameOverride()??this.projectState.getSelectedProjectId());statusLabel=TT(()=>Q[this.task().status]);statusIcon=TT(()=>X[this.task().status]);isWorktree=TT(()=>!!this.task().worktreeProject);navigate(){if(this.previewMode()){this.previewRequested.emit(this.task().id);return}let e=this.projectName();e&&(this.projectState.selectProject(e),this.router.navigate(["project",e,"thread",this.task().id]));}onStop(e){e.stopPropagation(),this.stopRequested.emit(this.task().id);}onDelete(e){e.stopPropagation(),this.deleteRequested.emit(this.task().id);}onStarToggle(e){e.stopPropagation(),this.starToggled.emit(this.task().id);}onCloseTask(e){e.stopPropagation(),this.closeTaskRequested.emit(this.task().id);}onMarkDone(e){e.stopPropagation(),this.markDoneRequested.emit(this.task().id);}onMarkActive(e){e.stopPropagation(),this.markActiveRequested.emit(this.task().id);}onOpenDirect(e){e.stopPropagation();let n=this.projectName();n&&(this.projectState.selectProject(n),this.router.navigate(["project",n,"thread",this.task().id]));}formatRelativeTime(e){let n=Date.now()-new Date(e).getTime(),t=Math.floor(n/6e4);if(t<1)return "just now";if(t<60)return `${t} min ago`;let r=Math.floor(t/60);if(r<24)return `${r}h ago`;let i=Math.floor(r/24);return i===1?"yesterday":i<7?`${i} days ago`:new Date(e).toLocaleDateString("en",{day:"numeric",month:"short"})}static \u0275fac=function(n){return new(n||a)};static \u0275cmp=jw({type:a,selectors:[["app-task-card"]],inputs:{task:[1,"task"],projectNameOverride:[1,"projectNameOverride"],showProject:[1,"showProject"],previewMode:[1,"previewMode"],selectable:[1,"selectable"],selected:[1,"selected"]},outputs:{stopRequested:"stopRequested",deleteRequested:"deleteRequested",starToggled:"starToggled",closeTaskRequested:"closeTaskRequested",markDoneRequested:"markDoneRequested",markActiveRequested:"markActiveRequested",previewRequested:"previewRequested",selectionChanged:"selectionChanged"},decls:29,vars:25,consts:[["role","button","tabindex","0",1,"task-card",3,"click","keydown.enter","keydown.space"],[1,"selection-checkbox"],["aria-label","Starred",1,"starred-indicator"],[1,"status-badge"],[1,"status-icon"],[1,"status-label"],["aria-hidden","true",1,"pulse-ring"],[1,"task-project"],[1,"task-name"],[1,"task-summary"],[1,"task-summary","empty"],[1,"task-footer"],[1,"task-time"],[1,"task-actions"],["mat-icon-button","","matTooltip","Open full view","aria-label","Open task in full view",1,"action-btn","open-btn"],["mat-icon-button","","matTooltip","Stop agent","aria-label","Stop agent",1,"action-btn","stop-btn"],["mat-icon-button","","matTooltip","Mark as done","aria-label","Mark as done",1,"action-btn","mark-done-btn"],["mat-icon-button","","matTooltip","Mark as active","aria-label","Mark as active",1,"action-btn","mark-active-btn"],["mat-icon-button","",1,"action-btn","star-btn",3,"click","matTooltip"],["mat-icon-button","","matTooltip","Close task (removes worktree)","aria-label","Close task",1,"action-btn","close-task-btn"],["mat-icon-button","","matTooltip","Delete task","aria-label","Delete task",1,"action-btn","delete-btn",3,"click"],[3,"click","change","checked"],[1,"project-icon"],["mat-icon-button","","matTooltip","Open full view","aria-label","Open task in full view",1,"action-btn","open-btn",3,"click"],["mat-icon-button","","matTooltip","Stop agent","aria-label","Stop agent",1,"action-btn","stop-btn",3,"click"],["mat-icon-button","","matTooltip","Mark as done","aria-label","Mark as done",1,"action-btn","mark-done-btn",3,"click"],["mat-icon-button","","matTooltip","Mark as active","aria-label","Mark as active",1,"action-btn","mark-active-btn",3,"click"],["mat-icon-button","","matTooltip","Close task (removes worktree)","aria-label","Close task",1,"action-btn","close-task-btn",3,"click"]],template:function(n,t){n&1&&(Cs(0,"article",0),kg("click",function(){return t.navigate()})("keydown.enter",function(){return t.navigate()})("keydown.space",function(i){return t.navigate(),i.preventDefault()}),aC(1,L,2,2,"div",1),aC(2,Y,2,0,"mat-icon",2),Cs(3,"div",3)(4,"mat-icon",4),JC(5),hl(),Cs(6,"span",5),JC(7),hl(),aC(8,W,1,0,"span",6),hl(),aC(9,U,5,1,"div",7),Cs(10,"h3",8),JC(11),hl(),aC(12,B,2,1,"p",9)(13,$,2,0,"p",10),Cs(14,"footer",11)(15,"span",12),JC(16),hl(),Cs(17,"div",13),aC(18,H,3,0,"button",14),aC(19,F,3,0,"button",15),aC(20,G,3,0,"button",16)(21,K,3,0,"button",17),Cs(22,"button",18),kg("click",function(i){return t.onStarToggle(i)}),Cs(23,"mat-icon"),JC(24),hl()(),aC(25,J,3,0,"button",19),Cs(26,"button",20),kg("click",function(i){return t.onDelete(i)}),Cs(27,"mat-icon"),JC(28,"delete_outline"),hl()()()()()),n&2&&(UC("status-"+t.task().status),zg("is-active",t.task().isActive)("is-selected",t.selected()),Sg("aria-label","Open task: "+t.task().name),sI(),cC(t.selectable()?1:-1),sI(),cC(t.task().starring.length>0?2:-1),sI(3),Kg(t.statusIcon()),sI(2),Kg(t.statusLabel()),sI(),cC(t.task().status==="waiting-you"?8:-1),sI(),cC(t.showProject()&&t.projectName()?9:-1),sI(2),Dl(" ",t.task().name||"Unnamed task"," "),sI(),cC(t.task().summary?12:13),sI(4),Kg(t.formatRelativeTime(t.task().modifiedDate)),sI(2),cC(t.previewMode()?18:-1),sI(),cC(t.task().status==="in-progress"?19:-1),sI(),cC(t.task().status!=="done"?20:21),sI(2),zg("starred",t.task().starring.length>0),_g("matTooltip",t.task().starring.length>0?"Unstar":"Star"),Sg("aria-label",t.task().starring.length>0?"Unstar task":"Star task"),sI(2),Kg(t.task().starring.length>0?"star":"star_border"),sI(),cC(t.isWorktree()?25:-1));},dependencies:[ve,ne,yt,wt,hr,Gn,Ve,ne$1],styles:['.glass-panel[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.glass-interactive[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-interactive[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-interactive[_ngcontent-%COMP%]:active{transform:translateY(0)}.glass-card[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:20px;padding:1.5rem}.glass-button[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-button[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-button[_ngcontent-%COMP%]:active{transform:translateY(0)}.glass-button[_ngcontent-%COMP%]{border-radius:12px;padding:.75rem 1.5rem;font-weight:600;cursor:pointer}.glass-button[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed;transform:none}.glass-button[_ngcontent-%COMP%]:disabled:hover{transform:none}.smooth-theme-transition[_ngcontent-%COMP%]{transition:background .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}[_nghost-%COMP%]{display:block}.task-card[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:16px;padding:1.25rem;cursor:pointer;position:relative;overflow:hidden;transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,.2,1),border-color .2s ease;outline:none;display:flex;flex-direction:column;gap:.5rem;min-height:160px}.task-card[_ngcontent-%COMP%]:hover, .task-card[_ngcontent-%COMP%]:focus-visible{transform:translateY(-3px);box-shadow:0 16px 48px #00000026}.task-card[_ngcontent-%COMP%]:active{transform:translateY(-1px)}.task-card[_ngcontent-%COMP%]:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:16px 0 0 16px;background:var(--status-color, var(--color-text-secondary))}.task-card.status-waiting-you[_ngcontent-%COMP%]{--status-color: var(--color-error);border-color:#ff3b3040}.task-card.status-in-progress[_ngcontent-%COMP%]{--status-color: var(--color-warning);border-color:#ff950033}.task-card.status-done[_ngcontent-%COMP%]{--status-color: var(--color-success)}.task-card.status-paused[_ngcontent-%COMP%]{--status-color: var(--color-text-secondary)}.task-card.status-error[_ngcontent-%COMP%]{--status-color: var(--color-error)}.task-card.is-active[_ngcontent-%COMP%]{box-shadow:var(--glass-shadow),0 0 0 2px rgba(var(--color-primary),.3)}.selection-checkbox[_ngcontent-%COMP%]{position:absolute;right:.875rem;top:1.125rem;z-index:2}.task-card.is-selected[_ngcontent-%COMP%]{border-color:var(--color-primary);box-shadow:var(--glass-shadow),0 0 0 2px var(--color-primary)}.task-card.is-selected[_ngcontent-%COMP%]:before{background:var(--color-primary)}.starred-indicator[_ngcontent-%COMP%]{position:absolute;top:.75rem;right:.75rem;font-size:1rem;width:1rem;height:1rem;color:#f5a623;pointer-events:none}.status-badge[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;position:relative}.status-badge[_ngcontent-%COMP%] .status-icon[_ngcontent-%COMP%]{font-size:1rem;width:1rem;height:1rem;color:var(--status-color, var(--color-text-secondary))}.status-in-progress[_ngcontent-%COMP%] .status-badge[_ngcontent-%COMP%] .status-icon[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_spin 2s linear infinite}.status-badge[_ngcontent-%COMP%] .status-label[_ngcontent-%COMP%]{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--status-color, var(--color-text-secondary))}.status-badge[_ngcontent-%COMP%] .pulse-ring[_ngcontent-%COMP%]{position:absolute;left:-2px;top:-2px;width:20px;height:20px;border-radius:50%;border:2px solid var(--color-error);animation:_ngcontent-%COMP%_pulse 1.5s ease-out infinite;pointer-events:none}.task-project[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem;font-size:.72rem;font-weight:600;color:var(--color-primary);opacity:.8;text-transform:uppercase;letter-spacing:.04em}.task-project[_ngcontent-%COMP%] .project-icon[_ngcontent-%COMP%]{font-size:.75rem;width:.75rem;height:.75rem}.task-name[_ngcontent-%COMP%]{margin:0;font-size:.95rem;font-weight:600;color:var(--color-text);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.task-summary[_ngcontent-%COMP%]{margin:0;font-size:.8rem;color:var(--color-text-secondary);line-height:1.4;flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.task-summary.empty[_ngcontent-%COMP%]{font-style:italic;opacity:.6}.task-footer[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:.25rem}.task-time[_ngcontent-%COMP%]{font-size:.72rem;color:var(--color-text-secondary);opacity:.8}.task-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.task-card[_ngcontent-%COMP%]:hover .task-actions[_ngcontent-%COMP%], .task-card[_ngcontent-%COMP%]:focus-within .task-actions[_ngcontent-%COMP%]{opacity:1}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%]{width:28px;height:28px;display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1rem;width:1rem;height:1rem;display:flex;align-items:center;justify-content:center}.task-actions[_ngcontent-%COMP%] .stop-btn[_ngcontent-%COMP%]{color:var(--color-error)}.task-actions[_ngcontent-%COMP%] .mark-done-btn[_ngcontent-%COMP%]{color:var(--color-success)}.task-actions[_ngcontent-%COMP%] .star-btn[_ngcontent-%COMP%]{color:var(--color-text-secondary)}.task-actions[_ngcontent-%COMP%] .star-btn.starred[_ngcontent-%COMP%]{color:#f5a623}.task-actions[_ngcontent-%COMP%] .delete-btn[_ngcontent-%COMP%]{color:var(--color-text-secondary)}.task-actions[_ngcontent-%COMP%] .delete-btn[_ngcontent-%COMP%]:hover{color:var(--color-error)}.task-actions[_ngcontent-%COMP%] .open-btn[_ngcontent-%COMP%]{color:var(--color-primary)}.task-actions[_ngcontent-%COMP%] .open-btn[_ngcontent-%COMP%]:hover{color:var(--color-primary-hover)}@media(max-width:600px){.task-actions[_ngcontent-%COMP%]{opacity:1}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%]{width:36px;height:36px}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.25rem;width:1.25rem;height:1.25rem}}@keyframes _ngcontent-%COMP%_spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes _ngcontent-%COMP%_pulse{0%{transform:scale(.8);opacity:1}to{transform:scale(2.2);opacity:0}}']})},Q={"waiting-you":"Waiting for you","in-progress":"In progress\u2026",done:"Done",paused:"Paused",error:"Error"},X={"waiting-you":"mark_unread_chat_alt","in-progress":"pending",done:"check_circle",paused:"pause_circle",error:"error"};var bt=300*1e3,kt={"waiting-you":0,"in-progress":1,done:2,paused:3,error:4};export{A,bt as b,kt as k};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {ct as vi,j as jw,S as Sg,w as zg,aL as wo,aM as Zn,bE as vt,aO as wt,cZ as fn,cT as qp,c_ as he$1,cV as Eg,bA as bC,k as Cs,bB as SC,m as hl,b5 as lT,ad as $g,o as aC,u as cC,t as sI,aW as C,bv as Lg,y as MC,N as NC,g,az as Xt$1,c$ as kn,bw as St,bG as p,aP as G,aR as Ps,aU as Ue,aV as U,W as Wi,an as ue,al as vt$1,ae as kt,r as re$1,d0 as Ia,bL as pe,bs as bl,ap as zy,bu as Ve$1,c2 as PE,aA as an,x as jg,bt as Qn,aS as K,cO as ls,bN as F,bR as Sd,cL as Cd,bP as Jy,a9 as vC,n as kg,ac as CC,bV as tv,aN as Nn,bD as ge,aQ as $a,bM as mr,d1 as lt,d2 as wt$1,d3 as I,b_ as xt,bX as Pt,a as P,aZ as Bs,aw as gl,cJ as Fg,J as JC,ax as ml,b$ as UC,a8 as Kg,c3 as kt$1,cD as Te,cz as to,aa as Cf,ab as Tf}from'./main-YYHD6X7H.js';var Xt=["tooltip"],Ut=20;var qt=new C("mat-tooltip-scroll-strategy",{providedIn:"root",factory:()=>{let n=g(pe);return ()=>kt$1(n,{scrollThrottle:Ut})}}),$t=new C("mat-tooltip-default-options",{providedIn:"root",factory:()=>({showDelay:0,hideDelay:0,touchendHideDelay:1500})});var Ht="tooltip-panel",Kt={passive:true},Jt=8,te=8,ee=24,ie=200,ne=(()=>{class n{_elementRef=g(Xt$1);_ngZone=g(G);_platform=g(p);_ariaDescriber=g($a);_focusMonitor=g(St);_dir=g(Qn);_injector=g(pe);_viewContainerRef=g(mr);_mediaMatcher=g(lt);_document=g(U);_renderer=g(Ps);_animationsDisabled=K();_defaultOptions=g($t,{optional:true});_overlayRef=null;_tooltipInstance=null;_overlayPanelClass;_portal;_position="below";_positionAtOrigin=false;_disabled=false;_tooltipClass;_viewInitialized=false;_pointerExitEventsInitialized=false;_tooltipComponent=Gt;_viewportMargin=8;_currentPosition;_cssClassPrefix="mat-mdc";_ariaDescriptionPending=false;_dirSubscribed=false;get position(){return this._position}set position(t){t!==this._position&&(this._position=t,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()));}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(t){this._positionAtOrigin=vi(t),this._detach(),this._overlayRef=null;}get disabled(){return this._disabled}set disabled(t){let e=vi(t);this._disabled!==e&&(this._disabled=e,e?this.hide(0):this._setupPointerEnterEventsIfNeeded(),this._syncAriaDescription(this.message));}get showDelay(){return this._showDelay}set showDelay(t){this._showDelay=fn(t);}_showDelay;get hideDelay(){return this._hideDelay}set hideDelay(t){this._hideDelay=fn(t),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay);}_hideDelay;touchGestures="auto";get message(){return this._message}set message(t){let e=this._message;this._message=t!=null?String(t).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage()),this._syncAriaDescription(e);}_message="";get tooltipClass(){return this._tooltipClass}set tooltipClass(t){this._tooltipClass=t,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass);}_eventCleanups=[];_touchstartTimeout=null;_destroyed=new ue;_isDestroyed=false;constructor(){let t=this._defaultOptions;t&&(this._showDelay=t.showDelay,this._hideDelay=t.hideDelay,t.position&&(this.position=t.position),t.positionAtOrigin&&(this.positionAtOrigin=t.positionAtOrigin),t.touchGestures&&(this.touchGestures=t.touchGestures),t.tooltipClass&&(this.tooltipClass=t.tooltipClass)),this._viewportMargin=Jt;}ngAfterViewInit(){this._viewInitialized=true,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(zy(this._destroyed)).subscribe(t=>{t?t==="keyboard"&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0));});}ngOnDestroy(){let t=this._elementRef.nativeElement;this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._eventCleanups.forEach(e=>e()),this._eventCleanups.length=0,this._destroyed.next(),this._destroyed.complete(),this._isDestroyed=true,this._ariaDescriber.removeDescription(t,this.message,"tooltip"),this._focusMonitor.stopMonitoring(t);}show(t=this.showDelay,e){if(this.disabled||!this.message||this._isTooltipVisible()){this._tooltipInstance?._cancelPendingAnimations();return}let i=this._createOverlay(e);this._detach(),this._portal=this._portal||new wt$1(this._tooltipComponent,this._viewContainerRef);let r=this._tooltipInstance=i.attach(this._portal).instance;r._triggerElement=this._elementRef.nativeElement,r._mouseLeaveHideDelay=this._hideDelay,r.afterHidden().pipe(zy(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),r.show(t);}hide(t=this.hideDelay){let e=this._tooltipInstance;e&&(e.isVisible()?e.hide(t):(e._cancelPendingAnimations(),this._detach()));}toggle(t){this._isTooltipVisible()?this.hide():this.show(void 0,t);}_isTooltipVisible(){return !!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(t){if(this._overlayRef){let a=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!t)&&a._origin instanceof Xt$1)return this._overlayRef;this._detach();}let e=this._injector.get(I).getAncestorScrollContainers(this._elementRef),i=`${this._cssClassPrefix}-${Ht}`,r=xt(this._injector,this.positionAtOrigin?t||this._elementRef:this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(false).withViewportMargin(this._viewportMargin).withScrollableContainers(e).withPopoverLocation("global");return r.positionChanges.pipe(zy(this._destroyed)).subscribe(a=>{this._updateCurrentPositionClass(a.connectionPair),this._tooltipInstance&&a.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0));}),this._overlayRef=Pt(this._injector,{direction:this._dir,positionStrategy:r,panelClass:this._overlayPanelClass?[...this._overlayPanelClass,i]:i,scrollStrategy:this._injector.get(qt)(),disableAnimations:this._animationsDisabled,eventPredicate:this._overlayEventPredicate}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(zy(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(zy(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(zy(this._destroyed)).subscribe(a=>{a.preventDefault(),a.stopPropagation(),this._ngZone.run(()=>this.hide(0));}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._dirSubscribed||(this._dirSubscribed=true,this._dir.change.pipe(zy(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef);})),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null;}_updatePosition(t){let e=t.getConfig().positionStrategy,i=this._getOrigin(),r=this._getOverlayPosition();e.withPositions([this._addOffset(P(P({},i.main),r.main)),this._addOffset(P(P({},i.fallback),r.fallback))]);}_addOffset(t){let e=te,i=!this._dir||this._dir.value=="ltr";return t.originY==="top"?t.offsetY=-e:t.originY==="bottom"?t.offsetY=e:t.originX==="start"?t.offsetX=i?-e:e:t.originX==="end"&&(t.offsetX=i?e:-e),t}_getOrigin(){let t=!this._dir||this._dir.value=="ltr",e=this.position,i;e=="above"||e=="below"?i={originX:"center",originY:e=="above"?"top":"bottom"}:e=="before"||e=="left"&&t||e=="right"&&!t?i={originX:"start",originY:"center"}:(e=="after"||e=="right"&&t||e=="left"&&!t)&&(i={originX:"end",originY:"center"});let{x:r,y:a}=this._invertPosition(i.originX,i.originY);return {main:i,fallback:{originX:r,originY:a}}}_getOverlayPosition(){let t=!this._dir||this._dir.value=="ltr",e=this.position,i;e=="above"?i={overlayX:"center",overlayY:"bottom"}:e=="below"?i={overlayX:"center",overlayY:"top"}:e=="before"||e=="left"&&t||e=="right"&&!t?i={overlayX:"end",overlayY:"center"}:(e=="after"||e=="right"&&t||e=="left"&&!t)&&(i={overlayX:"start",overlayY:"center"});let{x:r,y:a}=this._invertPosition(i.overlayX,i.overlayY);return {main:i,fallback:{overlayX:r,overlayY:a}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),PE(()=>{this._tooltipInstance&&this._overlayRef.updatePosition();},{injector:this._injector}));}_setTooltipClass(t){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=t instanceof Set?Array.from(t):t,this._tooltipInstance._markForCheck());}_invertPosition(t,e){return this.position==="above"||this.position==="below"?e==="top"?e="bottom":e==="bottom"&&(e="top"):t==="end"?t="start":t==="start"&&(t="end"),{x:t,y:e}}_updateCurrentPositionClass(t){let{overlayY:e,originX:i,originY:r}=t,a;if(e==="center"?this._dir&&this._dir.value==="rtl"?a=i==="end"?"left":"right":a=i==="start"?"left":"right":a=e==="bottom"&&r==="top"?"above":"below",a!==this._currentPosition){let A=this._overlayRef;if(A){let ut=`${this._cssClassPrefix}-${Ht}-`;A.removePanelClass(ut+this._currentPosition),A.addPanelClass(ut+a);}this._currentPosition=a;}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._eventCleanups.length||(this._isTouchPlatform()?this.touchGestures!=="off"&&(this._disableNativeGesturesIfNecessary(),this._addListener("touchstart",t=>{let e=t.targetTouches?.[0],i=e?{x:e.clientX,y:e.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),this._touchstartTimeout&&clearTimeout(this._touchstartTimeout);let r=500;this._touchstartTimeout=setTimeout(()=>{this._touchstartTimeout=null,this.show(void 0,i);},this._defaultOptions?.touchLongPressShowDelay??r);})):this._addListener("mouseenter",t=>{this._setupPointerExitEventsIfNeeded();let e;t.x!==void 0&&t.y!==void 0&&(e=t),this.show(void 0,e);}));}_setupPointerExitEventsIfNeeded(){if(!this._pointerExitEventsInitialized){if(this._pointerExitEventsInitialized=true,!this._isTouchPlatform())this._addListener("mouseleave",t=>{let e=t.relatedTarget;(!e||!this._overlayRef?.overlayElement.contains(e))&&this.hide();}),this._addListener("wheel",t=>{if(this._isTooltipVisible()){let e=this._document.elementFromPoint(t.clientX,t.clientY),i=this._elementRef.nativeElement;e!==i&&!i.contains(e)&&this.hide();}});else if(this.touchGestures!=="off"){this._disableNativeGesturesIfNecessary();let t=()=>{this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions?.touchendHideDelay);};this._addListener("touchend",t),this._addListener("touchcancel",t);}}}_addListener(t,e){this._eventCleanups.push(this._renderer.listen(this._elementRef.nativeElement,t,e,Kt));}_isTouchPlatform(){let t=this._defaultOptions?.detectHoverCapability;return typeof t=="function"?!t():this._platform.IOS||this._platform.ANDROID?true:this._platform.isBrowser?!!t&&this._mediaMatcher.matchMedia("(any-hover: none)").matches:false}_disableNativeGesturesIfNecessary(){let t=this.touchGestures;if(t!=="off"){let e=this._elementRef.nativeElement,i=e.style;(t==="on"||e.nodeName!=="INPUT"&&e.nodeName!=="TEXTAREA")&&(i.userSelect=i.msUserSelect=i.webkitUserSelect=i.MozUserSelect="none"),(t==="on"||!e.draggable)&&(i.webkitUserDrag="none"),i.touchAction="none",i.webkitTapHighlightColor="transparent";}}_syncAriaDescription(t){this._ariaDescriptionPending||(this._ariaDescriptionPending=true,this._ariaDescriber.removeDescription(this._elementRef.nativeElement,t,"tooltip"),this._isDestroyed||PE({write:()=>{this._ariaDescriptionPending=false,this.message&&!this.disabled&&this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip");}},{injector:this._injector}));}_overlayEventPredicate=t=>t.type==="keydown"?this._isTooltipVisible()&&t.keyCode===27&&!Ve$1(t):true;static \u0275fac=function(e){return new(e||n)};static \u0275dir=Bs({type:n,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(e,i){e&2&&zg("mat-mdc-tooltip-disabled",i.disabled);},inputs:{position:[0,"matTooltipPosition","position"],positionAtOrigin:[0,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[0,"matTooltipDisabled","disabled"],showDelay:[0,"matTooltipShowDelay","showDelay"],hideDelay:[0,"matTooltipHideDelay","hideDelay"],touchGestures:[0,"matTooltipTouchGestures","touchGestures"],message:[0,"matTooltip","message"],tooltipClass:[0,"matTooltipClass","tooltipClass"]},exportAs:["matTooltip"]})}return n})(),Gt=(()=>{class n{_changeDetectorRef=g(bl);_elementRef=g(Xt$1);_isMultiline=false;message;tooltipClass;_showTimeoutId;_hideTimeoutId;_triggerElement;_mouseLeaveHideDelay;_animationsDisabled=K();_tooltip;_closeOnInteraction=false;_isVisible=false;_onHide=new ue;_showAnimation="mat-mdc-tooltip-show";_hideAnimation="mat-mdc-tooltip-hide";show(t){this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(true),this._showTimeoutId=void 0;},t);}hide(t){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(false),this._hideTimeoutId=void 0;},t);}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null;}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0);}_markForCheck(){this._changeDetectorRef.markForCheck();}_handleMouseLeave({relatedTarget:t}){(!t||!this._triggerElement.contains(t))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(false));}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck();}_isTooltipMultiline(){let t=this._elementRef.nativeElement.getBoundingClientRect();return t.height>ee&&t.width>=ie}_handleAnimationEnd({animationName:t}){(t===this._showAnimation||t===this._hideAnimation)&&this._finalizeAnimation(t===this._showAnimation);}_cancelPendingAnimations(){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0;}_finalizeAnimation(t){t?this._closeOnInteraction=true:this.isVisible()||this._onHide.next();}_toggleVisibility(t){let e=this._tooltip.nativeElement,i=this._showAnimation,r=this._hideAnimation;if(e.classList.remove(t?r:i),e.classList.add(t?i:r),this._isVisible!==t&&(this._isVisible=t,this._changeDetectorRef.markForCheck()),t&&!this._animationsDisabled&&typeof getComputedStyle=="function"){let a=getComputedStyle(e);(a.getPropertyValue("animation-duration")==="0s"||a.getPropertyValue("animation-name")==="none")&&(this._animationsDisabled=true);}t&&this._onShow(),this._animationsDisabled&&(e.classList.add("_mat-animation-noopable"),this._finalizeAnimation(t));}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=jw({type:n,selectors:[["mat-tooltip-component"]],viewQuery:function(e,i){if(e&1&&jg(Xt,7),e&2){let r;MC(r=NC())&&(i._tooltip=r.first);}},hostAttrs:["aria-hidden","true"],hostBindings:function(e,i){e&1&&kg("mouseleave",function(a){return i._handleMouseLeave(a)});},decls:4,vars:5,consts:[["tooltip",""],[1,"mdc-tooltip","mat-mdc-tooltip",3,"animationend"],[1,"mat-mdc-tooltip-surface","mdc-tooltip__surface"]],template:function(e,i){e&1&&(gl(0,"div",1,0),Fg("animationend",function(a){return i._handleAnimationEnd(a)}),gl(2,"div",2),JC(3),ml()()),e&2&&(UC(i.tooltipClass),zg("mdc-tooltip--multiline",i._isMultiline),sI(3),Kg(i.message));},styles:[`.mat-mdc-tooltip {
|
|
1
|
+
import {ct as vi,j as jw,S as Sg,w as zg,aL as wo,aM as Zn,bE as vt,aO as wt,cZ as fn,cT as qp,c_ as he$1,cV as Eg,bA as bC,k as Cs,bB as SC,m as hl,b5 as lT,ad as $g,o as aC,u as cC,t as sI,aW as C,bv as Lg,y as MC,N as NC,g,az as Xt$1,c$ as kn,bw as St,bG as p,aP as G,aR as Ps,aU as Ue,aV as U,W as Wi,an as ue,al as vt$1,ae as kt,r as re$1,d0 as Ia,bL as pe,bs as bl,ap as zy,bu as Ve$1,c2 as PE,aA as an,x as jg,bt as Qn,aS as K,cO as ls,bN as F,bR as Sd,cL as Cd,bP as Jy,a9 as vC,n as kg,ac as CC,bV as tv,aN as Nn,bD as ge,aQ as $a,bM as mr,d1 as lt,d2 as wt$1,d3 as I,b_ as xt,bX as Pt,a as P,aZ as Bs,aw as gl,cJ as Fg,J as JC,ax as ml,b$ as UC,a8 as Kg,c3 as kt$1,cD as Te,cz as to,aa as Cf,ab as Tf}from'./main-K6RKSHKK.js';var Xt=["tooltip"],Ut=20;var qt=new C("mat-tooltip-scroll-strategy",{providedIn:"root",factory:()=>{let n=g(pe);return ()=>kt$1(n,{scrollThrottle:Ut})}}),$t=new C("mat-tooltip-default-options",{providedIn:"root",factory:()=>({showDelay:0,hideDelay:0,touchendHideDelay:1500})});var Ht="tooltip-panel",Kt={passive:true},Jt=8,te=8,ee=24,ie=200,ne=(()=>{class n{_elementRef=g(Xt$1);_ngZone=g(G);_platform=g(p);_ariaDescriber=g($a);_focusMonitor=g(St);_dir=g(Qn);_injector=g(pe);_viewContainerRef=g(mr);_mediaMatcher=g(lt);_document=g(U);_renderer=g(Ps);_animationsDisabled=K();_defaultOptions=g($t,{optional:true});_overlayRef=null;_tooltipInstance=null;_overlayPanelClass;_portal;_position="below";_positionAtOrigin=false;_disabled=false;_tooltipClass;_viewInitialized=false;_pointerExitEventsInitialized=false;_tooltipComponent=Gt;_viewportMargin=8;_currentPosition;_cssClassPrefix="mat-mdc";_ariaDescriptionPending=false;_dirSubscribed=false;get position(){return this._position}set position(t){t!==this._position&&(this._position=t,this._overlayRef&&(this._updatePosition(this._overlayRef),this._tooltipInstance?.show(0),this._overlayRef.updatePosition()));}get positionAtOrigin(){return this._positionAtOrigin}set positionAtOrigin(t){this._positionAtOrigin=vi(t),this._detach(),this._overlayRef=null;}get disabled(){return this._disabled}set disabled(t){let e=vi(t);this._disabled!==e&&(this._disabled=e,e?this.hide(0):this._setupPointerEnterEventsIfNeeded(),this._syncAriaDescription(this.message));}get showDelay(){return this._showDelay}set showDelay(t){this._showDelay=fn(t);}_showDelay;get hideDelay(){return this._hideDelay}set hideDelay(t){this._hideDelay=fn(t),this._tooltipInstance&&(this._tooltipInstance._mouseLeaveHideDelay=this._hideDelay);}_hideDelay;touchGestures="auto";get message(){return this._message}set message(t){let e=this._message;this._message=t!=null?String(t).trim():"",!this._message&&this._isTooltipVisible()?this.hide(0):(this._setupPointerEnterEventsIfNeeded(),this._updateTooltipMessage()),this._syncAriaDescription(e);}_message="";get tooltipClass(){return this._tooltipClass}set tooltipClass(t){this._tooltipClass=t,this._tooltipInstance&&this._setTooltipClass(this._tooltipClass);}_eventCleanups=[];_touchstartTimeout=null;_destroyed=new ue;_isDestroyed=false;constructor(){let t=this._defaultOptions;t&&(this._showDelay=t.showDelay,this._hideDelay=t.hideDelay,t.position&&(this.position=t.position),t.positionAtOrigin&&(this.positionAtOrigin=t.positionAtOrigin),t.touchGestures&&(this.touchGestures=t.touchGestures),t.tooltipClass&&(this.tooltipClass=t.tooltipClass)),this._viewportMargin=Jt;}ngAfterViewInit(){this._viewInitialized=true,this._setupPointerEnterEventsIfNeeded(),this._focusMonitor.monitor(this._elementRef).pipe(zy(this._destroyed)).subscribe(t=>{t?t==="keyboard"&&this._ngZone.run(()=>this.show()):this._ngZone.run(()=>this.hide(0));});}ngOnDestroy(){let t=this._elementRef.nativeElement;this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this._overlayRef&&(this._overlayRef.dispose(),this._tooltipInstance=null),this._eventCleanups.forEach(e=>e()),this._eventCleanups.length=0,this._destroyed.next(),this._destroyed.complete(),this._isDestroyed=true,this._ariaDescriber.removeDescription(t,this.message,"tooltip"),this._focusMonitor.stopMonitoring(t);}show(t=this.showDelay,e){if(this.disabled||!this.message||this._isTooltipVisible()){this._tooltipInstance?._cancelPendingAnimations();return}let i=this._createOverlay(e);this._detach(),this._portal=this._portal||new wt$1(this._tooltipComponent,this._viewContainerRef);let r=this._tooltipInstance=i.attach(this._portal).instance;r._triggerElement=this._elementRef.nativeElement,r._mouseLeaveHideDelay=this._hideDelay,r.afterHidden().pipe(zy(this._destroyed)).subscribe(()=>this._detach()),this._setTooltipClass(this._tooltipClass),this._updateTooltipMessage(),r.show(t);}hide(t=this.hideDelay){let e=this._tooltipInstance;e&&(e.isVisible()?e.hide(t):(e._cancelPendingAnimations(),this._detach()));}toggle(t){this._isTooltipVisible()?this.hide():this.show(void 0,t);}_isTooltipVisible(){return !!this._tooltipInstance&&this._tooltipInstance.isVisible()}_createOverlay(t){if(this._overlayRef){let a=this._overlayRef.getConfig().positionStrategy;if((!this.positionAtOrigin||!t)&&a._origin instanceof Xt$1)return this._overlayRef;this._detach();}let e=this._injector.get(I).getAncestorScrollContainers(this._elementRef),i=`${this._cssClassPrefix}-${Ht}`,r=xt(this._injector,this.positionAtOrigin?t||this._elementRef:this._elementRef).withTransformOriginOn(`.${this._cssClassPrefix}-tooltip`).withFlexibleDimensions(false).withViewportMargin(this._viewportMargin).withScrollableContainers(e).withPopoverLocation("global");return r.positionChanges.pipe(zy(this._destroyed)).subscribe(a=>{this._updateCurrentPositionClass(a.connectionPair),this._tooltipInstance&&a.scrollableViewProperties.isOverlayClipped&&this._tooltipInstance.isVisible()&&this._ngZone.run(()=>this.hide(0));}),this._overlayRef=Pt(this._injector,{direction:this._dir,positionStrategy:r,panelClass:this._overlayPanelClass?[...this._overlayPanelClass,i]:i,scrollStrategy:this._injector.get(qt)(),disableAnimations:this._animationsDisabled,eventPredicate:this._overlayEventPredicate}),this._updatePosition(this._overlayRef),this._overlayRef.detachments().pipe(zy(this._destroyed)).subscribe(()=>this._detach()),this._overlayRef.outsidePointerEvents().pipe(zy(this._destroyed)).subscribe(()=>this._tooltipInstance?._handleBodyInteraction()),this._overlayRef.keydownEvents().pipe(zy(this._destroyed)).subscribe(a=>{a.preventDefault(),a.stopPropagation(),this._ngZone.run(()=>this.hide(0));}),this._defaultOptions?.disableTooltipInteractivity&&this._overlayRef.addPanelClass(`${this._cssClassPrefix}-tooltip-panel-non-interactive`),this._dirSubscribed||(this._dirSubscribed=true,this._dir.change.pipe(zy(this._destroyed)).subscribe(()=>{this._overlayRef&&this._updatePosition(this._overlayRef);})),this._overlayRef}_detach(){this._overlayRef&&this._overlayRef.hasAttached()&&this._overlayRef.detach(),this._tooltipInstance=null;}_updatePosition(t){let e=t.getConfig().positionStrategy,i=this._getOrigin(),r=this._getOverlayPosition();e.withPositions([this._addOffset(P(P({},i.main),r.main)),this._addOffset(P(P({},i.fallback),r.fallback))]);}_addOffset(t){let e=te,i=!this._dir||this._dir.value=="ltr";return t.originY==="top"?t.offsetY=-e:t.originY==="bottom"?t.offsetY=e:t.originX==="start"?t.offsetX=i?-e:e:t.originX==="end"&&(t.offsetX=i?e:-e),t}_getOrigin(){let t=!this._dir||this._dir.value=="ltr",e=this.position,i;e=="above"||e=="below"?i={originX:"center",originY:e=="above"?"top":"bottom"}:e=="before"||e=="left"&&t||e=="right"&&!t?i={originX:"start",originY:"center"}:(e=="after"||e=="right"&&t||e=="left"&&!t)&&(i={originX:"end",originY:"center"});let{x:r,y:a}=this._invertPosition(i.originX,i.originY);return {main:i,fallback:{originX:r,originY:a}}}_getOverlayPosition(){let t=!this._dir||this._dir.value=="ltr",e=this.position,i;e=="above"?i={overlayX:"center",overlayY:"bottom"}:e=="below"?i={overlayX:"center",overlayY:"top"}:e=="before"||e=="left"&&t||e=="right"&&!t?i={overlayX:"end",overlayY:"center"}:(e=="after"||e=="right"&&t||e=="left"&&!t)&&(i={overlayX:"start",overlayY:"center"});let{x:r,y:a}=this._invertPosition(i.overlayX,i.overlayY);return {main:i,fallback:{overlayX:r,overlayY:a}}}_updateTooltipMessage(){this._tooltipInstance&&(this._tooltipInstance.message=this.message,this._tooltipInstance._markForCheck(),PE(()=>{this._tooltipInstance&&this._overlayRef.updatePosition();},{injector:this._injector}));}_setTooltipClass(t){this._tooltipInstance&&(this._tooltipInstance.tooltipClass=t instanceof Set?Array.from(t):t,this._tooltipInstance._markForCheck());}_invertPosition(t,e){return this.position==="above"||this.position==="below"?e==="top"?e="bottom":e==="bottom"&&(e="top"):t==="end"?t="start":t==="start"&&(t="end"),{x:t,y:e}}_updateCurrentPositionClass(t){let{overlayY:e,originX:i,originY:r}=t,a;if(e==="center"?this._dir&&this._dir.value==="rtl"?a=i==="end"?"left":"right":a=i==="start"?"left":"right":a=e==="bottom"&&r==="top"?"above":"below",a!==this._currentPosition){let A=this._overlayRef;if(A){let ut=`${this._cssClassPrefix}-${Ht}-`;A.removePanelClass(ut+this._currentPosition),A.addPanelClass(ut+a);}this._currentPosition=a;}}_setupPointerEnterEventsIfNeeded(){this._disabled||!this.message||!this._viewInitialized||this._eventCleanups.length||(this._isTouchPlatform()?this.touchGestures!=="off"&&(this._disableNativeGesturesIfNecessary(),this._addListener("touchstart",t=>{let e=t.targetTouches?.[0],i=e?{x:e.clientX,y:e.clientY}:void 0;this._setupPointerExitEventsIfNeeded(),this._touchstartTimeout&&clearTimeout(this._touchstartTimeout);let r=500;this._touchstartTimeout=setTimeout(()=>{this._touchstartTimeout=null,this.show(void 0,i);},this._defaultOptions?.touchLongPressShowDelay??r);})):this._addListener("mouseenter",t=>{this._setupPointerExitEventsIfNeeded();let e;t.x!==void 0&&t.y!==void 0&&(e=t),this.show(void 0,e);}));}_setupPointerExitEventsIfNeeded(){if(!this._pointerExitEventsInitialized){if(this._pointerExitEventsInitialized=true,!this._isTouchPlatform())this._addListener("mouseleave",t=>{let e=t.relatedTarget;(!e||!this._overlayRef?.overlayElement.contains(e))&&this.hide();}),this._addListener("wheel",t=>{if(this._isTooltipVisible()){let e=this._document.elementFromPoint(t.clientX,t.clientY),i=this._elementRef.nativeElement;e!==i&&!i.contains(e)&&this.hide();}});else if(this.touchGestures!=="off"){this._disableNativeGesturesIfNecessary();let t=()=>{this._touchstartTimeout&&clearTimeout(this._touchstartTimeout),this.hide(this._defaultOptions?.touchendHideDelay);};this._addListener("touchend",t),this._addListener("touchcancel",t);}}}_addListener(t,e){this._eventCleanups.push(this._renderer.listen(this._elementRef.nativeElement,t,e,Kt));}_isTouchPlatform(){let t=this._defaultOptions?.detectHoverCapability;return typeof t=="function"?!t():this._platform.IOS||this._platform.ANDROID?true:this._platform.isBrowser?!!t&&this._mediaMatcher.matchMedia("(any-hover: none)").matches:false}_disableNativeGesturesIfNecessary(){let t=this.touchGestures;if(t!=="off"){let e=this._elementRef.nativeElement,i=e.style;(t==="on"||e.nodeName!=="INPUT"&&e.nodeName!=="TEXTAREA")&&(i.userSelect=i.msUserSelect=i.webkitUserSelect=i.MozUserSelect="none"),(t==="on"||!e.draggable)&&(i.webkitUserDrag="none"),i.touchAction="none",i.webkitTapHighlightColor="transparent";}}_syncAriaDescription(t){this._ariaDescriptionPending||(this._ariaDescriptionPending=true,this._ariaDescriber.removeDescription(this._elementRef.nativeElement,t,"tooltip"),this._isDestroyed||PE({write:()=>{this._ariaDescriptionPending=false,this.message&&!this.disabled&&this._ariaDescriber.describe(this._elementRef.nativeElement,this.message,"tooltip");}},{injector:this._injector}));}_overlayEventPredicate=t=>t.type==="keydown"?this._isTooltipVisible()&&t.keyCode===27&&!Ve$1(t):true;static \u0275fac=function(e){return new(e||n)};static \u0275dir=Bs({type:n,selectors:[["","matTooltip",""]],hostAttrs:[1,"mat-mdc-tooltip-trigger"],hostVars:2,hostBindings:function(e,i){e&2&&zg("mat-mdc-tooltip-disabled",i.disabled);},inputs:{position:[0,"matTooltipPosition","position"],positionAtOrigin:[0,"matTooltipPositionAtOrigin","positionAtOrigin"],disabled:[0,"matTooltipDisabled","disabled"],showDelay:[0,"matTooltipShowDelay","showDelay"],hideDelay:[0,"matTooltipHideDelay","hideDelay"],touchGestures:[0,"matTooltipTouchGestures","touchGestures"],message:[0,"matTooltip","message"],tooltipClass:[0,"matTooltipClass","tooltipClass"]},exportAs:["matTooltip"]})}return n})(),Gt=(()=>{class n{_changeDetectorRef=g(bl);_elementRef=g(Xt$1);_isMultiline=false;message;tooltipClass;_showTimeoutId;_hideTimeoutId;_triggerElement;_mouseLeaveHideDelay;_animationsDisabled=K();_tooltip;_closeOnInteraction=false;_isVisible=false;_onHide=new ue;_showAnimation="mat-mdc-tooltip-show";_hideAnimation="mat-mdc-tooltip-hide";show(t){this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=setTimeout(()=>{this._toggleVisibility(true),this._showTimeoutId=void 0;},t);}hide(t){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId=setTimeout(()=>{this._toggleVisibility(false),this._hideTimeoutId=void 0;},t);}afterHidden(){return this._onHide}isVisible(){return this._isVisible}ngOnDestroy(){this._cancelPendingAnimations(),this._onHide.complete(),this._triggerElement=null;}_handleBodyInteraction(){this._closeOnInteraction&&this.hide(0);}_markForCheck(){this._changeDetectorRef.markForCheck();}_handleMouseLeave({relatedTarget:t}){(!t||!this._triggerElement.contains(t))&&(this.isVisible()?this.hide(this._mouseLeaveHideDelay):this._finalizeAnimation(false));}_onShow(){this._isMultiline=this._isTooltipMultiline(),this._markForCheck();}_isTooltipMultiline(){let t=this._elementRef.nativeElement.getBoundingClientRect();return t.height>ee&&t.width>=ie}_handleAnimationEnd({animationName:t}){(t===this._showAnimation||t===this._hideAnimation)&&this._finalizeAnimation(t===this._showAnimation);}_cancelPendingAnimations(){this._showTimeoutId!=null&&clearTimeout(this._showTimeoutId),this._hideTimeoutId!=null&&clearTimeout(this._hideTimeoutId),this._showTimeoutId=this._hideTimeoutId=void 0;}_finalizeAnimation(t){t?this._closeOnInteraction=true:this.isVisible()||this._onHide.next();}_toggleVisibility(t){let e=this._tooltip.nativeElement,i=this._showAnimation,r=this._hideAnimation;if(e.classList.remove(t?r:i),e.classList.add(t?i:r),this._isVisible!==t&&(this._isVisible=t,this._changeDetectorRef.markForCheck()),t&&!this._animationsDisabled&&typeof getComputedStyle=="function"){let a=getComputedStyle(e);(a.getPropertyValue("animation-duration")==="0s"||a.getPropertyValue("animation-name")==="none")&&(this._animationsDisabled=true);}t&&this._onShow(),this._animationsDisabled&&(e.classList.add("_mat-animation-noopable"),this._finalizeAnimation(t));}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=jw({type:n,selectors:[["mat-tooltip-component"]],viewQuery:function(e,i){if(e&1&&jg(Xt,7),e&2){let r;MC(r=NC())&&(i._tooltip=r.first);}},hostAttrs:["aria-hidden","true"],hostBindings:function(e,i){e&1&&kg("mouseleave",function(a){return i._handleMouseLeave(a)});},decls:4,vars:5,consts:[["tooltip",""],[1,"mdc-tooltip","mat-mdc-tooltip",3,"animationend"],[1,"mat-mdc-tooltip-surface","mdc-tooltip__surface"]],template:function(e,i){e&1&&(gl(0,"div",1,0),Fg("animationend",function(a){return i._handleAnimationEnd(a)}),gl(2,"div",2),JC(3),ml()()),e&2&&(UC(i.tooltipClass),zg("mdc-tooltip--multiline",i._isMultiline),sI(3),Kg(i.message));},styles:[`.mat-mdc-tooltip {
|
|
2
2
|
position: relative;
|
|
3
3
|
transform: scale(0);
|
|
4
4
|
display: inline-flex;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {l}from'./chunk-DIhIuMRR.js';import {g,C as Ce,ao as V,G,d5 as N,W as Wi,b as U,j as jw,k as Cs,n as kg,c9 as Pf,M as Mg,m as hl,J as JC,ck as Lf,o as aC,a3 as ZI,t as sI,u as cC,_ as _g,a6 as QI,d6 as ue$1,bU as Fd,K as x,ac as CC,a5 as Dl,a9 as vC,a8 as Kg,w as zg,d7 as Pn,aa as Cf,ab as Tf,q as dC,v as fC}from'./main-K6RKSHKK.js';import {o as z,k as _t,b as _e$1,n as ni,J as Jn,Q as Qn,e as ei,Y as Ye,A as At,Z as Zn,l as Xn,E as En,p as An}from'./chunk-BhdMedPO.js';import'./chunk-Bkwb10Tz.js';import'./chunk-D8Bz7q-C.js';import'./chunk-BEaYQhbI.js';var M=class e{api=g(ue$1);isLoading=Wi(false);result=Wi(null);errorMessage=Wi(null);invoke(t,o,a,s){return this.isLoading.set(true),this.result.set(null),this.errorMessage.set(null),this.api.invoke({namespaceId:t,userId:o||void 0,toolName:a,payload:s||void 0}).pipe(Fd({next:f=>{this.result.set(f),this.isLoading.set(false);},error:f=>{this.errorMessage.set(ne(f)),this.isLoading.set(false);}}))}reset(){this.result.set(null),this.errorMessage.set(null);}static \u0275fac=function(o){return new(o||e)};static \u0275prov=x({token:e,factory:e.\u0275fac,providedIn:"root"})};function ne(e){if(e instanceof Pn){let t=e.error;return t&&typeof t=="object"&&"message"in t&&typeof t.message=="string"?t.message:typeof t=="string"&&t.trim().length>0?t:e.statusText||`HTTP ${e.status}`}return e instanceof Error?e.message:"Unknown error"}var ie=(e,t)=>t.id;function re(e,t){e&1&&JC(0," Execute any registered tool directly \u2014 bypasses the normal agent-run pipeline. Restricted to super-admins. ");}function ae(e,t){e&1&&JC(0," Execute a registered tool directly in this namespace \u2014 bypasses the normal agent-run pipeline. ");}function le(e,t){e&1&&(Cs(0,"p",17),JC(1,"Loading namespaces\u2026"),hl());}function se(e,t){if(e&1&&(Cs(0,"option",27),JC(1),hl()),e&2){let o=t.$implicit;_g("value",o.id),sI(),Kg(o.name);}}function ce(e,t){if(e&1&&(Cs(0,"select",25)(1,"option",26),JC(2,"Select a namespace"),hl(),dC(3,se,2,2,"option",27,ie),hl(),ZI()),e&2){let o=CC(2);QI(),sI(3),fC(o.namespaces());}}function de(e,t){if(e&1&&aC(0,le,2,0,"p",17)(1,ce,5,0,"select",25),e&2){let o=CC();cC(o.namespacesLoading()?0:1);}}function me(e,t){if(e&1&&(Cs(0,"p",11),JC(1),hl()),e&2){let o=CC();sI(),Dl(" ",o.namespaceName()??o.namespaceId," ");}}function pe(e,t){e&1&&JC(0," Running\u2026 ");}function _e(e,t){e&1&&JC(0," Run tool ");}function ue(e,t){if(e&1){let o=vC();Cs(0,"button",28),kg("click",function(){Cf(o);let s=CC();return Tf(s.reset())}),JC(1,"Clear result"),hl();}}function fe(e,t){e&1&&(Cs(0,"section",23)(1,"h2",29),JC(2,"Error"),hl(),Cs(3,"pre",30),JC(4),hl()()),e&2&&(sI(4),Kg(t));}function ve(e,t){e&1&&(Cs(0,"h3",34),JC(1,"Metadata"),hl(),Cs(2,"pre",30),JC(3),hl()),e&2&&(sI(3),Kg(t));}function ge(e,t){if(e&1&&(Cs(0,"dt",36),JC(1,"Type"),hl(),Cs(2,"dd",37),JC(3),hl()),e&2){let o=CC(2);sI(3),Kg(o.errorType);}}function ke(e,t){if(e&1&&(Cs(0,"dt",36),JC(1,"Message"),hl(),Cs(2,"dd",38),JC(3),hl()),e&2){let o=CC(2);sI(3),Kg(o.errorMessage);}}function be(e,t){if(e&1&&(Cs(0,"h3",34),JC(1,"Tool error details"),hl(),Cs(2,"dl",35),aC(3,ge,4,1),aC(4,ke,4,1),hl()),e&2){let o=CC();sI(3),cC(o.errorType?3:-1),sI(),cC(o.errorMessage?4:-1);}}function xe(e,t){if(e&1&&(Cs(0,"section",31)(1,"header",32)(2,"h2",29),JC(3),hl(),Cs(4,"span",33),JC(5),hl()(),Cs(6,"h3",34),JC(7,"Output"),hl(),Cs(8,"pre",30),JC(9),hl(),aC(10,ve,4,1),aC(11,be,5,2),hl()),e&2){let o,a=t,s=CC();zg("tool-invoke__result--failure",!a.success),sI(3),Dl("Result \u2014 ",a.toolName),sI(),zg("tool-invoke__badge--success",a.success)("tool-invoke__badge--failure",!a.success),sI(),Dl(" ",a.success?"Success":"Tool error"," "),sI(4),Kg(a.output),sI(),cC((o=s.formatMetadata(a.metadata))?10:-1,o),sI(),cC(a.errorType||a.errorMessage?11:-1);}}var te=class e{destroyRef=g(Ce);route=g(V);router=g(G);namespaceController=g(N);userState=g(l);state=g(M);namespaceId=this.route.snapshot.params.namespaceId;isPlatformMode=!this.namespaceId;namespaces=Wi([]);namespacesLoading=Wi(true);namespaceName=Wi(null);form=new z({namespaceId:new _t("",{nonNullable:true,validators:[_e$1.required]}),userId:new _t("",{nonNullable:true}),toolName:new _t("",{nonNullable:true,validators:[_e$1.required]}),payload:new _t("",{nonNullable:true})});ngOnInit(){let t=this.userState.currentUser()?.id;t?this.form.controls.userId.patchValue(t):this.userState.loadMe().pipe(U(this.destroyRef)).subscribe({next:o=>{o.id&&this.form.controls.userId.patchValue(o.id);}}),this.isPlatformMode?this.namespaceController.listAllNamespace().pipe(U(this.destroyRef)).subscribe({next:o=>{this.namespaces.set(o.map(a=>({id:a.id,name:a.name}))),this.namespacesLoading.set(false);},error:()=>this.namespacesLoading.set(false)}):(this.form.controls.namespaceId.patchValue(this.namespaceId),this.namespacesLoading.set(false),this.namespaceController.getByIdNamespace(this.namespaceId).pipe(U(this.destroyRef)).subscribe({next:o=>this.namespaceName.set(o.name),error:()=>this.namespaceName.set(this.namespaceId)}));}submit(){if(this.form.invalid||this.state.isLoading())return;let{namespaceId:t,userId:o,toolName:a,payload:s}=this.form.getRawValue();this.state.invoke(t,o.trim()||void 0,a.trim(),s.trim()||void 0).pipe(U(this.destroyRef)).subscribe();}reset(){this.state.reset();}formatMetadata(t){return !t||Object.keys(t).length===0?null:JSON.stringify(t,null,2)}back(){this.isPlatformMode?this.router.navigate(["/agentos","admin"]):this.router.navigate(["/agentos",this.namespaceId,"agent-configs"]);}static \u0275fac=function(o){return new(o||e)};static \u0275cmp=jw({type:e,selectors:[["agentos-tool-invoke"]],decls:46,vars:8,consts:[[1,"tool-invoke"],[1,"tool-invoke__header"],["type","button",1,"tool-invoke__back",3,"click"],["width","16","height","16","viewBox","0 0 24 24","fill","none","aria-hidden","true"],["d","M15 18l-6-6 6-6","stroke","currentColor","stroke-width","2","stroke-linecap","round","stroke-linejoin","round"],[1,"tool-invoke__title"],[1,"tool-invoke__subtitle"],[1,"tool-invoke__form",3,"ngSubmit","formGroup"],[1,"tool-invoke__field"],["for","ti-namespace",1,"tool-invoke__label"],[1,"tool-invoke__required"],["id","ti-namespace",1,"tool-invoke__namespace-static"],["for","ti-user",1,"tool-invoke__label"],[1,"tool-invoke__optional"],["id","ti-user","type","text","formControlName","userId","placeholder","UUID of the user \u2014 adds user-scoped overlay layers","autocomplete","off",1,"tool-invoke__input"],["for","ti-tool",1,"tool-invoke__label"],["id","ti-tool","type","text","formControlName","toolName","placeholder","e.g. MY_FILES__listFiles","autocomplete","off","spellcheck","false",1,"tool-invoke__input","tool-invoke__input--mono"],[1,"tool-invoke__hint"],["for","ti-payload",1,"tool-invoke__label"],["id","ti-payload","formControlName","payload","rows","6","placeholder",'JSON arguments for the tool, e.g. {"path": "/some/dir"}\\nLeave empty for tools with no input.',"spellcheck","false",1,"tool-invoke__textarea","tool-invoke__input--mono"],[1,"tool-invoke__actions"],["type","submit",1,"tool-invoke__submit",3,"disabled"],["type","button",1,"tool-invoke__reset"],[1,"tool-invoke__result","tool-invoke__result--error"],[1,"tool-invoke__result",3,"tool-invoke__result--failure"],["id","ti-namespace","formControlName","namespaceId",1,"tool-invoke__select"],["value","","disabled",""],[3,"value"],["type","button",1,"tool-invoke__reset",3,"click"],[1,"tool-invoke__result-title"],[1,"tool-invoke__output"],[1,"tool-invoke__result"],[1,"tool-invoke__result-header"],[1,"tool-invoke__badge"],[1,"tool-invoke__section-label"],[1,"tool-invoke__dl"],[1,"tool-invoke__dt"],[1,"tool-invoke__dd","tool-invoke__dd--mono"],[1,"tool-invoke__dd"]],template:function(o,a){if(o&1&&(Cs(0,"div",0)(1,"header",1)(2,"button",2),kg("click",function(){return a.back()}),Pf(),Cs(3,"svg",3),Mg(4,"path",4),hl(),JC(5," Back "),hl(),Lf(),Cs(6,"h1",5),JC(7,"Tool invoke"),hl(),Cs(8,"p",6),aC(9,re,1,0)(10,ae,1,0),hl()(),Cs(11,"form",7),kg("ngSubmit",function(){return a.submit()}),Cs(12,"div",8)(13,"label",9),JC(14,"Namespace "),Cs(15,"span",10),JC(16,"*"),hl()(),aC(17,de,2,1)(18,me,2,1,"p",11),hl(),Cs(19,"div",8)(20,"label",12),JC(21,"User ID "),Cs(22,"span",13),JC(23,"(optional)"),hl()(),Mg(24,"input",14),ZI(),hl(),Cs(25,"div",8)(26,"label",15),JC(27,"Tool name "),Cs(28,"span",10),JC(29,"*"),hl()(),Mg(30,"input",16),ZI(),Cs(31,"p",17),JC(32," Exact tool name as returned by the agent definition inspect page. When not found, the error response lists all available tools for the selected namespace. "),hl()(),Cs(33,"div",8)(34,"label",18),JC(35,"Payload "),Cs(36,"span",13),JC(37,"(optional)"),hl()(),Mg(38,"textarea",19),ZI(),hl(),Cs(39,"div",20)(40,"button",21),aC(41,pe,1,0)(42,_e,1,0),hl(),aC(43,ue,2,0,"button",22),hl()(),aC(44,fe,5,1,"section",23),aC(45,xe,12,11,"section",24),hl()),o&2){let s,f;sI(9),cC(a.isPlatformMode?9:10),sI(2),_g("formGroup",a.form),sI(6),cC(a.isPlatformMode?17:18),sI(7),QI(),sI(6),QI(),sI(8),QI(),sI(2),_g("disabled",a.form.invalid||a.state.isLoading()),sI(),cC(a.state.isLoading()?41:42),sI(2),cC(a.state.result()||a.state.errorMessage()?43:-1),sI(),cC((s=a.state.errorMessage())?44:-1,s),sI(),cC((f=a.state.result())?45:-1,f);}},dependencies:[ni,Jn,Qn,ei,Ye,At,Zn,Xn,En,An],styles:[".tool-invoke[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:720px;margin:0 auto;padding:2rem 1rem}.tool-invoke__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.tool-invoke__back[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.3rem;padding:0;border:none;background:transparent;color:var(--color-text-secondary, #6e6e73);font-size:.875rem;font-family:inherit;cursor:pointer;align-self:flex-start}.tool-invoke__back[_ngcontent-%COMP%]:hover{color:var(--color-text, #1d1d1f)}.tool-invoke__namespace-static[_ngcontent-%COMP%]{margin:0;padding:.5rem .75rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .12));background:var(--color-surface-muted, rgba(0, 0, 0, .04));color:var(--color-text, #1d1d1f);font-size:.9375rem}.tool-invoke__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-text, #1d1d1f);letter-spacing:-.02em}.tool-invoke__subtitle[_ngcontent-%COMP%]{margin:0;font-size:.875rem;color:var(--color-text-secondary, #6e6e73);line-height:1.5}.tool-invoke__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.25rem;padding:1.5rem;border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:12px}.tool-invoke__field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.4rem}.tool-invoke__label[_ngcontent-%COMP%]{font-size:.8125rem;font-weight:500;color:var(--color-text-secondary, #6e6e73)}.tool-invoke__required[_ngcontent-%COMP%]{color:var(--color-error, #ff3b30);margin-left:.1em}.tool-invoke__optional[_ngcontent-%COMP%]{font-weight:400;color:var(--color-text-secondary, #6e6e73);font-size:.75rem}.tool-invoke__hint[_ngcontent-%COMP%]{margin:0;font-size:.75rem;color:var(--color-text-secondary, #6e6e73);line-height:1.4}.tool-invoke__input[_ngcontent-%COMP%], .tool-invoke__select[_ngcontent-%COMP%], .tool-invoke__textarea[_ngcontent-%COMP%]{padding:.5rem .75rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .12));background:var(--color-surface, #fff);color:var(--color-text, #1d1d1f);font-size:.9375rem;font-family:inherit;transition:border-color .15s ease}.tool-invoke__input[_ngcontent-%COMP%]:focus, .tool-invoke__select[_ngcontent-%COMP%]:focus, .tool-invoke__textarea[_ngcontent-%COMP%]:focus{outline:none;border-color:var(--color-primary, #007aff)}.tool-invoke__input--mono[_ngcontent-%COMP%], .tool-invoke__select--mono[_ngcontent-%COMP%], .tool-invoke__textarea--mono[_ngcontent-%COMP%]{font-family:monospace;font-size:.875rem}.tool-invoke__textarea[_ngcontent-%COMP%]{resize:vertical;min-height:120px}.tool-invoke__select[_ngcontent-%COMP%]{cursor:pointer}.tool-invoke__actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;padding-top:.25rem}.tool-invoke__submit[_ngcontent-%COMP%]{padding:.55rem 1.25rem;border-radius:8px;border:none;background:var(--color-primary, #007aff);color:#fff;font-size:.9375rem;font-weight:500;font-family:inherit;cursor:pointer;transition:opacity .15s ease}.tool-invoke__submit[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed}.tool-invoke__submit[_ngcontent-%COMP%]:not(:disabled):hover{opacity:.88}.tool-invoke__reset[_ngcontent-%COMP%]{padding:.55rem 1rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .12));background:transparent;color:var(--color-text-secondary, #6e6e73);font-size:.875rem;font-family:inherit;cursor:pointer}.tool-invoke__reset[_ngcontent-%COMP%]:hover{background:var(--color-surface-hover, rgba(0, 0, 0, .04))}.tool-invoke__result[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.75rem;padding:1.25rem;border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:12px}.tool-invoke__result--error[_ngcontent-%COMP%]{border-color:var(--color-error, #ff3b30);background:var(--color-error-bg, #fff5f5)}.tool-invoke__result--failure[_ngcontent-%COMP%]{border-color:var(--color-warning, #ff9500);background:var(--color-warning-bg, #fffaf0)}.tool-invoke__result-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.tool-invoke__result-title[_ngcontent-%COMP%]{margin:0;font-size:.9375rem;font-weight:600;color:var(--color-text, #1d1d1f)}.tool-invoke__badge[_ngcontent-%COMP%]{display:inline-block;padding:.2em .6em;border-radius:4px;font-size:.75rem;font-weight:500}.tool-invoke__badge--success[_ngcontent-%COMP%]{background:var(--color-success-bg, #e3f5e1);color:var(--color-success, #34c759)}.tool-invoke__badge--failure[_ngcontent-%COMP%]{background:var(--color-warning-bg, #fff3cd);color:var(--color-warning, #ff9500)}.tool-invoke__section-label[_ngcontent-%COMP%]{margin:.5rem 0 0;font-size:.8125rem;font-weight:500;color:var(--color-text-secondary, #6e6e73);text-transform:uppercase;letter-spacing:.04em}.tool-invoke__output[_ngcontent-%COMP%]{margin:0;padding:.875rem 1rem;border-radius:6px;background:var(--color-surface-muted, rgba(0, 0, 0, .04));font-size:.875rem;font-family:monospace;color:var(--color-text, #1d1d1f);white-space:pre-wrap;word-break:break-word;line-height:1.6;max-height:500px;overflow-y:auto}.tool-invoke__dl[_ngcontent-%COMP%]{display:grid;grid-template-columns:max-content 1fr;gap:.4rem 1rem;margin:0}.tool-invoke__dt[_ngcontent-%COMP%]{font-size:.8125rem;font-weight:500;color:var(--color-text-secondary, #6e6e73);align-self:start}.tool-invoke__dd[_ngcontent-%COMP%]{margin:0;font-size:.875rem;color:var(--color-text, #1d1d1f);word-break:break-word}.tool-invoke__dd--mono[_ngcontent-%COMP%]{font-family:monospace}"]})};export{te as ToolInvokeComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {O}from'./chunk-
|
|
1
|
+
import {O}from'./chunk-DHF4GvxN.js';import {R}from'./chunk-BiwhEkuA.js';import {g,G,C as Ce,aJ as Tr,W as Wi,bS as Da,r as re,b as U,j as jw,aK as Lb,k as Cs,bf as gT,n as kg,J as JC,m as hl,af as wg,A as AC,_ as _g,bg as yT,ah as dT,o as aC,ac as CC,u as cC,a9 as vC,aa as Cf,ab as Tf,ag as ET}from'./main-K6RKSHKK.js';import'./chunk-DIhIuMRR.js';import {W as Wn}from'./chunk-D8Bz7q-C.js';import'./chunk-BEaYQhbI.js';import'./chunk-BhdMedPO.js';import'./chunk-B55TXBfo.js';import'./chunk-Bkwb10Tz.js';var k=()=>[];function V(i,t){if(i&1){let e=vC();Cs(0,"agentos-auth-setting-item",4),kg("editRequested",function(n){Cf(e);let p=CC(2);return Tf(p.onEdit(n))})("deleteRequested",function(n){Cf(e);let p=CC(2);return Tf(p.onDelete(n))}),hl();}i&2&&_g("config",t)("showBadge",false);}function F(i,t){if(i&1&&aC(0,V,1,2,"agentos-auth-setting-item",3),i&2){let e,o=t.$implicit,n=CC();cC((e=n.resolveSetting(o.id))?0:-1,e);}}var M=class i{router=g(G);destroyRef=g(Ce);state=g(R);refresh$=new Tr(void 0);isLoading=Wi(true);settings$=this.refresh$.pipe(Da(()=>(this.isLoading.set(true),this.state.loadPlatformSettings())));settingItems$=this.settings$.pipe(re(t=>t.map(e=>({id:e.id??"",name:e.name,description:e.authType}))));settingsById=new Map;constructor(){this.settings$.pipe(U(this.destroyRef)).subscribe({next:t=>{this.settingsById=new Map(t.map(e=>[e.id??"",e])),this.isLoading.set(false);},error:()=>this.isLoading.set(false)});}goBack(){this.router.navigate(["/agentos","admin"]);}openCreateForm(){this.router.navigate(["/agentos","admin","auth-settings","new"]);}onEdit(t){t.id&&this.router.navigate(["/agentos","admin","auth-settings",t.id,"edit"]);}onDelete(t){t.id&&this.state.delete(t.id,"platform").pipe(U(this.destroyRef)).subscribe(()=>this.refresh$.next());}resolveSetting(t){return this.settingsById.get(t)??null}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=jw({type:i,selectors:[["agentos-platform-auth-settings"]],decls:6,vars:7,consts:[["authSettingItemTpl",""],["title","Platform Auth Settings","emptyMessage","No platform auth settings defined yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","loading","showCreate","itemTemplate"],["toolbar-start","","type","button",1,"platform-auth-settings__back",3,"click"],["scope","namespace",3,"config","showBadge"],["scope","namespace",3,"editRequested","deleteRequested","config","showBadge"]],template:function(e,o){if(e&1&&(Cs(0,"ds-entity-list",1),gT(1,"async"),kg("createRequested",function(){return o.openCreateForm()}),Cs(2,"button",2),kg("click",function(){return o.goBack()}),JC(3,"\u2190 Admin"),hl()(),wg(4,F,1,1,"ng-template",null,0,ET)),e&2){let n=AC(5);_g("items",yT(1,4,o.settingItems$)??dT(6,k))("loading",o.isLoading())("showCreate",true)("itemTemplate",n);}},dependencies:[Wn,O,Lb],encapsulation:2})};export{M as PlatformAuthSettingsComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {K as Kn,Z as Zn,S as Se}from'./chunk-
|
|
1
|
+
import {K as Kn,Z as Zn,S as Se}from'./chunk-D8Bz7q-C.js';import {cb as JB,cc as XB,W as Wi,j as jw,k as Cs,J as JC,m as hl,o as aC,t as sI,a8 as Kg,a5 as Dl,u as cC,a9 as vC,n as kg,ac as CC,_ as _g,aa as Cf,ab as Tf}from'./main-K6RKSHKK.js';function A(o,a){if(o&1){let e=vC();Cs(0,"span",7),JC(1,"Delete?"),hl(),Cs(2,"ds-icon-button",8),kg("action",function(){Cf(e);let l=CC();return Tf(l.onDeleteConfirmed())}),hl(),Cs(3,"ds-icon-button",9),kg("action",function(){Cf(e);let l=CC();return Tf(l.onDeleteCancelled())}),hl();}}function P(o,a){if(o&1){let e=vC();Cs(0,"ds-kebab-menu",10),kg("itemSelected",function(l){Cf(e);let O=CC();return Tf(O.onMenuAction(l))}),hl();}if(o&2){let e=CC();_g("items",e.menuItems);}}var I=class o{model=JB.required();namespaceId=JB(void 0);readOnly=JB(false);deleteRequested=XB();editRequested=XB();pendingDelete=Wi(false);menuItems=[{key:"edit",label:"Edit model",icon:"edit"},{key:"delete",label:"Delete model",icon:"delete",variant:"danger"}];get displayTitle(){return this.model().alias??this.model().apiModelName}onMenuAction(a){switch(a){case "edit":this.editRequested.emit(this.model());break;case "delete":this.pendingDelete.set(true);break}}onDeleteConfirmed(){this.pendingDelete.set(false),this.deleteRequested.emit(this.model());}onDeleteCancelled(){this.pendingDelete.set(false);}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=jw({type:o,selectors:[["agentos-ai-model-item"]],inputs:{model:[1,"model"],namespaceId:[1,"namespaceId"],readOnly:[1,"readOnly"]},outputs:{deleteRequested:"deleteRequested",editRequested:"editRequested"},decls:12,vars:4,consts:[["role","listitem","dsBlueprint","",1,"ai-model-item"],[1,"ai-model-item__body"],[1,"ai-model-item__name"],[1,"ai-model-item__api-name"],[1,"ai-model-item__params"],[1,"ai-model-item__actions"],[3,"items"],[1,"ai-model-item__confirm-label"],["icon","check","variant","danger","title","Confirm deletion",3,"action"],["icon","close","title","Cancel deletion",3,"action"],[3,"itemSelected","items"]],template:function(e,i){e&1&&(Cs(0,"div",0)(1,"div",1)(2,"span",2),JC(3),hl(),Cs(4,"span",3),JC(5),hl(),Cs(6,"span",4)(7,"span"),JC(8),hl()()(),Cs(9,"div",5),aC(10,A,4,0)(11,P,1,1,"ds-kebab-menu",6),hl()()),e&2&&(sI(3),Kg(i.displayTitle),sI(2),Kg(i.model().apiModelName),sI(3),Dl("priority: ",i.model().priority),sI(2),cC(i.pendingDelete()?10:i.readOnly()?-1:11));},dependencies:[Kn,Zn,Se],styles:[".ai-model-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:14px 16px;position:relative;border-radius:0;border:1px solid var(--color-divider);background:var(--color-bg);box-shadow:var(--shadow-sm);overflow:visible;transition:border-color .15s ease}.ai-model-item[_ngcontent-%COMP%]:hover{border-color:var(--color-accent)}.ai-model-item__body[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.ai-model-item__name[_ngcontent-%COMP%]{font-size:15px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-model-item__api-name[_ngcontent-%COMP%]{font-size:13px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-model-item__params[_ngcontent-%COMP%]{display:flex;gap:.75rem;font-size:13px;color:var(--color-text-secondary)}.ai-model-item__actions[_ngcontent-%COMP%]{flex-shrink:0;display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.ai-model-item[_ngcontent-%COMP%]:hover .ai-model-item__actions[_ngcontent-%COMP%], .ai-model-item[_ngcontent-%COMP%]:focus-within .ai-model-item__actions[_ngcontent-%COMP%]{opacity:1}.ai-model-item__confirm-label[_ngcontent-%COMP%]{font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--red-deep);margin-right:.25rem;white-space:nowrap}"]})};export{I};
|