@whoz-oss/coday-client 3.29.0 → 3.30.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-C3cvHmBJ.js → chunk--r2IPkvN.js} +1 -1
- package/browser/chunk-1mA1C1Ia.js +1 -0
- package/browser/{chunk-D5UGtM5T.js → chunk-4NMdLPHF.js} +1 -1
- package/browser/chunk-4QqbIPaR.js +1 -0
- package/browser/{chunk-C6x9SBjG.js → chunk-AB2V4DzP.js} +1 -1
- package/browser/{chunk-D-vld_6F.js → chunk-B-Ejl4sU.js} +1 -1
- package/browser/{chunk-CrYRdxC9.js → chunk-B3KKH9dW.js} +1 -1
- package/browser/{chunk-Ov4I3GYD.js → chunk-B4hQ_D8H.js} +1 -1
- package/browser/{chunk-Bo1DjeiW.js → chunk-BFY0pXEf.js} +1 -1
- package/browser/{chunk-Bbb2Oy9I.js → chunk-BPkyqr-f.js} +1 -1
- package/browser/chunk-BWcVMw4T.js +1 -0
- package/browser/{chunk-sqjr_Ky0.js → chunk-BXZoje_o.js} +1 -1
- package/browser/{chunk-Cmp8otOQ.js → chunk-B_-1xOxe.js} +1 -1
- package/browser/{chunk-CCQAu0MS.js → chunk-B_gHVcU6.js} +1 -1
- package/browser/{chunk-CG4buEjj.js → chunk-BhXLqAug.js} +1 -1
- package/browser/{chunk-CHSLALZZ.js → chunk-BjFLkaZE.js} +1 -1
- package/browser/{chunk-DOV6c8DN.js → chunk-Bk2EXxig.js} +2 -2
- package/browser/{chunk-DpKLsgM9.js → chunk-BopMYlkE.js} +1 -1
- package/browser/{chunk-ChTqQ8HQ.js → chunk-BpSHA6TV.js} +1 -1
- package/browser/{chunk-B1gTtKFG.js → chunk-BrUYkz33.js} +1 -1
- package/browser/{chunk-BjBW1d-u.js → chunk-Bx_FH6m3.js} +1 -1
- package/browser/{chunk-1xKCP6gl.js → chunk-C0KRHI6e.js} +1 -1
- package/browser/{chunk-DG8M0PqZ.js → chunk-C2Inb2UP.js} +1 -1
- package/browser/{chunk-D2pgQ9ii.js → chunk-CEQ5C5Tx.js} +1 -1
- package/browser/{chunk-CdkqXKu3.js → chunk-CG3MF0H4.js} +1 -1
- package/browser/{chunk-BtBbv-Bf.js → chunk-CGn0orvL.js} +1 -1
- package/browser/chunk-CJGzYd_S.js +1 -0
- package/browser/{chunk-Bv_n_Pea.js → chunk-CJIgE5YB.js} +3 -3
- package/browser/{chunk-cNEt2yX6.js → chunk-CJxkwaxD.js} +1 -1
- package/browser/{chunk-CFfiJ53b.js → chunk-CK18gZ63.js} +1 -1
- package/browser/{chunk-BloWX02p.js → chunk-CNmZmLwF.js} +1 -1
- package/browser/{chunk-CxozF4Vf.js → chunk-COD2O4SF.js} +1 -1
- package/browser/{chunk-D_aTK145.js → chunk-CZmNdEYy.js} +1 -1
- package/browser/{chunk-CE5rgBGE.js → chunk-C_J2R_PK.js} +1 -1
- package/browser/{chunk-BlUiCEeR.js → chunk-CglVp4ZH.js} +1 -1
- package/browser/{chunk-DZe-m4Sd.js → chunk-CkBh9-Fw.js} +1 -1
- package/browser/{chunk-CRrjfkUg.js → chunk-CnEa9fH2.js} +2 -2
- package/browser/{chunk-CGL1Leue.js → chunk-CniyJRG1.js} +1 -1
- package/browser/{chunk-cg5smJeu.js → chunk-Cq3KqN1m.js} +1 -1
- package/browser/{chunk-q9uyoVUw.js → chunk-CtHF-uul.js} +1 -1
- package/browser/chunk-D-QPhn7p.js +1 -0
- package/browser/{chunk-bIJnspzL.js → chunk-D-l2ORqm.js} +1 -1
- package/browser/chunk-D3BAOO_0.js +1 -0
- package/browser/{chunk-Boc0RvBR.js → chunk-D3fatnCm.js} +1 -1
- package/browser/{chunk-Ddpg0y75.js → chunk-D3gurhpR.js} +1 -1
- package/browser/{chunk-CCEiNYBj.js → chunk-D6BBuWSd.js} +1 -1
- package/browser/{chunk-CFY3CFkD.js → chunk-D8sYWCcr.js} +1 -1
- package/browser/{chunk-Bol7PdRu.js → chunk-DAk8SIkq.js} +1 -1
- package/browser/{chunk-BIdH1XJF.js → chunk-DFLL0Odh.js} +1 -1
- package/browser/{chunk-RUBMO7Yb.js → chunk-DR5zNU0n.js} +1 -1
- package/browser/{chunk-u3jxNXQ8.js → chunk-DVrM3JI8.js} +1 -1
- package/browser/{chunk-BmHNWYuZ.js → chunk-DWSvE7KY.js} +1 -1
- package/browser/{chunk-DX05HUs9.js → chunk-DZUhjamf.js} +1 -1
- package/browser/{chunk-Cw62GRPX.js → chunk-DZuvl0-q.js} +1 -1
- package/browser/{chunk-DKg7p59a.js → chunk-DmNKvrHl.js} +1 -1
- package/browser/chunk-DnMJl9Ao.js +1 -0
- package/browser/{chunk-G_l8BMaJ.js → chunk-DqzTsn7a.js} +1 -1
- package/browser/{chunk-CjKxvXTd.js → chunk-DsFEZkSl.js} +1 -1
- package/browser/{chunk-BSAXfS2x.js → chunk-DstI03OT.js} +1 -1
- package/browser/{chunk-CERsD1uZ.js → chunk-DzWQQKpk.js} +1 -1
- package/browser/{chunk-BvO---8Y.js → chunk-F5WjZgr6.js} +1 -1
- package/browser/{chunk-DuNMllH-.js → chunk-KIJUJ9nq.js} +1 -1
- package/browser/chunk-Mxaxers6.js +1 -0
- package/browser/{chunk-CGlvdEI7.js → chunk-O4nbXJCv.js} +1 -1
- package/browser/{chunk-vQXZQsZC.js → chunk-P6Fi8ohd.js} +1 -1
- package/browser/{chunk-DgmZwFcU.js → chunk-QcmfFN_C.js} +1 -1
- package/browser/{chunk-DczzZnS1.js → chunk-S9BROQKc.js} +1 -1
- package/browser/{chunk-_2qKLbuS.js → chunk-VE530Qd2.js} +1 -1
- package/browser/{chunk-CBwpP2V0.js → chunk-bgvmHk7z.js} +1 -1
- package/browser/chunk-kFOHrPbJ.js +10 -0
- package/browser/chunk-lU3996br.js +1 -0
- package/browser/index.html +1 -1
- package/browser/{main-2GG5NZ4C.js → main-2EYBZUJC.js} +9 -9
- package/package.json +1 -1
- package/browser/chunk-C-VoWDOg.js +0 -10
- package/browser/chunk-C0DMx9CU.js +0 -1
- package/browser/chunk-C5mPb_F4.js +0 -1
- package/browser/chunk-CpGwP-5T.js +0 -1
- package/browser/chunk-CrZEE1qa.js +0 -1
- package/browser/chunk-Dz1wgxrF.js +0 -1
- package/browser/chunk-Fh0Lvh-K.js +0 -1
- package/browser/chunk-WuZ8xi__.js +0 -1
- package/browser/chunk-a4RWgm8g.js +0 -1
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import {g,dK as be$1,da as M,dg as ee$2,Q as By,Y as x$1,cb as ZB,cc as qB,e as xw,aw as hl$1,n as GC,ax as gl$1,cJ as Og,J as Jw,t as rC,X as XE,c0 as xg,y as eC,z as oC,G as G$5,a as Gi$1,k as ws$1,o as pl$1,A as Ug,a8 as Yg,dL as Xg,C as Ce$1,F as F$1,aD as Ly,dh as T,bS as va$1,bU as Od,a7 as ya$1,W as br$1,m as mT,b as U$3,q as Rg,af as Eg,u as CC,v as bg,a9 as lC,ac as gC,a5 as vl$1,aa as If,ab as wf,ag as fT,ao as V$2,dM as de$1,w as w$1,x as x$2,T as Tg,ce as _b,S as Sg,a3 as VI,a6 as UI,b4 as oT,ch as Ng,aZ as js$1,cs as XB,bA as yC,cx as Lg,cw as wC,bB as vC,bk as yh,dN as le$3,ah as rT,d5 as D$2,d8 as F$2,aJ as Tr$1,r as re$4,aK as xb,bf as aT,bg as uT,bp as ml$1,bq as yl$1,c9 as kf,ck as Ff,aW as C$1,dO as mr$1,ds as N$1,an as ue$2,bQ as Gy,bh as Vy,cB as on,dP as Da$1,dQ as Xy,dR as fi$1,dH as pi$1,cE as Ad,aI as bS,b1 as On,dS as re$5,dT as he$2,H as py,d4 as y$1,aP as G$6,b6 as _g,ad as Hg,cr as QB,cd as Hf,c2 as ME,av as B$2,dt as Ny,dU as Ie$1,dV as Fb,ai as tm,ak as em,b5 as nT,cv as jg,cu as tV,dW as Ve,D as Pg,E as EC,I as IC,ae as kt$1,M as Cd,ap as wd,dX as Dd,cL as vd,az as Xt,dY as Z$3,dZ as Jy,d_ as nv,aA as an,d$ as Rd,bR as Id,e0 as KB,e1 as ae$4,dr as G$7,bF as J$2,e2 as Yy,bP as Wy,e3 as xr$1,e4 as Nd,cF as Pb,cN as kn,e5 as Ab,e6 as qe,cH as Kw,e7 as z$3,e8 as Oe$1,e9 as Ee$2,ea as Se$2,R as Re$1,b2 as kb,eb as Q$2,a4 as nC,_ as Ue$2,Z as z$4,dB as Ke,b$ as kC,a$ as XC,b0 as Qg,bi as lT,ec as Jg,bj as aE,aj as KC,ed as Kg,cg as iT,ee as oe$3}from'./main-2EYBZUJC.js';import {x as x$3,i as is$1,U as Ue$1}from'./chunk-DqzTsn7a.js';import {Z as Zn,S as Se$1,W as Wn,P as Pn,K as Kn,J as Jn$1,U as Un,X as Xn$1,G as Gn,Y as Yn}from'./chunk-Bx_FH6m3.js';import'./chunk-BPkyqr-f.js';import {o as z$2,k as _t,b as _e$1,n as ni$1,J as Jn,Q as Qn,e as ei$1,Y as Ye,Z as Zn$1,l as Xn,E as En,p as An,a as wt$1,t as ti$1,c as cn}from'./chunk-CZmNdEYy.js';var m$3=class s{controller=g(be$1);agentConfigController=g(M);namespaceMembership=g(ee$2);listByNamespace(e){return this.controller.findByNamespaceIdUserGroup(e)}loadFormData(e){return By({namespaceAgents:this.agentConfigController.listByParentAgentConfig(e,false),platformAgents:this.agentConfigController.listPlatformAgentsAgentConfig(false),users:this.namespaceMembership.getMembersNamespaceMembership(e)})}loadExistingGroup(e){return By({group:this.getById(e),members:this.getMembers(e)})}getById(e){return this.controller.getByIdUserGroup(e)}getMembers(e){return this.controller.getMembersUserGroup(e)}create(e){return this.controller.createUserGroup({namespaceId:e.namespaceId,name:e.name,agentIds:e.agentIds,userExternalIdsToAdd:e.memberExternalIdsToAdd,adminExternalIds:e.adminExternalIds})}update(e,r){return this.controller.updateUserGroup(e,{name:r.name,agentIds:r.agentIds,userExternalIdsToAdd:r.memberExternalIdsToAdd,userExternalIdsToRemove:r.memberExternalIdsToRemove,adminExternalIds:r.adminExternalIds})}delete(e){return this.controller.deleteUserGroup(e)}static \u0275fac=function(r){return new(r||s)};static \u0275prov=x$1({token:s,factory:s.\u0275fac,providedIn:"root"})};var ne$3=(n,t)=>t.id;function oe$2(n,t){n&1&&(hl$1(0,"option",3),GC(1,"All namespaces"),gl$1());}function re$3(n,t){if(n&1&&(hl$1(0,"option",4),GC(1),gl$1()),n&2){let e=t.$implicit;xg("value",e.id),XE(),Yg(e.name);}}var w=class n{namespaces=ZB.required();value=ZB(null);includeAllOption=ZB(false);valueChange=qB();onChange(t){let e=t.target.value;this.valueChange.emit(e===""?null:e);}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=xw({type:n,selectors:[["agentos-namespace-select"]],inputs:{namespaces:[1,"namespaces"],value:[1,"value"],includeAllOption:[1,"includeAllOption"]},outputs:{valueChange:"valueChange"},decls:7,vars:2,consts:[[1,"namespace-select"],[1,"namespace-select__label"],[1,"namespace-select__control",3,"change","value"],["value",""],[3,"value"]],template:function(e,o){e&1&&(hl$1(0,"label",0)(1,"span",1),GC(2,"Namespace"),gl$1(),hl$1(3,"select",2),Og("change",function(m){return o.onChange(m)}),Jw(4,oe$2,2,0,"option",3),rC(5,re$3,2,2,"option",4,ne$3),gl$1()()),e&2&&(XE(3),xg("value",o.value()??""),XE(),eC(o.includeAllOption()?4:-1),XE(),oC(o.namespaces()));},styles:[".namespace-select[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.4rem}.namespace-select__label[_ngcontent-%COMP%]{font-size:.8rem;font-weight:500;color:var(--color-text-secondary, #6e6e73);white-space:nowrap}.namespace-select__control[_ngcontent-%COMP%]{padding:.35rem .6rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.875rem;font-family:inherit;cursor:pointer}.namespace-select__control[_ngcontent-%COMP%]:focus{outline:none;border-color:var(--color-primary, #007aff)}"]})};function ae$3(n,t){if(n&1){let e=lC();ws$1(0,"span",6),GC(1,"Delete?"),pl$1(),ws$1(2,"ds-icon-button",7),Rg("action",function(){If(e);let r=gC();return wf(r.onDeleteConfirmed())}),pl$1(),ws$1(3,"ds-icon-button",8),Rg("action",function(){If(e);let r=gC();return wf(r.onDeleteCancelled())}),pl$1();}}function ie$2(n,t){if(n&1){let e=lC();ws$1(0,"ds-kebab-menu",9),Rg("itemSelected",function(r){If(e);let m=gC();return wf(m.onMenuAction(r))}),pl$1();}if(n&2){let e=gC();bg("items",e.menuItems);}}var D$1=class n{router=g(G$5);userGroup=ZB.required();namespaceId=ZB.required();returnTo=ZB(void 0);deleteRequested=qB();pendingDelete=Gi$1(false);menuItems=[{key:"edit",label:"Edit group",icon:"edit"},{key:"delete",label:"Delete group",icon:"delete",variant:"danger"}];get agentCount(){return this.userGroup().agentIds.length}onMenuAction(t){switch(t){case "edit":this.router.navigate(["/agentos",this.namespaceId(),"user-groups",this.userGroup().userGroupId,"edit"],{queryParams:this.returnTo()?{returnTo:this.returnTo()}:{}});break;case "delete":this.pendingDelete.set(true);break}}onDeleteConfirmed(){this.pendingDelete.set(false),this.deleteRequested.emit(this.userGroup());}onDeleteCancelled(){this.pendingDelete.set(false);}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=xw({type:n,selectors:[["agentos-user-group-item"]],inputs:{userGroup:[1,"userGroup"],namespaceId:[1,"namespaceId"],returnTo:[1,"returnTo"]},outputs:{deleteRequested:"deleteRequested"},decls:9,vars:8,consts:[["role","listitem",1,"user-group-item"],[1,"user-group-item__body"],[1,"user-group-item__name"],[1,"user-group-item__meta"],[1,"user-group-item__actions"],[3,"items"],[1,"user-group-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,o){e&1&&(ws$1(0,"div",0)(1,"div",1)(2,"span",2),GC(3),pl$1(),ws$1(4,"span",3),GC(5),pl$1()(),ws$1(6,"div",4),Jw(7,ae$3,4,0)(8,ie$2,1,1,"ds-kebab-menu",5),pl$1()()),e&2&&(Ug("user-group-item--pending-delete",o.pendingDelete()),XE(3),Yg(o.userGroup().name),XE(2),Xg(" ",o.agentCount," ",o.agentCount===1?"agent":"agents"," \xB7 ",o.userGroup().userCount," ",o.userGroup().userCount===1?"member":"members"," "),XE(2),eC(o.pendingDelete()?7:8));},dependencies:[Zn,Se$1],styles:[".user-group-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-radius:10px;border:1px solid var(--color-border, rgba(0, 0, 0, .08));background:var(--glass-bg, rgba(255, 255, 255, .72));-webkit-backdrop-filter:var(--glass-backdrop-blur, blur(20px));backdrop-filter:var(--glass-backdrop-blur, blur(20px));transition:background .15s ease,border-color .15s ease}.user-group-item[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04));border-color:var(--color-primary, #007aff)}.user-group-item__body[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.user-group-item__name[_ngcontent-%COMP%]{font-size:.95rem;font-weight:500;color:var(--color-text, #1d1d1f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-group-item__meta[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary, #6e6e73);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-group-item__actions[_ngcontent-%COMP%]{flex-shrink:0;display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.user-group-item[_ngcontent-%COMP%]:hover .user-group-item__actions[_ngcontent-%COMP%], .user-group-item[_ngcontent-%COMP%]:focus-within .user-group-item__actions[_ngcontent-%COMP%], .user-group-item--pending-delete[_ngcontent-%COMP%] .user-group-item__actions[_ngcontent-%COMP%]{opacity:1}.user-group-item__confirm-label[_ngcontent-%COMP%]{font-size:.8rem;font-weight:500;color:var(--color-error, #ff3b30);margin-right:.25rem;white-space:nowrap}"]})};function se$3(n,t){if(n&1){let e=lC();ws$1(0,"button",4),Rg("click",function(){If(e);let r=gC();return wf(r.onBack())}),GC(1),pl$1();}n&2&&(XE(),vl$1("\u2190 ",t));}function le$2(n,t){if(n&1){let e=lC();ws$1(0,"agentos-namespace-select",5),Rg("valueChange",function(r){If(e);let m=gC();return wf(m.onNamespaceChange(r))}),pl$1();}if(n&2){let e=gC();bg("namespaces",t)("value",e.namespaceId());}}function ue$1(n,t){if(n&1){let e=lC();ws$1(0,"agentos-user-group-item",7),Rg("deleteRequested",function(r){If(e);let m=gC(2);return wf(m.deleteGroup(r))}),pl$1();}if(n&2){let e=gC(2);bg("userGroup",t)("namespaceId",e.namespaceId())("returnTo",e.returnTo());}}function pe$1(n,t){if(n&1&&Jw(0,ue$1,1,3,"agentos-user-group-item",6),n&2){let e,o=t.$implicit,r=gC();eC((e=r.resolveGroup(o.id))?0:-1,e);}}var te$3=class n{router=g(G$5);destroyRef=g(Ce$1);userGroupState=g(m$3);namespaceId=ZB.required();backLabel=ZB(void 0);namespaces=ZB(void 0);hideTitle=ZB(false);returnTo=ZB(void 0);backRequested=qB();namespaceChange=qB();refresh=Gi$1(0);isLoading=Gi$1(true);groups=F$1(Ly([T(this.namespaceId),T(this.refresh)]).pipe(va$1(([t])=>(this.isLoading.set(true),this.userGroupState.listByNamespace(t).pipe(Od(()=>this.isLoading.set(false)),ya$1(e=>(console.error("[UserGroupList] Failed to load user groups",e),this.isLoading.set(false),br$1([]))))))),{initialValue:[]});groupItems=mT(()=>this.groups().map(t=>({id:t.userGroupId,name:t.name})));groupsById=mT(()=>new Map(this.groups().map(t=>[t.userGroupId,t])));resolveGroup(t){return this.groupsById().get(t)??null}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId(),"user-groups","new"],{queryParams:this.returnTo()?{returnTo:this.returnTo()}:{}});}deleteGroup(t){this.userGroupState.delete(t.userGroupId).pipe(U$3(this.destroyRef)).subscribe(()=>this.refresh.update(e=>e+1));}onBack(){this.backRequested.emit();}onNamespaceChange(t){t&&this.namespaceChange.emit(t);}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=xw({type:n,selectors:[["agentos-user-group-list"]],inputs:{namespaceId:[1,"namespaceId"],backLabel:[1,"backLabel"],namespaces:[1,"namespaces"],hideTitle:[1,"hideTitle"],returnTo:[1,"returnTo"]},outputs:{backRequested:"backRequested",namespaceChange:"namespaceChange"},decls:5,vars:6,consts:[["groupItemTpl",""],["title","User Groups","emptyMessage","No user groups yet. Create one above.","cardMinWidth","400px",3,"createRequested","hideTitle","items","loading","showCreate","itemTemplate"],["toolbar-start","","type","button",1,"user-group-list__back"],["toolbar-start","",3,"namespaces","value"],["toolbar-start","","type","button",1,"user-group-list__back",3,"click"],["toolbar-start","",3,"valueChange","namespaces","value"],[3,"userGroup","namespaceId","returnTo"],[3,"deleteRequested","userGroup","namespaceId","returnTo"]],template:function(e,o){if(e&1&&(ws$1(0,"ds-entity-list",1),Rg("createRequested",function(){return o.openCreateForm()}),Jw(1,se$3,2,1,"button",2)(2,le$2,1,2,"agentos-namespace-select",3),pl$1(),Eg(3,pe$1,1,1,"ng-template",null,0,fT)),e&2){let r,m=CC(4);bg("hideTitle",o.hideTitle())("items",o.groupItems())("loading",o.isLoading())("showCreate",true)("itemTemplate",m),XE(),eC((r=o.backLabel())?1:(r=o.namespaces())?2:-1,r);}},dependencies:[Wn,D$1,w],styles:[".user-group-list__back[_ngcontent-%COMP%]{background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-primary, #007aff);font-family:inherit}.user-group-list__back[_ngcontent-%COMP%]:hover{text-decoration:underline}"]})};var d$3=class s{route=g(V$2);router=g(G$5);namespaceId=this.route.snapshot.params.namespaceId;goBack(){this.router.navigate(["/agentos","namespaces"]);}static \u0275fac=function(e){return new(e||s)};static \u0275cmp=xw({type:s,selectors:[["agentos-namespace-user-groups"]],decls:1,vars:1,consts:[["backLabel","Namespaces",3,"backRequested","namespaceId"]],template:function(e,a){e&1&&(ws$1(0,"agentos-user-group-list",0),Rg("backRequested",function(){return a.goBack()}),pl$1()),e&2&&bg("namespaceId",a.namespaceId);},dependencies:[te$3],encapsulation:2})};function d$2(r,e){let n=new Map(r.map(t=>[t.userId,t.role])),s=new Set(e.map(t=>t.userId)),i=e.filter(t=>n.get(t.userId)!==t.role),o=r.filter(t=>!s.has(t.userId)).map(t=>t.userId);return {toUpsert:i,toRemove:o}}function p$2(r){return r.some(e=>e.role==="ADMIN")}function a$1(r){return [r.firstname,r.lastname].filter(Boolean).join(" ").trim()||r.email||r.externalId||""}var c$3=20,m$2=class m{constructor(e,n){this.candidates=e;this.excludedUserIds=n;}candidates;excludedUserIds;search(e){let n=e.toLowerCase(),s=this.excludedUserIds(),i=this.candidates().filter(o=>!!o.id&&!s.has(o.id)).filter(o=>this.matches(o,n)).slice(0,c$3).map(o=>({id:o.id,name:a$1(o),description:o.email}));return br$1(i)}matches(e,n){return (e.externalId??"").toLowerCase().includes(n)||(e.email??"").toLowerCase().includes(n)||a$1(e).toLowerCase().includes(n)}};var l$3=class t{userController=g(de$1);currentUser=Gi$1(null);loadMe(){return this.userController.getMeUser().pipe(Od(r=>this.currentUser.set(r)))}updateMe(r){let e=this.currentUser();if(!e)throw new Error("Cannot update: current user not loaded");if(!e.id)throw new Error("Cannot update: current user has no id");let c=w$1(w$1({},e),r);return this.userController.updateUser(e.id,c).pipe(Od(d=>this.currentUser.set(d)))}static \u0275fac=function(e){return new(e||t)};static \u0275prov=x$1({token:t,factory:t.\u0275fac,providedIn:"root"})};var S=class r{membership=g(ee$2);userController=g(de$1);listMembers(t){return this.membership.getMembersNamespaceMembership(t)}listAllUsers(){return this.userController.listAllUser()}updateMembers(t,e){let i=e.map(n=>w$1({userId:n.userId},n.role!==void 0?{role:n.role}:{}));return this.membership.updateMembersNamespaceMembership(t,i)}static \u0275fac=function(e){return new(e||r)};static \u0275prov=x$1({token:r,factory:r.\u0275fac,providedIn:"root"})};var q$2=(r,t)=>t.userId;function G$4(r,t){r&1&&(ws$1(0,"p",5),GC(1,"Loading\u2026"),pl$1());}function K$1(r,t){r&1&&(ws$1(0,"p",7),GC(1," You can change roles or remove existing members. Only a platform super-admin can add a new user to this namespace. "),pl$1());}function Q$1(r,t){r&1&&(ws$1(0,"p",11),GC(1,"No members yet."),pl$1());}function W$2(r,t){if(r&1&&(ws$1(0,"span",22),GC(1),pl$1()),r&2){let e=gC().$implicit;XE(),Yg(e.email);}}function X$2(r,t){if(r&1){let e=lC();ws$1(0,"li",19)(1,"div",20)(2,"span",21),GC(3),pl$1(),Jw(4,W$2,2,1,"span",22),pl$1(),ws$1(5,"select",23),Rg("change",function(n){let c=If(e).$implicit,Y=gC(3);return wf(Y.setMemberRole(c.userId,n.target.value))}),ws$1(6,"option",24),GC(7,"Member"),pl$1(),ws$1(8,"option",25),GC(9,"Admin"),pl$1()(),ws$1(10,"button",26),Rg("click",function(){let n=If(e).$implicit,c=gC(3);return wf(c.removeMember(n.userId))}),GC(11," \xD7 "),pl$1()();}if(r&2){let e=t.$implicit;XE(3),Yg(e.label),XE(),eC(e.email&&e.email!==e.label?4:-1),XE(),bg("value",e.role),Tg("aria-label","Role of "+e.label),XE(5),bg("title","Remove "+e.label);}}function Z$2(r,t){if(r&1&&(ws$1(0,"ul",12),rC(1,X$2,12,5,"li",19,q$2),pl$1()),r&2){let e=gC(2);XE(),oC(e.selectedMembers());}}function ee$1(r,t){r&1&&(ws$1(0,"p",13),GC(1," At least one ADMIN must remain on the namespace. Assign ADMIN to someone before saving. "),pl$1());}function te$2(r,t){if(r&1){let e=lC();ws$1(0,"ds-autocomplete-input",27),Rg("itemSelected",function(n){If(e);let c=gC(2);return wf(c.onMemberSelected(n))}),pl$1();}if(r&2){let e=gC(2);bg("dataSource",e.memberDataSource);}}function re$2(r,t){if(r&1&&(ws$1(0,"p",15),GC(1),pl$1()),r&2){let e=gC(2);XE(),Yg(e.errorMessage());}}function ne$2(r,t){if(r&1){let e=lC();ws$1(0,"div",6),Jw(1,K$1,2,0,"p",7),ws$1(2,"fieldset",8)(3,"legend",9),GC(4," Roster "),ws$1(5,"span",10),GC(6,"Exactly one role per user: ADMIN or MEMBER"),pl$1()(),Jw(7,Q$1,2,0,"p",11)(8,Z$2,3,0,"ul",12),Jw(9,ee$1,2,0,"p",13),Jw(10,te$2,1,1,"ds-autocomplete-input",14),pl$1(),Jw(11,re$2,2,1,"p",15),ws$1(12,"div",16)(13,"button",17),Rg("click",function(){If(e);let n=gC();return wf(n.submit())}),GC(14," Save changes "),pl$1(),ws$1(15,"button",18),Rg("click",function(){If(e);let n=gC();return wf(n.cancel())}),GC(16,"Cancel"),pl$1()()();}if(r&2){let e=gC();XE(),eC(e.isSuperAdmin()?-1:1),XE(6),eC(e.selectedMembers().length===0?7:8),XE(2),eC(e.wouldLockOutAdmins()?9:-1),XE(),eC(e.isSuperAdmin()?10:-1),XE(),eC(e.errorMessage()?11:-1),XE(2),bg("disabled",e.isSubmitting()||e.wouldLockOutAdmins());}}var H$2=class r{route=g(V$2);router=g(G$5);destroyRef=g(Ce$1);memberState=g(S);userState=g(l$3);namespaceId=this.route.snapshot.params.namespaceId;isLoading=Gi$1(false);isSubmitting=Gi$1(false);errorMessage=Gi$1(null);isSuperAdmin=Gi$1(false);selectedMembers=Gi$1([]);originalMembers=[];candidateUsers=Gi$1([]);memberDataSource=new m$2(()=>this.candidateUsers(),()=>new Set(this.selectedMembers().map(t=>t.userId)));ngOnInit(){this.loadData();}loadData(){this.isLoading.set(true),(this.userState.currentUser()?br$1(this.userState.currentUser()):this.userState.loadMe()).pipe(ya$1(e=>(console.error("[NamespaceMembers] Failed to load current user",e),br$1(null))),U$3(this.destroyRef)).subscribe(e=>{let i=e?.isAdmin===true;this.isSuperAdmin.set(i),this.loadMembersAndCandidates(i);});}loadMembersAndCandidates(t){By({members:this.memberState.listMembers(this.namespaceId),allUsers:t?this.memberState.listAllUsers():br$1([])}).pipe(U$3(this.destroyRef)).subscribe({next:({members:e,allUsers:i})=>{this.applyMembers(e),this.candidateUsers.set(i),this.isLoading.set(false);},error:e=>{console.error("[NamespaceMembers] Failed to load namespace members",e),this.isLoading.set(false),this.errorMessage.set("Failed to load namespace members. Please try again.");}});}applyMembers(t){this.originalMembers=t.map(e=>({userId:e.id,role:e.role})),this.selectedMembers.set(t.map(e=>({userId:e.id,label:a$1(e),email:e.email,role:e.role})));}onMemberSelected(t){this.selectedMembers().some(e=>e.userId===t.id)||this.selectedMembers.update(e=>[...e,{userId:t.id,label:t.name,email:t.description,role:"MEMBER"}]);}removeMember(t){this.selectedMembers.update(e=>e.filter(i=>i.userId!==t));}setMemberRole(t,e){let i=e==="ADMIN"?"ADMIN":"MEMBER";this.selectedMembers.update(n=>n.map(c=>c.userId===t?x$2(w$1({},c),{role:i}):c));}wouldLockOutAdmins=()=>!p$2(this.selectedMembers());submit(){if(this.isSubmitting())return;if(this.wouldLockOutAdmins()){this.errorMessage.set("At least one ADMIN must remain on the namespace. Assign ADMIN to someone before saving.");return}this.isSubmitting.set(true),this.errorMessage.set(null);let{toUpsert:t,toRemove:e}=d$2(this.originalMembers,this.selectedMembers().map(n=>({userId:n.userId,role:n.role})));if(t.length===0&&e.length===0){this.isSubmitting.set(false),this.navigateBack();return}let i=[...t.map(n=>({userId:n.userId,role:n.role})),...e.map(n=>({userId:n}))];this.memberState.updateMembers(this.namespaceId,i).pipe(U$3(this.destroyRef)).subscribe({next:n=>{this.applyMembers(n),this.isSubmitting.set(false),this.navigateBack();},error:n=>{this.isSubmitting.set(false),this.errorMessage.set(this.describeError(n));}});}describeError(t){return t.status===403?"You do not have permission to add a new user to this namespace \u2014 only a platform super-admin can add someone new. You can still change roles or remove existing members.":t.status===422?t.error?.message??"This change would leave the namespace without any ADMIN. Assign ADMIN to at least one member and try again.":"An unexpected error occurred while saving namespace members. Please try again."}cancel(){this.navigateBack();}navigateBack(){this.router.navigate(["/agentos","namespaces"]);}static \u0275fac=function(e){return new(e||r)};static \u0275cmp=xw({type:r,selectors:[["agentos-namespace-members"]],decls:10,vars:1,consts:[[1,"namespace-members"],[1,"namespace-members__header"],["type","button","title","Back to namespaces",1,"namespace-members__back",3,"click"],[1,"namespace-members__back-icon"],[1,"namespace-members__title"],[1,"namespace-members__loading"],[1,"namespace-members__body"],[1,"namespace-members__hint"],[1,"namespace-members__section"],[1,"namespace-members__label"],[1,"namespace-members__label-hint"],[1,"namespace-members__empty-hint"],[1,"namespace-members__members"],[1,"namespace-members__warning"],["placeholder","Add a member\u2026",3,"dataSource"],[1,"namespace-members__error"],[1,"namespace-members__actions"],["type","button",1,"namespace-members__btn","namespace-members__btn--primary",3,"click","disabled"],["type","button",1,"namespace-members__btn",3,"click"],[1,"namespace-members__member"],[1,"namespace-members__member-info"],[1,"namespace-members__member-name"],[1,"namespace-members__member-email"],[1,"namespace-members__member-role",3,"change","value"],["value","MEMBER"],["value","ADMIN"],["type","button",1,"namespace-members__member-remove",3,"click","title"],["placeholder","Add a member\u2026",3,"itemSelected","dataSource"]],template:function(e,i){e&1&&(ws$1(0,"div",0)(1,"header",1)(2,"button",2),Rg("click",function(){return i.cancel()}),ws$1(3,"span",3),GC(4,"\u2190"),pl$1(),GC(5," Namespaces "),pl$1(),ws$1(6,"h1",4),GC(7,"Members"),pl$1()(),Jw(8,G$4,2,0,"p",5)(9,ne$2,17,6,"div",6),pl$1()),e&2&&(XE(8),eC(i.isLoading()?8:9));},dependencies:[Pn],styles:[".namespace-members[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.namespace-members__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.namespace-members__back[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.375rem;background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-primary, #007aff);font-family:inherit}.namespace-members__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.namespace-members__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.namespace-members__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-text, #1d1d1f);letter-spacing:-.02em}.namespace-members__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);font-size:.9rem;margin:0}.namespace-members__body[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.25rem}.namespace-members__hint[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--color-text-secondary, #6e6e73);line-height:1.4}.namespace-members__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text, #1d1d1f)}.namespace-members__label-hint[_ngcontent-%COMP%]{font-weight:400;color:var(--color-text-secondary, #6e6e73);margin-left:.375rem}.namespace-members__section[_ngcontent-%COMP%]{border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:8px;padding:1rem;margin:0;display:flex;flex-direction:column;gap:.75rem}.namespace-members__empty-hint[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--color-text-secondary, #6e6e73);font-style:italic}.namespace-members__members[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.375rem}.namespace-members__member[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;padding:.4rem .5rem;border-radius:8px;background:var(--color-surface-hover, rgba(0, 0, 0, .03));border:1px solid var(--color-border, rgba(0, 0, 0, .08))}.namespace-members__member-info[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.1rem;min-width:0}.namespace-members__member-name[_ngcontent-%COMP%]{font-size:.9rem;color:var(--color-text, #1d1d1f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.namespace-members__member-email[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary, #6e6e73);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.namespace-members__member-role[_ngcontent-%COMP%]{flex-shrink:0;padding:.3rem .5rem;border-radius:6px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.8rem;font-family:inherit;cursor:pointer}.namespace-members__member-role[_ngcontent-%COMP%]:focus{outline:none;border-color:var(--color-primary, #007aff)}.namespace-members__member-remove[_ngcontent-%COMP%]{flex-shrink:0;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;border-radius:50%;border:none;background:transparent;color:var(--color-text-secondary, #6e6e73);font-size:1rem;line-height:1;cursor:pointer;transition:background .15s ease,color .15s ease}.namespace-members__member-remove[_ngcontent-%COMP%]:hover{background:var(--color-error-light, rgba(255, 59, 48, .12));color:var(--color-error, #ff3b30)}.namespace-members__warning[_ngcontent-%COMP%]{margin:0;padding:.5rem .75rem;border-radius:8px;background:var(--color-warning-light, rgba(255, 149, 0, .1));border:1px solid var(--color-warning, #ff9500);color:var(--color-warning, #ff9500);font-size:.8rem;line-height:1.4}.namespace-members__error[_ngcontent-%COMP%]{margin:0;padding:.625rem .875rem;border-radius:8px;background:var(--color-error-light, rgba(255, 59, 48, .08));border:1px solid var(--color-error, #ff3b30);color:var(--color-error, #ff3b30);font-size:.875rem;line-height:1.4}.namespace-members__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.namespace-members__btn[_ngcontent-%COMP%]{padding:.6rem 1.25rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.9375rem;font-family:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease}.namespace-members__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-surface-hover, rgba(0, 0, 0, .04))}.namespace-members__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.namespace-members__btn--primary[_ngcontent-%COMP%]{background:var(--color-primary, #007aff);border-color:var(--color-primary, #007aff);color:#fff}.namespace-members__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-primary-hover, #0051d5);border-color:var(--color-primary-hover, #0051d5)}"]})};function ae$2(r,t){let e=new Set(r),o=new Set(t);return {toAdd:t.filter(n=>!e.has(n)),toRemove:r.filter(n=>!o.has(n))}}function v(r){return [r.firstname,r.lastname].filter(Boolean).join(" ").trim()||r.externalId}var ce$2=20,G$3=class G{constructor(t,e){this.candidates=t;this.excludedExternalIds=e;}candidates;excludedExternalIds;search(t){let e=t.toLowerCase(),o=this.excludedExternalIds(),n=this.candidates().filter(m=>!o.has(m.externalId)).filter(m=>this.matches(m,e)).slice(0,ce$2).map(m=>({id:m.externalId,name:v(m),description:m.email}));return br$1(n)}matches(t,e){return t.externalId.toLowerCase().includes(e)||t.email.toLowerCase().includes(e)||v(t).toLowerCase().includes(e)}};var le$1=r=>({$implicit:r}),me$1=(r,t)=>t.id,pe=(r,t)=>t.externalId;function ue(r,t){r&1&&(ws$1(0,"p",6),GC(1,"Loading\u2026"),pl$1());}function ge$1(r,t){r&1&&(ws$1(0,"span",13),GC(1,"Name is required."),pl$1());}function _e(r,t){r&1&&(ws$1(0,"p",18),GC(1,"No agent configs available in this namespace."),pl$1());}function fe(r,t){r&1&&Ng(0);}function be(r,t){if(r&1&&Eg(0,fe,1,0,"ng-container",27),r&2){let e=t.$implicit;gC(3);let o=CC(11);bg("ngTemplateOutlet",o)("ngTemplateOutletContext",oT(2,le$1,e));}}function xe(r,t){if(r&1&&(ws$1(0,"div",19)(1,"span",26),GC(2,"Platform"),pl$1(),rC(3,be,1,4,"ng-container",null,me$1),pl$1()),r&2){let e=gC(2);XE(3),oC(e.platformAgents());}}function he$1(r,t){r&1&&Ng(0);}function Ce(r,t){if(r&1&&Eg(0,he$1,1,0,"ng-container",27),r&2){let e=t.$implicit;gC(3);let o=CC(11);bg("ngTemplateOutlet",o)("ngTemplateOutletContext",oT(2,le$1,e));}}function ve(r,t){if(r&1&&(ws$1(0,"div",19)(1,"span",26),GC(2,"Namespace"),pl$1(),rC(3,Ce,1,4,"ng-container",null,me$1),pl$1()),r&2){let e=gC(2);XE(3),oC(e.namespaceAgents());}}function ye(r,t){r&1&&(ws$1(0,"p",18),GC(1,"No members yet."),pl$1());}function Me$1(r,t){if(r&1&&(ws$1(0,"span",31),GC(1),pl$1()),r&2){let e=gC().$implicit;XE(),Yg(e.email);}}function Se(r,t){if(r&1){let e=lC();ws$1(0,"li",28)(1,"div",29)(2,"span",30),GC(3),pl$1(),Jw(4,Me$1,2,1,"span",31),pl$1(),ws$1(5,"select",32),Rg("change",function(n){let m=If(e).$implicit,c=gC(3);return wf(c.setMemberRole(m.externalId,n.target.value))}),ws$1(6,"option",33),GC(7,"Member"),pl$1(),ws$1(8,"option",34),GC(9,"Admin"),pl$1()(),ws$1(10,"button",35),Rg("click",function(){let n=If(e).$implicit,m=gC(3);return wf(m.removeMember(n.externalId))}),GC(11," \xD7 "),pl$1()();}if(r&2){let e=t.$implicit;XE(3),Yg(e.label),XE(),eC(e.email&&e.email!==e.label?4:-1),XE(),bg("value",e.role),Tg("aria-label","Role of "+e.label),XE(5),bg("title","Remove "+e.label);}}function Ie(r,t){if(r&1&&(ws$1(0,"ul",20),rC(1,Se,12,5,"li",28,pe),pl$1()),r&2){let e=gC(2);XE(),oC(e.selectedMembers());}}function Ee$1(r,t){if(r&1&&(ws$1(0,"p",22),GC(1),pl$1()),r&2){let e=gC(2);XE(),Yg(e.errorMessage());}}function Ge$1(r,t){if(r&1){let e=lC();ws$1(0,"form",8),Rg("ngSubmit",function(){If(e);let n=gC();return wf(n.submit())}),ws$1(1,"div",9)(2,"label",10),GC(3,"Name "),ws$1(4,"span",11),GC(5,"*"),pl$1()(),Sg(6,"input",12),VI(),Jw(7,ge$1,2,0,"span",13),pl$1(),ws$1(8,"fieldset",14)(9,"legend",15),GC(10," Deployed agents "),ws$1(11,"span",16),GC(12,"Agents this group can use"),pl$1()(),ws$1(13,"p",17),GC(14," Pick from platform agents and this namespace's agents. An agent can be shared by multiple groups. "),pl$1(),Jw(15,_e,2,0,"p",18),Jw(16,xe,5,0,"div",19),Jw(17,ve,5,0,"div",19),pl$1(),ws$1(18,"fieldset",14)(19,"legend",15),GC(20," Members "),ws$1(21,"span",16),GC(22,"Users in this group"),pl$1()(),ws$1(23,"p",17),GC(24,"ADMIN members can manage this group; MEMBER is read-only."),pl$1(),Jw(25,ye,2,0,"p",18)(26,Ie,3,0,"ul",20),ws$1(27,"ds-autocomplete-input",21),Rg("itemSelected",function(n){If(e);let m=gC();return wf(m.onMemberSelected(n))}),pl$1()(),Jw(28,Ee$1,2,1,"p",22),ws$1(29,"div",23)(30,"button",24),GC(31),pl$1(),ws$1(32,"button",25),Rg("click",function(){If(e);let n=gC();return wf(n.cancel())}),GC(33,"Cancel"),pl$1()()();}if(r&2){let e=gC();bg("formGroup",e.form),XE(6),Ug("user-group-form__input--invalid",e.nameControl.invalid&&e.nameControl.touched),UI(),XE(),eC(e.nameControl.invalid&&e.nameControl.touched?7:-1),XE(8),eC(e.platformAgents().length===0&&e.namespaceAgents().length===0?15:-1),XE(),eC(e.platformAgents().length>0?16:-1),XE(),eC(e.namespaceAgents().length>0?17:-1),XE(8),eC(e.selectedMembers().length===0?25:26),XE(2),bg("dataSource",e.memberDataSource),XE(),eC(e.errorMessage()?28:-1),XE(2),bg("disabled",e.nameControl.invalid||e.isSubmitting()),XE(),vl$1(" ",e.isEditMode()?"Save changes":"Create"," ");}}function Oe(r,t){if(r&1){let e=lC();ws$1(0,"label",36)(1,"input",37),Rg("change",function(){let n=If(e).$implicit,m=gC();return wf(m.toggleAgent(n))}),pl$1(),ws$1(2,"span",38),GC(3),pl$1()();}if(r&2){let e=t.$implicit,o=gC();XE(),bg("checked",o.isAgentSelected(e)),XE(2),Yg(e.name);}}var Ae=250,se$2=class r{route=g(V$2);router=g(G$5);destroyRef=g(Ce$1);userGroupState=g(m$3);namespaceId=this.route.snapshot.params.namespaceId;userGroupId=this.route.snapshot.paramMap.get("userGroupId");returnTo=this.route.snapshot.queryParamMap.get("returnTo");isEditMode=Gi$1(false);isLoading=Gi$1(false);isSubmitting=Gi$1(false);errorMessage=Gi$1(null);form=new z$2({name:new _t("",{nonNullable:true,validators:[_e$1.required,_e$1.maxLength(Ae)]})});get nameControl(){return this.form.controls.name}platformAgents=Gi$1([]);namespaceAgents=Gi$1([]);selectedAgentIds=Gi$1(new Set);candidateUsers=Gi$1([]);selectedMembers=Gi$1([]);originalMemberExternalIds=[];memberDataSource=new G$3(()=>this.candidateUsers(),()=>new Set(this.selectedMembers().map(t=>t.externalId)));ngOnInit(){this.isEditMode.set(!!this.userGroupId),this.loadFormData();}loadFormData(){this.isLoading.set(true),this.userGroupState.loadFormData(this.namespaceId).pipe(U$3(this.destroyRef)).subscribe({next:({namespaceAgents:t,platformAgents:e,users:o})=>{this.namespaceAgents.set(t),this.platformAgents.set(e),this.candidateUsers.set(o),this.userGroupId?this.loadExistingGroup(this.userGroupId):this.isLoading.set(false);},error:t=>{console.error("[UserGroupForm] Failed to load form data",t),this.isLoading.set(false),this.errorMessage.set("Failed to load form data. Please try again.");}});}loadExistingGroup(t){this.userGroupState.loadExistingGroup(t).pipe(U$3(this.destroyRef)).subscribe({next:({group:e,members:o})=>{this.nameControl.setValue(e.name),this.selectedAgentIds.set(new Set(e.agentIds)),this.originalMemberExternalIds=o.map(n=>n.externalId),this.selectedMembers.set(o.map(n=>({externalId:n.externalId,label:v(n),email:n.email,role:n.role}))),this.isLoading.set(false);},error:e=>{console.error("[UserGroupForm] Failed to load user group for editing",e),this.isLoading.set(false),this.navigateBack();}});}isAgentSelected(t){return this.selectedAgentIds().has(t.id??"")}toggleAgent(t){let e=t.id;if(!e)return;let o=new Set(this.selectedAgentIds());o.has(e)?o.delete(e):o.add(e),this.selectedAgentIds.set(o);}onMemberSelected(t){this.selectedMembers().some(e=>e.externalId===t.id)||this.selectedMembers.update(e=>[...e,{externalId:t.id,label:t.name,email:t.description,role:"MEMBER"}]);}removeMember(t){this.selectedMembers.update(e=>e.filter(o=>o.externalId!==t));}setMemberRole(t,e){let o=e==="ADMIN"?"ADMIN":"MEMBER";this.selectedMembers.update(n=>n.map(m=>m.externalId===t?x$2(w$1({},m),{role:o}):m));}submit(){if(this.nameControl.invalid||this.isSubmitting())return;this.isSubmitting.set(true),this.errorMessage.set(null);let t=this.nameControl.value.trim(),e=[...this.selectedAgentIds()],o=this.selectedMembers().map(c=>c.externalId),n=this.selectedMembers().filter(c=>c.role==="ADMIN").map(c=>c.externalId);(this.isEditMode()&&this.userGroupId?this.updateGroup(this.userGroupId,t,e,o,n):this.createGroup(t,e,o,n)).pipe(U$3(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:c=>{this.isSubmitting.set(false),c.status===409?this.errorMessage.set(`A user group named "${t}" already exists in this namespace.`):c.status===400||c.status===422?this.errorMessage.set(c.error?.message??"Invalid user group data."):this.errorMessage.set("An unexpected error occurred. Please try again.");}});}createGroup(t,e,o,n){return this.userGroupState.create({namespaceId:this.namespaceId,name:t,agentIds:e,memberExternalIdsToAdd:o,adminExternalIds:n})}updateGroup(t,e,o,n,m){let{toAdd:c,toRemove:de}=ae$2(this.originalMemberExternalIds,n);return this.userGroupState.update(t,{name:e,agentIds:o,memberExternalIdsToAdd:c,memberExternalIdsToRemove:de,adminExternalIds:m})}cancel(){this.navigateBack();}navigateBack(){this.returnTo?this.router.navigateByUrl(this.returnTo):this.router.navigate(["/agentos",this.namespaceId,"user-groups"]);}static \u0275fac=function(e){return new(e||r)};static \u0275cmp=xw({type:r,selectors:[["agentos-user-group-form"]],decls:12,vars:2,consts:[["agentRow",""],[1,"user-group-form"],[1,"user-group-form__header"],["type","button","title","Back to user groups",1,"user-group-form__back",3,"click"],[1,"user-group-form__back-icon"],[1,"user-group-form__title"],[1,"user-group-form__loading"],[1,"user-group-form__form",3,"formGroup"],[1,"user-group-form__form",3,"ngSubmit","formGroup"],[1,"user-group-form__field"],["for","user-group-name",1,"user-group-form__label"],["aria-hidden","true"],["id","user-group-name","type","text","placeholder","e.g. Support team","formControlName","name","autocomplete","off",1,"user-group-form__input"],[1,"user-group-form__field-error"],[1,"user-group-form__section"],[1,"user-group-form__label"],[1,"user-group-form__label-hint"],[1,"user-group-form__section-hint"],[1,"user-group-form__empty-hint"],[1,"user-group-form__agent-group"],[1,"user-group-form__members"],["placeholder","Add a member\u2026",3,"itemSelected","dataSource"],[1,"user-group-form__error"],[1,"user-group-form__actions"],["type","submit",1,"user-group-form__btn","user-group-form__btn--primary",3,"disabled"],["type","button",1,"user-group-form__btn",3,"click"],[1,"user-group-form__agent-group-title"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"user-group-form__member"],[1,"user-group-form__member-info"],[1,"user-group-form__member-name"],[1,"user-group-form__member-email"],[1,"user-group-form__member-role",3,"change","value"],["value","MEMBER"],["value","ADMIN"],["type","button",1,"user-group-form__member-remove",3,"click","title"],[1,"user-group-form__agent"],["type","checkbox",1,"user-group-form__agent-checkbox",3,"change","checked"],[1,"user-group-form__agent-name"]],template:function(e,o){e&1&&(ws$1(0,"div",1)(1,"header",2)(2,"button",3),Rg("click",function(){return o.cancel()}),ws$1(3,"span",4),GC(4,"\u2190"),pl$1(),GC(5," User Groups "),pl$1(),ws$1(6,"h1",5),GC(7),pl$1()(),Jw(8,ue,2,0,"p",6)(9,Ge$1,34,12,"form",7),pl$1(),Eg(10,Oe,4,2,"ng-template",null,0,fT)),e&2&&(XE(7),Yg(o.isEditMode()?"Edit user group":"New user group"),XE(),eC(o.isLoading()?8:9));},dependencies:[_b,ni$1,Jn,Qn,ei$1,Ye,Zn$1,Xn,En,An,Pn],styles:[".user-group-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.user-group-form__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.user-group-form__back[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.375rem;background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-primary, #007aff);font-family:inherit}.user-group-form__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.user-group-form__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.user-group-form__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-text, #1d1d1f);letter-spacing:-.02em}.user-group-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);font-size:.9rem;margin:0}.user-group-form__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.25rem}.user-group-form__field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.user-group-form__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text, #1d1d1f)}.user-group-form__label-hint[_ngcontent-%COMP%]{font-weight:400;color:var(--color-text-secondary, #6e6e73);margin-left:.375rem}.user-group-form__input[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.9375rem;font-family:inherit;outline:none;box-sizing:border-box;transition:border-color .15s ease}.user-group-form__input[_ngcontent-%COMP%]:focus{border-color:var(--color-primary, #007aff)}.user-group-form__input[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary, #6e6e73)}.user-group-form__input--invalid[_ngcontent-%COMP%]{border-color:var(--color-error, #ff3b30)}.user-group-form__input--invalid[_ngcontent-%COMP%]:focus{border-color:var(--color-error, #ff3b30)}.user-group-form__section[_ngcontent-%COMP%]{border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:8px;padding:1rem;margin:0;display:flex;flex-direction:column;gap:.75rem}.user-group-form__section-hint[_ngcontent-%COMP%]{margin:0;font-size:.8rem;color:var(--color-text-secondary, #6e6e73);line-height:1.4}.user-group-form__empty-hint[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--color-text-secondary, #6e6e73);font-style:italic}.user-group-form__agent-group[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem}.user-group-form__agent-group-title[_ngcontent-%COMP%]{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary, #6e6e73);margin-bottom:.25rem}.user-group-form__agent[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.375rem .5rem;border-radius:6px;cursor:pointer;transition:background .15s ease}.user-group-form__agent[_ngcontent-%COMP%]:hover{background:var(--color-surface-hover, rgba(0, 0, 0, .03))}.user-group-form__agent-checkbox[_ngcontent-%COMP%]{flex-shrink:0;accent-color:var(--color-primary, #007aff)}.user-group-form__agent-name[_ngcontent-%COMP%]{font-size:.9rem;color:var(--color-text, #1d1d1f)}.user-group-form__members[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.375rem}.user-group-form__member[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;padding:.4rem .5rem;border-radius:8px;background:var(--color-surface-hover, rgba(0, 0, 0, .03));border:1px solid var(--color-border, rgba(0, 0, 0, .08))}.user-group-form__member-info[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.1rem;min-width:0}.user-group-form__member-name[_ngcontent-%COMP%]{font-size:.9rem;color:var(--color-text, #1d1d1f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-group-form__member-email[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary, #6e6e73);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-group-form__member-role[_ngcontent-%COMP%]{flex-shrink:0;padding:.3rem .5rem;border-radius:6px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.8rem;font-family:inherit;cursor:pointer}.user-group-form__member-role[_ngcontent-%COMP%]:focus{outline:none;border-color:var(--color-primary, #007aff)}.user-group-form__member-remove[_ngcontent-%COMP%]{flex-shrink:0;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;border-radius:50%;border:none;background:transparent;color:var(--color-text-secondary, #6e6e73);font-size:1rem;line-height:1;cursor:pointer;transition:background .15s ease,color .15s ease}.user-group-form__member-remove[_ngcontent-%COMP%]:hover{background:var(--color-error-light, rgba(255, 59, 48, .12));color:var(--color-error, #ff3b30)}.user-group-form__error[_ngcontent-%COMP%]{margin:0;padding:.625rem .875rem;border-radius:8px;background:var(--color-error-light, rgba(255, 59, 48, .08));border:1px solid var(--color-error, #ff3b30);color:var(--color-error, #ff3b30);font-size:.875rem;line-height:1.4}.user-group-form__field-error[_ngcontent-%COMP%]{font-size:.8rem;color:var(--color-error, #ff3b30);line-height:1.3}.user-group-form__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.user-group-form__btn[_ngcontent-%COMP%]{padding:.6rem 1.25rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.9375rem;font-family:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease}.user-group-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-surface-hover, rgba(0, 0, 0, .04))}.user-group-form__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.user-group-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-primary, #007aff);border-color:var(--color-primary, #007aff);color:#fff}.user-group-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-primary-hover, #0051d5);border-color:var(--color-primary-hover, #0051d5)}"]})};var Q=[[["","agentosCardChips",""]]],q$1=["[agentosCardChips]"];function F(n,t){n&1&&Ng(0);}function U$2(n,t){if(n&1){let e=lC();ws$1(0,"button",3),Rg("click",function(){If(e);let l=gC();return wf(l.nameClicked.emit())}),Eg(1,F,1,0,"ng-container",4),pl$1();}if(n&2){gC();let e=CC(3);XE(),bg("ngTemplateOutlet",e);}}function R$1(n,t){n&1&&Ng(0);}function G$2(n,t){if(n&1&&(ws$1(0,"div",2),Eg(1,R$1,1,0,"ng-container",4),pl$1()),n&2){gC();let e=CC(3);XE(),bg("ngTemplateOutlet",e);}}function H$1(n,t){if(n&1&&(ws$1(0,"div",7),Sg(1,"img",15),pl$1()),n&2){let e=gC(2);XE(),bg("src",e.logo(),yh)("alt",e.name());}}function J$1(n,t){if(n&1&&(ws$1(0,"div",16),GC(1),pl$1()),n&2){let e=gC(2);Ug("ac__mark--emoji",e.markIsEmoji()),XE(),Yg(e.resolvedMark);}}function L$2(n,t){if(n&1&&(ws$1(0,"span",10),GC(1),pl$1()),n&2){let e=gC(2);XE(),Yg(e.name());}}function W$1(n,t){if(n&1){let e=lC();ws$1(0,"button",17),Rg("click",function(){If(e);let l=gC(2);return wf(l.nameClicked.emit())}),GC(1),pl$1();}if(n&2){let e=gC(2);XE(),Yg(e.name());}}function X$1(n,t){if(n&1&&(ws$1(0,"p",12),GC(1),pl$1()),n&2){let e=gC(2);XE(),Yg(e.description());}}function Y(n,t){if(n&1){let e=lC();ws$1(0,"ds-kebab-menu",18),Rg("itemSelected",function(l){If(e);let K=gC(2);return wf(K.menuAction.emit(l))}),pl$1();}if(n&2){let e=gC(2);bg("items",e.menuItems());}}function Z$1(n,t){n&1&&(ws$1(0,"div",14),vC(1),pl$1());}function $$1(n,t){if(n&1&&(ws$1(0,"div",5)(1,"div",6),Jw(2,H$1,2,2,"div",7)(3,J$1,2,3,"div",8),ws$1(4,"div",9),Jw(5,L$2,2,1,"span",10)(6,W$1,2,1,"button",11),Jw(7,X$1,2,1,"p",12),pl$1()(),Jw(8,Y,1,1,"ds-kebab-menu",13),pl$1(),Jw(9,Z$1,2,0,"div",14)),n&2){let e=gC();XE(2),eC(e.logo()?2:3),XE(3),eC(e.clickable()?5:6),XE(2),eC(e.description()?7:-1),XE(),eC(e.hasMenu?8:-1),XE(),eC(e.hasChips?9:-1);}}var h$2=class n{static \u0275fac=function(e){return new(e||n)};static \u0275dir=js$1({type:n,selectors:[["","agentosCardChips",""]]})},B$1=class n{name=ZB.required();description=ZB(null);mark=ZB(null);markIsEmoji=ZB(false);logo=ZB(null);menuItems=ZB([]);clickable=ZB(false);nameClicked=qB();menuAction=qB();chipsSlot=XB(h$2);get resolvedMark(){return this.mark()??(this.name().charAt(0).toUpperCase()||"?")}get hasChips(){return this.chipsSlot()!==void 0}get hasMenu(){return this.menuItems().length>0}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=xw({type:n,selectors:[["agentos-action-card"]],contentQueries:function(e,m,l){e&1&&Lg(l,m.chipsSlot,h$2,5),e&2&&wC();},inputs:{name:[1,"name"],description:[1,"description"],mark:[1,"mark"],markIsEmoji:[1,"markIsEmoji"],logo:[1,"logo"],menuItems:[1,"menuItems"],clickable:[1,"clickable"]},outputs:{nameClicked:"nameClicked",menuAction:"menuAction"},ngContentSelectors:q$1,decls:4,vars:1,consts:[["cardContent",""],["type","button","dsBlueprint","",1,"ac","ac--clickable"],["dsBlueprint","",1,"ac"],["type","button","dsBlueprint","",1,"ac","ac--clickable",3,"click"],[4,"ngTemplateOutlet"],[1,"ac__header"],[1,"ac__id"],["aria-hidden","true",1,"ac__mark","ac__mark--logo"],["aria-hidden","true",1,"ac__mark",3,"ac__mark--emoji"],[1,"ac__meta"],[1,"ac__name"],["type","button",1,"ac__name"],[1,"ac__description"],[3,"items"],[1,"ac__chips"],[1,"ac__logo-img",3,"src","alt"],["aria-hidden","true",1,"ac__mark"],["type","button",1,"ac__name",3,"click"],[3,"itemSelected","items"]],template:function(e,m){e&1&&(yC(Q),Jw(0,U$2,2,1,"button",1)(1,G$2,2,1,"div",2),Eg(2,$$1,10,5,"ng-template",null,0,fT)),e&2&&eC(m.clickable()?0:1);},dependencies:[Kn,Zn,_b],styles:['[_nghost-%COMP%]{display:block;height:var(--ac-height, auto)}.ac[_ngcontent-%COMP%]{background:var(--color-bg);border:1px solid var(--color-divider);border-radius:0;box-shadow:var(--shadow-sm);overflow:hidden;transition:border-color .15s ease,box-shadow .15s ease}.ac[_ngcontent-%COMP%]:hover{border-color:var(--color-accent);box-shadow:var(--shadow-sm)}.ac[_ngcontent-%COMP%]{overflow:visible}.ac--clickable[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;padding:0;margin:0;font:inherit;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:var(--color-bg);border:1px solid var(--color-divider);border-radius:0;box-shadow:var(--shadow-sm);overflow:hidden;transition:border-color .15s ease,box-shadow .15s ease}.ac--clickable[_ngcontent-%COMP%]{background:var(--color-bg);border:1px solid var(--color-divider);border-radius:0;box-shadow:var(--shadow-sm);overflow:hidden;transition:border-color .15s ease,box-shadow .15s ease}.ac--clickable[_ngcontent-%COMP%]{cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.ac--clickable[_ngcontent-%COMP%]:hover{border-color:var(--color-accent);box-shadow:var(--shadow-sm)}.ac--clickable[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.ac--clickable[_ngcontent-%COMP%]:active{background:var(--color-bg-hover)}.ac--clickable[_ngcontent-%COMP%]{overflow:visible;width:100%;height:100%;text-align:left}.ac--clickable[_ngcontent-%COMP%] .ac__name[_ngcontent-%COMP%]{cursor:inherit}.ac--clickable[_ngcontent-%COMP%] .ac__name[_ngcontent-%COMP%]:hover{text-decoration:none}.ac__header[_ngcontent-%COMP%]{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:16px 18px 14px}.ac__id[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.ac__mark[_ngcontent-%COMP%]{width:32px;height:32px;border-radius:0;background:#161616;color:#fff;border:none;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--font-body, "Inter", -apple-system, sans-serif);font-size:13px;font-weight:700;line-height:1;align-self:flex-start}.ac__mark--logo[_ngcontent-%COMP%]{background:var(--color-surface);border:1px solid var(--color-divider);padding:4px}[data-theme=dark][_ngcontent-%COMP%] .ac__mark--logo[_ngcontent-%COMP%]{background:transparent}.ac__mark--emoji[_ngcontent-%COMP%]{font-size:18px;line-height:32px;background:var(--color-surface);border:1px solid var(--color-divider);color:inherit}[data-theme=dark][_ngcontent-%COMP%] .ac__mark--emoji[_ngcontent-%COMP%]{background:transparent}.ac__logo-img[_ngcontent-%COMP%]{width:100%;height:100%;object-fit:contain;border-radius:0;display:block}.ac__meta[_ngcontent-%COMP%]{min-width:0}.ac__description[_ngcontent-%COMP%]{font-family:var(--font-body, "Inter", -apple-system, sans-serif);font-size:.8125rem;font-weight:400;line-height:1.4;color:var(--color-text-secondary, #6e6e73);margin:2px 0 0}.ac__name[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;padding:0;margin:0;font:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;font-family:var(--font-body, "Inter", -apple-system, sans-serif);font-size:14px;font-weight:600;line-height:1.3;color:var(--color-text, #1d1d1f);display:block;word-break:break-word;text-align:left}.ac__name[_ngcontent-%COMP%]:hover{text-decoration:underline}.ac__name[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:0}.ac__chips[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:6px;padding:0 14px 16px}[_nghost-%COMP%] .ac-chip{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 12px 0 10px;border-radius:0;border:1px solid var(--color-divider);background:var(--color-surface);color:var(--color-text);font-family:var(--font-body);font-size:13px;font-weight:500;line-height:1;cursor:pointer;white-space:nowrap;transition:background .12s ease,border-color .12s ease}[_nghost-%COMP%] .ac-chip:hover{background:var(--color-bg-hover);border-color:var(--color-neutral-500)}[_nghost-%COMP%] .ac-chip svg{flex-shrink:0}']})};var c$2=class t{api=g(le$3);destroy=g(Ce$1);configurationState=Gi$1("loading");state=this.configurationState.asReadonly();enabled=mT(()=>this.state()==="enabled");constructor(){this.load();}retry(){this.state()==="error"&&this.load();}load(){this.configurationState.set("loading"),this.api.getUsageConfiguration().pipe(U$3(this.destroy)).subscribe({next:a=>{let e=a?.enabled;this.configurationState.set(typeof e=="boolean"?e?"enabled":"disabled":"error");},error:()=>this.configurationState.set("error")});}static \u0275fac=function(e){return new(e||t)};static \u0275prov=x$1({token:t,factory:t.\u0275fac,providedIn:"root"})};var te$1=()=>[];function ne$1(l,n){if(l&1){let t=lC();ml$1(0,1),ws$1(1,"span",2),GC(2,"Delete?"),pl$1(),ws$1(3,"ds-icon-button",3),Rg("action",function(){If(t);let e=gC();return wf(e.onDeleteConfirmed())}),pl$1(),ws$1(4,"ds-icon-button",4),Rg("action",function(){If(t);let e=gC();return wf(e.onDeleteCancelled())}),pl$1(),yl$1();}}function ie$1(l,n){if(l&1){let t=lC();ws$1(0,"button",5),Rg("click",function(){If(t);let e=gC(2);return wf(e.usageRequested.emit(e.namespace()))}),GC(1,"Usage and costs"),pl$1();}}function oe$1(l,n){if(l&1){let t=lC();ws$1(0,"button",5),Rg("click",function(){If(t);let e=gC(2);return wf(e.onGit())}),kf(),ws$1(1,"svg",6),Sg(2,"circle",31)(3,"circle",32)(4,"circle",33)(5,"path",34),pl$1(),GC(6," Git "),pl$1();}}function ae$1(l,n){if(l&1){let t=lC();ml$1(0,1),ws$1(1,"button",5),Rg("click",function(){If(t);let e=gC();return wf(e.onIntegrations())}),kf(),ws$1(2,"svg",6),Sg(3,"path",7)(4,"path",8),pl$1(),GC(5," Integrations "),pl$1(),Ff(),ws$1(6,"button",5),Rg("click",function(){If(t);let e=gC();return wf(e.onAiProviders())}),kf(),ws$1(7,"svg",6),Sg(8,"rect",9)(9,"rect",10)(10,"path",11),pl$1(),GC(11," AI Providers "),pl$1(),Jw(12,ie$1,2,0,"button",12),Ff(),ws$1(13,"button",5),Rg("click",function(){If(t);let e=gC();return wf(e.onAiModels())}),kf(),ws$1(14,"svg",6),Sg(15,"path",13),pl$1(),GC(16," AI Models "),pl$1(),Ff(),ws$1(17,"button",5),Rg("click",function(){If(t);let e=gC();return wf(e.onAgentConfigs())}),kf(),ws$1(18,"svg",6),Sg(19,"path",14)(20,"circle",15)(21,"circle",16),pl$1(),GC(22," Agent Configs "),pl$1(),Ff(),ws$1(23,"button",5),Rg("click",function(){If(t);let e=gC();return wf(e.onPrompts())}),kf(),ws$1(24,"svg",6),Sg(25,"path",17)(26,"path",18)(27,"path",19),pl$1(),GC(28," Prompts "),pl$1(),Ff(),ws$1(29,"button",5),Rg("click",function(){If(t);let e=gC();return wf(e.onScheduledPrompts())}),kf(),ws$1(30,"svg",6),Sg(31,"circle",20)(32,"path",21),pl$1(),GC(33," Schedulers "),pl$1(),Ff(),ws$1(34,"button",5),Rg("click",function(){If(t);let e=gC();return wf(e.onUserGroups())}),kf(),ws$1(35,"svg",6),Sg(36,"circle",22)(37,"path",23)(38,"path",24),pl$1(),GC(39," User Groups "),pl$1(),Ff(),ws$1(40,"button",5),Rg("click",function(){If(t);let e=gC();return wf(e.onAuthSettings())}),kf(),ws$1(41,"svg",6),Sg(42,"circle",25)(43,"path",26)(44,"path",27),pl$1(),GC(45," Auth Settings "),pl$1(),Ff(),ws$1(46,"button",5),Rg("click",function(){If(t);let e=gC();return wf(e.onMembers())}),kf(),ws$1(47,"svg",6),Sg(48,"circle",25)(49,"path",28),pl$1(),GC(50," Members "),pl$1(),Jw(51,oe$1,7,0,"button",12),Ff(),ws$1(52,"button",5),Rg("click",function(){If(t);let e=gC();return wf(e.onToolInvoke())}),kf(),ws$1(53,"svg",6),Sg(54,"path",29)(55,"path",30),pl$1(),GC(56," Tool Invoke "),pl$1(),yl$1();}if(l&2){let t=gC();XE(12),eC(t.usageConfiguration.enabled()?12:-1),XE(39),eC(t.gitAvailable()?51:-1);}}var q=class l{usageConfiguration=g(c$2);namespace=ZB.required();gitAvailable=ZB(false);selected=qB();editRequested=qB();integrationsRequested=qB();aiProvidersRequested=qB();aiModelsRequested=qB();agentConfigsRequested=qB();promptsRequested=qB();scheduledPromptsRequested=qB();userGroupsRequested=qB();usageRequested=qB();membersRequested=qB();gitRequested=qB();authSettingsRequested=qB();toolInvokeRequested=qB();deleteRequested=qB();pendingDelete=Gi$1(false);menuItems=[{key:"edit",label:"Edit namespace"},{key:"separator",label:"",variant:"separator"},{key:"delete",label:"Delete namespace",variant:"danger"}];onSelect(){this.selected.emit(this.namespace());}onIntegrations(){this.integrationsRequested.emit(this.namespace());}onAiProviders(){this.aiProvidersRequested.emit(this.namespace());}onAiModels(){this.aiModelsRequested.emit(this.namespace());}onAgentConfigs(){this.agentConfigsRequested.emit(this.namespace());}onPrompts(){this.promptsRequested.emit(this.namespace());}onScheduledPrompts(){this.scheduledPromptsRequested.emit(this.namespace());}onUserGroups(){this.userGroupsRequested.emit(this.namespace());}onMembers(){this.membersRequested.emit(this.namespace());}onGit(){this.gitRequested.emit(this.namespace());}onAuthSettings(){this.authSettingsRequested.emit(this.namespace());}onToolInvoke(){this.toolInvokeRequested.emit(this.namespace());}onMenuAction(n){switch(n){case "edit":this.editRequested.emit(this.namespace());break;case "delete":this.pendingDelete.set(true);break}}onDeleteConfirmed(){this.pendingDelete.set(false),this.deleteRequested.emit(this.namespace());}onDeleteCancelled(){this.pendingDelete.set(false);}static \u0275fac=function(t){return new(t||l)};static \u0275cmp=xw({type:l,selectors:[["agentos-namespace-item"]],inputs:{namespace:[1,"namespace"],gitAvailable:[1,"gitAvailable"]},outputs:{selected:"selected",editRequested:"editRequested",integrationsRequested:"integrationsRequested",aiProvidersRequested:"aiProvidersRequested",aiModelsRequested:"aiModelsRequested",agentConfigsRequested:"agentConfigsRequested",promptsRequested:"promptsRequested",scheduledPromptsRequested:"scheduledPromptsRequested",userGroupsRequested:"userGroupsRequested",usageRequested:"usageRequested",membersRequested:"membersRequested",gitRequested:"gitRequested",authSettingsRequested:"authSettingsRequested",toolInvokeRequested:"toolInvokeRequested",deleteRequested:"deleteRequested"},decls:3,vars:4,consts:[[3,"nameClicked","menuAction","name","menuItems"],["agentosCardChips",""],[1,"ns-confirm-label"],["icon","check","variant","danger","title","Confirm deletion",3,"action"],["icon","close","title","Cancel",3,"action"],["type","button",1,"ac-chip",3,"click"],["width","13","height","13","viewBox","0 0 24 24","fill","none","aria-hidden","true"],["d","M8 2v4M16 2v4M6 8h12v3a6 6 0 01-12 0V8z","stroke","currentColor","stroke-width","1.6","stroke-linecap","round","stroke-linejoin","round"],["d","M12 17v3","stroke","currentColor","stroke-width","1.6","stroke-linecap","round"],["x","7","y","7","width","10","height","10","rx","1.5","stroke","currentColor","stroke-width","1.6"],["x","10","y","10","width","4","height","4","rx","0.5","stroke","currentColor","stroke-width","1.4"],["d","M9 2v3M12 2v3M15 2v3M9 19v3M12 19v3M15 19v3M2 9h3M2 12h3M2 15h3M19 9h3M19 12h3M19 15h3","stroke","currentColor","stroke-width","1.4","stroke-linecap","round"],["type","button",1,"ac-chip"],["d","M12 3l1.8 5.6L19 10l-5.2 1.6L12 17l-1.8-5.4L5 10l5.2-1.4L12 3z","stroke","currentColor","stroke-width","1.5","stroke-linejoin","round"],["d","M4 7h9M17 7h3M4 17h3M11 17h9","stroke","currentColor","stroke-width","1.6","stroke-linecap","round"],["cx","13","cy","7","r","2.2","stroke","currentColor","stroke-width","1.6"],["cx","8","cy","17","r","2.2","stroke","currentColor","stroke-width","1.6"],["d","M7 3h7l4 4v14a1 1 0 01-1 1H7a1 1 0 01-1-1V4a1 1 0 011-1z","stroke","currentColor","stroke-width","1.6","stroke-linejoin","round"],["d","M14 3v4h4","stroke","currentColor","stroke-width","1.6","stroke-linejoin","round"],["d","M9 13h6M9 17h6","stroke","currentColor","stroke-width","1.4","stroke-linecap","round"],["cx","12","cy","12","r","9","stroke","currentColor","stroke-width","1.6"],["d","M12 7v5l3 3","stroke","currentColor","stroke-width","1.6","stroke-linecap","round","stroke-linejoin","round"],["cx","9","cy","8","r","3","stroke","currentColor","stroke-width","1.6"],["d","M3 20a6 6 0 0112 0","stroke","currentColor","stroke-width","1.6","stroke-linecap","round"],["d","M16 5.5a3 3 0 010 5.5M18 20a6 6 0 00-3-5.2","stroke","currentColor","stroke-width","1.5","stroke-linecap","round"],["cx","12","cy","8","r","3.2","stroke","currentColor","stroke-width","1.6"],["d","M5 20c0-3.3 3.1-6 7-6s7 2.7 7 6","stroke","currentColor","stroke-width","1.6","stroke-linecap","round"],["d","M17 13.5l1 1.5-.8.5.8 1.5H16l-.3-1-.7.2-.7-.2-.3 1h-2l.8-1.5-.8-.5 1-1.5","stroke","currentColor","stroke-width","1.3","stroke-linejoin","round"],["d","M5 20a7 7 0 0114 0","stroke","currentColor","stroke-width","1.6","stroke-linecap","round"],["d","M9 3h6M10 3v6.5L5.2 18A2 2 0 007 21h10a2 2 0 001.8-3L14 9.5V3","stroke","currentColor","stroke-width","1.6","stroke-linecap","round","stroke-linejoin","round"],["d","M7.5 15h9","stroke","currentColor","stroke-width","1.4","stroke-linecap","round"],["cx","7","cy","6","r","2.2","stroke","currentColor","stroke-width","1.6"],["cx","7","cy","18","r","2.2","stroke","currentColor","stroke-width","1.6"],["cx","17","cy","12","r","2.2","stroke","currentColor","stroke-width","1.6"],["d","M7 8.2v7.6M9.2 17A6 6 0 0014.9 12.6","stroke","currentColor","stroke-width","1.6","stroke-linecap","round"]],template:function(t,i){t&1&&(ws$1(0,"agentos-action-card",0),Rg("nameClicked",function(){return i.onSelect()})("menuAction",function(a){return i.onMenuAction(a)}),Jw(1,ne$1,5,0,"ng-container",1)(2,ae$1,57,2,"ng-container",1),pl$1()),t&2&&(bg("name",i.namespace().name)("menuItems",i.pendingDelete()?rT(3,te$1):i.menuItems),XE(),eC(i.pendingDelete()?1:2));},dependencies:[B$1,h$2,Se$1],styles:[".ns-confirm-label[_ngcontent-%COMP%]{font:500 12px Inter,sans-serif;color:var(--color-error, #a5140a);white-space:nowrap;align-self:center}"]})};var se$1=()=>[];function re$1(l,n){if(l&1){let t=lC();ws$1(0,"agentos-namespace-item",3),Rg("selected",function(e){If(t);let a=gC(2);return wf(a.navigateToHome(e.id??""))})("editRequested",function(e){If(t);let a=gC(2);return wf(a.navigateToEdit(e))})("deleteRequested",function(e){If(t);let a=gC(2);return wf(a.deleteNamespace(e))})("integrationsRequested",function(e){If(t);let a=gC(2);return wf(a.openIntegrations(e))})("aiProvidersRequested",function(e){If(t);let a=gC(2);return wf(a.openAiProviders(e))})("aiModelsRequested",function(e){If(t);let a=gC(2);return wf(a.openAiModels(e))})("agentConfigsRequested",function(e){If(t);let a=gC(2);return wf(a.openAgentConfigs(e))})("promptsRequested",function(e){If(t);let a=gC(2);return wf(a.openPrompts(e))})("scheduledPromptsRequested",function(e){If(t);let a=gC(2);return wf(a.openScheduledPrompts(e))})("userGroupsRequested",function(e){If(t);let a=gC(2);return wf(a.openUserGroups(e))})("membersRequested",function(e){If(t);let a=gC(2);return wf(a.openMembers(e))})("usageRequested",function(e){If(t);let a=gC(2);return wf(a.openUsage(e))})("gitRequested",function(e){If(t);let a=gC(2);return wf(a.openGit(e))})("authSettingsRequested",function(e){If(t);let a=gC(2);return wf(a.openAuthSettings(e))})("toolInvokeRequested",function(e){If(t);let a=gC(2);return wf(a.openToolInvoke(e))}),pl$1();}if(l&2){let t=gC(2);bg("namespace",n)("gitAvailable",t.gitAvailable());}}function ce$1(l,n){if(l&1&&Jw(0,re$1,1,2,"agentos-namespace-item",2),l&2){let t,i=n.$implicit,e=gC();eC((t=e.namespacesById().get(i.id))?0:-1,t);}}var me="GIT",X=class l{router=g(G$5);namespaceController=g(D$2);destroyRef=g(Ce$1);integrationTypeController=g(F$2);refresh$=new Tr$1(void 0);isLoading=Gi$1(true);gitAvailable=F$1(this.integrationTypeController.listTypesIntegrationType().pipe(re$4(n=>n.some(t=>t.type===me)),ya$1(()=>br$1(false))),{initialValue:false});namespaces$=this.refresh$.pipe(va$1(()=>(this.isLoading.set(true),this.namespaceController.listAllNamespace())));namespaceItems$=this.namespaces$.pipe(re$4(n=>n.map(t=>({id:t.id??"",name:t.name,description:t.description,badges:t.defaultAgentName?[{label:t.defaultAgentName,variant:"info"}]:void 0}))));namespacesById=Gi$1(new Map);constructor(){this.namespaces$.pipe(U$3(this.destroyRef)).subscribe({next:n=>{this.namespacesById.set(new Map(n.map(t=>[t.id??"",t]))),this.isLoading.set(false);},error:()=>this.isLoading.set(false)});}navigateToHome(n){this.router.navigate(["/agentos/home"],{queryParams:{ns:n}});}navigateToCreate(){this.router.navigate(["/agentos/namespaces/new"]);}navigateToEdit(n){this.router.navigate(["/agentos/namespaces",n.id??"","edit"]);}openIntegrations(n){this.router.navigate(["/agentos",n.id,"integrations"]);}openAiProviders(n){this.router.navigate(["/agentos",n.id,"ai-providers"]);}openAiModels(n){this.router.navigate(["/agentos",n.id,"ai-models"]);}openAgentConfigs(n){this.router.navigate(["/agentos",n.id,"agent-configs"]);}openPrompts(n){this.router.navigate(["/agentos",n.id,"prompts"]);}openScheduledPrompts(n){this.router.navigate(["/agentos",n.id,"scheduled-prompts"]);}openUserGroups(n){this.router.navigate(["/agentos",n.id,"user-groups"]);}openAuthSettings(n){this.router.navigate(["/agentos",n.id,"auth-settings"]);}openUsage(n){this.router.navigate(["/agentos",n.id,"usage"]);}openMembers(n){this.router.navigate(["/agentos",n.id,"members"]);}openToolInvoke(n){this.router.navigate(["/agentos",n.id,"tool-invoke"]);}openGit(n){this.router.navigate(["/agentos",n.id,"git"]);}deleteNamespace(n){this.namespaceController.deleteNamespace(n.id??"").pipe(U$3(this.destroyRef)).subscribe(()=>this.refresh$.next());}static \u0275fac=function(t){return new(t||l)};static \u0275cmp=xw({type:l,selectors:[["agentos-namespace-list"]],decls:4,vars:7,consts:[["namespaceItemTpl",""],["title","Namespaces","emptyMessage","No namespaces yet. Create one to get started.","cardMinWidth","400px",3,"itemSelected","createRequested","items","loading","showCreate","itemTemplate"],[3,"namespace","gitAvailable"],[3,"selected","editRequested","deleteRequested","integrationsRequested","aiProvidersRequested","aiModelsRequested","agentConfigsRequested","promptsRequested","scheduledPromptsRequested","userGroupsRequested","membersRequested","usageRequested","gitRequested","authSettingsRequested","toolInvokeRequested","namespace","gitAvailable"]],template:function(t,i){if(t&1&&(ws$1(0,"ds-entity-list",1),aT(1,"async"),Rg("itemSelected",function(a){return i.navigateToHome(a)})("createRequested",function(){return i.navigateToCreate()}),pl$1(),Eg(2,ce$1,1,1,"ng-template",null,0,fT)),t&2){let e=CC(3);bg("items",uT(1,4,i.namespaceItems$)??rT(6,se$1))("loading",i.isLoading())("showCreate",true)("itemTemplate",e);}},dependencies:[q,Wn,xb],styles:["[_nghost-%COMP%] .ac, [_nghost-%COMP%] .ac--clickable{background:var(--color-bg);border:1px solid var(--color-divider);box-shadow:none}[_nghost-%COMP%] .ac:hover, [_nghost-%COMP%] .ac--clickable:hover{border-color:var(--color-accent);box-shadow:none}[_nghost-%COMP%] .ac__mark{width:28px;height:28px;border-radius:0;background:var(--color-accent-900);color:var(--color-accent-100);font-family:var(--font-heading);font-weight:600;font-size:13px}[_nghost-%COMP%] .ac__name{font-family:var(--font-heading);font-weight:600;font-size:16.5px;line-height:1.15;overflow-wrap:anywhere;color:var(--color-text)}[_nghost-%COMP%] .ac__chips{gap:6px;padding:0 16px 16px}[_nghost-%COMP%] .ac-chip{border:1px solid var(--color-divider);color:var(--color-neutral-600);background:transparent;font-family:var(--font-heading);font-weight:600;font-size:11px;letter-spacing:.08em;text-transform:uppercase}[_nghost-%COMP%] .ac-chip:hover{background:var(--color-accent-100);border-color:var(--color-accent-300);color:var(--color-accent-700)}"]})};var c$1=class o{userController=g(de$1);users=Gi$1([]);isLoading=Gi$1(false);loadAll(){return this.isLoading.set(true),this.userController.listAllUser().pipe(Od({next:e=>{this.users.set(e),this.isLoading.set(false);},error:()=>this.isLoading.set(false)}))}createUser(e){return this.userController.createUser(e).pipe(Od(()=>{this.loadAll().subscribe();}))}updateUser(e,r){let t=this.users().find(i=>i.id===e);if(!t)throw new Error(`Cannot update: user ${e} not found in state`);let U=w$1(w$1({},t),r);return this.userController.updateUser(e,U).pipe(Od(i=>{this.users.update(b=>b.map(l=>l.id===i.id?i:l));}))}deleteUser(e){return this.userController.deleteUser(e).pipe(Od(()=>{this.users.update(r=>r.filter(t=>t.id!==e));}))}static \u0275fac=function(r){return new(r||o)};static \u0275prov=x$1({token:o,factory:o.\u0275fac,providedIn:"root"})};function j$1(i,o){i&1&&(ws$1(0,"p",5),GC(1,"Loading\u2026"),pl$1());}function H(i,o){if(i&1&&(ws$1(0,"span",13),GC(1),pl$1()),i&2){let t=gC(2);XE(),Yg(t.form.controls.email.value);}}function J(i,o){i&1&&(Sg(0,"input",14),VI()),i&2&&UI();}function K(i,o){if(i&1){let t=lC();ws$1(0,"form",7),Rg("ngSubmit",function(){If(t);let l=gC();return wf(l.save())}),ws$1(1,"div",8)(2,"h2",9),GC(3,"Identity"),pl$1(),ws$1(4,"div",10)(5,"label",11),GC(6,"Email "),ws$1(7,"span",12),GC(8,"*"),pl$1()(),Jw(9,H,2,1,"span",13)(10,J,1,0,"input",14),pl$1(),ws$1(11,"div",10)(12,"label",15),GC(13,"External ID"),pl$1(),Sg(14,"input",16),VI(),pl$1()(),ws$1(15,"div",8)(16,"h2",9),GC(17,"Profile"),pl$1(),ws$1(18,"div",10)(19,"label",17),GC(20,"First name"),pl$1(),Sg(21,"input",18),VI(),pl$1(),ws$1(22,"div",10)(23,"label",19),GC(24,"Last name"),pl$1(),Sg(25,"input",20),VI(),pl$1(),ws$1(26,"div",21)(27,"label",22),GC(28,"Bio"),pl$1(),Sg(29,"textarea",23),VI(),pl$1()(),ws$1(30,"div",8)(31,"h2",9),GC(32,"Permissions"),pl$1(),ws$1(33,"div",24),Sg(34,"input",25),VI(),ws$1(35,"label",26),GC(36," Super admin (full access to AgentOS) "),pl$1()()(),ws$1(37,"div",27)(38,"button",28),GC(39),pl$1(),ws$1(40,"button",29),Rg("click",function(){If(t);let l=gC();return wf(l.cancel())}),GC(41,"Cancel"),pl$1()()();}if(i&2){let t=gC();bg("formGroup",t.form),XE(9),eC(t.isEditMode?9:10),XE(5),UI(),XE(7),UI(),XE(4),UI(),XE(4),UI(),XE(5),UI(),XE(4),bg("disabled",t.form.invalid||t.isSaving()),XE(),vl$1(" ",t.isSaving()?"Saving\u2026":t.isEditMode?"Save changes":"Create user"," ");}}var $=class i{route=g(V$2);router=g(G$5);destroyRef=g(Ce$1);userAdminState=g(c$1);userState=g(l$3);userId=this.route.snapshot.params.userId;isEditMode=!!this.userId;isSaving=Gi$1(false);isLoading=Gi$1(false);form=new z$2({email:new _t("",{nonNullable:true,validators:[_e$1.required,_e$1.email]}),externalId:new _t("",{nonNullable:true}),firstname:new _t("",{nonNullable:true}),lastname:new _t("",{nonNullable:true}),bio:new _t("",{nonNullable:true}),isAdmin:new _t(false,{nonNullable:true})});ngOnInit(){if(!this.isEditMode)return;let o=()=>{this.userState.currentUser()?.id===this.userId&&this.form.controls.isAdmin.disable();};this.userState.currentUser()?o():this.userState.loadMe().pipe(U$3(this.destroyRef)).subscribe({next:()=>o(),error:()=>this.form.controls.isAdmin.disable()});let t=this.userAdminState.users().find(a=>a.id===this.userId);if(t){this.syncForm(t),this.form.controls.email.disable();return}this.isLoading.set(true),this.userAdminState.loadAll().pipe(U$3(this.destroyRef)).subscribe({next:()=>{let a=this.userAdminState.users().find(l=>l.id===this.userId);a&&(this.syncForm(a),this.form.controls.email.disable()),this.isLoading.set(false);},error:()=>this.isLoading.set(false)});}get title(){return this.isEditMode?"Edit user":"New user"}save(){if(this.form.invalid||this.isSaving())return;this.isSaving.set(true);let{email:o,externalId:t,firstname:a,lastname:l,bio:E,isAdmin:O}=this.form.getRawValue();(this.isEditMode?this.userAdminState.updateUser(this.userId,{externalId:t||void 0,firstname:a||void 0,lastname:l||void 0,bio:E||void 0,isAdmin:O}):this.userAdminState.createUser({email:o||void 0,externalId:t||void 0,firstname:a||void 0,lastname:l||void 0,bio:E||void 0,isAdmin:O})).pipe(U$3(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:()=>this.isSaving.set(false)});}cancel(){this.navigateBack();}navigateBack(){this.router.navigate(["/agentos/admin/users"]);}syncForm(o){this.form.setValue({email:o.email??"",externalId:o.externalId??"",firstname:o.firstname??"",lastname:o.lastname??"",bio:o.bio??"",isAdmin:o.isAdmin??false});}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=xw({type:i,selectors:[["agentos-user-form"]],decls:10,vars:2,consts:[[1,"user-form"],[1,"user-form__header"],["type","button","title","Back to users",1,"user-form__back",3,"click"],[1,"user-form__back-icon"],[1,"user-form__title"],[1,"user-form__loading"],[1,"user-form__body",3,"formGroup"],[1,"user-form__body",3,"ngSubmit","formGroup"],[1,"user-form__section"],[1,"user-form__section-title"],[1,"user-form__field"],["for","uf-email",1,"user-form__label"],[1,"user-form__required"],[1,"user-form__value","user-form__value--readonly"],["id","uf-email","type","email","placeholder","user@example.com","formControlName","email","autocomplete","email",1,"user-form__input"],["for","uf-externalId",1,"user-form__label"],["id","uf-externalId","type","text","placeholder","External identifier","formControlName","externalId",1,"user-form__input"],["for","uf-firstname",1,"user-form__label"],["id","uf-firstname","type","text","placeholder","First name","formControlName","firstname","autocomplete","given-name",1,"user-form__input"],["for","uf-lastname",1,"user-form__label"],["id","uf-lastname","type","text","placeholder","Last name","formControlName","lastname","autocomplete","family-name",1,"user-form__input"],[1,"user-form__field","user-form__field--bio"],["for","uf-bio",1,"user-form__label"],["id","uf-bio","placeholder","A short description","formControlName","bio","rows","4",1,"user-form__input","user-form__input--textarea"],[1,"user-form__field","user-form__field--checkbox"],["id","uf-isAdmin","type","checkbox","formControlName","isAdmin",1,"user-form__checkbox"],["for","uf-isAdmin",1,"user-form__label","user-form__label--checkbox"],[1,"user-form__actions"],["type","submit",1,"user-form__btn","user-form__btn--primary",3,"disabled"],["type","button",1,"user-form__btn",3,"click"]],template:function(t,a){t&1&&(ws$1(0,"div",0)(1,"header",1)(2,"button",2),Rg("click",function(){return a.cancel()}),ws$1(3,"span",3),GC(4,"\u2190"),pl$1(),GC(5," Users "),pl$1(),ws$1(6,"h1",4),GC(7),pl$1()(),Jw(8,j$1,2,0,"p",5)(9,K,42,4,"form",6),pl$1()),t&2&&(XE(7),Yg(a.title),XE(),eC(a.isLoading()?8:9));},dependencies:[ni$1,Jn,Ye,wt$1,Zn$1,Xn,En,An],styles:[".user-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.user-form__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.user-form__back[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.375rem;background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-accent)}.user-form__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.user-form__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.user-form__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:700;color:var(--color-text);letter-spacing:-.02em}.user-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:.9rem;margin:0}.user-form__body[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem}.user-form__section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.user-form__section-title[_ngcontent-%COMP%]{margin:0;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--color-neutral-500);border-bottom:1px solid var(--color-divider);padding-bottom:.5rem;font-family:var(--font-heading)}.user-form__field[_ngcontent-%COMP%]{display:grid;grid-template-columns:140px 1fr;align-items:baseline;gap:.75rem}.user-form__field--bio[_ngcontent-%COMP%]{align-items:start}.user-form__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text-secondary);white-space:nowrap}.user-form__required[_ngcontent-%COMP%]{color:var(--red)}.user-form__value[_ngcontent-%COMP%]{font-size:.9375rem;color:var(--color-text)}.user-form__value--readonly[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:.875rem}.user-form__input[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border-radius:0;border:1px solid var(--color-divider);background:var(--color-surface);color:var(--color-text);font-size:.9375rem;font-family:inherit;outline:none;box-sizing:border-box;transition:border-color .15s ease;resize:none}.user-form__input[_ngcontent-%COMP%]:focus{border-color:var(--color-accent)}.user-form__input[_ngcontent-%COMP%]::placeholder{color:var(--color-neutral-500)}.user-form__input--textarea[_ngcontent-%COMP%]{line-height:1.5;resize:vertical}.user-form__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.user-form__btn[_ngcontent-%COMP%]{padding:.6rem 1.25rem;border-radius:0;border:1px solid var(--color-divider);background:transparent;color:var(--color-text);font-size:13px;font-family:var(--font-heading);font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease}.user-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-neutral-500)}.user-form__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.user-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.user-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-accent-700);border-color:var(--color-accent-700)}"]})};function ee(i,t){if(i&1&&(ws$1(0,"span",3),GC(1),pl$1()),i&2){let e=gC();XE(),Yg(e.subtitle);}}var I$2=class i{user=ZB.required();editRequested=qB();deleteRequested=qB();menuItems=[{key:"edit",label:"Edit user",icon:"edit"},{key:"delete",label:"Delete user",icon:"delete",variant:"danger"}];get displayName(){let{firstname:t,lastname:e,email:n}=this.user();return [t,e].filter(Boolean).join(" ")||n||"\u2014"}get subtitle(){return this.user().email??this.user().externalId??""}onMenuAction(t){switch(t){case "edit":this.editRequested.emit(this.user());break;case "delete":confirm(`Delete user "${this.displayName}"?`)&&this.deleteRequested.emit(this.user());break}}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=xw({type:i,selectors:[["agentos-user-item"]],inputs:{user:[1,"user"]},outputs:{editRequested:"editRequested",deleteRequested:"deleteRequested"},decls:7,vars:3,consts:[["role","listitem","dsBlueprint","",1,"user-item"],[1,"user-item__body"],[1,"user-item__name"],[1,"user-item__subtitle"],[1,"user-item__actions"],[3,"itemSelected","items"]],template:function(e,n){e&1&&(ws$1(0,"div",0)(1,"div",1)(2,"span",2),GC(3),pl$1(),Jw(4,ee,2,1,"span",3),pl$1(),ws$1(5,"div",4)(6,"ds-kebab-menu",5),Rg("itemSelected",function(o){return n.onMenuAction(o)}),pl$1()()()),e&2&&(XE(3),Yg(n.displayName),XE(),eC(n.subtitle?4:-1),XE(2),bg("items",n.menuItems));},dependencies:[Kn,Zn],styles:[".user-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;width:100%;padding:14px 16px;position:relative;border-radius:0;border:1px solid var(--color-divider);background:var(--color-bg);box-shadow:var(--shadow-sm);box-sizing:border-box;overflow:visible;transition:border-color .15s ease}.user-item[_ngcontent-%COMP%]:hover{border-color:var(--color-accent)}.user-item__body[_ngcontent-%COMP%]{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.user-item__name[_ngcontent-%COMP%]{font-size:15px;font-weight:600;color:var(--color-text);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-item__subtitle[_ngcontent-%COMP%]{font-size:13px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-item__actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem;flex-shrink:0;opacity:0;transition:opacity .15s ease}.user-item[_ngcontent-%COMP%]:hover .user-item__actions[_ngcontent-%COMP%], .user-item[_ngcontent-%COMP%]:focus-within .user-item__actions[_ngcontent-%COMP%]{opacity:1}"]})};function te(i,t){if(i&1){let e=lC();ws$1(0,"agentos-namespace-select",4),Rg("valueChange",function(s){If(e);let o=gC();return wf(o.onNamespaceChange(s))}),pl$1();}if(i&2){let e=gC();bg("namespaces",t)("value",e.selectedNamespaceId())("includeAllOption",true);}}function ne(i,t){if(i&1){let e=lC();ws$1(0,"ds-icon-button",5),Rg("action",function(){If(e);let s=gC();return wf(s.goBack())}),pl$1();}}function ie(i,t){if(i&1){let e=lC();ws$1(0,"agentos-user-item",7),Rg("editRequested",function(s){If(e);let o=gC(2);return wf(o.navigateToEdit(s))})("deleteRequested",function(s){If(e);let o=gC(2);return wf(o.deleteUser(s))}),pl$1();}i&2&&bg("user",t);}function se(i,t){if(i&1&&Jw(0,ie,1,1,"agentos-user-item",6),i&2){let e,n=t.$implicit,s=gC();eC((e=s.resolveUser(n.id))?0:-1,e);}}var k=class i{router=g(G$5);destroyRef=g(Ce$1);userAdminState=g(c$1);namespaceMembership=g(ee$2);showBackButton=ZB(true);namespaces=ZB(void 0);selectedNamespaceId=ZB(null);hideTitle=ZB(false);namespaceFilterChange=qB();isLoading=this.userAdminState.isLoading;namespaceUserIds=F$1(T(this.selectedNamespaceId).pipe(va$1(t=>t?this.namespaceMembership.getMembersNamespaceMembership(t).pipe(re$4(e=>new Set(e.map(n=>n.id))),ya$1(e=>(console.error("[UserList] Failed to load namespace users",e),br$1(null)))):br$1(null))),{initialValue:null});userItems=mT(()=>{let t=this.namespaceUserIds();return this.userAdminState.users().filter(e=>t===null||t.has(e.id??"")).map(e=>({id:e.id??"",name:[e.firstname,e.lastname].filter(Boolean).join(" ")||e.email||"\u2014",description:e.email}))});get usersById(){return new Map(this.userAdminState.users().map(t=>[t.id??"",t]))}ngOnInit(){this.userAdminState.loadAll().pipe(U$3(this.destroyRef)).subscribe();}onNamespaceChange(t){this.namespaceFilterChange.emit(t);}goBack(){this.router.navigate(["/agentos","admin"]);}navigateToCreate(){this.router.navigate(["/agentos/admin/users/new"]);}navigateToEdit(t){this.router.navigate(["/agentos/admin/users",t.id??"","edit"]);}deleteUser(t){this.userAdminState.deleteUser(t.id??"").pipe(U$3(this.destroyRef)).subscribe();}resolveUser(t){return this.usersById.get(t)??null}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=xw({type:i,selectors:[["agentos-user-list"]],inputs:{showBackButton:[1,"showBackButton"],namespaces:[1,"namespaces"],selectedNamespaceId:[1,"selectedNamespaceId"],hideTitle:[1,"hideTitle"]},outputs:{namespaceFilterChange:"namespaceFilterChange"},decls:5,vars:7,consts:[["userItemTpl",""],["title","Users","emptyMessage","No users found.","cardMinWidth","320px",3,"createRequested","hideTitle","items","loading","showCreate","pageSize","itemTemplate"],["toolbar-start","",3,"namespaces","value","includeAllOption"],["toolbar-start","","icon","arrow_back","title","Back"],["toolbar-start","",3,"valueChange","namespaces","value","includeAllOption"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[3,"user"],[3,"editRequested","deleteRequested","user"]],template:function(e,n){if(e&1&&(ws$1(0,"ds-entity-list",1),Rg("createRequested",function(){return n.navigateToCreate()}),Jw(1,te,1,3,"agentos-namespace-select",2)(2,ne,1,0,"ds-icon-button",3),pl$1(),Eg(3,se,1,1,"ng-template",null,0,fT)),e&2){let s,o=CC(4);bg("hideTitle",n.hideTitle())("items",n.userItems())("loading",n.isLoading())("showCreate",true)("pageSize",100)("itemTemplate",o),XE(),eC((s=n.namespaces())?1:n.showBackButton()?2:-1,s);}},dependencies:[Wn,I$2,Se$1,w],encapsulation:2})};function re(i,t){if(i&1){let e=lC();ws$1(0,"agentos-user-list",9),Rg("namespaceFilterChange",function(s){If(e);let o=gC();return wf(o.onUsersNamespaceChange(s))}),pl$1();}if(i&2){let e=gC();bg("showBackButton",false)("hideTitle",true)("namespaces",e.namespaces())("selectedNamespaceId",e.usersNamespaceFilter());}}function ae(i,t){i&1&&(ws$1(0,"p",10),GC(1,"No namespaces yet. Create one before managing groups."),pl$1());}function oe(i,t){if(i&1){let e=lC();ws$1(0,"agentos-user-group-list",12),Rg("namespaceChange",function(s){If(e);let o=gC(2);return wf(o.onGroupsNamespaceChange(s))}),pl$1();}if(i&2){let e=gC(2);bg("namespaceId",t)("hideTitle",true)("namespaces",e.namespaces())("returnTo",e.returnTo());}}function le(i,t){if(i&1&&Jw(0,ae,2,0,"p",10)(1,oe,1,4,"agentos-user-group-list",11),i&2){let e,n=gC();eC(n.namespaces().length===0?0:(e=n.groupsNamespaceId())?1:-1,e);}}var Z=class i{router=g(G$5);route=g(V$2);destroyRef=g(Ce$1);namespaceController=g(D$2);activeTab=Gi$1(this.route.snapshot.queryParamMap.get("tab")==="groups"?"groups":"users");namespaces=Gi$1([]);usersNamespaceFilter=Gi$1(null);groupsNamespaceId=Gi$1(null);returnTo=mT(()=>{let t=this.groupsNamespaceId();return t?`/agentos/admin/users?tab=groups&ns=${t}`:"/agentos/admin/users?tab=groups"});constructor(){let t=this.route.snapshot.queryParamMap.get("ns");this.namespaceController.listAllNamespace().pipe(U$3(this.destroyRef)).subscribe(e=>{let n=e.filter(o=>o.role!=="MEMBER");this.namespaces.set(n);let s=t&&n.some(o=>o.id===t)?t:n[0]?.id??null;this.groupsNamespaceId.set(s);});}setTab(t){this.activeTab.set(t);}onUsersNamespaceChange(t){this.usersNamespaceFilter.set(t);}onGroupsNamespaceChange(t){this.groupsNamespaceId.set(t);}goBack(){this.router.navigate(["/agentos","admin"]);}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=xw({type:i,selectors:[["agentos-admin-users-groups"]],decls:14,vars:8,consts:[[1,"admin-users-groups"],[1,"admin-users-groups__header"],["type","button",1,"admin-users-groups__back",3,"click"],[1,"admin-users-groups__title"],["role","tablist","aria-label","Users and Groups",1,"admin-users-groups__tabs"],["id","admin-tab-users","type","button","role","tab","aria-controls","admin-users-groups-panel",1,"admin-users-groups__tab",3,"click"],["id","admin-tab-groups","type","button","role","tab","aria-controls","admin-users-groups-panel",1,"admin-users-groups__tab",3,"click"],["id","admin-users-groups-panel","role","tabpanel","tabindex","0",1,"admin-users-groups__panel"],[3,"showBackButton","hideTitle","namespaces","selectedNamespaceId"],[3,"namespaceFilterChange","showBackButton","hideTitle","namespaces","selectedNamespaceId"],[1,"admin-users-groups__empty"],[3,"namespaceId","hideTitle","namespaces","returnTo"],[3,"namespaceChange","namespaceId","hideTitle","namespaces","returnTo"]],template:function(e,n){e&1&&(ws$1(0,"div",0)(1,"header",1)(2,"button",2),Rg("click",function(){return n.goBack()}),GC(3,"\u2190 Admin"),pl$1(),ws$1(4,"h1",3),GC(5,"Users & Groups"),pl$1()(),ws$1(6,"div",4)(7,"button",5),Rg("click",function(){return n.setTab("users")}),GC(8," Users "),pl$1(),ws$1(9,"button",6),Rg("click",function(){return n.setTab("groups")}),GC(10," Groups "),pl$1()(),ws$1(11,"div",7),Jw(12,re,1,4,"agentos-user-list",8)(13,le,2,1),pl$1()()),e&2&&(XE(7),Ug("admin-users-groups__tab--active",n.activeTab()==="users"),Tg("aria-selected",n.activeTab()==="users"),XE(2),Ug("admin-users-groups__tab--active",n.activeTab()==="groups"),Tg("aria-selected",n.activeTab()==="groups"),XE(2),Tg("aria-labelledby",n.activeTab()==="users"?"admin-tab-users":"admin-tab-groups"),XE(),eC(n.activeTab()==="users"?12:13));},dependencies:[k,te$3],styles:[".admin-users-groups[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem;padding:1.5rem 1rem 0;--entity-list-toolbar-max-width: 900px}.admin-users-groups__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem;max-width:900px;margin:0 auto;width:100%}.admin-users-groups__back[_ngcontent-%COMP%]{align-self:flex-start;background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-primary, #007aff);font-family:inherit}.admin-users-groups__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.admin-users-groups__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-text, #1d1d1f);letter-spacing:-.02em}.admin-users-groups__tabs[_ngcontent-%COMP%]{display:inline-flex;gap:.25rem;padding:.25rem;border-radius:10px;background:var(--color-surface-hover, rgba(0, 0, 0, .05));border:1px solid var(--color-border, rgba(0, 0, 0, .08));max-width:900px;margin:0 auto;width:fit-content;align-self:center}.admin-users-groups__tab[_ngcontent-%COMP%]{padding:.4rem 1.25rem;border-radius:8px;border:none;background:transparent;color:var(--color-text-secondary, #6e6e73);font-size:.9rem;font-family:inherit;font-weight:500;cursor:pointer;transition:background .15s ease,color .15s ease}.admin-users-groups__tab[_ngcontent-%COMP%]:hover{color:var(--color-text, #1d1d1f)}.admin-users-groups__tab--active[_ngcontent-%COMP%]{background:var(--color-bg-surface, #fff);color:var(--color-text, #1d1d1f);box-shadow:0 1px 2px #00000014}.admin-users-groups__empty[_ngcontent-%COMP%]{max-width:900px;margin:1rem auto;width:100%;color:var(--color-text-secondary, #6e6e73);font-size:.9rem}"]})};var p$1=["industry","terminal"],l$2=["light","dark","system"],r="agentos.theme.variant",a="agentos.theme.mode",y="agentos.theme",m$1=class n{_theme=Gi$1(this.readStoredTheme());theme=this._theme.asReadonly();media=typeof window<"u"&&window.matchMedia?window.matchMedia("(prefers-color-scheme: dark)"):null;onSystemChange=()=>{this._theme().mode==="system"&&this.applyTheme(this._theme());};constructor(){this.applyTheme(this._theme()),this.media?.addEventListener("change",this.onSystemChange);}ngOnDestroy(){this.media?.removeEventListener("change",this.onSystemChange);}setTheme(e){this._theme.set(e);try{localStorage.setItem(r,e.variant),localStorage.setItem(a,e.mode);}catch(t){}this.applyTheme(e);}applyTheme(e){if(typeof document>"u"||!document.documentElement)return;let t=e.mode==="system"?this.resolveSystem():e.mode,o=e.variant==="industry"&&t==="light"?null:`${e.variant}-${t}`;o?document.documentElement.setAttribute("data-theme",o):document.documentElement.removeAttribute("data-theme");}resolveSystem(){return this.media?.matches?"dark":"light"}readStoredTheme(){try{let e=localStorage.getItem(y);if(e&&!localStorage.getItem(a)){let s=l$2.includes(e)?e:"system";return localStorage.setItem(a,s),localStorage.setItem(r,"industry"),localStorage.removeItem(y),{variant:"industry",mode:s}}let t=localStorage.getItem(r),o=localStorage.getItem(a),T=p$1.includes(t??"")?t:"industry",g=l$2.includes(o??"")?o:"system";return {variant:T,mode:g}}catch(e){return {variant:"industry",mode:"system"}}}static \u0275fac=function(t){return new(t||n)};static \u0275prov=x$1({token:n,factory:n.\u0275fac,providedIn:"root"})},I$1=new C$1("agentos.theme-port",{providedIn:"root",factory:()=>g(m$1)});var l$1=class t{constructor(){g(I$1);}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=xw({type:t,selectors:[["agentos-shell"]],decls:1,vars:0,template:function(e,c){e&1&&Sg(0,"router-outlet");},dependencies:[mr$1],styles:[".shell-loader[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:1rem;color:var(--color-text-secondary, #6e6e73);font-size:.9rem}.shell-loader[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0}.spinner[_ngcontent-%COMP%]{width:32px;height:32px;border:3px solid var(--color-border, rgba(0, 0, 0, .1));border-top-color:var(--color-primary, #007aff);border-radius:50%;animation:_ngcontent-%COMP%_spin .8s linear infinite}@keyframes _ngcontent-%COMP%_spin{to{transform:rotate(360deg)}}"],changeDetection:1})};var O=class h{caseController=g(N$1);cases=Gi$1([]);agentMessageEventSubject=new ue$2;agentMessageEvent$=this.agentMessageEventSubject.asObservable();loadSubscription=null;currentNamespaceId=null;pendingUpdates=new Map;loadCases(e){e!==this.currentNamespaceId&&(this.currentNamespaceId=e,this.cases.set([])),this.loadSubscription?.unsubscribe(),this.loadSubscription=this.caseController.listMineByParentCase(e).subscribe({next:t=>{this.cases.set(t),this.loadSubscription=null;},error:t=>{console.error(`[CaseState] Failed to load cases for namespace ${e}:`,t),this.loadSubscription=null;}});}deleteCase(e){return this.caseController.deleteCase(e).pipe(Od(()=>this.reloadCurrent()))}setStarred(e,t){return Gy(()=>(this.patchFavorite(e,t),(t?this.caseController.starCase(e):this.caseController.unstarCase(e)).pipe(ya$1(s=>(this.patchFavorite(e,!t),Vy(()=>s))))))}renameCase(e,t){return this.updateCaseFields(e,{title:t})}updateCaseFields(e,t){return Gy(()=>{let r=this.pendingUpdates.get(e),s=this.cases().find(j=>j.id===e);if(!s&&!r)return Vy(()=>new Error(`[CaseState] Case ${e} is not in the current list`));let l=r?.state??{confirmed:s},i=(r?r.request.pipe(ya$1(()=>on),Da$1(),Xy(void 0)):br$1(void 0)).pipe(fi$1(()=>this.saveCaseFields(e,t,l)),pi$1(()=>{this.pendingUpdates.get(e)?.request===i&&this.pendingUpdates.delete(e);}),Ad({bufferSize:1,refCount:false}));return this.pendingUpdates.set(e,{request:i,state:l}),i})}refreshCaseThreshold(e){let t=this.pendingUpdates.get(e);(t?t.request.pipe(ya$1(()=>on),Da$1(),Xy(void 0)):br$1(void 0)).pipe(fi$1(()=>this.caseController.getByIdCase(e))).subscribe({next:s=>{this.pendingUpdates.has(e)||this.patchFields(e,{runCostThreshold:s.runCostThreshold});},error:()=>{}});}saveCaseFields(e,t,r){return Gy(()=>{let s=r.confirmed,l={title:s.title,runCostThreshold:s.runCostThreshold};this.patchFields(e,t);let f=x$2(w$1(w$1({},s),t),{runCostThreshold:t.runCostThreshold});return this.caseController.updateCase(e,f).pipe(Od(i=>{r.confirmed=x$2(w$1({},s),{title:i.title,runCostThreshold:i.runCostThreshold}),this.patchFields(e,{title:i.title,runCostThreshold:i.runCostThreshold});}),ya$1(i=>(this.patchFields(e,l),Vy(()=>i))))})}patchFavorite(e,t){this.cases.update(r=>r.map(s=>s.id===e?x$2(w$1({},s),{favorite:t}):s));}patchFields(e,t){this.cases.update(r=>r.map(s=>s.id===e?w$1(w$1({},s),t):s));}patchTitle(e,t){this.cases.update(r=>r.map(s=>s.id===e?x$2(w$1({},s),{title:t}):s));}reloadCurrent(){this.currentNamespaceId&&this.loadCases(this.currentNamespaceId);}addCase(e){this.cases.update(t=>[e,...t]);}updateCaseTitle(e,t){this.patchTitle(e,t);}updateCaseStatus(e,t){this.cases.update(r=>r.map(s=>s.id===e?x$2(w$1({},s),{status:t}):s));}notifyAgentMessageEvent(e){this.agentMessageEventSubject.next(e);}static \u0275fac=function(t){return new(t||h)};static \u0275prov=x$1({token:h,factory:h.\u0275fac,providedIn:"root"})};var d$1=class a{sanitizer=g(bS);renderer=this.buildRenderer();transform(r){if(!r)return "";let e=x$3.parse(r,{renderer:this.renderer,breaks:true,gfm:true,async:false}),t=is$1.sanitize(e,{ADD_TAGS:["span"],ADD_ATTR:["aria-hidden","aria-label","target","rel"],ALLOWED_URI_REGEXP:/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.-]+(?:[^a-z+.-:]|$))/i});return this.sanitizer.bypassSecurityTrustHtml(t)}buildRenderer(){let r=new Ue$1,e=r.link.bind(r);return r.link=t=>{let n=e(t);return this.isExternal(t.href)&&(n=n.replace("<a ",'<a target="_blank" rel="noopener noreferrer" ').replace("</a>",'<span class="external-link-icon" aria-hidden="true">\u2197</span></a>')),n},r}isExternal(r){if(!r||r.startsWith("/")||r.startsWith("#")||r.startsWith("?"))return false;if(r.startsWith("//"))return true;try{return new URL(r,window.location.href).hostname!==window.location.hostname}catch(e){return false}}static \u0275fac=function(e){return new(e||a)};static \u0275pipe=On({name:"agentosMarkdown",type:a,pure:true})};
|
|
2
|
+
var l=["send","newline"],c="agentos.enter-key-behavior",d="send",o=class t{_enterKeyBehavior=Gi$1(this.readStoredBehavior());enterKeyBehavior=this._enterKeyBehavior.asReadonly();composerHint=mT(()=>this._enterKeyBehavior()==="newline"?"Enter for a new line \xB7 Ctrl/Cmd+Enter to send":"Enter to send \xB7 Shift+Enter for a new line");setEnterKeyBehavior(e){this._enterKeyBehavior.set(e);try{localStorage.setItem(c,e);}catch(r){}}shouldSend(e){let r=e.key==="Enter"&&!e.isComposing,E=e.ctrlKey||e.metaKey,h=this._enterKeyBehavior()==="newline"?E:!e.shiftKey;return r&&h}readStoredBehavior(){try{let e=localStorage.getItem(c);return e&&l.includes(e)?e:d}catch(e){return d}}static \u0275fac=function(r){return new(r||t)};static \u0275prov=x$1({token:t,factory:t.\u0275fac,providedIn:"root"})},f=new C$1("agentos.user-preferences-port",{providedIn:"root",factory:()=>g(o)});var m=class e{promptController=g(re$5);exportService=g(he$2);getById(r){return this.promptController.getByIdPrompt(r)}listPlatform(){return this.promptController.searchPrompt({namespaceId:null,userId:null})}listByNamespace(r){return this.promptController.searchPrompt({namespaceId:r,userId:null})}create(r){return this.promptController.createPrompt(r)}update(r,t){return this.promptController.updatePrompt(r,t)}delete(r){return this.promptController.deletePrompt(r)}listEffective(r,t){return this.promptController.resolveEffectivePrompt(w$1({namespaceId:r},t?{agentConfigId:t}:{}))}exportAsYaml(r){return this.exportService.exportAsYaml(r)}static \u0275fac=function(t){return new(t||e)};static \u0275prov=x$1({token:e,factory:e.\u0275fac,providedIn:"root"})};var p="agentos_oauth_callback",h$1=class n{http=g(py);config=g(y$1);zone=g(G$6);popupCheckInterval=null;popupClosedAt=null;static POPUP_CLOSE_GRACE_MS=2e3;pendingQuestion=Gi$1(null);messageHandler=e=>this.handlePopupMessage(e);storageHandler=e=>this.handleStorageEvent(e);constructor(){window.addEventListener("message",this.messageHandler),window.addEventListener("storage",this.storageHandler),this.drainLocalStorage();}ngOnDestroy(){window.removeEventListener("message",this.messageHandler),window.removeEventListener("storage",this.storageHandler),this.popupCheckInterval&&clearInterval(this.popupCheckInterval);}setPendingQuestion(e){console.log("[OAuthAgentos] Pending OAuth question registered:",e.id),this.pendingQuestion.set(e);}openPopup(e){console.log("[OAuthAgentos] Opening popup from user gesture:",e.id);let t=e.question,o=600,i=900,g=window.screenX+(window.outerWidth-o)/2,v=window.screenY+(window.outerHeight-i)/2,A=`width=${o},height=${i},left=${g},top=${v},popup=yes,resizable=yes,scrollbars=yes`,r=window.open(t,"agentos_oauth_popup",A);r?(r.focus(),this.startPopupMonitoring(r,e),this.pendingQuestion.set(null)):console.warn("[OAuthAgentos] Popup was blocked by the browser");}cancelRequest(){console.log("[OAuthAgentos] OAuth cancelled by user via inline panel"),this.pendingQuestion.set(null),this.stopPopupMonitoring();}answerQuestion(e,t){this.postAnswer(e,t);}startPopupMonitoring(e,t){this.popupCheckInterval&&clearInterval(this.popupCheckInterval),this.popupClosedAt=null,this.popupCheckInterval=setInterval(()=>{if(!e.closed){this.popupClosedAt!==null&&(this.popupClosedAt=null);return}if(this.popupClosedAt===null){this.popupClosedAt=Date.now(),console.log("[OAuthAgentos] Popup closed, waiting for postMessage grace period...");return}if(Date.now()-this.popupClosedAt<n.POPUP_CLOSE_GRACE_MS)return;console.log("[OAuthAgentos] Grace period elapsed \u2014 popup closed without completing auth"),this.stopPopupMonitoring(),this.pendingQuestion()?.id===t.id&&(console.warn("[OAuthAgentos] OAuth cancelled \u2014 popup closed without completing"),this.pendingQuestion.set(null));},500);}stopPopupMonitoring(){this.popupCheckInterval&&(clearInterval(this.popupCheckInterval),this.popupCheckInterval=null),this.popupClosedAt=null;}handlePopupMessage(e){if(e.origin!==window.location.origin)return;let t=e.data;!t||typeof t.success!="boolean"||(console.log("[OAuthAgentos] Received postMessage result:",t.success),this.zone.run(()=>this.processResult(t)));}handleStorageEvent(e){e.key!==p||!e.newValue||(console.log("[OAuthAgentos] Received localStorage result fallback"),this.zone.run(()=>this.drainLocalStorage()));}drainLocalStorage(){let e=localStorage.getItem(p);if(e){localStorage.removeItem(p);try{let t=JSON.parse(e);typeof t.success=="boolean"&&this.processResult(t);}catch(t){console.error("[OAuthAgentos] Failed to parse localStorage OAuth result:",t);}}}processResult(e){this.stopPopupMonitoring();let t=this.pendingQuestion();if(this.pendingQuestion.set(null),!t){console.warn("[OAuthAgentos] Received result but no pending question");return}e.success?(console.log("[OAuthAgentos] OAuth succeeded \u2014 posting AnswerEvent"),this.postAnswer(t,"OAuth authorization completed")):(console.warn("[OAuthAgentos] OAuth failed:",e.error),this.postAnswer(t,`OAuth authorization failed: ${e.error??"unknown error"}`));}postAnswer(e,t){this.http.post(`${this.config.basePath}/api/cases/${e.caseId}/messages`,{content:t,answerToEventId:e.id}).subscribe({next:()=>console.log("[OAuthAgentos] AnswerEvent posted successfully"),error:o=>console.error("[OAuthAgentos] Failed to post AnswerEvent:",o)});}static \u0275fac=function(t){return new(t||n)};static \u0275prov=x$1({token:n,factory:n.\u0275fac,providedIn:"root"})};var C=class{_namespaces$=new Tr$1([]);_selected$=new Tr$1(null);namespaces$=this._namespaces$.asObservable();selectedNamespace$=this._selected$.asObservable();constructor(t){t.subscribe(e=>{this._namespaces$.next(e),this._selected$.getValue()===null&&e.length>0&&this._selected$.next(e[0]??null);});}selectNamespace(t){let e=this._namespaces$.getValue().find(l=>l.id===t)??null;this._selected$.next(e);}};var E=class n{namespaceApi=g(D$2);_initialized$=new Tr$1(false);initialized$=this._initialized$.asObservable();activeNamespaceId=Gi$1(null);state=null;get namespaces$(){return this.getState().namespaces$}get selectedNamespace$(){return this.getState().selectedNamespace$}init(){if(this._initialized$.getValue())return;console.log("init 2");let t=this.namespaceApi.listAllNamespace().pipe(Ad(1));this.state=new C(t),t.subscribe({next:()=>this._initialized$.next(true),error:()=>{this._initialized$.next(true);}});}selectNamespace(t){this.activeNamespaceId.set(t),this.getState().selectNamespace(t);}getState(){return this.state||(this.state=new C(new Tr$1([]).asObservable())),this.state}static \u0275fac=function(e){return new(e||n)};static \u0275prov=x$1({token:n,factory:n.\u0275fac,providedIn:"root"})};function L$1(n,t){if(n&1){let e=lC();hl$1(0,"button",2),Og("click",function(){If(e);let a=gC(2);return wf(a.onNavigate("/agentos/admin"))}),kf(),hl$1(1,"svg",3),_g(2,"path",17),gl$1(),GC(3," Administration "),gl$1();}}function U$1(n,t){n&1&&(hl$1(0,"span",14),GC(1,"On"),gl$1());}function z$1(n,t){n&1&&(hl$1(0,"span",14),GC(1,"On"),gl$1());}function A(n,t){n&1&&(kf(),hl$1(0,"svg",3),_g(1,"circle",18)(2,"path",19),gl$1(),GC(3," Light mode "));}function G$1(n,t){n&1&&(kf(),hl$1(0,"svg",3),_g(1,"path",20),gl$1(),GC(2," Dark mode "));}function I(n,t){if(n&1){let e=lC();hl$1(0,"div",0),Og("click",function(a){If(e);let T=gC();return wf(T.onClose(a))})("keyup.escape",function(a){If(e);let T=gC();return wf(T.onClose(a))}),gl$1(),hl$1(1,"div",1)(2,"button",2),Og("click",function(){If(e);let a=gC();return wf(a.onNavigate("/agentos/user"))}),kf(),hl$1(3,"svg",3),_g(4,"circle",4)(5,"path",5),gl$1(),GC(6," User settings "),gl$1(),Jw(7,L$1,4,0,"button",6),Ff(),_g(8,"div",7),hl$1(9,"button",2),Og("click",function(){If(e);let a=gC();return wf(a.onNavigate("/agentos/namespaces"))}),kf(),hl$1(10,"svg",3),_g(11,"rect",8)(12,"rect",9)(13,"rect",10)(14,"rect",11),gl$1(),GC(15," Namespaces "),gl$1(),Ff(),hl$1(16,"button",2),Og("click",function(){If(e);let a=gC();return wf(a.onLogsToggle())}),kf(),hl$1(17,"svg",3),_g(18,"polyline",12)(19,"line",13),gl$1(),GC(20," Technical logs "),Jw(21,U$1,2,0,"span",14),gl$1(),Ff(),hl$1(22,"button",2),Og("click",function(){If(e);let a=gC();return wf(a.onToolCallsToggle())}),kf(),hl$1(23,"svg",3),_g(24,"path",15)(25,"path",16),gl$1(),GC(26," Tool calls "),Jw(27,z$1,2,0,"span",14),gl$1(),Ff(),_g(28,"div",7),hl$1(29,"button",2),Og("click",function(){If(e);let a=gC();return wf(a.onThemeToggle())}),Jw(30,A,4,0)(31,G$1,3,0),gl$1()();}if(n&2){let e=gC();XE(),Hg("top",e.variant()==="compact"?e.fixedTop():null,"px")("left",e.variant()==="compact"?e.fixedLeft():null,"px"),Ug("shell-user-menu__overlay--topbar",e.variant()==="topbar")("shell-user-menu__overlay--mobile",e.variant()==="mobile")("shell-user-menu__overlay--compact",e.variant()==="compact"),XE(6),eC(e.isAdmin()?7:-1),XE(9),Ug("shell-user-menu__item--active",e.showTechnical()),XE(5),eC(e.showTechnical()?21:-1),XE(),Ug("shell-user-menu__item--active",e.showToolCalls()),XE(5),eC(e.showToolCalls()?27:-1),XE(3),eC(e.isDark()?30:31);}}var D=class n{open=ZB.required();isAdmin=ZB.required();isDark=ZB.required();themeVariant=ZB.required();showTechnical=ZB.required();showToolCalls=ZB.required();variant=ZB("desktop");fixedTop=ZB(0);fixedLeft=ZB(0);navigateTo=qB();themeToggled=qB();themeVariantChanged=qB();logsToggled=qB();toolCallsToggled=qB();closed=qB();onNavigate(t){this.navigateTo.emit(t);}onThemeToggle(){this.themeToggled.emit();}onThemeVariantChange(t){this.themeVariantChanged.emit(t);}onLogsToggle(){this.logsToggled.emit();}onToolCallsToggle(){this.toolCallsToggled.emit();}onClose(t){t.stopPropagation(),this.closed.emit(t);}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=xw({type:n,selectors:[["agentos-shell-user-menu"]],inputs:{open:[1,"open"],isAdmin:[1,"isAdmin"],isDark:[1,"isDark"],themeVariant:[1,"themeVariant"],showTechnical:[1,"showTechnical"],showToolCalls:[1,"showToolCalls"],variant:[1,"variant"],fixedTop:[1,"fixedTop"],fixedLeft:[1,"fixedLeft"]},outputs:{navigateTo:"navigateTo",themeToggled:"themeToggled",themeVariantChanged:"themeVariantChanged",logsToggled:"logsToggled",toolCallsToggled:"toolCallsToggled",closed:"closed"},decls:1,vars:1,consts:[["role","presentation","tabindex","-1",1,"shell-user-menu__backdrop",3,"click","keyup.escape"],[1,"shell-user-menu__overlay"],["type","button",1,"shell-user-menu__item",3,"click"],["width","15","height","15","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","1.5","stroke-linecap","round","stroke-linejoin","round","aria-hidden","true"],["cx","12","cy","8","r","4"],["d","M20 21a8 8 0 0 0-16 0"],["type","button",1,"shell-user-menu__item"],[1,"shell-user-menu__separator"],["width","7","height","7","x","3","y","3"],["width","7","height","7","x","14","y","3"],["width","7","height","7","x","14","y","14"],["width","7","height","7","x","3","y","14"],["points","4 17 10 11 4 5"],["x1","12","x2","20","y1","19","y2","19"],[1,"shell-user-menu__item-badge"],["d","M9 18l6-6-6-6"],["d","M4 6h8M4 12h5M4 18h8"],["d","M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1 1 0 0 1 1.52 0C14.5 3.8 17 5 19 5a1 1 0 0 1 1 1z"],["cx","12","cy","12","r","4"],["d","M12 2v2M12 20v2m-7.07-14.07 1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2m-4.93-7.07-1.41 1.41M6.34 17.66l-1.41 1.41"],["d","M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"]],template:function(e,l){e&1&&Jw(0,I,32,18),e&2&&eC(l.open()?0:-1);},styles:[".shell-user-menu__backdrop[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:199}.shell-user-menu__overlay[_ngcontent-%COMP%]{position:absolute;bottom:calc(100% + 6px);right:0;min-width:226px;z-index:200;background:var(--color-bg);border:1px solid var(--color-divider);box-shadow:var(--shadow-lg)}.shell-user-menu__overlay--topbar[_ngcontent-%COMP%]{bottom:auto;top:calc(100% + 6px)}.shell-user-menu__overlay--mobile[_ngcontent-%COMP%]{position:absolute;top:calc(100% + 4px);right:16px;left:auto;z-index:300}.shell-user-menu__overlay--compact[_ngcontent-%COMP%]{position:fixed;bottom:auto;right:auto;z-index:500;transform:translateY(-100%)}.shell-user-menu__item[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;margin:0;font:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;font-size:13.5px;color:var(--color-text);text-align:left;transition:background .1s}.shell-user-menu__item[_ngcontent-%COMP%]:hover{background:color-mix(in srgb,var(--color-text) 6%,transparent)}.shell-user-menu__item[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{color:var(--color-neutral-600);flex-shrink:0}.shell-user-menu__item--active[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--color-accent) 10%,transparent);color:var(--color-accent-700)}.shell-user-menu__item--active[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{color:var(--color-accent-700)}.shell-user-menu__item-badge[_ngcontent-%COMP%]{margin-left:auto;font-size:10px;font-family:var(--font-heading);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent-700);border:1px solid var(--color-accent-300);padding:1px 5px}.shell-user-menu__separator[_ngcontent-%COMP%]{height:1px;background:var(--color-divider);margin:4px;border:none}"]})};var uo=1e4,$o={view:null,errorStatus:404};function Ze(o){return o.errorStatus===404}var ce=class o{api=g(z$3);byRoot=Gi$1({});namespace=new Tr$1(null);watchedCases=new Map;actions=new ue$2;noWorkspaces=false;get unavailable(){return this.noWorkspaces}watchNamespace(t){let e=xr$1(0,uo).pipe(Nd(()=>this.api.listCaseWorkspace(t).pipe(re$4(n=>n),ya$1(n=>(n.status===404&&(this.noWorkspaces=true),br$1(n.status===404?void 0:null))))),Rd(n=>n!==void 0,true),re$4(n=>n===void 0?[]:n),Od(n=>this.byRoot.set(Object.fromEntries((n??[]).filter(i=>i.rootCaseId).map(i=>[i.rootCaseId,i])))),Ad({bufferSize:1,refCount:true}));return Gy(()=>(this.byRoot.set({}),this.noWorkspaces?br$1([]):(this.namespace.next(e),e.pipe(kt$1(n=>n!==null),pi$1(()=>{this.namespace.value===e&&(this.namespace.next(null),this.byRoot.set({}));})))))}watch(t){if(this.noWorkspaces)return br$1($o);let e=this.watchedCases.get(t);if(e)return e;let n=()=>this.get(t).pipe(re$4(g=>({view:g})),ya$1(g=>br$1({view:null,errorStatus:g.status??0}))),i=this.namespace.pipe(va$1(g=>g?g.pipe(Nd(w=>{let E=w?.find(D=>D.rootCaseId===t);return E?br$1({view:E}):n()})):xr$1(0,uo).pipe(Nd(n),Rd(w=>!Ze(w),true)))),a=Wy(i,this.actions.pipe(kt$1(g=>g.caseId===t),re$4(({view:g})=>({view:g})))).pipe(pi$1(()=>this.watchedCases.delete(t)),Ad({bufferSize:1,refCount:true}));return this.watchedCases.set(t,a),a}get(t){return this.api.getCaseWorkspace(t)}act(t,e,n={acknowledgeSetupReplay:false}){return (e==="refresh"?this.api.refreshCaseWorkspace(t):this.api.retryCaseWorkspace(t,n)).pipe(Od(a=>{a.rootCaseId===t&&this.byRoot.update(g=>x$2(w$1({},g),{[t]:a})),this.actions.next({caseId:t,view:a});}))}static \u0275fac=function(e){return new(e||o)};static \u0275prov=x$1({token:o,factory:o.\u0275fac,providedIn:"root"})};function go(o){if(!o?.equipped||!o.branchName||!o.git||o.git.error)return null;let t;switch(o.git.prState){case "DRAFT":t={icon:"edit_note",label:"Draft",color:"var(--color-text-secondary, currentColor)"};break;case "OPEN":t={icon:"call_split",label:"Open",color:"var(--color-success, #218739)"};break;case "MERGED":t={icon:"merge",label:"Merged",color:"var(--color-info, #8957e5)"};break;case "CLOSED_UNMERGED":t={icon:"cancel",label:"Closed",color:"var(--color-error, #d34444)"};break;default:return null}return x$2(w$1({},t),{label:`PR${o.git.prNumber?` #${o.git.prNumber}`:""} \u2014 ${t.label}`})}var Ue={status:"loading",entries:[],path:"",totalEntries:0,hasMore:false,capability:"NONE"};function ho(o){let t=o.replace(/^\/+|\/+$/g,"");if(!t)return [];let e=t.split("/");return e.map((n,i)=>({label:n,path:e.slice(0,i+1).join("/")}))}var de=class o{controller=g(Z$3);workspaces=g(ce);namespaceId=null;caseId=null;caseRefresh$=new Tr$1(void 0);namespaceRefresh$=new Tr$1(void 0);casePath="";namespacePath="";casePage=0;namespacePage=0;caseLoadingMore=Gi$1(false);namespaceLoadingMore=Gi$1(false);caseView=this.buildScopeView(this.caseRefresh$,()=>this.caseId,()=>this.casePath,t=>this.loadScope(()=>this.loadDirectory("CASE",t),t).pipe(pi$1(()=>this.caseLoadingMore.set(false))));namespaceView=this.buildScopeView(this.namespaceRefresh$,()=>this.namespaceId,()=>this.namespacePath,t=>this.loadScope(()=>this.loadDirectory("NAMESPACE",t)).pipe(pi$1(()=>this.namespaceLoadingMore.set(false))));caseStatus=mT(()=>this.caseView().status);namespaceStatus=mT(()=>this.namespaceView().status);caseFiles=mT(()=>this.caseView().entries.filter(t=>!t.directory));namespaceFiles=mT(()=>this.namespaceView().entries.filter(t=>!t.directory));caseFolders=mT(()=>this.caseView().entries.filter(t=>t.directory));namespaceFolders=mT(()=>this.namespaceView().entries.filter(t=>t.directory));caseBrowsePath=mT(()=>this.caseView().path);namespaceBrowsePath=mT(()=>this.namespaceView().path);caseBreadcrumb=mT(()=>ho(this.caseView().path));namespaceBreadcrumb=mT(()=>ho(this.namespaceView().path));caseHasMore=mT(()=>this.caseView().hasMore);namespaceHasMore=mT(()=>this.namespaceView().hasMore);caseFileCount=mT(()=>this.caseView().totalEntries);namespaceFileCount=mT(()=>this.namespaceView().totalEntries);fileCount=mT(()=>this.caseFileCount()+this.namespaceFileCount());canWriteCase=mT(()=>this.caseView().capability==="READ_WRITE");canWriteNamespace=mT(()=>this.namespaceView().capability==="READ_WRITE");caseSectionVisible=mT(()=>this.caseView().status!=="forbidden");namespaceSectionVisible=mT(()=>this.namespaceView().status!=="forbidden");caseUploading=Gi$1(false);namespaceUploading=Gi$1(false);loadDirectory(t,e){let n=t==="CASE",i=n?this.casePath:this.namespacePath,a=n?this.casePage:this.namespacePage;(n?this.caseLoadingMore:this.namespaceLoadingMore).set(a>0);let w=(E,D)=>n?this.controller.browseCaseFilesExchange(e,E,D):this.controller.browseNamespaceFilesExchange(e,E,D);return w(i,0).pipe(Jy((E,D)=>E.hasMore&&D<a?w(i,D+1):on),nv((E,D)=>x$2(w$1({},D),{entries:[...E?.entries??[],...D.entries]}),null),kt$1(E=>E!==null&&(!E.hasMore||E.page>=a)),an(1),ya$1(E=>E.status!==404||!i?Vy(()=>E):w("",0).pipe(Od(()=>{n?(this.casePath="",this.casePage=0):(this.namespacePath="",this.namespacePage=0);}))))}loadScope(t,e){return t().pipe(re$4(n=>({status:"ready",entries:n.entries??[],path:n.path??"",totalEntries:n.totalEntries??0,hasMore:n.hasMore??false,capability:n.capability??"NONE"})),ya$1(n=>n?.status===409&&e?this.waitForWorkspace(e,t):br$1(this.scopeError(n))))}waitForWorkspace(t,e){return this.workspaces.watch(t).pipe(Rd(({view:n})=>!!n?.equipped&&(n.status==="REQUESTED"||n.status==="PREPARING"),true),va$1(({view:n,errorStatus:i})=>n?n.equipped&&(n.status==="REQUESTED"||n.status==="PREPARING")?br$1(x$2(w$1({},Ue),{status:"preparing"})):!n.equipped||n.status==="READY"||n.status==="REMOVED"?this.loadScope(e):br$1(this.scopeError({})):br$1(this.scopeError({status:i}))),ya$1(n=>br$1(this.scopeError(n))))}scopeError(t){return x$2(w$1({},Ue),{status:t?.status===403||t?.status===404?"forbidden":"error"})}buildScopeView(t,e,n,i){let a=null,g="",w=Ue,E=t.pipe(va$1(()=>{let D=e(),O=n(),I=D===a&&O===g&&w.status==="ready";if(a=D,g=O,!D)return br$1(Ue);let L=i(D);return I?L:L.pipe(Id(Ue))}),Od(D=>{w=D,D.status==="ready"&&(g=D.path);}),Ad({bufferSize:1,refCount:true}));return F$1(E,{initialValue:Ue})}initializeForCase(t,e){this.namespaceId!==t&&(this.namespacePath=""),this.caseId!==e&&(this.casePath=""),this.namespaceId=t,this.caseId=e,this.refreshManifest();}initializeForNamespace(t){this.namespaceId!==t&&(this.namespacePath=""),this.namespaceId=t,this.caseId=null,this.casePath="",this.casePage=0,this.namespacePage=0,this.caseRefresh$.next(),this.namespaceRefresh$.next();}clear(){this.namespaceId=null,this.caseId=null,this.casePath="",this.namespacePath="",this.refreshManifest();}browseCase(t){this.casePath=t.replace(/^\/+|\/+$/g,""),this.casePage=0,this.caseRefresh$.next();}browseNamespace(t){this.namespacePath=t.replace(/^\/+|\/+$/g,""),this.namespacePage=0,this.namespaceRefresh$.next();}refreshManifest(){this.casePage=0,this.namespacePage=0,this.caseRefresh$.next(),this.namespaceRefresh$.next();}refreshCase(){this.caseRefresh$.next();}refreshNamespace(){this.namespaceRefresh$.next();}loadMore(t){let e=t==="CASE",n=e?this.caseView():this.namespaceView(),i=e?this.caseLoadingMore:this.namespaceLoadingMore;n.status!=="ready"||!n.hasMore||i()||(i.set(true),e?(this.casePage++,this.caseRefresh$.next()):(this.namespacePage++,this.namespaceRefresh$.next()));}getContent(t,e){let n=t==="CASE",i=n?this.caseId:this.namespaceId;return i?n?this.controller.getCaseFileContentExchange(i,e):this.controller.getNamespaceFileContentExchange(i,e):Vy(()=>new Error("No active scope for content request"))}uploadFile(t,e){return B$2(this,null,function*(){let n=t==="CASE",i=n?this.caseId:this.namespaceId;if(!i)return {success:false,error:"No active scope"};let a=n?this.caseUploading:this.namespaceUploading;a.set(true);let g=n?this.controller.uploadCaseFileExchange(i,e):this.controller.uploadNamespaceFileExchange(i,e);return new Promise(w=>{g.subscribe({next:()=>{a.set(false),this.refreshManifest(),w({success:true});},error:E=>{a.set(false),w({success:false,error:this.uploadErrorMessage(E)});}});})})}uploadErrorMessage(t){let e=t?.error?.message,n={400:t?.error?.message??"This file type is not allowed.",409:e&&/workspace/i.test(e)?e:"A file with this name already exists.",413:"This file is too large."};return t?.status!=null&&n[t.status]||t?.message||"Upload failed"}deleteFile(t,e){return B$2(this,null,function*(){let n=t==="CASE",i=n?this.caseId:this.namespaceId;if(!i)return {success:false,error:"No active scope"};let a=n?this.controller.deleteCaseFileExchange(i,e):this.controller.deleteNamespaceFileExchange(i,e);return new Promise(g=>{a.subscribe({next:()=>{this.refreshManifest(),g({success:true});},error:w=>g({success:false,error:w?.message??"Delete failed"})});})})}downloadFile(t,e){let i=t==="CASE"?this.caseId:this.namespaceId;return i?this.downloadFrom(t,i,e):Promise.resolve({success:false,error:"No active scope"})}downloadFrom(t,e,n){let i=t==="CASE",a=n.split("/").pop()??n,w=i?this.controller.downloadCaseFileExchange(e,n):this.controller.downloadNamespaceFileExchange(e,n);return new Promise(E=>{w.subscribe({next:D=>{this.saveBlob(D,a),E({success:true});},error:D=>{console.error("[exchange] download failed",D),E({success:false,error:D?.message??"Download failed"});}});})}downloadAll(t){return B$2(this,null,function*(){let e=t==="CASE",n=e?this.caseId:this.namespaceId;if(!n)return {success:false,failedCount:1,error:"No active scope"};let i;try{i=yield Ny(e?this.controller.getCaseFilesManifestExchange(n):this.controller.getNamespaceFilesManifestExchange(n));}catch(w){return {success:false,failedCount:1,error:"Could not list all files. No complete download was performed."}}let a=0,g=0;for(let w of i.files)g++>0&&(yield new Promise(D=>setTimeout(D,300))),(yield this.downloadFrom(t,n,w.path)).success||a++;return {success:a===0,failedCount:a}})}saveBlob(t,e){let n=t instanceof Blob?t:new Blob([t]),i=window.URL.createObjectURL(n),a=document.createElement("a");a.href=i,a.download=e,a.style.display="none",document.body.appendChild(a),a.click(),document.body.removeChild(a),window.URL.revokeObjectURL(i);}static \u0275fac=function(e){return new(e||o)};static \u0275prov=x$1({token:o,factory:o.\u0275fac,providedIn:"root"})};function Bo(o,t){o&1&&(hl$1(0,"p"),GC(1,"Shared with the root case. Workspace preparation is managed there."),gl$1());}function Ho(o,t){if(o&1&&(hl$1(0,"p"),GC(1),gl$1()),o&2){let e=gC(2);XE(),Yg(e.failureReason||e.cleanupReason);}}function Go(o,t){if(o&1&&(hl$1(0,"p",1),GC(1),gl$1()),o&2){let e=gC(3);XE(),Yg(e.error());}}function jo(o,t){if(o&1){let e=lC();hl$1(0,"button",3),Og("click",function(){If(e);let i=gC(4);return wf(i.act("retry"))}),GC(1,"Retry preparation"),gl$1(),hl$1(2,"label")(3,"input",4),Og("change",function(i){If(e);let a=gC(4);return wf(a.onAcknowledgeSetup(i))}),gl$1(),GC(4," I have checked the effects of the interrupted setup and allow it to run again."),gl$1(),hl$1(5,"button",3),Og("click",function(){If(e);let i=gC(4);return wf(i.act("retry",{acknowledgeSetupReplay:true}))}),GC(6," Run setup again "),gl$1();}if(o&2){let e=gC(4);xg("disabled",e.busy()),XE(3),xg("checked",e.acknowledgeSetup()),XE(2),xg("disabled",e.busy()||!e.acknowledgeSetup());}}function Qo(o,t){if(o&1&&Jw(0,jo,7,3),o&2){let e=gC(2),n=gC();eC(e.status===n.Status.FAILED?0:-1);}}function Ko(o,t){if(o&1&&(hl$1(0,"details",0)(1,"summary"),GC(2),gl$1(),Jw(3,Bo,2,0,"p"),Jw(4,Ho,2,1,"p"),Jw(5,Go,2,1,"p",1),hl$1(6,"div",2),Jw(7,Qo,1,1),gl$1()()),o&2){let e=gC(),n=gC();XE(2),vl$1("Workspace \xB7 ",e.status),XE(),eC(e.rootCaseId!==n.caseId()?3:-1),XE(),eC(e.failureReason||e.cleanupReason?4:-1),XE(),eC(n.error()?5:-1),XE(2),eC(e.rootCaseId===n.caseId()&&n.canWrite()?7:-1);}}function Yo(o,t){if(o&1&&Jw(0,Ko,8,5,"details",0),o&2){let e=gC();eC(e.actionable()?0:-1);}}var ut=class o{caseId=ZB.required();canWrite=ZB(false);Status=Oe$1;service=g(ce);cases=g(O);files=g(de);view=Gi$1(null);actionable=mT(()=>{let t=this.view();return t?.equipped&&(t.status==="REQUESTED"||t.status==="PREPARING"||t.status==="FAILED"||t.status==="DELETING"||!!t.failureReason||!!t.cleanupReason)});busy=Gi$1(false);error=Gi$1("");acknowledgeSetup=Gi$1(false);action;constructor(){Hf(t=>{let e=this.caseId();this.view.set(null),this.error.set(""),this.acknowledgeSetup.set(false),this.busy.set(false);let n=this.service.watch(e).subscribe(({view:i})=>this.view.set(i));t(()=>{n.unsubscribe(),this.action?.unsubscribe();});});}onAcknowledgeSetup(t){this.acknowledgeSetup.set(t.target.checked);}act(t,e={acknowledgeSetupReplay:false}){if(!this.canWrite()||this.view()?.rootCaseId!==this.caseId()||this.busy())return;this.busy.set(true),this.error.set("");let n=this.caseId();this.action=this.service.act(n,t,e).subscribe({next:i=>{this.caseId()===n&&(this.view.set(i),this.acknowledgeSetup.set(false),this.busy.set(false),t==="retry"&&this.files.refreshCase(),this.cases.reloadCurrent());},error:i=>{this.caseId()===n&&(this.error.set(i.error?.message||"Workspace action failed"),this.busy.set(false));}});}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=xw({type:o,selectors:[["agentos-case-workspace"]],inputs:{caseId:[1,"caseId"],canWrite:[1,"canWrite"]},decls:1,vars:1,consts:[["open","",1,"workspace"],["role","alert"],[1,"actions"],["type","button",3,"click","disabled"],["type","checkbox",3,"change","checked"]],template:function(e,n){if(e&1&&Jw(0,Yo,1,1),e&2){let i;eC((i=n.view())?0:-1,i);}},styles:[".workspace[_ngcontent-%COMP%]{padding:8px 16px;border-bottom:1px solid var(--color-border, rgba(136, 136, 136, .2666666667));font-size:12px}.actions[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.actions[_ngcontent-%COMP%] p[_ngcontent-%COMP%], .actions[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{flex-basis:100%}summary[_ngcontent-%COMP%]{cursor:pointer}button[_ngcontent-%COMP%]{cursor:pointer;padding:4px 8px}"]})};var Jo=(o,t)=>t.caseId;function Xo(o,t){o&1&&(hl$1(0,"p",0),GC(1,"Loading usage settings\u2026"),gl$1());}function Zo(o,t){if(o&1){let e=lC();hl$1(0,"p",1),GC(1,"Could not load usage settings. Please try again."),gl$1(),hl$1(2,"button",2),Og("click",function(){If(e);let i=gC();return wf(i.configuration.retry())}),GC(3,"Retry usage settings"),gl$1();}}function ei(o,t){o&1&&(hl$1(0,"strong"),GC(1,"Paused \xB7 cost threshold reached"),gl$1());}function ti(o,t){o&1&&(hl$1(0,"strong"),GC(1,"Usage"),gl$1());}function ni(o,t){if(o&1&&(hl$1(0,"span"),GC(1),aT(2,"number"),gl$1()),o&2){let e=gC();XE(),vl$1(" / ",lT(2,1,e.runCostThreshold,"1.2-6")," threshold");}}function oi(o,t){if(o&1&&(hl$1(0,"p"),GC(1),aT(2,"number"),aT(3,"number"),gl$1()),o&2){let e=t;XE(),Kg(" Conversation: ",e.unknownCostCount>0?"at least ":"","",lT(2,3,e.cost,"1.2-6")," recorded \xB7 ",uT(3,6,e.totalTokens)," recorded tokens ");}}function ii(o,t){if(o&1&&(hl$1(0,"p"),GC(1),aT(2,"number"),gl$1()),o&2){let e=gC();XE(),vl$1("",uT(2,1,e.liveTokens)," tokens in active agent runs.");}}function ai(o,t){o&1&&(hl$1(0,"p",7),GC(1," Some usage has no reliable price. The displayed cost is a lower bound; the threshold cannot guarantee a spending cap. "),gl$1());}function ri(o,t){o&1&&(hl$1(0,"p"),GC(1,"This run is waiting for confirmation in a linked conversation you cannot access."),gl$1());}function si(o,t){if(o&1){let e=lC();hl$1(0,"button",9),Og("click",function(){If(e);let i=gC(2).$implicit,a=gC(4);return wf(a.continue(i))}),GC(1),aT(2,"number"),gl$1();}if(o&2){let e=gC(2).$implicit,n=gC(4);xg("disabled",n.saving()||!!n.error()),XE(),vl$1(" Continue \xB7 double threshold to ",lT(2,2,e.threshold*2,"1.2-6")," ");}}function li(o,t){if(o&1){let e=lC();hl$1(0,"p"),GC(1),gl$1(),hl$1(2,"button",9),Og("click",function(){If(e);let i=gC(2).$implicit,a=gC(4);return wf(a.continue(i))}),GC(3," Continue with updated threshold "),gl$1();}if(o&2){let e=gC(2).$implicit,n=gC(4);XE(),vl$1(" Set a positive threshold in ",e.ancestor?"the parent conversation":e.caseId===n.caseId()?"this conversation":"the delegated conversation"," settings before continuing. "),XE(),xg("disabled",n.saving());}}function ci(o,t){if(o&1&&Jw(0,si,3,5,"button",8)(1,li,4,2),o&2){let e=gC().$implicit;eC(e.threshold>0?0:1);}}function di(o,t){if(o&1&&(hl$1(0,"p"),GC(1),gl$1()),o&2){let e=gC().$implicit,n=gC(4);XE(),vl$1(" A member with edit permission on ",e.ancestor?"the parent conversation":e.caseId===n.caseId()?"this conversation":"the delegated conversation"," must approve continuation. ");}}function mi(o,t){if(o&1&&(hl$1(0,"p"),GC(1),aT(2,"number"),gl$1(),Jw(3,ci,2,1)(4,di,2,1,"p")),o&2){let e=t.$implicit,n=gC(4);XE(),Qg(" ",e.ancestor?"Parent conversation":e.caseId===n.caseId()?"Conversation":"Delegated run",": ",lT(2,3,e.cost,"1.2-6")," consumed. "),XE(2),eC(e.canContinue?3:4);}}function pi(o,t){if(o&1){let e=lC();hl$1(0,"button",9),Og("click",function(){If(e);let i=gC(4);return wf(i.stop())}),GC(1,"Stop"),gl$1();}if(o&2){let e=gC(4);xg("disabled",e.saving());}}function _i(o,t){if(o&1&&(hl$1(0,"p"),GC(1,"The next request is waiting for cost confirmation. Continuing keeps the current execution context."),gl$1(),Jw(2,ri,2,0,"p"),rC(3,mi,5,6,null,null,Jo),Jw(5,pi,2,1,"button",8)),o&2){let e=gC(),n=gC(2);XE(2),eC(e.paused&&e.pausedCases.length===0?2:-1),XE(),oC(e.pausedCases),XE(2),eC(n.canWrite()?5:-1);}}function ui(o,t){if(o&1&&(hl$1(0,"details",5)(1,"summary"),Jw(2,ei,2,0,"strong")(3,ti,2,0,"strong"),hl$1(4,"span"),GC(5),aT(6,"number"),gl$1(),Jw(7,ni,3,4,"span"),gl$1(),hl$1(8,"div",6)(9,"p"),GC(10,"Includes delegated work. Costs are estimates in the platform currency."),gl$1(),Jw(11,oi,4,8,"p"),Jw(12,ii,3,3,"p"),Jw(13,ai,2,0,"p",7),Jw(14,_i,6,2),gl$1()()),o&2){let e,n=t,i=gC(2);Ug("usage--paused",n.paused||n.pausedCases.length>0),xg("open",n.paused||n.pausedCases.length>0),XE(2),eC(n.paused||n.pausedCases.length>0?2:3),XE(3),Qg("",n.unknownCostCount>0?"At least ":"","",lT(6,11,n.cost,"1.2-6")," this run"),XE(2),eC(n.runCostThreshold!==null&&n.runCostThreshold!==void 0?7:-1),XE(4),eC((e=i.total())?11:-1,e),XE(),eC(n.liveTokens>0?12:-1),XE(),eC(n.unknownCostCount>0?13:-1),XE(),eC(n.paused||n.pausedCases.length>0?14:-1);}}function gi(o,t){o&1&&(hl$1(0,"p",4),GC(1),gl$1()),o&2&&(XE(),Yg(t));}function hi(o,t){if(o&1&&(Jw(0,ui,15,14,"details",3),Jw(1,gi,2,1,"p",4)),o&2){let e,n,i=gC();eC((e=i.run())?0:-1,e),XE(),eC((n=i.error())?1:-1,n);}}var gt=class o{caseId=ZB.required();canWrite=ZB(false);running=ZB(false);configuration=g(c$2);costs=g(ae$4);usage=g(G$7);caseState=g(O);run=Gi$1(null);total=Gi$1(null);error=Gi$1(null);saving=Gi$1(false);constructor(){Hf(t=>{this.caseId(),this.run.set(null),this.total.set(null),this.error.set(null),this.saving.set(false);let e=new J$2;this.actions=e,t(()=>e.unsubscribe());}),Hf(t=>{if(!this.configuration.enabled())return;let e=this.caseId(),n=this.running();if(this.saving())return;let i=this.caseState.agentMessageEvent$.pipe(kt$1(g=>g.caseId===e),re$4(g=>g.id),Yy(),re$4(()=>true)),a=Wy(br$1(true),i,n?xr$1(2e3,2e3).pipe(re$4(()=>false)):on).pipe(Nd(g=>this.loadUsage(e,g))).subscribe(g=>this.applyUsage(e,g));t(()=>a.unsubscribe());});}actions=new J$2;loadUsage(t,e){return By({run:this.costs.getRunCost(t),total:e?this.usage.aggregateByCaseTreeUsageRecord(t):br$1(void 0)}).pipe(ya$1(()=>(this.error.set("Usage could not be refreshed. Displayed values may be out of date."),on)))}applyUsage(t,e){this.caseId()!==t||this.saving()||(this.run.set(e.run),e.total&&this.total.set(e.total),this.error.set(null));}continue(t){!this.configuration.enabled()||!t.canContinue||this.saving()||(this.saving.set(true),this.actions.add(this.costs.continueCostRunRunCost(t.caseId,{expectedThreshold:t.threshold}).pipe(va$1(()=>this.costs.getRunCost(this.caseId()))).subscribe({next:e=>{this.run.set(e),this.caseState.refreshCaseThreshold(t.caseId),this.saving.set(false),this.error.set(null);},error:()=>{this.saving.set(false),this.error.set("Could not continue. Refresh and check the threshold and your edit permission.");}})));}stop(){!this.configuration.enabled()||!this.canWrite()||this.saving()||(this.saving.set(true),this.actions.add(this.costs.stopCostRunRunCost(this.caseId()).subscribe({next:()=>{this.run.update(t=>t?x$2(w$1({},t),{paused:false,pausedCases:[]}):null),this.saving.set(false);},error:()=>{this.saving.set(false),this.error.set("Could not stop the execution. Please try again.");}})));}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=xw({type:o,selectors:[["agentos-case-usage"]],inputs:{caseId:[1,"caseId"],canWrite:[1,"canWrite"],running:[1,"running"]},decls:3,vars:1,consts:[["role","status"],["role","alert"],["type","button",3,"click"],[1,"usage",3,"open","usage--paused"],["role","status",1,"usage__warning"],[1,"usage",3,"open"],[1,"usage__body"],[1,"usage__warning"],["type","button",3,"disabled"],["type","button",3,"click","disabled"]],template:function(e,n){e&1&&Jw(0,Xo,2,0,"p",0)(1,Zo,4,0)(2,hi,2,2),e&2&&eC(n.configuration.state()==="loading"?0:n.configuration.state()==="error"?1:n.configuration.enabled()?2:-1);},dependencies:[Pb],styles:["[_nghost-%COMP%]{display:block;flex:0 0 auto}.usage[_ngcontent-%COMP%]{border-bottom:1px solid var(--color-border, rgba(136, 136, 136, .3333333333));font-size:.85rem}summary[_ngcontent-%COMP%]{cursor:pointer;padding:.65rem 1rem;display:flex;flex-wrap:wrap;gap:.4rem}.usage__body[_ngcontent-%COMP%]{padding:0 1rem .8rem}p[_ngcontent-%COMP%]{margin:.45rem 0}button[_ngcontent-%COMP%]{font:inherit;color:inherit;background:transparent;border:1px solid currentColor;border-radius:.4rem;padding:.5rem .75rem;margin:.3rem .5rem 0 0;cursor:pointer}button[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:default}.usage--paused[_ngcontent-%COMP%]{border-left:3px solid #c68a24}.usage__warning[_ngcontent-%COMP%]{color:var(--color-text-secondary, inherit);padding:0 1rem}"]})};function fi(o,t){o&1&&(kf(),_g(0,"circle",2)(1,"path",3));}function Ci(o,t){o&1&&(kf(),_g(0,"circle",4)(1,"circle",5));}function bi(o,t){o&1&&(kf(),_g(0,"circle",6)(1,"rect",7));}function xi(o,t){o&1&&(kf(),_g(0,"circle",8)(1,"line",9)(2,"circle",10));}function vi(o,t){o&1&&(kf(),_g(0,"circle",1));}var Ee=class o{status=ZB.required();size=ZB(16);Status=Ve;static \u0275fac=function(e){return new(e||o)};static \u0275cmp=xw({type:o,selectors:[["agentos-case-status-glyph"]],hostVars:8,hostBindings:function(e,n){e&2&&Ug("is-running",n.status()===n.Status.RUNNING)("is-pending",n.status()===n.Status.PENDING)("is-error",n.status()===n.Status.ERROR)("is-killed",n.status()===n.Status.KILLED);},inputs:{status:[1,"status"],size:[1,"size"]},decls:6,vars:3,consts:[["viewBox","0 0 16 16","fill","none","aria-hidden","true"],["cx","8","cy","8","r","5.5","stroke","currentColor","stroke-width","1.6"],["cx","8","cy","8","r","6","stroke","currentColor","stroke-width","1.6","opacity","0.25"],["d","M8 2 A6 6 0 0 1 14 8","stroke","currentColor","stroke-width","1.8","stroke-linecap","round",1,"arc"],["cx","8","cy","8","r","6","stroke","currentColor","stroke-width","1.4","opacity","0.5"],["cx","8","cy","8","r","2.4","fill","currentColor",1,"dot"],["cx","8","cy","8","r","6.2","fill","currentColor","opacity","0.9"],["x","4.6","y","7.1","width","6.8","height","1.8","fill","var(--color-bg)"],["cx","8","cy","8","r","6.2","fill","currentColor"],["x1","8","y1","4.6","x2","8","y2","8.8","stroke","var(--color-bg)","stroke-width","1.7","stroke-linecap","round"],["cx","8","cy","11.2","r","1","fill","var(--color-bg)"]],template:function(e,n){if(e&1&&(kf(),hl$1(0,"svg",0),Jw(1,fi,2,0)(2,Ci,2,0)(3,bi,2,0)(4,xi,3,0)(5,vi,1,0,":svg:circle",1),gl$1()),e&2){let i;Tg("width",n.size())("height",n.size()),XE(),eC((i=n.status())===n.Status.RUNNING?1:i===n.Status.PENDING?2:i===n.Status.KILLED?3:i===n.Status.ERROR?4:5);}},styles:["[_nghost-%COMP%]{display:inline-grid;place-items:center;flex:none;pointer-events:none;color:var(--status-idle-color)}.is-running[_nghost-%COMP%]{color:var(--color-accent)}.is-running[_nghost-%COMP%] .arc[_ngcontent-%COMP%]{transform-origin:center;animation:_ngcontent-%COMP%_glyph-spin .9s linear infinite}.is-pending[_nghost-%COMP%]{color:var(--status-pending-color)}.is-pending[_nghost-%COMP%] .dot[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_glyph-pulse 1.5s ease infinite}.is-error[_nghost-%COMP%]{color:var(--red)}.is-killed[_nghost-%COMP%]{color:var(--status-killed-color)}@keyframes _ngcontent-%COMP%_glyph-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes _ngcontent-%COMP%_glyph-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.6)}}"]})};function yi(o,t){if(o&1){let e=lC();hl$1(0,"div",5)(1,"input",8),Og("input",function(i){If(e);let a=gC();return wf(a.onFreeTextInput(i))})("keydown",function(i){If(e);let a=gC();return wf(a.onFreeTextKeydown(i))}),gl$1(),hl$1(2,"button",9),Og("click",function(){If(e);let i=gC();return wf(i.submitFreeText())}),GC(3," Submit "),gl$1()();}if(o&2){let e=gC();XE(),xg("value",e.freeTextValue()),XE(),xg("disabled",!e.freeTextValue().trim());}}function wi(o,t){if(o&1){let e=lC();hl$1(0,"button",11),Og("click",function(){let i=If(e).$implicit,a=gC(2);return wf(a.selectOption(i))}),GC(1),gl$1();}if(o&2){let e=t.$implicit;XE(),vl$1(" ",e," ");}}function Si(o,t){if(o&1&&(hl$1(0,"div",6),rC(1,wi,2,1,"button",10,nC),gl$1()),o&2){let e=gC();XE(),oC(e.questionEvent().options);}}function Ei(o,t){if(o&1){let e=lC();hl$1(0,"button",11),Og("click",function(){let i=If(e).$implicit,a=gC(2);return wf(a.selectOption(i))}),GC(1),gl$1();}if(o&2){let e=t.$implicit;XE(),vl$1(" ",e," ");}}function Mi(o,t){if(o&1){let e=lC();hl$1(0,"div",6),rC(1,Ei,2,1,"button",10,nC),gl$1(),hl$1(3,"div",12)(4,"input",13),Og("input",function(i){If(e);let a=gC();return wf(a.onFreeTextInput(i))})("keydown",function(i){If(e);let a=gC();return wf(a.onFreeTextKeydown(i))}),gl$1(),hl$1(5,"button",9),Og("click",function(){If(e);let i=gC();return wf(i.submitFreeText())}),GC(6," Submit "),gl$1()();}if(o&2){let e=gC();XE(),oC(e.questionEvent().options),XE(3),xg("value",e.freeTextValue()),XE(),xg("disabled",!e.freeTextValue().trim());}}function ki(o,t){if(o&1){let e=lC();hl$1(0,"div",7)(1,"p",14),GC(2," This action requires authorization. Click below to open the authorization page. "),gl$1(),hl$1(3,"div",15)(4,"button",16),Og("click",function(){If(e);let i=gC();return wf(i.onAuthorize())}),GC(5," Authorize "),gl$1(),hl$1(6,"button",17),Og("click",function(){If(e);let i=gC();return wf(i.onOAuthCancel())}),GC(7," Cancel "),gl$1()()();}}var ht=class o{oauthService=g(h$1);questionEvent=ZB.required();answered=qB();cancelled=qB();QuestionType=qe;freeTextValue=Gi$1("");onFreeTextInput(t){this.freeTextValue.set(t.target.value);}onFreeTextKeydown(t){t.key==="Enter"&&!t.shiftKey&&(t.preventDefault(),this.submitFreeText());}submitFreeText(){let t=this.freeTextValue().trim();t&&this.answered.emit(t);}selectOption(t){this.answered.emit(t);}onAuthorize(){this.oauthService.openPopup(this.questionEvent());}onOAuthCancel(){this.oauthService.cancelRequest(),this.cancelled.emit();}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=xw({type:o,selectors:[["agentos-question-panel"]],inputs:{questionEvent:[1,"questionEvent"]},outputs:{answered:"answered",cancelled:"cancelled"},decls:12,vars:3,consts:[[1,"question-panel"],[1,"question-panel__header"],[1,"question-panel__agent"],[1,"question-panel__label"],[1,"question-panel__question"],[1,"question-panel__free-text"],[1,"question-panel__options"],[1,"question-panel__oauth"],["type","text","placeholder","Your answer\u2026",1,"question-panel__input",3,"input","keydown","value"],["type","button",1,"question-panel__btn","question-panel__btn--primary",3,"click","disabled"],["type","button",1,"question-panel__btn","question-panel__btn--option"],["type","button",1,"question-panel__btn","question-panel__btn--option",3,"click"],[1,"question-panel__free-text","question-panel__free-text--with-margin"],["type","text","placeholder","Or type a custom answer\u2026",1,"question-panel__input",3,"input","keydown","value"],[1,"question-panel__oauth-hint"],[1,"question-panel__oauth-actions"],["type","button",1,"question-panel__btn","question-panel__btn--primary",3,"click"],["type","button",1,"question-panel__btn","question-panel__btn--secondary",3,"click"]],template:function(e,n){if(e&1&&(hl$1(0,"div",0)(1,"div",1)(2,"span",2),GC(3),gl$1(),hl$1(4,"span",3),GC(5,"asks"),gl$1()(),hl$1(6,"p",4),GC(7),gl$1(),Jw(8,yi,4,2,"div",5)(9,Si,3,0,"div",6)(10,Mi,7,2)(11,ki,8,0,"div",7),gl$1()),e&2){let i;XE(3),Yg(n.questionEvent().agentName),XE(4),Yg(n.questionEvent().question),XE(),eC((i=n.questionEvent().questionType)===n.QuestionType.FREE_TEXT?8:i===n.QuestionType.SINGLE_CHOICE?9:i===n.QuestionType.OPEN_CHOICE?10:i===n.QuestionType.OAUTH_AUTHORIZE?11:-1);}},styles:[".question-panel[_ngcontent-%COMP%]{flex-shrink:0;border-radius:12px;border:1px solid var(--color-primary, #0071e3);background:var(--glass-bg, rgba(255, 255, 255, .72));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:1rem;display:flex;flex-direction:column;gap:.75rem;animation:_ngcontent-%COMP%_question-panel-in .2s ease}.question-panel__header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.35rem;font-size:.8rem;color:var(--color-text-secondary, #6e6e73)}.question-panel__agent[_ngcontent-%COMP%]{font-weight:600;color:var(--color-primary, #0071e3)}.question-panel__label[_ngcontent-%COMP%]{font-style:italic}.question-panel__question[_ngcontent-%COMP%]{margin:0;font-size:.95rem;font-weight:500;color:var(--color-text, #1d1d1f);line-height:1.5}.question-panel__options[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.5rem}.question-panel__free-text[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:center}.question-panel__free-text--with-margin[_ngcontent-%COMP%]{margin-top:.25rem}.question-panel__input[_ngcontent-%COMP%]{flex:1;padding:.45rem .75rem;border:1px solid var(--color-border, rgba(0, 0, 0, .15));border-radius:8px;background:var(--color-surface, #ffffff);color:var(--color-text, #1d1d1f);font-size:.9rem;font-family:inherit;outline:none;transition:border-color .15s ease}.question-panel__input[_ngcontent-%COMP%]:focus{border-color:var(--color-primary, #0071e3)}.question-panel__input[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary, #6e6e73)}.question-panel__btn[_ngcontent-%COMP%]{padding:.45rem 1rem;border-radius:8px;border:none;font-size:.875rem;font-family:inherit;font-weight:500;cursor:pointer;transition:opacity .15s ease,background .15s ease;white-space:nowrap}.question-panel__btn[_ngcontent-%COMP%]:disabled{opacity:.4;cursor:not-allowed}.question-panel__btn--primary[_ngcontent-%COMP%]{background:var(--color-primary, #0071e3);color:var(--color-text-inverse, #ffffff)}.question-panel__btn--primary[_ngcontent-%COMP%]:not(:disabled):hover{opacity:.88}.question-panel__btn--secondary[_ngcontent-%COMP%]{background:var(--color-surface-secondary, rgba(0, 0, 0, .06));color:var(--color-text, #1d1d1f)}.question-panel__btn--secondary[_ngcontent-%COMP%]:not(:disabled):hover{background:var(--color-bg-hover, rgba(0, 0, 0, .1))}.question-panel__btn--option[_ngcontent-%COMP%]{background:var(--color-surface-secondary, rgba(0, 0, 0, .05));color:var(--color-primary, #0071e3);border:1px solid var(--color-primary, #0071e3)}.question-panel__btn--option[_ngcontent-%COMP%]:hover{background:var(--color-primary, #0071e3);color:var(--color-text-inverse, #ffffff)}.question-panel__oauth[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.75rem}.question-panel__oauth-hint[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--color-text-secondary, #6e6e73);line-height:1.5}.question-panel__oauth-actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}@keyframes _ngcontent-%COMP%_question-panel-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}"]})};var $e=class o{sanitizer=g(bS);renderer=this.buildRenderer();render(t){if(!t)return "";let e=x$3.parse(t,{renderer:this.renderer,breaks:true,gfm:true,async:false});return this.sanitizer.bypassSecurityTrustHtml(is$1.sanitize(e,{ADD_TAGS:["span"],ADD_ATTR:["aria-hidden","aria-label","target","rel"],ALLOWED_URI_REGEXP:/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.-]+(?:[^a-z+.-:]|$))/i}))}buildRenderer(){let t=new Ue$1,e=t.link.bind(t),n=t.code.bind(t);return t.code=i=>n(i).replace("<pre>",'<pre class="agentos-chat-code-block">'),t.link=i=>{let a=e(i);return this.isExternal(i.href)&&(a=a.replace("<a ",'<a target="_blank" rel="noopener noreferrer" ').replace("</a>",'<span class="external-link-icon" aria-hidden="true">\u2197</span></a>')),a},t}isExternal(t){if(!t||t.startsWith("/")||t.startsWith("#")||t.startsWith("?"))return false;try{return new URL(t,window.location.href).hostname!==window.location.hostname}catch(e){return t.startsWith("//")}}static \u0275fac=function(e){return new(e||o)};static \u0275prov=x$1({token:o,factory:o.\u0275fac,providedIn:"root"})};function Ti(o,t){if(o&1&&(hl$1(0,"p")(1,"strong"),GC(2,"Waiting for your answer:"),gl$1(),GC(3),gl$1()),o&2){let e=gC();XE(3),vl$1(" ",e.result().pendingQuestion);}}function Pi(o,t){if(o&1&&(hl$1(0,"li"),GC(1),gl$1()),o&2){let e=t.$implicit;XE(),Yg(e);}}function Oi(o,t){if(o&1&&(hl$1(0,"ul"),rC(1,Pi,2,1,"li",null,nC),gl$1()),o&2){let e=gC();XE(),oC(e.result().options);}}var ft=class o{result=ZB.required();markdown=g($e);html=mT(()=>this.markdown.render(this.result().result??this.result().error??"No result returned."));static \u0275fac=function(e){return new(e||o)};static \u0275cmp=xw({type:o,selectors:[["agentos-delegation-result"]],inputs:{result:[1,"result"]},decls:4,vars:3,consts:[["aria-label","Delegation result",1,"delegation-result"],[1,"delegation-result__markdown",3,"innerHTML"]],template:function(e,n){e&1&&(hl$1(0,"section",0),_g(1,"div",1),Jw(2,Ti,4,1,"p"),Jw(3,Oi,3,0,"ul"),gl$1()),e&2&&(XE(),xg("innerHTML",n.html(),aE),XE(),eC(n.result().pendingQuestion?2:-1),XE(),eC(n.result().options?.length?3:-1));},styles:[".delegation-result[_ngcontent-%COMP%]{padding:.75rem 1rem;color:var(--color-text);line-height:1.55}.delegation-result[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:.5rem 0 0}.delegation-result[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{margin:.4rem 0 0;padding-left:1.3rem}"]})};function Di(o,t){o&1&&(ws$1(0,"span",4),GC(1,"Resumed"),pl$1());}function Ii(o,t){if(o&1&&Sg(0,"agentos-delegation-result",6),o&2){let e=gC(2);bg("result",e.delegation().result);}}function Ri(o,t){if(o&1&&(ws$1(0,"li"),GC(1),pl$1()),o&2){let e=t.$implicit;XE(),Yg(e);}}function Vi(o,t){if(o&1&&rC(0,Ri,2,1,"li",null,nC),o&2){let e=gC(3);oC(e.activity());}}function Ni(o,t){o&1&&(ws$1(0,"li"),GC(1,"Working\u2026"),pl$1());}function Ai(o,t){if(o&1&&(ws$1(0,"ol",7),Jw(1,Vi,2,0)(2,Ni,2,0,"li"),pl$1(),ws$1(3,"section",8)(4,"strong"),GC(5,"Task"),pl$1(),ws$1(6,"p"),GC(7),pl$1()()),o&2){let e=gC(2);XE(),eC(e.activity().length?1:2),XE(6),Yg(e.delegation().task);}}function Fi(o,t){if(o&1&&Jw(0,Ii,1,1,"agentos-delegation-result",6)(1,Ai,8,2),o&2){let e=gC();eC(e.delegation().result?0:1);}}var Ct=class o{delegation=ZB.required();namespaceId=ZB.required();router=g(G$5);config=g(y$1);zone=g(G$6);destroyRef=g(Ce$1);open=Gi$1(false);activity=Gi$1([]);source=null;statusLabel=mT(()=>this.delegation().status.replace("_"," "));toggle(){this.open.update(t=>!t),this.open()?this.connect():this.disconnect();}openSubCase(){this.router.navigate(["/agentos/home"],{queryParams:{ns:this.namespaceId(),case:this.delegation().subCaseId}});}connect(){this.source||(this.source=this.zone.runOutsideAngular(()=>new EventSource(`${this.config.basePath}/api/cases/${this.delegation().subCaseId}/events`)),this.source.addEventListener("case-event",t=>{try{let e=JSON.parse(t.data);this.zone.run(()=>this.addActivity(e));}catch(e){}}),this.destroyRef.onDestroy(()=>this.disconnect()));}disconnect(){this.source?.close(),this.source=null;}addActivity(t){let e=t.type==="MessageEvent"?"Agent produced a message":t.type==="ToolRequestEvent"?`Tool started: ${t.toolName}`:t.type==="ToolResponseEvent"?`Tool completed: ${t.toolName}`:t.type==="QuestionEvent"?"Waiting for input":t.type==="AgentFinishedEvent"?"Agent finished":null;e&&this.activity.update(n=>n.includes(e)?n:[...n,e].slice(-6));}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=xw({type:o,selectors:[["agentos-delegation-card"]],inputs:{delegation:[1,"delegation"],namespaceId:[1,"namespaceId"]},decls:13,vars:12,consts:[[1,"delegation-card"],[1,"delegation-card__header"],["type","button",1,"delegation-card__toggle",3,"click"],[1,"delegation-card__status"],[1,"delegation-card__resumed"],["type","button",1,"delegation-card__open",3,"click"],[3,"result"],["aria-label","Live sub-case activity",1,"delegation-card__activity"],[1,"delegation-card__task"]],template:function(e,n){e&1&&(ws$1(0,"article",0)(1,"header",1)(2,"button",2),Rg("click",function(){return n.toggle()}),ws$1(3,"span"),GC(4),pl$1(),ws$1(5,"strong"),GC(6),pl$1(),ws$1(7,"span",3),GC(8),pl$1(),Jw(9,Di,2,0,"span",4),pl$1(),ws$1(10,"button",5),Rg("click",function(){return n.openSubCase()}),GC(11," Open sub-case "),pl$1()(),Jw(12,Fi,2,1),pl$1()),e&2&&(Ug("delegation-card--working",n.delegation().status==="WORKING")("delegation-card--error",n.delegation().status==="ERROR"||n.delegation().status==="TIMEOUT"||n.delegation().status==="KILLED"),XE(2),Tg("aria-expanded",n.open())("aria-label",(n.open()?"Collapse":"Expand")+" delegation for "+n.delegation().agentName),XE(2),Yg(n.open()?"\u25BE":"\u25B8"),XE(2),Yg(n.delegation().agentName),XE(2),Yg(n.statusLabel()),XE(),eC(n.delegation().resumed?9:-1),XE(),Tg("aria-label","Open sub-case for "+n.delegation().agentName),XE(2),eC(n.open()?12:-1));},dependencies:[ft],styles:[".delegation-card[_ngcontent-%COMP%]{align-self:flex-start;width:min(90%,720px);border:1px solid var(--color-divider);border-left:3px solid var(--color-success);background:var(--color-surface)}.delegation-card--working[_ngcontent-%COMP%]{border-left-color:var(--color-warning)}.delegation-card--error[_ngcontent-%COMP%]{border-left-color:var(--color-error)}.delegation-card__header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.45rem .7rem}.delegation-card__toggle[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;min-width:0;flex:1;border:0;background:transparent;color:var(--color-text);text-align:left;cursor:pointer}.delegation-card__status[_ngcontent-%COMP%], .delegation-card__resumed[_ngcontent-%COMP%]{font-size:.7rem;font-weight:600;text-transform:uppercase}.delegation-card__status[_ngcontent-%COMP%]{margin-left:auto}.delegation-card__resumed[_ngcontent-%COMP%]{color:var(--color-text-secondary)}.delegation-card__open[_ngcontent-%COMP%]{border:0;background:transparent;color:var(--color-accent);cursor:pointer;text-decoration:underline;white-space:nowrap}button[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.delegation-card__activity[_ngcontent-%COMP%], .delegation-card__task[_ngcontent-%COMP%]{margin:0;padding:.6rem 1rem;border-top:1px solid var(--color-divider);font-size:.85rem}.delegation-card__activity[_ngcontent-%COMP%]{padding-left:2rem}.delegation-card__task[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:.25rem 0 0;white-space:pre-wrap}"]})};function fo(o){return o!==null&&typeof o=="object"&&!Array.isArray(o)?o:null}function Bt(o){if(typeof o=="string")return o;if(Array.isArray(o)){for(let e of o){let n=Bt(e);if(n!==null)return n}return null}let t=fo(o);if(!t)return null;for(let e of ["content","text","output"]){let n=Bt(t[e]);if(n!==null)return n}return null}function Co(o){let t=Bt(o?.output);if(t===null)return null;try{let e=JSON.parse(t),i=(Array.isArray(e)?e:[e]).map(a=>{let g=fo(a);if(!g||typeof g.delegationId!="string"||typeof g.toolRequestId!="string")return null;let w={delegationId:g.delegationId,toolRequestId:g.toolRequestId};return typeof g.subCaseId=="string"&&(w.subCaseId=g.subCaseId),typeof g.agentName=="string"&&(w.agentName=g.agentName),typeof g.success=="boolean"&&(w.success=g.success),typeof g.result=="string"&&(w.result=g.result),typeof g.pendingQuestion=="string"&&(w.pendingQuestion=g.pendingQuestion),Array.isArray(g.options)&&(w.options=g.options.filter(E=>typeof E=="string")),typeof g.error=="string"&&(w.error=g.error),typeof g.errorType=="string"&&(w.errorType=g.errorType),w});return i.every(a=>a!==null)?i:null}catch(e){return null}}function bo(o){let t=new Map,e=new Map,n=new Map;for(let a of o)if(a.type==="SubCaseStartedEvent"&&t.set(a.delegationId,a),a.type==="SubCaseFinishedEvent"&&e.set(a.delegationId,a),a.type==="ToolResponseEvent")for(let g of Co(a)??[])n.set(g.delegationId,g);return [...new Set([...t.keys(),...n.keys()])].map(a=>{let g=t.get(a),w=n.get(a),D=e.get(a)?.outcome??(w?.pendingQuestion?"WAITING_USER":w?w.success===false?"ERROR":"SUCCESS":"WORKING");return {delegationId:a,toolRequestId:g?.toolRequestId??w.toolRequestId,subCaseId:g?.subCaseId??w.subCaseId??"",agentName:g?.agentName??w.agentName??"Delegated agent",task:g?.task??"Delegated task",resumed:g?.resumed??false,status:D,result:w}})}function xo(o,t,e,n){return o!=="DELEGATE__delegate"||!n.some(i=>i.toolRequestId===t)?false:e?Co(e)?.some(i=>i.toolRequestId===t)??false:true}var qi=["promptItem"],vo=(o,t)=>t.name;function Li(o,t){if(o&1&&(hl$1(0,"span",5),GC(1),gl$1()),o&2){let e=t.$implicit;XE(),Jg("","{","","{","",e.name,"","}","","}");}}function zi(o,t){if(o&1&&(hl$1(0,"span",6),GC(1),gl$1()),o&2){let e=gC().$implicit;XE(),Yg(e.description);}}function Wi(o,t){if(o&1){let e=lC();hl$1(0,"li",3,0),Og("click",function(){let i=If(e).$implicit,a=gC();return wf(a.onItemClick(i))})("keydown.enter",function(){let i=If(e).$implicit,a=gC();return wf(a.onItemClick(i))})("mouseenter",function(){let i=If(e).$index,a=gC();return wf(a.activeIndex.set(i))}),hl$1(2,"span",4),GC(3),rC(4,Li,2,5,"span",5,vo),gl$1(),Jw(6,zi,2,1,"span",6),gl$1();}if(o&2){let e=t.$implicit,n=t.$index,i=gC();Ug("prompt-autocomplete__item--active",i.isActive(n)),Tg("aria-selected",i.isActive(n)),XE(3),vl$1(" /",e.name," "),XE(),oC(e.parameters),XE(2),eC(e.description?6:-1);}}var ge=class o{prompts=ZB.required();selected=qB();dismissed=qB();activeIndex=Gi$1(0);itemRefs=KB();constructor(){Hf(()=>{this.prompts(),this.activeIndex.set(0);});}navigate(t){let e=this.prompts();switch(t){case "ArrowDown":this.activeIndex.set(Math.min(this.activeIndex()+1,e.length-1)),this.scrollActiveIntoView();break;case "ArrowUp":this.activeIndex.set(Math.max(this.activeIndex()-1,0)),this.scrollActiveIntoView();break;case "Enter":{let n=e[this.activeIndex()];n&&this.selected.emit(n);break}case "Escape":this.dismissed.emit();break}}onItemClick(t){this.selected.emit(t);}isActive(t){return this.activeIndex()===t}completionFor(t){return `/${t.name} `}scrollActiveIntoView(){this.itemRefs()[this.activeIndex()]?.nativeElement.scrollIntoView({block:"nearest"});}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=xw({type:o,selectors:[["agentos-prompt-autocomplete"]],viewQuery:function(e,n){e&1&&jg(n.itemRefs,qi,5),e&2&&wC();},inputs:{prompts:[1,"prompts"]},outputs:{selected:"selected",dismissed:"dismissed"},decls:3,vars:0,consts:[["promptItem",""],["role","listbox","aria-label","Slash commands",1,"prompt-autocomplete"],["role","option","tabindex","-1",1,"prompt-autocomplete__item",3,"prompt-autocomplete__item--active"],["role","option","tabindex","-1",1,"prompt-autocomplete__item",3,"click","keydown.enter","mouseenter"],[1,"prompt-autocomplete__name"],[1,"prompt-autocomplete__param"],[1,"prompt-autocomplete__description"]],template:function(e,n){e&1&&(hl$1(0,"ul",1),rC(1,Wi,7,5,"li",2,vo),gl$1()),e&2&&(XE(),oC(n.prompts()));},styles:[".prompt-autocomplete[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0;max-height:400px;width:100%;overflow-y:auto}.prompt-autocomplete[_ngcontent-%COMP%]::-webkit-scrollbar{width:8px}.prompt-autocomplete[_ngcontent-%COMP%]::-webkit-scrollbar-track{background:transparent}.prompt-autocomplete[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:var(--color-border, rgba(0, 0, 0, .15));border-radius:4px}.prompt-autocomplete[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary, #6e6e73)}.prompt-autocomplete[_ngcontent-%COMP%]{display:grid;grid-template-columns:max-content 1fr}.prompt-autocomplete__item[_ngcontent-%COMP%]{grid-column:1/-1;display:grid;grid-template-columns:subgrid;align-items:center;cursor:pointer;transition:background .2s;border-left:3px solid transparent;padding:.5rem 0}.prompt-autocomplete__item[_ngcontent-%COMP%]:hover, .prompt-autocomplete__item--active[_ngcontent-%COMP%]{background:var(--color-bg-hover, rgba(0, 113, 227, .08))}.prompt-autocomplete__item--active[_ngcontent-%COMP%]{border-left-color:var(--color-primary, #007aff)}.prompt-autocomplete__name[_ngcontent-%COMP%]{font-weight:600;font-size:.95rem;color:var(--color-text, #1d1d1f);font-family:SF Mono,Monaco,Menlo,Cascadia Code,Consolas,monospace;white-space:nowrap;padding:0 1.5rem 0 .75rem;display:flex;align-items:center;gap:.4rem}.prompt-autocomplete__param[_ngcontent-%COMP%]{font-size:.85rem;font-family:SF Mono,Monaco,Menlo,Cascadia Code,Consolas,monospace;color:var(--color-text-secondary, #6e6e73);font-weight:400}.prompt-autocomplete__description[_ngcontent-%COMP%]{font-size:.85rem;color:var(--color-text-secondary, #6e6e73);line-height:1.3;padding:0 1rem 0 0}"]})};var Ui=["agentItem"],$i=(o,t)=>t.id;function Bi(o,t){if(o&1&&(hl$1(0,"span",5),GC(1),gl$1()),o&2){let e=gC().$implicit;XE(),Yg(e.description);}}function Hi(o,t){if(o&1){let e=lC();hl$1(0,"li",3,0),Og("click",function(){let i=If(e).$implicit,a=gC();return wf(a.onItemClick(i))})("keydown.enter",function(){let i=If(e).$implicit,a=gC();return wf(a.onItemClick(i))})("mouseenter",function(){let i=If(e).$index,a=gC();return wf(a.activeIndex.set(i))}),hl$1(2,"span",4),GC(3),gl$1(),Jw(4,Bi,2,1,"span",5),gl$1();}if(o&2){let e=t.$implicit,n=t.$index,i=gC();Ug("agent-autocomplete__item--active",i.isActive(n)),Tg("aria-selected",i.isActive(n)),XE(3),Yg("@"+e.name),XE(),eC(e.description?4:-1);}}var he=class o{agents=ZB.required();selected=qB();dismissed=qB();activeIndex=Gi$1(0);itemRefs=KB();constructor(){Hf(()=>{this.agents(),this.activeIndex.set(0);});}navigate(t){let e=this.agents();switch(t){case "ArrowDown":this.activeIndex.set(Math.min(this.activeIndex()+1,e.length-1)),this.scrollActiveIntoView();break;case "ArrowUp":this.activeIndex.set(Math.max(this.activeIndex()-1,0)),this.scrollActiveIntoView();break;case "Enter":{let n=e[this.activeIndex()];n&&this.selected.emit(n);break}case "Escape":this.dismissed.emit();break}}onItemClick(t){this.selected.emit(t);}isActive(t){return this.activeIndex()===t}completionFor(t){return `@${t.name} `}scrollActiveIntoView(){this.itemRefs()[this.activeIndex()]?.nativeElement.scrollIntoView({block:"nearest"});}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=xw({type:o,selectors:[["agentos-agent-autocomplete"]],viewQuery:function(e,n){e&1&&jg(n.itemRefs,Ui,5),e&2&&wC();},inputs:{agents:[1,"agents"]},outputs:{selected:"selected",dismissed:"dismissed"},decls:3,vars:0,consts:[["agentItem",""],["role","listbox","aria-label","Agent mentions",1,"agent-autocomplete"],["role","option","tabindex","-1",1,"agent-autocomplete__item",3,"agent-autocomplete__item--active"],["role","option","tabindex","-1",1,"agent-autocomplete__item",3,"click","keydown.enter","mouseenter"],[1,"agent-autocomplete__name"],[1,"agent-autocomplete__description"]],template:function(e,n){e&1&&(hl$1(0,"ul",1),rC(1,Hi,5,5,"li",2,$i),gl$1()),e&2&&(XE(),oC(n.agents()));},styles:['.agent-autocomplete[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0;max-height:400px;width:100%;overflow-y:auto;display:grid;grid-template-columns:max-content 1fr}.agent-autocomplete[_ngcontent-%COMP%]::-webkit-scrollbar{width:8px}.agent-autocomplete[_ngcontent-%COMP%]::-webkit-scrollbar-track{background:transparent}.agent-autocomplete[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:var(--color-divider);border-radius:0}.agent-autocomplete[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}.agent-autocomplete__item[_ngcontent-%COMP%]{grid-column:1/-1;display:grid;grid-template-columns:subgrid;align-items:center;cursor:pointer;transition:background .12s ease;border-left:3px solid transparent;padding:8px 0}.agent-autocomplete__item[_ngcontent-%COMP%]:hover, .agent-autocomplete__item--active[_ngcontent-%COMP%]{background:var(--color-bg-hover)}.agent-autocomplete__item--active[_ngcontent-%COMP%]{border-left-color:var(--color-accent)}.agent-autocomplete__name[_ngcontent-%COMP%]{font-size:14px;font-weight:600;line-height:1.3;color:var(--color-text, #1d1d1f);font-family:var(--font-body, "Inter", -apple-system, sans-serif);white-space:nowrap;padding:0 24px 0 12px}.agent-autocomplete__description[_ngcontent-%COMP%]{font-family:var(--font-body, "Inter", -apple-system, sans-serif);font-size:.8125rem;font-weight:400;line-height:1.4;color:var(--color-text-secondary, #6e6e73);line-height:1.3;padding:0 16px 0 0}']})};var bt=class o{agentConfigController=g(M);userState=g(l$3);listEffective(t){let e=this.userState.currentUser(),n=e?.externalId??e?.email??"";return this.agentConfigController.searchAgentConfig({namespaceId:t,userExternalId:n})}static \u0275fac=function(e){return new(e||o)};static \u0275prov=x$1({token:o,factory:o.\u0275fac,providedIn:"root"})};function Ht(o,t){let e=t.toLowerCase(),n=[],i=[];for(let a of o)a.name.toLowerCase().startsWith(e)?n.push(a):a.description?.toLowerCase().includes(e)&&i.push(a);return [...n,...i]}var Me=class o{promptState=g(m);agentState=g(bt);destroyRef=g(Ce$1);slashSuggestions=Gi$1([]);atSuggestions=Gi$1([]);namespaceId="";effectivePrompts=[];promptsLoaded=false;slashPrefix$=new ue$2;effectiveAgents=[];agentsLoaded=false;atPrefix$=new ue$2;constructor(){this.slashPrefix$.pipe(vd(60),va$1(t=>(this.promptsLoaded?br$1(this.effectivePrompts):this.promptState.listEffective(this.namespaceId).pipe(ya$1(()=>br$1([])))).pipe(re$4(n=>({prefix:t,prompts:n})))),U$3(this.destroyRef)).subscribe(({prefix:t,prompts:e})=>{this.effectivePrompts=e,this.promptsLoaded=true,this.slashSuggestions.set(e.filter(n=>n.name.toLowerCase().startsWith(t.toLowerCase())));}),this.atPrefix$.pipe(vd(60),va$1(t=>(this.agentsLoaded?br$1(this.effectiveAgents):this.agentState.listEffective(this.namespaceId).pipe(ya$1(()=>br$1([])))).pipe(re$4(n=>({prefix:t,agents:n})))),U$3(this.destroyRef)).subscribe(({prefix:t,agents:e})=>{this.effectiveAgents=e,this.agentsLoaded=true,this.atSuggestions.set(Ht(e,t));});}init(t){this.namespaceId=t;}reset(){this.slashSuggestions.set([]),this.effectivePrompts=[],this.promptsLoaded=false,this.atSuggestions.set([]),this.effectiveAgents=[],this.agentsLoaded=false;}onInput(t,e){e.set(t),this.updateAutocomplete(t);}onKeydown(t,e,n){if(this.slashSuggestions().length>0){if(t.key==="ArrowDown"||t.key==="ArrowUp")return t.preventDefault(),e()?.navigate(t.key),true;if(t.key==="Escape")return t.preventDefault(),this.slashSuggestions.set([]),true;if(t.key==="Tab"||t.key==="Enter")return t.preventDefault(),e()?.navigate("Enter"),true}if(this.atSuggestions().length>0){if(t.key==="ArrowDown"||t.key==="ArrowUp")return t.preventDefault(),n()?.navigate(t.key),true;if(t.key==="Escape")return t.preventDefault(),this.atSuggestions.set([]),true;if(t.key==="Tab"||t.key==="Enter")return t.preventDefault(),n()?.navigate("Enter"),true}return false}onPromptSelected(t,e,n,i){let a=e()?.completionFor(t)??`/${t.name} `;i.set(a),queueMicrotask(()=>{let g=n()?.nativeElement;g&&(g.value=a,g.setSelectionRange(a.length,a.length),g.focus());}),this.slashSuggestions.set([]);}onAgentSelected(t,e,n,i){let a=e()?.completionFor(t)??`@${t.name} `,g=i().replace(/@\w*$/,a);i.set(g),queueMicrotask(()=>{let w=n()?.nativeElement;w&&(w.value=g,w.setSelectionRange(g.length,g.length),w.focus());}),this.atSuggestions.set([]);}updateAutocomplete(t){if(t.startsWith("/")){let n=t.slice(1);if(!n.includes(" ")){this.atSuggestions().length&&this.atSuggestions.set([]),this.promptsLoaded&&this.slashSuggestions.set(this.effectivePrompts.filter(i=>i.name.toLowerCase().startsWith(n.toLowerCase()))),this.slashPrefix$.next(n);return}}this.slashSuggestions().length&&this.slashSuggestions.set([]);let e=t.match(/@(\w*)$/);if(e){let n=e[1]??"";this.agentsLoaded&&this.atSuggestions.set(Ht(this.effectiveAgents,n)),this.atPrefix$.next(n);return}this.atSuggestions().length&&this.atSuggestions.set([]);}static \u0275fac=function(e){return new(e||o)};static \u0275prov=x$1({token:o,factory:o.\u0275fac})};var hm=20971520,Gi=["pdf","png","jpg","jpeg","gif","webp","zip","tar","gz","exe","bin","doc","docx","xls","xlsx","ppt","pptx"];function Gt(o){return o.split(".").pop()?.toLowerCase()??""}function xt(o){switch(Gt(o)){case "pdf":return "picture_as_pdf";case "csv":case "xlsx":case "xls":return "table_chart";case "txt":case "md":return "description";case "jpg":case "jpeg":case "png":case "gif":case "webp":return "image";case "zip":case "tar":case "gz":return "folder_zip";default:return "insert_drive_file"}}function yo(o){return o<1024?`${o} B`:o<1024*1024?`${(o/1024).toFixed(1)} KB`:`${(o/(1024*1024)).toFixed(1)} MB`}function wo(o){let t=new Date(o);return Number.isNaN(t.getTime())?o:t.toLocaleString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function So(o){switch(Gt(o)){case "md":case "markdown":return "markdown";case "json":return "json";case "yaml":case "yml":return "yaml";case "html":case "htm":return "html";default:return "text"}}function ji(o){return !Gi.includes(Gt(o))}function Qi(o){return o<=20971520}function Eo(o){let t=o.filename??o.name??"";return o.size!==void 0&&ji(t)&&Qi(o.size)}function Mo(o){try{return JSON.stringify(JSON.parse(o),null,2)}catch(t){return o}}function ko(o){let t=/^(case|namespace)-exchange__(editFiles|remove|moveFile)$/.exec(o??"");return t?t[1]:null}var To={ADDED:{code:"A",label:"Added"},MODIFIED:{code:"M",label:"Modified"},DELETED:{code:"D",label:"Deleted"},UNTRACKED:{code:"U",label:"Untracked"},TYPE_CHANGED:{code:"T",label:"Type changed"},CONFLICTED:{code:"!",label:"Merge conflict"}};function Po(o){let t=new Map(o.map(n=>[`repo/${n.path}`,n])),e=new Map;for(let n of t.keys()){let i=n.split("/");for(i.pop();i.length;){let a=i.join("/");e.set(a,(e.get(a)??0)+1),i.pop();}}return {files:t,folders:e}}function Oo(o,t,e,n){if(t!=="repo"&&!t.startsWith("repo/"))return [];let i=`${t}/`,a=new Set(e),g=new Set(n);return o.flatMap(w=>{let E=`repo/${w.path}`;if(w.status!=="DELETED"||!E.startsWith(i)||a.has(E))return [];let D=E.slice(i.length),O=D.indexOf("/");return O>=0&&g.has(i+D.slice(0,O))?[]:[{path:E,name:D,status:w.status}]})}var Be=class o{api=g(z$3);get(t){return this.api.changesCaseWorkspace(t.id)}diff(t,e){return this.api.diffCaseWorkspace(t.id,e)}static \u0275fac=function(e){return new(e||o)};static \u0275prov=x$1({token:o,factory:o.\u0275fac,providedIn:"root"})};var Ki=(o,t)=>t.path;function Yi(o,t){if(o&1&&(ws$1(0,"small")(1,"span",1),GC(2),pl$1(),ws$1(3,"span",2),GC(4),pl$1()()),o&2){let e=gC().$implicit;XE(2),vl$1("+",e.additions),XE(2),vl$1("\u2212",e.deletions);}}function Ji(o,t){o&1&&(ws$1(0,"small"),GC(1,"binary"),pl$1());}function Xi(o,t){if(o&1){let e=lC();ws$1(0,"button",12),Rg("click",function(){let i=If(e).$implicit,a=gC();return wf(a.select(i))}),ws$1(1,"span",13),GC(2),pl$1(),Jw(3,Yi,5,2,"small")(4,Ji,2,0,"small"),pl$1();}if(o&2){let e=t.$implicit,n=gC();Ug("selected",n.selected()?.path===e.path),bg("title",e.path),Tg("aria-current",n.selected()?.path===e.path?"true":null),XE(2),Yg(e.path),XE(),eC(e.additions!==null&&e.additions!==void 0?3:4);}}function Zi(o,t){o&1&&(ws$1(0,"p"),GC(1,"No changed files"),pl$1());}function ea(o,t){o&1&&(ws$1(0,"h3"),GC(1),pl$1()),o&2&&(XE(),Yg(t.path));}function ta(o,t){o&1&&(ws$1(0,"p",9),GC(1,"Loading diff\u2026"),pl$1());}function na(o,t){if(o&1&&(ws$1(0,"p",9),GC(1),pl$1()),o&2){let e=gC();XE(),Yg(e.message());}}function oa(o,t){if(o&1){let e=lC();ws$1(0,"p",10),GC(1,"Couldn't load this diff. "),ws$1(2,"button",14),Rg("click",function(){If(e);let i=gC();return wf(i.retry())}),GC(3,"Retry"),pl$1()();}}var vt=class o{data=g(Ue$2);dialog=g(z$4);service=g(Be);filter=Gi$1("");selected=Gi$1(null);filtered=mT(()=>(this.data.environment.changes?.files??[]).filter(t=>t.path.toLowerCase().includes(this.filter().toLowerCase())));loading=Gi$1(false);html=Gi$1("");message=Gi$1(null);error=Gi$1(false);pending;destroyRef=g(Ce$1);constructor(){this.destroyRef.onDestroy(()=>this.pending?.unsubscribe());let t=this.data.environment.changes?.files??[],e=t.find(n=>n.path===this.data.path)??t[0];e&&this.select(e);}retry(){let t=this.selected();t&&this.select(t);}select(t){this.pending?.unsubscribe(),this.selected.set(t),this.loading.set(true),this.html.set(""),this.message.set(null),this.error.set(false),this.pending=By([this.service.diff(this.data.scope,t.path),Ke(import('./chunk-BjFLkaZE.js'))]).pipe(re$4(([e,n])=>({message:e.message,html:e.patch?n.html(e.patch,{drawFileList:false,matching:"none",outputFormat:"line-by-line"}):""}))).subscribe({next:({message:e,html:n})=>{this.message.set(e??null),this.html.set(n),this.loading.set(false);},error:()=>{this.error.set(true),this.loading.set(false);}});}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=xw({type:o,selectors:[["agentos-exchange-diff"]],decls:25,vars:11,consts:[[1,"exchange-diff"],[1,"added"],[1,"removed"],["type","button","aria-label","Close diff",3,"click"],[1,"diff-layout"],["aria-label","Changed files"],["type","search","placeholder","Filter files\u2026","aria-label","Filter changed files",3,"ngModelChange","ngModel"],["type","button",3,"selected","title"],["aria-live","polite"],["role","status"],["role","alert"],[1,"diff-content",3,"innerHTML"],["type","button",3,"click","title"],[1,"file-path"],["type","button",3,"click"]],template:function(e,n){if(e&1&&(ws$1(0,"div",0)(1,"header")(2,"div")(3,"strong"),GC(4),pl$1(),ws$1(5,"span",1),GC(6),pl$1(),ws$1(7,"span",2),GC(8),pl$1(),ws$1(9,"small"),GC(10),pl$1()(),ws$1(11,"button",3),Rg("click",function(){return n.dialog.close()}),GC(12,"\u2715"),pl$1()(),ws$1(13,"div",4)(14,"nav",5)(15,"input",6),Rg("ngModelChange",function(a){return n.filter.set(a)}),pl$1(),VI(),rC(16,Xi,5,6,"button",7,Ki,false,Zi,2,0,"p"),pl$1(),ws$1(19,"main",8),Jw(20,ea,2,1,"h3"),Jw(21,ta,2,0,"p",9),Jw(22,na,2,1,"p",9),Jw(23,oa,4,0,"p",10),Sg(24,"div",11),pl$1()()()),e&2){let i;XE(4),Yg(n.data.environment.branch||"Changes"),XE(2),vl$1(" +",n.data.environment.changes?.additions),XE(2),vl$1(" \u2212",n.data.environment.changes?.deletions),XE(2),vl$1("Branch changes + local changes \xB7 ",n.data.environment.changes?.base?.slice(0,8)),XE(5),bg("ngModel",n.filter()),UI(),XE(),oC(n.filtered()),XE(4),eC((i=n.selected())?20:-1,i),XE(),eC(n.loading()?21:-1),XE(),eC(n.message()?22:-1),XE(),eC(n.error()?23:-1),XE(),bg("innerHTML",n.html(),aE);}},dependencies:[ti$1,Ye,Zn$1,cn],styles:[`:host,:root{--d2h-bg-color:#fff;--d2h-border-color:#ddd;--d2h-dim-color:rgba(0,0,0,.3);--d2h-line-border-color:#eee;--d2h-file-header-bg-color:#f7f7f7;--d2h-file-header-border-color:#d8d8d8;--d2h-empty-placeholder-bg-color:#f1f1f1;--d2h-empty-placeholder-border-color:#e1e1e1;--d2h-selected-color:#c8e1ff;--d2h-ins-bg-color:#dfd;--d2h-ins-border-color:#b4e2b4;--d2h-ins-highlight-bg-color:#97f295;--d2h-ins-label-color:#399839;--d2h-del-bg-color:#fee8e9;--d2h-del-border-color:#e9aeae;--d2h-del-highlight-bg-color:#ffb6ba;--d2h-del-label-color:#c33;--d2h-change-del-color:#fdf2d0;--d2h-change-ins-color:#ded;--d2h-info-bg-color:#f8fafd;--d2h-info-border-color:#d5e4f2;--d2h-change-label-color:#d0b44c;--d2h-moved-label-color:#3572b0;--d2h-dark-color:#e6edf3;--d2h-dark-bg-color:#0d1117;--d2h-dark-border-color:#30363d;--d2h-dark-dim-color:#6e7681;--d2h-dark-line-border-color:#21262d;--d2h-dark-file-header-bg-color:#161b22;--d2h-dark-file-header-border-color:#30363d;--d2h-dark-empty-placeholder-bg-color:hsla(215,8%,47%,.1);--d2h-dark-empty-placeholder-border-color:#30363d;--d2h-dark-selected-color:rgba(56,139,253,.1);--d2h-dark-ins-bg-color:rgba(46,160,67,.15);--d2h-dark-ins-border-color:rgba(46,160,67,.4);--d2h-dark-ins-highlight-bg-color:rgba(46,160,67,.4);--d2h-dark-ins-label-color:#3fb950;--d2h-dark-del-bg-color:rgba(248,81,73,.1);--d2h-dark-del-border-color:rgba(248,81,73,.4);--d2h-dark-del-highlight-bg-color:rgba(248,81,73,.4);--d2h-dark-del-label-color:#f85149;--d2h-dark-change-del-color:rgba(210,153,34,.2);--d2h-dark-change-ins-color:rgba(46,160,67,.25);--d2h-dark-info-bg-color:rgba(56,139,253,.1);--d2h-dark-info-border-color:rgba(56,139,253,.4);--d2h-dark-change-label-color:#d29922;--d2h-dark-moved-label-color:#3572b0}.d2h-wrapper{text-align:left}.d2h-file-header{background-color:#f7f7f7;background-color:var(--d2h-file-header-bg-color);border-bottom:1px solid #d8d8d8;border-bottom:1px solid var(--d2h-file-header-border-color);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:Source Sans Pro,Helvetica Neue,Helvetica,Arial,sans-serif;height:35px;padding:5px 10px}.d2h-file-header.d2h-sticky-header{position:sticky;top:0;z-index:1}.d2h-file-stats{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:14px;margin-left:auto}.d2h-lines-added{border:1px solid #b4e2b4;border:1px solid var(--d2h-ins-border-color);border-radius:5px 0 0 5px;color:#399839;color:var(--d2h-ins-label-color);padding:2px;text-align:right;vertical-align:middle}.d2h-lines-deleted{border:1px solid #e9aeae;border:1px solid var(--d2h-del-border-color);border-radius:0 5px 5px 0;color:#c33;color:var(--d2h-del-label-color);margin-left:1px;padding:2px;text-align:left;vertical-align:middle}.d2h-file-name-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:15px;width:100%}.d2h-file-name{overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.d2h-file-wrapper{border:1px solid #ddd;border:1px solid var(--d2h-border-color);border-radius:3px;margin-bottom:1em}.d2h-file-collapse{-webkit-box-pack:end;-ms-flex-pack:end;cursor:pointer;display:none;font-size:12px;justify-content:flex-end;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:1px solid #ddd;border:1px solid var(--d2h-border-color);border-radius:3px;padding:4px 8px}.d2h-file-collapse.d2h-selected{background-color:#c8e1ff;background-color:var(--d2h-selected-color)}.d2h-file-collapse-input{margin:0 4px 0 0}.d2h-diff-table{border-collapse:collapse;font-family:Menlo,Consolas,monospace;font-size:13px;width:100%}.d2h-files-diff{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%}.d2h-file-diff{overflow-y:hidden}.d2h-file-diff.d2h-d-none,.d2h-files-diff.d2h-d-none{display:none}.d2h-file-side-diff{display:inline-block;overflow-x:scroll;overflow-y:hidden;width:50%}.d2h-code-line{padding:0 8em;width:calc(100% - 16em)}.d2h-code-line,.d2h-code-side-line{display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap}.d2h-code-side-line{padding:0 4.5em;width:calc(100% - 9em)}.d2h-code-line-ctn{background:none;display:inline-block;padding:0;word-wrap:normal;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;vertical-align:middle;white-space:pre;width:100%}.d2h-code-line del,.d2h-code-side-line del{background-color:#ffb6ba;background-color:var(--d2h-del-highlight-bg-color)}.d2h-code-line del,.d2h-code-line ins,.d2h-code-side-line del,.d2h-code-side-line ins{border-radius:.2em;display:inline-block;margin-top:-1px;-webkit-text-decoration:none;text-decoration:none}.d2h-code-line ins,.d2h-code-side-line ins{background-color:#97f295;background-color:var(--d2h-ins-highlight-bg-color);text-align:left}.d2h-code-line-prefix{background:none;display:inline;padding:0;word-wrap:normal;white-space:pre}.line-num1{float:left}.line-num1,.line-num2{-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;padding:0 .5em;text-overflow:ellipsis;width:3.5em}.line-num2{float:right}.d2h-code-linenumber{background-color:#fff;background-color:var(--d2h-bg-color);border:solid #eee;border:solid var(--d2h-line-border-color);border-width:0 1px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#0000004d;color:var(--d2h-dim-color);cursor:pointer;display:inline-block;position:absolute;text-align:right;width:7.5em}.d2h-code-linenumber:after{content:"\\200b"}.d2h-code-side-linenumber{background-color:#fff;background-color:var(--d2h-bg-color);border:solid #eee;border:solid var(--d2h-line-border-color);border-width:0 1px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#0000004d;color:var(--d2h-dim-color);cursor:pointer;display:inline-block;overflow:hidden;padding:0 .5em;position:absolute;text-align:right;text-overflow:ellipsis;width:4em}.d2h-code-side-linenumber:after{content:"\\200b"}.d2h-code-side-emptyplaceholder,.d2h-emptyplaceholder{background-color:#f1f1f1;background-color:var(--d2h-empty-placeholder-bg-color);border-color:#e1e1e1;border-color:var(--d2h-empty-placeholder-border-color)}.d2h-code-line-prefix,.d2h-code-linenumber,.d2h-code-side-linenumber,.d2h-emptyplaceholder{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.d2h-code-linenumber,.d2h-code-side-linenumber{direction:rtl}.d2h-del{background-color:#fee8e9;background-color:var(--d2h-del-bg-color);border-color:#e9aeae;border-color:var(--d2h-del-border-color)}.d2h-ins{background-color:#dfd;background-color:var(--d2h-ins-bg-color);border-color:#b4e2b4;border-color:var(--d2h-ins-border-color)}.d2h-info{background-color:#f8fafd;background-color:var(--d2h-info-bg-color);border-color:#d5e4f2;border-color:var(--d2h-info-border-color);color:#0000004d;color:var(--d2h-dim-color)}.d2h-file-diff .d2h-del.d2h-change{background-color:#fdf2d0;background-color:var(--d2h-change-del-color)}.d2h-file-diff .d2h-ins.d2h-change{background-color:#ded;background-color:var(--d2h-change-ins-color)}.d2h-file-list-wrapper{margin-bottom:10px}.d2h-file-list-wrapper a{-webkit-text-decoration:none;text-decoration:none}.d2h-file-list-wrapper a,.d2h-file-list-wrapper a:visited{color:#3572b0;color:var(--d2h-moved-label-color)}.d2h-file-list-header{text-align:left}.d2h-file-list-title{font-weight:700}.d2h-file-list-line{display:-webkit-box;display:-ms-flexbox;display:flex;text-align:left}.d2h-file-list{display:block;list-style:none;margin:0;padding:0}.d2h-file-list>li{border-bottom:1px solid #ddd;border-bottom:1px solid var(--d2h-border-color);margin:0;padding:5px 10px}.d2h-file-list>li:last-child{border-bottom:none}.d2h-file-switch{cursor:pointer;display:none;font-size:10px}.d2h-icon{fill:currentColor;margin-right:10px;vertical-align:middle}.d2h-deleted{color:#c33;color:var(--d2h-del-label-color)}.d2h-added{color:#399839;color:var(--d2h-ins-label-color)}.d2h-changed{color:#d0b44c;color:var(--d2h-change-label-color)}.d2h-moved{color:#3572b0;color:var(--d2h-moved-label-color)}.d2h-tag{background-color:#fff;background-color:var(--d2h-bg-color);display:-webkit-box;display:-ms-flexbox;display:flex;font-size:10px;margin-left:5px;padding:0 2px}.d2h-deleted-tag{border:1px solid #c33;border:1px solid var(--d2h-del-label-color)}.d2h-added-tag{border:1px solid #399839;border:1px solid var(--d2h-ins-label-color)}.d2h-changed-tag{border:1px solid #d0b44c;border:1px solid var(--d2h-change-label-color)}.d2h-moved-tag{border:1px solid #3572b0;border:1px solid var(--d2h-moved-label-color)}.d2h-dark-color-scheme{background-color:#0d1117;background-color:var(--d2h-dark-bg-color);color:#e6edf3;color:var(--d2h-dark-color)}.d2h-dark-color-scheme .d2h-file-header{background-color:#161b22;background-color:var(--d2h-dark-file-header-bg-color);border-bottom:#30363d;border-bottom:var(--d2h-dark-file-header-border-color)}.d2h-dark-color-scheme .d2h-lines-added{border:1px solid rgba(46,160,67,.4);border:1px solid var(--d2h-dark-ins-border-color);color:#3fb950;color:var(--d2h-dark-ins-label-color)}.d2h-dark-color-scheme .d2h-lines-deleted{border:1px solid rgba(248,81,73,.4);border:1px solid var(--d2h-dark-del-border-color);color:#f85149;color:var(--d2h-dark-del-label-color)}.d2h-dark-color-scheme .d2h-code-line del,.d2h-dark-color-scheme .d2h-code-side-line del{background-color:#f8514966;background-color:var(--d2h-dark-del-highlight-bg-color)}.d2h-dark-color-scheme .d2h-code-line ins,.d2h-dark-color-scheme .d2h-code-side-line ins{background-color:#2ea04366;background-color:var(--d2h-dark-ins-highlight-bg-color)}.d2h-dark-color-scheme .d2h-diff-tbody{border-color:#30363d;border-color:var(--d2h-dark-border-color)}.d2h-dark-color-scheme .d2h-code-side-linenumber{background-color:#0d1117;background-color:var(--d2h-dark-bg-color);border-color:#21262d;border-color:var(--d2h-dark-line-border-color);color:#6e7681;color:var(--d2h-dark-dim-color)}.d2h-dark-color-scheme .d2h-files-diff .d2h-code-side-emptyplaceholder,.d2h-dark-color-scheme .d2h-files-diff .d2h-emptyplaceholder{background-color:#6e76811a;background-color:var(--d2h-dark-empty-placeholder-bg-color);border-color:#30363d;border-color:var(--d2h-dark-empty-placeholder-border-color)}.d2h-dark-color-scheme .d2h-code-linenumber{background-color:#0d1117;background-color:var(--d2h-dark-bg-color);border-color:#21262d;border-color:var(--d2h-dark-line-border-color);color:#6e7681;color:var(--d2h-dark-dim-color)}.d2h-dark-color-scheme .d2h-del{background-color:#f851491a;background-color:var(--d2h-dark-del-bg-color);border-color:#f8514966;border-color:var(--d2h-dark-del-border-color)}.d2h-dark-color-scheme .d2h-ins{background-color:#2ea04326;background-color:var(--d2h-dark-ins-bg-color);border-color:#2ea04366;border-color:var(--d2h-dark-ins-border-color)}.d2h-dark-color-scheme .d2h-info{background-color:#388bfd1a;background-color:var(--d2h-dark-info-bg-color);border-color:#388bfd66;border-color:var(--d2h-dark-info-border-color);color:#6e7681;color:var(--d2h-dark-dim-color)}.d2h-dark-color-scheme .d2h-file-diff .d2h-del.d2h-change{background-color:#d2992233;background-color:var(--d2h-dark-change-del-color)}.d2h-dark-color-scheme .d2h-file-diff .d2h-ins.d2h-change{background-color:#2ea04340;background-color:var(--d2h-dark-change-ins-color)}.d2h-dark-color-scheme .d2h-file-wrapper{border:1px solid #30363d;border:1px solid var(--d2h-dark-border-color)}.d2h-dark-color-scheme .d2h-file-collapse{border:1px solid #0d1117;border:1px solid var(--d2h-dark-bg-color)}.d2h-dark-color-scheme .d2h-file-collapse.d2h-selected{background-color:#388bfd1a;background-color:var(--d2h-dark-selected-color)}.d2h-dark-color-scheme .d2h-file-list-wrapper a,.d2h-dark-color-scheme .d2h-file-list-wrapper a:visited{color:#3572b0;color:var(--d2h-dark-moved-label-color)}.d2h-dark-color-scheme .d2h-file-list>li{border-bottom:1px solid #0d1117;border-bottom:1px solid var(--d2h-dark-bg-color)}.d2h-dark-color-scheme .d2h-deleted{color:#f85149;color:var(--d2h-dark-del-label-color)}.d2h-dark-color-scheme .d2h-added{color:#3fb950;color:var(--d2h-dark-ins-label-color)}.d2h-dark-color-scheme .d2h-changed{color:#d29922;color:var(--d2h-dark-change-label-color)}.d2h-dark-color-scheme .d2h-moved{color:#3572b0;color:var(--d2h-dark-moved-label-color)}.d2h-dark-color-scheme .d2h-tag{background-color:#0d1117;background-color:var(--d2h-dark-bg-color)}.d2h-dark-color-scheme .d2h-deleted-tag{border:1px solid #f85149;border:1px solid var(--d2h-dark-del-label-color)}.d2h-dark-color-scheme .d2h-added-tag{border:1px solid #3fb950;border:1px solid var(--d2h-dark-ins-label-color)}.d2h-dark-color-scheme .d2h-changed-tag{border:1px solid #d29922;border:1px solid var(--d2h-dark-change-label-color)}.d2h-dark-color-scheme .d2h-moved-tag{border:1px solid #3572b0;border:1px solid var(--d2h-dark-moved-label-color)}@media(prefers-color-scheme:dark){.d2h-auto-color-scheme{background-color:#0d1117;background-color:var(--d2h-dark-bg-color);color:#e6edf3;color:var(--d2h-dark-color)}.d2h-auto-color-scheme .d2h-file-header{background-color:#161b22;background-color:var(--d2h-dark-file-header-bg-color);border-bottom:#30363d;border-bottom:var(--d2h-dark-file-header-border-color)}.d2h-auto-color-scheme .d2h-lines-added{border:1px solid rgba(46,160,67,.4);border:1px solid var(--d2h-dark-ins-border-color);color:#3fb950;color:var(--d2h-dark-ins-label-color)}.d2h-auto-color-scheme .d2h-lines-deleted{border:1px solid rgba(248,81,73,.4);border:1px solid var(--d2h-dark-del-border-color);color:#f85149;color:var(--d2h-dark-del-label-color)}.d2h-auto-color-scheme .d2h-code-line del,.d2h-auto-color-scheme .d2h-code-side-line del{background-color:#f8514966;background-color:var(--d2h-dark-del-highlight-bg-color)}.d2h-auto-color-scheme .d2h-code-line ins,.d2h-auto-color-scheme .d2h-code-side-line ins{background-color:#2ea04366;background-color:var(--d2h-dark-ins-highlight-bg-color)}.d2h-auto-color-scheme .d2h-diff-tbody{border-color:#30363d;border-color:var(--d2h-dark-border-color)}.d2h-auto-color-scheme .d2h-code-side-linenumber{background-color:#0d1117;background-color:var(--d2h-dark-bg-color);border-color:#21262d;border-color:var(--d2h-dark-line-border-color);color:#6e7681;color:var(--d2h-dark-dim-color)}.d2h-auto-color-scheme .d2h-files-diff .d2h-code-side-emptyplaceholder,.d2h-auto-color-scheme .d2h-files-diff .d2h-emptyplaceholder{background-color:#6e76811a;background-color:var(--d2h-dark-empty-placeholder-bg-color);border-color:#30363d;border-color:var(--d2h-dark-empty-placeholder-border-color)}.d2h-auto-color-scheme .d2h-code-linenumber{background-color:#0d1117;background-color:var(--d2h-dark-bg-color);border-color:#21262d;border-color:var(--d2h-dark-line-border-color);color:#6e7681;color:var(--d2h-dark-dim-color)}.d2h-auto-color-scheme .d2h-del{background-color:#f851491a;background-color:var(--d2h-dark-del-bg-color);border-color:#f8514966;border-color:var(--d2h-dark-del-border-color)}.d2h-auto-color-scheme .d2h-ins{background-color:#2ea04326;background-color:var(--d2h-dark-ins-bg-color);border-color:#2ea04366;border-color:var(--d2h-dark-ins-border-color)}.d2h-auto-color-scheme .d2h-info{background-color:#388bfd1a;background-color:var(--d2h-dark-info-bg-color);border-color:#388bfd66;border-color:var(--d2h-dark-info-border-color);color:#6e7681;color:var(--d2h-dark-dim-color)}.d2h-auto-color-scheme .d2h-file-diff .d2h-del.d2h-change{background-color:#d2992233;background-color:var(--d2h-dark-change-del-color)}.d2h-auto-color-scheme .d2h-file-diff .d2h-ins.d2h-change{background-color:#2ea04340;background-color:var(--d2h-dark-change-ins-color)}.d2h-auto-color-scheme .d2h-file-wrapper{border:1px solid #30363d;border:1px solid var(--d2h-dark-border-color)}.d2h-auto-color-scheme .d2h-file-collapse{border:1px solid #0d1117;border:1px solid var(--d2h-dark-bg-color)}.d2h-auto-color-scheme .d2h-file-collapse.d2h-selected{background-color:#388bfd1a;background-color:var(--d2h-dark-selected-color)}.d2h-auto-color-scheme .d2h-file-list-wrapper a,.d2h-auto-color-scheme .d2h-file-list-wrapper a:visited{color:#3572b0;color:var(--d2h-dark-moved-label-color)}.d2h-auto-color-scheme .d2h-file-list>li{border-bottom:1px solid #0d1117;border-bottom:1px solid var(--d2h-dark-bg-color)}.d2h-dark-color-scheme .d2h-deleted{color:#f85149;color:var(--d2h-dark-del-label-color)}.d2h-auto-color-scheme .d2h-added{color:#3fb950;color:var(--d2h-dark-ins-label-color)}.d2h-auto-color-scheme .d2h-changed{color:#d29922;color:var(--d2h-dark-change-label-color)}.d2h-auto-color-scheme .d2h-moved{color:#3572b0;color:var(--d2h-dark-moved-label-color)}.d2h-auto-color-scheme .d2h-tag{background-color:#0d1117;background-color:var(--d2h-dark-bg-color)}.d2h-auto-color-scheme .d2h-deleted-tag{border:1px solid #f85149;border:1px solid var(--d2h-dark-del-label-color)}.d2h-auto-color-scheme .d2h-added-tag{border:1px solid #3fb950;border:1px solid var(--d2h-dark-ins-label-color)}.d2h-auto-color-scheme .d2h-changed-tag{border:1px solid #d29922;border:1px solid var(--d2h-dark-change-label-color)}.d2h-auto-color-scheme .d2h-moved-tag{border:1px solid #3572b0;border:1px solid var(--d2h-dark-moved-label-color)}}.exchange-diff{height:100%;display:flex;flex-direction:column;min-height:0;background:var(--color-bg, #fff);color:var(--color-text, #202124)}.exchange-diff header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid var(--color-border, #ddd)}.exchange-diff header small{display:block;margin-top:.4rem;color:var(--color-text-secondary, #777)}.exchange-diff button,.exchange-diff input{font:inherit;color:inherit;background:transparent;border:1px solid var(--color-border, #ddd);border-radius:6px;padding:.4rem}.exchange-diff button{cursor:pointer}.exchange-diff button:hover{background:var(--color-bg-hover, rgba(136, 136, 136, .1333333333))}.exchange-diff .diff-layout{flex:1;display:flex;min-height:0}.exchange-diff nav{flex:0 0 260px;overflow:auto;padding:.6rem;border-right:1px solid var(--color-border, #ddd)}.exchange-diff nav input{width:100%;box-sizing:border-box;margin-bottom:.5rem}.exchange-diff nav button{display:flex;flex-direction:column;text-align:left;gap:.2rem;width:100%;margin:.15rem 0;border-color:transparent;font-size:.8rem}.exchange-diff nav .selected{background:var(--color-bg-hover, rgba(136, 136, 136, .1333333333));border-color:var(--color-border, #ddd)}.exchange-diff .file-path{overflow-wrap:anywhere}.exchange-diff main{min-width:0;flex:1;overflow:auto;padding:.75rem}.exchange-diff main h3{font-size:.85rem;overflow-wrap:anywhere}.exchange-diff .added{color:var(--color-success, #249349)}.exchange-diff .removed{color:var(--color-error, #d95050)}.exchange-diff .d2h-wrapper{--d2h-bg-color: var(--color-bg, #fff);--d2h-border-color: var(--color-border, #ddd);--d2h-dim-color: var(--color-text-secondary, #666);--d2h-line-border-color: var(--d2h-border-color);--d2h-file-header-bg-color: var(--color-bg-secondary, #f7f7f7);--d2h-file-header-border-color: var(--d2h-border-color);--d2h-empty-placeholder-bg-color: var(--color-bg-secondary, #f7f7f7);--d2h-empty-placeholder-border-color: var(--d2h-border-color);--d2h-selected-color: var(--color-bg-hover, #8882);--d2h-ins-bg-color: color-mix(in srgb, var(--color-success, #249349) 12%, var(--d2h-bg-color));--d2h-ins-border-color: color-mix(in srgb, var(--color-success, #249349) 35%, var(--d2h-bg-color));--d2h-ins-highlight-bg-color: color-mix(in srgb, var(--color-success, #249349) 28%, var(--d2h-bg-color));--d2h-ins-label-color: var(--color-success, #249349);--d2h-del-bg-color: color-mix(in srgb, var(--color-error, #d95050) 12%, var(--d2h-bg-color));--d2h-del-border-color: color-mix(in srgb, var(--color-error, #d95050) 35%, var(--d2h-bg-color));--d2h-del-highlight-bg-color: color-mix(in srgb, var(--color-error, #d95050) 28%, var(--d2h-bg-color));--d2h-del-label-color: var(--color-error, #d95050);--d2h-change-del-color: var(--d2h-del-bg-color);--d2h-change-ins-color: var(--d2h-ins-bg-color);--d2h-info-bg-color: var(--color-bg-secondary, #f7f7f7);--d2h-info-border-color: var(--d2h-border-color);--d2h-change-label-color: var(--color-warning, #b87900);--d2h-moved-label-color: var(--color-info, #3572b0);background:var(--d2h-bg-color);color:var(--color-text, #202124)}.exchange-diff .d2h-file-header{display:none}.exchange-diff .d2h-code-line-ctn{white-space:pre}@media(max-width:650px){.exchange-diff .diff-layout{flex-direction:column}.exchange-diff nav{flex-basis:160px;border-right:0;border-bottom:1px solid var(--color-border, #ddd)}}
|
|
3
|
+
`],encapsulation:2})};function ia(o,t){if(o&1){let e=lC();hl$1(0,"button",14),Og("click",function(){If(e);let i=gC(3);return wf(i.openDiff())}),hl$1(1,"span",5),GC(2,"difference"),gl$1(),hl$1(3,"span",6),GC(4,"Changes"),gl$1(),hl$1(5,"span",15)(6,"span",16),GC(7),gl$1(),hl$1(8,"span",17),GC(9),gl$1()(),hl$1(10,"span",8),GC(11,"chevron_right"),gl$1()();}if(o&2){let e=t;xg("title",e.files.length+(e.files.length===1?" changed file":" changed files")+" \xB7 branch and local changes"),XE(7),vl$1("+",e.additions),XE(2),vl$1("\u2212",e.deletions);}}function aa(o,t){if(o&1&&(hl$1(0,"code",9),GC(1),gl$1()),o&2){let e=gC(2);XE(),Yg(e.path);}}function ra(o,t){o&1&&(hl$1(0,"p",9),GC(1,"Not pushed"),gl$1());}function sa(o,t){o&1&&(hl$1(0,"p",9),GC(1,"Pushed"),gl$1());}function la(o,t){if(o&1&&(hl$1(0,"p",9),GC(1),aT(2,"date"),gl$1()),o&2){let e=gC();XE(),vl$1("Last checked: ",lT(2,1,e.observedAt,"medium"));}}function ca(o,t){o&1&&(hl$1(0,"p",9),GC(1,"Uncommitted changes"),gl$1());}function da(o,t){if(o&1&&(hl$1(0,"p",9),GC(1),gl$1()),o&2){let e=gC();XE(),vl$1("",e.unpushedCommits," unpushed commit(s)");}}function ma(o,t){o&1&&(hl$1(0,"p",0),GC(1,"Git status unavailable."),gl$1());}function pa(o,t){if(o&1&&(Jw(0,ra,2,0,"p",9),Jw(1,sa,2,0,"p",9),Jw(2,la,3,4,"p",9),Jw(3,ca,2,0,"p",9),Jw(4,da,2,1,"p",9),Jw(5,ma,2,0,"p",0)),o&2){let e=t,n=gC(3);eC(e.branchState===n.BranchState.LOCAL_ONLY?0:-1),XE(),eC(e.branchState===n.BranchState.PUSHED?1:-1),XE(),eC(e.observedAt?2:-1),XE(),eC(e.dirty?3:-1),XE(),eC(e.unpushedCommits?4:-1),XE(),eC(e.error?5:-1);}}function _a(o,t){if(o&1){let e=lC();hl$1(0,"button",18),Og("click",function(){If(e);let i=gC(3);return wf(i.refreshGit())}),GC(1," Refresh Git status "),gl$1();}if(o&2){let e=gC(3);xg("disabled",e.refreshing());}}function ua(o,t){if(o&1&&(hl$1(0,"p",11),GC(1),gl$1()),o&2){let e=gC(3);XE(),Yg(e.actionError());}}function ga(o,t){if(o&1&&(hl$1(0,"div",12)(1,"span",5),GC(2,"call_split"),gl$1(),hl$1(3,"span",19),GC(4),gl$1()()),o&2){let e=gC(2);xg("title",e.branch||"No branch created yet"),XE(3),Ug("environment__muted",!e.branch),XE(),vl$1(" ",e.branch||"No branch yet"," ");}}function ha(o,t){if(o&1&&(hl$1(0,"a",13)(1,"span",5),GC(2),gl$1(),hl$1(3,"span",6),GC(4),gl$1(),hl$1(5,"span",7),GC(6),gl$1(),hl$1(7,"span",8),GC(8,"north_east"),gl$1()()),o&2){let e=gC(2),n=gC();xg("href",e.git.prUrl,yh),XE(2),vl$1(" ",e.git.prState===n.PrState.MERGED?"merge_type":"alt_route"," "),XE(2),vl$1("PR #",e.git.prNumber),XE(2),Yg(e.git.prState);}}function fa(o,t){if(o&1&&(hl$1(0,"p",0),GC(1),gl$1()),o&2){let e=gC(2);XE(),Yg(e.error);}}function Ca(o,t){if(o&1&&(hl$1(0,"div",1),Jw(1,ia,12,3,"button",2),hl$1(2,"details",3)(3,"summary",4)(4,"span",5),GC(5," account_tree "),gl$1(),hl$1(6,"span",6),GC(7,"Worktree"),gl$1(),hl$1(8,"span",7),GC(9),gl$1(),hl$1(10,"span",8),GC(11,"chevron_right"),gl$1()(),Jw(12,aa,2,1,"code",9),Jw(13,pa,6,6),Jw(14,_a,2,1,"button",10),Jw(15,ua,2,1,"p",11),gl$1(),Jw(16,ga,5,4,"div",12),Jw(17,ha,9,4,"a",13),Jw(18,fa,2,1,"p",0),gl$1()),o&2){let e,n,i=gC(),a=gC();XE(),eC((e=i.changes)?1:-1,e),XE(7),Ug("environment__status--error",i.status==="FAILED")("environment__status--pending",i.status==="REQUESTED"||i.status==="PREPARING"),XE(),Yg(i.status),XE(3),eC(i.path?12:-1),XE(),eC((n=i.git)?13:-1,n),XE(),eC(a.canWrite()?14:-1),XE(),eC(a.actionError()?15:-1),XE(),eC(i.status==="READY"?16:-1),XE(),eC(i.git?.prUrl&&!i.git.error?17:-1),XE(),eC(i.error?18:-1);}}function ba(o,t){o&1&&Jw(0,Ca,19,13,"div",1),o&2&&eC(t.equipped?0:-1);}function xa(o,t){o&1&&(hl$1(0,"p",0),GC(1,"Environment unavailable. Retrying\u2026"),gl$1());}var jt="unavailable",He=class o{scope=ZB.required();canWrite=ZB(false);environmentChanged=qB();view=Gi$1(null);BranchState=Ee$2;PrState=Se$2;error=Gi$1(false);service=g(Be);dialog=g(Re$1);workspaces=g(ce);refreshEnvironment=new ue$2;diffDialog;refreshRequest;refreshing=Gi$1(false);actionError=Gi$1("");constructor(){Hf(t=>{let e=this.scope();if(this.view.set(null),this.error.set(false),this.environmentChanged.emit({scope:e,view:null}),this.actionError.set(""),this.workspaces.unavailable)return;let n=Wy(xr$1(0,1e4),this.refreshEnvironment).pipe(Nd(()=>this.service.get(e).pipe(ya$1(a=>br$1(a.status===404?jt:null))))),i=Ly([n,this.workspaces.watch(e.id)]).pipe(Rd(([a,g])=>a!==jt&&!Ze(g))).subscribe(([a,g])=>{let w=a&&a!==jt&&g.view?x$2(w$1({},a),{equipped:g.view.equipped,status:g.view.status??a.status}):null;this.view.set(w),this.error.set(!w),this.environmentChanged.emit({scope:e,view:w});});t(()=>{i.unsubscribe(),this.refreshRequest?.unsubscribe(),this.diffDialog?.close();});});}refreshGit(){!this.canWrite()||this.refreshing()||(this.refreshing.set(true),this.actionError.set(""),this.refreshRequest=this.workspaces.act(this.scope().id,"refresh").pipe(pi$1(()=>this.refreshing.set(false))).subscribe({next:()=>this.refreshEnvironment.next(),error:()=>this.actionError.set("Could not refresh Git status. Try again.")}));}openDiff(t){let e=this.view();e?.changes&&(this.diffDialog?.close(),this.diffDialog=this.dialog.open(vt,{data:{scope:this.scope(),environment:e,path:t},width:"1200px",maxWidth:"96vw",height:"85vh",autoFocus:"first-tabbable",restoreFocus:true}));}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=xw({type:o,selectors:[["agentos-exchange-environment"]],inputs:{scope:[1,"scope"],canWrite:[1,"canWrite"]},outputs:{environmentChanged:"environmentChanged"},decls:2,vars:2,consts:[["role","status",1,"environment__error"],[1,"environment"],["type","button","aria-label","View changes file by file",1,"environment__row","environment__interactive",3,"title"],[1,"environment__details"],[1,"environment__row","environment__interactive"],["aria-hidden","true",1,"material-icons","environment__icon"],[1,"environment__label"],[1,"environment__status"],["aria-hidden","true",1,"material-icons","environment__chevron"],[1,"environment__path"],["type","button",1,"environment__row","environment__interactive",3,"disabled"],["role","alert",1,"environment__error"],[1,"environment__row",3,"title"],["target","_blank","rel","noopener noreferrer",1,"environment__row","environment__interactive",3,"href"],["type","button","aria-label","View changes file by file",1,"environment__row","environment__interactive",3,"click","title"],[1,"environment__counts"],[1,"environment__added"],[1,"environment__removed"],["type","button",1,"environment__row","environment__interactive",3,"click","disabled"],[1,"environment__branch"]],template:function(e,n){if(e&1&&(Jw(0,ba,1,1),Jw(1,xa,2,0,"p",0)),e&2){let i;eC((i=n.view())?0:-1,i),XE(),eC(n.error()?1:-1);}},dependencies:[kb],styles:["[_nghost-%COMP%]{display:block;min-width:0}.environment[_ngcontent-%COMP%]{margin:0 0 12px;padding:4px;border:1px solid var(--color-divider, #ddd);background:var(--color-surface-muted, rgba(0, 0, 0, .03));color:var(--color-text, #1d1d1f);font-family:var(--font-body, sans-serif);font-size:12px;line-height:1.4}.environment__row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;box-sizing:border-box;min-height:32px;min-width:0;width:100%;padding:6px 8px;color:inherit}.environment__interactive[_ngcontent-%COMP%]{appearance:none;margin:0;border:0;border-radius:0;background:transparent;font:inherit;text-align:left;text-decoration:none;cursor:pointer;transition:background .12s ease}.environment__interactive[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04))}.environment__interactive[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:0;outline-offset:-2px}.environment__icon[_ngcontent-%COMP%], .environment__chevron[_ngcontent-%COMP%]{flex:0 0 16px;width:16px;font-size:16px;color:var(--color-text-secondary, #6e6e73)}.environment__chevron[_ngcontent-%COMP%]{font-size:14px}.environment__label[_ngcontent-%COMP%]{flex:1;min-width:0}.environment__counts[_ngcontent-%COMP%]{display:inline-flex;flex-shrink:0;gap:8px;font-family:var(--font-heading, monospace);font-size:12px;font-weight:500;font-variant-numeric:tabular-nums}.environment__added[_ngcontent-%COMP%]{color:color-mix(in srgb,var(--color-success, #34c759) 65%,var(--color-text, #1d1d1f))}.environment__removed[_ngcontent-%COMP%]{color:var(--red-deep, #bc3030)}.environment__status[_ngcontent-%COMP%]{display:inline-flex;align-items:center;border:1px solid currentColor;font-size:9.5px;font-family:var(--font-heading);font-weight:600;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;padding:1px 6px;color:var(--status-idle-text)}.environment__status--running[_ngcontent-%COMP%]{color:var(--color-accent-700)}.environment__status--error[_ngcontent-%COMP%]{color:var(--red-deep)}.environment__status--pending[_ngcontent-%COMP%]{color:var(--status-pending-text)}.environment__status--killed[_ngcontent-%COMP%]{color:var(--status-killed-text)}.environment__status[_ngcontent-%COMP%]{font-size:9px;letter-spacing:.04em;color:var(--color-text-secondary, #6e6e73);border-color:var(--color-divider, #ddd)}.environment__status--pending[_ngcontent-%COMP%]{color:var(--status-pending-text, #b06f1e)}.environment__status--error[_ngcontent-%COMP%]{color:var(--red-deep, #bc3030)}.environment__details[_ngcontent-%COMP%]{min-width:0}.environment__details[_ngcontent-%COMP%] > summary[_ngcontent-%COMP%]{list-style:none}.environment__details[_ngcontent-%COMP%] > summary[_ngcontent-%COMP%]::-webkit-details-marker{display:none}.environment__details[open][_ngcontent-%COMP%] > summary[_ngcontent-%COMP%] .environment__chevron[_ngcontent-%COMP%]{transform:rotate(90deg)}.environment__path[_ngcontent-%COMP%]{display:block;margin:0 8px 8px 32px;padding:6px 8px;border:0;border-left:1px solid var(--color-divider, #ddd);border-radius:0;background:transparent;color:var(--color-text-secondary, #6e6e73);font-family:var(--font-heading, monospace);font-size:10px;line-height:1.6;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.environment__branch[_ngcontent-%COMP%]{min-width:0;font-family:var(--font-heading, monospace);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.environment__muted[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73)}.environment__error[_ngcontent-%COMP%]{margin:4px 8px 8px;color:var(--color-text-secondary, #6e6e73);font-size:11px;line-height:1.5;overflow-wrap:anywhere}"]})};var va=["backButton"];function ya(o,t){if(o&1){let e=lC();ws$1(0,"ds-empty-state",7)(1,"button",13),Rg("click",function(){If(e);let i=gC();return wf(i.onDownload())}),GC(2,"Download instead"),pl$1()();}}function wa(o,t){o&1&&(ws$1(0,"div",8),Sg(1,"ds-spinner",14),pl$1());}function Sa(o,t){if(o&1){let e=lC();ws$1(0,"ds-empty-state",9)(1,"button",13),Rg("click",function(){If(e);let i=gC();return wf(i.onDownload())}),GC(2,"Download instead"),pl$1()();}}function Ea(o,t){if(o&1&&(Sg(0,"div",10),aT(1,"agentosMarkdown")),o&2){let e=gC();bg("innerHTML",uT(1,1,e.content()),aE);}}function Ma(o,t){if(o&1&&Sg(0,"iframe",11),o&2){let e=gC();bg("srcdoc",e.displayContent(),aE)("title","Preview of "+e.filename());}}function ka(o,t){if(o&1&&(ws$1(0,"pre",12),GC(1),pl$1()),o&2){let e=gC();XE(),Yg(e.displayContent());}}var yt=class o{file=ZB.required();content=ZB(null);status=ZB("loading");canView=ZB(true);closeRequested=qB();downloadRequested=qB();backButton=QB("backButton",{read:Xt});constructor(){ME(()=>{this.backButton()?.nativeElement?.querySelector("button")?.focus();});}filename=mT(()=>{let t=this.file().path;return t.split("/").pop()??t});format=mT(()=>So(this.filename()));displayContent=mT(()=>{let t=this.content();return t==null?"":this.format()==="json"?Mo(t):t});onClose(){this.closeRequested.emit();}onDownload(){this.downloadRequested.emit(this.file());}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=xw({type:o,selectors:[["agentos-exchange-content-viewer"]],viewQuery:function(e,n){e&1&&jg(n.backButton,va,5,Xt),e&2&&wC();},inputs:{file:[1,"file"],content:[1,"content"],status:[1,"status"],canView:[1,"canView"]},outputs:{closeRequested:"closeRequested",downloadRequested:"downloadRequested"},decls:14,vars:4,consts:[["backButton",""],[1,"exchange-content-viewer"],[1,"exchange-content-viewer__header"],["icon","chevron_left","variant","default","title","Back to files",3,"action"],[1,"exchange-content-viewer__filename",3,"title"],["icon","download","variant","default",3,"action","title"],[1,"exchange-content-viewer__body"],["icon","insert_drive_file","title","Preview not available","hint","This file is binary or too large to display. Download it to view the contents."],[1,"exchange-content-viewer__center"],["icon","error_outline","title","Couldn't load this file","hint","The content could not be retrieved."],[1,"exchange-content-viewer__markdown",3,"innerHTML"],["sandbox","",1,"exchange-content-viewer__iframe",3,"srcdoc","title"],[1,"exchange-content-viewer__pre"],["type","button",1,"exchange-content-viewer__cta",3,"click"],["size","md","label","Loading content"]],template:function(e,n){e&1&&(ws$1(0,"div",1)(1,"header",2)(2,"ds-icon-button",3,0),Rg("action",function(){return n.onClose()}),pl$1(),ws$1(4,"span",4),GC(5),pl$1(),ws$1(6,"ds-icon-button",5),Rg("action",function(){return n.onDownload()}),pl$1()(),ws$1(7,"div",6),Jw(8,ya,3,0,"ds-empty-state",7)(9,wa,2,0,"div",8)(10,Sa,3,0,"ds-empty-state",9)(11,Ea,2,3,"div",10)(12,Ma,1,2,"iframe",11)(13,ka,2,1,"pre",12),pl$1()()),e&2&&(XE(4),bg("title",n.filename()),XE(),Yg(n.filename()),XE(),bg("title","Download "+n.filename()),XE(2),eC(n.canView()?n.status()==="loading"?9:n.status()==="error"?10:n.format()==="markdown"?11:n.format()==="html"?12:13:8));},dependencies:[Xn$1,Gn,Se$1,d$1],styles:['.exchange-content-viewer[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.exchange-content-viewer__header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.5rem .5rem .5rem .75rem;border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .1));flex-shrink:0}.exchange-content-viewer__filename[_ngcontent-%COMP%]{flex:1;min-width:0;font-size:.8125rem;font-weight:600;color:var(--color-text, #1d1d1f);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exchange-content-viewer__body[_ngcontent-%COMP%]{flex:1;min-height:0;overflow:auto;padding:.75rem}.exchange-content-viewer__iframe[_ngcontent-%COMP%]{width:100%;height:100%;min-height:320px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:8px;background:#fff}.exchange-content-viewer__cta[_ngcontent-%COMP%]{appearance:none;cursor:pointer;padding:.4rem .9rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:var(--color-primary, #007aff);color:var(--color-text-inverse, #ffffff);font-size:.8125rem;font-weight:600}.exchange-content-viewer__cta[_ngcontent-%COMP%]:hover{background:var(--color-primary-hover, #0066d6)}.exchange-content-viewer__cta[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--color-primary, #007aff);outline-offset:2px}.exchange-content-viewer__center[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;height:100%}.exchange-content-viewer__pre[_ngcontent-%COMP%]{margin:0;white-space:pre-wrap;word-break:break-word;font-family:var(--font-mono, ui-monospace, "SF Mono", "Menlo", monospace);font-size:.75rem;line-height:1.5;color:var(--color-text, #1d1d1f)}.exchange-content-viewer__markdown[_ngcontent-%COMP%]{font-size:.8125rem;line-height:1.6;color:var(--color-text, #1d1d1f);word-break:break-word}.exchange-content-viewer__markdown[_ngcontent-%COMP%] :where(img[_ngcontent-%COMP%], table[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]){max-width:100%}.exchange-content-viewer__markdown[_ngcontent-%COMP%] :where(pre[_ngcontent-%COMP%]){overflow-x:auto}']})};var Ta=(o,t)=>t.label;function Pa(o,t){if(o&1&&(ws$1(0,"span"),GC(1),pl$1()),o&2){let e=t.$implicit;kC(XC("exchange-item__badge exchange-item__badge--",e.variant)),XE(),Yg(e.label);}}function Oa(o,t){if(o&1){let e=lC();ws$1(0,"button",11),Rg("click",function(){If(e);let i=gC();return wf(i.diffRequested.emit())}),GC(1),pl$1();}if(o&2){let e=t,n=gC();bg("title",n.gitLabels[e].label+" \xB7 branch and local changes \xB7 View diff"),Tg("aria-label",n.gitLabels[e].label+": "+n.row().filename+" \u2014 View diff"),XE(),vl$1(" ",n.gitLabels[e].code," ");}}function Da(o,t){if(o&1){let e=lC();ws$1(0,"ds-icon-button",12),Rg("action",function(){If(e);let i=gC();return wf(i.deleteRequested.emit())}),pl$1();}if(o&2){let e=gC();bg("title","Delete "+e.row().filename);}}var Re=class o{row=ZB.required();active=ZB(false);canWrite=ZB(false);viewRequested=qB();downloadRequested=qB();deleteRequested=qB();diffRequested=qB();gitLabels=To;static toRow(t){let e=[t.size!==void 0?yo(t.size):null,t.lastModified?wo(t.lastModified):null];return {path:t.path,filename:t.name,meta:e.filter(n=>n!==null).join(" \xB7 "),icon:xt(t.name)}}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=xw({type:o,selectors:[["agentos-exchange-item"]],inputs:{row:[1,"row"],active:[1,"active"],canWrite:[1,"canWrite"]},outputs:{viewRequested:"viewRequested",downloadRequested:"downloadRequested",deleteRequested:"deleteRequested",diffRequested:"diffRequested"},decls:15,vars:16,consts:[[1,"exchange-item"],["type","button",1,"exchange-item__main",3,"click"],["aria-hidden","true",1,"exchange-item__icon","material-icons"],[1,"exchange-item__text"],[1,"exchange-item__name"],[1,"exchange-item__meta"],[3,"class"],["type","button",1,"exchange-item__git-status",3,"title"],[1,"exchange-item__actions"],["icon","download","variant","default",3,"action","title"],["icon","delete","variant","danger",3,"title"],["type","button",1,"exchange-item__git-status",3,"click","title"],["icon","delete","variant","danger",3,"action","title"]],template:function(e,n){if(e&1&&(ws$1(0,"div",0)(1,"button",1),Rg("click",function(){return n.viewRequested.emit()}),ws$1(2,"span",2),GC(3),pl$1(),ws$1(4,"span",3)(5,"span",4),GC(6),pl$1(),ws$1(7,"span",5),GC(8),rC(9,Pa,2,4,"span",6,Ta),pl$1()()(),Jw(11,Oa,2,3,"button",7),ws$1(12,"div",8)(13,"ds-icon-button",9),Rg("action",function(){return n.downloadRequested.emit()}),pl$1(),Jw(14,Da,1,1,"ds-icon-button",10),pl$1()()),e&2){let i;Ug("exchange-item--active",n.active())("exchange-item--missing",n.row().missing),Tg("data-git-status",n.row().gitStatus??null),XE(),Tg("data-exchange-path",n.row().path)("aria-current",n.active()?"true":null)("aria-label",(n.row().missing?"View deletion diff for ":"View ")+n.row().filename),XE(2),Yg(n.row().icon),XE(3),Yg(n.row().filename),XE(2),vl$1(" ",n.row().meta," "),XE(),oC(n.row().badges),XE(2),eC((i=n.row().gitStatus)?11:-1,i),XE(),Ug("exchange-item__actions--hidden",n.row().missing),XE(),bg("title","Download "+n.row().filename),XE(),eC(n.canWrite()?14:-1);}},dependencies:[Se$1],styles:[".exchange-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem;padding:.125rem .25rem .125rem .375rem;border-radius:0;border:1px solid transparent;transition:background .15s ease,border-color .15s ease}.exchange-item[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04))}.exchange-item--active[_ngcontent-%COMP%]{background:var(--color-bg-hover, rgba(0, 0, 0, .04));border-color:var(--color-primary, #007aff)}.exchange-item__main[_ngcontent-%COMP%]{flex:1;min-width:0;display:flex;align-items:center;gap:.5rem;padding:.375rem .25rem;border:none;background:transparent;text-align:left;cursor:pointer;color:inherit;font:inherit}.exchange-item__main[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--color-primary, #007aff);outline-offset:2px;border-radius:0}.exchange-item__icon[_ngcontent-%COMP%]{flex-shrink:0;font-size:18px;color:var(--color-text-secondary, #6e6e73)}.exchange-item__text[_ngcontent-%COMP%]{flex:1;min-width:0;display:flex;flex-direction:column;gap:.125rem}.exchange-item__name[_ngcontent-%COMP%]{font-size:12px;font-weight:500;color:var(--color-text, #1d1d1f);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exchange-item__meta[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;font-size:.6875rem;color:var(--color-text-secondary, #6e6e73);line-height:1.3}.exchange-item__badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:.0625rem .3rem;border-radius:0;font-size:.5625rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#fff}.exchange-item__badge--warning[_ngcontent-%COMP%]{background:var(--color-warning, #ff9500)}.exchange-item__badge--info[_ngcontent-%COMP%]{background:var(--color-info, #5ac8fa)}.exchange-item__badge--success[_ngcontent-%COMP%]{background:var(--color-success, #34c759)}.exchange-item__badge--error[_ngcontent-%COMP%]{background:var(--color-error, #ff3b30)}.exchange-item__actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.125rem;flex-shrink:0}.exchange-item__actions--hidden[_ngcontent-%COMP%]{display:none}.exchange-item[data-git-status=ADDED][_ngcontent-%COMP%], .exchange-item[data-git-status=UNTRACKED][_ngcontent-%COMP%]{--git-color: var(--color-success, #34c759)}.exchange-item[data-git-status=MODIFIED][_ngcontent-%COMP%], .exchange-item[data-git-status=TYPE_CHANGED][_ngcontent-%COMP%]{--git-color: var(--color-warning, #ff9500)}.exchange-item[data-git-status=DELETED][_ngcontent-%COMP%], .exchange-item[data-git-status=CONFLICTED][_ngcontent-%COMP%]{--git-color: var(--color-error, #ff3b30)}.exchange-item[data-git-status][_ngcontent-%COMP%] .exchange-item__name[_ngcontent-%COMP%], .exchange-item[data-git-status][_ngcontent-%COMP%] .exchange-item__icon[_ngcontent-%COMP%]{color:var(--git-color)}.exchange-item--missing[_ngcontent-%COMP%] .exchange-item__name[_ngcontent-%COMP%]{text-decoration:line-through}.exchange-item__git-status[_ngcontent-%COMP%]{flex-shrink:0;min-width:24px;height:24px;padding:0 4px;border:1px solid transparent;background:transparent;color:var(--git-color);font:600 11px var(--font-heading, monospace);cursor:pointer}.exchange-item__git-status[_ngcontent-%COMP%]:hover{border-color:currentColor;background:var(--color-bg-hover, rgba(0, 0, 0, .04))}.exchange-item__git-status[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--color-primary, #007aff);outline-offset:1px}"]})};var Ia=(o,t)=>t.path;function Ra(o,t){if(o&1){let e=lC();ws$1(0,"li",1)(1,"agentos-exchange-item",2),Rg("viewRequested",function(){let i=If(e).$implicit,a=gC();return wf(a.onView(i))})("downloadRequested",function(){let i=If(e).$implicit,a=gC();return wf(a.onDownload(i))})("deleteRequested",function(){let i=If(e).$implicit,a=gC();return wf(a.onDelete(i))})("diffRequested",function(){let i=If(e).$implicit,a=gC();return wf(a.onDiff(i))}),pl$1()();}if(o&2){let e=t.$implicit,n=gC();XE(),bg("row",e)("active",n.isActive(e))("canWrite",n.canWrite());}}var wt=class o{rows=ZB.required();scope=ZB.required();activeFile=ZB(null);canWrite=ZB(false);fileSelected=qB();downloadRequested=qB();deleteRequested=qB();diffRequested=qB();isActive(t){let e=this.activeFile();return e!==null&&e.scope===this.scope()&&e.path===t.path}onView(t){t.missing?this.onDiff(t):this.fileSelected.emit({scope:this.scope(),path:t.path});}onDiff(t){this.diffRequested.emit({scope:this.scope(),path:t.path});}onDownload(t){this.downloadRequested.emit({scope:this.scope(),path:t.path});}onDelete(t){this.deleteRequested.emit({scope:this.scope(),path:t.path});}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=xw({type:o,selectors:[["agentos-exchange-file-list"]],inputs:{rows:[1,"rows"],scope:[1,"scope"],activeFile:[1,"activeFile"],canWrite:[1,"canWrite"]},outputs:{fileSelected:"fileSelected",downloadRequested:"downloadRequested",deleteRequested:"deleteRequested",diffRequested:"diffRequested"},decls:3,vars:0,consts:[["role","list",1,"exchange-file-list"],["role","listitem",1,"exchange-file-list__row"],[3,"viewRequested","downloadRequested","deleteRequested","diffRequested","row","active","canWrite"]],template:function(e,n){e&1&&(ws$1(0,"ul",0),rC(1,Ra,2,3,"li",1,Ia),pl$1()),e&2&&(XE(),oC(n.rows()));},dependencies:[Re],styles:[".exchange-file-list[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.125rem}.exchange-file-list__row[_ngcontent-%COMP%]{display:block}"]})};var Va=["fileInput"],Na=o=>({id:o}),Et=(o,t)=>t.path;function Aa(o,t){if(o&1){let e=lC();ws$1(0,"agentos-exchange-content-viewer",4),Rg("closeRequested",function(){If(e);let i=gC();return wf(i.onViewerClose())})("downloadRequested",function(i){If(e);let a=gC();return wf(a.downloadRequested.emit(i))}),pl$1();}if(o&2){let e=gC();bg("file",t)("content",e.selectedContent())("status",e.contentStatus())("canView",e.canViewSelected());}}function Fa(o,t){if(o&1){let e=lC();ws$1(0,"ds-icon-button",23),Rg("action",function(){If(e);let i=gC(3);return wf(i.triggerUpload(i.CASE))}),pl$1();}if(o&2){let e=gC(3);bg("disabled",e.caseUploading());}}function qa(o,t){o&1&&(ws$1(0,"span",16),GC(1,"read-only"),pl$1());}function La(o,t){if(o&1){let e=lC();ws$1(0,"ds-icon-button",24),Rg("action",function(){If(e);let i=gC(3);return wf(i.downloadAllRequested.emit(i.CASE))}),pl$1();}}function za(o,t){if(o&1){let e=lC();ws$1(0,"agentos-exchange-environment",25),Rg("environmentChanged",function(i){If(e);let a=gC(3);return wf(a.onEnvironmentChanged(i))}),pl$1();}if(o&2){let e=gC(3);bg("scope",oT(2,Na,t))("canWrite",e.canWriteCase());}}function Wa(o,t){o&1&&(ws$1(0,"p",19),GC(1,"Uploading\u2026"),pl$1());}function Ua(o,t){o&1&&(ws$1(0,"div",20),Sg(1,"ds-spinner",26),pl$1());}function $a(o,t){o&1&&(ws$1(0,"div",21),Sg(1,"ds-spinner",27),ws$1(2,"p"),GC(3,"Preparing workspace\u2026"),pl$1(),ws$1(4,"p",28),GC(5," Files will appear automatically when the workspace is ready. "),pl$1()());}function Ba(o,t){if(o&1){let e=lC();ws$1(0,"div",22)(1,"span"),GC(2,"Couldn't load case files."),pl$1(),ws$1(3,"button",29),Rg("click",function(){If(e);let i=gC(3);return wf(i.retryRequested.emit())}),GC(4,"Retry"),pl$1()();}}function Ha(o,t){if(o&1){let e=lC();ws$1(0,"span",34),GC(1,"/"),pl$1(),ws$1(2,"button",33),Rg("click",function(){let i=If(e).$implicit,a=gC(5);return wf(a.onFolderOpen(a.CASE,i.path))}),GC(3),pl$1();}if(o&2){let e=t.$implicit;XE(3),vl$1(" ",e.label," ");}}function Ga(o,t){if(o&1){let e=lC();ws$1(0,"nav",30)(1,"button",33),Rg("click",function(){If(e);let i=gC(4);return wf(i.onFolderOpen(i.CASE,""))}),GC(2,"root"),pl$1(),rC(3,Ha,4,1,null,null,Et),pl$1();}if(o&2){let e=gC(4);XE(3),oC(e.caseBreadcrumb());}}function ja(o,t){if(o&1&&(ws$1(0,"span",39),GC(1,"\u25CF"),pl$1()),o&2){let e=t;bg("title",e+(e===1?" changed file":" changed files")+" \xB7 branch and local changes"),Tg("aria-label",e+(e===1?" changed file":" changed files"));}}function Qa(o,t){if(o&1){let e=lC();ws$1(0,"li",35)(1,"button",36),Rg("click",function(){let i=If(e).$implicit,a=gC(5);return wf(a.onFolderOpen(a.CASE,i.path))}),ws$1(2,"span",37),GC(3,"folder_open"),pl$1(),ws$1(4,"span",38),GC(5),pl$1(),Jw(6,ja,2,2,"span",39),ws$1(7,"span",40),GC(8,"chevron_right"),pl$1()()();}if(o&2){let e,n=t.$implicit,i=gC(5);XE(5),Yg(n.name),XE(),eC((e=i.gitTree().folders.get(n.path))?6:-1,e);}}function Ka(o,t){if(o&1&&(ws$1(0,"ul",31),rC(1,Qa,9,2,"li",35,Et),pl$1()),o&2){let e=gC(4);XE(),oC(e.caseFolders());}}function Ya(o,t){if(o&1&&Sg(0,"ds-empty-state",32),o&2){let e=gC(4);bg("hint",e.canWriteCase()?"Upload a file to share it with this case.":void 0);}}function Ja(o,t){if(o&1){let e=lC();ws$1(0,"button",43),Rg("click",function(){If(e);let i=gC(5);return wf(i.loadMoreRequested.emit(i.CASE))}),GC(1),pl$1();}if(o&2){let e=gC(5);bg("disabled",e.caseLoadingMore()),XE(),vl$1(" ",e.caseLoadingMore()?"Loading\u2026":"Load more files"," ");}}function Xa(o,t){if(o&1){let e=lC();ws$1(0,"agentos-exchange-file-list",41),Rg("fileSelected",function(i){If(e);let a=gC(4);return wf(a.onFileSelected(i))})("diffRequested",function(i){If(e);let a=gC(4);return wf(a.openFileDiff(i))})("downloadRequested",function(i){If(e);let a=gC(4);return wf(a.downloadRequested.emit(i))})("deleteRequested",function(i){If(e);let a=gC(4);return wf(a.deleteRequested.emit(i))}),pl$1(),Jw(1,Ja,2,2,"button",42);}if(o&2){let e=gC(4);bg("rows",e.caseRows())("scope",e.CASE)("canWrite",e.canWriteCase())("activeFile",e.activeFile()),XE(),eC(e.caseHasMore()?1:-1);}}function Za(o,t){if(o&1&&(Jw(0,Ga,5,0,"nav",30),Jw(1,Ka,3,0,"ul",31),Jw(2,Ya,1,1,"ds-empty-state",32)(3,Xa,2,5)),o&2){let e=gC(3);eC(e.caseBreadcrumb().length>0||e.caseFolders().length>0?0:-1),XE(),eC(e.caseFolders().length>0?1:-1),XE(),eC(e.caseRows().length===0&&e.caseFolders().length===0?2:3);}}function er(o,t){if(o&1&&(ws$1(0,"section",10)(1,"div",12)(2,"h3",13),GC(3,"Case files"),pl$1(),ws$1(4,"div",14),Jw(5,Fa,1,1,"ds-icon-button",15)(6,qa,2,0,"span",16),Jw(7,La,1,0,"ds-icon-button",17),pl$1()(),Jw(8,za,1,4,"agentos-exchange-environment",18),Jw(9,Wa,2,0,"p",19),Jw(10,Ua,2,0,"div",20)(11,$a,6,0,"div",21)(12,Ba,5,0,"div",22)(13,Za,4,3),pl$1()),o&2){let e,n,i=gC(2);XE(5),eC(i.canWriteCase()?5:i.caseStatus()==="ready"?6:-1),XE(2),eC(i.caseFiles().length>0||i.caseFolders().length>0||i.caseBreadcrumb().length>0?7:-1),XE(),eC((e=i.environmentActive()&&i.caseId())?8:-1,e),XE(),eC(i.caseUploading()?9:-1),XE(),eC((n=i.caseStatus())==="loading"?10:n==="preparing"?11:n==="error"?12:13);}}function tr(o,t){if(o&1){let e=lC();ws$1(0,"ds-icon-button",23),Rg("action",function(){If(e);let i=gC(3);return wf(i.triggerUpload(i.NAMESPACE))}),pl$1();}if(o&2){let e=gC(3);bg("disabled",e.namespaceUploading());}}function nr(o,t){o&1&&(ws$1(0,"span",16),GC(1,"read-only"),pl$1());}function or(o,t){if(o&1){let e=lC();ws$1(0,"ds-icon-button",45),Rg("action",function(){If(e);let i=gC(3);return wf(i.downloadAllRequested.emit(i.NAMESPACE))}),pl$1();}}function ir(o,t){o&1&&(ws$1(0,"div",20),Sg(1,"ds-spinner",46),pl$1());}function ar(o,t){if(o&1){let e=lC();ws$1(0,"div",22)(1,"span"),GC(2,"Couldn't load namespace files."),pl$1(),ws$1(3,"button",29),Rg("click",function(){If(e);let i=gC(3);return wf(i.retryRequested.emit())}),GC(4,"Retry"),pl$1()();}}function rr(o,t){if(o&1){let e=lC();ws$1(0,"span",34),GC(1,"/"),pl$1(),ws$1(2,"button",33),Rg("click",function(){let i=If(e).$implicit,a=gC(5);return wf(a.onFolderOpen(a.NAMESPACE,i.path))}),GC(3),pl$1();}if(o&2){let e=t.$implicit;XE(3),vl$1(" ",e.label," ");}}function sr(o,t){if(o&1){let e=lC();ws$1(0,"nav",30)(1,"button",33),Rg("click",function(){If(e);let i=gC(4);return wf(i.onFolderOpen(i.NAMESPACE,""))}),GC(2," root "),pl$1(),rC(3,rr,4,1,null,null,Et),pl$1();}if(o&2){let e=gC(4);XE(3),oC(e.namespaceBreadcrumb());}}function lr(o,t){if(o&1){let e=lC();ws$1(0,"li",35)(1,"button",36),Rg("click",function(){let i=If(e).$implicit,a=gC(5);return wf(a.onFolderOpen(a.NAMESPACE,i.path))}),ws$1(2,"span",37),GC(3,"folder_open"),pl$1(),ws$1(4,"span",38),GC(5),pl$1(),ws$1(6,"span",40),GC(7,"chevron_right"),pl$1()()();}if(o&2){let e=t.$implicit;XE(5),Yg(e.name);}}function cr(o,t){if(o&1&&(ws$1(0,"ul",31),rC(1,lr,8,1,"li",35,Et),pl$1()),o&2){let e=gC(4);XE(),oC(e.namespaceFolders());}}function dr(o,t){if(o&1&&Sg(0,"ds-empty-state",47),o&2){let e=gC(4);bg("hint",e.canWriteNamespace()?"Upload a file to share it across this namespace.":void 0);}}function mr(o,t){if(o&1){let e=lC();ws$1(0,"button",43),Rg("click",function(){If(e);let i=gC(5);return wf(i.loadMoreRequested.emit(i.NAMESPACE))}),GC(1),pl$1();}if(o&2){let e=gC(5);bg("disabled",e.namespaceLoadingMore()),XE(),vl$1(" ",e.namespaceLoadingMore()?"Loading\u2026":"Load more files"," ");}}function pr(o,t){if(o&1){let e=lC();ws$1(0,"agentos-exchange-file-list",48),Rg("fileSelected",function(i){If(e);let a=gC(4);return wf(a.onFileSelected(i))})("downloadRequested",function(i){If(e);let a=gC(4);return wf(a.downloadRequested.emit(i))})("deleteRequested",function(i){If(e);let a=gC(4);return wf(a.deleteRequested.emit(i))}),pl$1(),Jw(1,mr,2,2,"button",42);}if(o&2){let e=gC(4);bg("rows",e.namespaceRows())("scope",e.NAMESPACE)("canWrite",e.canWriteNamespace())("activeFile",e.activeFile()),XE(),eC(e.namespaceHasMore()?1:-1);}}function _r(o,t){if(o&1&&(Jw(0,sr,5,0,"nav",30),Jw(1,cr,3,0,"ul",31),Jw(2,dr,1,1,"ds-empty-state",47)(3,pr,2,5)),o&2){let e=gC(3);eC(e.namespaceBreadcrumb().length>0||e.namespaceFolders().length>0?0:-1),XE(),eC(e.namespaceFolders().length>0?1:-1),XE(),eC(e.namespaceFiles().length===0&&e.namespaceFolders().length===0?2:3);}}function ur(o,t){if(o&1&&(ws$1(0,"section",10)(1,"div",12)(2,"h3",13),GC(3,"Namespace files"),pl$1(),ws$1(4,"div",14),Jw(5,tr,1,1,"ds-icon-button",15)(6,nr,2,0,"span",16),Jw(7,or,1,0,"ds-icon-button",44),pl$1()(),Jw(8,ir,2,0,"div",20)(9,ar,5,0,"div",22)(10,_r,4,3),pl$1()),o&2){let e,n=gC(2);XE(5),eC(n.canWriteNamespace()?5:6),XE(2),eC(n.namespaceFiles().length>0||n.namespaceFolders().length>0||n.namespaceBreadcrumb().length>0?7:-1),XE(),eC((e=n.namespaceStatus())==="loading"?8:e==="error"?9:10);}}function gr(o,t){o&1&&(ws$1(0,"p",11),GC(1,"No files available."),pl$1());}function hr(o,t){if(o&1){let e=lC();ws$1(0,"header",5)(1,"span",6)(2,"span",7),GC(3,"folder_open"),pl$1(),GC(4," Files "),pl$1(),ws$1(5,"ds-icon-button",8),Rg("action",function(){If(e);let i=gC();return wf(i.closeRequested.emit())}),pl$1()(),ws$1(6,"div",9),Jw(7,er,14,5,"section",10),Jw(8,ur,11,3,"section",10),Jw(9,gr,2,0,"p",11),pl$1();}if(o&2){let e=gC();XE(7),eC(e.caseSectionVisible()?7:-1),XE(),eC(e.namespaceSectionVisible()?8:-1),XE(),eC(!e.caseSectionVisible()&&!e.namespaceSectionVisible()?9:-1);}}var St=class o{caseId=ZB(null);environmentActive=ZB(false);caseFiles=ZB([]);caseFolders=ZB([]);caseBreadcrumb=ZB([]);caseHasMore=ZB(false);caseLoadingMore=ZB(false);caseStatus=ZB.required();caseSectionVisible=ZB(false);canWriteCase=ZB(false);caseUploading=ZB(false);namespaceFiles=ZB([]);namespaceFolders=ZB([]);namespaceBreadcrumb=ZB([]);namespaceHasMore=ZB(false);namespaceLoadingMore=ZB(false);namespaceStatus=ZB.required();namespaceSectionVisible=ZB(false);canWriteNamespace=ZB(false);namespaceUploading=ZB(false);activeFile=ZB(null);selectedContent=ZB(null);contentStatus=ZB("loading");canViewSelected=ZB(true);fileSelected=qB();folderOpened=qB();loadMoreRequested=qB();uploadRequested=qB();downloadRequested=qB();downloadAllRequested=qB();deleteRequested=qB();retryRequested=qB();closeRequested=qB();viewerClosed=qB();host=g(Xt);fileInput=QB("fileInput");CASE="CASE";NAMESPACE="NAMESPACE";environmentPanel=QB(He);environment=Gi$1(null);onEnvironmentChanged(t){this.environment.set(t);}changes=mT(()=>{let t=this.environment();if(t?.scope.id!==this.caseId()||this.caseStatus()!=="ready")return [];let e=t?.view;return e?.equipped&&e.status==="READY"&&!e.error?e.changes?.files??[]:[]});gitTree=mT(()=>Po(this.changes()));caseRows=mT(()=>{let t=this.caseFiles().map(i=>x$2(w$1({},Re.toRow(i)),{gitStatus:this.gitTree().files.get(i.path)?.status,missing:false})),e=this.caseBreadcrumb().at(-1)?.path??"",n=Oo(this.changes(),e,this.caseFiles().map(i=>i.path),this.caseFolders().map(i=>i.path)).map(i=>({path:i.path,filename:i.name,meta:"Deleted \xB7 view diff",icon:"description",gitStatus:i.status,missing:true}));return n.length?[...t,...n].sort((i,a)=>i.filename.localeCompare(a.filename)):t});openFileDiff(t){t.scope===this.CASE&&t.path.startsWith("repo/")&&this.environmentPanel()?.openDiff(t.path.slice(5));}onFolderOpen(t,e){this.folderOpened.emit({scope:t,path:e});}namespaceRows=mT(()=>this.namespaceFiles().map(Re.toRow));lastSelectedPath=null;onFileSelected(t){this.lastSelectedPath=t.path,this.fileSelected.emit(t);}onViewerClose(){this.viewerClosed.emit();let t=this.lastSelectedPath;t&&queueMicrotask(()=>{let e=this.host.nativeElement.querySelectorAll("[data-exchange-path]");for(let n of Array.from(e))if(n.getAttribute("data-exchange-path")===t){n.focus();break}});}pendingUploadScope="CASE";triggerUpload(t){this.pendingUploadScope=t,this.fileInput()?.nativeElement.click();}onFileInputChange(t){let e=t.target,n=e.files?Array.from(e.files):[];n.length>0&&this.uploadRequested.emit({scope:this.pendingUploadScope,files:n}),e.value="";}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=xw({type:o,selectors:[["agentos-exchange-drawer"]],viewQuery:function(e,n){e&1&&jg(n.fileInput,Va,5)(n.environmentPanel,He,5),e&2&&wC(2);},inputs:{caseId:[1,"caseId"],environmentActive:[1,"environmentActive"],caseFiles:[1,"caseFiles"],caseFolders:[1,"caseFolders"],caseBreadcrumb:[1,"caseBreadcrumb"],caseHasMore:[1,"caseHasMore"],caseLoadingMore:[1,"caseLoadingMore"],caseStatus:[1,"caseStatus"],caseSectionVisible:[1,"caseSectionVisible"],canWriteCase:[1,"canWriteCase"],caseUploading:[1,"caseUploading"],namespaceFiles:[1,"namespaceFiles"],namespaceFolders:[1,"namespaceFolders"],namespaceBreadcrumb:[1,"namespaceBreadcrumb"],namespaceHasMore:[1,"namespaceHasMore"],namespaceLoadingMore:[1,"namespaceLoadingMore"],namespaceStatus:[1,"namespaceStatus"],namespaceSectionVisible:[1,"namespaceSectionVisible"],canWriteNamespace:[1,"canWriteNamespace"],namespaceUploading:[1,"namespaceUploading"],activeFile:[1,"activeFile"],selectedContent:[1,"selectedContent"],contentStatus:[1,"contentStatus"],canViewSelected:[1,"canViewSelected"]},outputs:{fileSelected:"fileSelected",folderOpened:"folderOpened",loadMoreRequested:"loadMoreRequested",uploadRequested:"uploadRequested",downloadRequested:"downloadRequested",downloadAllRequested:"downloadAllRequested",deleteRequested:"deleteRequested",retryRequested:"retryRequested",closeRequested:"closeRequested",viewerClosed:"viewerClosed"},decls:5,vars:1,consts:[["fileInput",""],[1,"exchange-drawer"],[3,"file","content","status","canView"],["type","file","multiple","","aria-hidden","true","tabindex","-1",1,"exchange-drawer__file-input",3,"change"],[3,"closeRequested","downloadRequested","file","content","status","canView"],[1,"exchange-drawer__header"],[1,"exchange-drawer__title"],["aria-hidden","true",1,"material-icons"],["icon","close","variant","default","title","Close files panel",3,"action"],[1,"exchange-drawer__sections"],[1,"exchange-drawer__section"],[1,"exchange-drawer__no-access"],[1,"exchange-drawer__section-header"],[1,"exchange-drawer__section-title"],[1,"exchange-drawer__section-actions"],["icon","upload_file","variant","primary","title","Upload a file",3,"disabled"],[1,"exchange-drawer__readonly-badge"],["icon","download","variant","default","title","Download all case files"],[3,"scope","canWrite"],[1,"exchange-drawer__inflight"],[1,"exchange-drawer__center"],["role","status","aria-live","polite",1,"exchange-drawer__preparing"],["role","alert",1,"exchange-drawer__error"],["icon","upload_file","variant","primary","title","Upload a file",3,"action","disabled"],["icon","download","variant","default","title","Download all case files",3,"action"],[3,"environmentChanged","scope","canWrite"],["size","md","label","Loading case files"],["size","sm","label","Preparing workspace"],[1,"exchange-drawer__preparing-hint"],["type","button",1,"exchange-drawer__retry",3,"click"],["aria-label","Folder path",1,"exchange-drawer__breadcrumb"],["role","list",1,"exchange-drawer__folders"],["icon","folder_open","title","No case files",3,"hint"],["type","button",1,"exchange-drawer__crumb",3,"click"],["aria-hidden","true",1,"exchange-drawer__crumb-sep"],["role","listitem"],["type","button",1,"exchange-drawer__folder",3,"click"],["aria-hidden","true",1,"exchange-drawer__folder-icon","material-icons"],[1,"exchange-drawer__folder-name"],["role","img",1,"exchange-drawer__git-dot",3,"title"],["aria-hidden","true",1,"exchange-drawer__folder-chevron","material-icons"],[3,"fileSelected","diffRequested","downloadRequested","deleteRequested","rows","scope","canWrite","activeFile"],["type","button",1,"exchange-drawer__retry",3,"disabled"],["type","button",1,"exchange-drawer__retry",3,"click","disabled"],["icon","download","variant","default","title","Download all namespace files"],["icon","download","variant","default","title","Download all namespace files",3,"action"],["size","md","label","Loading namespace files"],["icon","folder_shared","title","No namespace files",3,"hint"],[3,"fileSelected","downloadRequested","deleteRequested","rows","scope","canWrite","activeFile"]],template:function(e,n){if(e&1&&(ws$1(0,"div",1),Jw(1,Aa,1,4,"agentos-exchange-content-viewer",2)(2,hr,10,3),ws$1(3,"input",3,0),Rg("change",function(a){return n.onFileInputChange(a)}),pl$1()()),e&2){let i;XE(),eC((i=n.activeFile())?1:2,i);}},dependencies:[He,Se$1,Xn$1,Gn,wt,yt],styles:[".exchange-drawer[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;font-family:var(--font-body, sans-serif);color:var(--color-text, #1d1d1f);background:var(--color-bg, #f2f2f3)}.exchange-drawer__header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .5rem .5rem 1rem;border-bottom:1px solid var(--color-divider, rgba(0, 0, 0, .1));flex-shrink:0}.exchange-drawer__title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;font-family:var(--font-heading, monospace);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text, #1d1d1f)}.exchange-drawer__title[_ngcontent-%COMP%] .material-icons[_ngcontent-%COMP%]{font-size:18px;color:var(--color-text-secondary, #6e6e73)}.exchange-drawer__sections[_ngcontent-%COMP%]{flex:1;min-height:0;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:20px;scrollbar-gutter:stable}.exchange-drawer__section[_ngcontent-%COMP%]{min-width:0}.exchange-drawer__section[_ngcontent-%COMP%] + .exchange-drawer__section[_ngcontent-%COMP%]{padding-top:12px;border-top:1px solid var(--color-divider, rgba(0, 0, 0, .1))}.exchange-drawer__section-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-height:28px;margin-bottom:6px}.exchange-drawer__section-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.exchange-drawer__center[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;padding:1.5rem}.exchange-drawer__error[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .75rem;border-radius:0;font-size:.8125rem;color:var(--color-error, #ff3b30);background:var(--color-bg-hover, rgba(0, 0, 0, .04))}.exchange-drawer__preparing[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem .75rem;text-align:center;font-size:.8125rem}.exchange-drawer__preparing[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0}.exchange-drawer__preparing-hint[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);font-size:.75rem}.exchange-drawer__retry[_ngcontent-%COMP%]{appearance:none;cursor:pointer;border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:0;background:transparent;padding:.2rem .6rem;font-size:.75rem;font-weight:600;color:var(--color-text, #1d1d1f)}.exchange-drawer__retry[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04))}.exchange-drawer__retry[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--color-primary, #007aff);outline-offset:2px}.exchange-drawer__inflight[_ngcontent-%COMP%]{margin:0 0 .25rem;padding:0 .25rem;font-size:.75rem;color:var(--color-text-secondary, #6e6e73)}.exchange-drawer__section-title[_ngcontent-%COMP%]{margin:0;font-family:var(--font-heading, monospace);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-secondary, #6e6e73)}.exchange-drawer__readonly-badge[_ngcontent-%COMP%]{font-size:.5625rem;font-family:var(--font-heading, monospace);font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-secondary, #6e6e73);border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:0;padding:.0625rem .375rem}.exchange-drawer__no-access[_ngcontent-%COMP%]{margin:0;padding:1.5rem .75rem;text-align:center;font-size:.8125rem;color:var(--color-text-secondary, #6e6e73)}.exchange-drawer__file-input[_ngcontent-%COMP%]{display:none}.exchange-drawer__breadcrumb[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;padding:0 0 8px;font-family:var(--font-heading, monospace);font-size:11px}.exchange-drawer__crumb[_ngcontent-%COMP%]{background:none;border:none;padding:2px 4px;font:inherit;cursor:pointer;color:var(--color-text-secondary, #6e6e73);overflow-wrap:anywhere}.exchange-drawer__crumb[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04));color:var(--color-text, #1d1d1f)}.exchange-drawer__crumb[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:0}.exchange-drawer__crumb-sep[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6b7280)}.exchange-drawer__folders[_ngcontent-%COMP%]{list-style:none;margin:0 0 .25rem;padding:0}.exchange-drawer__folder[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;width:100%;background:none;border:none;padding:.375rem .5rem;min-height:32px;font:inherit;text-align:left;cursor:pointer;border-radius:0;color:inherit}.exchange-drawer__folder[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04))}.exchange-drawer__folder[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:0}.exchange-drawer__folder-icon[_ngcontent-%COMP%], .exchange-drawer__folder-chevron[_ngcontent-%COMP%]{font-size:18px;color:var(--color-text-secondary, #6e6e73);flex-shrink:0}.exchange-drawer__folder-chevron[_ngcontent-%COMP%]{margin-left:auto;font-size:14px}.exchange-drawer__folder-name[_ngcontent-%COMP%]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500}.exchange-drawer__more[_ngcontent-%COMP%]{margin:.25rem 0 0;font-size:.75rem;color:var(--color-text-secondary, #6b7280)}.exchange-drawer__git-dot[_ngcontent-%COMP%]{margin-left:auto;flex-shrink:0;color:var(--color-warning, #ff9500);font-size:9px}.exchange-drawer__git-dot[_ngcontent-%COMP%] + .exchange-drawer__folder-chevron[_ngcontent-%COMP%]{margin-left:0}"]})};function fr(o,t){if(o&1&&(ws$1(0,"p",1),GC(1),pl$1()),o&2){let e=gC();XE(),Yg(e.actionError());}}var Mt=class o{route=g(V$2);destroyRef=g(Ce$1);state=g(de);active=ZB(false);closeRequested=qB();selectedFile=Gi$1(null);selectedContent=Gi$1(null);contentStatus=Gi$1("loading");canViewSelected=Gi$1(true);actionError=Gi$1(null);pendingDelete=Gi$1(null);confirmOpen=mT(()=>this.pendingDelete()!==null);deleteMessage=mT(()=>{let t=this.pendingDelete();return t?`Delete "${t.path.split("/").pop()??t.path}"? This action cannot be undone.`:""});activeCaseId=null;environmentCaseId=Gi$1(null);constructor(){this.route.queryParams.pipe(U$3()).subscribe(t=>{let e=t.ns,n=t.case;if(this.environmentCaseId.set(n??null),e&&n){if(n===this.activeCaseId)return;this.activeCaseId=n,this.resetSelection(),this.state.initializeForCase(e,n);}else this.activeCaseId!==null&&(this.activeCaseId=null,this.state.clear());}),Hf(t=>t(()=>this.state.clear()));}onFolderOpened(t){t.scope==="CASE"?this.state.browseCase(t.path):this.state.browseNamespace(t.path);}onFileSelected(t){this.selectedFile.set(t),this.selectedContent.set(null);let e=this.findFile(t),n=e?Eo(e):false;if(this.canViewSelected.set(n),!n){this.contentStatus.set("ready");return}this.contentStatus.set("loading"),this.state.getContent(t.scope,t.path).pipe(U$3(this.destroyRef)).subscribe({next:i=>{this.isStillSelected(t)&&(this.selectedContent.set(i.content),this.contentStatus.set("ready"));},error:()=>{this.isStillSelected(t)&&this.contentStatus.set("error");}});}onUpload(t){return B$2(this,null,function*(){this.actionError.set(null);let e=[];for(let n of t.files){let i=yield this.state.uploadFile(t.scope,n);i.success||e.push({name:n.name,error:i.error??"Upload failed"});}e.length===1?this.actionError.set(e[0]?.error??"Upload failed"):e.length>1&&this.actionError.set(`${e.length} of ${t.files.length} files failed to upload: ${e.map(n=>n.name).join(", ")}`);})}onDownload(t){return B$2(this,null,function*(){this.actionError.set(null);let e=yield this.state.downloadFile(t.scope,t.path);e.success||this.actionError.set(e.error??"Download failed");})}onDownloadAll(t){return B$2(this,null,function*(){this.actionError.set(null);let e=yield this.state.downloadAll(t);e.failedCount>0&&this.actionError.set(e.error??(e.failedCount===1?"A file failed to download.":`${e.failedCount} files failed to download.`));})}onDeleteRequest(t){this.pendingDelete.set(t);}onConfirmDelete(){return B$2(this,null,function*(){let t=this.pendingDelete();if(this.pendingDelete.set(null),t){let e=yield this.state.deleteFile(t.scope,t.path);e.success?this.isStillSelected(t)&&this.clearSelection():this.actionError.set(e.error??"Delete failed");}})}onCancelDelete(){this.pendingDelete.set(null);}onRetry(){this.state.refreshManifest();}onClose(){this.closeRequested.emit();}onViewerClosed(){this.clearSelection();}clearSelection(){this.selectedFile.set(null),this.selectedContent.set(null),this.contentStatus.set("loading"),this.canViewSelected.set(true);}resetSelection(){this.clearSelection(),this.actionError.set(null);}findFile(t){return (t.scope==="CASE"?this.state.caseFiles():this.state.namespaceFiles()).find(n=>n.path===t.path)}isStillSelected(t){let e=this.selectedFile();return e!==null&&e.scope===t.scope&&e.path===t.path}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=xw({type:o,selectors:[["agentos-exchange-shell"]],inputs:{active:[1,"active"]},outputs:{closeRequested:"closeRequested"},decls:4,vars:27,consts:[[1,"exchange-shell"],["role","alert",1,"exchange-shell__upload-error"],[1,"exchange-shell__drawer",3,"fileSelected","folderOpened","loadMoreRequested","uploadRequested","downloadRequested","downloadAllRequested","deleteRequested","retryRequested","viewerClosed","closeRequested","caseId","environmentActive","caseFiles","caseFolders","caseBreadcrumb","caseHasMore","caseLoadingMore","caseStatus","caseSectionVisible","canWriteCase","caseUploading","namespaceFiles","namespaceFolders","namespaceBreadcrumb","namespaceHasMore","namespaceLoadingMore","namespaceStatus","namespaceSectionVisible","canWriteNamespace","namespaceUploading","activeFile","selectedContent","contentStatus","canViewSelected"],["title","Delete file","confirmLabel","Delete","cancelLabel","Cancel",3,"confirmed","cancelled","open","message"]],template:function(e,n){e&1&&(ws$1(0,"div",0),Jw(1,fr,2,1,"p",1),ws$1(2,"agentos-exchange-drawer",2),Rg("fileSelected",function(a){return n.onFileSelected(a)})("folderOpened",function(a){return n.onFolderOpened(a)})("loadMoreRequested",function(a){return n.state.loadMore(a)})("uploadRequested",function(a){return n.onUpload(a)})("downloadRequested",function(a){return n.onDownload(a)})("downloadAllRequested",function(a){return n.onDownloadAll(a)})("deleteRequested",function(a){return n.onDeleteRequest(a)})("retryRequested",function(){return n.onRetry()})("viewerClosed",function(){return n.onViewerClosed()})("closeRequested",function(){return n.onClose()}),pl$1()(),ws$1(3,"ds-confirm-dialog",3),Rg("confirmed",function(){return n.onConfirmDelete()})("cancelled",function(){return n.onCancelDelete()}),pl$1()),e&2&&(XE(),eC(n.actionError()?1:-1),XE(),bg("caseId",n.environmentCaseId())("environmentActive",n.active())("caseFiles",n.state.caseFiles())("caseFolders",n.state.caseFolders())("caseBreadcrumb",n.state.caseBreadcrumb())("caseHasMore",n.state.caseHasMore())("caseLoadingMore",n.state.caseLoadingMore())("caseStatus",n.state.caseStatus())("caseSectionVisible",n.state.caseSectionVisible())("canWriteCase",n.state.canWriteCase())("caseUploading",n.state.caseUploading())("namespaceFiles",n.state.namespaceFiles())("namespaceFolders",n.state.namespaceFolders())("namespaceBreadcrumb",n.state.namespaceBreadcrumb())("namespaceHasMore",n.state.namespaceHasMore())("namespaceLoadingMore",n.state.namespaceLoadingMore())("namespaceStatus",n.state.namespaceStatus())("namespaceSectionVisible",n.state.namespaceSectionVisible())("canWriteNamespace",n.state.canWriteNamespace())("namespaceUploading",n.state.namespaceUploading())("activeFile",n.selectedFile())("selectedContent",n.selectedContent())("contentStatus",n.contentStatus())("canViewSelected",n.canViewSelected()),XE(),bg("open",n.confirmOpen())("message",n.deleteMessage()));},dependencies:[St,Yn],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;height:100%;min-height:0}.exchange-shell[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.exchange-shell__drawer[_ngcontent-%COMP%]{flex:1;min-height:0;display:flex;flex-direction:column}.exchange-shell__upload-error[_ngcontent-%COMP%]{margin:0;padding:.5rem .75rem;font-size:.8125rem;color:var(--color-error, #ff3b30);background:var(--color-bg-hover, rgba(0, 0, 0, .04));flex-shrink:0}"]})};var kt=class o{membership=g(Q$2);userController=g(de$1);listMembers(t){return this.membership.getMembersCaseMembership(t)}listAllUsers(){return this.userController.listAllUser()}updateMembers(t,e){let n=e.map(i=>w$1({userId:i.userId},i.role!==void 0?{role:i.role}:{}));return this.membership.updateMembersCaseMembership(t,n)}static \u0275fac=function(e){return new(e||o)};static \u0275prov=x$1({token:o,factory:o.\u0275fac,providedIn:"root"})};var Cr=(o,t)=>t.userId;function br(o,t){o&1&&(ws$1(0,"p",5),GC(1,"Loading\u2026"),pl$1());}function xr(o,t){o&1&&(ws$1(0,"p",7),GC(1," You can change roles or remove existing members. Only a platform super-admin can add a new user to this case. "),pl$1());}function vr(o,t){o&1&&(ws$1(0,"p",11),GC(1,"No members yet."),pl$1());}function yr(o,t){if(o&1&&(ws$1(0,"span",23),GC(1),pl$1()),o&2){let e=gC().$implicit;XE(),Yg(e.email);}}function wr(o,t){if(o&1&&(ws$1(0,"span",24),GC(1),aT(2,"lowercase"),pl$1()),o&2){let e=gC().$implicit;XE(),Yg(uT(2,1,e.role));}}function Sr(o,t){if(o&1){let e=lC();ws$1(0,"select",25),Rg("change",function(i){If(e);let a=gC().$implicit,g=gC(3);return wf(g.setMemberRole(a.userId,i))}),ws$1(1,"option",26),GC(2,"Member"),pl$1(),ws$1(3,"option",27),GC(4,"Admin"),pl$1()(),ws$1(5,"button",28),Rg("click",function(){If(e);let i=gC().$implicit,a=gC(3);return wf(a.removeMember(i.userId))}),GC(6," \xD7 "),pl$1();}if(o&2){let e=gC().$implicit;bg("value",e.role),Tg("aria-label","Role of "+e.label),XE(5),bg("title","Remove "+e.label);}}function Er(o,t){if(o&1&&(ws$1(0,"li",20)(1,"div",21)(2,"span",22),GC(3),pl$1(),Jw(4,yr,2,1,"span",23),pl$1(),Jw(5,wr,3,3,"span",24)(6,Sr,7,3),pl$1()),o&2){let e=t.$implicit,n=gC(3);Ug("case-members__member--self",e.userId===n.currentUserId()?.id),XE(3),Yg(e.label),XE(),eC(e.email&&e.email!==e.label?4:-1),XE(),eC(e.userId===n.currentUserId()?.id?5:6);}}function Mr(o,t){if(o&1&&(ws$1(0,"ul",12),rC(1,Er,7,5,"li",19,Cr),pl$1()),o&2){let e=gC(2);XE(),oC(e.selectedMembers());}}function kr(o,t){o&1&&(ws$1(0,"p",13),GC(1,"At least one ADMIN must remain on the case."),pl$1());}function Tr(o,t){if(o&1){let e=lC();ws$1(0,"ds-autocomplete-input",29),Rg("itemSelected",function(i){If(e);let a=gC(2);return wf(a.onMemberSelected(i))}),pl$1();}if(o&2){let e=gC(2);bg("dataSource",e.memberDataSource);}}function Pr(o,t){if(o&1&&(ws$1(0,"p",15),GC(1),pl$1()),o&2){let e=gC(2);XE(),Yg(e.errorMessage());}}function Or(o,t){if(o&1){let e=lC();ws$1(0,"div",6),Jw(1,xr,2,0,"p",7),ws$1(2,"fieldset",8)(3,"legend",9),GC(4," Members "),ws$1(5,"span",10),GC(6,"ADMIN or MEMBER"),pl$1()(),Jw(7,vr,2,0,"p",11)(8,Mr,3,0,"ul",12),Jw(9,kr,2,0,"p",13),Jw(10,Tr,1,1,"ds-autocomplete-input",14),pl$1(),Jw(11,Pr,2,1,"p",15),ws$1(12,"div",16)(13,"button",17),Rg("click",function(){If(e);let i=gC();return wf(i.submit())}),GC(14," Save "),pl$1(),ws$1(15,"button",18),Rg("click",function(){If(e);let i=gC();return wf(i.cancel())}),GC(16,"Cancel"),pl$1()()();}if(o&2){let e=gC();XE(),eC(e.isSuperAdmin()?-1:1),XE(6),eC(e.selectedMembers().length===0?7:8),XE(2),eC(e.wouldLockOutAdmins()?9:-1),XE(),eC(e.isSuperAdmin()?10:-1),XE(),eC(e.errorMessage()?11:-1),XE(2),bg("disabled",e.isSubmitting()||e.wouldLockOutAdmins());}}var Tt=class o{destroyRef=g(Ce$1);memberState=g(kt);userState=g(l$3);caseId=ZB.required();closeRequested=qB();currentUserId=this.userState.currentUser;isLoading=Gi$1(false);isSubmitting=Gi$1(false);errorMessage=Gi$1(null);isSuperAdmin=Gi$1(false);selectedMembers=Gi$1([]);originalMembers=[];candidateUsers=Gi$1([]);memberDataSource=new m$2(()=>this.candidateUsers(),()=>new Set(this.selectedMembers().map(t=>t.userId)));constructor(){Hf(()=>{this.caseId(),kn(()=>this.loadData());});}loadData(){this.isLoading.set(true),this.errorMessage.set(null);let t=this.userState.currentUser();(t?br$1(t):this.userState.loadMe()).pipe(ya$1(n=>(console.error("[CaseMembers] Failed to load current user",n),br$1(null))),U$3(this.destroyRef)).subscribe(n=>{let i=n?.isAdmin===true;this.isSuperAdmin.set(i),this.loadMembersAndCandidates(i);});}loadMembersAndCandidates(t){By({members:this.memberState.listMembers(this.caseId()),allUsers:t?this.memberState.listAllUsers():br$1([])}).pipe(U$3(this.destroyRef)).subscribe({next:({members:e,allUsers:n})=>{this.applyMembers(e),this.candidateUsers.set(n),this.isLoading.set(false);},error:e=>{console.error("[CaseMembers] Failed to load case members",e),this.isLoading.set(false),this.errorMessage.set("Failed to load case members. Please try again.");}});}applyMembers(t){this.originalMembers=t.map(e=>({userId:e.id,role:e.role})),this.selectedMembers.set(t.map(e=>({userId:e.id,label:a$1(e),email:e.email,role:e.role})));}onMemberSelected(t){this.selectedMembers().some(e=>e.userId===t.id)||this.selectedMembers.update(e=>[...e,{userId:t.id,label:t.name,email:t.description,role:"MEMBER"}]);}removeMember(t){this.selectedMembers.update(e=>e.filter(n=>n.userId!==t));}setMemberRole(t,e){let i=e.target.value==="ADMIN"?"ADMIN":"MEMBER";this.selectedMembers.update(a=>a.map(g=>g.userId===t?x$2(w$1({},g),{role:i}):g));}wouldLockOutAdmins=mT(()=>!p$2(this.selectedMembers()));submit(){if(this.isSubmitting())return;if(this.wouldLockOutAdmins()){this.errorMessage.set("At least one ADMIN must remain on the case. Assign ADMIN to someone before saving.");return}this.isSubmitting.set(true),this.errorMessage.set(null);let{toUpsert:t,toRemove:e}=d$2(this.originalMembers,this.selectedMembers().map(i=>({userId:i.userId,role:i.role})));if(t.length===0&&e.length===0){this.isSubmitting.set(false),this.closeRequested.emit();return}let n=[...t.map(i=>({userId:i.userId,role:i.role})),...e.map(i=>({userId:i}))];this.memberState.updateMembers(this.caseId(),n).pipe(U$3(this.destroyRef)).subscribe({next:i=>{this.applyMembers(i),this.isSubmitting.set(false),this.closeRequested.emit();},error:i=>{this.isSubmitting.set(false),this.errorMessage.set(this.describeError(i));}});}describeError(t){return t.status===403?"You do not have permission to add a new user to this case \u2014 only a platform super-admin can add someone new. You can still change roles or remove existing members.":t.status===422?t.error?.message??"This change would leave the case without any ADMIN. Assign ADMIN to at least one member and try again.":"An unexpected error occurred while saving case members. Please try again."}cancel(){this.closeRequested.emit();}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=xw({type:o,selectors:[["agentos-case-members"]],inputs:{caseId:[1,"caseId"]},outputs:{closeRequested:"closeRequested"},decls:9,vars:1,consts:[[1,"case-members"],[1,"case-members__header"],[1,"case-members__title"],["type","button","title","Close",1,"case-members__close",3,"click"],["aria-hidden","true",1,"material-icons"],[1,"case-members__loading"],[1,"case-members__body"],[1,"case-members__hint"],[1,"case-members__section"],[1,"case-members__label"],[1,"case-members__label-hint"],[1,"case-members__empty-hint"],[1,"case-members__members"],[1,"case-members__warning"],["placeholder","Add a member\u2026",3,"dataSource"],[1,"case-members__error"],[1,"case-members__actions"],["type","button",1,"case-members__btn","case-members__btn--primary",3,"click","disabled"],["type","button",1,"case-members__btn",3,"click"],[1,"case-members__member",3,"case-members__member--self"],[1,"case-members__member"],[1,"case-members__member-info"],[1,"case-members__member-name"],[1,"case-members__member-email"],[1,"case-members__member-role-badge"],[1,"case-members__member-role",3,"change","value"],["value","MEMBER"],["value","ADMIN"],["type","button",1,"case-members__member-remove",3,"click","title"],["placeholder","Add a member\u2026",3,"itemSelected","dataSource"]],template:function(e,n){e&1&&(ws$1(0,"div",0)(1,"header",1)(2,"h2",2),GC(3,"Share case"),pl$1(),ws$1(4,"button",3),Rg("click",function(){return n.cancel()}),ws$1(5,"span",4),GC(6,"close"),pl$1()()(),Jw(7,br,2,0,"p",5)(8,Or,17,6,"div",6),pl$1()),e&2&&(XE(7),eC(n.isLoading()?7:8));},dependencies:[Pn,Ab],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;height:100%;min-height:0}.case-members[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%}.case-members__header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:.5rem .5rem .5rem .75rem;border-bottom:1px solid var(--color-divider);flex-shrink:0}.case-members__title[_ngcontent-%COMP%]{margin:0;font-size:.875rem;font-weight:700;color:var(--color-text)}.case-members__close[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;padding:0;margin:0;font:inherit;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:28px;height:28px;border-radius:0;color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center;transition:background .12s ease,color .12s ease}.case-members__close[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover);color:var(--color-text)}.case-members__close[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:0}.case-members__close[_ngcontent-%COMP%]:disabled{opacity:.4;cursor:not-allowed}.case-members__close[_ngcontent-%COMP%] .material-icons[_ngcontent-%COMP%]{font-size:18px}.case-members__body[_ngcontent-%COMP%]{flex:1;min-height:0;overflow-y:auto;padding:.75rem;display:flex;flex-direction:column;gap:.75rem}.case-members__hint[_ngcontent-%COMP%], .case-members__loading[_ngcontent-%COMP%], .case-members__empty-hint[_ngcontent-%COMP%]{margin:0;font-size:.8125rem;color:var(--color-text-secondary);line-height:1.4}.case-members__section[_ngcontent-%COMP%]{border:1px solid var(--color-divider);padding:.75rem;display:flex;flex-direction:column;gap:.5rem;margin:0}.case-members__label[_ngcontent-%COMP%]{font-size:.6875rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-secondary)}.case-members__label-hint[_ngcontent-%COMP%]{font-weight:400;letter-spacing:0;text-transform:none}.case-members__members[_ngcontent-%COMP%]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.25rem}.case-members__member[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem;background:var(--color-surface-hover);border:1px solid var(--color-divider)}.case-members__member--self[_ngcontent-%COMP%]{border-color:var(--color-accent-300)}.case-members__member-info[_ngcontent-%COMP%]{display:flex;flex-direction:column;flex:1;min-width:0}.case-members__member-name[_ngcontent-%COMP%]{display:block;font-size:.875rem;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.case-members__member-email[_ngcontent-%COMP%]{display:block;font-size:.75rem;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.case-members__member-role[_ngcontent-%COMP%]{flex-shrink:0;padding:.2rem .4rem;border:1px solid var(--color-divider);background:transparent;color:var(--color-text);font-size:.8rem;font-family:inherit;cursor:pointer}.case-members__member-role[_ngcontent-%COMP%]:focus{outline:none;border-color:var(--color-accent)}.case-members__member-role-badge[_ngcontent-%COMP%]{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);padding:.1rem .4rem;border:1px solid var(--color-divider)}.case-members__member-remove[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;padding:0;margin:0;font:inherit;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;color:var(--color-neutral-500);transition:color .12s,background .12s}.case-members__member-remove[_ngcontent-%COMP%]:hover{color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 14%,transparent)}.case-members__member-remove--active[_ngcontent-%COMP%]{color:var(--color-accent)}.case-members__member-remove--active[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{fill:currentColor}.case-members__member-remove--danger[_ngcontent-%COMP%]:hover{color:var(--red);background:color-mix(in srgb,var(--red) 12%,transparent)}.case-members__member-remove--confirm-yes[_ngcontent-%COMP%]{width:auto;padding:0 8px;gap:4px;font-family:var(--font-heading);font-weight:600;font-size:11px;color:#fff;background:var(--red)}.case-members__member-remove--confirm-yes[_ngcontent-%COMP%]:hover{background:var(--red-deep);color:#fff}.case-members__member-remove[_ngcontent-%COMP%]:hover{color:var(--red);background:color-mix(in srgb,var(--red) 12%,transparent)}.case-members__warning[_ngcontent-%COMP%]{margin:0;font-size:.8125rem;color:var(--color-warning)}.case-members__error[_ngcontent-%COMP%]{margin:0;font-size:.8125rem;color:var(--color-error)}.case-members__actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}.case-members__btn[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;padding:0;margin:0;font:inherit;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;padding:.4rem .9rem;border:1px solid var(--color-divider);font-size:.875rem;font-family:var(--font-heading);color:var(--color-text);transition:background .15s ease}.case-members__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-bg-hover)}.case-members__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.case-members__btn--primary[_ngcontent-%COMP%]{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-inverse)}.case-members__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){opacity:.9}"]})};var Pt=10,Dr=/\bnamespace\b/i;function et(o,t){return Dr.test(o)&&t?"NAMESPACE":"CASE"}function Ot(o,t){return et(o,t)==="NAMESPACE"}function Do(o){let t=a=>o.filter(g=>g.uploadedScope===a).map(g=>g.file.name),e=[],n=t("CASE"),i=t("NAMESPACE");return n.length>0&&e.push(`[Files attached to the case exchange: ${n.join(", ")}]`),i.length>0&&e.push(`[Files attached to the namespace exchange: ${i.join(", ")}]`),e.join(`
|
|
4
|
+
`)}function Io(o,t=32){if(o.length<=t)return o;let e=t-1,n=Math.ceil(e/2),i=Math.floor(e/2);return `${o.slice(0,n)}\u2026${o.slice(o.length-i)}`}function Ro(o){let t=o.lastIndexOf(".");return t<=0||t===o.length-1?"FILE":o.slice(t+1).toUpperCase()}var ke=class o{exchangeState=g(de);nextId=0;generation=0;dragDepth=0;attachments=Gi$1([]);limitError=Gi$1(null);isDragOver=Gi$1(false);isUploading=Gi$1(false);hasAttachments=mT(()=>this.attachments().length>0);addFiles(t){if(this.isUploading())return;let e=Array.from(t);if(e.length===0)return;let n=this.attachments(),i=Pt-n.length;this.limitError.set(e.length>i?`You can attach up to ${Pt} files per message.`:null);let a=e.slice(0,Math.max(0,i)).map(g=>({id:`attachment-${this.nextId++}`,file:g,status:"pending"}));a.length>0&&this.attachments.set([...n,...a]);}remove(t){this.isUploading()||(this.attachments.update(e=>e.filter(n=>n.id!==t)),this.attachments().length<Pt&&this.limitError.set(null));}reset(){this.generation++,this.attachments.set([]),this.limitError.set(null),this.isDragOver.set(false),this.isUploading.set(false),this.dragDepth=0;}onDragEnter(t){this.holdsFiles(t)&&(t.preventDefault(),this.dragDepth++,this.isDragOver.set(true));}onDragOver(t){this.holdsFiles(t)&&(t.preventDefault(),t.dataTransfer&&(t.dataTransfer.dropEffect="copy"));}onDragLeave(){this.dragDepth>0&&this.dragDepth--,this.dragDepth===0&&this.isDragOver.set(false);}onDrop(t){if(!this.holdsFiles(t))return;t.preventDefault(),this.dragDepth=0,this.isDragOver.set(false);let e=t.dataTransfer?.files;e&&e.length>0&&this.addFiles(e);}uploadAllAndBuildMention(t){return B$2(this,null,function*(){let e=this.generation;this.isUploading.set(true);try{let n=!1;for(let i of this.attachments()){if(this.generation!==e)return null;if(i.status==="uploaded")continue;this.patch(i.id,{status:"uploading",error:void 0});let a=yield this.exchangeState.uploadFile(t,i.file);if(this.generation!==e)return null;a.success?this.patch(i.id,{status:"uploaded",uploadedScope:t}):(n=!0,this.patch(i.id,{status:"error",error:a.error??"Upload failed"}));}return n||this.generation!==e?null:Do(this.attachments())}finally{this.generation===e&&this.isUploading.set(false);}})}holdsFiles(t){return t.dataTransfer?.types.includes("Files")??false}patch(t,e){this.attachments.update(n=>n.map(i=>i.id===t?w$1(w$1({},i),e):i));}static \u0275fac=function(e){return new(e||o)};static \u0275prov=x$1({token:o,factory:o.\u0275fac})};var Ir=["fileInput"],Rr=(o,t)=>t.id;function Vr(o,t){o&1&&(ws$1(0,"span",10),GC(1,"namespace"),pl$1());}function Nr(o,t){if(o&1&&(ws$1(0,"span",12),GC(1),pl$1()),o&2){let e=gC().$implicit;XE(),Yg(e.error);}}function Ar(o,t){if(o&1){let e=lC();ws$1(0,"div",6)(1,"span",7),GC(2),pl$1(),ws$1(3,"span",8),GC(4),pl$1(),ws$1(5,"span",9),GC(6),pl$1(),Jw(7,Vr,2,0,"span",10),ws$1(8,"ds-icon-button",11),Rg("action",function(){let i=If(e).$implicit,a=gC(3);return wf(a.removed.emit(i.id))}),pl$1(),Jw(9,Nr,2,1,"span",12),pl$1();}if(o&2){let e=t.$implicit,n=gC(3);Ug("composer-attachments__chip--error",e.status==="error")("composer-attachments__chip--uploaded",e.status==="uploaded"),XE(),Ug("composer-attachments__icon--spinning",e.status==="uploading"),XE(),Yg(n.chipIcon(e)),XE(),bg("title",e.file.name),XE(),Yg(n.middleTruncate(e.file.name)),XE(2),Yg(n.kindLabel(e.file.name)),XE(),eC(n.showNamespaceBadge(e)?7:-1),XE(),bg("title",n.removeTitle(e))("disabled",n.disabled()),XE(),eC(e.status==="error"&&e.error?9:-1);}}function Fr(o,t){if(o&1&&(ws$1(0,"div",3),rC(1,Ar,10,14,"div",5,Rr),pl$1()),o&2){let e=gC(2);XE(),oC(e.attachments());}}function qr(o,t){o&1&&(ws$1(0,"p",4),GC(1),pl$1()),o&2&&(XE(),Yg(t));}function Lr(o,t){if(o&1&&(ws$1(0,"div",1),Jw(1,Fr,3,0,"div",3),Jw(2,qr,2,1,"p",4),pl$1()),o&2){let e,n=gC();XE(),eC(n.attachments().length>0?1:-1),XE(),eC((e=n.limitError())?2:-1,e);}}var Ge=class o{attachments=ZB.required();namespaceBadge=ZB(false);limitError=ZB(null);disabled=ZB(false);removed=qB();filesSelected=qB();fileInput=QB("fileInput");kindLabel=Ro;middleTruncate=Io;chipIcon(t){return t.status==="uploading"?"progress_activity":t.status==="uploaded"?"check_circle":xt(t.file.name)}showNamespaceBadge(t){return t.uploadedScope?t.uploadedScope==="NAMESPACE":this.namespaceBadge()}removeTitle(t){return t.status==="uploaded"?`Remove ${t.file.name} from the list (the uploaded file stays in the exchange)`:`Remove ${t.file.name}`}openPicker(){this.fileInput()?.nativeElement.click();}onFileInputChange(t){let e=t.target,n=e.files?Array.from(e.files):[];n.length>0&&this.filesSelected.emit(n),e.value="";}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=xw({type:o,selectors:[["agentos-composer-attachments"]],viewQuery:function(e,n){e&1&&jg(n.fileInput,Ir,5),e&2&&wC();},inputs:{attachments:[1,"attachments"],namespaceBadge:[1,"namespaceBadge"],limitError:[1,"limitError"],disabled:[1,"disabled"]},outputs:{removed:"removed",filesSelected:"filesSelected"},decls:3,vars:1,consts:[["fileInput",""],[1,"composer-attachments"],["type","file","multiple","","aria-hidden","true","tabindex","-1",1,"composer-attachments__file-input",3,"change"],[1,"composer-attachments__chips"],["role","alert",1,"composer-attachments__limit"],[1,"composer-attachments__chip",3,"composer-attachments__chip--error","composer-attachments__chip--uploaded"],[1,"composer-attachments__chip"],["aria-hidden","true",1,"composer-attachments__icon","material-icons"],[1,"composer-attachments__name",3,"title"],[1,"composer-attachments__kind"],[1,"composer-attachments__badge"],["icon","close",3,"action","title","disabled"],["role","alert",1,"composer-attachments__error"]],template:function(e,n){e&1&&(Jw(0,Lr,3,2,"div",1),ws$1(1,"input",2,0),Rg("change",function(a){return n.onFileInputChange(a)}),pl$1()),e&2&&eC(n.attachments().length>0||n.limitError()?0:-1);},dependencies:[Se$1],styles:[".composer-attachments[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem;width:100%}.composer-attachments__chips[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.5rem}.composer-attachments__chip[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;padding:.375rem .375rem .375rem .625rem;border:1px solid var(--color-border, rgba(0, 0, 0, .12));border-radius:12px;background:var(--color-surface-secondary, rgba(0, 0, 0, .04));font-size:.8125rem}.composer-attachments__chip--error[_ngcontent-%COMP%]{border-color:var(--color-error, #d13438)}.composer-attachments__chip--uploaded[_ngcontent-%COMP%]{border-color:var(--color-success, #2e7d32)}.composer-attachments__icon[_ngcontent-%COMP%]{font-size:1.25rem;color:var(--color-text-secondary, rgba(0, 0, 0, .6))}.composer-attachments__icon--spinning[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_composer-attachments-spin 1s linear infinite}.composer-attachments__name[_ngcontent-%COMP%]{font-weight:500}.composer-attachments__kind[_ngcontent-%COMP%]{font-size:.6875rem;letter-spacing:.04em;color:var(--color-text-secondary, rgba(0, 0, 0, .6))}.composer-attachments__badge[_ngcontent-%COMP%]{padding:.0625rem .375rem;border-radius:999px;background:var(--color-primary, #0071e3);color:var(--color-text-inverse, #fff);font-size:.6875rem;font-weight:600}.composer-attachments__error[_ngcontent-%COMP%]{flex-basis:100%;font-size:.75rem;color:var(--color-error, #d13438)}.composer-attachments__limit[_ngcontent-%COMP%]{margin:0;font-size:.75rem;color:var(--color-error, #d13438)}.composer-attachments__file-input[_ngcontent-%COMP%]{display:none}@keyframes _ngcontent-%COMP%_composer-attachments-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}"]})};var zr=["composerInput"],Wr=["messagesContainer"],Ur=(o,t)=>t.phaseIndex;function $r(o,t){if(o&1){let e=lC();ws$1(0,"agentos-case-members",26),Rg("closeRequested",function(){If(e);let i=gC();return wf(i.exchangeOpen.set(false))}),pl$1();}if(o&2){let e=gC();bg("caseId",e.caseId);}}function Br(o,t){if(o&1){let e=lC();ws$1(0,"agentos-exchange-shell",27),Rg("closeRequested",function(){If(e);let i=gC();return wf(i.exchangeOpen.set(false))}),pl$1();}if(o&2){let e=gC();bg("active",e.exchangeOpen());}}function Hr(o,t){if(o&1){let e=lC();ws$1(0,"div",9)(1,"input",28),Rg("input",function(i){If(e);let a=gC();return wf(a.draftTitle.set(i.target.value))})("keydown",function(i){If(e);let a=gC();return wf(a.onEditKeydown(i))}),pl$1(),ws$1(2,"input",29),Rg("input",function(i){If(e);let a=gC();return wf(a.draftThreshold.set(i.target.value))})("keydown",function(i){If(e);let a=gC();return wf(a.onEditKeydown(i))}),pl$1(),ws$1(3,"button",30),Rg("click",function(){If(e);let i=gC();return wf(i.commitEdit())}),ws$1(4,"span",31),GC(5,"check"),pl$1()(),ws$1(6,"button",32),Rg("click",function(){If(e);let i=gC();return wf(i.cancelEdit())}),ws$1(7,"span",31),GC(8,"close"),pl$1()()();}if(o&2){let e=gC();XE(),bg("value",e.draftTitle()),XE(),bg("value",e.draftThreshold());}}function Gr(o,t){if(o&1&&(ws$1(0,"span",37),GC(1),pl$1()),o&2){let e=gC(2);XE(),vl$1(" max ",e.activeCase().runCostThreshold," ");}}function jr(o,t){if(o&1&&(ws$1(0,"span",40),GC(1),pl$1()),o&2){let e=gC(2);XE(),Yg(e.exchangeFileCount());}}function Qr(o,t){if(o&1){let e=lC();ws$1(0,"ds-icon-button",44),Rg("action",function(){If(e);let i=gC(2);return wf(i.starToggled.emit({id:i.caseId,starred:!i.activeCase()?.favorite}))}),pl$1(),ws$1(1,"ds-icon-button",45),Rg("action",function(){If(e);let i=gC(2);return wf(i.confirmingDelete.set(true))}),pl$1();}if(o&2){let e=gC(2);Ug("case-chat__header-star--active",e.activeCase()?.favorite),bg("icon",e.activeCase()?.favorite?"star":"star_border")("title",e.activeCase()?.favorite?"Remove from favorites":"Add to favorites");}}function Kr(o,t){if(o&1){let e=lC();ws$1(0,"span",43)(1,"span",46),GC(2,"Delete this case?"),pl$1(),ws$1(3,"button",47),Rg("click",function(){If(e);let i=gC(2);return i.deleteRequested.emit(i.caseId),wf(i.confirmingDelete.set(false))}),ws$1(4,"span",31),GC(5,"check"),pl$1(),GC(6," Delete "),pl$1(),ws$1(7,"button",48),Rg("click",function(){If(e);let i=gC(2);return wf(i.confirmingDelete.set(false))}),ws$1(8,"span",31),GC(9,"close"),pl$1()()();}}function Yr(o,t){if(o&1){let e=lC();ws$1(0,"div",33),Sg(1,"agentos-case-status-glyph",34),ws$1(2,"button",35),Rg("click",function(){If(e);let i=gC();return wf(i.startEdit())}),GC(3),pl$1(),ws$1(4,"span",36),GC(5),pl$1(),Jw(6,Gr,2,1,"span",37),pl$1(),ws$1(7,"div",38)(8,"ds-icon-button",39),Rg("action",function(){If(e);let i=gC();return wf(i.openFilesPanel())}),pl$1(),Jw(9,jr,2,1,"span",40),pl$1(),ws$1(10,"ds-icon-button",41),Rg("action",function(){If(e);let i=gC();return wf(i.openMembersPanel())}),pl$1(),Sg(11,"span",42),Jw(12,Qr,2,4)(13,Kr,10,0,"span",43);}if(o&2){let e=gC();XE(),bg("status",e.caseStatus())("size",16),XE(2),vl$1(" ",e.activeCase()?.title??""," "),XE(),Ug("case-chat__header-badge--running",e.caseStatus()===e.CaseStatusEnum.RUNNING)("case-chat__header-badge--error",e.caseStatus()===e.CaseStatusEnum.ERROR)("case-chat__header-badge--pending",e.caseStatus()===e.CaseStatusEnum.PENDING)("case-chat__header-badge--killed",e.caseStatus()===e.CaseStatusEnum.KILLED),XE(),Yg(e.caseStatus().toLowerCase()),XE(),eC(e.activeCase()?.runCostThreshold!==null&&e.activeCase()?.runCostThreshold!==void 0?6:-1),XE(2),bg("title","Files ("+e.exchangeFileCount()+")"),XE(),eC(e.exchangeFileCount()>0&&!e.exchangeOpen()?9:-1),XE(3),eC(e.confirmingDelete()?13:12);}}function Jr(o,t){if(o&1&&Sg(0,"agentos-case-usage",10),o&2){let e=gC();bg("caseId",e.caseId)("canWrite",e.canAttach())("running",e.isRunning()||e.caseStatus()==="RUNNING");}}function Xr(o,t){o&1&&(ws$1(0,"div",12)(1,"span",49),GC(2,"upload_file"),pl$1(),ws$1(3,"span"),GC(4,"Drop files to attach"),pl$1()());}function Zr(o,t){o&1&&(ws$1(0,"div",14)(1,"p"),GC(2,"No messages yet."),pl$1()());}function es(o,t){o&1&&(ws$1(0,"span",64),GC(1),pl$1()),o&2&&(XE(),vl$1("(",t,")"));}function ts(o,t){if(o&1&&(ws$1(0,"span",57),GC(1),Jw(2,es,2,1,"span",64),pl$1()),o&2){let e,n=gC(2).$implicit,i=gC(2);XE(),vl$1(" ",n.event.actor.role==="USER"?"You":n.event.actor.displayName||"Agent"," "),XE(),eC((e=i.agentModelAttribution(n.event))?2:-1,e);}}function ns(o,t){if(o&1&&(ws$1(0,"div",58)(1,"span",65),GC(2,"session context"),pl$1(),ws$1(3,"pre",66),GC(4),aT(5,"json"),pl$1()()),o&2){let e=gC(2).$implicit;XE(4),Yg(uT(5,1,e.event.sessionContext));}}function os(o,t){if(o&1&&Sg(0,"div",60),o&2){let e=gC(2).$implicit;bg("innerHTML",e.html,aE);}}function is(o,t){if(o&1&&Sg(0,"div",61),o&2){let e=gC(2).$implicit;bg("innerHTML",e.html,aE);}}function as(o,t){if(o&1&&(ws$1(0,"time",63),GC(1),pl$1()),o&2){let e=gC(2).$implicit,n=gC(2);bg("title",n.formatMessageTimestampTitle(e.event.timestamp)),Tg("datetime",e.event.timestamp),XE(),Yg(n.formatMessageTime(e.event.timestamp));}}function rs(o,t){if(o&1&&(ws$1(0,"div",56),Jw(1,ts,3,2,"span",57),Jw(2,ns,6,3,"div",58),ws$1(3,"div",59),Jw(4,os,1,1,"div",60)(5,is,1,1,"div",61),Sg(6,"ds-copy-button",62),Jw(7,as,2,3,"time",63),pl$1()()),o&2){let e=gC().$implicit,n=gC(2);Ug("case-chat__turn--user",e.event.actor.role==="USER")("case-chat__turn--agent",e.event.actor.role==="AGENT"),XE(),eC(e.isFirstInGroup?1:-1),XE(),eC(n.showTechnical()&&e.event.sessionContext?2:-1),XE(2),eC(e.event.actor.role==="USER"?4:5),XE(2),bg("text",n.messageText(e)),XE(),eC(e.isLastInGroup?7:-1);}}function ss(o,t){if(o&1&&(ws$1(0,"div",51)(1,"span",57),GC(2),pl$1(),Sg(3,"div",61),pl$1()),o&2){let e=gC(3);XE(2),Yg(e.agentDisplayName()),XE(),bg("innerHTML",e.streamingHtml(),aE);}}function ls(o,t){if(o&1&&(ws$1(0,"span",69),GC(1),pl$1()),o&2){let e=gC(2).$implicit;XE(),Yg(e.notice.detail);}}function cs(o,t){if(o&1&&(ws$1(0,"div",67)(1,"span",68),GC(2),pl$1(),Jw(3,ls,2,1,"span",69),pl$1()),o&2){let e=gC().$implicit;Ug("case-chat__execution-notice--warning",e.notice.severity==="warning")("case-chat__execution-notice--error",e.notice.severity==="error"||e.notice.severity==="terminal"),XE(2),Yg(e.notice.title),XE(),eC(e.notice.detail?3:-1);}}function ds(o,t){if(o&1&&(ws$1(0,"pre",71),GC(1),pl$1()),o&2){let e=gC(2).$implicit;XE(),Yg(e.item.detail);}}function ms(o,t){if(o&1&&(ws$1(0,"details",53)(1,"summary",70),GC(2),pl$1(),Jw(3,ds,2,1,"pre",71),pl$1()),o&2){let e=gC().$implicit;XE(2),vl$1("\u2699 System log \xB7 ",e.item.label),XE(),eC(e.item.detail?3:-1);}}function ps(o,t){if(o&1){let e=lC();ws$1(0,"agentos-question-panel",74),Rg("answered",function(i){If(e);let a=gC(2).$implicit,g=gC(2);return wf(g.onQuestionAnswered(a.event,i))})("cancelled",function(){If(e);let i=gC(4);return wf(i.onQuestionCancelled())}),pl$1();}if(o&2){let e=gC(2).$implicit;bg("questionEvent",e.event);}}function _s(o,t){if(o&1&&(ws$1(0,"div",73)(1,"span",75),GC(2,"\u2705 Question answered"),pl$1(),ws$1(3,"span",76),GC(4),pl$1()()),o&2){let e=gC(2).$implicit;XE(4),Yg(e.event.question);}}function us(o,t){if(o&1&&Jw(0,ps,1,1,"agentos-question-panel",72)(1,_s,5,1,"div",73),o&2){let e=gC().$implicit,n=gC(2);eC(!e.answered&&(e.event.questionType!=="OAUTH_AUTHORIZE"||n.oauthPendingQuestion()?.id===e.event.id)?0:e.answered?1:-1);}}function gs(o,t){if(o&1&&Sg(0,"agentos-delegation-card",54),o&2){let e=gC().$implicit,n=gC(2);bg("delegation",e.delegation)("namespaceId",n.namespaceId);}}function hs(o,t){o&1&&GC(0," \u23F3 ");}function fs(o,t){o&1&&GC(0," \u2705 ");}function Cs(o,t){o&1&&GC(0," \u274C ");}function bs(o,t){o&1&&GC(0," Running ");}function xs(o,t){o&1&&GC(0," Completed ");}function vs(o,t){o&1&&GC(0," Failed ");}function ys(o,t){if(o&1&&(ws$1(0,"time",82),GC(1),pl$1()),o&2){let e=gC(2).$implicit,n=gC(2);bg("title",n.formatMessageTimestampTitle(e.call.timestamp)),Tg("datetime",e.call.timestamp),XE(),Yg(n.formatMessageTime(e.call.timestamp));}}function ws(o,t){if(o&1&&(ws$1(0,"div",96)(1,"span",97),GC(2,"Enrichment content"),pl$1(),ws$1(3,"pre"),GC(4),pl$1()()),o&2){let e=gC().$implicit;XE(4),Yg(e.enrichmentContent);}}function Ss(o,t){if(o&1&&(ws$1(0,"div",92)(1,"div",93)(2,"span",94),GC(3),pl$1(),ws$1(4,"span",95),GC(5),pl$1()(),ws$1(6,"div",96)(7,"span",97),GC(8,"Prompt"),pl$1(),ws$1(9,"pre"),GC(10),pl$1()(),ws$1(11,"div",96)(12,"span",97),GC(13,"LLM output"),pl$1(),ws$1(14,"pre"),GC(15),pl$1()(),Jw(16,ws,5,1,"div",96),pl$1()),o&2){let e=t.$implicit;Ug("case-chat__enrichment-phase--failed",!e.success),XE(3),vl$1("Phase ",e.phaseIndex),XE(2),Yg(e.success?"\u2705":"\u274C"),XE(5),Yg(e.prompt),XE(5),Yg(e.llmOutput),XE(),eC(e.enrichmentContent?16:-1);}}function Es(o,t){if(o&1&&rC(0,Ss,17,7,"div",91,Ur),o&2){let e=gC(4).$implicit;oC(e.call.enrichmentPhases);}}function Ms(o,t){o&1&&(ws$1(0,"span",90),GC(1,"No enrichment trace was provided."),pl$1());}function ks(o,t){if(o&1&&(ws$1(0,"div",85)(1,"span",87),GC(2,"Enrichment phases"),pl$1(),Jw(3,Es,2,0)(4,Ms,2,0,"span",90),pl$1()),o&2){let e=gC(3).$implicit;XE(3),eC(e.call.enrichmentPhases?.length?3:4);}}function Ts(o,t){o&1&&GC(0," \xB7 Text ");}function Ps(o,t){if(o&1&&(ws$1(0,"div",86)(1,"span",87),GC(2," Arguments "),Jw(3,Ts,1,0),pl$1(),ws$1(4,"pre"),GC(5),pl$1()()),o&2){let e=gC(3).$implicit,n=gC(2);XE(3),eC(n.isStructuredPayload(e.call.args)?-1:3),XE(),Ug("case-chat__tool-call-code--text",!n.isStructuredPayload(e.call.args)),XE(),Yg(t);}}function Os(o,t){o&1&&(ws$1(0,"div",86)(1,"span",87),GC(2,"Duration"),pl$1(),ws$1(3,"span"),GC(4),pl$1()()),o&2&&(XE(4),Yg(t));}function Ds(o,t){o&1&&GC(0," \xB7 Text ");}function Is(o,t){if(o&1&&(ws$1(0,"pre"),GC(1),pl$1()),o&2){let e=gC(3).$implicit,n=gC(2);Ug("case-chat__tool-call-code--text",!n.isToolOutputStructured(e.call)),XE(),Yg(t);}}function Rs(o,t){o&1&&(ws$1(0,"span",89),GC(1,"Running\u2026"),pl$1());}function Vs(o,t){o&1&&(ws$1(0,"span",90),GC(1,"No output"),pl$1());}function Ns(o,t){o&1&&GC(0," \xB7 Text ");}function As(o,t){if(o&1&&(ws$1(0,"div",86)(1,"span",87),GC(2," Metadata "),Jw(3,Ns,1,0),pl$1(),ws$1(4,"pre"),GC(5),pl$1()()),o&2){let e=gC(3).$implicit,n=gC(2);XE(3),eC(n.isToolMetadataStructured(e.call)?-1:3),XE(),Ug("case-chat__tool-call-code--text",!n.isToolMetadataStructured(e.call)),XE(),Yg(t);}}function Fs(o,t){if(o&1&&(ws$1(0,"div",84),Jw(1,ks,5,1,"div",85),Jw(2,Ps,6,4,"div",86),Jw(3,Os,5,1,"div",86),ws$1(4,"div",86)(5,"span",87),GC(6),Jw(7,Ds,1,0),pl$1(),Jw(8,Is,2,3,"pre",88)(9,Rs,2,0,"span",89)(10,Vs,2,0,"span",90),pl$1(),Jw(11,As,6,4,"div",86),pl$1()),o&2){let e,n,i,a,g=gC(2).$implicit,w=gC(2);XE(),eC(w.showTechnical()?1:-1),XE(),eC((e=w.formatToolArguments(g.call.args))?2:-1,e),XE(),eC((n=w.showTechnical()&&w.formatToolDuration(g.call))?3:-1,n),XE(3),vl$1(" ",g.call.response?.success===false?"Error":"Output"," "),XE(),eC(w.isToolOutputStructured(g.call)?-1:7),XE(),eC((i=w.extractToolOutput(g.call))?8:g.call.response?10:9,i),XE(3),eC((a=w.showTechnical()&&w.formatToolMetadata(g.call))?11:-1,a);}}function qs(o,t){if(o&1){let e=lC();ws$1(0,"div",77)(1,"button",78),Rg("click",function(){If(e);let i=gC().$implicit,a=gC(2);return wf(a.toggleToolCall(i.call.requestId))}),ws$1(2,"span",79),Jw(3,hs,1,0)(4,fs,1,0)(5,Cs,1,0),pl$1(),ws$1(6,"span",80),GC(7),pl$1(),ws$1(8,"span",81),Jw(9,bs,1,0)(10,xs,1,0)(11,vs,1,0),pl$1(),Jw(12,ys,2,3,"time",82),ws$1(13,"span",83),GC(14),pl$1()(),Jw(15,Fs,12,7,"div",84),pl$1();}if(o&2){let e=gC().$implicit,n=gC(2);Ug("case-chat__tool-call--pending",!e.call.response)("case-chat__tool-call--success",e.call.response?.success===true)("case-chat__tool-call--error",e.call.response?.success===false),XE(),Tg("aria-expanded",n.isToolCallExpanded(e.call.requestId)),XE(2),eC(e.call.response?e.call.response.success?4:5:3),XE(4),Yg(e.call.toolName),XE(2),eC(e.call.response?e.call.response.success?10:11:9),XE(3),eC(e.call.timestamp?12:-1),XE(2),Yg(n.isToolCallExpanded(e.call.requestId)?"\u25BC":"\u25B6"),XE(),eC(n.isToolCallExpanded(e.call.requestId)?15:-1);}}function Ls(o,t){if(o&1&&Jw(0,rs,8,9,"div",50)(1,ss,4,2,"div",51)(2,cs,4,6,"div",52)(3,ms,4,2,"details",53)(4,us,2,1)(5,gs,1,2,"agentos-delegation-card",54)(6,qs,16,13,"div",55),o&2){let e=t.$implicit;eC(e.kind==="message"?0:e.kind==="streaming"?1:e.kind==="notice"?2:e.kind==="technical"?3:e.kind==="question"?4:e.kind==="delegation"?5:6);}}function zs(o,t){if(o&1&&rC(0,Ls,7,1,null,null,Kw().trackTimelineItem,true),o&2){let e=gC();oC(e.timeline());}}function Ws(o,t){o&1&&(ws$1(0,"div",15),Sg(1,"span",98)(2,"span",98)(3,"span",98),pl$1());}function Us(o,t){if(o&1){let e=lC();ws$1(0,"div",16)(1,"ds-icon-button",99),Rg("action",function(){If(e);let i=gC();return wf(i.onScrollToBottomClick())}),pl$1()();}}function $s(o,t){if(o&1){let e=lC();ws$1(0,"div",18)(1,"agentos-agent-autocomplete",100),Rg("selected",function(i){If(e);let a=gC();return wf(a.onAgentSelected(i))})("dismissed",function(){If(e);let i=gC();return wf(i.closeAtAutocomplete())}),pl$1()();}if(o&2){let e=gC();XE(),bg("agents",e.autocomplete.atSuggestions());}}function Bs(o,t){if(o&1){let e=lC();ws$1(0,"div",18)(1,"agentos-prompt-autocomplete",101),Rg("selected",function(i){If(e);let a=gC();return wf(a.onPromptSelected(i))})("dismissed",function(){If(e);let i=gC();return wf(i.closeSlashAutocomplete())}),pl$1()();}if(o&2){let e=gC();XE(),bg("prompts",e.autocomplete.slashSuggestions());}}function Hs(o,t){if(o&1){let e=lC();ws$1(0,"ds-icon-button",102),Rg("action",function(){If(e),gC();let i=CC(21);return wf(i.openPicker())}),pl$1();}if(o&2){let e=gC();bg("disabled",!e.canStageFiles());}}function Gs(o,t){if(o&1){let e=lC();ws$1(0,"ds-icon-button",103),Rg("action",function(){If(e);let i=gC();return wf(i.interrupt())}),pl$1();}}function js(o,t){if(o&1){let e=lC();ws$1(0,"ds-icon-button",104),Rg("action",function(){If(e);let i=gC();return wf(i.submit())}),pl$1();}if(o&2){let e=gC();bg("title",e.preferences.composerHint())("disabled",!e.canSend);}}var Qs=64;function Vo(){let o=window.getSelection();return !!o&&o.toString().length>0}var Dt=class o{route=g(V$2);http=g(py);zone=g(G$6);destroyRef=g(Ce$1);markdown=g($e);exchangeState=g(de);config=g(y$1);preferences=g(f);caseState=g(O);oauthService=g(h$1);exchangeOpen=Gi$1(false);exchangeFileCount=this.exchangeState.fileCount;attachments=g(ke);autocomplete=g(Me);canAttach=this.exchangeState.canWriteCase;canStageFiles=mT(()=>this.canAttach()&&!this.isRunning()&&!this.isTerminal()&&!this.attachments.isUploading());toggleExchange(){this.exchangeOpen.update(t=>!t);}caseId=this.route.snapshot.queryParams.case;namespaceId=this.route.snapshot.queryParams.ns;_activeCaseId=Gi$1(this.route.snapshot.queryParams.case);agentDisplayName=mT(()=>{let t=this.events();for(let e=t.length-1;e>=0;e--){let n=t[e];if(n){if(n.type==="AgentRunningEvent"||n.type==="AgentSelectedEvent"||n.type==="AgentFinishedEvent"){let i=n.agentName;if(i&&i.trim().length>0)return i}if(n.type==="MessageEvent"&&n.actor.role==="AGENT"&&n.actor.displayName)return n.actor.displayName}}return "Assistant"});eventSource=null;composerInput=QB("composerInput");messagesContainer=QB("messagesContainer");promptAutocompleteRef=QB(ge);agentAutocompleteRef=QB(he);events=Gi$1([]);messageHtmlCache=new Map;inputValue=Gi$1("");isRunning=Gi$1(false);isTerminal=Gi$1(false);activeCase=mT(()=>this.caseState.cases().find(t=>t.id===this._activeCaseId())??null);_sseStatus=Gi$1("");caseStatus=mT(()=>this._sseStatus()||this.activeCase()?.status||"IDLE");confirmingDelete=Gi$1(false);drawerPanel=Gi$1("files");openFilesPanel(){this.drawerPanel.set("files"),this.exchangeOpen.set(true);}openMembersPanel(){this.drawerPanel.set("members"),this.exchangeOpen.set(true);}starToggled=qB();deleteRequested=qB();logsToggled=qB();updateRequested=qB();isEditing=Gi$1(false);draftTitle=Gi$1("");draftThreshold=Gi$1("");startEdit(){let t=this.activeCase();t&&(this.draftTitle.set(t.title??""),this.draftThreshold.set(t.runCostThreshold!=null?String(t.runCostThreshold):""),this.isEditing.set(true));}cancelEdit(){this.isEditing.set(false);}commitEdit(){let t=this.activeCase();if(!t?.id)return;let e=this.draftTitle().trim();if(!e)return;let n=this.draftThreshold().trim();if(n!==""){let a=parseFloat(n);if(isNaN(a)||a<0)return}let i=n===""?void 0:parseFloat(n);this.isEditing.set(false),this.updateRequested.emit({id:t.id,title:e,runCostThreshold:i});}onEditKeydown(t){t.key==="Enter"?(t.preventDefault(),this.commitEdit()):t.key==="Escape"&&(t.preventDefault(),this.cancelEdit());}showTechnicalOverride=ZB(false);showTechnical=mT(()=>this.showTechnicalOverride());showToolCallsOverride=ZB(true);showToolCalls=mT(()=>this.showToolCallsOverride());streamingText=Gi$1("");streamingHtml=mT(()=>{let t=this.streamingText();return t?this.renderMarkdown(t):""});namespaceTargeted=mT(()=>Ot(this.inputValue(),this.exchangeState.canWriteNamespace()));collapsedTools=Gi$1(new Set);isAtBottom=Gi$1(true);scrollListenerCleanup=null;constructor(){this.autocomplete.init(this.namespaceId),Hf(()=>{this.isRunning()||this.isTerminal()||queueMicrotask(()=>{this.isEditing()||Vo()||this.composerInput()?.nativeElement.focus();});}),Hf(()=>{this.inputValue(),queueMicrotask(()=>this.resizeComposer());}),Hf(()=>{this.timeline(),this.streamingText(),this.isAtBottom()&&queueMicrotask(()=>{Vo()||this.scrollToBottom();});}),ME(()=>{this.attachScrollListener(),this.resizeComposer();});}delegations=mT(()=>bo(this.events()));baseTimeline=mT(()=>{let t=this.events(),e=this.showTechnical(),n=this.showToolCalls(),i=this.delegations(),a=new Map;for(let O of t)if(O.type==="ToolRequestEvent"){let I=O,L=I.toolRequestId??O.id,X=a.get(L);a.set(L,{requestId:L,toolName:I.toolName??"unknown",args:I.args??null,timestamp:I.timestamp??X?.timestamp,response:X?.response,enrichmentPhases:I.enrichmentPhases??null});}else if(O.type==="ToolResponseEvent"){let I=O,L=I.toolRequestId??O.id,X=a.get(L);a.set(L,{requestId:L,toolName:X?.toolName??I.toolName??"unknown",args:X?.args??null,timestamp:X?.timestamp,response:I,enrichmentPhases:X?.enrichmentPhases??null});}let g=[],w=new Set,E=new Set,D=null;for(let O of t)if(O.type==="MessageEvent"){let I=O,L=I.actor.role,X=L!==D;D=L,g.push({kind:"message",event:I,html:this.messageHtmlCache.get(O.id)??"",isFirstInGroup:X,isLastInGroup:false});}else if(O.type==="ToolRequestEvent"||O.type==="ToolResponseEvent"){let I=O.toolRequestId??O.id;if(!w.has(I)){w.add(I);let L=a.get(I);if(xo(L.toolName,I,L.response,i))for(let X of i.filter(Uo=>Uo.toolRequestId===I))E.has(X.delegationId)||(E.add(X.delegationId),g.push({kind:"delegation",delegation:X}));else n&&g.push({kind:"tool",call:L});}D=null;}else if(O.type==="SubCaseStartedEvent"){let I=i.find(L=>L.delegationId===O.delegationId);I&&!E.has(I.delegationId)&&(E.add(I.delegationId),g.push({kind:"delegation",delegation:I})),D=null;}else if(O.type!=="SubCaseFinishedEvent"){if(O.type==="QuestionEvent"){let I=O,L=t.some(X=>X.type==="AnswerEvent"&&X.questionId===I.id);g.push({kind:"question",event:I,answered:L});}else if(e&&!this.isEventConsumedElsewhere(O)){let I=this.toExecutionNotice(O);I?g.push({kind:"notice",notice:I,eventId:O.id}):g.push({kind:"technical",item:this.toTechnicalItem(O),eventId:O.id}),D=null;}}for(let O=0;O<g.length;O++){let I=g[O];if(I?.kind!=="message")continue;let L=g[O+1];I.isLastInGroup=L?.kind!=="message"||L.event.actor.role!==I.event.actor.role;}return g});timeline=mT(()=>{let t=this.baseTimeline();return this.streamingText().trim().length===0?t:[...t,{kind:"streaming"}]});trackTimelineItem(t,e){switch(e.kind){case "message":return e.event.id;case "tool":return e.call.requestId;case "technical":case "notice":return e.eventId;case "streaming":return "streaming";case "question":return `question-${e.event.id}`;case "delegation":return `delegation-${e.delegation.delegationId}`}}oauthPendingQuestion=this.oauthService.pendingQuestion;onQuestionCancelled(){}onQuestionAnswered(t,e){this.isRunning.set(true),this.http.post(`${this.config.basePath}/api/cases/${this.caseId}/messages`,{content:e,answerToEventId:t.id}).subscribe({error:n=>{console.error("[CaseChat] Failed to post answer",n),this.isRunning.set(false);}});}get canSend(){return (!!this.inputValue().trim()||this.attachments.hasAttachments())&&!this.isRunning()&&!this.isTerminal()&&!this.attachments.isUploading()}ngOnInit(){this.connectSse(),this.route.queryParams.pipe(U$3(this.destroyRef)).subscribe(t=>{let e=t.case;e&&e!==this.caseId&&(this.caseId=e,this._activeCaseId.set(e),this.reinitialise());});}ngOnDestroy(){this.eventSource?.close(),this.scrollListenerCleanup?.();}attachScrollListener(){let t=this.messagesContainer()?.nativeElement;if(!t)return;let e=()=>{let n=t.scrollHeight-t.scrollTop-t.clientHeight;this.isAtBottom.set(n<=Qs);};t.addEventListener("scroll",e,{passive:true}),this.scrollListenerCleanup=()=>t.removeEventListener("scroll",e);}scrollToBottom(){let t=this.messagesContainer()?.nativeElement;t&&(t.scrollTop=t.scrollHeight);}onScrollToBottomClick(){this.isAtBottom.set(true),this.scrollToBottom();}connectSse(){let t=`${this.config.basePath}/api/cases/${this.caseId}/events`;console.log("[AgentOS SSE] connecting",{url:t,basePath:this.config.basePath,caseId:this.caseId,namespaceId:this.namespaceId,now:new Date().toISOString()}),this.eventSource=this.zone.runOutsideAngular(()=>new EventSource(t));let e=i=>{let a=performance.now(),g=i.type,w=i.data;console.log("[AgentOS SSE] frame received",{sseEventName:g,dataLength:w?.length??0,dataPreview:w?.slice(0,120),receivedAtMs:a});try{let E=JSON.parse(w);this.zone.run(()=>{if(this.events().some(I=>I.id===E.id)){E.type==="CaseStatusEvent"&&[...this.events()].reverse().find(L=>L.type==="CaseStatusEvent"||L.type==="AgentFinishedEvent")?.id===E.id&&this.isRunning.set(E.status==="RUNNING");return}let D=this.events().length;if(E.type==="MessageEvent"){let I=E,L=this.extractText(I);this.messageHtmlCache.has(E.id)||this.messageHtmlCache.set(E.id,this.renderMarkdown(L)),I.actor.role==="AGENT"&&this.caseState.notifyAgentMessageEvent(I);}this.events.update(I=>[...I,E]);let O=this.events().length;if(console.log("[AgentOS SSE] event processed",{sseEventName:g,eventType:E.type,eventId:E.id,beforeLen:D,afterLen:O,running:this.isRunning(),terminal:this.isTerminal()}),E.type==="TextChunkEvent"){let I=E.chunk;I&&this.streamingText.update(L=>L+I);return}if(E.type==="CaseUpdatedEvent"){let I=E;I.title&&this.caseState.updateCaseTitle(E.caseId,I.title);return}if(E.type==="CaseStatusEvent"){let I=E.status;this._sseStatus.set(I),this.caseState.updateCaseStatus(E.caseId,I);let L=I==="KILLED"||I==="ERROR";if(this.isTerminal.set(L),L)this.isRunning.set(!1),this.eventSource?.close(),this.eventSource=null;else {let X=I==="RUNNING";this.isRunning.set(X),X||this.streamingText.set("");}return}if(E.type==="AgentFinishedEvent"){this.isRunning.set(!1),this.streamingText.set(""),this.anyToolResponseThisTurn&&this.exchangeState.refreshManifest(),this.anyToolResponseThisTurn=!1;return}if(E.type==="ToolResponseEvent"){this.anyToolResponseThisTurn=!0;let I=ko(E.toolName);I==="case"?this.exchangeState.refreshCase():I==="namespace"&&this.exchangeState.refreshNamespace();return}if(E.type==="QuestionEvent"){let I=E;I.questionType==="OAUTH_AUTHORIZE"&&this.oauthService.setPendingQuestion(I);return}});}catch(E){console.warn("[AgentOS SSE] failed to parse event data",{sseEventName:g,error:E,dataPreview:w?.slice(0,500)});}},n=["MessageEvent","case-event","CaseStatusEvent","CaseUpdatedEvent","AgentSelectedEvent","AgentRunningEvent","AgentFinishedEvent","ThinkingEvent","TextChunkEvent","ToolRequestEvent","ToolResponseEvent","ToolSelectedEvent","PendingConfirmationEvent","ConfirmationResolvedEvent","ErrorEvent","WarnEvent","IntentionGeneratedEvent","QuestionEvent","AnswerEvent"];for(let i of n)console.log("[AgentOS SSE] addEventListener",i),this.eventSource.addEventListener(i,e);this.eventSource.onopen=()=>{console.log("[AgentOS SSE] connection open",{readyState:this.eventSource?.readyState,at:new Date().toISOString()});},this.eventSource.onerror=i=>{console.warn("[AgentOS SSE] connection error",{err:i,readyState:this.eventSource?.readyState,at:new Date().toISOString()}),this.zone.run(()=>{this.isRunning.set(false);});};}anyToolResponseThisTurn=false;onInput(t){let e=t.target;this.autocomplete.onInput(e.value,this.inputValue),this.resizeComposer(e);}resizeComposer(t=this.composerInput()?.nativeElement){t&&(t.style.height="auto",t.style.height=`${t.scrollHeight}px`);}onKeydown(t){this.autocomplete.onKeydown(t,this.promptAutocompleteRef,this.agentAutocompleteRef)||this.preferences.shouldSend(t)&&(t.preventDefault(),this.submit());}onPromptSelected(t){this.autocomplete.onPromptSelected(t,this.promptAutocompleteRef,this.composerInput,this.inputValue);}onAgentSelected(t){this.autocomplete.onAgentSelected(t,this.agentAutocompleteRef,this.composerInput,this.inputValue);}closeSlashAutocomplete(){this.autocomplete.slashSuggestions.set([]);}closeAtAutocomplete(){this.autocomplete.atSuggestions.set([]);}reinitialise(){this.eventSource?.close(),this.eventSource=null,this.events.set([]),this.messageHtmlCache.clear(),this.inputValue.set(""),this.isRunning.set(false),this.isTerminal.set(false),this._sseStatus.set(""),this.confirmingDelete.set(false),this.streamingText.set(""),this.collapsedTools.set(new Set),this.isAtBottom.set(true),this.drawerPanel.set("files"),this.isEditing.set(false),this.autocomplete.reset(),this.attachments.reset(),this.connectSse();}submitting=false;submit(){return B$2(this,null,function*(){if(this.submitting||!this.canSend)return;let t=this.inputValue().trim();if(this.attachments.hasAttachments()){this.submitting=true;try{let e=this.caseId,n=et(t,this.exchangeState.canWriteNamespace()),i=yield this.attachments.uploadAllAndBuildMention(n);if(i===null||this.caseId!==e)return;(yield this.postMessage(t?`${t}
|
|
5
|
+
|
|
6
|
+
${i}`:i))&&this.caseId===e&&(this.inputValue.set(""),this.attachments.reset());}finally{this.submitting=false;}return}this.inputValue.set(""),this.sendMessage(t);})}sendMessage(t){this.postMessage(t);}postMessage(t){return this.isRunning.set(true),this.streamingText.set(""),Ny(this.http.post(`${this.config.basePath}/api/cases/${this.caseId}/messages`,{content:t,userId:"default-user"})).then(()=>true,e=>(console.error("[CaseChat] Failed to send message",e),this.isRunning.set(false),false))}interrupt(){this.http.post(`${this.config.basePath}/api/cases/${this.caseId}/interrupt`,{}).subscribe({error:t=>console.error("[CaseChat] Failed to interrupt case",t)});}extractText(t){return t.content?.filter(e=>"content"in e).map(e=>e.content).join("")??""}formatToolArguments(t){return t===null?null:this.formatStructuredData(t)}formatToolDuration(t){let e=t.response?.durationMs;return typeof e!="number"||!Number.isFinite(e)?null:e<1e3?`${e} ms`:`${(e/1e3).toFixed(e<1e4?1:0)} s`}formatToolMetadata(t){let e=t.response?.toolMetadata;return !e||typeof e!="object"||Array.isArray(e)||Object.keys(e).length===0?null:this.formatStructuredData(e)}isToolMetadataStructured(t){return this.isStructuredPayload(t.response?.toolMetadata)}extractToolOutput(t){let e=this.extractToolOutputValue(t);return e==null?null:this.formatStructuredData(e)}isToolOutputStructured(t){return this.isStructuredPayload(this.extractToolOutputValue(t))}extractToolOutputValue(t){if(!t.response)return null;let e=t.response.output;if(e==null)return null;if(typeof e=="object"&&"content"in e){let n=e.content;if(n!=null)return n}return e}isStructuredPayload(t){if(typeof t!="string")return t!=null;try{return JSON.parse(t),!0}catch(e){return false}}unescapeStringValues(t){return typeof t=="string"?t.replace(/\\n/g,`
|
|
7
|
+
`).replace(/\\t/g," ").replace(/\\r/g,"\r"):Array.isArray(t)?t.map(e=>this.unescapeStringValues(e)):t!==null&&typeof t=="object"?Object.fromEntries(Object.entries(t).map(([e,n])=>[e,this.unescapeStringValues(n)])):t}formatStructuredData(t){if(typeof t=="string")try{let e=this.unescapeStringValues(JSON.parse(t));return JSON.stringify(e,null,2)}catch(e){return t.replace(/\\n/g,`
|
|
8
|
+
`).replace(/\\t/g," ").replace(/\\r/g,"\r")}try{return JSON.stringify(this.unescapeStringValues(t),null,2)??String(t)}catch(e){return String(t)}}formatMessageTime(t){let e=new Date(t);return Number.isNaN(e.getTime())?"":new Intl.DateTimeFormat(void 0,{hour:"2-digit",minute:"2-digit",hour12:false}).format(e)}formatMessageTimestampTitle(t){let e=new Date(t);return Number.isNaN(e.getTime())?t:e.toLocaleString()}toggleToolCall(t){this.collapsedTools.update(e=>{let n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n});}isToolCallExpanded(t){return this.collapsedTools().has(t)}toggleShowTechnical(){this.logsToggled.emit();}messageText(t){return this.extractText(t.event)}agentModelAttribution(t){if(t.actor.role!=="AGENT")return null;let e=[t.llmProvider,t.llmModel].filter(n=>!!n);return e.length?e.join(" \xB7 "):null}renderMarkdown(t){return this.markdown.render(t)}isEventConsumedElsewhere(t){switch(t.type){case "MessageEvent":case "ToolRequestEvent":case "ToolResponseEvent":case "QuestionEvent":case "AnswerEvent":case "CaseUpdatedEvent":case "TextChunkEvent":return true;default:return false}}toExecutionNotice(t){switch(t.type){case "WarnEvent":return {severity:"warning",title:"Warning",detail:t.message};case "ErrorEvent":return {severity:"error",title:"Execution error",detail:t.message};case "CaseStatusEvent":{let e=t.status;return e==="ERROR"?{severity:"terminal",title:"Execution ended with an error"}:e==="KILLED"?{severity:"terminal",title:"Execution was killed"}:null}default:return null}}toTechnicalItem(t){switch(t.type){case "CaseStatusEvent":return {label:`Status: ${t.status}`};case "AgentRunningEvent":return {label:`Agent running: ${t.agentName}`};case "AgentFinishedEvent":return {label:`Agent finished: ${t.agentName}`};case "AgentSelectedEvent":return {label:`Agent selected: ${t.agentName}`};case "IntentionGeneratedEvent":{let e=t;return {label:`Intention \u2192 ${e.toolName}`,detail:e.intention}}case "ToolSelectedEvent":return {label:`Tool selected: ${t.toolName}`};default:return {label:`Event: ${t.type??"unknown"}`,detail:this.formatStructuredData(t)}}}CaseStatusEnum=Ie$1;static \u0275fac=function(e){return new(e||o)};static \u0275cmp=xw({type:o,selectors:[["agentos-case-chat"]],viewQuery:function(e,n){e&1&&jg(n.composerInput,zr,5)(n.messagesContainer,Wr,5)(n.promptAutocompleteRef,ge,5)(n.agentAutocompleteRef,he,5),e&2&&wC(4);},inputs:{showTechnicalOverride:[1,"showTechnicalOverride"],showToolCallsOverride:[1,"showToolCallsOverride"]},outputs:{starToggled:"starToggled",deleteRequested:"deleteRequested",logsToggled:"logsToggled",updateRequested:"updateRequested"},features:[nT([ke,Me])],decls:30,vars:20,consts:[["messagesContainer",""],["attachmentsUi",""],["composerInput",""],["position","end","drawerWidth","400px",3,"openChange","open","mobileFullWidth"],["dsDrawerSide","",1,"case-chat__drawer-side"],[3,"caseId"],[3,"active"],["dsDrawerContent","",1,"case-chat__host"],[1,"case-chat__header"],[1,"case-chat__header-edit"],[3,"caseId","canWrite","running"],[1,"case-chat",3,"dragenter","dragover","dragleave","drop"],["aria-hidden","true",1,"case-chat__drop-overlay"],[1,"case-chat__messages"],[1,"case-chat__empty"],[1,"case-chat__thinking"],[1,"case-chat__scroll-anchor"],["dsBlueprint","",1,"case-chat__composer"],[1,"case-chat__autocomplete"],[3,"removed","filesSelected","attachments","namespaceBadge","limitError","disabled"],["placeholder","Reply\u2026","rows","3",1,"case-chat__input",3,"input","keydown","value","disabled"],[1,"case-chat__actions"],["icon","attach_file","variant","default","title","Attach files",3,"disabled"],[1,"case-chat__actions-hint"],["icon","stop","variant","danger","title","Interrupt"],["icon","send","variant","primary",3,"title","disabled"],[3,"closeRequested","caseId"],[3,"closeRequested","active"],["type","text","placeholder","Case title","aria-label","Case title","autocomplete","off",1,"case-chat__header-edit-title",3,"input","keydown","value"],["type","number","min","0","step","0.01","placeholder","Cost limit","aria-label","Run cost threshold",1,"case-chat__header-edit-threshold",3,"input","keydown","value"],["type","button","title","Save",1,"case-chat__header-edit-save",3,"click"],["aria-hidden","true",1,"material-icons"],["type","button","title","Cancel",1,"case-chat__header-edit-cancel",3,"click"],[1,"case-chat__header-title-group"],[3,"status","size"],["type","button","title","Edit title and cost limit",1,"case-chat__header-title",3,"click"],[1,"case-chat__header-badge"],["title","Run cost threshold",1,"case-chat__header-cost-threshold"],[1,"case-chat__header-exchange"],["icon","folder","variant","default",3,"action","title"],["aria-hidden","true",1,"case-chat__exchange-badge"],["icon","group_add","variant","default","title","Share case",3,"action"],[1,"case-chat__header-sep"],[1,"case-chat__header-confirm"],["variant","default",1,"case-chat__header-star",3,"action","icon","title"],["icon","delete","variant","danger","title","Delete case",3,"action"],[1,"case-chat__header-confirm-label"],["type","button","title","Confirm delete",1,"case-chat__header-confirm-yes",3,"click"],["type","button","title","Cancel",1,"case-chat__header-confirm-no",3,"click"],[1,"material-icons"],[1,"case-chat__turn",3,"case-chat__turn--user","case-chat__turn--agent"],[1,"case-chat__turn","case-chat__turn--agent","case-chat__turn--streaming"],["role","status",1,"case-chat__execution-notice",3,"case-chat__execution-notice--warning","case-chat__execution-notice--error"],[1,"case-chat__log"],[3,"delegation","namespaceId"],[1,"case-chat__tool-call",3,"case-chat__tool-call--pending","case-chat__tool-call--success","case-chat__tool-call--error"],[1,"case-chat__turn"],[1,"case-chat__role-label"],[1,"case-chat__session-context"],[1,"case-chat__bubble-wrapper"],["dsBlueprint","",1,"case-chat__bubble","case-chat__message-text--markdown",3,"innerHTML"],[1,"case-chat__bubble","case-chat__message-text--markdown",3,"innerHTML"],["title","Copy message",1,"case-chat__bubble-copy",3,"text"],[1,"case-chat__message-time",3,"title"],[1,"case-chat__role-model"],[1,"case-chat__session-context-label"],[1,"case-chat__session-context-body"],["role","status",1,"case-chat__execution-notice"],[1,"case-chat__execution-notice-title"],[1,"case-chat__execution-notice-detail"],[1,"case-chat__log-summary"],[1,"case-chat__log-body"],[3,"questionEvent"],[1,"case-chat__question-answered"],[3,"answered","cancelled","questionEvent"],[1,"case-chat__question-answered-label"],[1,"case-chat__question-answered-text"],[1,"case-chat__tool-call"],["type","button",1,"case-chat__tool-call-header",3,"click"],[1,"case-chat__tool-call-icon"],[1,"case-chat__tool-call-name"],[1,"case-chat__tool-call-status"],[1,"case-chat__tool-call-time",3,"title"],[1,"case-chat__tool-call-chevron"],[1,"case-chat__tool-call-output"],[1,"case-chat__tool-call-section","case-chat__enrichment-section"],[1,"case-chat__tool-call-section"],[1,"case-chat__tool-call-label"],[3,"case-chat__tool-call-code--text"],[1,"case-chat__tool-call-pending"],[1,"case-chat__tool-call-empty"],[1,"case-chat__enrichment-phase",3,"case-chat__enrichment-phase--failed"],[1,"case-chat__enrichment-phase"],[1,"case-chat__enrichment-phase-header"],[1,"case-chat__enrichment-phase-index"],[1,"case-chat__enrichment-phase-status"],[1,"case-chat__enrichment-phase-row"],[1,"case-chat__enrichment-phase-label"],[1,"thinking-dot"],["icon","keyboard_arrow_down","variant","default","title","Scroll to bottom",3,"action"],[3,"selected","dismissed","agents"],[3,"selected","dismissed","prompts"],["icon","attach_file","variant","default","title","Attach files",3,"action","disabled"],["icon","stop","variant","danger","title","Interrupt",3,"action"],["icon","send","variant","primary",3,"action","title","disabled"]],template:function(e,n){if(e&1){let i=lC();ws$1(0,"ds-drawer",3),tm("openChange",function(g){return If(i),KC(n.exchangeOpen,g)||(n.exchangeOpen=g),wf(g)}),ws$1(1,"div",4),Jw(2,$r,1,1,"agentos-case-members",5)(3,Br,1,1,"agentos-exchange-shell",6),pl$1(),ws$1(4,"div",7)(5,"header",8),Jw(6,Hr,9,2,"div",9)(7,Yr,14,16),pl$1(),Jw(8,Jr,1,3,"agentos-case-usage",10),ws$1(9,"div",11),Rg("dragenter",function(g){return n.canStageFiles()&&n.attachments.onDragEnter(g)})("dragover",function(g){return n.canStageFiles()&&n.attachments.onDragOver(g)})("dragleave",function(){return n.attachments.onDragLeave()})("drop",function(g){return n.canStageFiles()&&n.attachments.onDrop(g)}),Jw(10,Xr,5,0,"div",12),ws$1(11,"div",13,0),Jw(13,Zr,3,0,"div",14)(14,zs,2,0),Jw(15,Ws,4,0,"div",15),pl$1(),Jw(16,Us,2,0,"div",16),ws$1(17,"div",17),Jw(18,$s,2,1,"div",18),Jw(19,Bs,2,1,"div",18),ws$1(20,"agentos-composer-attachments",19,1),Rg("removed",function(g){return n.attachments.remove(g)})("filesSelected",function(g){return n.attachments.addFiles(g)}),pl$1(),ws$1(22,"textarea",20,2),Rg("input",function(g){return n.onInput(g)})("keydown",function(g){return n.onKeydown(g)}),pl$1(),ws$1(24,"div",21),Jw(25,Hs,1,1,"ds-icon-button",22),ws$1(26,"span",23),GC(27),pl$1(),Jw(28,Gs,1,0,"ds-icon-button",24)(29,js,1,2,"ds-icon-button",25),pl$1()()()()();}e&2&&(em("open",n.exchangeOpen),bg("mobileFullWidth",true),XE(2),eC(n.drawerPanel()==="members"?2:3),XE(4),eC(n.isEditing()?6:7),XE(2),eC(n.caseId?8:-1),XE(2),eC(n.attachments.isDragOver()?10:-1),XE(3),eC(n.timeline().length===0?13:14),XE(2),eC(n.isRunning()?15:-1),XE(),eC(n.isAtBottom()?-1:16),XE(2),eC(n.autocomplete.atSuggestions().length>0?18:-1),XE(),eC(n.autocomplete.slashSuggestions().length>0?19:-1),XE(),bg("attachments",n.attachments.attachments())("namespaceBadge",n.namespaceTargeted())("limitError",n.attachments.limitError())("disabled",n.attachments.isUploading()),XE(2),bg("value",n.inputValue())("disabled",n.isRunning()||n.isTerminal()||n.attachments.isUploading()),XE(3),eC(n.canAttach()?25:-1),XE(2),Yg(n.preferences.composerHint()),XE(),eC(n.isRunning()?28:29));},dependencies:[Se$1,gt,Jn$1,Mt,Tt,ge,he,Kn,Ee,Un,Ge,ht,Ct,Fb],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.case-chat__drawer-side[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%}.case-chat__host[_ngcontent-%COMP%]{position:relative;flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;height:100%;overflow:hidden}.case-chat__header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;height:54px;flex:none;padding:0 12px;border-bottom:1px solid var(--color-divider);background:var(--color-bg);min-width:0;overflow:hidden}@media(min-width:600px){.case-chat__header[_ngcontent-%COMP%]{padding:0 20px}}.case-chat__header-star--active[_ngcontent-%COMP%]{--color-text-secondary: var(--color-accent)}.case-chat__header-confirm[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px}.case-chat__header-confirm-label[_ngcontent-%COMP%]{font-size:11px;color:var(--red-deep);font-family:var(--font-heading);font-weight:600;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.case-chat__header-confirm-yes[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;margin:0;font:inherit;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 10px;border:1px solid var(--red);background:var(--red);color:#fff;font-family:var(--font-heading);font-weight:600;font-size:11px;cursor:pointer;transition:background .14s,border-color .14s}.case-chat__header-confirm-yes[_ngcontent-%COMP%] .material-icons[_ngcontent-%COMP%]{font-size:16px;line-height:1}.case-chat__header-confirm-yes[_ngcontent-%COMP%]:hover{background:var(--red-deep);border-color:var(--red-deep)}.case-chat__header-confirm-yes[_ngcontent-%COMP%]{gap:6px;padding:0 12px;font-size:12px}.case-chat__header-confirm-no[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;padding:0;margin:0;font:inherit;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:30px;height:30px;border-radius:0;color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center;transition:background .12s ease,color .12s ease}.case-chat__header-confirm-no[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover);color:var(--color-text)}.case-chat__header-confirm-no[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:0}.case-chat__header-confirm-no[_ngcontent-%COMP%]:disabled{opacity:.4;cursor:not-allowed}.case-chat__header-confirm-no[_ngcontent-%COMP%]{border:1px solid var(--color-divider);color:var(--color-neutral-600)}.case-chat__header-confirm-no[_ngcontent-%COMP%]:hover{color:var(--color-text);border-color:var(--color-neutral-500);background:var(--color-bg-hover)}.case-chat__header-title-group[_ngcontent-%COMP%]{flex:1;min-width:0;display:flex;align-items:center;gap:8px;overflow:hidden}.case-chat__header-title[_ngcontent-%COMP%]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-heading);font-weight:600;font-size:17px;color:var(--color-text);background:none;border:none;padding:0;cursor:pointer;text-align:left}.case-chat__header-title[_ngcontent-%COMP%]:hover{color:var(--color-accent)}@media(max-width:600px){.case-chat__header-title[_ngcontent-%COMP%]{font-size:14px}}.case-chat__header-badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;border:1px solid currentColor;font-size:9.5px;font-family:var(--font-heading);font-weight:600;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;padding:1px 6px;color:var(--status-idle-text)}.case-chat__header-badge--running[_ngcontent-%COMP%]{color:var(--color-accent-700)}.case-chat__header-badge--error[_ngcontent-%COMP%]{color:var(--red-deep)}.case-chat__header-badge--pending[_ngcontent-%COMP%]{color:var(--status-pending-text)}.case-chat__header-badge--killed[_ngcontent-%COMP%]{color:var(--status-killed-text)}.case-chat__header-badge[_ngcontent-%COMP%]{flex:none;padding:2px 8px;border-color:var(--color-neutral-500);color:var(--color-neutral-600)}@media(max-width:600px){.case-chat__header-badge[_ngcontent-%COMP%]{display:none}}.case-chat__header-cost-threshold[_ngcontent-%COMP%]{flex:none;font-family:var(--font-heading);font-size:11px;font-weight:600;color:var(--color-neutral-600);letter-spacing:.02em;padding:2px 7px;border:1px solid var(--color-divider);white-space:nowrap}@media(max-width:600px){.case-chat__header-cost-threshold[_ngcontent-%COMP%]{display:none}}.case-chat__header-edit[_ngcontent-%COMP%]{flex:1;display:flex;align-items:center;gap:8px;min-width:0}.case-chat__header-edit-threshold[_ngcontent-%COMP%], .case-chat__header-edit-title[_ngcontent-%COMP%]{height:30px;padding:0 8px;border:1px solid var(--color-accent);background:var(--color-surface);color:var(--color-text);font-size:13px;font-family:inherit;outline:none}.case-chat__header-edit-threshold[_ngcontent-%COMP%]:focus, .case-chat__header-edit-title[_ngcontent-%COMP%]:focus{border-color:var(--color-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-accent) 20%,transparent)}.case-chat__header-edit-title[_ngcontent-%COMP%]{flex:1;min-width:0;font-weight:600}.case-chat__header-edit-threshold[_ngcontent-%COMP%]{width:100px;flex:none}@media(max-width:600px){.case-chat__header-edit-threshold[_ngcontent-%COMP%]{display:none}}.case-chat__header-edit-cancel[_ngcontent-%COMP%], .case-chat__header-edit-save[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex:none;background:transparent;border:1px solid var(--color-divider);cursor:pointer;color:var(--color-text-secondary)}.case-chat__header-edit-cancel[_ngcontent-%COMP%] .material-icons[_ngcontent-%COMP%], .case-chat__header-edit-save[_ngcontent-%COMP%] .material-icons[_ngcontent-%COMP%]{font-size:16px}.case-chat__header-edit-cancel[_ngcontent-%COMP%]:hover, .case-chat__header-edit-save[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover)}.case-chat__header-edit-save[_ngcontent-%COMP%]{color:var(--color-success, #34c759);border-color:var(--color-success, #34c759)}.case-chat__header-edit-save[_ngcontent-%COMP%]:hover{background:color-mix(in srgb,var(--color-success, #34c759) 10%,transparent)}.case-chat__header-exchange[_ngcontent-%COMP%]{position:relative;flex:none}.case-chat__header-sep[_ngcontent-%COMP%]{width:1px;height:18px;background:var(--color-divider);flex:none}.case-chat__exchange-badge[_ngcontent-%COMP%]{position:absolute;top:-2px;right:-2px;min-width:16px;height:16px;padding:0 4px;background:var(--color-accent);color:var(--color-text-inverse);font-size:.625rem;font-weight:700;line-height:16px;text-align:center;pointer-events:none}.case-chat[_ngcontent-%COMP%]{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0;width:100%;padding:1rem;gap:1rem;position:relative;background:var(--color-bg)}@media(min-width:900px){.case-chat[_ngcontent-%COMP%]{padding:1.5rem}}.case-chat__messages[_ngcontent-%COMP%]{flex:1;min-width:0;min-height:0;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:.75rem;padding-bottom:.5rem;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--color-divider) transparent}.case-chat__empty[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;flex:1}.case-chat__empty[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:var(--color-neutral-500);font-size:.9rem;margin:0}.case-chat__turn[_ngcontent-%COMP%]{flex-shrink:0;min-width:0;display:flex;flex-direction:column;gap:6px;width:88%;max-width:88%}@media(max-width:600px){.case-chat__turn[_ngcontent-%COMP%]{max-width:100%;width:100%}}.case-chat__turn--user[_ngcontent-%COMP%]{align-self:flex-end;align-items:flex-end;width:78%;max-width:78%}@media(max-width:600px){.case-chat__turn--user[_ngcontent-%COMP%]{max-width:95%;align-self:flex-end;align-items:flex-end}}.case-chat__turn--agent[_ngcontent-%COMP%]{align-self:flex-start;align-items:flex-start}@media(max-width:600px){.case-chat__turn--agent[_ngcontent-%COMP%]{align-self:stretch;align-items:stretch}}.case-chat__turn--streaming[_ngcontent-%COMP%]{opacity:.95}.case-chat__role-label[_ngcontent-%COMP%]{font-family:var(--font-heading);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;line-height:1}.case-chat__turn--agent[_ngcontent-%COMP%] .case-chat__role-label[_ngcontent-%COMP%]{color:var(--color-accent-700)}.case-chat__turn--user[_ngcontent-%COMP%] .case-chat__role-label[_ngcontent-%COMP%]{color:var(--color-neutral-700)}.case-chat__role-label[_ngcontent-%COMP%] .case-chat__role-model[_ngcontent-%COMP%]{margin-left:.25rem;font-size:.7rem;font-weight:400;color:var(--color-text-tertiary);text-transform:none;letter-spacing:normal}.case-chat__role-model[_ngcontent-%COMP%]{font-size:8px;font-weight:400;color:var(--color-text-tertiary);text-transform:none;letter-spacing:normal}.case-chat__bubble-wrapper[_ngcontent-%COMP%]{position:relative;width:100%;min-width:0;max-width:100%}.case-chat__bubble-wrapper[_ngcontent-%COMP%]:hover .case-chat__bubble-copy[_ngcontent-%COMP%]{opacity:1}.case-chat__bubble-copy[_ngcontent-%COMP%]{position:absolute;top:6px;right:6px;opacity:0;transition:opacity .15s ease;z-index:1}.case-chat__message-time[_ngcontent-%COMP%]{position:absolute;right:10px;bottom:7px;font-family:var(--font-heading);font-size:.65rem;line-height:1;color:var(--color-text-tertiary);opacity:.8;pointer-events:auto}.case-chat__turn--user[_ngcontent-%COMP%] .case-chat__message-time[_ngcontent-%COMP%]{color:var(--color-accent-700)}.case-chat__bubble[_ngcontent-%COMP%]{padding:16px 18px 28px;font-size:16px;line-height:1.6;width:100%;min-width:0;max-width:100%;box-sizing:border-box;overflow-wrap:anywhere;background:var(--color-neutral-100);border-left:2px solid var(--color-accent-300);color:var(--color-text)}@media(max-width:600px){.case-chat__bubble[_ngcontent-%COMP%]{font-size:14px;padding:12px 14px 26px;width:100%;box-sizing:border-box}}.case-chat__turn--user[_ngcontent-%COMP%] .case-chat__bubble[_ngcontent-%COMP%]{background:var(--color-accent-200);color:var(--color-accent-800);border-left:none;padding:11px 15px 24px}@media(max-width:600px){.case-chat__turn--user[_ngcontent-%COMP%] .case-chat__bubble[_ngcontent-%COMP%]{padding:10px 12px 24px}}.case-chat__tool-call[_ngcontent-%COMP%]{flex-shrink:0;align-self:flex-start;max-width:90%;border:1px solid var(--color-divider);background:transparent;font-size:12px;overflow:hidden;transition:border-color .15s ease}.case-chat__tool-call--pending[_ngcontent-%COMP%]{border-color:var(--color-warning);opacity:.8}.case-chat__tool-call--success[_ngcontent-%COMP%]{border-color:var(--color-success)}.case-chat__tool-call--error[_ngcontent-%COMP%]{border-color:var(--color-error)}.case-chat__tool-call-header[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:7px;width:100%;padding:5px 11px;background:transparent;border:none;cursor:pointer;text-align:left;color:var(--color-accent-700);font-family:var(--font-heading);font-size:12px}.case-chat__tool-call-header[_ngcontent-%COMP%]:hover{background:color-mix(in srgb,var(--color-text) 4%,transparent)}.case-chat__tool-call-icon[_ngcontent-%COMP%]{flex-shrink:0;font-size:.75rem}.case-chat__tool-call-name[_ngcontent-%COMP%]{font-family:var(--font-heading);color:var(--color-accent-700);flex-shrink:0;font-weight:500}.case-chat__tool-call-args[_ngcontent-%COMP%]{color:var(--color-neutral-500);font-family:var(--font-heading);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.case-chat__tool-call-status[_ngcontent-%COMP%]{margin-left:auto;color:var(--color-neutral-500);font-size:.7rem}.case-chat__tool-call-time[_ngcontent-%COMP%]{flex-shrink:0;font-family:var(--font-heading);font-size:.65rem;line-height:1;color:var(--color-text-tertiary);opacity:.8;white-space:nowrap}.case-chat__tool-call-chevron[_ngcontent-%COMP%]{flex-shrink:0;font-size:.6rem;color:var(--color-neutral-500)}.case-chat__tool-call-output[_ngcontent-%COMP%]{border-top:1px solid var(--color-divider);display:flex;flex-direction:column}.case-chat__tool-call-section[_ngcontent-%COMP%]{padding:.4rem .6rem .5rem}.case-chat__tool-call-section[_ngcontent-%COMP%] + .case-chat__tool-call-section[_ngcontent-%COMP%]{border-top:1px solid var(--color-divider)}.case-chat__tool-call-section[_ngcontent-%COMP%] pre[_ngcontent-%COMP%]{margin:.25rem 0 0;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;font-family:var(--font-heading);font-size:.75rem;color:var(--color-text);max-height:300px;overflow-y:auto;overflow-x:hidden}.case-chat__tool-call-code--text[_ngcontent-%COMP%]{color:var(--color-neutral-600)}.case-chat__tool-call-label[_ngcontent-%COMP%]{display:block;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-neutral-500)}.case-chat__enrichment-section[_ngcontent-%COMP%]{background:var(--color-neutral-100)}.case-chat__enrichment-phase[_ngcontent-%COMP%]{margin-top:.35rem;border:1px solid var(--color-divider);background:var(--color-surface);overflow:hidden}.case-chat__enrichment-phase--failed[_ngcontent-%COMP%]{border-color:var(--color-error);background:color-mix(in srgb,var(--color-error) 4%,transparent)}.case-chat__enrichment-phase-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:.2rem .5rem;background:var(--color-neutral-100);border-bottom:1px solid var(--color-divider)}.case-chat__enrichment-phase-index[_ngcontent-%COMP%]{font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-neutral-500)}.case-chat__enrichment-phase-status[_ngcontent-%COMP%]{font-size:.7rem}.case-chat__enrichment-phase-row[_ngcontent-%COMP%]{padding:.25rem .5rem}.case-chat__enrichment-phase-row[_ngcontent-%COMP%] + .case-chat__enrichment-phase-row[_ngcontent-%COMP%]{border-top:1px solid var(--color-divider)}.case-chat__enrichment-phase-row[_ngcontent-%COMP%] pre[_ngcontent-%COMP%]{margin:.15rem 0 0;white-space:pre-wrap;word-break:break-all;font-family:var(--font-heading);font-size:.7rem;color:var(--color-text);max-height:150px;overflow-y:auto}.case-chat__enrichment-phase-label[_ngcontent-%COMP%]{display:block;font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-neutral-500)}.case-chat__tool-call-pending[_ngcontent-%COMP%], .case-chat__tool-call-empty[_ngcontent-%COMP%]{display:block;margin-top:.25rem;color:var(--color-neutral-500);font-style:italic;font-size:.75rem}.case-chat__execution-notice[_ngcontent-%COMP%]{flex-shrink:0;align-self:flex-start;display:flex;flex-direction:column;gap:.2rem;max-width:90%;padding:.55rem .75rem;border-left:3px solid var(--color-warning);background:color-mix(in srgb,var(--color-warning) 8%,transparent);color:var(--color-text);font-size:.8rem}.case-chat__execution-notice--error[_ngcontent-%COMP%]{border-left-color:var(--color-error);background:color-mix(in srgb,var(--color-error) 8%,transparent)}.case-chat__execution-notice-title[_ngcontent-%COMP%]{font-weight:600}.case-chat__execution-notice-detail[_ngcontent-%COMP%]{white-space:pre-wrap;word-break:break-word}.case-chat__log[_ngcontent-%COMP%]{flex-shrink:0;align-self:flex-start;width:fit-content;max-width:90%}.case-chat__log-summary[_ngcontent-%COMP%]{display:flex;align-items:center;gap:5px;font-family:var(--font-heading);font-size:10px;font-weight:600;color:var(--color-neutral-500);letter-spacing:.02em;cursor:pointer;outline:none;list-style:none;background:none;border:none;padding:0}.case-chat__log-summary[_ngcontent-%COMP%]::-webkit-details-marker{display:none}.case-chat__log-body[_ngcontent-%COMP%]{display:block;max-height:260px;overflow:auto;margin-top:4px;padding:10px 12px;font-family:var(--font-heading);font-size:11px;line-height:1.6;white-space:pre-wrap;word-break:break-word;background:var(--color-neutral-200);color:var(--color-text)}.case-chat__session-context[_ngcontent-%COMP%]{margin-bottom:6px}.case-chat__session-context-label[_ngcontent-%COMP%]{display:block;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-neutral-500);margin-bottom:3px}.case-chat__session-context-body[_ngcontent-%COMP%]{font-family:var(--font-heading);font-size:10px;color:var(--color-neutral-600);white-space:pre-wrap;word-break:break-all;margin:0;max-height:120px;overflow-y:auto}.case-chat__question-answered[_ngcontent-%COMP%]{flex-shrink:0;display:flex;flex-direction:column;gap:.2rem;padding:.4rem .75rem;border-radius:8px;background:var(--color-surface-secondary, rgba(0, 0, 0, .03));border-left:3px solid var(--color-success, #34c759);font-size:.8rem;color:var(--color-text-secondary, #6e6e73)}.case-chat__question-answered-label[_ngcontent-%COMP%]{font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-success, #34c759)}.case-chat__question-answered-text[_ngcontent-%COMP%]{color:var(--color-text, #1d1d1f);font-size:.82rem}.case-chat__thinking[_ngcontent-%COMP%]{flex-shrink:0;display:flex;gap:.3rem;padding:.75rem 1rem;align-self:flex-start}.case-chat__message-text--markdown[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0 0 .5em}.case-chat__message-text--markdown[_ngcontent-%COMP%] p[_ngcontent-%COMP%]:last-child{margin-bottom:0}.case-chat__message-text--markdown[_ngcontent-%COMP%] ul[_ngcontent-%COMP%], .case-chat__message-text--markdown[_ngcontent-%COMP%] ol[_ngcontent-%COMP%]{margin:.25em 0 .5em;padding-left:1.4em}.case-chat__message-text--markdown[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{margin-bottom:.2em}.case-chat__message-text--markdown[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{font-family:var(--font-heading);font-size:.85em;background:var(--color-neutral-200);padding:.1em .35em}.case-chat__message-text--markdown[_ngcontent-%COMP%] blockquote[_ngcontent-%COMP%]{margin:.4em 0;padding-left:.8em;border-left:2px solid var(--color-accent-300);color:var(--color-neutral-600)}.case-chat__message-text--markdown[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:var(--color-accent);text-decoration:underline}.case-chat__message-text--markdown[_ngcontent-%COMP%] h1[_ngcontent-%COMP%], .case-chat__message-text--markdown[_ngcontent-%COMP%] h2[_ngcontent-%COMP%], .case-chat__message-text--markdown[_ngcontent-%COMP%] h3[_ngcontent-%COMP%], .case-chat__message-text--markdown[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{margin:.5em 0 .25em;font-size:1em;font-weight:600}.case-chat__message-text--markdown[_ngcontent-%COMP%] .external-link-icon[_ngcontent-%COMP%]{font-size:.75em;margin-left:.15em;vertical-align:super}.case-chat__composer[_ngcontent-%COMP%]{flex-shrink:0;position:relative;background:var(--color-bg);box-shadow:var(--shadow-sm);border:1px solid var(--color-divider);display:flex;flex-direction:column}.case-chat__composer[_ngcontent-%COMP%]:focus-within{border-color:var(--color-accent)}.case-chat__autocomplete[_ngcontent-%COMP%]{position:absolute;bottom:calc(100% + .5rem);left:0;right:0;background:var(--color-surface);border:1px solid var(--color-divider);box-shadow:var(--shadow-lg);z-index:20;animation:_ngcontent-%COMP%_autocomplete-in .12s ease}.case-chat__drop-overlay[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:30;pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;border:2px dashed var(--color-accent);background:color-mix(in srgb,var(--color-accent) 8%,transparent);color:var(--color-accent);font-weight:600}.case-chat__input[_ngcontent-%COMP%]{flex:none;width:100%;resize:none;box-sizing:border-box;padding:13px 16px 4px;border:none;background:transparent;color:var(--color-text);font-size:14px;font-family:var(--font-body);line-height:1.55;outline:none;min-height:52px;overflow-y:hidden}.case-chat__input[_ngcontent-%COMP%]::placeholder{color:var(--color-neutral-700)}.case-chat__input[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed}.case-chat__actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;padding:6px 10px 10px}.case-chat__actions-hint[_ngcontent-%COMP%]{flex:1;font-size:11px;color:var(--color-neutral-700);font-family:var(--font-body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:6px}.case-chat__scroll-anchor[_ngcontent-%COMP%]{position:absolute;bottom:calc(2rem + 80px);left:50%;transform:translate(-50%);z-index:10;background:var(--color-surface);border:1px solid var(--color-divider);box-shadow:var(--shadow-sm);animation:_ngcontent-%COMP%_scroll-anchor-in .15s ease}.case-chat__attachments[_ngcontent-%COMP%]{display:block;padding:.75rem .75rem 0}.thinking-dot[_ngcontent-%COMP%]{width:8px;height:8px;background:var(--color-neutral-500);animation:_ngcontent-%COMP%_thinking-bounce 1.2s ease-in-out infinite}.thinking-dot[_ngcontent-%COMP%]:nth-child(2){animation-delay:.2s}.thinking-dot[_ngcontent-%COMP%]:nth-child(3){animation-delay:.4s}@keyframes _ngcontent-%COMP%_thinking-bounce{0%,80%,to{transform:translateY(0);opacity:.4}40%{transform:translateY(-6px);opacity:1}}@keyframes _ngcontent-%COMP%_scroll-anchor-in{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes _ngcontent-%COMP%_autocomplete-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}"],changeDetection:1})};var Ks=["composerInput"];function Ys(o,t){o&1&&(ws$1(0,"div",3)(1,"span",19),GC(2,"upload_file"),pl$1(),ws$1(3,"span"),GC(4,"Drop files to attach"),pl$1()());}function Js(o,t){if(o&1&&(ws$1(0,"div",6),GC(1),pl$1()),o&2){let e=gC();XE(),vl$1("Namespace \xB7 ",e.namespaceName()??e.namespaceId);}}function Xs(o,t){if(o&1){let e=lC();ws$1(0,"button",20),Rg("click",function(){If(e);let i=gC();return wf(i.returnToParent())}),ws$1(1,"span",21),GC(2,"subdirectory_arrow_right"),pl$1(),GC(3),pl$1();}if(o&2){let e=gC();XE(3),vl$1(" Parent case: ",e.parentCaseTitle()," ");}}function Zs(o,t){if(o&1&&(ws$1(0,"p",10),GC(1),pl$1()),o&2){let e=gC();XE(),Yg(e.submitError());}}function el(o,t){if(o&1){let e=lC();ws$1(0,"div",11)(1,"agentos-agent-autocomplete",22),Rg("selected",function(i){If(e);let a=gC();return wf(a.onAgentSelected(i))})("dismissed",function(){If(e);let i=gC();return wf(i.closeAtAutocomplete())}),pl$1()();}if(o&2){let e=gC();XE(),bg("agents",e.autocomplete.atSuggestions());}}function tl(o,t){if(o&1){let e=lC();ws$1(0,"div",11)(1,"agentos-prompt-autocomplete",23),Rg("selected",function(i){If(e);let a=gC();return wf(a.onPromptSelected(i))})("dismissed",function(){If(e);let i=gC();return wf(i.closeSlashAutocomplete())}),pl$1()();}if(o&2){let e=gC();XE(),bg("prompts",e.autocomplete.slashSuggestions());}}var It=class o{caseApi=g(N$1);workspaces=g(ce);router=g(G$5);route=g(V$2);caseState=g(O);destroyRef=g(Ce$1);preferences=g(f);namespaceName=ZB(null);exchangeState=g(de);attachments=g(ke);autocomplete=g(Me);composerInput=QB("composerInput");promptAutocompleteRef=QB(ge);agentAutocompleteRef=QB(he);namespaceId=this.route.snapshot.queryParams.ns;parentCaseId=Gi$1(this.route.snapshot.queryParams.parentCase??null);parentCaseTitle=mT(()=>{let t=this.parentCaseId();return t?this.caseState.cases().find(e=>e.id===t)?.title||t:null});creationContext=0;creationChanged=new ue$2;inputValue=Gi$1("");isCreating=Gi$1(false);submitError=Gi$1("");pendingCaseId=Gi$1(null);destroyed=false;namespaceTargeted=mT(()=>Ot(this.inputValue(),this.exchangeState.canWriteNamespace()));ngOnInit(){this.exchangeState.initializeForNamespace(this.namespaceId),this.route.queryParams.pipe(U$3(this.destroyRef)).subscribe(t=>{let e=t.ns,n=t.parentCase||null;e&&(e!==this.namespaceId||n!==this.parentCaseId())&&(this.creationContext++,this.creationChanged.next(),this.namespaceId=e,this.parentCaseId.set(n),this.autocomplete.init(e),this.autocomplete.reset(),this.inputValue.set(""),this.attachments.reset(),this.pendingCaseId.set(null),this.submitError.set(""),this.isCreating.set(false),this.exchangeState.initializeForNamespace(e));});}constructor(){this.destroyRef.onDestroy(()=>this.destroyed=true),this.autocomplete.init(this.namespaceId),Hf(()=>{this.inputValue();let t=this.composerInput()?.nativeElement;t&&queueMicrotask(()=>this.resizeComposer(t));}),ME(()=>{let t=this.composerInput()?.nativeElement;t?.focus(),this.resizeComposer(t);});}get canSend(){return (!!this.inputValue().trim()||this.attachments.hasAttachments())&&!this.isCreating()}onInput(t){let e=t.target;this.autocomplete.onInput(e.value,this.inputValue),this.resizeComposer(e);}resizeComposer(t){t&&(t.style.height="auto",t.style.height=`${t.scrollHeight}px`);}onKeydown(t){this.autocomplete.onKeydown(t,this.promptAutocompleteRef,this.agentAutocompleteRef)||this.preferences.shouldSend(t)&&(t.preventDefault(),this.submit());}onPromptSelected(t){this.autocomplete.onPromptSelected(t,this.promptAutocompleteRef,this.composerInput,this.inputValue);}onAgentSelected(t){this.autocomplete.onAgentSelected(t,this.agentAutocompleteRef,this.composerInput,this.inputValue);}closeSlashAutocomplete(){this.autocomplete.slashSuggestions.set([]);}closeAtAutocomplete(){this.autocomplete.atSuggestions.set([]);}returnToParent(){this.router.navigate(["/agentos/home"],{queryParams:{ns:this.namespaceId,case:this.parentCaseId()}});}submit(){return B$2(this,null,function*(){if(!this.canSend)return;let t=this.inputValue().trim(),e=this.namespaceId,n=this.parentCaseId(),i=this.creationContext;this.submitError.set(""),this.isCreating.set(true);try{let a=this.pendingCaseId();if(!a){let w=yield Ny(this.caseApi.createCase(x$2(w$1({namespaceId:e},n?{parentCaseId:n}:{}),{status:"PENDING",favorite:!1,removed:!1})));if(this.abandoned(i))return;this.caseState.addCase(w),a=w.id??"",this.pendingCaseId.set(a);}if(this.abandoned(i))return;if(this.attachments.hasAttachments()){let w=yield Ny(this.workspaces.watch(a).pipe(kt$1(({view:D})=>!D?.equipped||D.status!=="REQUESTED"&&D.status!=="PREPARING"),Cd({first:12e4,with:()=>Vy(()=>new Error("Workspace preparation is still in progress. Your message and attachments are saved here. Retry shortly to continue with the same case."))}),wd(this.creationChanged),U$3(this.destroyRef))),E=!w.view||w.view.equipped&&w.view.status!=="READY";if(!Ze(w)&&E)throw new Error(w.view?.failureReason||"Workspace is not ready. Retry this submission shortly.");if(this.abandoned(i))return}let g=t;if(this.attachments.hasAttachments()){this.exchangeState.initializeForCase(e,a);let w=et(t,this.exchangeState.canWriteNamespace()),E=yield this.attachments.uploadAllAndBuildMention(w);if(E===null||this.abandoned(i))return;g=g?`${g}
|
|
9
|
+
|
|
10
|
+
${E}`:E;}if(yield Ny(this.caseApi.addMessageCase(a,{content:g})),this.abandoned(i))return;this.attachments.reset(),this.inputValue.set(""),this.pendingCaseId.set(null),this.router.navigate(["/agentos/home"],{queryParams:{ns:e,case:a}});}catch(a){if(this.abandoned(i))return;console.error("[CaseHome] Failed to create case or send first message",a),this.submitError.set(a?.error?.message||a?.message||"Could not send the message. Retry to continue with the same case.");}finally{this.abandoned(i)||this.isCreating.set(false);}})}abandoned(t){return this.destroyed||this.creationContext!==t}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=xw({type:o,selectors:[["agentos-case-home"]],viewQuery:function(e,n){e&1&&jg(n.composerInput,Ks,5)(n.promptAutocompleteRef,ge,5)(n.agentAutocompleteRef,he,5),e&2&&wC(3);},inputs:{namespaceName:[1,"namespaceName"]},features:[nT([ke,Me])],decls:22,vars:17,consts:[["attachmentsUi",""],["composerInput",""],[1,"case-home",3,"dragenter","dragover","dragleave","drop"],["aria-hidden","true",1,"case-home__drop-overlay"],[1,"case-home__hero"],[1,"case-home__ns-block"],[1,"case-home__ns-label"],["type","button","title","Back to parent case",1,"case-home__parent"],[1,"case-home__headline"],["dsBlueprint","",1,"case-home__composer"],["role","alert"],[1,"case-home__autocomplete"],[1,"case-home__attachments",3,"removed","filesSelected","attachments","namespaceBadge","limitError","disabled"],["placeholder","Describe your task or ask a question\u2026","rows","4",1,"case-home__input",3,"input","keydown","value","disabled"],[1,"case-home__composer-footer"],[1,"case-home__footer-left"],["icon","add","variant","default","title","Attach files",3,"action","disabled"],[1,"case-home__hint"],["icon","send","variant","primary",3,"action","title","disabled"],[1,"material-icons"],["type","button","title","Back to parent case",1,"case-home__parent",3,"click"],["aria-hidden","true",1,"material-icons"],[3,"selected","dismissed","agents"],[3,"selected","dismissed","prompts"]],template:function(e,n){if(e&1){let i=lC();ws$1(0,"div",2),Rg("dragenter",function(g){return !n.isCreating()&&n.attachments.onDragEnter(g)})("dragover",function(g){return !n.isCreating()&&n.attachments.onDragOver(g)})("dragleave",function(){return n.attachments.onDragLeave()})("drop",function(g){return !n.isCreating()&&n.attachments.onDrop(g)}),Jw(1,Ys,5,0,"div",3),ws$1(2,"div",4)(3,"div",5),Jw(4,Js,2,1,"div",6),Jw(5,Xs,4,1,"button",7),ws$1(6,"h1",8),GC(7),pl$1()(),ws$1(8,"div",9),Jw(9,Zs,2,1,"p",10),Jw(10,el,2,1,"div",11),Jw(11,tl,2,1,"div",11),ws$1(12,"agentos-composer-attachments",12,0),Rg("removed",function(g){return n.attachments.remove(g)})("filesSelected",function(g){return n.attachments.addFiles(g)}),pl$1(),ws$1(14,"textarea",13,1),Rg("input",function(g){return n.onInput(g)})("keydown",function(g){return n.onKeydown(g)}),pl$1(),ws$1(16,"div",14)(17,"div",15)(18,"ds-icon-button",16),Rg("action",function(){If(i);let g=CC(13);return wf(g.openPicker())}),pl$1(),ws$1(19,"span",17),GC(20),pl$1()(),ws$1(21,"ds-icon-button",18),Rg("action",function(){return n.submit()}),pl$1()()()()();}e&2&&(XE(),eC(n.attachments.isDragOver()?1:-1),XE(3),eC(n.namespaceId?4:-1),XE(),eC(n.parentCaseId()?5:-1),XE(2),Yg(n.parentCaseId()?"New sub-case":"What can I help you with?"),XE(2),eC(n.submitError()?9:-1),XE(),eC(n.autocomplete.atSuggestions().length>0?10:-1),XE(),eC(n.autocomplete.slashSuggestions().length>0?11:-1),XE(),bg("attachments",n.attachments.attachments())("namespaceBadge",n.namespaceTargeted())("limitError",n.attachments.limitError())("disabled",n.attachments.isUploading()),XE(2),bg("value",n.inputValue())("disabled",n.isCreating()),XE(4),bg("disabled",n.isCreating()),XE(2),Yg(n.preferences.composerHint()),XE(),bg("title",n.parentCaseId()?"Start sub-case":"Start case")("disabled",!n.canSend));},dependencies:[Kn,Se$1,ge,he,Ge],styles:[".case-home[_ngcontent-%COMP%]{display:flex;flex-direction:column;min-height:100%;height:auto;overflow-y:auto;align-items:center;justify-content:center;position:relative}.case-home__hero[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:24px;padding:0 24px;flex:none;max-width:720px;width:100%}.case-home__ns-block[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:0}.case-home__ns-label[_ngcontent-%COMP%]{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--color-accent-700);font-family:var(--font-heading);font-weight:600;margin-bottom:8px}.case-home__headline[_ngcontent-%COMP%]{margin:0;font-size:42px;font-weight:700;color:var(--color-text);line-height:1.1}.case-home__parent[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;padding:0;margin:0 0 12px;font:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;display:flex;align-items:center;gap:6px;align-self:flex-start;color:var(--color-accent-700);font-size:13px;text-align:left;overflow-wrap:anywhere}.case-home__parent[_ngcontent-%COMP%] .material-icons[_ngcontent-%COMP%]{font-size:16px}.case-home__parent[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:0}.case-home__composer[_ngcontent-%COMP%]{position:relative;width:100%;display:flex;flex-direction:column;background:var(--color-bg);box-shadow:var(--shadow-sm);border:1px solid var(--color-divider)}.case-home__autocomplete[_ngcontent-%COMP%]{position:absolute;bottom:calc(100% + .5rem);left:0;right:0;background:var(--color-surface);border:1px solid var(--color-divider);box-shadow:var(--shadow-lg);z-index:20;animation:autocomplete-in .12s ease}.case-home__input[_ngcontent-%COMP%]{width:100%;resize:none;padding:13px 16px 4px;border:none;background:transparent;color:var(--color-text);font-size:14px;line-height:1.55;outline:none;box-sizing:border-box;overflow-y:hidden}.case-home__input[_ngcontent-%COMP%]::placeholder{color:var(--color-neutral-500)}.case-home__input[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed}.case-home__composer-footer[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 10px 10px}.case-home__attach-btn[_ngcontent-%COMP%]{appearance:none;border:none;padding:0;margin:0;font:inherit;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-divider);background:transparent;color:var(--color-neutral-600);cursor:not-allowed;opacity:.5;flex-shrink:0;justify-content:space-between;padding:.5rem}.case-home__footer-left[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem}.case-home__attachments[_ngcontent-%COMP%]{display:block;padding:.75rem .75rem 0}.case-home__drop-overlay[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:30;pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;border:2px dashed var(--color-accent);background:color-mix(in srgb,var(--color-accent) 8%,transparent);color:var(--color-accent);font-weight:600}.case-home__hint[_ngcontent-%COMP%]{font-size:12px;color:var(--color-neutral-500)}.case-home__spacer[_ngcontent-%COMP%]{flex:1}"],changeDetection:1})};function nl(o,t){if(o&1&&(hl$1(0,"span",1)(1,"span",2),GC(2),gl$1()()),o&2){let e=t;Hg("color",e.color),xg("title",e.label),Tg("aria-label",e.label),XE(2),Yg(e.icon);}}var je=class o{view=ZB();indicator=mT(()=>go(this.view()));static \u0275fac=function(e){return new(e||o)};static \u0275cmp=xw({type:o,selectors:[["agentos-case-git-badge"]],inputs:{view:[1,"view"]},decls:1,vars:1,consts:[["role","img",1,"git-state",3,"title","color"],["role","img",1,"git-state",3,"title"],["aria-hidden","true",1,"material-icons"]],template:function(e,n){if(e&1&&Jw(0,nl,3,5,"span",0),e&2){let i;eC((i=n.indicator())?0:-1,i);}},styles:["[_nghost-%COMP%]{display:inline-flex;flex-shrink:0}[_nghost-%COMP%]:empty{display:none}.git-state[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:2px}.material-icons[_ngcontent-%COMP%]{font-size:16px}"]})};var Rt=class o{case;static toListItem(t){return {id:t.id??"",name:t.title??t.id??"\u2014",description:void 0,favorite:t.favorite,canDelete:t.role==="ADMIN",canRename:t.role==="ADMIN"}}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=xw({type:o,selectors:[["agentos-case-item"]],inputs:{case:"case"},decls:0,vars:0,template:function(e,n){},encapsulation:2})};var il=["renameInput"],al=["caseRowTpl"],rl=o=>({node:o,depth:0}),sl=(o,t)=>({node:o,depth:t}),Qt=(o,t)=>t.id;function ll(o,t){if(o&1&&Sg(0,"div",5),o&2){let e=gC().$implicit;Tg("title",e.groupLabel??"");}}function cl(o,t){if(o&1){let e=lC();Jw(0,ll,1,1,"div",5),ws$1(1,"button",6),Rg("click",function(){let i=If(e).$implicit,a=gC(2);return wf(a.onItemSelected(i.id))})("mouseenter",function(i){let a=If(e).$implicit,g=gC(2);return wf(g.onCompactBadgeEnter(i,a))})("mouseleave",function(i){If(e);let a=gC(2);return wf(a.onCompactBadgeLeave(i))}),Sg(2,"agentos-case-status-glyph",7),pl$1();}if(o&2){let e=t.$implicit,n=gC(2);eC(e.isFirstInCompactGroup&&e.groupKey?0:-1),XE(),Ug("case-drawer-compact__badge--active",e.id===n.activeCaseId())("case-drawer-compact__badge--running",e.status===n.Status.RUNNING)("case-drawer-compact__badge--error",e.status===n.Status.ERROR)("case-drawer-compact__badge--pending",e.status===n.Status.PENDING)("case-drawer-compact__badge--killed",e.status===n.Status.KILLED),Tg("aria-label",e.name+" \u2014 "+e.status),XE(),bg("status",e.status)("size",16);}}function dl(o,t){if(o&1){let e=lC();ws$1(0,"button",18),Rg("click",function(i){If(e);let a=gC(2);return gC(2).subCaseCreateRequested.emit(a.id),wf(i.stopPropagation())}),kf(),ws$1(1,"svg",19),Sg(2,"path",20),pl$1()();}}function ml(o,t){if(o&1){let e=lC();ws$1(0,"button",21),Rg("click",function(){If(e);let i=gC(2),a=gC(2);return wf(a.compactConfirmingDeleteId.set(i.id))}),kf(),ws$1(1,"svg",22),Sg(2,"path",23)(3,"line",24)(4,"line",25),pl$1()();}}function pl(o,t){if(o&1){let e=lC();Jw(0,dl,3,0,"button",13),ws$1(1,"button",14),Rg("click",function(){If(e);let i=gC(),a=gC(2);return wf(a.onStarToggled(i))}),kf(),ws$1(2,"svg",15),Sg(3,"path",16),pl$1()(),Jw(4,ml,5,0,"button",17);}if(o&2){let e=gC();eC(e.canCreateSubCase?0:-1),XE(),Ug("case-drawer-compact__tooltip-btn--active",e.favorite),bg("title",e.favorite?"Remove from favorites":"Add to favorites"),XE(),Tg("fill",e.favorite?"currentColor":"none"),XE(2),eC(e.canDelete?4:-1);}}function _l(o,t){if(o&1){let e=lC();ws$1(0,"button",26),Rg("click",function(){If(e);let i=gC(),a=gC(2);return a.onDeleteRequested(i.id),a.compactConfirmingDeleteId.set(null),wf(a.hoveredCompactItem.set(null))}),kf(),ws$1(1,"svg",27),Sg(2,"path",28),pl$1(),GC(3," Delete "),pl$1(),Ff(),ws$1(4,"button",29),Rg("click",function(){If(e);let i=gC(3);return wf(i.compactConfirmingDeleteId.set(null))}),kf(),ws$1(5,"svg",30),Sg(6,"path",31)(7,"path",32),pl$1()();}}function ul(o,t){if(o&1){let e=lC();ws$1(0,"div",8),Rg("mouseleave",function(i){If(e);let a=gC(2);return wf(a.onTooltipLeave(i))})("mouseenter",function(){If(e);let i=gC(2);return wf(i.onTooltipEnter())}),ws$1(1,"span",9),GC(2),pl$1(),ws$1(3,"span",10),GC(4),pl$1(),Sg(5,"agentos-case-git-badge",11),ws$1(6,"span",12),Jw(7,pl,5,6)(8,_l,8,0),pl$1()();}if(o&2){let e=t,n=gC(2);Hg("top",n.tooltipPos().top,"px")("left",n.tooltipPos().left,"px"),XE(2),Yg(e.name),XE(),Ug("case-drawer-compact__tooltip-status--running",e.status===n.Status.RUNNING)("case-drawer-compact__tooltip-status--error",e.status===n.Status.ERROR)("case-drawer-compact__tooltip-status--pending",e.status===n.Status.PENDING)("case-drawer-compact__tooltip-status--killed",e.status===n.Status.KILLED),XE(),Yg(e.status.toLowerCase()),XE(),bg("view",n.workspaces()[e.id]),XE(2),eC(n.compactConfirmingDeleteId()!==e.id?7:8);}}function gl(o,t){if(o&1&&(ws$1(0,"div",3),rC(1,cl,3,14,null,null,Qt),pl$1(),Jw(3,ul,9,16,"div",4)),o&2){let e,n=gC();XE(),oC(n.compactItems()),XE(2),eC((e=n.hoveredCompactItem())?3:-1,e);}}function hl(o,t){o&1&&(ws$1(0,"p",33),GC(1,"No cases yet. Start one with the + button above."),pl$1());}function fl(o,t){if(o&1&&(ws$1(0,"div",34),GC(1),pl$1()),o&2){let e=gC().$implicit;XE(),Yg(e.groupLabel);}}function Cl(o,t){if(o&1&&(Jw(0,fl,2,1,"div",34),Ng(1,35)),o&2){let e=t.$implicit,n=gC(3),i=CC(3);eC(n.isFirstInGroup(e,n.displayItems())?0:-1),XE(),bg("ngTemplateOutlet",i)("ngTemplateOutletContext",oT(3,rl,e));}}function bl(o,t){if(o&1&&rC(0,Cl,2,5,null,null,Qt),o&2){let e=gC(2);oC(e.displayItems());}}function xl(o,t){if(o&1&&(ws$1(0,"div",2),Jw(1,hl,2,0,"p",33)(2,bl,2,0),pl$1()),o&2){let e=gC();XE(),eC(e.displayItems().length===0?1:2);}}function vl(o,t){if(o&1){let e=lC();ws$1(0,"button",44),Rg("click",function(i){If(e);let a=gC().node,g=gC();return wf(g.toggleExpand(i,a.id))}),kf(),ws$1(1,"svg",45),Sg(2,"path",46),pl$1()();}if(o&2){let e=gC().node,n=gC();bg("title",n.isExpanded(e.id)?"Collapse":"Expand"),XE(),Hg("transform",n.isExpanded(e.id)?"rotate(90deg)":"rotate(0)");}}function yl(o,t){if(o&1&&Sg(0,"agentos-case-status-glyph",7),o&2){let e=gC().node;bg("status",e.status)("size",15);}}function wl(o,t){if(o&1&&(ws$1(0,"p",48),GC(1),pl$1()),o&2){let e=gC(2).node;bg("id","rename-error-"+e.id),XE(),Yg(t);}}function Sl(o,t){if(o&1){let e=lC();ws$1(0,"div",39)(1,"input",47,1),Rg("click",function(i){return i.stopPropagation()})("input",function(i){If(e);let a=gC(2);return wf(a.onRenameInput(i.target.value))})("keydown",function(i){If(e);let a=gC(2);return wf(a.onRenameKeydown(i))})("blur",function(){If(e);let i=gC(2);return wf(i.onRenameBlur())}),pl$1(),Jw(3,wl,2,2,"p",48),pl$1();}if(o&2){let e,n=gC().node,i=gC();XE(),bg("value",i.editingTitle()),Tg("aria-invalid",i.renameError()?"true":null)("aria-describedby",i.renameError()?"rename-error-"+n.id:null),XE(2),eC((e=i.renameError())?3:-1,e);}}function El(o,t){if(o&1){let e=lC();ws$1(0,"button",49),Rg("click",function(){If(e);let i=gC().node,a=gC();return wf(a.onItemSelected(i.id))}),ws$1(1,"span",50),GC(2),pl$1()();}if(o&2){let e=gC().node;XE(2),Yg(e.name);}}function Ml(o,t){if(o&1){let e=lC();ws$1(0,"button",56),Rg("click",function(i){If(e);let a=gC(2).node;return gC().subCaseCreateRequested.emit(a.id),wf(i.stopPropagation())}),kf(),ws$1(1,"svg",19),Sg(2,"path",20),pl$1()();}}function kl(o,t){if(o&1){let e=lC();ws$1(0,"button",57),Rg("click",function(i){If(e);let a=gC(2).node;return gC().startRename(a),wf(i.stopPropagation())}),kf(),ws$1(1,"svg",19),Sg(2,"path",58)(3,"path",59),pl$1()();}}function Tl(o,t){if(o&1){let e=lC();ws$1(0,"button",60),Rg("click",function(i){If(e);let a=gC(2).node;return gC().expandedConfirmingDeleteId.set(a.id),wf(i.stopPropagation())}),kf(),ws$1(1,"svg",19),Sg(2,"path",23)(3,"line",24)(4,"line",25),pl$1()();}}function Pl(o,t){if(o&1){let e=lC();Jw(0,Ml,3,0,"button",51),ws$1(1,"button",52),Rg("click",function(i){If(e);let a=gC().node;return gC().onStarToggled(a),wf(i.stopPropagation())}),kf(),ws$1(2,"svg",53),Sg(3,"path",16),pl$1()(),Jw(4,kl,4,0,"button",54),Jw(5,Tl,5,0,"button",55);}if(o&2){let e=gC().node;eC(e.canCreateSubCase?0:-1),XE(),Ug("case-tree-node__action-btn--active",e.favorite),bg("title",e.favorite?"Remove from favorites":"Add to favorites"),XE(),Tg("fill",e.favorite?"currentColor":"none"),XE(2),eC(e.canRename?4:-1),XE(),eC(e.canDelete?5:-1);}}function Ol(o,t){if(o&1){let e=lC();ws$1(0,"button",61),Rg("click",function(i){If(e);let a=gC().node,g=gC();return g.onDeleteRequested(a.id),g.expandedConfirmingDeleteId.set(null),wf(i.stopPropagation())}),kf(),ws$1(1,"svg",27),Sg(2,"path",28),pl$1(),GC(3," Delete "),pl$1(),Ff(),ws$1(4,"button",62),Rg("click",function(i){return If(e),gC(2).expandedConfirmingDeleteId.set(null),wf(i.stopPropagation())}),kf(),ws$1(5,"svg",30),Sg(6,"path",31)(7,"path",32),pl$1()();}}function Dl(o,t){if(o&1&&Ng(0,35),o&2){let e=t.$implicit,n=gC(2).depth;gC();let i=CC(3);bg("ngTemplateOutlet",i)("ngTemplateOutletContext",iT(2,sl,e,n+1));}}function Il(o,t){if(o&1&&rC(0,Dl,1,5,"ng-container",35,Qt),o&2){let e=gC().node;oC(e.children);}}function Rl(o,t){if(o&1&&(ws$1(0,"div",36)(1,"div",37),Jw(2,vl,3,3,"button",38)(3,yl,1,2,"agentos-case-status-glyph",7),Jw(4,Sl,4,4,"div",39)(5,El,3,1,"button",40),ws$1(6,"span",41)(7,"span",42),GC(8),pl$1(),Sg(9,"agentos-case-git-badge",11),pl$1(),ws$1(10,"span",43),Jw(11,Pl,6,7)(12,Ol,8,0),pl$1()(),Jw(13,Il,2,0),pl$1()),o&2){let e=t.node,n=t.depth,i=gC();Hg("--depth",n),XE(),Ug("case-tree-node__row--active",e.id===i.activeCaseId())("case-tree-node__row--editing",i.editingCaseId()===e.id),XE(),eC(e.children?.length?2:3),XE(2),eC(i.editingCaseId()===e.id?4:5),XE(3),Ug("case-tree-node__status-label--running",e.status===i.Status.RUNNING)("case-tree-node__status-label--error",e.status===i.Status.ERROR)("case-tree-node__status-label--pending",e.status===i.Status.PENDING)("case-tree-node__status-label--killed",e.status===i.Status.KILLED),XE(),Yg(e.status.toLowerCase()),XE(),bg("view",i.workspaces()[e.id]),XE(2),eC(i.expandedConfirmingDeleteId()!==e.id?11:12),XE(2),eC(!i.isSearchActive()&&i.isExpanded(e.id)&&e.children?.length?13:-1);}}var Vt=class o{workspaces=ZB({});cases=ZB([]);activeCaseId=ZB(null);compact=ZB(false);filterQuery=ZB("");caseSelected=qB();createRequested=qB();subCaseCreateRequested=qB();deleteRequested=qB();starToggled=qB();renameRequested=qB();caseRowTpl;searchQuery=Gi$1("");activeQuery=mT(()=>this.filterQuery().trim()||this.searchQuery().trim());isSearchActive=mT(()=>this.activeQuery().length>0);rootItems=mT(()=>{let t=this.cases(),e=new Map(t.map(n=>[n.id??"",n.modified??n.created??""]));return Al(Nl(t),e)});compactItems=mT(()=>(this.isSearchActive()?this.flatFilteredItems():this.rootItems()).map((e,n,i)=>x$2(w$1({},e),{initials:Vl(e.name),isFirstInCompactGroup:n===0||e.groupKey!==i[n-1]?.groupKey})));flatFilteredItems=mT(()=>{let t=this.activeQuery().toLowerCase();return t?qo(this.rootItems(),t):[]});displayItems=mT(()=>this.isSearchActive()?this.flatFilteredItems():this.rootItems());autoExpandedIds=mT(()=>{let t=this.activeCaseId();if(!t)return new Set;let e=new Set;return Lo(this.rootItems(),t,e),e});hoveredCompactItem=Gi$1(null);tooltipPos=Gi$1({top:0,left:0});compactConfirmingDeleteId=Gi$1(null);expandedConfirmingDeleteId=Gi$1(null);onCompactBadgeEnter(t,e){let n=t.currentTarget.getBoundingClientRect();this.tooltipPos.set({top:n.top+n.height/2,left:n.right+8}),this.hoveredCompactItem.set(e),this.compactConfirmingDeleteId()!==e.id&&this.compactConfirmingDeleteId.set(null);}onCompactBadgeLeave(t){t.relatedTarget?.closest(".case-drawer-compact__tooltip-fixed")||setTimeout(()=>{this._mouseOnTooltip||this.hoveredCompactItem.set(null);},80);}onTooltipLeave(t){this._mouseOnTooltip=false,!t.relatedTarget?.closest(".case-drawer-compact__badge")&&this.hoveredCompactItem.set(null);}onTooltipEnter(){this._mouseOnTooltip=true;}_mouseOnTooltip=false;expandOverrides=Gi$1(new Map);editingCaseId=Gi$1(null);editingTitle=Gi$1("");renameError=Gi$1(null);renameOriginal="";renameInput=QB("renameInput");selectedForId=null;constructor(){tV(t=>{let e=this.editingCaseId();if(!e)return;let n=this.renameInput()?.nativeElement;if(!n){this.cancelRename();return}let i=setTimeout(()=>{n.focus(),this.selectedForId!==e&&(n.select(),this.selectedForId=e);});t(()=>clearTimeout(i));});}isExpanded(t){return this.expandOverrides().get(t)??this.autoExpandedIds().has(t)}toggleExpand(t,e){t.stopPropagation();let n=!this.isExpanded(e);this.expandOverrides.update(i=>{let a=new Map(i);return a.set(e,n),a});}onSearchChanged(t){this.searchQuery.set(t);}isFirstInGroup(t,e){let n=e.indexOf(t);return n===0?!!t.groupKey:t.groupKey!==e[n-1]?.groupKey}onItemSelected(t){this.caseSelected.emit(t);}onCreateRequested(){this.createRequested.emit();}onDeleteRequested(t){this.deleteRequested.emit(t);}startRename(t){this.renameOriginal=t.name,this.editingTitle.set(t.name),this.renameError.set(null),this.selectedForId=null,this.editingCaseId.set(t.id);}onRenameInput(t){this.editingTitle.set(t),this.renameError()&&this.renameError.set(null);}onRenameKeydown(t){t.key==="Enter"?(t.preventDefault(),t.stopPropagation(),this.commitRename()):t.key==="Escape"&&(t.preventDefault(),t.stopPropagation(),this.cancelRename());}onRenameBlur(){this.editingCaseId()&&this.renameInput()?.nativeElement!==document.activeElement&&(Ao(this.editingTitle().trim())?this.cancelRename():this.commitRename());}commitRename(){let t=this.editingCaseId();if(!t)return;let e=this.editingTitle().trim(),n=Ao(e);if(n){this.renameError.set(n);return}this.editingCaseId.set(null),this.renameError.set(null),e!==this.renameOriginal&&this.renameRequested.emit({id:t,title:e});}cancelRename(){this.editingCaseId.set(null),this.editingTitle.set(""),this.renameError.set(null);}menuItemsFor(t){let e=[{key:"star",label:t.favorite?"Remove from favorites":"Add to favorites"}];return t.canDelete&&e.push({key:"delete",label:"Delete",variant:"danger"}),e}onMenuAction(t,e){e==="star"&&this.onStarToggled(t),e==="delete"&&this.onDeleteRequested(t.id);}onStarToggled(t){this.starToggled.emit({id:t.id,starred:!t.favorite});}Status=Ve;static \u0275fac=function(e){return new(e||o)};static \u0275cmp=xw({type:o,selectors:[["agentos-case-drawer"]],viewQuery:function(e,n){if(e&1&&(jg(n.renameInput,il,5),Pg(al,7)),e&2){wC();let i;EC(i=IC())&&(n.caseRowTpl=i.first);}},inputs:{workspaces:[1,"workspaces"],cases:[1,"cases"],activeCaseId:[1,"activeCaseId"],compact:[1,"compact"],filterQuery:[1,"filterQuery"]},outputs:{caseSelected:"caseSelected",createRequested:"createRequested",subCaseCreateRequested:"subCaseCreateRequested",deleteRequested:"deleteRequested",starToggled:"starToggled",renameRequested:"renameRequested"},decls:4,vars:1,consts:[["caseRowTpl",""],["renameInput",""],[1,"case-drawer-list"],[1,"case-drawer-compact"],["role","tooltip",1,"case-drawer-compact__tooltip-fixed",3,"top","left"],["aria-hidden","true",1,"case-drawer-compact__group-sep"],["type","button",1,"case-drawer-compact__badge",3,"click","mouseenter","mouseleave"],[3,"status","size"],["role","tooltip",1,"case-drawer-compact__tooltip-fixed",3,"mouseleave","mouseenter"],[1,"case-drawer-compact__tooltip-name"],[1,"case-drawer-compact__tooltip-status"],[3,"view"],[1,"case-drawer-compact__tooltip-actions"],["type","button","title","Create sub-case",1,"case-drawer-compact__tooltip-btn"],["type","button",1,"case-drawer-compact__tooltip-btn",3,"click","title"],["width","13","height","13","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.5","stroke-linecap","round","stroke-linejoin","round","aria-hidden","true"],["d","M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"],["type","button","title","Delete case",1,"case-drawer-compact__tooltip-btn","case-drawer-compact__tooltip-btn--danger"],["type","button","title","Create sub-case",1,"case-drawer-compact__tooltip-btn",3,"click"],["width","14","height","14","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","1.5","stroke-linecap","round","stroke-linejoin","round","aria-hidden","true"],["d","M21 11V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v16l4-4h4M18 14v8m-4-4h8"],["type","button","title","Delete case",1,"case-drawer-compact__tooltip-btn","case-drawer-compact__tooltip-btn--danger",3,"click"],["width","13","height","13","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","1.5","stroke-linecap","round","stroke-linejoin","round","aria-hidden","true"],["d","M3 6h18M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"],["x1","10","x2","10","y1","11","y2","17"],["x1","14","x2","14","y1","11","y2","17"],["type","button","title","Confirm delete",1,"case-drawer-compact__tooltip-confirm-yes",3,"click"],["width","12","height","12","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2","stroke-linecap","round","stroke-linejoin","round","aria-hidden","true"],["d","M20 6 9 17l-5-5"],["type","button","title","Cancel",1,"case-drawer-compact__tooltip-btn",3,"click"],["width","13","height","13","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","1.5","stroke-linecap","round","aria-hidden","true"],["d","M18 6 6 18"],["d","m6 6 12 12"],[1,"case-drawer-list__empty"],[1,"case-drawer-list__group-label"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"case-tree-node"],[1,"case-tree-node__row"],["type","button",1,"case-tree-node__toggle",3,"title"],[1,"case-tree-node__edit"],["type","button",1,"case-tree-node__select"],[1,"case-tree-node__statuses"],["aria-hidden","true",1,"case-tree-node__status-label"],[1,"case-tree-node__actions"],["type","button",1,"case-tree-node__toggle",3,"click","title"],["width","10","height","10","viewBox","0 0 10 10","fill","none","aria-hidden","true",2,"transition","transform 0.15s ease"],["d","M3 1.5l4 3.5-4 3.5","stroke","currentColor","stroke-width","1.4","stroke-linecap","round","stroke-linejoin","round"],["type","text","aria-label","Case title","autocomplete","off","spellcheck","false",1,"case-tree-node__name-input",3,"click","input","keydown","blur","value"],["role","alert",1,"case-tree-node__rename-error",3,"id"],["type","button",1,"case-tree-node__select",3,"click"],[1,"case-tree-node__name"],["type","button","title","Create sub-case",1,"case-tree-node__action-btn"],["type","button",1,"case-tree-node__action-btn",3,"click","title"],["width","14","height","14","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.5","stroke-linecap","round","stroke-linejoin","round","aria-hidden","true"],["type","button","title","Rename case",1,"case-tree-node__action-btn"],["type","button","title","Delete case",1,"case-tree-node__action-btn","case-tree-node__action-btn--danger"],["type","button","title","Create sub-case",1,"case-tree-node__action-btn",3,"click"],["type","button","title","Rename case",1,"case-tree-node__action-btn",3,"click"],["d","M12 20h9"],["d","M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4z"],["type","button","title","Delete case",1,"case-tree-node__action-btn","case-tree-node__action-btn--danger",3,"click"],["type","button","title","Confirm delete",1,"case-tree-node__action-btn","case-tree-node__action-btn--confirm-yes",3,"click"],["type","button","title","Cancel",1,"case-tree-node__action-btn",3,"click"]],template:function(e,n){e&1&&(Jw(0,gl,4,1)(1,xl,3,1,"div",2),Eg(2,Rl,14,20,"ng-template",null,0,fT)),e&2&&eC(n.compact()?0:1);},dependencies:[_b,Ee,je],styles:['[_nghost-%COMP%]{display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto}[_nghost-%COMP%]::-webkit-scrollbar{width:4px}[_nghost-%COMP%]::-webkit-scrollbar-thumb{background:var(--color-divider)}.case-drawer-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding:4px 0 12px}.case-drawer-list__group-label[_ngcontent-%COMP%]{padding:12px 22px 4px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--color-neutral-700);font-family:var(--font-heading);font-weight:600}.case-drawer-list__empty[_ngcontent-%COMP%]{padding:24px 20px;font-size:15px;color:var(--color-neutral-500);text-align:center;margin:0}.case-drawer-compact[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:7px;padding:2px 0;overflow-y:auto}.case-drawer-compact__item[_ngcontent-%COMP%]{position:relative;display:flex;align-items:center}.case-drawer-compact__item[_ngcontent-%COMP%]:hover .case-drawer-compact__tooltip[_ngcontent-%COMP%], .case-drawer-compact__item[_ngcontent-%COMP%]:focus-within .case-drawer-compact__tooltip[_ngcontent-%COMP%]{opacity:1;pointer-events:auto;transform:translate(0)}.case-drawer-compact__badge[_ngcontent-%COMP%]{appearance:none;border:none;margin:0;font:inherit;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:32px;height:32px;flex:none;display:grid;place-items:center;padding:0;border:1px solid var(--color-divider);background:transparent;color:var(--color-neutral-600);cursor:pointer;transition:background .12s,border-color .12s,color .12s}.case-drawer-compact__badge[_ngcontent-%COMP%]:hover{background:color-mix(in srgb,var(--color-text) 6%,transparent);border-color:var(--color-accent-300);color:var(--color-accent-700)}.case-drawer-compact__badge--active[_ngcontent-%COMP%]{background:var(--color-accent-100);border-color:var(--color-accent-300);color:var(--color-accent-700)}.case-drawer-compact__badge--active[_ngcontent-%COMP%]:hover{background:var(--color-accent-200)}.case-drawer-compact__group-sep[_ngcontent-%COMP%]{width:20px;height:1px;background:var(--color-divider);flex-shrink:0;margin:2px 0}.case-drawer-compact__tooltip-fixed[_ngcontent-%COMP%]{position:fixed;z-index:500;transform:translateY(-50%);display:flex;align-items:center;gap:6px;padding:5px 8px 5px 18px;margin-left:-10px;background:var(--color-surface);border:1px solid var(--color-divider);box-shadow:var(--shadow-lg);white-space:nowrap;pointer-events:auto;animation:_ngcontent-%COMP%_tooltip-in 80ms ease}.case-drawer-compact__tooltip-fixed[_ngcontent-%COMP%]:before{content:"";position:absolute;left:-10px;top:0;bottom:0;width:10px}.case-drawer-compact__tooltip-name[_ngcontent-%COMP%]{font-size:14px;font-weight:500;color:var(--color-text);max-width:200px;overflow:hidden;text-overflow:ellipsis}.case-drawer-compact__tooltip-status[_ngcontent-%COMP%]{font-size:9px;font-family:var(--font-heading);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--color-neutral-500);border:1px solid currentColor;padding:1px 5px}.case-drawer-compact__tooltip-status--running[_ngcontent-%COMP%]{color:var(--color-accent-700)}.case-drawer-compact__tooltip-status--error[_ngcontent-%COMP%]{color:var(--red-deep)}.case-drawer-compact__tooltip-status--pending[_ngcontent-%COMP%]{color:var(--status-pending-text)}.case-drawer-compact__tooltip-status--killed[_ngcontent-%COMP%]{color:var(--status-killed-text)}.case-drawer-compact__tooltip-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:2px;margin-left:2px;padding-left:6px;border-left:1px solid var(--color-divider)}.case-drawer-compact__tooltip-btn[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;padding:0;margin:0;font:inherit;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;color:var(--color-neutral-500);transition:color .12s,background .12s}.case-drawer-compact__tooltip-btn[_ngcontent-%COMP%]:hover{color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 14%,transparent)}.case-drawer-compact__tooltip-btn--active[_ngcontent-%COMP%]{color:var(--color-accent)}.case-drawer-compact__tooltip-btn--active[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{fill:currentColor}.case-drawer-compact__tooltip-btn--danger[_ngcontent-%COMP%]:hover{color:var(--red);background:color-mix(in srgb,var(--red) 12%,transparent)}.case-drawer-compact__tooltip-btn--confirm-yes[_ngcontent-%COMP%]{width:auto;padding:0 8px;gap:4px;font-family:var(--font-heading);font-weight:600;font-size:11px;color:#fff;background:var(--red)}.case-drawer-compact__tooltip-btn--confirm-yes[_ngcontent-%COMP%]:hover{background:var(--red-deep);color:#fff}.case-drawer-compact__tooltip-confirm-yes[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;margin:0;font:inherit;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 10px;border:1px solid var(--red);background:var(--red);color:#fff;font-family:var(--font-heading);font-weight:600;font-size:11px;cursor:pointer;transition:background .14s,border-color .14s}.case-drawer-compact__tooltip-confirm-yes[_ngcontent-%COMP%] .material-icons[_ngcontent-%COMP%]{font-size:16px;line-height:1}.case-drawer-compact__tooltip-confirm-yes[_ngcontent-%COMP%]:hover{background:var(--red-deep);border-color:var(--red-deep)}@keyframes _ngcontent-%COMP%_tooltip-in{0%{opacity:0;transform:translateY(-50%) translate(-4px)}to{opacity:1;transform:translateY(-50%) translate(0)}}.case-tree-node[_ngcontent-%COMP%]{width:100%}.case-tree-node__row[_ngcontent-%COMP%]{position:relative;display:flex;align-items:center;margin:1px 8px;width:calc(100% - 16px);padding:8px 9px;padding-left:calc(9px + var(--depth, 0) * 1.25rem);gap:9px;color:var(--color-text);border:1px solid transparent;background:transparent;cursor:pointer;border-radius:0;transition:background .1s,border-color .1s,color .1s;box-sizing:border-box}.case-tree-node__row[_ngcontent-%COMP%]:hover{background:color-mix(in srgb,var(--color-text) 6%,transparent)}.case-tree-node__row--active[_ngcontent-%COMP%]{background:var(--color-accent-100);border-color:var(--color-accent-200);color:var(--color-accent-900)}.case-tree-node__row--active[_ngcontent-%COMP%]:hover{background:var(--color-accent-200)}.case-tree-node__row--active[_ngcontent-%COMP%] .case-tree-node__name[_ngcontent-%COMP%]{color:var(--color-accent-900)}.case-tree-node__toggle[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;padding:0;margin:0;font:inherit;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;flex:none;width:20px;height:20px;display:grid;place-items:center;color:var(--color-neutral-500)}.case-tree-node__toggle[_ngcontent-%COMP%]:hover{color:var(--color-text)}.case-tree-node__select[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;padding:0;margin:0;font:inherit;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;flex:1;min-width:0;display:flex;align-items:center;color:inherit}.case-tree-node__name[_ngcontent-%COMP%]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:400}.case-tree-node__statuses[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;flex:none;transition:opacity .12s}.case-tree-node__status-label[_ngcontent-%COMP%]{display:inline-flex;align-items:center;border:1px solid currentColor;font-size:9.5px;font-family:var(--font-heading);font-weight:600;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;padding:1px 6px;color:var(--status-idle-text)}.case-tree-node__status-label--running[_ngcontent-%COMP%]{color:var(--color-accent-700)}.case-tree-node__status-label--error[_ngcontent-%COMP%]{color:var(--red-deep)}.case-tree-node__status-label--pending[_ngcontent-%COMP%]{color:var(--status-pending-text)}.case-tree-node__status-label--killed[_ngcontent-%COMP%]{color:var(--status-killed-text)}.case-tree-node__row[_ngcontent-%COMP%]:hover .case-tree-node__statuses[_ngcontent-%COMP%], .case-tree-node__row[_ngcontent-%COMP%]:focus-within .case-tree-node__statuses[_ngcontent-%COMP%], .case-tree-node__row--active[_ngcontent-%COMP%] .case-tree-node__statuses[_ngcontent-%COMP%]{opacity:0;pointer-events:none}.case-tree-node__actions[_ngcontent-%COMP%]{flex:none;display:flex;align-items:center;gap:1px;opacity:0;pointer-events:none;transition:opacity .12s;position:absolute;right:9px}.case-tree-node__row[_ngcontent-%COMP%]:hover .case-tree-node__actions[_ngcontent-%COMP%], .case-tree-node__row[_ngcontent-%COMP%]:focus-within .case-tree-node__actions[_ngcontent-%COMP%], .case-tree-node__row--active[_ngcontent-%COMP%] .case-tree-node__actions[_ngcontent-%COMP%]{opacity:1;pointer-events:auto}.case-tree-node__action-btn[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;padding:0;margin:0;font:inherit;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;color:var(--color-neutral-500);transition:color .12s,background .12s}.case-tree-node__action-btn[_ngcontent-%COMP%]:hover{color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 14%,transparent)}.case-tree-node__action-btn--active[_ngcontent-%COMP%]{color:var(--color-accent)}.case-tree-node__action-btn--active[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{fill:currentColor}.case-tree-node__action-btn--danger[_ngcontent-%COMP%]:hover{color:var(--red);background:color-mix(in srgb,var(--red) 12%,transparent)}.case-tree-node__action-btn--confirm-yes[_ngcontent-%COMP%]{width:auto;padding:0 8px;gap:4px;font-family:var(--font-heading);font-weight:600;font-size:11px;color:#fff;background:var(--red)}.case-tree-node__action-btn--confirm-yes[_ngcontent-%COMP%]:hover{background:var(--red-deep);color:#fff}.case-tree-node__row--editing[_ngcontent-%COMP%]:hover .case-tree-node__actions[_ngcontent-%COMP%], .case-tree-node__row--editing[_ngcontent-%COMP%]:focus-within .case-tree-node__actions[_ngcontent-%COMP%], .case-tree-node__row--editing[_ngcontent-%COMP%]:hover .case-tree-node__statuses[_ngcontent-%COMP%], .case-tree-node__row--editing[_ngcontent-%COMP%]:focus-within .case-tree-node__statuses[_ngcontent-%COMP%]{opacity:0;pointer-events:none}.case-tree-node__edit[_ngcontent-%COMP%]{position:relative;flex:1;min-width:0;display:flex;align-items:center}.case-tree-node__name-input[_ngcontent-%COMP%]{width:100%;min-width:0;box-sizing:border-box;margin-block:-2px;padding:1px 6px;font-family:inherit;font-size:15px;font-weight:400;color:var(--color-text);background:var(--color-bg-secondary, #fff);border:1px solid var(--color-border);border-radius:6px}.case-tree-node__name-input[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:0}.case-tree-node__rename-error[_ngcontent-%COMP%]{position:absolute;top:100%;left:0;z-index:2;margin:2px 0 0;padding:2px 6px;font-size:11px;color:var(--color-error, #ff3b30);background:var(--color-bg-secondary, #fff);border-radius:4px;white-space:nowrap}']})},No=200;function Ao(o){return o?o.length>No?`Name is too long (max ${No} characters)`:null:"Name cannot be empty"}function Vl(o){let t=o.trim().split(/\s+/).filter(Boolean),e=t[0]?.[0]??"",n=t[1]?.[0]??t[0]?.[1]??"";return (e+n).toUpperCase()}function Nl(o){let t=new Set(o.map(w=>w.id??"")),e=new Map(o.map(w=>[w.id??"",w.modified??w.created??""])),n=w=>x$2(w$1({},Rt.toListItem(w)),{description:w.id??"",status:w.status??"IDLE",canCreateSubCase:!w.parentCaseId&&w.role==="ADMIN",children:[]}),i=new Map;for(let w of o)i.set(w.id??"",n(w));let a=[];for(let w of o){let E=i.get(w.id??""),D=w.parentCaseId;D&&t.has(D)?i.get(D).children.push(E):a.push(E);}let g=w=>w.sort((E,D)=>(e.get(D.id)??"")>(e.get(E.id)??"")?1:-1).map(E=>x$2(w$1({},E),{children:g(E.children)}));return g(a)}function Al(o,t){let e=[],n=[];for(let E of o){let D=Fo(E,e);D&&n.push(D);}for(let E of e)E.groupKey="favorites",E.groupLabel="Favorites";let i=new Date,a=new Date(i.getFullYear(),i.getMonth(),i.getDate()),g=new Date(a.getTime()-864e5),w=new Date(a.getTime()-6*864e5);for(let E of n){let D=t.get(E.id)??"",O=D?new Date(D):null;O&&O>=a?(E.groupKey="today",E.groupLabel="Today"):O&&O>=g?(E.groupKey="yesterday",E.groupLabel="Yesterday"):O&&O>=w?(E.groupKey="week",E.groupLabel="Previous 7 days"):(E.groupKey="older",E.groupLabel="Older");}return [...e,...n]}function Fo(o,t){if(o.favorite)return t.push(w$1({},o)),null;let e=[];for(let n of o.children){let i=Fo(n,t);i&&e.push(i);}return x$2(w$1({},o),{children:e})}function qo(o,t){return o.reduce((e,n)=>((n.name.toLowerCase().includes(t)||n.id.toLowerCase().includes(t))&&e.push(n),n.children.length&&e.push(...qo(n.children,t)),e),[])}function Lo(o,t,e){for(let n of o){if(n.id===t)return true;if(n.children.length&&Lo(n.children,t,e))return e.add(n.id),true}return false}var Fl=["compactSearchInput"],zo=(o,t)=>t.id;function ql(o,t){o&1&&(kf(),ws$1(0,"svg",35),Sg(1,"path",36),pl$1());}function Ll(o,t){if(o&1){let e=lC();ws$1(0,"button",32),Rg("click",function(){let i=If(e).$implicit,a=gC(3);return wf(a.namespaceSelected.emit(i))}),ws$1(1,"span",33),GC(2),pl$1(),ws$1(3,"span",34),GC(4),pl$1(),Jw(5,ql,2,0,":svg:svg",35),pl$1();}if(o&2){let e=t.$implicit,n=gC(3);Ug("shell-sidebar__ns-item--active",e.id===n.selectedNamespace()?.id),XE(2),Yg(n.nsInitial(e.name)),XE(2),Yg(e.name),XE(),eC(e.id===n.selectedNamespace()?.id?5:-1);}}function zl(o,t){if(o&1&&(ws$1(0,"div",13),rC(1,Ll,6,5,"button",31,zo),pl$1()),o&2){let e=gC(2);XE(),oC(e.namespaces());}}function Wl(o,t){if(o&1){let e=lC();ws$1(0,"div",2)(1,"div",3)(2,"button",4),Rg("click",function(){If(e);let i=gC();return wf(i.homeClicked.emit())}),Sg(3,"img",5),pl$1(),ws$1(4,"div",6)(5,"div",7)(6,"button",8),Rg("click",function(){If(e);let i=gC();return wf(i.nsMenuToggled.emit())}),ws$1(7,"span",9),GC(8),pl$1(),ws$1(9,"span",10),GC(10),pl$1(),kf(),ws$1(11,"svg",11),Sg(12,"path",12),pl$1()(),Jw(13,zl,3,0,"div",13),pl$1()()(),Ff(),ws$1(14,"div",14)(15,"button",15),Rg("click",function(){If(e);let i=gC();return wf(i.createRequested.emit())}),kf(),ws$1(16,"svg",16),Sg(17,"path",17),pl$1(),GC(18," New case "),pl$1(),Ff(),ws$1(19,"input",18),Rg("input",function(i){If(e);let a=gC();return wf(a.caseFilter.set(i.target.value))}),pl$1()()(),ws$1(20,"div",19)(21,"agentos-case-drawer",20),Rg("caseSelected",function(i){If(e);let a=gC();return wf(a.caseSelected.emit(i))})("createRequested",function(){If(e);let i=gC();return wf(i.createRequested.emit())})("subCaseCreateRequested",function(i){If(e);let a=gC();return wf(a.subCaseCreateRequested.emit(i))})("deleteRequested",function(i){If(e);let a=gC();return wf(a.deleteRequested.emit(i))})("starToggled",function(i){If(e);let a=gC();return wf(a.starToggled.emit(i))})("renameRequested",function(i){If(e);let a=gC();return wf(a.renameRequested.emit(i))}),pl$1()(),ws$1(22,"div",21)(23,"div",22)(24,"button",23),Rg("click",function(i){If(e);let a=gC();return wf(a.menuToggled.emit(i))}),ws$1(25,"span",24),GC(26),pl$1(),ws$1(27,"span",25)(28,"span",26),GC(29),pl$1()(),kf(),ws$1(30,"svg",16),Sg(31,"path",27),pl$1()(),Ff(),ws$1(32,"agentos-shell-user-menu",28),Rg("navigateTo",function(i){If(e);let a=gC();return wf(a.navigateTo.emit(i))})("themeToggled",function(){If(e);let i=gC();return wf(i.themeToggled.emit())})("themeVariantChanged",function(i){If(e);let a=gC();return wf(a.themeVariantChanged.emit(i))})("logsToggled",function(){If(e);let i=gC();return wf(i.logsToggled.emit())})("toolCallsToggled",function(){If(e);let i=gC();return wf(i.toolCallsToggled.emit())})("closed",function(i){If(e);let a=gC();return wf(a.menuClosed.emit(i))}),pl$1()(),ws$1(33,"button",29),Rg("click",function(){If(e);let i=gC();return wf(i.toggleCompact())}),kf(),ws$1(34,"svg",16),Sg(35,"path",30),pl$1()()();}if(o&2){let e=gC();Ug("shell-sidebar__top--wide",e.effectiveWidth()>=400),XE(6),Ug("shell-sidebar__ns-trigger--open",e.nsMenuOpen()),XE(2),Yg(e.nsInitial(e.selectedNamespace()?.name)),XE(2),Yg(e.selectedNamespace()?.name??"Select namespace"),XE(3),eC(e.nsMenuOpen()?13:-1),XE(),Ug("shell-sidebar__bottom-row--wide",e.effectiveWidth()>=400),XE(5),bg("value",e.caseFilter()),XE(2),bg("cases",e.cases())("workspaces",e.workspaces())("activeCaseId",e.activeCaseId())("compact",false)("filterQuery",e.caseFilter()),XE(5),Yg(e.userInitials()||"??"),XE(3),Yg(e.userName()),XE(3),bg("open",e.menuOpen())("isAdmin",e.isAdmin())("isDark",e.isDark())("themeVariant",e.themeVariant())("showTechnical",e.showTechnical())("showToolCalls",e.showToolCalls());}}function Ul(o,t){o&1&&(kf(),ws$1(0,"svg",35),Sg(1,"path",36),pl$1());}function $l(o,t){if(o&1){let e=lC();ws$1(0,"button",32),Rg("click",function(){let i=If(e).$implicit,a=gC(4);return wf(a.onCompactNsSelected(i))}),ws$1(1,"span",33),GC(2),pl$1(),ws$1(3,"span",34),GC(4),pl$1(),Jw(5,Ul,2,0,":svg:svg",35),pl$1();}if(o&2){let e=t.$implicit,n=gC(4);Ug("shell-sidebar__ns-item--active",e.id===n.selectedNamespace()?.id),XE(2),Yg(n.nsInitial(e.name)),XE(2),Yg(e.name),XE(),eC(e.id===n.selectedNamespace()?.id?5:-1);}}function Bl(o,t){if(o&1){let e=lC();ws$1(0,"div",52),Rg("click",function(){If(e);let i=gC(3);return wf(i.closeCompactNsMenu())})("keyup.escape",function(){If(e);let i=gC(3);return wf(i.closeCompactNsMenu())}),pl$1(),ws$1(1,"div",53),rC(2,$l,6,5,"button",31,zo),pl$1();}if(o&2){let e=gC(3);XE(),Hg("top",e.compactNsMenuTop(),"px")("left",e.compactNsMenuLeft(),"px"),XE(),oC(e.namespaces());}}function Hl(o,t){if(o&1){let e=lC();ws$1(0,"button",51),Rg("click",function(i){If(e);let a=gC(2);return wf(a.onCompactNsBtnClick(i))}),GC(1),pl$1(),Jw(2,Bl,4,4);}if(o&2){let e=gC(2);Ug("shell-sidebar__compact-ns-btn--open",e.compactNsMenuOpen()),bg("title",e.selectedNamespace()?.name??"Select namespace"),XE(),vl$1(" ",e.nsInitial(e.selectedNamespace()?.name)," "),XE(),eC(e.compactNsMenuOpen()?2:-1);}}function Gl(o,t){if(o&1){let e=lC();ws$1(0,"button",57),Rg("click",function(){If(e);let i=gC(3);return wf(i.clearCompactSearch())}),kf(),ws$1(1,"svg",35),Sg(2,"path",58),pl$1()();}}function jl(o,t){if(o&1){let e=lC();ws$1(0,"div",52),Rg("click",function(){If(e);let i=gC(2);return wf(i.closeCompactSearch())})("keyup.escape",function(){If(e);let i=gC(2);return wf(i.closeCompactSearch())}),pl$1(),ws$1(1,"div",54)(2,"input",55,0),Rg("input",function(i){If(e);let a=gC(2);return wf(a.onCompactSearchInput(i.target.value))})("keyup.escape",function(){If(e);let i=gC(2);return wf(i.closeCompactSearch())}),pl$1(),Jw(4,Gl,3,0,"button",56),pl$1();}if(o&2){let e=gC(2);XE(),Hg("top",e.compactSearchTop(),"px")("left",e.compactSearchLeft(),"px"),XE(),bg("value",e.caseFilter()),XE(2),eC(e.caseFilter()?4:-1);}}function Ql(o,t){if(o&1){let e=lC();ws$1(0,"button",37),Rg("click",function(){If(e);let i=gC();return wf(i.homeClicked.emit())}),Sg(1,"img",38),pl$1(),Jw(2,Hl,3,5),ws$1(3,"button",39),Rg("click",function(){If(e);let i=gC();return wf(i.createRequested.emit())}),kf(),ws$1(4,"svg",40),Sg(5,"path",17),pl$1()(),Ff(),ws$1(6,"button",41),Rg("click",function(i){If(e);let a=gC();return wf(a.onCompactSearchBtnClick(i))}),kf(),ws$1(7,"svg",42),Sg(8,"circle",43)(9,"path",44),pl$1()(),Jw(10,jl,5,6),Ff(),Sg(11,"div",45),ws$1(12,"div",19)(13,"agentos-case-drawer",46),Rg("caseSelected",function(i){If(e);let a=gC();return wf(a.caseSelected.emit(i))})("createRequested",function(){If(e);let i=gC();return wf(i.createRequested.emit())})("subCaseCreateRequested",function(i){If(e);let a=gC();return wf(a.subCaseCreateRequested.emit(i))})("deleteRequested",function(i){If(e);let a=gC();return wf(a.deleteRequested.emit(i))})("starToggled",function(i){If(e);let a=gC();return wf(a.starToggled.emit(i))}),pl$1()(),ws$1(14,"button",47),Rg("click",function(i){If(e);let a=gC();return wf(a.onCompactUserBtnClick(i))}),GC(15),pl$1(),ws$1(16,"agentos-shell-user-menu",48),Rg("navigateTo",function(i){If(e);let a=gC();return wf(a.navigateTo.emit(i))})("themeToggled",function(){If(e);let i=gC();return wf(i.themeToggled.emit())})("themeVariantChanged",function(i){If(e);let a=gC();return wf(a.themeVariantChanged.emit(i))})("logsToggled",function(){If(e);let i=gC();return wf(i.logsToggled.emit())})("toolCallsToggled",function(){If(e);let i=gC();return wf(i.toolCallsToggled.emit())})("closed",function(i){If(e);let a=gC();return wf(a.menuClosed.emit(i))}),pl$1(),ws$1(17,"button",49),Rg("click",function(){If(e);let i=gC();return wf(i.toggleCompact())}),kf(),ws$1(18,"svg",16),Sg(19,"path",50),pl$1()();}if(o&2){let e=gC();XE(2),eC(e.showNsPicker()?2:-1),XE(4),Ug("shell-sidebar__compact-search-btn--active",e.compactSearchOpen()||e.caseFilter()),XE(4),eC(e.compactSearchOpen()?10:-1),XE(3),bg("cases",e.cases())("workspaces",e.workspaces())("activeCaseId",e.activeCaseId())("compact",true)("filterQuery",e.caseFilter()),XE(2),vl$1(" ",e.userInitials()||"?"," "),XE(),bg("open",e.menuOpen())("isAdmin",e.isAdmin())("isDark",e.isDark())("themeVariant",e.themeVariant())("showTechnical",e.showTechnical())("showToolCalls",e.showToolCalls())("fixedTop",e.compactMenuTop())("fixedLeft",e.compactMenuLeft());}}var Nt=class o{brandHovered=false;static COMPACT_WIDTH=64;isCompact=Gi$1(false);caseFilter=Gi$1("");compactMenuTop=Gi$1(0);compactMenuLeft=Gi$1(0);compactSearchOpen=Gi$1(false);compactSearchTop=Gi$1(0);compactSearchLeft=Gi$1(0);compactNsMenuOpen=Gi$1(false);compactNsMenuTop=Gi$1(0);compactNsMenuLeft=Gi$1(0);compactSearchInputRef=QB("compactSearchInput");onCompactSearchBtnClick(t){let e=t.currentTarget.getBoundingClientRect();this.compactSearchTop.set(e.top),this.compactSearchLeft.set(e.right+8),this.compactSearchOpen.update(n=>!n),this.compactSearchOpen()&&setTimeout(()=>this.compactSearchInputRef()?.nativeElement.focus(),0);}onCompactSearchInput(t){this.caseFilter.set(t);}closeCompactSearch(){this.compactSearchOpen.set(false);}clearCompactSearch(){this.caseFilter.set(""),this.compactSearchOpen.set(false);}onCompactNsBtnClick(t){let e=t.currentTarget.getBoundingClientRect();this.compactNsMenuTop.set(e.top),this.compactNsMenuLeft.set(e.right+8),this.compactNsMenuOpen.update(n=>!n);}closeCompactNsMenu(){this.compactNsMenuOpen.set(false);}onCompactNsSelected(t){this.compactNsMenuOpen.set(false),this.namespaceSelected.emit(t);}onCompactUserBtnClick(t){let e=t.currentTarget.getBoundingClientRect();this.compactMenuTop.set(e.bottom),this.compactMenuLeft.set(e.right+8),this.menuToggled.emit(t);}toggleCompact(){this.isCompact.update(t=>!t);}nsInitial(t){return (t??"?").charAt(0).toUpperCase()}effectiveWidth=mT(()=>this.sidebarOpen()?this.isCompact()?o.COMPACT_WIDTH:this.sidebarWidth():0);sidebarWidth=ZB.required();sidebarOpen=ZB.required();selectedNamespace=ZB.required();namespaces=ZB.required();showNsPicker=ZB.required();nsMenuOpen=ZB.required();workspaces=ZB({});cases=ZB.required();activeCaseId=ZB.required();userInitials=ZB.required();userName=ZB.required();menuOpen=ZB.required();isAdmin=ZB.required();isDark=ZB.required();themeVariant=ZB.required();showTechnical=ZB.required();showToolCalls=ZB.required();collapseRequested=qB();homeClicked=qB();namespaceSelected=qB();nsMenuToggled=qB();nsMenuClosed=qB();caseSelected=qB();createRequested=qB();subCaseCreateRequested=qB();deleteRequested=qB();starToggled=qB();renameRequested=qB();menuToggled=qB();menuClosed=qB();navigateTo=qB();themeToggled=qB();themeVariantChanged=qB();logsToggled=qB();toolCallsToggled=qB();static \u0275fac=function(e){return new(e||o)};static \u0275cmp=xw({type:o,selectors:[["agentos-shell-sidebar"]],viewQuery:function(e,n){e&1&&jg(n.compactSearchInputRef,Fl,5),e&2&&wC();},inputs:{sidebarWidth:[1,"sidebarWidth"],sidebarOpen:[1,"sidebarOpen"],selectedNamespace:[1,"selectedNamespace"],namespaces:[1,"namespaces"],showNsPicker:[1,"showNsPicker"],nsMenuOpen:[1,"nsMenuOpen"],workspaces:[1,"workspaces"],cases:[1,"cases"],activeCaseId:[1,"activeCaseId"],userInitials:[1,"userInitials"],userName:[1,"userName"],menuOpen:[1,"menuOpen"],isAdmin:[1,"isAdmin"],isDark:[1,"isDark"],themeVariant:[1,"themeVariant"],showTechnical:[1,"showTechnical"],showToolCalls:[1,"showToolCalls"]},outputs:{collapseRequested:"collapseRequested",homeClicked:"homeClicked",namespaceSelected:"namespaceSelected",nsMenuToggled:"nsMenuToggled",nsMenuClosed:"nsMenuClosed",caseSelected:"caseSelected",createRequested:"createRequested",subCaseCreateRequested:"subCaseCreateRequested",deleteRequested:"deleteRequested",starToggled:"starToggled",renameRequested:"renameRequested",menuToggled:"menuToggled",menuClosed:"menuClosed",navigateTo:"navigateTo",themeToggled:"themeToggled",themeVariantChanged:"themeVariantChanged",logsToggled:"logsToggled",toolCallsToggled:"toolCallsToggled"},decls:3,vars:7,consts:[["compactSearchInput",""],[1,"shell-sidebar"],[1,"shell-sidebar__top"],[1,"shell-sidebar__top-row"],["type","button","title","Home",1,"shell-sidebar__logo",3,"click"],["src","CODAY-Logo.png","alt","Coday",1,"shell-sidebar__logo-img"],[1,"shell-sidebar__ns-wrap"],[1,"shell-sidebar__ns-picker"],[1,"shell-sidebar__ns-trigger",3,"click"],[1,"shell-sidebar__ns-mark"],[1,"shell-sidebar__ns-name"],["width","12","height","12","viewBox","0 0 24 24","fill","none","aria-hidden","true",1,"shell-sidebar__ns-chevron-icon"],["d","M6 9l6 6 6-6","stroke","currentColor","stroke-width","1.8","stroke-linecap","round","stroke-linejoin","round"],[1,"shell-sidebar__ns-menu"],[1,"shell-sidebar__bottom-row"],["type","button","title","New case","dsBlueprint","",1,"btn","btn-primary","shell-sidebar__new-case-btn",3,"click"],["width","14","height","14","viewBox","0 0 24 24","fill","none","aria-hidden","true"],["d","M5 12h14M12 5v14","stroke","currentColor","stroke-width","1.8","stroke-linecap","round"],["placeholder","Filter cases\u2026","type","search","aria-label","Filter cases",1,"input","shell-sidebar__search",3,"input","value"],[1,"shell-sidebar__cases-scroll"],[3,"caseSelected","createRequested","subCaseCreateRequested","deleteRequested","starToggled","renameRequested","cases","workspaces","activeCaseId","compact","filterQuery"],[1,"shell-sidebar__bottom"],[1,"shell-sidebar__user-menu"],["type","button","title","User menu",1,"shell-sidebar__user-btn",3,"click"],[1,"shell-sidebar__user-avatar"],[1,"shell-sidebar__user-info"],[1,"shell-sidebar__user-name"],["d","M7 9l5-5 5 5M7 15l5 5 5-5","stroke","currentColor","stroke-width","1.6","stroke-linecap","round","stroke-linejoin","round"],["variant","desktop",3,"navigateTo","themeToggled","themeVariantChanged","logsToggled","toolCallsToggled","closed","open","isAdmin","isDark","themeVariant","showTechnical","showToolCalls"],["type","button","title","Collapse",1,"shell-sidebar__collapse-btn",3,"click"],["d","M15 18l-6-6 6-6","stroke","currentColor","stroke-width","1.8","stroke-linecap","round","stroke-linejoin","round"],[1,"shell-sidebar__ns-item",3,"shell-sidebar__ns-item--active"],[1,"shell-sidebar__ns-item",3,"click"],[1,"shell-sidebar__ns-item-mark"],[1,"shell-sidebar__ns-item-name"],["width","12","height","12","viewBox","0 0 24 24","fill","none","aria-hidden","true"],["d","M20 6L9 17l-5-5","stroke","var(--color-accent)","stroke-width","2","stroke-linecap","round","stroke-linejoin","round"],["type","button","title","Home",1,"shell-sidebar__logo","shell-sidebar__logo--compact",3,"click"],["src","CODAY-Logo.png","alt","Coday",1,"shell-sidebar__logo-img","shell-sidebar__logo-img--compact"],["type","button","title","New case","dsBlueprint","",1,"btn","btn-primary","btn-icon",3,"click"],["width","16","height","16","viewBox","0 0 24 24","fill","none","aria-hidden","true"],["type","button","title","Filter cases",1,"shell-sidebar__compact-search-btn",3,"click"],["width","15","height","15","viewBox","0 0 24 24","fill","none","aria-hidden","true"],["cx","11","cy","11","r","8","stroke","currentColor","stroke-width","1.6","stroke-linecap","round"],["d","m21 21-4.3-4.3","stroke","currentColor","stroke-width","1.6","stroke-linecap","round"],[1,"shell-sidebar__rail-divider"],[3,"caseSelected","createRequested","subCaseCreateRequested","deleteRequested","starToggled","cases","workspaces","activeCaseId","compact","filterQuery"],["type","button","title","User menu",1,"shell-sidebar__user-avatar-btn",3,"click"],["variant","compact",3,"navigateTo","themeToggled","themeVariantChanged","logsToggled","toolCallsToggled","closed","open","isAdmin","isDark","themeVariant","showTechnical","showToolCalls","fixedTop","fixedLeft"],["type","button","title","Expand",1,"shell-sidebar__collapse-btn",3,"click"],["d","M9 18l6-6-6-6","stroke","currentColor","stroke-width","1.8","stroke-linecap","round","stroke-linejoin","round"],["type","button",1,"shell-sidebar__compact-ns-btn",3,"click","title"],["role","presentation",1,"shell-sidebar__compact-backdrop",3,"click","keyup.escape"],[1,"shell-sidebar__compact-ns-menu"],[1,"shell-sidebar__compact-search-panel"],["type","search","placeholder","Filter cases\u2026","aria-label","Filter cases",1,"input","shell-sidebar__compact-search-input",3,"input","keyup.escape","value"],["type","button","title","Clear filter",1,"shell-sidebar__compact-search-clear"],["type","button","title","Clear filter",1,"shell-sidebar__compact-search-clear",3,"click"],["d","M18 6 6 18M6 6l12 12","stroke","currentColor","stroke-width","1.8","stroke-linecap","round"]],template:function(e,n){e&1&&(ws$1(0,"div",1),Jw(1,Wl,36,23)(2,Ql,20,18),pl$1()),e&2&&(Hg("width",n.effectiveWidth(),"px")("overflow",n.effectiveWidth()===0?"hidden":"visible"),Ug("shell-sidebar--compact",n.isCompact()),XE(),eC(n.isCompact()?2:1));},dependencies:[Vt,D,Kn],styles:["[_nghost-%COMP%]{display:contents}@media(max-width:900px){[_nghost-%COMP%]{display:none!important}}.shell-sidebar[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;overflow:visible;position:relative;border-right:1px solid var(--color-divider);background:var(--color-bg);flex-shrink:0;transition:width .24s cubic-bezier(.4,0,.2,1);white-space:nowrap}.shell-sidebar--compact[_ngcontent-%COMP%]{align-items:center;gap:10px;padding:16px 0 12px;overflow:hidden}.shell-sidebar__logo[_ngcontent-%COMP%]{appearance:none;border:none;padding:0;margin:0;font:inherit;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;display:flex;align-items:center;gap:8px;flex:none;background:transparent;cursor:pointer;transition:opacity .14s ease}.shell-sidebar__logo[_ngcontent-%COMP%]:hover{opacity:.8}.shell-sidebar__logo--compact[_ngcontent-%COMP%]{width:30px;height:30px;display:grid;place-items:center}.shell-sidebar__logo-name[_ngcontent-%COMP%]{font-weight:700;font-size:18px;color:var(--color-text);letter-spacing:-.02em;white-space:nowrap}.shell-sidebar__logo-img[_ngcontent-%COMP%]{height:28px;width:auto;object-fit:contain;display:block;flex:none}.shell-sidebar__logo-img--compact[_ngcontent-%COMP%]{height:26px;width:26px;object-fit:cover;object-position:left center}.shell-sidebar__top[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border-bottom:1px solid var(--color-divider);flex-shrink:0;overflow:visible;width:100%;box-sizing:border-box}.shell-sidebar__top-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;min-width:0}.shell-sidebar__ns-wrap[_ngcontent-%COMP%]{flex:1;min-width:0}.shell-sidebar__bottom-row[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px}.shell-sidebar__bottom-row--wide[_ngcontent-%COMP%]{flex-direction:row}.shell-sidebar__bottom-row--wide[_ngcontent-%COMP%] .shell-sidebar__new-case-btn[_ngcontent-%COMP%], .shell-sidebar__bottom-row--wide[_ngcontent-%COMP%] .shell-sidebar__search[_ngcontent-%COMP%]{flex:1;min-width:0}.shell-sidebar__new-case-btn[_ngcontent-%COMP%], .shell-sidebar__search[_ngcontent-%COMP%]{width:100%}.shell-sidebar__new-case-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;padding:0 12px;height:34px;font-size:14px;font-family:var(--font-heading);font-weight:600;white-space:nowrap;flex-shrink:0}.shell-sidebar__search[_ngcontent-%COMP%]{width:100%;min-height:34px;font-size:14px}.shell-sidebar__ns-wrap[_ngcontent-%COMP%]{flex:1;min-width:0;position:relative}.shell-sidebar__ns-picker[_ngcontent-%COMP%]{position:relative}.shell-sidebar__ns-trigger[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;margin:0;font:inherit;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:100%;display:flex;align-items:center;gap:6px;padding:5px 8px;border:1px solid var(--color-divider);background:var(--color-surface);color:var(--color-text);transition:border-color .15s}.shell-sidebar__ns-trigger[_ngcontent-%COMP%]:hover, .shell-sidebar__ns-trigger--open[_ngcontent-%COMP%]{border-color:var(--color-accent)}.shell-sidebar__ns-mark[_ngcontent-%COMP%]{width:20px;height:20px;flex:none;display:grid;place-items:center;background:var(--color-accent-900);color:var(--color-accent-100);font-family:var(--font-heading);font-weight:600;font-size:11px}.shell-sidebar__ns-name[_ngcontent-%COMP%]{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px;font-family:var(--font-heading);font-weight:600}.shell-sidebar__ns-chevron[_ngcontent-%COMP%]{color:var(--color-neutral-500);font-size:.7rem;flex-shrink:0}.shell-sidebar__ns-chevron-icon[_ngcontent-%COMP%]{flex-shrink:0;color:var(--color-neutral-500);opacity:.7}.shell-sidebar__ns-menu[_ngcontent-%COMP%]{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:100;background:var(--color-surface);border:1px solid var(--color-divider);box-shadow:var(--shadow-lg);padding:4px}.shell-sidebar__ns-item[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;margin:0;font:inherit;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;display:flex;align-items:center;gap:6px;width:100%;padding:7px 8px;color:var(--color-text);font-size:14px;transition:background .1s}.shell-sidebar__ns-item[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover)}.shell-sidebar__ns-item--active[_ngcontent-%COMP%]{background:var(--color-accent-100);color:var(--color-accent-900)}.shell-sidebar__ns-item-mark[_ngcontent-%COMP%]{width:18px;height:18px;flex:none;display:grid;place-items:center;border:1px solid var(--color-divider);background:var(--color-surface-secondary);color:var(--color-neutral-600);font-family:var(--font-heading);font-weight:600;font-size:10px}.shell-sidebar__ns-item-name[_ngcontent-%COMP%]{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shell-sidebar__ns-item-check[_ngcontent-%COMP%]{color:var(--color-accent);font-size:.75rem;flex-shrink:0}.shell-sidebar__cases-scroll[_ngcontent-%COMP%]{flex:1;overflow-y:auto;overflow-x:hidden;padding:2px 0 10px}.shell-sidebar--compact[_ngcontent-%COMP%] .shell-sidebar__cases-scroll[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:7px;padding:2px 0;width:100%;align-items:center}.shell-sidebar__cases-scroll[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px}.shell-sidebar__cases-scroll[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:var(--color-divider)}.shell-sidebar__rail-divider[_ngcontent-%COMP%]{width:26px;height:1px;background:var(--color-divider);flex-shrink:0}.shell-sidebar__bottom[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;padding:8px 10px;border-top:1px solid var(--color-divider);flex-shrink:0}.shell-sidebar__user-menu[_ngcontent-%COMP%]{position:relative;flex:1;min-width:0}.shell-sidebar__user-btn[_ngcontent-%COMP%]{appearance:none;border:none;margin:0;font:inherit;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:100%;display:flex;align-items:center;gap:9px;padding:5px 6px;border:1px solid transparent;background:transparent;color:var(--color-text);transition:background .14s,border-color .14s}.shell-sidebar__user-btn[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover);border-color:var(--color-divider)}.shell-sidebar__user-avatar[_ngcontent-%COMP%]{width:28px;height:28px;flex:none;display:grid;place-items:center;border:1px solid var(--color-divider);background:var(--color-surface);font-family:var(--font-heading);font-weight:600;font-size:12px;color:var(--color-accent-700)}.shell-sidebar__user-info[_ngcontent-%COMP%]{flex:1;min-width:0;display:flex;flex-direction:column}.shell-sidebar__user-name[_ngcontent-%COMP%]{display:block;font-size:15px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-heading);font-weight:600;color:var(--color-text)}.shell-sidebar__user-avatar-btn[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;padding:0;margin:0;font:inherit;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;position:relative;width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--color-divider);background:var(--color-surface);font-family:var(--font-heading);font-weight:600;font-size:12px;color:var(--color-accent-700);cursor:pointer;transition:border-color .14s}.shell-sidebar__user-avatar-btn[_ngcontent-%COMP%]:hover{border-color:var(--color-accent)}.shell-sidebar__compact-ns-btn[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;padding:0;margin:0;font:inherit;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:30px;height:30px;flex:none;display:grid;place-items:center;border:1px solid var(--color-divider);background:var(--color-accent-900);color:var(--color-accent-100);font-family:var(--font-heading);font-weight:600;font-size:13px;cursor:pointer;transition:border-color .14s}.shell-sidebar__compact-ns-btn[_ngcontent-%COMP%]:hover, .shell-sidebar__compact-ns-btn--open[_ngcontent-%COMP%]{border-color:var(--color-accent)}.shell-sidebar__compact-ns-menu[_ngcontent-%COMP%]{position:fixed;z-index:500;min-width:200px;max-height:320px;overflow-y:auto;background:var(--color-surface);border:1px solid var(--color-divider);box-shadow:var(--shadow-lg);padding:4px}.shell-sidebar__compact-search-btn[_ngcontent-%COMP%]{appearance:none;border:none;padding:0;margin:0;font:inherit;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:30px;height:30px;flex:none;display:grid;place-items:center;border:1px solid var(--color-divider);background:transparent;color:var(--color-neutral-600);cursor:pointer;transition:border-color .14s,color .14s}.shell-sidebar__compact-search-btn[_ngcontent-%COMP%]:hover, .shell-sidebar__compact-search-btn--active[_ngcontent-%COMP%]{border-color:var(--color-accent);color:var(--color-accent)}.shell-sidebar__compact-search-panel[_ngcontent-%COMP%]{position:fixed;z-index:500;width:220px;background:var(--color-surface);border:1px solid var(--color-divider);box-shadow:var(--shadow-lg);padding:6px;transform:translateY(-50%);display:flex;align-items:center;gap:4px}.shell-sidebar__compact-search-input[_ngcontent-%COMP%]{width:100%;min-height:34px;font-size:14px}.shell-sidebar__compact-search-clear[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;padding:0;margin:0;font:inherit;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;display:grid;place-items:center;width:24px;height:24px;flex-shrink:0;color:var(--color-neutral-500);transition:color .12s}.shell-sidebar__compact-search-clear[_ngcontent-%COMP%]:hover{color:var(--color-text)}.shell-sidebar__compact-backdrop[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:499}.shell-sidebar__collapse-btn[_ngcontent-%COMP%]{appearance:none;border:none;padding:0;margin:0;font:inherit;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:30px;height:30px;flex:none;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-divider);background:transparent;color:var(--color-neutral-600);cursor:pointer;transition:border-color .14s,color .14s}.shell-sidebar__collapse-btn[_ngcontent-%COMP%]:hover{border-color:var(--color-accent);color:var(--color-accent)}"]})};var Kl=(o,t)=>t.id;function Yl(o,t){o&1&&(kf(),hl$1(0,"svg",24),_g(1,"path",25),gl$1());}function Jl(o,t){if(o&1){let e=lC();hl$1(0,"button",21),Og("click",function(){let i=If(e).$implicit,a=gC(2);return wf(a.namespaceSelected.emit(i))}),hl$1(1,"span",22),GC(2),gl$1(),hl$1(3,"span",23),GC(4),gl$1(),Jw(5,Yl,2,0,":svg:svg",24),gl$1();}if(o&2){let e=t.$implicit,n=gC(2);Ug("shell-topbar-mobile__ns-item--active",e.id===n.selectedNamespace()?.id),XE(2),Yg(e.name.charAt(0).toUpperCase()),XE(2),Yg(e.name),XE(),eC(e.id===n.selectedNamespace()?.id?5:-1);}}function Xl(o,t){if(o&1){let e=lC();hl$1(0,"div",18),Og("click",function(i){If(e);let a=gC();return wf(a.nsMenuClosed.emit(i))})("keyup.escape",function(i){If(e);let a=gC();return wf(a.nsMenuClosed.emit(i))}),gl$1(),hl$1(1,"div",19),rC(2,Jl,6,5,"button",20,Kl),gl$1();}if(o&2){let e=gC();XE(2),oC(e.namespaces());}}var At=class o{selectedNamespace=ZB.required();namespaces=ZB.required();nsMenuOpen=ZB.required();drawerToggled=qB();createRequested=qB();namespaceSelected=qB();nsMenuToggled=qB();nsMenuClosed=qB();static \u0275fac=function(e){return new(e||o)};static \u0275cmp=xw({type:o,selectors:[["agentos-shell-topbar-mobile"]],inputs:{selectedNamespace:[1,"selectedNamespace"],namespaces:[1,"namespaces"],nsMenuOpen:[1,"nsMenuOpen"]},outputs:{drawerToggled:"drawerToggled",createRequested:"createRequested",namespaceSelected:"namespaceSelected",nsMenuToggled:"nsMenuToggled",nsMenuClosed:"nsMenuClosed"},decls:21,vars:5,consts:[[1,"shell-topbar-mobile__inner"],["type","button","title","Cases",1,"shell-topbar-mobile__hamburger",3,"click"],["width","18","height","18","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","1.5","stroke-linecap","round","aria-hidden","true"],["x1","4","x2","20","y1","6","y2","6"],["x1","4","x2","20","y1","12","y2","12"],["x1","4","x2","20","y1","18","y2","18"],["src","CODAY-Logo.png","alt","Coday",1,"shell-topbar-mobile__logo-img"],[1,"shell-topbar-mobile__ns-wrap"],["type","button",1,"shell-topbar-mobile__ns-btn",3,"click"],[1,"shell-topbar-mobile__ns-mark"],[1,"shell-topbar-mobile__ns-name"],["width","13","height","13","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","1.5","stroke-linecap","round","stroke-linejoin","round","aria-hidden","true",1,"shell-topbar-mobile__ns-chevron"],["d","m6 9 6 6 6-6"],[1,"shell-topbar-mobile__spacer"],["type","button","title","New case",1,"btn","btn-primary","btn-icon","shell-topbar-mobile__new-btn",3,"click"],["width","16","height","16","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","1.5","stroke-linecap","round","aria-hidden","true"],["d","M5 12h14"],["d","M12 5v14"],["role","presentation","tabindex","-1",1,"shell-topbar-mobile__ns-backdrop",3,"click","keyup.escape"],[1,"shell-topbar-mobile__ns-menu"],["type","button",1,"shell-topbar-mobile__ns-item",3,"shell-topbar-mobile__ns-item--active"],["type","button",1,"shell-topbar-mobile__ns-item",3,"click"],[1,"shell-topbar-mobile__ns-item-mark"],[1,"shell-topbar-mobile__ns-item-name"],["width","14","height","14","viewBox","0 0 24 24","fill","none","stroke","var(--color-accent)","stroke-width","2","stroke-linecap","round","stroke-linejoin","round","aria-hidden","true"],["d","M20 6 9 17l-5-5"]],template:function(e,n){e&1&&(hl$1(0,"div",0)(1,"button",1),Og("click",function(){return n.drawerToggled.emit()}),kf(),hl$1(2,"svg",2),_g(3,"line",3)(4,"line",4)(5,"line",5),gl$1()(),Ff(),_g(6,"img",6),hl$1(7,"div",7)(8,"button",8),Og("click",function(a){return n.nsMenuToggled.emit(a)}),hl$1(9,"span",9),GC(10),gl$1(),hl$1(11,"span",10),GC(12),gl$1(),kf(),hl$1(13,"svg",11),_g(14,"path",12),gl$1()(),Jw(15,Xl,4,0),gl$1(),Ff(),_g(16,"span",13),hl$1(17,"button",14),Og("click",function(){return n.createRequested.emit()}),kf(),hl$1(18,"svg",15),_g(19,"path",16)(20,"path",17),gl$1()()()),e&2&&(XE(8),Ug("shell-topbar-mobile__ns-btn--open",n.nsMenuOpen()),XE(2),Yg((n.selectedNamespace()?.name??"N").charAt(0).toUpperCase()),XE(2),Yg(n.selectedNamespace()?.name??""),XE(3),eC(n.nsMenuOpen()?15:-1));},styles:["[_nghost-%COMP%]{display:none}.shell-topbar-mobile__inner[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;width:100%;height:100%;padding:0 10px}.shell-topbar-mobile__hamburger[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;padding:0;margin:0;font:inherit;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:34px;height:34px;flex:none;display:inline-flex;align-items:center;justify-content:center;color:var(--color-text);transition:color .14s}.shell-topbar-mobile__hamburger[_ngcontent-%COMP%]:hover{color:var(--color-accent)}.shell-topbar-mobile__logo-img[_ngcontent-%COMP%]{height:26px;width:26px;flex:none;object-fit:cover;object-position:left center;display:block}.shell-topbar-mobile__ns-wrap[_ngcontent-%COMP%]{position:relative;min-width:0;flex:1}.shell-topbar-mobile__ns-btn[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;margin:0;font:inherit;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;display:flex;align-items:center;gap:7px;padding:5px 9px;background:var(--color-surface);border:1px solid var(--color-divider);color:var(--color-text);font-size:13px;width:100%;min-width:0;transition:border-color .14s}.shell-topbar-mobile__ns-btn[_ngcontent-%COMP%]:hover{border-color:var(--color-neutral-500)}.shell-topbar-mobile__ns-btn--open[_ngcontent-%COMP%]{border-color:var(--color-accent)}.shell-topbar-mobile__ns-mark[_ngcontent-%COMP%]{width:18px;height:18px;flex:none;display:grid;place-items:center;background:var(--color-accent-900);color:var(--color-accent-100);font-family:var(--font-heading);font-weight:600;font-size:11px}.shell-topbar-mobile__ns-name[_ngcontent-%COMP%]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.shell-topbar-mobile__ns-chevron[_ngcontent-%COMP%]{flex:none;opacity:.6}.shell-topbar-mobile__ns-backdrop[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:30}.shell-topbar-mobile__ns-menu[_ngcontent-%COMP%]{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:31;background:var(--color-bg);border:1px solid var(--color-divider);box-shadow:var(--shadow-lg);max-height:300px;overflow-y:auto}.shell-topbar-mobile__ns-item[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;margin:0;font:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:100%;display:flex;align-items:center;gap:8px;padding:9px 12px;font-size:14px;color:var(--color-text);text-align:left;transition:background .1s}.shell-topbar-mobile__ns-item[_ngcontent-%COMP%]:hover{background:color-mix(in srgb,var(--color-text) 6%,transparent)}.shell-topbar-mobile__ns-item--active[_ngcontent-%COMP%]{color:var(--color-accent-700)}.shell-topbar-mobile__ns-item-mark[_ngcontent-%COMP%]{width:20px;height:20px;flex:none;display:grid;place-items:center;border:1px solid var(--color-divider);font-family:var(--font-heading);font-weight:600;font-size:11px;color:var(--color-neutral-600)}.shell-topbar-mobile__ns-item-name[_ngcontent-%COMP%]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell-topbar-mobile__spacer[_ngcontent-%COMP%]{display:none}.shell-topbar-mobile__new-btn[_ngcontent-%COMP%]{width:32px;height:32px;flex:none}@media(max-width:900px){[_nghost-%COMP%]{display:flex;align-items:center;height:52px;flex:none;border-bottom:1px solid var(--color-divider);background:var(--color-bg);flex-shrink:0;position:relative;z-index:10}}"]})};var Zl=(o,t)=>t.label,ec=(o,t)=>t.id;function tc(o,t){if(o&1){let e=lC();ws$1(0,"button",44),Rg("click",function(i){If(e);let a=gC(2).$implicit;return gC(3).subCaseCreateRequested.emit(a.id),wf(i.stopPropagation())}),kf(),ws$1(1,"svg",38),Sg(2,"path",45),pl$1()();}}function nc(o,t){if(o&1){let e=lC();ws$1(0,"div",31),Jw(1,tc,3,0,"button",33),ws$1(2,"button",34),Rg("click",function(i){If(e);let a=gC().$implicit,g=gC(3);return wf(g.onStarToggle(i,a))}),kf(),ws$1(3,"svg",35),Sg(4,"path",36),pl$1()(),Ff(),ws$1(5,"button",37),Rg("click",function(i){If(e);let a=gC().$implicit,g=gC(3);return wf(g.onDeleteRequest(i,a.id??""))}),kf(),ws$1(6,"svg",38),Sg(7,"path",39)(8,"path",40)(9,"path",41)(10,"line",42)(11,"line",43),pl$1()()();}if(o&2){let e=gC().$implicit;XE(),eC(!e.parentCaseId&&e.role==="ADMIN"?1:-1),XE(),Ug("mobile-drawer__case-btn--active",!!e.favorite||!!e.starred),XE(),Tg("fill",e.favorite||e.starred?"currentColor":"none");}}function oc(o,t){if(o&1){let e=lC();ws$1(0,"div",32)(1,"button",46),Rg("click",function(i){If(e);let a=gC().$implicit,g=gC(3);return wf(g.onDeleteConfirm(i,a.id))}),kf(),ws$1(2,"svg",47),Sg(3,"path",48),pl$1()(),Ff(),ws$1(4,"button",49),Rg("click",function(i){If(e);let a=gC(4);return wf(a.onDeleteCancel(i))}),kf(),ws$1(5,"svg",50),Sg(6,"path",7)(7,"path",8),pl$1()()();}}function ic(o,t){if(o&1){let e=lC();ws$1(0,"button",27),Rg("click",function(){let i=If(e).$implicit,a=gC(3);return wf(a.onCaseSelect(i.id??""))}),Sg(1,"agentos-case-status-glyph",28),ws$1(2,"span",29),GC(3),pl$1(),Sg(4,"agentos-case-git-badge",30),Jw(5,nc,12,4,"div",31)(6,oc,8,0,"div",32),pl$1();}if(o&2){let e=t.$implicit,n=gC(3);Ug("mobile-drawer__case-row--active",e.id===n.activeCaseId())("mobile-drawer__case-row--confirming",n.confirmingDeleteId()===e.id),XE(),bg("status",e.status)("size",15),XE(2),Yg(e.title??e.id),XE(),bg("view",n.workspaces()[e.id]),XE(),eC(n.confirmingDeleteId()!==e.id?5:6);}}function ac(o,t){if(o&1&&(ws$1(0,"div",15)(1,"div",25),GC(2),pl$1(),rC(3,ic,7,9,"button",26,ec),pl$1()),o&2){let e=t.$implicit;XE(2),Yg(e.label),XE(),oC(e.cases);}}function rc(o,t){o&1&&(ws$1(0,"p",16),GC(1,"No cases yet."),pl$1());}function sc(o,t){if(o&1){let e=lC();ws$1(0,"button",54),Rg("click",function(){If(e);let i=gC(3);return wf(i.onMenuNavigate("/agentos/admin"))}),kf(),ws$1(1,"svg",55),Sg(2,"path",70),pl$1(),GC(3," Administration "),pl$1();}}function lc(o,t){o&1&&(kf(),ws$1(0,"svg",55),Sg(1,"path",71),pl$1());}function cc(o,t){o&1&&(kf(),ws$1(0,"svg",55),Sg(1,"circle",72)(2,"path",73)(3,"path",74)(4,"path",75)(5,"path",76)(6,"path",77)(7,"path",78)(8,"path",79)(9,"path",80),pl$1());}function dc(o,t){if(o&1){let e=lC();ws$1(0,"button",51),Rg("click",function(){If(e);let i=gC(2);return wf(i.userMenuOpen.set(false))}),pl$1(),ws$1(1,"div",52)(2,"div",53)(3,"button",54),Rg("click",function(){If(e);let i=gC(2);return wf(i.onMenuNavigate("/agentos/profile"))}),kf(),ws$1(4,"svg",55),Sg(5,"circle",56)(6,"path",57),pl$1(),GC(7," User settings "),pl$1(),Ff(),ws$1(8,"button",54),Rg("click",function(){If(e);let i=gC(2);return wf(i.onMenuNavigate("/agentos/namespaces"))}),kf(),ws$1(9,"svg",55),Sg(10,"rect",58)(11,"rect",59)(12,"rect",60)(13,"rect",61),pl$1(),GC(14," Namespaces "),pl$1(),Jw(15,sc,4,0,"button",62),Ff(),ws$1(16,"button",54),Rg("click",function(){If(e);let i=gC(2);return wf(i.onMenuLogsToggle())}),kf(),ws$1(17,"svg",55),Sg(18,"polyline",63)(19,"line",64),pl$1(),GC(20," Technical logs "),pl$1(),Ff(),ws$1(21,"button",54),Rg("click",function(){If(e);let i=gC(2);return wf(i.onMenuToolCallsToggle())}),kf(),ws$1(22,"svg",55),Sg(23,"path",65)(24,"path",66),pl$1(),GC(25," Tool calls "),Ff(),Sg(26,"span",67),ws$1(27,"span",68),GC(28),pl$1()()(),Sg(29,"div",69),ws$1(30,"div",53)(31,"button",54),Rg("click",function(){If(e);let i=gC(2);return wf(i.onMenuThemeToggle())}),Jw(32,lc,2,0,":svg:svg",55)(33,cc,10,0,":svg:svg",55),GC(34," Dark mode "),Sg(35,"span",67),ws$1(36,"span",68),GC(37),pl$1()()()();}if(o&2){let e=gC(2);XE(15),eC(e.isAdmin()?15:-1),XE(13),Yg(e.showToolCalls()?"On":"Off"),XE(4),eC(e.isDark()?33:32),XE(5),Yg(e.isDark()?"On":"Off");}}function mc(o,t){if(o&1){let e=lC();ws$1(0,"div",0)(1,"button",1),Rg("click",function(){If(e);let i=gC();return wf(i.closed.emit())}),pl$1(),ws$1(2,"div",2),Rg("click",function(i){return i.stopPropagation()})("keydown",function(i){return i.stopPropagation()}),ws$1(3,"div",3)(4,"span",4),GC(5,"Cases"),pl$1(),ws$1(6,"button",5),Rg("click",function(){If(e);let i=gC();return wf(i.closed.emit())}),kf(),ws$1(7,"svg",6),Sg(8,"path",7)(9,"path",8),pl$1()()(),Ff(),ws$1(10,"div",9),kf(),ws$1(11,"svg",10),Sg(12,"circle",11)(13,"path",12),pl$1(),Ff(),ws$1(14,"input",13),Rg("input",function(i){If(e);let a=gC();return wf(a.filterQuery.set(i.target.value))}),pl$1()(),ws$1(15,"div",14),rC(16,ac,5,1,"div",15,Zl),Jw(18,rc,2,0,"p",16),pl$1(),ws$1(19,"div",17),Jw(20,dc,38,4),ws$1(21,"button",18),Rg("click",function(){If(e);let i=gC();return wf(i.userMenuOpen.set(!i.userMenuOpen()))}),ws$1(22,"span",19),GC(23),pl$1(),ws$1(24,"span",20)(25,"span",21),GC(26),pl$1()(),kf(),ws$1(27,"svg",22),Sg(28,"path",23)(29,"path",24),pl$1()()()()();}if(o&2){let e=gC();XE(14),bg("value",e.filterQuery()),XE(2),oC(e.groupedCases()),XE(2),eC(e.groupedCases().length===0?18:-1),XE(2),eC(e.userMenuOpen()?20:-1),XE(3),Yg(e.userInitials()),XE(3),Yg(e.userName());}}var Ft=class o{open=ZB.required();workspaces=ZB({});subCaseCreateRequested=qB();cases=ZB.required();activeCaseId=ZB.required();userInitials=ZB.required();userName=ZB.required();isAdmin=ZB.required();isDark=ZB.required();showToolCalls=ZB.required();filterQuery=Gi$1("");confirmingDeleteId=Gi$1(null);userMenuOpen=Gi$1(false);groupedCases=mT(()=>{let t=this.filterQuery().toLowerCase(),e=this.cases().filter(O=>!t||(O.title??O.id??"").toLowerCase().includes(t)),n=O=>!!O.favorite||!!O.starred,i=e.filter(O=>n(O)),a=e.filter(O=>!n(O)&&this.isToday(O)),g=e.filter(O=>!n(O)&&this.isYesterday(O)),w=e.filter(O=>!n(O)&&this.isPrev7(O)),E=e.filter(O=>!n(O)&&!this.isToday(O)&&!this.isYesterday(O)&&!this.isPrev7(O)),D=[];return i.length&&D.push({label:"Pinned",cases:i}),a.length&&D.push({label:"Today",cases:a}),g.length&&D.push({label:"Yesterday",cases:g}),w.length&&D.push({label:"Previous 7 days",cases:w}),E.length&&D.push({label:"Older",cases:E}),D});closed=qB();caseSelected=qB();starToggled=qB();deleteRequested=qB();navigateTo=qB();themeToggled=qB();logsToggled=qB();toolCallsToggled=qB();onCaseSelect(t){this.confirmingDeleteId.set(null),this.caseSelected.emit(t);}onStarToggle(t,e){t.stopPropagation();let n=!!e.favorite||!!e.starred;this.starToggled.emit({id:e.id??"",starred:!n});}onDeleteRequest(t,e){t.stopPropagation(),this.confirmingDeleteId.set(e);}onDeleteConfirm(t,e){t.stopPropagation(),this.confirmingDeleteId.set(null),e&&this.deleteRequested.emit(e);}onDeleteCancel(t){t.stopPropagation(),this.confirmingDeleteId.set(null);}onMenuNavigate(t){this.userMenuOpen.set(false),this.closed.emit(),this.navigateTo.emit(t);}onMenuThemeToggle(){this.userMenuOpen.set(false),this.themeToggled.emit();}onMenuLogsToggle(){this.userMenuOpen.set(false),this.logsToggled.emit();}onMenuToolCallsToggle(){this.userMenuOpen.set(false),this.toolCallsToggled.emit();}dayStart(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()}getModified(t){let e=t.modified??t.created;return e?new Date(e).getTime():0}isToday(t){let e=Date.now(),n=this.dayStart(new Date),i=this.getModified(t);return i>=n&&i<=e}isYesterday(t){let e=this.dayStart(new Date)-864e5,n=this.dayStart(new Date),i=this.getModified(t);return i>=e&&i<n}isPrev7(t){let e=this.dayStart(new Date)-6048e5,n=this.dayStart(new Date)-864e5,i=this.getModified(t);return i>=e&&i<n}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=xw({type:o,selectors:[["agentos-shell-case-switcher-mobile"]],inputs:{open:[1,"open"],workspaces:[1,"workspaces"],cases:[1,"cases"],activeCaseId:[1,"activeCaseId"],userInitials:[1,"userInitials"],userName:[1,"userName"],isAdmin:[1,"isAdmin"],isDark:[1,"isDark"],showToolCalls:[1,"showToolCalls"]},outputs:{subCaseCreateRequested:"subCaseCreateRequested",closed:"closed",caseSelected:"caseSelected",starToggled:"starToggled",deleteRequested:"deleteRequested",navigateTo:"navigateTo",themeToggled:"themeToggled",logsToggled:"logsToggled",toolCallsToggled:"toolCallsToggled"},decls:1,vars:1,consts:[[1,"mobile-drawer__overlay"],["type","button","aria-label","Close cases drawer",1,"mobile-drawer__backdrop",3,"click"],["role","dialog","aria-modal","true","aria-label","Cases",1,"mobile-drawer__panel",3,"click","keydown"],[1,"mobile-drawer__header"],[1,"mobile-drawer__header-title"],["type","button","title","Close",1,"mobile-drawer__close-btn",3,"click"],["width","17","height","17","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","1.5","stroke-linecap","round","aria-hidden","true"],["d","M18 6 6 18"],["d","m6 6 12 12"],[1,"mobile-drawer__search-wrap"],["width","14","height","14","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","1.5","stroke-linecap","round","aria-hidden","true",1,"mobile-drawer__search-icon"],["cx","11","cy","11","r","8"],["d","m21 21-4.3-4.3"],["type","search","placeholder","Filter cases\u2026","autocomplete","off",1,"input","mobile-drawer__search-input",3,"input","value"],[1,"mobile-drawer__list"],[1,"mobile-drawer__group"],[1,"mobile-drawer__empty"],[1,"mobile-drawer__footer"],["type","button",1,"mobile-drawer__user-btn",3,"click"],[1,"mobile-drawer__user-avatar"],[1,"mobile-drawer__user-info"],[1,"mobile-drawer__user-name"],["width","15","height","15","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","1.5","stroke-linecap","round","stroke-linejoin","round","aria-hidden","true",1,"mobile-drawer__user-chevron"],["d","m7 15 5 5 5-5"],["d","m7 9 5-5 5 5"],[1,"mobile-drawer__group-label"],["type","button",1,"mobile-drawer__case-row",3,"mobile-drawer__case-row--active","mobile-drawer__case-row--confirming"],["type","button",1,"mobile-drawer__case-row",3,"click"],[3,"status","size"],[1,"mobile-drawer__case-title"],[3,"view"],[1,"mobile-drawer__case-actions"],[1,"mobile-drawer__case-confirm"],["type","button","title","Create sub-case",1,"mobile-drawer__case-btn"],["type","button","title","Pin case",1,"mobile-drawer__case-btn",3,"click"],["width","15","height","15","viewBox","0 0 24 24","stroke","currentColor","stroke-width","1.5","stroke-linecap","round","stroke-linejoin","round","aria-hidden","true"],["d","M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"],["type","button","title","Delete case",1,"mobile-drawer__case-btn","mobile-drawer__case-btn--danger",3,"click"],["width","15","height","15","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","1.5","stroke-linecap","round","stroke-linejoin","round","aria-hidden","true"],["d","M3 6h18"],["d","M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6"],["d","M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"],["x1","10","x2","10","y1","11","y2","17"],["x1","14","x2","14","y1","11","y2","17"],["type","button","title","Create sub-case",1,"mobile-drawer__case-btn",3,"click"],["d","M21 11V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v16l4-4h4M18 14v8m-4-4h8"],["type","button","title","Confirm delete",1,"mobile-drawer__confirm-yes",3,"click"],["width","15","height","15","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2","stroke-linecap","round","stroke-linejoin","round","aria-hidden","true"],["d","M20 6 9 17l-5-5"],["type","button","title","Cancel",1,"mobile-drawer__confirm-no",3,"click"],["width","15","height","15","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","1.5","stroke-linecap","round","aria-hidden","true"],["type","button","aria-label","Close user menu",1,"mobile-drawer__user-menu-backdrop",3,"click"],[1,"mobile-drawer__user-menu"],[1,"mobile-drawer__user-menu-section"],["type","button",1,"mobile-drawer__user-menu-item",3,"click"],["width","16","height","16","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","1.5","stroke-linecap","round","stroke-linejoin","round","aria-hidden","true",2,"color","var(--color-neutral-600)"],["cx","12","cy","8","r","4"],["d","M20 21a8 8 0 0 0-16 0"],["width","7","height","7","x","3","y","3"],["width","7","height","7","x","14","y","3"],["width","7","height","7","x","14","y","14"],["width","7","height","7","x","3","y","14"],["type","button",1,"mobile-drawer__user-menu-item"],["points","4 17 10 11 4 5"],["x1","12","x2","20","y1","19","y2","19"],["d","M9 18l6-6-6-6"],["d","M4 6h8M4 12h5M4 18h8"],[2,"flex","1"],[1,"mobile-drawer__user-menu-hint"],[1,"mobile-drawer__user-menu-sep"],["d","M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1 1 0 0 1 1.52 0C14.5 3.8 17 5 19 5a1 1 0 0 1 1 1z"],["d","M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"],["cx","12","cy","12","r","4"],["d","M12 2v2"],["d","M12 20v2"],["d","m4.93 4.93 1.41 1.41"],["d","m17.66 17.66 1.41 1.41"],["d","M2 12h2"],["d","M20 12h2"],["d","m6.34 17.66-1.41 1.41"],["d","m19.07 4.93-1.41 1.41"]],template:function(e,n){e&1&&Jw(0,mc,30,5,"div",0),e&2&&eC(n.open()?0:-1);},dependencies:[Ee,je],styles:[".mobile-drawer__overlay[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:40;display:flex}.mobile-drawer__backdrop[_ngcontent-%COMP%]{position:absolute;inset:0;background:color-mix(in srgb,var(--color-neutral-900) 45%,transparent);border:none;cursor:default;padding:0}.mobile-drawer__panel[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;width:318px;display:flex;flex-direction:column;background:var(--color-bg);border-right:1px solid var(--color-divider);animation:_ngcontent-%COMP%_mobile-drawer-slidein .22s ease;overflow:hidden}@keyframes _ngcontent-%COMP%_mobile-drawer-slidein{0%{transform:translate(-100%)}to{transform:translate(0)}}.mobile-drawer__header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;padding:14px 14px 10px;flex-shrink:0}.mobile-drawer__header-title[_ngcontent-%COMP%]{flex:1;font-family:var(--font-heading);font-weight:600;font-size:19px;color:var(--color-text)}.mobile-drawer__close-btn[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;padding:0;margin:0;font:inherit;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;color:var(--color-neutral-600);transition:color .12s}.mobile-drawer__close-btn[_ngcontent-%COMP%]:hover{color:var(--color-text)}.mobile-drawer__search-wrap[_ngcontent-%COMP%]{position:relative;padding:0 14px 8px;flex-shrink:0}.mobile-drawer__search-icon[_ngcontent-%COMP%]{position:absolute;left:24px;top:11px;opacity:.45;pointer-events:none}.mobile-drawer__search-input[_ngcontent-%COMP%]{padding-left:32px;min-height:34px;font-size:13px}.mobile-drawer__list[_ngcontent-%COMP%]{flex:1;overflow-y:auto;padding:2px 0 10px}.mobile-drawer__list[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px}.mobile-drawer__list[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:var(--color-divider)}.mobile-drawer__group-label[_ngcontent-%COMP%]{padding:12px 22px 4px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--color-neutral-500);font-family:var(--font-heading);font-weight:600}.mobile-drawer__case-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:9px;margin:1px 8px;padding:8px 9px;cursor:pointer;background:transparent;border:1px solid transparent;width:calc(100% - 16px);box-sizing:border-box;overflow:hidden;transition:background .1s,border-color .1s}.mobile-drawer__case-row[_ngcontent-%COMP%]:hover{background:color-mix(in srgb,var(--color-text) 6%,transparent)}.mobile-drawer__case-row--active[_ngcontent-%COMP%]{background:var(--color-accent-100);border-color:var(--color-accent-200)}.mobile-drawer__case-row--active[_ngcontent-%COMP%] .mobile-drawer__case-title[_ngcontent-%COMP%]{color:var(--color-accent-900)}.mobile-drawer__case-row--active[_ngcontent-%COMP%]:hover{background:var(--color-accent-200)}.mobile-drawer__case-row--confirming[_ngcontent-%COMP%]{background:var(--red-bg);border-color:var(--red)}.mobile-drawer__case-title[_ngcontent-%COMP%]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;color:var(--color-text);text-align:left}.mobile-drawer__case-actions[_ngcontent-%COMP%], .mobile-drawer__case-confirm[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1px;flex-shrink:0;margin-left:auto}.mobile-drawer__case-btn[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;padding:0;margin:0;font:inherit;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;color:var(--color-neutral-500);transition:color .12s,background .12s}.mobile-drawer__case-btn[_ngcontent-%COMP%]:hover{color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 14%,transparent)}.mobile-drawer__case-btn--active[_ngcontent-%COMP%]{color:var(--color-accent)}.mobile-drawer__case-btn--active[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{fill:currentColor}.mobile-drawer__case-btn--danger[_ngcontent-%COMP%]:hover{color:var(--red);background:color-mix(in srgb,var(--red) 12%,transparent)}.mobile-drawer__case-btn--confirm-yes[_ngcontent-%COMP%]{width:auto;padding:0 8px;gap:4px;font-family:var(--font-heading);font-weight:600;font-size:11px;color:#fff;background:var(--red)}.mobile-drawer__case-btn--confirm-yes[_ngcontent-%COMP%]:hover{background:var(--red-deep);color:#fff}.mobile-drawer__confirm-yes[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;margin:0;font:inherit;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 10px;border:1px solid var(--red);background:var(--red);color:#fff;font-family:var(--font-heading);font-weight:600;font-size:11px;cursor:pointer;transition:background .14s,border-color .14s}.mobile-drawer__confirm-yes[_ngcontent-%COMP%] .material-icons[_ngcontent-%COMP%]{font-size:16px;line-height:1}.mobile-drawer__confirm-yes[_ngcontent-%COMP%]:hover{background:var(--red-deep);border-color:var(--red-deep)}.mobile-drawer__confirm-yes[_ngcontent-%COMP%]{width:30px;padding:0;justify-content:center}.mobile-drawer__confirm-no[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;padding:0;margin:0;font:inherit;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-divider);background:var(--color-bg);color:var(--color-neutral-600);transition:color .12s,border-color .12s}.mobile-drawer__confirm-no[_ngcontent-%COMP%]:hover{color:var(--color-text);border-color:var(--color-neutral-500)}.mobile-drawer__empty[_ngcontent-%COMP%]{padding:24px 20px;font-size:15px;color:var(--color-neutral-500);text-align:center;margin:0}.mobile-drawer__footer[_ngcontent-%COMP%]{position:relative;padding:8px 12px;border-top:1px solid var(--color-divider);flex-shrink:0}.mobile-drawer__user-btn[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;margin:0;font:inherit;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:100%;display:flex;align-items:center;gap:10px;padding:6px;color:var(--color-text);border:1px solid transparent;transition:background .14s}.mobile-drawer__user-btn[_ngcontent-%COMP%]:hover{background:color-mix(in srgb,var(--color-text) 5%,transparent)}.mobile-drawer__user-avatar[_ngcontent-%COMP%]{width:30px;height:30px;flex:none;display:grid;place-items:center;border:1px solid var(--color-divider);background:var(--color-surface);font-family:var(--font-heading);font-weight:600;font-size:12px;color:var(--color-accent-700)}.mobile-drawer__user-info[_ngcontent-%COMP%]{flex:1;min-width:0}.mobile-drawer__user-name[_ngcontent-%COMP%]{display:block;font-size:14px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:inherit}.mobile-drawer__user-chevron[_ngcontent-%COMP%]{opacity:.5;flex:none}.mobile-drawer__user-menu-backdrop[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:50;border:none;background:transparent;cursor:default;padding:0}.mobile-drawer__user-menu[_ngcontent-%COMP%]{position:absolute;left:12px;right:12px;bottom:calc(100% - 2px);z-index:51;background:var(--color-bg);border:1px solid var(--color-divider);box-shadow:var(--shadow-lg)}.mobile-drawer__user-menu-section[_ngcontent-%COMP%]{padding:4px 0}.mobile-drawer__user-menu-sep[_ngcontent-%COMP%]{height:1px;background:var(--color-divider)}.mobile-drawer__user-menu-item[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;margin:0;font:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;font-size:14px;color:var(--color-text);text-align:left;transition:background .1s}.mobile-drawer__user-menu-item[_ngcontent-%COMP%]:hover{background:color-mix(in srgb,var(--color-text) 6%,transparent)}.mobile-drawer__user-menu-hint[_ngcontent-%COMP%]{font-size:12px;color:var(--color-neutral-500)}"]})};function pc(o,t){if(o&1){let e=lC();ws$1(0,"div",8),Rg("mousedown",function(i){If(e);let a=gC();return wf(a.onResizeStart(i))}),pl$1();}}function _c(o,t){if(o&1){let e=lC();ws$1(0,"button",9),Rg("click",function(){If(e);let i=gC();return wf(i.expandSidebar())}),ws$1(1,"span",10),GC(2,"menu"),pl$1()();}}function uc(o,t){if(o&1){let e=lC();Sg(0,"agentos-case-workspace",11),ws$1(1,"agentos-case-chat",12),Rg("starToggled",function(i){If(e);let a=gC();return wf(a.onStarToggled(i))})("deleteRequested",function(i){If(e);let a=gC();return wf(a.onDeleteRequested(i))})("logsToggled",function(){If(e);let i=gC();return wf(i.onMenuToggleLogs())})("updateRequested",function(i){If(e);let a=gC();return wf(a.onCaseUpdateRequested(i))}),pl$1();}if(o&2){let e=gC();bg("caseId",e.activeCaseId())("canWrite",e.canWriteActiveCase()),XE(),bg("showTechnicalOverride",e.showTechnical())("showToolCallsOverride",e.showToolCalls());}}function gc(o,t){if(o&1&&Sg(0,"agentos-case-home",7),o&2){let e=gC();bg("namespaceName",e.selectedNamespace()?.name??null);}}var Wo=class o{router=g(G$5);route=g(V$2);namespaceController=g(D$2);themePort=g(I$1);userState=g(l$3);caseState=g(O);workspaceService=g(ce);namespaceState=g(E);destroyRef=g(Ce$1);isAdmin=mT(()=>this.userState.currentUser()?.isAdmin===true);userInitials=mT(()=>{let t=this.userState.currentUser();if(!t)return "";let e=t.firstname?.[0]??"",n=t.lastname?.[0]??"";return (e+n).toUpperCase()||t.email?.[0]?.toUpperCase()||""});userName=mT(()=>{let t=this.userState.currentUser();return t&&([t.firstname,t.lastname].filter(Boolean).join(" ")||t.email)||""});isDark=mT(()=>{let{mode:t}=this.themePort.theme();return t==="dark"?true:t==="light"?false:typeof document<"u"&&document.documentElement.getAttribute("data-theme")?.includes("dark")===true});themeVariant=mT(()=>this.themePort.theme().variant);sidebarWidth=Gi$1(Number(localStorage.getItem("agentos.sidebar.width"))||400);menuOpen=Gi$1(false);nsMenuOpen=Gi$1(false);sidebarOpen=Gi$1(localStorage.getItem("agentos.sidebar.open")!=="false");mobileDrawerOpen=Gi$1(false);static SHOW_TECHNICAL_KEY="agentos.case-chat.showTechnical";static SHOW_TOOL_CALLS_KEY="agentos.case-chat.showToolCalls";showTechnical=Gi$1(localStorage.getItem(o.SHOW_TECHNICAL_KEY)==="true");showToolCalls=Gi$1(localStorage.getItem(o.SHOW_TOOL_CALLS_KEY)!=="false");showNsPicker=mT(()=>this.isAdmin()||this.namespaces().length>1);namespaceId$=this.route.queryParams.pipe(re$4(t=>t.ns??null));_namespaceIdRaw=F$1(this.namespaceId$);namespaceId=mT(()=>this._namespaceIdRaw()??null);_activeCaseIdRaw=F$1(this.route.queryParams.pipe(re$4(t=>t.case??null)));activeCaseId=mT(()=>this._activeCaseIdRaw()??null);cases=this.caseState.cases;namespaces=F$1(this.namespaceController.listAllNamespace(),{initialValue:[]});selectedNamespace=Gi$1(null);canWriteActiveCase=mT(()=>{let t=this.namespaces().find(n=>n.id===this.namespaceId())?.role,e=this.cases().find(n=>n.id===this.activeCaseId())?.role;return this.isAdmin()||t==="ADMIN"||t==="SUPER-ADMIN"||e==="ADMIN"});constructor(){Hf(t=>{let e=this.selectedNamespace()?.id;if(!e)return;let n=this.workspaceService.watchNamespace(e).subscribe();t(()=>n.unsubscribe());}),this.userState.currentUser()||this.userState.loadMe().pipe(U$3(this.destroyRef)).subscribe(),T(this.sidebarWidth).pipe(Dd(1),vd(300),U$3(this.destroyRef)).subscribe(t=>localStorage.setItem("agentos.sidebar.width",String(t))),Hf(()=>{let t=this.namespaces(),e=this.namespaceId();if(t.length)if(e){let n=t.find(i=>i.id===e);this.selectedNamespace.set(n??t[0]??null),this.namespaceState.selectNamespace(e);}else {let n=t[0];n?.id&&this.router.navigate(["/agentos/home"],{queryParams:{ns:n.id},replaceUrl:true});}}),Hf(()=>{let t=this.namespaceId();t&&this.caseState.loadCases(t);});}onNamespaceSelected(t){this.selectedNamespace.set(t),this.nsMenuOpen.set(false),this.router.navigate(["/agentos/home"],{queryParams:{ns:t.id}});}toggleNsMenu(t){t?.stopPropagation(),t?.preventDefault(),this.nsMenuOpen.update(e=>!e);}closeNsMenu(t){t.stopPropagation(),this.nsMenuOpen.set(false);}onCaseSelected(t){this.router.navigate(["/agentos/home"],{queryParams:{ns:this.namespaceId(),case:t}});}onCreateRequested(){this.router.navigate(["/agentos/home"],{queryParams:{ns:this.namespaceId()}});}onSubCaseCreateRequested(t){this.mobileDrawerOpen.set(false),this.router.navigate(["/agentos/home"],{queryParams:{ns:this.namespaceId(),parentCase:t}});}onDeleteRequested(t){this.caseState.deleteCase(t).pipe(U$3(this.destroyRef)).subscribe({next:()=>{t===this.activeCaseId()&&this.router.navigate(["/agentos/home"],{queryParams:{ns:this.namespaceId()}});},error:e=>{console.error(`[CaseShell] Failed to delete case ${t}:`,e);}});}onStarToggled(t){this.caseState.setStarred(t.id,t.starred).pipe(U$3(this.destroyRef)).subscribe({error:e=>{console.error(`[CaseShell] Failed to update star for case ${t.id}:`,e),alert("Could not update the favorite. Please try again.");}});}onRenameRequested(t){this.caseState.renameCase(t.id,t.title).pipe(U$3(this.destroyRef)).subscribe({error:e=>{console.error(`[CaseShell] Failed to rename case ${t.id}:`,e),alert("Could not rename the case. Please try again.");}});}onCaseUpdateRequested(t){this.caseState.updateCaseFields(t.id,{title:t.title,runCostThreshold:t.runCostThreshold??void 0}).pipe(U$3(this.destroyRef)).subscribe({error:e=>{console.error(`[CaseShell] Failed to update case ${t.id}:`,e),alert("Could not save the changes. Please try again.");}});}navigateHome(){let t=this.namespaceId();this.router.navigate(["/agentos/home"],t?{queryParams:{ns:t}}:{});}collapseSidebar(){this.sidebarOpen.set(false),localStorage.setItem("agentos.sidebar.open","false");}expandSidebar(){this.sidebarOpen.set(true),localStorage.setItem("agentos.sidebar.open","true");}onMenuNavigate(t){this.menuOpen.set(false),this.router.navigate([t]);}toggleMenu(t){t?.stopPropagation(),t?.preventDefault(),this.menuOpen.update(e=>!e);}closeMenu(t){t.stopPropagation(),this.menuOpen.set(false);}onMenuToggleTheme(){this.menuOpen.set(false);let t=this.isDark()?"light":"dark";this.themePort.setTheme({variant:this.themeVariant(),mode:t});}onMenuThemeVariantChanged(t){this.menuOpen.set(false);let e=this.themePort.theme();this.themePort.setTheme({variant:t,mode:e.mode});}onMenuToggleLogs(){this.menuOpen.set(false),this.showTechnical.update(t=>{let e=!t;return localStorage.setItem(o.SHOW_TECHNICAL_KEY,String(e)),e});}onMenuToggleToolCalls(){this.menuOpen.set(false),this.showToolCalls.update(t=>{let e=!t;return localStorage.setItem(o.SHOW_TOOL_CALLS_KEY,String(e)),e});}toggleMobileDrawer(){this.mobileDrawerOpen.update(t=>!t);}onMobileCaseSelect(t){this.mobileDrawerOpen.set(false),this.onCaseSelected(t);}onMobileCreateCase(){this.mobileDrawerOpen.set(false),this.onCreateRequested();}hostEl=g(Xt);onResizeStart(t){t.preventDefault();let e=t.clientX,n=this.sidebarWidth(),i=Math.floor(window.innerWidth*.5),a=this.hostEl.nativeElement.querySelector("agentos-shell-sidebar > .shell-sidebar");a&&(a.style.transition="none"),document.body.style.userSelect="none",document.body.style.cursor="col-resize";let g=n,w=D=>{let O=D.clientX-e;g=Math.max(200,Math.min(i,n+O)),a&&(a.style.width=`${g}px`);},E=()=>{document.removeEventListener("mousemove",w),document.removeEventListener("mouseup",E),document.body.style.userSelect="",document.body.style.cursor="",a&&(a.style.transition=""),this.sidebarWidth.set(g);};document.addEventListener("mousemove",w),document.addEventListener("mouseup",E);}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=xw({type:o,selectors:[["agentos-case-shell"]],decls:9,vars:32,consts:[[1,"case-shell"],[3,"drawerToggled","createRequested","namespaceSelected","nsMenuToggled","nsMenuClosed","selectedNamespace","namespaces","nsMenuOpen"],[3,"closed","caseSelected","subCaseCreateRequested","starToggled","deleteRequested","navigateTo","themeToggled","logsToggled","toolCallsToggled","open","cases","workspaces","activeCaseId","userInitials","userName","isAdmin","isDark","showToolCalls"],[3,"collapseRequested","homeClicked","namespaceSelected","nsMenuToggled","nsMenuClosed","caseSelected","createRequested","subCaseCreateRequested","deleteRequested","starToggled","renameRequested","menuToggled","menuClosed","navigateTo","themeToggled","themeVariantChanged","logsToggled","toolCallsToggled","sidebarWidth","sidebarOpen","selectedNamespace","namespaces","showNsPicker","nsMenuOpen","cases","workspaces","activeCaseId","userInitials","userName","menuOpen","isAdmin","isDark","themeVariant","showTechnical","showToolCalls"],["role","separator","tabindex","-1","aria-label","Resize sidebar",1,"case-shell__resize-handle"],["type","button","title","Open sidebar",1,"case-shell__expand-btn"],[1,"case-shell__main"],[3,"namespaceName"],["role","separator","tabindex","-1","aria-label","Resize sidebar",1,"case-shell__resize-handle",3,"mousedown"],["type","button","title","Open sidebar",1,"case-shell__expand-btn",3,"click"],[1,"material-icons"],[3,"caseId","canWrite"],[3,"starToggled","deleteRequested","logsToggled","updateRequested","showTechnicalOverride","showToolCallsOverride"]],template:function(e,n){e&1&&(ws$1(0,"div",0)(1,"agentos-shell-topbar-mobile",1),Rg("drawerToggled",function(){return n.toggleMobileDrawer()})("createRequested",function(){return n.onMobileCreateCase()})("namespaceSelected",function(a){return n.onNamespaceSelected(a)})("nsMenuToggled",function(a){return n.toggleNsMenu(a)})("nsMenuClosed",function(a){return n.closeNsMenu(a)}),pl$1(),ws$1(2,"agentos-shell-case-switcher-mobile",2),Rg("closed",function(){return n.mobileDrawerOpen.set(false)})("caseSelected",function(a){return n.onMobileCaseSelect(a)})("subCaseCreateRequested",function(a){return n.onSubCaseCreateRequested(a)})("starToggled",function(a){return n.onStarToggled(a)})("deleteRequested",function(a){return n.onDeleteRequested(a)})("navigateTo",function(a){return n.onMenuNavigate(a)})("themeToggled",function(){return n.onMenuToggleTheme()})("logsToggled",function(){return n.onMenuToggleLogs()})("toolCallsToggled",function(){return n.onMenuToggleToolCalls()}),pl$1(),ws$1(3,"agentos-shell-sidebar",3),Rg("collapseRequested",function(){return n.collapseSidebar()})("homeClicked",function(){return n.navigateHome()})("namespaceSelected",function(a){return n.onNamespaceSelected(a)})("nsMenuToggled",function(){return n.toggleNsMenu()})("nsMenuClosed",function(a){return n.closeNsMenu(a)})("caseSelected",function(a){return n.onCaseSelected(a)})("createRequested",function(){return n.onCreateRequested()})("subCaseCreateRequested",function(a){return n.onSubCaseCreateRequested(a)})("deleteRequested",function(a){return n.onDeleteRequested(a)})("starToggled",function(a){return n.onStarToggled(a)})("renameRequested",function(a){return n.onRenameRequested(a)})("menuToggled",function(a){return n.toggleMenu(a)})("menuClosed",function(a){return n.closeMenu(a)})("navigateTo",function(a){return n.onMenuNavigate(a)})("themeToggled",function(){return n.onMenuToggleTheme()})("themeVariantChanged",function(a){return n.onMenuThemeVariantChanged(a)})("logsToggled",function(){return n.onMenuToggleLogs()})("toolCallsToggled",function(){return n.onMenuToggleToolCalls()}),pl$1(),Jw(4,pc,1,0,"div",4),Jw(5,_c,3,0,"button",5),ws$1(6,"main",6),Jw(7,uc,2,4)(8,gc,1,1,"agentos-case-home",7),pl$1()()),e&2&&(XE(),bg("selectedNamespace",n.selectedNamespace())("namespaces",n.namespaces())("nsMenuOpen",n.nsMenuOpen()),XE(),bg("open",n.mobileDrawerOpen())("cases",n.cases())("workspaces",n.workspaceService.byRoot())("activeCaseId",n.activeCaseId())("userInitials",n.userInitials())("userName",n.userName())("isAdmin",n.isAdmin())("isDark",n.isDark())("showToolCalls",n.showToolCalls()),XE(),bg("sidebarWidth",n.sidebarWidth())("sidebarOpen",n.sidebarOpen())("selectedNamespace",n.selectedNamespace())("namespaces",n.namespaces())("showNsPicker",n.showNsPicker())("nsMenuOpen",n.nsMenuOpen())("cases",n.cases())("workspaces",n.workspaceService.byRoot())("activeCaseId",n.activeCaseId())("userInitials",n.userInitials())("userName",n.userName())("menuOpen",n.menuOpen())("isAdmin",n.isAdmin())("isDark",n.isDark())("themeVariant",n.themeVariant())("showTechnical",n.showTechnical())("showToolCalls",n.showToolCalls()),XE(),eC(n.sidebarOpen()?4:-1),XE(),eC(n.sidebarOpen()?-1:5),XE(2),eC(n.activeCaseId()?7:8));},dependencies:[ut,Dt,It,Nt,At,Ft],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;height:100dvh}.case-shell[_ngcontent-%COMP%]{display:flex;height:100%}.case-shell__resize-handle[_ngcontent-%COMP%]{width:4px;flex-shrink:0;cursor:col-resize;background:var(--color-divider);transition:background .15s;position:relative;z-index:10}.case-shell__resize-handle[_ngcontent-%COMP%]:hover, .case-shell__resize-handle[_ngcontent-%COMP%]:active{background:var(--color-accent)}.case-shell__main[_ngcontent-%COMP%]{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.case-shell__main[_ngcontent-%COMP%] > agentos-case-chat[_ngcontent-%COMP%], .case-shell__main[_ngcontent-%COMP%] > agentos-case-home[_ngcontent-%COMP%]{flex:1;min-height:0}@media(max-width:900px){.case-shell[_ngcontent-%COMP%]{flex-direction:column;overflow:hidden}.case-shell__resize-handle[_ngcontent-%COMP%]{display:none!important}.case-shell__main[_ngcontent-%COMP%]{flex:1;min-height:0;overflow:hidden}}.case-shell__expand-btn[_ngcontent-%COMP%]{position:fixed;top:14px;left:14px;z-index:200;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;border-radius:8px;background:transparent;cursor:pointer;color:var(--color-text-secondary);transition:background .14s}.case-shell__expand-btn[_ngcontent-%COMP%] .material-icons[_ngcontent-%COMP%]{font-size:22px}.case-shell__expand-btn[_ngcontent-%COMP%]:hover{background:var(--color-surface-hover);color:var(--color-text)}@media(max-width:900px){.case-shell__expand-btn[_ngcontent-%COMP%]{display:none}}"]})};function N(n,e){if(n&1&&GC(0),n&2){let o=gC();vl$1(" ",o.userInitials()," ");}}function V$1(n,e){n&1&&GC(0," \u2022\u2022\u2022 ");}var h=class n{router=g(G$5);userState=g(l$3);themePort=g(I$1);namespaceState=g(E);menuOpen=Gi$1(false);isAdmin=mT(()=>this.userState.currentUser()?.isAdmin===true);isDark=mT(()=>{let{mode:e}=this.themePort.theme();return e==="dark"?true:e==="light"?false:typeof document<"u"&&document.documentElement.getAttribute("data-theme")?.includes("dark")===true});themeVariant=mT(()=>this.themePort.theme().variant);userInitials=mT(()=>{let e=this.userState.currentUser();if(!e)return "";let o=e.firstname?.[0]??"",t=e.lastname?.[0]??"";return (o+t).toUpperCase()||e.email?.[0]?.toUpperCase()||""});showTechnical=Gi$1(false);showToolCalls=Gi$1(true);navigateHome(){let e=this.namespaceState.activeNamespaceId();this.router.navigate(["/agentos/home"],e?{queryParams:{ns:e}}:{});}toggleMenu(e){e.stopPropagation(),this.menuOpen.update(o=>!o);}closeMenu(e){e.stopPropagation(),this.menuOpen.set(false);}onNavigate(e){this.menuOpen.set(false),this.router.navigate([e]);}onThemeToggle(){this.menuOpen.set(false);let e=this.isDark()?"light":"dark";this.themePort.setTheme({variant:this.themePort.theme().variant,mode:e});}onThemeVariantChanged(e){this.menuOpen.set(false);let o=this.themePort.theme();this.themePort.setTheme({variant:e,mode:o.mode});}onLogsToggle(){this.menuOpen.set(false);}onToolCallsToggle(){this.menuOpen.set(false);}static \u0275fac=function(o){return new(o||n)};static \u0275cmp=xw({type:n,selectors:[["agentos-shell-topbar"]],decls:10,vars:7,consts:[[1,"shell-topbar"],["type","button","title","Home",1,"shell-topbar__brand",3,"click"],["src","CODAY-Logo.png","alt","Coday",1,"shell-topbar__logo-img"],[1,"shell-topbar__logo-text"],[1,"shell-topbar__user-menu"],["type","button","title","Menu",1,"shell-topbar__user-btn",3,"click"],["variant","topbar",3,"navigateTo","themeToggled","themeVariantChanged","logsToggled","toolCallsToggled","closed","open","isAdmin","isDark","themeVariant","showTechnical","showToolCalls"]],template:function(o,t){o&1&&(ws$1(0,"div",0)(1,"button",1),Rg("click",function(){return t.navigateHome()}),Sg(2,"img",2),ws$1(3,"span",3),GC(4,"Coday"),pl$1()(),ws$1(5,"div",4)(6,"button",5),Rg("click",function(l){return t.toggleMenu(l)}),Jw(7,N,1,1)(8,V$1,1,0),pl$1(),ws$1(9,"agentos-shell-user-menu",6),Rg("navigateTo",function(l){return t.onNavigate(l)})("themeToggled",function(){return t.onThemeToggle()})("themeVariantChanged",function(l){return t.onThemeVariantChanged(l)})("logsToggled",function(){return t.onLogsToggle()})("toolCallsToggled",function(){return t.onToolCallsToggle()})("closed",function(l){return t.closeMenu(l)}),pl$1()()()),o&2&&(XE(7),eC(t.userInitials()?7:8),XE(2),bg("open",t.menuOpen())("isAdmin",t.isAdmin())("isDark",t.isDark())("themeVariant",t.themeVariant())("showTechnical",t.showTechnical())("showToolCalls",t.showToolCalls()));},dependencies:[D],styles:[".shell-topbar[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 12px;border-bottom:1px solid var(--color-divider);background:var(--color-bg);flex-shrink:0}.shell-topbar__brand[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;padding:0;border:none;background:transparent;cursor:pointer;transition:opacity .14s ease}.shell-topbar__brand[_ngcontent-%COMP%]:hover{opacity:.8}.shell-topbar__logo-img[_ngcontent-%COMP%]{height:28px;width:auto;object-fit:contain;display:block;flex:none}.shell-topbar__logo-text[_ngcontent-%COMP%]{font-weight:700;font-size:18px;color:var(--color-text);letter-spacing:-.02em;white-space:nowrap}.shell-topbar__user-menu[_ngcontent-%COMP%]{position:relative;flex-shrink:0}.shell-topbar__user-btn[_ngcontent-%COMP%]{width:32px;height:32px;flex:none;display:grid;place-items:center;border:1px solid var(--color-divider);background:var(--color-surface);font-family:var(--font-heading);font-weight:600;font-size:13px;color:var(--color-accent-700);cursor:pointer;transition:border-color .14s;border-radius:0}.shell-topbar__user-btn[_ngcontent-%COMP%]:hover{border-color:var(--color-accent)}"]})};var x=class n{static \u0275fac=function(o){return new(o||n)};static \u0275cmp=xw({type:n,selectors:[["agentos-layout"]],decls:4,vars:0,consts:[[1,"layout"],[1,"layout__content"]],template:function(o,t){o&1&&(ws$1(0,"div",0),Sg(1,"agentos-shell-topbar"),ws$1(2,"main",1),Sg(3,"router-outlet"),pl$1()());},dependencies:[mr$1,h],styles:[".layout[_ngcontent-%COMP%]{display:flex;flex-direction:column;min-height:100vh}.layout__content[_ngcontent-%COMP%]{flex:1;overflow-y:auto}"],changeDetection:1})};var t=()=>true;var Le=[{path:"oauth/callback",loadComponent:()=>import('./chunk-D6BBuWSd.js').then(e=>e.OAuthCallbackComponent)},{path:"",loadComponent:()=>Promise.resolve().then(function(){return chunkC3U3Y3AP}).then(e=>e.AgentosShellComponent),children:[{path:"home",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunk6X3XUT2D}).then(e=>e.CaseShellComponent)},{path:"",loadComponent:()=>Promise.resolve().then(function(){return chunkGU2O4DQZ}).then(e=>e.LayoutComponent),children:[{path:"namespaces/new",canActivate:[t],loadComponent:()=>import('./chunk-DsFEZkSl.js').then(e=>e.NamespaceFormComponent)},{path:"namespaces/:namespaceId/edit",canActivate:[t],loadComponent:()=>import('./chunk-DsFEZkSl.js').then(e=>e.NamespaceFormComponent)},{path:"namespaces",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunkA7NWKXYJ}).then(e=>e.NamespaceListComponent)},{path:"admin",canActivate:[t],loadComponent:()=>import('./chunk-CtHF-uul.js').then(e=>e.AdminHomeComponent)},{path:"admin/tool-invoke",canActivate:[t],loadComponent:()=>import('./chunk-4QqbIPaR.js').then(e=>e.ToolInvokeComponent)},{path:"admin/users/new",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunkXVEXZCBW}).then(e=>e.UserFormComponent)},{path:"admin/users/:userId/edit",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunkXVEXZCBW}).then(e=>e.UserFormComponent)},{path:"admin/users",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunkWD2FKIQK}).then(e=>e.AdminUsersGroupsComponent)},{path:"admin/integration-configs/new",canActivate:[t],loadComponent:()=>import('./chunk-CG3MF0H4.js').then(e=>e.IntegrationFormComponent)},{path:"admin/integration-configs/:integrationId/edit",canActivate:[t],loadComponent:()=>import('./chunk-CG3MF0H4.js').then(e=>e.IntegrationFormComponent)},{path:"admin/integration-configs",canActivate:[t],loadComponent:()=>import('./chunk-D-QPhn7p.js').then(e=>e.PlatformIntegrationConfigsComponent)},{path:"admin/scheduled-prompts/new",canActivate:[t],loadComponent:()=>import('./chunk-lU3996br.js').then(e=>e.ScheduledPromptFormComponent)},{path:"admin/scheduled-prompts/:scheduledPromptId/edit",canActivate:[t],loadComponent:()=>import('./chunk-lU3996br.js').then(e=>e.ScheduledPromptFormComponent)},{path:"admin/scheduled-prompts",canActivate:[t],loadComponent:()=>import('./chunk-D-l2ORqm.js').then(e=>e.PlatformScheduledPromptsComponent)},{path:"admin/prompts/new",canActivate:[t],loadComponent:()=>import('./chunk-BXZoje_o.js').then(e=>e.PromptFormComponent)},{path:"admin/prompts/:promptId/edit",canActivate:[t],loadComponent:()=>import('./chunk-BXZoje_o.js').then(e=>e.PromptFormComponent)},{path:"admin/prompts",canActivate:[t],loadComponent:()=>import('./chunk-D8sYWCcr.js').then(e=>e.PlatformPromptsComponent)},{path:"admin/ai-providers/new",canActivate:[t],loadComponent:()=>import('./chunk-D3BAOO_0.js').then(e=>e.AiProviderFormComponent)},{path:"admin/ai-providers/:aiProviderId/edit",canActivate:[t],loadComponent:()=>import('./chunk-D3BAOO_0.js').then(e=>e.AiProviderFormComponent)},{path:"admin/ai-providers",canActivate:[t],loadComponent:()=>import('./chunk-CGn0orvL.js').then(e=>e.PlatformAiProvidersComponent)},{path:"admin/auth-settings/new",canActivate:[t],loadComponent:()=>import('./chunk-KIJUJ9nq.js').then(e=>e.AuthSettingFormComponent)},{path:"admin/auth-settings/:authSettingId/edit",canActivate:[t],loadComponent:()=>import('./chunk-KIJUJ9nq.js').then(e=>e.AuthSettingFormComponent)},{path:"admin/auth-settings",canActivate:[t],loadComponent:()=>import('./chunk-S9BROQKc.js').then(e=>e.PlatformAuthSettingsComponent)},{path:"admin/ai-models/new",canActivate:[t],loadComponent:()=>import('./chunk-DmNKvrHl.js').then(e=>e.AiModelFormComponent)},{path:"admin/ai-models/:modelId/edit",canActivate:[t],loadComponent:()=>import('./chunk-DmNKvrHl.js').then(e=>e.AiModelFormComponent)},{path:"admin/ai-models",canActivate:[t],loadComponent:()=>import('./chunk-C2Inb2UP.js').then(e=>e.PlatformAiModelsComponent)},{path:"admin/agent-configs/new",canActivate:[t],loadComponent:()=>import('./chunk-Mxaxers6.js').then(e=>e.AgentConfigFormComponent)},{path:"admin/agent-configs/:agentConfigId/edit",canActivate:[t],loadComponent:()=>import('./chunk-Mxaxers6.js').then(e=>e.AgentConfigFormComponent)},{path:"admin/agent-configs/:agentConfigId/inspect",canActivate:[t],loadComponent:()=>import('./chunk-D3fatnCm.js').then(e=>e.AgentConfigInspectComponent)},{path:"admin/agent-configs",canActivate:[t],loadComponent:()=>import('./chunk-Cq3KqN1m.js').then(e=>e.PlatformAgentConfigsComponent)},{path:"me",canActivate:[t],loadComponent:()=>import('./chunk-B_-1xOxe.js').then(e=>e.UserProfileComponent)},{path:"user",canActivate:[t],loadComponent:()=>import('./chunk-B_-1xOxe.js').then(e=>e.UserProfileComponent)},{path:":namespaceId/auth-settings/new",canActivate:[t],loadComponent:()=>import('./chunk-KIJUJ9nq.js').then(e=>e.AuthSettingFormComponent)},{path:":namespaceId/auth-settings/:authSettingId/edit",canActivate:[t],loadComponent:()=>import('./chunk-KIJUJ9nq.js').then(e=>e.AuthSettingFormComponent)},{path:":namespaceId/auth-settings",canActivate:[t],loadComponent:()=>import('./chunk-B-Ejl4sU.js').then(e=>e.AuthSettingsAllScopesComponent)},{path:":namespaceId/integrations/new",canActivate:[t],loadComponent:()=>import('./chunk-CG3MF0H4.js').then(e=>e.IntegrationFormComponent)},{path:":namespaceId/integrations/:integrationId/edit",canActivate:[t],loadComponent:()=>import('./chunk-CG3MF0H4.js').then(e=>e.IntegrationFormComponent)},{path:":namespaceId/integrations",canActivate:[t],loadComponent:()=>import('./chunk-bgvmHk7z.js').then(e=>e.IntegrationsAllScopesComponent)},{path:":namespaceId/ai-providers/new",canActivate:[t],loadComponent:()=>import('./chunk-D3BAOO_0.js').then(e=>e.AiProviderFormComponent)},{path:":namespaceId/ai-providers/:aiProviderId/edit",canActivate:[t],loadComponent:()=>import('./chunk-D3BAOO_0.js').then(e=>e.AiProviderFormComponent)},{path:":namespaceId/ai-providers",canActivate:[t],loadComponent:()=>import('./chunk-CNmZmLwF.js').then(e=>e.AiProvidersAllScopesComponent)},{path:":namespaceId/ai-models/new",canActivate:[t],loadComponent:()=>import('./chunk-DmNKvrHl.js').then(e=>e.AiModelFormComponent)},{path:":namespaceId/ai-models/:modelId/edit",canActivate:[t],loadComponent:()=>import('./chunk-DmNKvrHl.js').then(e=>e.AiModelFormComponent)},{path:":namespaceId/ai-models",canActivate:[t],loadComponent:()=>import('./chunk-DZUhjamf.js').then(e=>e.NamespaceAiModelsComponent)},{path:":namespaceId/usage",canActivate:[t],loadComponent:()=>import('./chunk-P6Fi8ohd.js').then(e=>e.NamespaceUsageComponent)},{path:":namespaceId/scheduled-prompts/new",canActivate:[t],loadComponent:()=>import('./chunk-lU3996br.js').then(e=>e.ScheduledPromptFormComponent)},{path:":namespaceId/scheduled-prompts/:scheduledPromptId/edit",canActivate:[t],loadComponent:()=>import('./chunk-lU3996br.js').then(e=>e.ScheduledPromptFormComponent)},{path:":namespaceId/scheduled-prompts",canActivate:[t],loadComponent:()=>import('./chunk-CEQ5C5Tx.js').then(e=>e.ScheduledPromptListComponent)},{path:":namespaceId/prompts/new",canActivate:[t],loadComponent:()=>import('./chunk-BXZoje_o.js').then(e=>e.PromptFormComponent)},{path:":namespaceId/prompts/:promptId/edit",canActivate:[t],loadComponent:()=>import('./chunk-BXZoje_o.js').then(e=>e.PromptFormComponent)},{path:":namespaceId/prompts",canActivate:[t],loadComponent:()=>import('./chunk-COD2O4SF.js').then(e=>e.NamespacePromptsComponent)},{path:":namespaceId/agent-configs/new",canActivate:[t],loadComponent:()=>import('./chunk-Mxaxers6.js').then(e=>e.AgentConfigFormComponent)},{path:":namespaceId/agent-configs/:agentConfigId/edit",canActivate:[t],loadComponent:()=>import('./chunk-Mxaxers6.js').then(e=>e.AgentConfigFormComponent)},{path:":namespaceId/agent-configs/:agentConfigId/inspect",canActivate:[t],loadComponent:()=>import('./chunk-D3fatnCm.js').then(e=>e.AgentConfigInspectComponent)},{path:":namespaceId/agent-configs/:agentConfigId/launch",canActivate:[t],loadComponent:()=>import('./chunk-1mA1C1Ia.js').then(e=>e.AgentConfigLaunchComponent)},{path:":namespaceId/agent-configs",canActivate:[t],loadComponent:()=>import('./chunk-C0KRHI6e.js').then(e=>e.NamespaceAgentConfigsComponent)},{path:":namespaceId/user-groups/new",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunkN4R2KURD}).then(e=>e.UserGroupFormComponent)},{path:":namespaceId/user-groups/:userGroupId/edit",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunkN4R2KURD}).then(e=>e.UserGroupFormComponent)},{path:":namespaceId/user-groups",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunkSOPJ2G4R}).then(e=>e.NamespaceUserGroupsComponent)},{path:":namespaceId/tool-invoke",canActivate:[t],loadComponent:()=>import('./chunk-4QqbIPaR.js').then(e=>e.ToolInvokeComponent)},{path:":namespaceId/git",canActivate:[t],loadComponent:()=>import('./chunk-O4nbXJCv.js').then(e=>e.NamespaceGitComponent)},{path:":namespaceId/members",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunkIH5XTIKJ}).then(e=>e.NamespaceMembersComponent)},{path:"",redirectTo:"namespaces",pathMatch:"full"}]}]}];function B(e,i){e&1&&_g(0,"span",1);}function R(e,i){e&1&&_g(0,"span",2);}function G(e,i){e&1&&_g(0,"span",3);}var u=class e{pluginService=g(oe$3);online=Gi$1(null);ngOnInit(){this.pluginService.getAllPlugins().subscribe({next:()=>this.online.set(true),error:()=>this.online.set(false)});}static \u0275fac=function(a){return new(a||e)};static \u0275cmp=xw({type:e,selectors:[["agentos-backend-status"]],decls:4,vars:1,consts:[[1,"backend-status"],["title","AgentOS online",1,"dot","dot--online"],["title","AgentOS offline",1,"dot","dot--offline"],["title","Checking\u2026",1,"dot","dot--checking"]],template:function(a,m){if(a&1&&(hl$1(0,"div",0),Jw(1,B,1,0,"span",1)(2,R,1,0,"span",2)(3,G,1,0,"span",3),gl$1()),a&2){let c;XE(),eC((c=m.online())===true?1:c===false?2:3);}},styles:[".backend-status[_ngcontent-%COMP%]{display:flex;align-items:center}.dot[_ngcontent-%COMP%]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dot--online[_ngcontent-%COMP%]{background:var(--color-success, #34c759)}.dot--offline[_ngcontent-%COMP%]{background:var(--color-error, #ff3b30)}.dot--checking[_ngcontent-%COMP%]{background:var(--color-text-secondary, #6e6e73);opacity:.5;animation:_ngcontent-%COMP%_pulse 1.2s ease-in-out infinite}@keyframes _ngcontent-%COMP%_pulse{0%,to{opacity:.5}50%{opacity:1}}"],changeDetection:1})};function j(e,i){if(e&1){let a=lC();ws$1(0,"button",9),Rg("click",function(){If(a);let c=gC();return wf(c.navigateToAdmin())}),ws$1(1,"span",10),GC(2,"\u2699\uFE0F"),pl$1()();}}function L(e,i){if(e&1&&(ws$1(0,"span",7),GC(1),pl$1()),e&2){let a=gC();XE(),Yg(a.userInitials);}}function V(e,i){e&1&&(ws$1(0,"span",8),GC(1,"\u25EF"),pl$1());}var U=class e{router=g(G$5);userState=g(l$3);destroyRef=g(Ce$1);currentUser=this.userState.currentUser;navigateHome(){this.router.navigate(["/agentos/home"]);}isAdmin=mT(()=>this.userState.currentUser()?.isAdmin===true);navigateToAdmin(){this.router.navigate(["/agentos/admin"]);}ngOnInit(){this.currentUser()||this.userState.loadMe().pipe(U$3(this.destroyRef)).subscribe();}get userInitials(){let i=this.currentUser();if(!i)return "";let a=i.firstname?.[0]??"",m=i.lastname?.[0]??"";return (a+m).toUpperCase()||i.email?.[0]?.toUpperCase()||"?"}get isOnProfilePage(){return this.router.url.startsWith("/agentos/me")}toggleProfile(){this.isOnProfilePage?window.history.length>1?window.history.back():this.router.navigate(["/agentos"]):this.router.navigate(["/agentos/me"]);}static \u0275fac=function(a){return new(a||e)};static \u0275cmp=xw({type:e,selectors:[["agentos-header"]],decls:11,vars:5,consts:[[1,"header"],["type","button","title","Home",1,"header__brand",3,"click"],["src","CODAY-Logo.png","alt","Coday",1,"header__logo-img"],[1,"header__logo-text"],[1,"header__nav"],["type","button","title","Admin",1,"header__admin-btn"],["type","button",1,"header__user-btn",3,"click","title"],[1,"header__user-initials"],[1,"header__user-icon"],["type","button","title","Admin",1,"header__admin-btn",3,"click"],[1,"header__admin-icon"]],template:function(a,m){a&1&&(ws$1(0,"header",0)(1,"button",1),Rg("click",function(){return m.navigateHome()}),Sg(2,"img",2),ws$1(3,"span",3),GC(4,"Coday"),pl$1()(),ws$1(5,"nav",4),Sg(6,"agentos-backend-status"),Jw(7,j,3,0,"button",5),ws$1(8,"button",6),Rg("click",function(){return m.toggleProfile()}),Jw(9,L,2,1,"span",7)(10,V,2,0,"span",8),pl$1()()()),a&2&&(XE(7),eC(m.isAdmin()?7:-1),XE(),Ug("header__user-btn--active",m.isOnProfilePage),bg("title",m.isOnProfilePage?"Back":"My profile"),XE(),eC(m.userInitials?9:10));},dependencies:[u],styles:[".header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;height:56px;background:var(--glass-bg, rgba(255, 255, 255, .72));border-bottom:1px solid var(--glass-border, rgba(255, 255, 255, .18));backdrop-filter:var(--glass-backdrop-blur, blur(20px));-webkit-backdrop-filter:var(--glass-backdrop-blur, blur(20px));position:sticky;top:0;z-index:100}.header__brand[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;background:none;border:none;padding:0;cursor:pointer;border-radius:6px;transition:opacity .15s ease}.header__brand[_ngcontent-%COMP%]:hover{opacity:.7}.header__logo-img[_ngcontent-%COMP%]{width:32px;height:32px;object-fit:contain}.header__logo-text[_ngcontent-%COMP%]{font-size:1rem;font-weight:700;letter-spacing:-.01em;color:var(--color-text, #1d1d1f)}.header__nav[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem}.header__admin-btn[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:1.5px solid var(--color-border, rgba(0, 0, 0, .1));background:var(--color-bg-secondary, rgba(0, 0, 0, .04));cursor:pointer;transition:background .15s ease,border-color .15s ease;padding:0;font-family:inherit;font-size:1rem;line-height:1}.header__admin-btn[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .08));border-color:var(--color-primary, #007aff)}.header__admin-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.header__user-btn[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:1.5px solid var(--color-border, rgba(0, 0, 0, .1));background:var(--color-bg-secondary, rgba(0, 0, 0, .04));cursor:pointer;transition:background .15s ease,border-color .15s ease;padding:0;font-family:inherit}.header__user-btn[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .08));border-color:var(--color-primary, #007aff)}.header__user-btn--active[_ngcontent-%COMP%]{background:var(--color-primary, #007aff);border-color:var(--color-primary, #007aff)}.header__user-btn--active[_ngcontent-%COMP%] .header__user-initials[_ngcontent-%COMP%], .header__user-btn--active[_ngcontent-%COMP%] .header__user-icon[_ngcontent-%COMP%]{color:#fff}.header__user-initials[_ngcontent-%COMP%]{font-size:.75rem;font-weight:600;color:var(--color-text, #1d1d1f);line-height:1;letter-spacing:.02em}.header__user-icon[_ngcontent-%COMP%]{font-size:1rem;color:var(--color-text-secondary, #6e6e73);line-height:1}"],changeDetection:1})};function W(e,i){if(e&1&&(ws$1(0,"p",11),GC(1," Last action: "),ws$1(2,"strong"),GC(3),pl$1()()),e&2){let a=gC();XE(3),Yg(a.lastAction());}}var z=class e{lastAction=Gi$1(null);onSend(){this.lastAction.set("send");}onStop(){this.lastAction.set("stop");}onAttach(){this.lastAction.set("attach");}static \u0275fac=function(a){return new(a||e)};static \u0275cmp=xw({type:e,selectors:[["agentos-hello"]],decls:35,vars:2,consts:[[1,"hello-agentos"],[1,"card"],[1,"badge"],[1,"principles"],[1,"demo"],[1,"demo-label"],[1,"demo-buttons"],["icon","send","variant","primary","title","Send",3,"action"],["icon","stop","variant","danger","title","Stop",3,"action"],["icon","attach_file","variant","default","title","Attach",3,"action"],["icon","mic","variant","default","title","Record",3,"action","disabled"],[1,"demo-feedback"]],template:function(a,m){a&1&&(ws$1(0,"div",0)(1,"div",1)(2,"div",2),GC(3,"AgentOS UI"),pl$1(),ws$1(4,"h1"),GC(5,"Hello AgentOS"),pl$1(),ws$1(6,"p"),GC(7," This component lives in "),ws$1(8,"code"),GC(9,"libs/agentos-ui"),pl$1(),GC(10," \u2014 isolated from Coday internals, ready to be published as "),ws$1(11,"code"),GC(12,"@whoz-oss/agentos-ui"),pl$1(),GC(13,". "),pl$1(),Sg(14,"agentos-backend-status"),ws$1(15,"ul",3)(16,"li"),GC(17,"\u2726 No imports from Coday app"),pl$1(),ws$1(18,"li"),GC(19,"\u2726 CSS custom properties as host contract"),pl$1(),ws$1(20,"li"),GC(21,"\u2726 Standalone Angular components"),pl$1(),ws$1(22,"li"),GC(23,"\u2726 Signals-first reactive state"),pl$1()(),ws$1(24,"div",4)(25,"p",5),GC(26,"ds-icon-button from "),ws$1(27,"code"),GC(28,"@whoz-oss/design-system"),pl$1()(),ws$1(29,"div",6)(30,"ds-icon-button",7),Rg("action",function(){return m.onSend()}),pl$1(),ws$1(31,"ds-icon-button",8),Rg("action",function(){return m.onStop()}),pl$1(),ws$1(32,"ds-icon-button",9),Rg("action",function(){return m.onAttach()}),pl$1(),ws$1(33,"ds-icon-button",10),Rg("action",function(){return m.onAttach()}),pl$1()(),Jw(34,W,4,1,"p",11),pl$1()()()),a&2&&(XE(33),bg("disabled",true),XE(),eC(m.lastAction()?34:-1));},dependencies:[Se$1,u],styles:['@charset "UTF-8";.hello-agentos[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem}.card[_ngcontent-%COMP%]{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 32px 0 rgba(31, 38, 135, .15));backdrop-filter:var(--glass-backdrop-blur, blur(20px));-webkit-backdrop-filter:var(--glass-backdrop-blur, blur(20px));border-radius:20px;padding:3rem;max-width:480px;width:100%;text-align:center}.badge[_ngcontent-%COMP%]{display:inline-block;background:var(--color-primary, #007aff);color:var(--color-text-inverse, #ffffff);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:.25rem .75rem;border-radius:100px;margin-bottom:1.5rem}h1[_ngcontent-%COMP%]{color:var(--color-text, #1d1d1f);font-size:2rem;font-weight:700;margin:0 0 1rem;letter-spacing:-.02em}p[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);line-height:1.6;margin:0 0 1.5rem}p[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:var(--color-code-bg, rgba(142, 142, 147, .12));color:var(--color-code-text, #ff375f);padding:.125rem .375rem;border-radius:6px;font-size:.875em;border:1px solid var(--color-border, rgba(0, 0, 0, .1))}.principles[_ngcontent-%COMP%]{list-style:none;margin:0 0 1.5rem;padding:0;text-align:left;display:flex;flex-direction:column;gap:.5rem}.principles[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);font-size:.9rem;padding:.5rem .75rem;background:var(--color-bg-hover, rgba(0, 0, 0, .04));border-radius:8px;border:1px solid var(--color-border-light, rgba(40, 40, 40, .08))}.demo[_ngcontent-%COMP%]{border-top:1px solid var(--color-border-light, rgba(40, 40, 40, .08));padding-top:1.25rem}.demo[_ngcontent-%COMP%] .demo-label[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);font-size:.8rem;margin:0 0 .75rem}.demo[_ngcontent-%COMP%] .demo-label[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:var(--color-code-bg, rgba(142, 142, 147, .12));color:var(--color-code-text, #ff375f);padding:.125rem .375rem;border-radius:6px;font-size:.875em;border:1px solid var(--color-border, rgba(0, 0, 0, .1))}.demo[_ngcontent-%COMP%] .demo-buttons[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:center;justify-content:center;padding:.75rem;background:var(--color-bg-hover, rgba(0, 0, 0, .04));border-radius:12px;border:1px solid var(--color-border-light, rgba(40, 40, 40, .08))}.demo[_ngcontent-%COMP%] .demo-feedback[_ngcontent-%COMP%]{margin:.75rem 0 0;font-size:.85rem;color:var(--color-text-secondary, #6e6e73)}.demo[_ngcontent-%COMP%] .demo-feedback[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--color-primary, #007aff)}'],changeDetection:1})};var chunkZF25HP7W=/*#__PURE__*/Object.freeze({__proto__:null,AGENTOS_ROUTES:Le,ActionCardChipsDirective:h$2,ActionCardComponent:B$1,AdminUsersGroupsComponent:Z,AgentosShellComponent:l$1,AgentosThemeService:m$1,AgentosUserPreferencesService:o,BackendStatusComponent:u,CaseChatComponent:Dt,CaseDrawerComponent:Vt,CaseHomeComponent:It,CaseItemComponent:Rt,CaseShellComponent:Wo,ENTER_KEY_BEHAVIORS:l,ExchangeContentViewerComponent:yt,ExchangeDrawerComponent:St,ExchangeFileListComponent:wt,ExchangeItemComponent:Re,ExchangeShellComponent:Mt,ExchangeStateService:de,HeaderComponent:U,HelloAgentosComponent:z,LayoutComponent:x,MAX_VIEWABLE_SIZE:hm,MarkdownPipe:d$1,NamespaceItemComponent:q,NamespaceListComponent:X,NamespaceMemberStateService:S,NamespaceMembersComponent:H$2,NamespaceSelectComponent:w,NamespaceUserGroupsComponent:d$3,THEME_MODES:l$2,THEME_PORT:I$1,THEME_VARIANTS:p$1,USER_PREFERENCES_PORT:f,UserAdminStateService:c$1,UserFormComponent:$,UserGroupFormComponent:se$2,UserGroupItemComponent:D$1,UserGroupListComponent:te$3,UserGroupStateService:m$3,UserItemComponent:I$2,UserListComponent:k,UserStateService:l$3,agentosReadyGuard:t,canViewFile:Eo,detectFormat:So,exchangeMutationScope:ko,formatDate:wo,formatSize:yo,getFileIcon:xt,isFormatViewable:ji,isViewable:Qi,reindentJson:Mo,toBreadcrumb:ho});var chunkC3U3Y3AP=/*#__PURE__*/Object.freeze({__proto__:null,AgentosShellComponent:l$1});var chunk6X3XUT2D=/*#__PURE__*/Object.freeze({__proto__:null,CaseShellComponent:Wo});var chunkGU2O4DQZ=/*#__PURE__*/Object.freeze({__proto__:null,LayoutComponent:x});var chunkA7NWKXYJ=/*#__PURE__*/Object.freeze({__proto__:null,NamespaceListComponent:X});var chunkXVEXZCBW=/*#__PURE__*/Object.freeze({__proto__:null,UserFormComponent:$});var chunkWD2FKIQK=/*#__PURE__*/Object.freeze({__proto__:null,AdminUsersGroupsComponent:Z});var chunkN4R2KURD=/*#__PURE__*/Object.freeze({__proto__:null,UserGroupFormComponent:se$2});var chunkSOPJ2G4R=/*#__PURE__*/Object.freeze({__proto__:null,NamespaceUserGroupsComponent:d$3});var chunkIH5XTIKJ=/*#__PURE__*/Object.freeze({__proto__:null,NamespaceMembersComponent:H$2});export{B$1 as B,I$1 as I,O,chunkZF25HP7W as a,c$2 as c,d$1 as d,f,l$3 as l,m,p};
|