@whoz-oss/coday-client 3.22.0 → 3.24.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-DeRNr5E2.js → chunk-15rAOoZz.js} +2 -2
- package/browser/chunk-16yQFy5_.js +1 -0
- package/browser/{chunk-NNu6xUAE.js → chunk-4XIlyOr9.js} +2 -2
- package/browser/{chunk-afcQqtlz.js → chunk-7-d3g3_Q.js} +1 -1
- package/browser/{chunk-GG036UVD.js → chunk-B-t2KLMQ.js} +1 -1
- package/browser/chunk-B3xYeZtG.js +1 -0
- package/browser/chunk-B4l5qLZ6.js +1 -0
- package/browser/{chunk-BKBTovXz.js → chunk-B52iVZ-n.js} +5 -5
- package/browser/chunk-B7GIYsvs.js +1 -0
- package/browser/{chunk-KoKdufNA.js → chunk-BBRGEWfs.js} +1 -1
- package/browser/{chunk-D1v8TfDX.js → chunk-BHb31ndI.js} +1 -1
- package/browser/{chunk-C_OF_Yht.js → chunk-BK_05kmN.js} +1 -1
- package/browser/chunk-BLSD82nL.js +1 -0
- package/browser/{chunk-MecHdK4O.js → chunk-BOArVQMu.js} +1 -1
- package/browser/{chunk-Bg-7wA2s.js → chunk-BPAPWlpQ.js} +1 -1
- package/browser/{chunk-Duk6Ikve.js → chunk-BQmHxval.js} +1 -1
- package/browser/{chunk-DqDzCK-6.js → chunk-BYJTaU4n.js} +1 -1
- package/browser/{chunk-C5Sn2M5w.js → chunk-BYg1TwUC.js} +1 -1
- package/browser/{chunk-D2fwi0Hc.js → chunk-BqhCkR9t.js} +1 -1
- package/browser/{chunk-DBUR_gpS.js → chunk-BqxwtKFs.js} +1 -1
- package/browser/{chunk-DXd3i3QM.js → chunk-Byin_63d.js} +5 -5
- package/browser/{chunk-C1X5uZwT.js → chunk-BzZbVcon.js} +3 -3
- package/browser/{chunk-CU4qkq0J.js → chunk-C11du_uP.js} +1 -1
- package/browser/chunk-C1RU8zia.js +9 -0
- package/browser/{chunk-I_PMkbKO.js → chunk-C2Rueaad.js} +1 -1
- package/browser/{chunk-DCkYfo8J.js → chunk-C2agnPiQ.js} +1 -1
- package/browser/{chunk-B8IQI7aT.js → chunk-C93ZXc5y.js} +1 -1
- package/browser/{chunk-B69a5iLl.js → chunk-C9dkqMA4.js} +1 -1
- package/browser/{chunk-BCGN7Bq-.js → chunk-CBYDDKYs.js} +1 -1
- package/browser/{chunk-CxXOCgTg.js → chunk-CIcEtCxk.js} +1 -1
- package/browser/{chunk-CPlR5wjp.js → chunk-CIfgFQUQ.js} +3 -3
- package/browser/chunk-CKBQdAGJ.js +1 -0
- package/browser/chunk-CKEgNNXU.js +1 -0
- package/browser/{chunk-BNNLW7hd.js → chunk-CPI0Zzv3.js} +1 -1
- package/browser/{chunk-DmbNv5OX.js → chunk-CPt7Uw3a.js} +1 -1
- package/browser/{chunk-DkqPRNv1.js → chunk-CaH-AtD3.js} +2 -2
- package/browser/{chunk-C9nbDemu.js → chunk-CbCwwL-W.js} +1 -1
- package/browser/{chunk-D4w4_Vsw.js → chunk-Cf7f_94t.js} +1 -1
- package/browser/{chunk-Dipwr8Xn.js → chunk-CjPIJIB-.js} +1 -1
- package/browser/{chunk-CJKwH7Qd.js → chunk-Co5BFbll.js} +1 -1
- package/browser/{chunk-Dwp6OoVJ.js → chunk-CqM-2yCQ.js} +2 -2
- package/browser/{chunk-CFD2_xIF.js → chunk-CzDFGxwY.js} +1 -1
- package/browser/{chunk-dNACuqx8.js → chunk-D-5Imhde.js} +1 -1
- package/browser/{chunk-gaa6JiT9.js → chunk-D4DTIvDf.js} +1 -1
- package/browser/chunk-D4_R7aqN.js +1 -0
- package/browser/{chunk-3KjG4Ivh.js → chunk-DCjMvdvV.js} +1 -1
- package/browser/{chunk-CtVgyQBm.js → chunk-DCx8SlS-.js} +1 -1
- package/browser/{chunk-OuaG8E_K.js → chunk-DDertr1B.js} +1 -1
- package/browser/{chunk-CNz7zaTq.js → chunk-DFjiy89D.js} +1 -1
- package/browser/{chunk-BD91wN51.js → chunk-DIuETvVC.js} +1 -1
- package/browser/{chunk-DAxRjiEx.js → chunk-DK1hp0WW.js} +6 -6
- package/browser/chunk-DNVNXvsJ.js +1 -0
- package/browser/{chunk-CYOKxOkd.js → chunk-DeXXr4BL.js} +6 -6
- package/browser/{chunk-DNRaKymp.js → chunk-DgYr3Diz.js} +1 -1
- package/browser/{chunk-DH88xB_s.js → chunk-DpkO3_bQ.js} +1 -1
- package/browser/{chunk-BLF3w_iN.js → chunk-DuXr-yGB.js} +1 -1
- package/browser/{chunk-DUCSH1q7.js → chunk-DwQ0v-xH.js} +1 -1
- package/browser/{chunk-B1VIKLB-.js → chunk-I8YepFsn.js} +2 -2
- package/browser/{chunk-kUdwsgzt.js → chunk-IXLj2Qpp.js} +1 -1
- package/browser/{chunk-A12eXtlW.js → chunk-KXiD_ZK3.js} +1 -1
- package/browser/chunk-TkSR4UzV.js +1 -0
- package/browser/{chunk-32YJp-72.js → chunk-XBakzM_b.js} +1 -1
- package/browser/chunk-buoxjd5i.js +1 -0
- package/browser/{chunk-CxnQWVA-.js → chunk-g2nkIubB.js} +1 -1
- package/browser/{chunk-CHP4jN9Z.js → chunk-j5aTABHx.js} +1 -1
- package/browser/chunk-kNbhE9tu.js +2 -0
- package/browser/{chunk-Bf3fjpOn.js → chunk-mUd43Vo8.js} +1 -1
- package/browser/{chunk-cyIUrL9y.js → chunk-nSYjfmpf.js} +1 -1
- package/browser/{chunk-DsnIWrL1.js → chunk-sLJinEtR.js} +1 -1
- package/browser/index.html +1 -1
- package/browser/{main-P72KGKGP.js → main-JTU33H5D.js} +18 -18
- package/package.json +1 -1
- package/browser/chunk-BIeOmcVm.js +0 -2
- package/browser/chunk-BRwhmCei.js +0 -1
- package/browser/chunk-BWJO7VDR.js +0 -1
- package/browser/chunk-BgdV8OdP.js +0 -1
- package/browser/chunk-C9ckXqnn.js +0 -1
- package/browser/chunk-CPOlQJvd.js +0 -1
- package/browser/chunk-CThn4VXH.js +0 -1
- package/browser/chunk-CUv3B-19.js +0 -9
- package/browser/chunk-CoPepxeH.js +0 -1
- package/browser/chunk-DJaf3eTF.js +0 -1
- package/browser/chunk-Dpnh8sS8.js +0 -1
- package/browser/chunk-DzcV-nhe.js +0 -1
- package/browser/chunk-NBeBKSWy.js +0 -1
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import {X as br$1,g,dF as le$3,W as Wi$1,bU as jd,a as P,Y as x$1,dg as ee$2,ao as V$2,G as G$5,C as Ce$1,a7 as va$1,b as U$3,S as Wy,z as z$2,j as jw,k as Cs$1,n as Lg,J as JC,m as hl$1,o as aC,u as sI,v as cC,a9 as vC,ac as CC,x as xg,q as dC,w as fC,a8 as em,N as Ng,aa as Sf,ab as _f,dG as de$1,da as M,ce as kb,af as bg,A as Ag,a3 as ZI,y as qg,a6 as QI,a5 as Dl,t as AC,b4 as fT,ch as kg,ag as ET,cb as nV,cc as tV,aw as gl$1,ax as ml$1,cJ as jg,c0 as Fg,dH as rm,F as F$1,aD as zy,dh as T,bS as Da$1,T as TT,aZ as Bs$1,cs as sV,bA as bC,cx as Ug,cw as xC,bB as SC,bk as wh,dI as ce$3,ah as dT,d5 as k$1,d8 as N$1,aJ as Tr$1,r as re$4,aK as Lb,bf as gT,bg as yT,bp as yl,bq as vl,c9 as Bf,ck as Vf,aW as C$1,dJ as mr$1,aI as RS,b1 as On,dK as re$5,dL as ue$3,E as vy,d4 as y$1,aP as G$6,cE as Pd,b6 as Rg,ad as Wg,cr as oV,cd as Wf,c2 as PE,av as dt$1,dM as Qy,dN as Te$1,dO as Ub,ai as sm,ak as im,b5 as lT,cv as $g,cu as uV,dP as Re$1,H as Hg,M as MC,B as NC,dQ as K$2,an as ue$4,ae as kt$1,Q as Md,bh as qy,ap as _d,dR as Td,cL as Cd,az as Xt,dS as Z$3,dC as hi$1,dT as av,dU as lv,aA as an,dV as Ld,bR as Sd,bQ as Jy,cB as on,dW as Ea$1,dX as sv,dY as pi$1,dZ as iV,d_ as ae$4,dq as G$7,bF as J$2,d$ as rv,bP as ev,e0 as xr$1,e1 as kd$1,cF as $b,cN as kn,e2 as jb,e3 as Ve,cH as iC,e4 as z$4,e5 as Ie$1,e6 as Q$2,a4 as lC,b$ as UC,a$ as sT,b0 as tm,bi as vT,e7 as om,bj as gE,aj as iT,e8 as nm,cg as pT,e9 as oe$3}from'./main-JTU33H5D.js';import {x as x$2,i as is$1,U as Ue}from'./chunk-BK_05kmN.js';import {P as Pn,Z as Zn$2,S as Se$1,W as Wn,K as Kn,J as Jn$2,U as Un,X as Xn$2,G as Gn,Y as Yn$1}from'./chunk-DeXXr4BL.js';import'./chunk-DK1hp0WW.js';import {o as z$3,k as _t$1,b as _e$2,n as ni$1,J as Jn$1,Q as Qn,e as ei$1,Y as Ye,Z as Zn$1,l as Xn$1,E as En,p as An,a as wt$1}from'./chunk-DuXr-yGB.js';function d$3(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$3=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(le$3);currentUser=Wi$1(null);loadMe(){return this.userController.getMeUser().pipe(jd(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=P(P({},e),r);return this.userController.updateUser(e.id,c).pipe(jd(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(le$3);listMembers(t){return this.membership.getMembersNamespaceMembership(t)}listAllUsers(){return this.userController.listAllUser()}updateMembers(t,e){let i=e.map(n=>P({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&&(Cs$1(0,"p",5),JC(1,"Loading\u2026"),hl$1());}function K$1(r,t){r&1&&(Cs$1(0,"p",7),JC(1," You can change roles or remove existing members. Only a platform super-admin can add a new user to this namespace. "),hl$1());}function Q$1(r,t){r&1&&(Cs$1(0,"p",11),JC(1,"No members yet."),hl$1());}function W$2(r,t){if(r&1&&(Cs$1(0,"span",22),JC(1),hl$1()),r&2){let e=CC().$implicit;sI(),em(e.email);}}function X$2(r,t){if(r&1){let e=vC();Cs$1(0,"li",19)(1,"div",20)(2,"span",21),JC(3),hl$1(),aC(4,W$2,2,1,"span",22),hl$1(),Cs$1(5,"select",23),Lg("change",function(n){let c=Sf(e).$implicit,Y=CC(3);return _f(Y.setMemberRole(c.userId,n.target.value))}),Cs$1(6,"option",24),JC(7,"Member"),hl$1(),Cs$1(8,"option",25),JC(9,"Admin"),hl$1()(),Cs$1(10,"button",26),Lg("click",function(){let n=Sf(e).$implicit,c=CC(3);return _f(c.removeMember(n.userId))}),JC(11," \xD7 "),hl$1()();}if(r&2){let e=t.$implicit;sI(3),em(e.label),sI(),cC(e.email&&e.email!==e.label?4:-1),sI(),xg("value",e.role),Ng("aria-label","Role of "+e.label),sI(5),xg("title","Remove "+e.label);}}function Z$2(r,t){if(r&1&&(Cs$1(0,"ul",12),dC(1,X$2,12,5,"li",19,q$2),hl$1()),r&2){let e=CC(2);sI(),fC(e.selectedMembers());}}function ee$1(r,t){r&1&&(Cs$1(0,"p",13),JC(1," At least one ADMIN must remain on the namespace. Assign ADMIN to someone before saving. "),hl$1());}function te$3(r,t){if(r&1){let e=vC();Cs$1(0,"ds-autocomplete-input",27),Lg("itemSelected",function(n){Sf(e);let c=CC(2);return _f(c.onMemberSelected(n))}),hl$1();}if(r&2){let e=CC(2);xg("dataSource",e.memberDataSource);}}function re$3(r,t){if(r&1&&(Cs$1(0,"p",15),JC(1),hl$1()),r&2){let e=CC(2);sI(),em(e.errorMessage());}}function ne$3(r,t){if(r&1){let e=vC();Cs$1(0,"div",6),aC(1,K$1,2,0,"p",7),Cs$1(2,"fieldset",8)(3,"legend",9),JC(4," Roster "),Cs$1(5,"span",10),JC(6,"Exactly one role per user: ADMIN or MEMBER"),hl$1()(),aC(7,Q$1,2,0,"p",11)(8,Z$2,3,0,"ul",12),aC(9,ee$1,2,0,"p",13),aC(10,te$3,1,1,"ds-autocomplete-input",14),hl$1(),aC(11,re$3,2,1,"p",15),Cs$1(12,"div",16)(13,"button",17),Lg("click",function(){Sf(e);let n=CC();return _f(n.submit())}),JC(14," Save changes "),hl$1(),Cs$1(15,"button",18),Lg("click",function(){Sf(e);let n=CC();return _f(n.cancel())}),JC(16,"Cancel"),hl$1()()();}if(r&2){let e=CC();sI(),cC(e.isSuperAdmin()?-1:1),sI(6),cC(e.selectedMembers().length===0?7:8),sI(2),cC(e.wouldLockOutAdmins()?9:-1),sI(),cC(e.isSuperAdmin()?10:-1),sI(),cC(e.errorMessage()?11:-1),sI(2),xg("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=Wi$1(false);isSubmitting=Wi$1(false);errorMessage=Wi$1(null);isSuperAdmin=Wi$1(false);selectedMembers=Wi$1([]);originalMembers=[];candidateUsers=Wi$1([]);memberDataSource=new m$3(()=>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(va$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){Wy({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?z$2(P({},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$3(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=jw({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&&(Cs$1(0,"div",0)(1,"header",1)(2,"button",2),Lg("click",function(){return i.cancel()}),Cs$1(3,"span",3),JC(4,"\u2190"),hl$1(),JC(5," Namespaces "),hl$1(),Cs$1(6,"h1",4),JC(7,"Members"),hl$1()(),aC(8,G$4,2,0,"p",5)(9,ne$3,17,6,"div",6),hl$1()),e&2&&(sI(8),cC(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)}"]})};var m$2=class s{controller=g(de$1);agentConfigController=g(M);namespaceMembership=g(ee$2);listByNamespace(e){return this.controller.findByNamespaceIdUserGroup(e)}loadFormData(e){return Wy({namespaceAgents:this.agentConfigController.listByParentAgentConfig(e,false),platformAgents:this.agentConfigController.listPlatformAgentsAgentConfig(false),users:this.namespaceMembership.getMembersNamespaceMembership(e)})}loadExistingGroup(e){return Wy({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"})};function ae$3(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$2=r=>({$implicit:r}),me$1=(r,t)=>t.id,pe$2=(r,t)=>t.externalId;function ue$2(r,t){r&1&&(Cs$1(0,"p",6),JC(1,"Loading\u2026"),hl$1());}function ge(r,t){r&1&&(Cs$1(0,"span",13),JC(1,"Name is required."),hl$1());}function _e$1(r,t){r&1&&(Cs$1(0,"p",18),JC(1,"No agent configs available in this namespace."),hl$1());}function fe(r,t){r&1&&kg(0);}function be(r,t){if(r&1&&bg(0,fe,1,0,"ng-container",27),r&2){let e=t.$implicit;CC(3);let o=AC(11);xg("ngTemplateOutlet",o)("ngTemplateOutletContext",fT(2,le$2,e));}}function xe(r,t){if(r&1&&(Cs$1(0,"div",19)(1,"span",26),JC(2,"Platform"),hl$1(),dC(3,be,1,4,"ng-container",null,me$1),hl$1()),r&2){let e=CC(2);sI(3),fC(e.platformAgents());}}function he(r,t){r&1&&kg(0);}function Ce(r,t){if(r&1&&bg(0,he,1,0,"ng-container",27),r&2){let e=t.$implicit;CC(3);let o=AC(11);xg("ngTemplateOutlet",o)("ngTemplateOutletContext",fT(2,le$2,e));}}function ve(r,t){if(r&1&&(Cs$1(0,"div",19)(1,"span",26),JC(2,"Namespace"),hl$1(),dC(3,Ce,1,4,"ng-container",null,me$1),hl$1()),r&2){let e=CC(2);sI(3),fC(e.namespaceAgents());}}function ye(r,t){r&1&&(Cs$1(0,"p",18),JC(1,"No members yet."),hl$1());}function Me(r,t){if(r&1&&(Cs$1(0,"span",31),JC(1),hl$1()),r&2){let e=CC().$implicit;sI(),em(e.email);}}function Se(r,t){if(r&1){let e=vC();Cs$1(0,"li",28)(1,"div",29)(2,"span",30),JC(3),hl$1(),aC(4,Me,2,1,"span",31),hl$1(),Cs$1(5,"select",32),Lg("change",function(n){let m=Sf(e).$implicit,c=CC(3);return _f(c.setMemberRole(m.externalId,n.target.value))}),Cs$1(6,"option",33),JC(7,"Member"),hl$1(),Cs$1(8,"option",34),JC(9,"Admin"),hl$1()(),Cs$1(10,"button",35),Lg("click",function(){let n=Sf(e).$implicit,m=CC(3);return _f(m.removeMember(n.externalId))}),JC(11," \xD7 "),hl$1()();}if(r&2){let e=t.$implicit;sI(3),em(e.label),sI(),cC(e.email&&e.email!==e.label?4:-1),sI(),xg("value",e.role),Ng("aria-label","Role of "+e.label),sI(5),xg("title","Remove "+e.label);}}function Ie(r,t){if(r&1&&(Cs$1(0,"ul",20),dC(1,Se,12,5,"li",28,pe$2),hl$1()),r&2){let e=CC(2);sI(),fC(e.selectedMembers());}}function Ee$1(r,t){if(r&1&&(Cs$1(0,"p",22),JC(1),hl$1()),r&2){let e=CC(2);sI(),em(e.errorMessage());}}function Ge(r,t){if(r&1){let e=vC();Cs$1(0,"form",8),Lg("ngSubmit",function(){Sf(e);let n=CC();return _f(n.submit())}),Cs$1(1,"div",9)(2,"label",10),JC(3,"Name "),Cs$1(4,"span",11),JC(5,"*"),hl$1()(),Ag(6,"input",12),ZI(),aC(7,ge,2,0,"span",13),hl$1(),Cs$1(8,"fieldset",14)(9,"legend",15),JC(10," Deployed agents "),Cs$1(11,"span",16),JC(12,"Agents this group can use"),hl$1()(),Cs$1(13,"p",17),JC(14," Pick from platform agents and this namespace's agents. An agent can be shared by multiple groups. "),hl$1(),aC(15,_e$1,2,0,"p",18),aC(16,xe,5,0,"div",19),aC(17,ve,5,0,"div",19),hl$1(),Cs$1(18,"fieldset",14)(19,"legend",15),JC(20," Members "),Cs$1(21,"span",16),JC(22,"Users in this group"),hl$1()(),Cs$1(23,"p",17),JC(24,"ADMIN members can manage this group; MEMBER is read-only."),hl$1(),aC(25,ye,2,0,"p",18)(26,Ie,3,0,"ul",20),Cs$1(27,"ds-autocomplete-input",21),Lg("itemSelected",function(n){Sf(e);let m=CC();return _f(m.onMemberSelected(n))}),hl$1()(),aC(28,Ee$1,2,1,"p",22),Cs$1(29,"div",23)(30,"button",24),JC(31),hl$1(),Cs$1(32,"button",25),Lg("click",function(){Sf(e);let n=CC();return _f(n.cancel())}),JC(33,"Cancel"),hl$1()()();}if(r&2){let e=CC();xg("formGroup",e.form),sI(6),qg("user-group-form__input--invalid",e.nameControl.invalid&&e.nameControl.touched),QI(),sI(),cC(e.nameControl.invalid&&e.nameControl.touched?7:-1),sI(8),cC(e.platformAgents().length===0&&e.namespaceAgents().length===0?15:-1),sI(),cC(e.platformAgents().length>0?16:-1),sI(),cC(e.namespaceAgents().length>0?17:-1),sI(8),cC(e.selectedMembers().length===0?25:26),sI(2),xg("dataSource",e.memberDataSource),sI(),cC(e.errorMessage()?28:-1),sI(2),xg("disabled",e.nameControl.invalid||e.isSubmitting()),sI(),Dl(" ",e.isEditMode()?"Save changes":"Create"," ");}}function Oe(r,t){if(r&1){let e=vC();Cs$1(0,"label",36)(1,"input",37),Lg("change",function(){let n=Sf(e).$implicit,m=CC();return _f(m.toggleAgent(n))}),hl$1(),Cs$1(2,"span",38),JC(3),hl$1()();}if(r&2){let e=t.$implicit,o=CC();sI(),xg("checked",o.isAgentSelected(e)),sI(2),em(e.name);}}var Ae=250,se$3=class r{route=g(V$2);router=g(G$5);destroyRef=g(Ce$1);userGroupState=g(m$2);namespaceId=this.route.snapshot.params.namespaceId;userGroupId=this.route.snapshot.paramMap.get("userGroupId");returnTo=this.route.snapshot.queryParamMap.get("returnTo");isEditMode=Wi$1(false);isLoading=Wi$1(false);isSubmitting=Wi$1(false);errorMessage=Wi$1(null);form=new z$3({name:new _t$1("",{nonNullable:true,validators:[_e$2.required,_e$2.maxLength(Ae)]})});get nameControl(){return this.form.controls.name}platformAgents=Wi$1([]);namespaceAgents=Wi$1([]);selectedAgentIds=Wi$1(new Set);candidateUsers=Wi$1([]);selectedMembers=Wi$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?z$2(P({},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$3(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=jw({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&&(Cs$1(0,"div",1)(1,"header",2)(2,"button",3),Lg("click",function(){return o.cancel()}),Cs$1(3,"span",4),JC(4,"\u2190"),hl$1(),JC(5," User Groups "),hl$1(),Cs$1(6,"h1",5),JC(7),hl$1()(),aC(8,ue$2,2,0,"p",6)(9,Ge,34,12,"form",7),hl$1(),bg(10,Oe,4,2,"ng-template",null,0,ET)),e&2&&(sI(7),em(o.isEditMode()?"Edit user group":"New user group"),sI(),cC(o.isLoading()?8:9));},dependencies:[kb,ni$1,Jn$1,Qn,ei$1,Ye,Zn$1,Xn$1,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 ne$2=(n,t)=>t.id;function oe$2(n,t){n&1&&(gl$1(0,"option",3),JC(1,"All namespaces"),ml$1());}function re$2(n,t){if(n&1&&(gl$1(0,"option",4),JC(1),ml$1()),n&2){let e=t.$implicit;Fg("value",e.id),sI(),em(e.name);}}var w=class n{namespaces=nV.required();value=nV(null);includeAllOption=nV(false);valueChange=tV();onChange(t){let e=t.target.value;this.valueChange.emit(e===""?null:e);}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=jw({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&&(gl$1(0,"label",0)(1,"span",1),JC(2,"Namespace"),ml$1(),gl$1(3,"select",2),jg("change",function(m){return o.onChange(m)}),aC(4,oe$2,2,0,"option",3),dC(5,re$2,2,2,"option",4,ne$2),ml$1()()),e&2&&(sI(3),Fg("value",o.value()??""),sI(),cC(o.includeAllOption()?4:-1),sI(),fC(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$2(n,t){if(n&1){let e=vC();Cs$1(0,"span",6),JC(1,"Delete?"),hl$1(),Cs$1(2,"ds-icon-button",7),Lg("action",function(){Sf(e);let r=CC();return _f(r.onDeleteConfirmed())}),hl$1(),Cs$1(3,"ds-icon-button",8),Lg("action",function(){Sf(e);let r=CC();return _f(r.onDeleteCancelled())}),hl$1();}}function ie$2(n,t){if(n&1){let e=vC();Cs$1(0,"ds-kebab-menu",9),Lg("itemSelected",function(r){Sf(e);let m=CC();return _f(m.onMenuAction(r))}),hl$1();}if(n&2){let e=CC();xg("items",e.menuItems);}}var D$1=class n{router=g(G$5);userGroup=nV.required();namespaceId=nV.required();returnTo=nV(void 0);deleteRequested=tV();pendingDelete=Wi$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=jw({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&&(Cs$1(0,"div",0)(1,"div",1)(2,"span",2),JC(3),hl$1(),Cs$1(4,"span",3),JC(5),hl$1()(),Cs$1(6,"div",4),aC(7,ae$2,4,0)(8,ie$2,1,1,"ds-kebab-menu",5),hl$1()()),e&2&&(qg("user-group-item--pending-delete",o.pendingDelete()),sI(3),em(o.userGroup().name),sI(2),rm(" ",o.agentCount," ",o.agentCount===1?"agent":"agents"," \xB7 ",o.userGroup().userCount," ",o.userGroup().userCount===1?"member":"members"," "),sI(2),cC(o.pendingDelete()?7:8));},dependencies:[Zn$2,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$2(n,t){if(n&1){let e=vC();Cs$1(0,"button",4),Lg("click",function(){Sf(e);let r=CC();return _f(r.onBack())}),JC(1),hl$1();}n&2&&(sI(),Dl("\u2190 ",t));}function le$1(n,t){if(n&1){let e=vC();Cs$1(0,"agentos-namespace-select",5),Lg("valueChange",function(r){Sf(e);let m=CC();return _f(m.onNamespaceChange(r))}),hl$1();}if(n&2){let e=CC();xg("namespaces",t)("value",e.namespaceId());}}function ue$1(n,t){if(n&1){let e=vC();Cs$1(0,"agentos-user-group-item",7),Lg("deleteRequested",function(r){Sf(e);let m=CC(2);return _f(m.deleteGroup(r))}),hl$1();}if(n&2){let e=CC(2);xg("userGroup",t)("namespaceId",e.namespaceId())("returnTo",e.returnTo());}}function pe$1(n,t){if(n&1&&aC(0,ue$1,1,3,"agentos-user-group-item",6),n&2){let e,o=t.$implicit,r=CC();cC((e=r.resolveGroup(o.id))?0:-1,e);}}var te$2=class n{router=g(G$5);destroyRef=g(Ce$1);userGroupState=g(m$2);namespaceId=nV.required();backLabel=nV(void 0);namespaces=nV(void 0);hideTitle=nV(false);returnTo=nV(void 0);backRequested=tV();namespaceChange=tV();refresh=Wi$1(0);isLoading=Wi$1(true);groups=F$1(zy([T(this.namespaceId),T(this.refresh)]).pipe(Da$1(([t])=>(this.isLoading.set(true),this.userGroupState.listByNamespace(t).pipe(jd(()=>this.isLoading.set(false)),va$1(e=>(console.error("[UserGroupList] Failed to load user groups",e),this.isLoading.set(false),br$1([]))))))),{initialValue:[]});groupItems=TT(()=>this.groups().map(t=>({id:t.userGroupId,name:t.name})));groupsById=TT(()=>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=jw({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&&(Cs$1(0,"ds-entity-list",1),Lg("createRequested",function(){return o.openCreateForm()}),aC(1,se$2,2,1,"button",2)(2,le$1,1,2,"agentos-namespace-select",3),hl$1(),bg(3,pe$1,1,1,"ng-template",null,0,ET)),e&2){let r,m=AC(4);xg("hideTitle",o.hideTitle())("items",o.groupItems())("loading",o.isLoading())("showCreate",true)("itemTemplate",m),sI(),cC((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$2=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=jw({type:s,selectors:[["agentos-namespace-user-groups"]],decls:1,vars:1,consts:[["backLabel","Namespaces",3,"backRequested","namespaceId"]],template:function(e,a){e&1&&(Cs$1(0,"agentos-user-group-list",0),Lg("backRequested",function(){return a.goBack()}),hl$1()),e&2&&xg("namespaceId",a.namespaceId);},dependencies:[te$2],encapsulation:2})};var Q=[[["","agentosCardChips",""]]],q$1=["[agentosCardChips]"];function F(n,t){n&1&&kg(0);}function U$2(n,t){if(n&1){let e=vC();Cs$1(0,"button",3),Lg("click",function(){Sf(e);let l=CC();return _f(l.nameClicked.emit())}),bg(1,F,1,0,"ng-container",4),hl$1();}if(n&2){CC();let e=AC(3);sI(),xg("ngTemplateOutlet",e);}}function R$1(n,t){n&1&&kg(0);}function G$2(n,t){if(n&1&&(Cs$1(0,"div",2),bg(1,R$1,1,0,"ng-container",4),hl$1()),n&2){CC();let e=AC(3);sI(),xg("ngTemplateOutlet",e);}}function H$1(n,t){if(n&1&&(Cs$1(0,"div",7),Ag(1,"img",15),hl$1()),n&2){let e=CC(2);sI(),xg("src",e.logo(),wh)("alt",e.name());}}function J$1(n,t){if(n&1&&(Cs$1(0,"div",16),JC(1),hl$1()),n&2){let e=CC(2);qg("ac__mark--emoji",e.markIsEmoji()),sI(),em(e.resolvedMark);}}function L$2(n,t){if(n&1&&(Cs$1(0,"span",10),JC(1),hl$1()),n&2){let e=CC(2);sI(),em(e.name());}}function W$1(n,t){if(n&1){let e=vC();Cs$1(0,"button",17),Lg("click",function(){Sf(e);let l=CC(2);return _f(l.nameClicked.emit())}),JC(1),hl$1();}if(n&2){let e=CC(2);sI(),em(e.name());}}function X$1(n,t){if(n&1&&(Cs$1(0,"p",12),JC(1),hl$1()),n&2){let e=CC(2);sI(),em(e.description());}}function Y(n,t){if(n&1){let e=vC();Cs$1(0,"ds-kebab-menu",18),Lg("itemSelected",function(l){Sf(e);let K=CC(2);return _f(K.menuAction.emit(l))}),hl$1();}if(n&2){let e=CC(2);xg("items",e.menuItems());}}function Z$1(n,t){n&1&&(Cs$1(0,"div",14),SC(1),hl$1());}function $$1(n,t){if(n&1&&(Cs$1(0,"div",5)(1,"div",6),aC(2,H$1,2,2,"div",7)(3,J$1,2,3,"div",8),Cs$1(4,"div",9),aC(5,L$2,2,1,"span",10)(6,W$1,2,1,"button",11),aC(7,X$1,2,1,"p",12),hl$1()(),aC(8,Y,1,1,"ds-kebab-menu",13),hl$1(),aC(9,Z$1,2,0,"div",14)),n&2){let e=CC();sI(2),cC(e.logo()?2:3),sI(3),cC(e.clickable()?5:6),sI(2),cC(e.description()?7:-1),sI(),cC(e.hasMenu?8:-1),sI(),cC(e.hasChips?9:-1);}}var h$2=class n{static \u0275fac=function(e){return new(e||n)};static \u0275dir=Bs$1({type:n,selectors:[["","agentosCardChips",""]]})},B$1=class n{name=nV.required();description=nV(null);mark=nV(null);markIsEmoji=nV(false);logo=nV(null);menuItems=nV([]);clickable=nV(false);nameClicked=tV();menuAction=tV();chipsSlot=sV(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=jw({type:n,selectors:[["agentos-action-card"]],contentQueries:function(e,m,l){e&1&&Ug(l,m.chipsSlot,h$2,5),e&2&&xC();},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&&(bC(Q),aC(0,U$2,2,1,"button",1)(1,G$2,2,1,"div",2),bg(2,$$1,10,5,"ng-template",null,0,ET)),e&2&&cC(m.clickable()?0:1);},dependencies:[Kn,Zn$2,kb],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(ce$3);destroy=g(Ce$1);configurationState=Wi$1("loading");state=this.configurationState.asReadonly();enabled=TT(()=>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=vC();yl(0,1),Cs$1(1,"span",2),JC(2,"Delete?"),hl$1(),Cs$1(3,"ds-icon-button",3),Lg("action",function(){Sf(t);let e=CC();return _f(e.onDeleteConfirmed())}),hl$1(),Cs$1(4,"ds-icon-button",4),Lg("action",function(){Sf(t);let e=CC();return _f(e.onDeleteCancelled())}),hl$1(),vl();}}function ie$1(l,n){if(l&1){let t=vC();Cs$1(0,"button",5),Lg("click",function(){Sf(t);let e=CC(2);return _f(e.usageRequested.emit(e.namespace()))}),JC(1,"Usage and costs"),hl$1();}}function oe$1(l,n){if(l&1){let t=vC();Cs$1(0,"button",5),Lg("click",function(){Sf(t);let e=CC(2);return _f(e.onGit())}),Bf(),Cs$1(1,"svg",6),Ag(2,"circle",31)(3,"circle",32)(4,"circle",33)(5,"path",34),hl$1(),JC(6," Git "),hl$1();}}function ae$1(l,n){if(l&1){let t=vC();yl(0,1),Cs$1(1,"button",5),Lg("click",function(){Sf(t);let e=CC();return _f(e.onIntegrations())}),Bf(),Cs$1(2,"svg",6),Ag(3,"path",7)(4,"path",8),hl$1(),JC(5," Integrations "),hl$1(),Vf(),Cs$1(6,"button",5),Lg("click",function(){Sf(t);let e=CC();return _f(e.onAiProviders())}),Bf(),Cs$1(7,"svg",6),Ag(8,"rect",9)(9,"rect",10)(10,"path",11),hl$1(),JC(11," AI Providers "),hl$1(),aC(12,ie$1,2,0,"button",12),Vf(),Cs$1(13,"button",5),Lg("click",function(){Sf(t);let e=CC();return _f(e.onAiModels())}),Bf(),Cs$1(14,"svg",6),Ag(15,"path",13),hl$1(),JC(16," AI Models "),hl$1(),Vf(),Cs$1(17,"button",5),Lg("click",function(){Sf(t);let e=CC();return _f(e.onAgentConfigs())}),Bf(),Cs$1(18,"svg",6),Ag(19,"path",14)(20,"circle",15)(21,"circle",16),hl$1(),JC(22," Agent Configs "),hl$1(),Vf(),Cs$1(23,"button",5),Lg("click",function(){Sf(t);let e=CC();return _f(e.onPrompts())}),Bf(),Cs$1(24,"svg",6),Ag(25,"path",17)(26,"path",18)(27,"path",19),hl$1(),JC(28," Prompts "),hl$1(),Vf(),Cs$1(29,"button",5),Lg("click",function(){Sf(t);let e=CC();return _f(e.onScheduledPrompts())}),Bf(),Cs$1(30,"svg",6),Ag(31,"circle",20)(32,"path",21),hl$1(),JC(33," Schedulers "),hl$1(),Vf(),Cs$1(34,"button",5),Lg("click",function(){Sf(t);let e=CC();return _f(e.onUserGroups())}),Bf(),Cs$1(35,"svg",6),Ag(36,"circle",22)(37,"path",23)(38,"path",24),hl$1(),JC(39," User Groups "),hl$1(),Vf(),Cs$1(40,"button",5),Lg("click",function(){Sf(t);let e=CC();return _f(e.onAuthSettings())}),Bf(),Cs$1(41,"svg",6),Ag(42,"circle",25)(43,"path",26)(44,"path",27),hl$1(),JC(45," Auth Settings "),hl$1(),Vf(),Cs$1(46,"button",5),Lg("click",function(){Sf(t);let e=CC();return _f(e.onMembers())}),Bf(),Cs$1(47,"svg",6),Ag(48,"circle",25)(49,"path",28),hl$1(),JC(50," Members "),hl$1(),aC(51,oe$1,7,0,"button",12),Vf(),Cs$1(52,"button",5),Lg("click",function(){Sf(t);let e=CC();return _f(e.onToolInvoke())}),Bf(),Cs$1(53,"svg",6),Ag(54,"path",29)(55,"path",30),hl$1(),JC(56," Tool Invoke "),hl$1(),vl();}if(l&2){let t=CC();sI(12),cC(t.usageConfiguration.enabled()?12:-1),sI(39),cC(t.gitAvailable()?51:-1);}}var q=class l{usageConfiguration=g(c$2);namespace=nV.required();gitAvailable=nV(false);selected=tV();editRequested=tV();integrationsRequested=tV();aiProvidersRequested=tV();aiModelsRequested=tV();agentConfigsRequested=tV();promptsRequested=tV();scheduledPromptsRequested=tV();userGroupsRequested=tV();usageRequested=tV();membersRequested=tV();gitRequested=tV();authSettingsRequested=tV();toolInvokeRequested=tV();deleteRequested=tV();pendingDelete=Wi$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=jw({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&&(Cs$1(0,"agentos-action-card",0),Lg("nameClicked",function(){return i.onSelect()})("menuAction",function(a){return i.onMenuAction(a)}),aC(1,ne$1,5,0,"ng-container",1)(2,ae$1,57,2,"ng-container",1),hl$1()),t&2&&(xg("name",i.namespace().name)("menuItems",i.pendingDelete()?dT(3,te$1):i.menuItems),sI(),cC(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=vC();Cs$1(0,"agentos-namespace-item",3),Lg("selected",function(e){Sf(t);let a=CC(2);return _f(a.navigateToHome(e.id??""))})("editRequested",function(e){Sf(t);let a=CC(2);return _f(a.navigateToEdit(e))})("deleteRequested",function(e){Sf(t);let a=CC(2);return _f(a.deleteNamespace(e))})("integrationsRequested",function(e){Sf(t);let a=CC(2);return _f(a.openIntegrations(e))})("aiProvidersRequested",function(e){Sf(t);let a=CC(2);return _f(a.openAiProviders(e))})("aiModelsRequested",function(e){Sf(t);let a=CC(2);return _f(a.openAiModels(e))})("agentConfigsRequested",function(e){Sf(t);let a=CC(2);return _f(a.openAgentConfigs(e))})("promptsRequested",function(e){Sf(t);let a=CC(2);return _f(a.openPrompts(e))})("scheduledPromptsRequested",function(e){Sf(t);let a=CC(2);return _f(a.openScheduledPrompts(e))})("userGroupsRequested",function(e){Sf(t);let a=CC(2);return _f(a.openUserGroups(e))})("membersRequested",function(e){Sf(t);let a=CC(2);return _f(a.openMembers(e))})("usageRequested",function(e){Sf(t);let a=CC(2);return _f(a.openUsage(e))})("gitRequested",function(e){Sf(t);let a=CC(2);return _f(a.openGit(e))})("authSettingsRequested",function(e){Sf(t);let a=CC(2);return _f(a.openAuthSettings(e))})("toolInvokeRequested",function(e){Sf(t);let a=CC(2);return _f(a.openToolInvoke(e))}),hl$1();}if(l&2){let t=CC(2);xg("namespace",n)("gitAvailable",t.gitAvailable());}}function ce$1(l,n){if(l&1&&aC(0,re$1,1,2,"agentos-namespace-item",2),l&2){let t,i=n.$implicit,e=CC();cC((t=e.namespacesById().get(i.id))?0:-1,t);}}var me="GIT",X=class l{router=g(G$5);namespaceController=g(k$1);destroyRef=g(Ce$1);integrationTypeController=g(N$1);refresh$=new Tr$1(void 0);isLoading=Wi$1(true);gitAvailable=F$1(this.integrationTypeController.listTypesIntegrationType().pipe(re$4(n=>n.some(t=>t.type===me)),va$1(()=>br$1(false))),{initialValue:false});namespaces$=this.refresh$.pipe(Da$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=Wi$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=jw({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&&(Cs$1(0,"ds-entity-list",1),gT(1,"async"),Lg("itemSelected",function(a){return i.navigateToHome(a)})("createRequested",function(){return i.navigateToCreate()}),hl$1(),bg(2,ce$1,1,1,"ng-template",null,0,ET)),t&2){let e=AC(3);xg("items",yT(1,4,i.namespaceItems$)??dT(6,se$1))("loading",i.isLoading())("showCreate",true)("itemTemplate",e);}},dependencies:[q,Wn,Lb],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(le$3);users=Wi$1([]);isLoading=Wi$1(false);loadAll(){return this.isLoading.set(true),this.userController.listAllUser().pipe(jd({next:e=>{this.users.set(e),this.isLoading.set(false);},error:()=>this.isLoading.set(false)}))}createUser(e){return this.userController.createUser(e).pipe(jd(()=>{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=P(P({},t),r);return this.userController.updateUser(e,U).pipe(jd(i=>{this.users.update(b=>b.map(l=>l.id===i.id?i:l));}))}deleteUser(e){return this.userController.deleteUser(e).pipe(jd(()=>{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&&(Cs$1(0,"p",5),JC(1,"Loading\u2026"),hl$1());}function H(i,o){if(i&1&&(Cs$1(0,"span",13),JC(1),hl$1()),i&2){let t=CC(2);sI(),em(t.form.controls.email.value);}}function J(i,o){i&1&&(Ag(0,"input",14),ZI()),i&2&&QI();}function K(i,o){if(i&1){let t=vC();Cs$1(0,"form",7),Lg("ngSubmit",function(){Sf(t);let l=CC();return _f(l.save())}),Cs$1(1,"div",8)(2,"h2",9),JC(3,"Identity"),hl$1(),Cs$1(4,"div",10)(5,"label",11),JC(6,"Email "),Cs$1(7,"span",12),JC(8,"*"),hl$1()(),aC(9,H,2,1,"span",13)(10,J,1,0,"input",14),hl$1(),Cs$1(11,"div",10)(12,"label",15),JC(13,"External ID"),hl$1(),Ag(14,"input",16),ZI(),hl$1()(),Cs$1(15,"div",8)(16,"h2",9),JC(17,"Profile"),hl$1(),Cs$1(18,"div",10)(19,"label",17),JC(20,"First name"),hl$1(),Ag(21,"input",18),ZI(),hl$1(),Cs$1(22,"div",10)(23,"label",19),JC(24,"Last name"),hl$1(),Ag(25,"input",20),ZI(),hl$1(),Cs$1(26,"div",21)(27,"label",22),JC(28,"Bio"),hl$1(),Ag(29,"textarea",23),ZI(),hl$1()(),Cs$1(30,"div",8)(31,"h2",9),JC(32,"Permissions"),hl$1(),Cs$1(33,"div",24),Ag(34,"input",25),ZI(),Cs$1(35,"label",26),JC(36," Super admin (full access to AgentOS) "),hl$1()()(),Cs$1(37,"div",27)(38,"button",28),JC(39),hl$1(),Cs$1(40,"button",29),Lg("click",function(){Sf(t);let l=CC();return _f(l.cancel())}),JC(41,"Cancel"),hl$1()()();}if(i&2){let t=CC();xg("formGroup",t.form),sI(9),cC(t.isEditMode?9:10),sI(5),QI(),sI(7),QI(),sI(4),QI(),sI(4),QI(),sI(5),QI(),sI(4),xg("disabled",t.form.invalid||t.isSaving()),sI(),Dl(" ",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=Wi$1(false);isLoading=Wi$1(false);form=new z$3({email:new _t$1("",{nonNullable:true,validators:[_e$2.required,_e$2.email]}),externalId:new _t$1("",{nonNullable:true}),firstname:new _t$1("",{nonNullable:true}),lastname:new _t$1("",{nonNullable:true}),bio:new _t$1("",{nonNullable:true}),isAdmin:new _t$1(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=jw({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&&(Cs$1(0,"div",0)(1,"header",1)(2,"button",2),Lg("click",function(){return a.cancel()}),Cs$1(3,"span",3),JC(4,"\u2190"),hl$1(),JC(5," Users "),hl$1(),Cs$1(6,"h1",4),JC(7),hl$1()(),aC(8,j$1,2,0,"p",5)(9,K,42,4,"form",6),hl$1()),t&2&&(sI(7),em(a.title),sI(),cC(a.isLoading()?8:9));},dependencies:[ni$1,Jn$1,Ye,wt$1,Zn$1,Xn$1,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&&(Cs$1(0,"span",3),JC(1),hl$1()),i&2){let e=CC();sI(),em(e.subtitle);}}var I$2=class i{user=nV.required();editRequested=tV();deleteRequested=tV();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=jw({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&&(Cs$1(0,"div",0)(1,"div",1)(2,"span",2),JC(3),hl$1(),aC(4,ee,2,1,"span",3),hl$1(),Cs$1(5,"div",4)(6,"ds-kebab-menu",5),Lg("itemSelected",function(o){return n.onMenuAction(o)}),hl$1()()()),e&2&&(sI(3),em(n.displayName),sI(),cC(n.subtitle?4:-1),sI(2),xg("items",n.menuItems));},dependencies:[Kn,Zn$2],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=vC();Cs$1(0,"agentos-namespace-select",4),Lg("valueChange",function(s){Sf(e);let o=CC();return _f(o.onNamespaceChange(s))}),hl$1();}if(i&2){let e=CC();xg("namespaces",t)("value",e.selectedNamespaceId())("includeAllOption",true);}}function ne(i,t){if(i&1){let e=vC();Cs$1(0,"ds-icon-button",5),Lg("action",function(){Sf(e);let s=CC();return _f(s.goBack())}),hl$1();}}function ie(i,t){if(i&1){let e=vC();Cs$1(0,"agentos-user-item",7),Lg("editRequested",function(s){Sf(e);let o=CC(2);return _f(o.navigateToEdit(s))})("deleteRequested",function(s){Sf(e);let o=CC(2);return _f(o.deleteUser(s))}),hl$1();}i&2&&xg("user",t);}function se(i,t){if(i&1&&aC(0,ie,1,1,"agentos-user-item",6),i&2){let e,n=t.$implicit,s=CC();cC((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=nV(true);namespaces=nV(void 0);selectedNamespaceId=nV(null);hideTitle=nV(false);namespaceFilterChange=tV();isLoading=this.userAdminState.isLoading;namespaceUserIds=F$1(T(this.selectedNamespaceId).pipe(Da$1(t=>t?this.namespaceMembership.getMembersNamespaceMembership(t).pipe(re$4(e=>new Set(e.map(n=>n.id))),va$1(e=>(console.error("[UserList] Failed to load namespace users",e),br$1(null)))):br$1(null))),{initialValue:null});userItems=TT(()=>{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=jw({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&&(Cs$1(0,"ds-entity-list",1),Lg("createRequested",function(){return n.navigateToCreate()}),aC(1,te,1,3,"agentos-namespace-select",2)(2,ne,1,0,"ds-icon-button",3),hl$1(),bg(3,se,1,1,"ng-template",null,0,ET)),e&2){let s,o=AC(4);xg("hideTitle",n.hideTitle())("items",n.userItems())("loading",n.isLoading())("showCreate",true)("pageSize",100)("itemTemplate",o),sI(),cC((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=vC();Cs$1(0,"agentos-user-list",9),Lg("namespaceFilterChange",function(s){Sf(e);let o=CC();return _f(o.onUsersNamespaceChange(s))}),hl$1();}if(i&2){let e=CC();xg("showBackButton",false)("hideTitle",true)("namespaces",e.namespaces())("selectedNamespaceId",e.usersNamespaceFilter());}}function ae(i,t){i&1&&(Cs$1(0,"p",10),JC(1,"No namespaces yet. Create one before managing groups."),hl$1());}function oe(i,t){if(i&1){let e=vC();Cs$1(0,"agentos-user-group-list",12),Lg("namespaceChange",function(s){Sf(e);let o=CC(2);return _f(o.onGroupsNamespaceChange(s))}),hl$1();}if(i&2){let e=CC(2);xg("namespaceId",t)("hideTitle",true)("namespaces",e.namespaces())("returnTo",e.returnTo());}}function le(i,t){if(i&1&&aC(0,ae,2,0,"p",10)(1,oe,1,4,"agentos-user-group-list",11),i&2){let e,n=CC();cC(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(k$1);activeTab=Wi$1(this.route.snapshot.queryParamMap.get("tab")==="groups"?"groups":"users");namespaces=Wi$1([]);usersNamespaceFilter=Wi$1(null);groupsNamespaceId=Wi$1(null);returnTo=TT(()=>{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=jw({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&&(Cs$1(0,"div",0)(1,"header",1)(2,"button",2),Lg("click",function(){return n.goBack()}),JC(3,"\u2190 Admin"),hl$1(),Cs$1(4,"h1",3),JC(5,"Users & Groups"),hl$1()(),Cs$1(6,"div",4)(7,"button",5),Lg("click",function(){return n.setTab("users")}),JC(8," Users "),hl$1(),Cs$1(9,"button",6),Lg("click",function(){return n.setTab("groups")}),JC(10," Groups "),hl$1()(),Cs$1(11,"div",7),aC(12,re,1,4,"agentos-user-list",8)(13,le,2,1),hl$1()()),e&2&&(sI(7),qg("admin-users-groups__tab--active",n.activeTab()==="users"),Ng("aria-selected",n.activeTab()==="users"),sI(2),qg("admin-users-groups__tab--active",n.activeTab()==="groups"),Ng("aria-selected",n.activeTab()==="groups"),sI(2),Ng("aria-labelledby",n.activeTab()==="users"?"admin-tab-users":"admin-tab-groups"),sI(),cC(n.activeTab()==="users"?12:13));},dependencies:[k,te$2],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=Wi$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=jw({type:t,selectors:[["agentos-shell"]],decls:1,vars:0,template:function(e,c){e&1&&Ag(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 d$1=class a{sanitizer=g(RS);renderer=this.buildRenderer();transform(r){if(!r)return "";let e=x$2.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,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=Wi$1(this.readStoredBehavior());enterKeyBehavior=this._enterKeyBehavior.asReadonly();composerHint=TT(()=>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(ue$3);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(P({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(vy);config=g(y$1);zone=g(G$6);popupCheckInterval=null;popupClosedAt=null;static POPUP_CLOSE_GRACE_MS=2e3;pendingQuestion=Wi$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(k$1);_initialized$=new Tr$1(false);initialized$=this._initialized$.asObservable();activeNamespaceId=Wi$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(Pd(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=vC();gl$1(0,"button",2),jg("click",function(){Sf(e);let a=CC(2);return _f(a.onNavigate("/agentos/admin"))}),Bf(),gl$1(1,"svg",3),Rg(2,"path",17),ml$1(),JC(3," Administration "),ml$1();}}function U$1(n,t){n&1&&(gl$1(0,"span",14),JC(1,"On"),ml$1());}function z$1(n,t){n&1&&(gl$1(0,"span",14),JC(1,"On"),ml$1());}function A(n,t){n&1&&(Bf(),gl$1(0,"svg",3),Rg(1,"circle",18)(2,"path",19),ml$1(),JC(3," Light mode "));}function G$1(n,t){n&1&&(Bf(),gl$1(0,"svg",3),Rg(1,"path",20),ml$1(),JC(2," Dark mode "));}function I(n,t){if(n&1){let e=vC();gl$1(0,"div",0),jg("click",function(a){Sf(e);let T=CC();return _f(T.onClose(a))})("keyup.escape",function(a){Sf(e);let T=CC();return _f(T.onClose(a))}),ml$1(),gl$1(1,"div",1)(2,"button",2),jg("click",function(){Sf(e);let a=CC();return _f(a.onNavigate("/agentos/user"))}),Bf(),gl$1(3,"svg",3),Rg(4,"circle",4)(5,"path",5),ml$1(),JC(6," User settings "),ml$1(),aC(7,L$1,4,0,"button",6),Vf(),Rg(8,"div",7),gl$1(9,"button",2),jg("click",function(){Sf(e);let a=CC();return _f(a.onNavigate("/agentos/namespaces"))}),Bf(),gl$1(10,"svg",3),Rg(11,"rect",8)(12,"rect",9)(13,"rect",10)(14,"rect",11),ml$1(),JC(15," Namespaces "),ml$1(),Vf(),gl$1(16,"button",2),jg("click",function(){Sf(e);let a=CC();return _f(a.onLogsToggle())}),Bf(),gl$1(17,"svg",3),Rg(18,"polyline",12)(19,"line",13),ml$1(),JC(20," Technical logs "),aC(21,U$1,2,0,"span",14),ml$1(),Vf(),gl$1(22,"button",2),jg("click",function(){Sf(e);let a=CC();return _f(a.onToolCallsToggle())}),Bf(),gl$1(23,"svg",3),Rg(24,"path",15)(25,"path",16),ml$1(),JC(26," Tool calls "),aC(27,z$1,2,0,"span",14),ml$1(),Vf(),Rg(28,"div",7),gl$1(29,"button",2),jg("click",function(){Sf(e);let a=CC();return _f(a.onThemeToggle())}),aC(30,A,4,0)(31,G$1,3,0),ml$1()();}if(n&2){let e=CC();sI(),Wg("top",e.variant()==="compact"?e.fixedTop():null,"px")("left",e.variant()==="compact"?e.fixedLeft():null,"px"),qg("shell-user-menu__overlay--topbar",e.variant()==="topbar")("shell-user-menu__overlay--mobile",e.variant()==="mobile")("shell-user-menu__overlay--compact",e.variant()==="compact"),sI(6),cC(e.isAdmin()?7:-1),sI(9),qg("shell-user-menu__item--active",e.showTechnical()),sI(5),cC(e.showTechnical()?21:-1),sI(),qg("shell-user-menu__item--active",e.showToolCalls()),sI(5),cC(e.showToolCalls()?27:-1),sI(3),cC(e.isDark()?30:31);}}var D=class n{open=nV.required();isAdmin=nV.required();isDark=nV.required();themeVariant=nV.required();showTechnical=nV.required();showToolCalls=nV.required();variant=nV("desktop");fixedTop=nV(0);fixedLeft=nV(0);navigateTo=tV();themeToggled=tV();themeVariantChanged=tV();logsToggled=tV();toolCallsToggled=tV();closed=tV();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=jw({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&&aC(0,I,32,18),e&2&&cC(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 Yn=1e4,yo={view:null,errorStatus:404};function Ut(o){return o.errorStatus===404}var pe=class o{api=g(z$4);byRoot=Wi$1({});namespace=new Tr$1(null);watchedCases=new Map;actions=new ue$4;noWorkspaces=false;watchNamespace(t){let e=xr$1(0,Yn).pipe(kd$1(()=>this.api.listCaseWorkspace(t).pipe(re$4(n=>n),va$1(n=>(n.status===404&&(this.noWorkspaces=true),br$1(n.status===404?void 0:null))))),Ld(n=>n!==void 0,true),re$4(n=>n===void 0?[]:n),jd(n=>this.byRoot.set(Object.fromEntries((n??[]).filter(i=>i.rootCaseId).map(i=>[i.rootCaseId,i])))),Pd({bufferSize:1,refCount:true}));return Jy(()=>(this.byRoot.set({}),this.noWorkspaces?br$1([]):(this.namespace.next(e),e.pipe(kt$1(n=>n!==null),hi$1(()=>{this.namespace.value===e&&(this.namespace.next(null),this.byRoot.set({}));})))))}watch(t){if(this.noWorkspaces)return br$1(yo);let e=this.watchedCases.get(t);if(e)return e;let n=()=>this.get(t).pipe(re$4(_=>({view:_})),va$1(_=>br$1({view:null,errorStatus:_.status??0}))),i=this.namespace.pipe(Da$1(_=>_?_.pipe(kd$1(C=>{let y=C?.find(D=>D.rootCaseId===t);return y?br$1({view:y}):n()})):xr$1(0,Yn).pipe(kd$1(n),Ld(C=>!Ut(C),true)))),a=ev(i,this.actions.pipe(kt$1(_=>_.caseId===t),re$4(({view:_})=>({view:_})))).pipe(hi$1(()=>this.watchedCases.delete(t)),Pd({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 this.api.retryCaseWorkspace(t,n).pipe(jd(a=>{a.rootCaseId===t&&this.byRoot.update(_=>z$2(P({},_),{[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"})};var ce=class o{caseController=g(K$2);cases=Wi$1([]);agentMessageEventSubject=new ue$4;agentMessageEvent$=this.agentMessageEventSubject.asObservable();loadSubscription=null;currentNamespaceId=null;pendingUpdates=new Map;loadCases(t){t!==this.currentNamespaceId&&(this.currentNamespaceId=t,this.cases.set([])),this.loadSubscription?.unsubscribe(),this.loadSubscription=this.caseController.listMineByParentCase(t).subscribe({next:e=>{this.cases.set(e),this.loadSubscription=null;},error:e=>{console.error(`[CaseState] Failed to load cases for namespace ${t}:`,e),this.loadSubscription=null;}});}deleteCase(t){return this.caseController.deleteCase(t).pipe(jd(()=>this.reloadCurrent()))}setStarred(t,e){return Jy(()=>(this.patchFavorite(t,e),(e?this.caseController.starCase(t):this.caseController.unstarCase(t)).pipe(va$1(i=>(this.patchFavorite(t,!e),qy(()=>i))))))}renameCase(t,e){return this.updateCaseFields(t,{title:e})}updateCaseFields(t,e){return Jy(()=>{let n=this.pendingUpdates.get(t),i=this.cases().find(y=>y.id===t);if(!i&&!n)return qy(()=>new Error(`[CaseState] Case ${t} is not in the current list`));let a=n?.state??{confirmed:i},C=(n?n.request.pipe(va$1(()=>on),Ea$1(),sv(void 0)):br$1(void 0)).pipe(pi$1(()=>this.saveCaseFields(t,e,a)),hi$1(()=>{this.pendingUpdates.get(t)?.request===C&&this.pendingUpdates.delete(t);}),Pd({bufferSize:1,refCount:false}));return this.pendingUpdates.set(t,{request:C,state:a}),C})}refreshCaseThreshold(t){let e=this.pendingUpdates.get(t);(e?e.request.pipe(va$1(()=>on),Ea$1(),sv(void 0)):br$1(void 0)).pipe(pi$1(()=>this.caseController.getByIdCase(t))).subscribe({next:i=>{this.pendingUpdates.has(t)||this.patchFields(t,{runCostThreshold:i.runCostThreshold});},error:()=>{}});}saveCaseFields(t,e,n){return Jy(()=>{let i=n.confirmed,a={title:i.title,runCostThreshold:i.runCostThreshold};this.patchFields(t,e);let _=z$2(P(P({},i),e),{runCostThreshold:e.runCostThreshold});return this.caseController.updateCase(t,_).pipe(jd(C=>{n.confirmed=z$2(P({},i),{title:C.title,runCostThreshold:C.runCostThreshold}),this.patchFields(t,{title:C.title,runCostThreshold:C.runCostThreshold});}),va$1(C=>(this.patchFields(t,a),qy(()=>C))))})}patchFavorite(t,e){this.cases.update(n=>n.map(i=>i.id===t?z$2(P({},i),{favorite:e}):i));}patchFields(t,e){this.cases.update(n=>n.map(i=>i.id===t?P(P({},i),e):i));}patchTitle(t,e){this.cases.update(n=>n.map(i=>i.id===t?z$2(P({},i),{title:e}):i));}reloadCurrent(){this.currentNamespaceId&&this.loadCases(this.currentNamespaceId);}addCase(t){this.cases.update(e=>[t,...e]);}updateCaseTitle(t,e){this.patchTitle(t,e);}updateCaseStatus(t,e){this.cases.update(n=>n.map(i=>i.id===t?z$2(P({},i),{status:e}):i));}notifyAgentMessageEvent(t){this.agentMessageEventSubject.next(t);}static \u0275fac=function(e){return new(e||o)};static \u0275prov=x$1({token:o,factory:o.\u0275fac,providedIn:"root"})};var $e={status:"loading",entries:[],path:"",totalEntries:0,hasMore:false,capability:"NONE"};function Jn(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(pe);namespaceId=null;caseId=null;caseRefresh$=new Tr$1(void 0);namespaceRefresh$=new Tr$1(void 0);casePath="";namespacePath="";casePage=0;namespacePage=0;caseLoadingMore=Wi$1(false);namespaceLoadingMore=Wi$1(false);caseView=this.buildScopeView(this.caseRefresh$,()=>this.caseId,()=>this.casePath,t=>this.loadScope(()=>this.loadDirectory("CASE",t),t).pipe(hi$1(()=>this.caseLoadingMore.set(false))));namespaceView=this.buildScopeView(this.namespaceRefresh$,()=>this.namespaceId,()=>this.namespacePath,t=>this.loadScope(()=>this.loadDirectory("NAMESPACE",t)).pipe(hi$1(()=>this.namespaceLoadingMore.set(false))));caseStatus=TT(()=>this.caseView().status);namespaceStatus=TT(()=>this.namespaceView().status);caseFiles=TT(()=>this.caseView().entries.filter(t=>!t.directory));namespaceFiles=TT(()=>this.namespaceView().entries.filter(t=>!t.directory));caseFolders=TT(()=>this.caseView().entries.filter(t=>t.directory));namespaceFolders=TT(()=>this.namespaceView().entries.filter(t=>t.directory));caseBrowsePath=TT(()=>this.caseView().path);namespaceBrowsePath=TT(()=>this.namespaceView().path);caseBreadcrumb=TT(()=>Jn(this.caseView().path));namespaceBreadcrumb=TT(()=>Jn(this.namespaceView().path));caseHasMore=TT(()=>this.caseView().hasMore);namespaceHasMore=TT(()=>this.namespaceView().hasMore);caseFileCount=TT(()=>this.caseView().totalEntries);namespaceFileCount=TT(()=>this.namespaceView().totalEntries);fileCount=TT(()=>this.caseFileCount()+this.namespaceFileCount());canWriteCase=TT(()=>this.caseView().capability==="READ_WRITE");canWriteNamespace=TT(()=>this.namespaceView().capability==="READ_WRITE");caseSectionVisible=TT(()=>this.caseView().status!=="forbidden");namespaceSectionVisible=TT(()=>this.namespaceView().status!=="forbidden");caseUploading=Wi$1(false);namespaceUploading=Wi$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 C=(y,D)=>n?this.controller.browseCaseFilesExchange(e,y,D):this.controller.browseNamespaceFilesExchange(e,y,D);return C(i,0).pipe(av((y,D)=>y.hasMore&&D<a?C(i,D+1):on),lv((y,D)=>z$2(P({},D),{entries:[...y?.entries??[],...D.entries]}),null),kt$1(y=>y!==null&&(!y.hasMore||y.page>=a)),an(1),va$1(y=>y.status!==404||!i?qy(()=>y):C("",0).pipe(jd(()=>{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"})),va$1(n=>n?.status===409&&e?this.waitForWorkspace(e,t):br$1(this.scopeError(n))))}waitForWorkspace(t,e){return this.workspaces.watch(t).pipe(Ld(({view:n})=>!!n?.equipped&&(n.status==="REQUESTED"||n.status==="PREPARING"),true),Da$1(({view:n,errorStatus:i})=>n?n.equipped&&(n.status==="REQUESTED"||n.status==="PREPARING")?br$1(z$2(P({},$e),{status:"preparing"})):!n.equipped||n.status==="READY"||n.status==="REMOVED"?this.loadScope(e):br$1(this.scopeError({})):br$1(this.scopeError({status:i}))),va$1(n=>br$1(this.scopeError(n))))}scopeError(t){return z$2(P({},$e),{status:t?.status===403||t?.status===404?"forbidden":"error"})}buildScopeView(t,e,n,i){let a=null,_="",C=$e,y=t.pipe(Da$1(()=>{let D=e(),O=n(),I=D===a&&O===_&&C.status==="ready";if(a=D,_=O,!D)return br$1($e);let L=i(D);return I?L:L.pipe(Sd($e))}),jd(D=>{C=D,D.status==="ready"&&(_=D.path);}),Pd({bufferSize:1,refCount:true}));return F$1(y,{initialValue:$e})}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):qy(()=>new Error("No active scope for content request"))}uploadFile(t,e){return dt$1(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 _=n?this.controller.uploadCaseFileExchange(i,e):this.controller.uploadNamespaceFileExchange(i,e);return new Promise(C=>{_.subscribe({next:()=>{a.set(false),this.refreshManifest(),C({success:true});},error:y=>{a.set(false),C({success:false,error:this.uploadErrorMessage(y)});}});})})}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 dt$1(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(_=>{a.subscribe({next:()=>{this.refreshManifest(),_({success:true});},error:C=>_({success:false,error:C?.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,C=i?this.controller.downloadCaseFileExchange(e,n):this.controller.downloadNamespaceFileExchange(e,n);return new Promise(y=>{C.subscribe({next:D=>{this.saveBlob(D,a),y({success:true});},error:D=>{console.error("[exchange] download failed",D),y({success:false,error:D?.message??"Download failed"});}});})}downloadAll(t){return dt$1(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 Qy(e?this.controller.getCaseFilesManifestExchange(n):this.controller.getNamespaceFilesManifestExchange(n));}catch(C){return {success:false,failedCount:1,error:"Could not list all files. No complete download was performed."}}let a=0,_=0;for(let C of i.files)_++>0&&(yield new Promise(D=>setTimeout(D,300))),(yield this.downloadFrom(t,n,C.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 wo(o,t){o&1&&(gl$1(0,"p"),JC(1,"Shared with the root case. Workspace preparation is managed there."),ml$1());}function So(o,t){if(o&1&&(gl$1(0,"p"),JC(1),ml$1()),o&2){let e=CC(2);sI(),em(e.failureReason||e.cleanupReason);}}function Mo(o,t){if(o&1&&(gl$1(0,"p",1),JC(1),ml$1()),o&2){let e=CC(3);sI(),em(e.error());}}function Eo(o,t){if(o&1){let e=vC();gl$1(0,"button",3),jg("click",function(){Sf(e);let i=CC(4);return _f(i.act("retry"))}),JC(1,"Retry preparation"),ml$1(),gl$1(2,"label")(3,"input",4),jg("change",function(i){Sf(e);let a=CC(4);return _f(a.onAcknowledgeSetup(i))}),ml$1(),JC(4," I have checked the effects of the interrupted setup and allow it to run again."),ml$1(),gl$1(5,"button",3),jg("click",function(){Sf(e);let i=CC(4);return _f(i.act("retry",{acknowledgeSetupReplay:true}))}),JC(6," Run setup again "),ml$1();}if(o&2){let e=CC(4);Fg("disabled",e.busy()),sI(3),Fg("checked",e.acknowledgeSetup()),sI(2),Fg("disabled",e.busy()||!e.acknowledgeSetup());}}function To(o,t){if(o&1&&aC(0,Eo,7,3),o&2){let e=CC(2),n=CC();cC(e.status===n.Status.FAILED?0:-1);}}function ko(o,t){if(o&1&&(gl$1(0,"details",0)(1,"summary"),JC(2),ml$1(),aC(3,wo,2,0,"p"),aC(4,So,2,1,"p"),aC(5,Mo,2,1,"p",1),gl$1(6,"div",2),aC(7,To,1,1),ml$1()()),o&2){let e=CC(),n=CC();sI(2),Dl("Workspace \xB7 ",e.status),sI(),cC(e.rootCaseId!==n.caseId()?3:-1),sI(),cC(e.failureReason||e.cleanupReason?4:-1),sI(),cC(n.error()?5:-1),sI(2),cC(e.rootCaseId===n.caseId()&&n.canWrite()?7:-1);}}function Po(o,t){if(o&1&&aC(0,ko,8,5,"details",0),o&2){let e=CC();cC(e.actionable()?0:-1);}}var dt=class o{caseId=nV.required();canWrite=nV(false);Status=Ie$1;service=g(pe);cases=g(ce);files=g(de);view=Wi$1(null);actionable=TT(()=>{let t=this.view();return t?.equipped&&(t.status==="REQUESTED"||t.status==="PREPARING"||t.status==="FAILED"||t.status==="DELETING"||!!t.failureReason||!!t.cleanupReason)});busy=Wi$1(false);error=Wi$1("");acknowledgeSetup=Wi$1(false);action;constructor(){Wf(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=jw({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&&aC(0,Po,1,1),e&2){let i;cC((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 Oo=(o,t)=>t.caseId;function Io(o,t){o&1&&(gl$1(0,"p",0),JC(1,"Loading usage settings\u2026"),ml$1());}function Do(o,t){if(o&1){let e=vC();gl$1(0,"p",1),JC(1,"Could not load usage settings. Please try again."),ml$1(),gl$1(2,"button",2),jg("click",function(){Sf(e);let i=CC();return _f(i.configuration.retry())}),JC(3,"Retry usage settings"),ml$1();}}function Ro(o,t){o&1&&(gl$1(0,"strong"),JC(1,"Paused \xB7 cost threshold reached"),ml$1());}function Vo(o,t){o&1&&(gl$1(0,"strong"),JC(1,"Usage"),ml$1());}function No(o,t){if(o&1&&(gl$1(0,"span"),JC(1),gT(2,"number"),ml$1()),o&2){let e=CC();sI(),Dl(" / ",vT(2,1,e.runCostThreshold,"1.2-6")," threshold");}}function Ao(o,t){if(o&1&&(gl$1(0,"p"),JC(1),gT(2,"number"),gT(3,"number"),ml$1()),o&2){let e=t;sI(),nm(" Conversation: ",e.unknownCostCount>0?"at least ":"","",vT(2,3,e.cost,"1.2-6")," recorded \xB7 ",yT(3,6,e.totalTokens)," recorded tokens ");}}function Fo(o,t){if(o&1&&(gl$1(0,"p"),JC(1),gT(2,"number"),ml$1()),o&2){let e=CC();sI(),Dl("",yT(2,1,e.liveTokens)," tokens in active agent runs.");}}function qo(o,t){o&1&&(gl$1(0,"p",7),JC(1," Some usage has no reliable price. The displayed cost is a lower bound; the threshold cannot guarantee a spending cap. "),ml$1());}function Lo(o,t){o&1&&(gl$1(0,"p"),JC(1,"This run is waiting for confirmation in a linked conversation you cannot access."),ml$1());}function zo(o,t){if(o&1){let e=vC();gl$1(0,"button",9),jg("click",function(){Sf(e);let i=CC(2).$implicit,a=CC(4);return _f(a.continue(i))}),JC(1),gT(2,"number"),ml$1();}if(o&2){let e=CC(2).$implicit,n=CC(4);Fg("disabled",n.saving()||!!n.error()),sI(),Dl(" Continue \xB7 double threshold to ",vT(2,2,e.threshold*2,"1.2-6")," ");}}function Uo(o,t){if(o&1){let e=vC();gl$1(0,"p"),JC(1),ml$1(),gl$1(2,"button",9),jg("click",function(){Sf(e);let i=CC(2).$implicit,a=CC(4);return _f(a.continue(i))}),JC(3," Continue with updated threshold "),ml$1();}if(o&2){let e=CC(2).$implicit,n=CC(4);sI(),Dl(" Set a positive threshold in ",e.ancestor?"the parent conversation":e.caseId===n.caseId()?"this conversation":"the delegated conversation"," settings before continuing. "),sI(),Fg("disabled",n.saving());}}function $o(o,t){if(o&1&&aC(0,zo,3,5,"button",8)(1,Uo,4,2),o&2){let e=CC().$implicit;cC(e.threshold>0?0:1);}}function Wo(o,t){if(o&1&&(gl$1(0,"p"),JC(1),ml$1()),o&2){let e=CC().$implicit,n=CC(4);sI(),Dl(" A member with edit permission on ",e.ancestor?"the parent conversation":e.caseId===n.caseId()?"this conversation":"the delegated conversation"," must approve continuation. ");}}function Bo(o,t){if(o&1&&(gl$1(0,"p"),JC(1),gT(2,"number"),ml$1(),aC(3,$o,2,1)(4,Wo,2,1,"p")),o&2){let e=t.$implicit,n=CC(4);sI(),tm(" ",e.ancestor?"Parent conversation":e.caseId===n.caseId()?"Conversation":"Delegated run",": ",vT(2,3,e.cost,"1.2-6")," consumed. "),sI(2),cC(e.canContinue?3:4);}}function Ho(o,t){if(o&1){let e=vC();gl$1(0,"button",9),jg("click",function(){Sf(e);let i=CC(4);return _f(i.stop())}),JC(1,"Stop"),ml$1();}if(o&2){let e=CC(4);Fg("disabled",e.saving());}}function jo(o,t){if(o&1&&(gl$1(0,"p"),JC(1,"The next request is waiting for cost confirmation. Continuing keeps the current execution context."),ml$1(),aC(2,Lo,2,0,"p"),dC(3,Bo,5,6,null,null,Oo),aC(5,Ho,2,1,"button",8)),o&2){let e=CC(),n=CC(2);sI(2),cC(e.paused&&e.pausedCases.length===0?2:-1),sI(),fC(e.pausedCases),sI(2),cC(n.canWrite()?5:-1);}}function Go(o,t){if(o&1&&(gl$1(0,"details",5)(1,"summary"),aC(2,Ro,2,0,"strong")(3,Vo,2,0,"strong"),gl$1(4,"span"),JC(5),gT(6,"number"),ml$1(),aC(7,No,3,4,"span"),ml$1(),gl$1(8,"div",6)(9,"p"),JC(10,"Includes delegated work. Costs are estimates in the platform currency."),ml$1(),aC(11,Ao,4,8,"p"),aC(12,Fo,3,3,"p"),aC(13,qo,2,0,"p",7),aC(14,jo,6,2),ml$1()()),o&2){let e,n=t,i=CC(2);qg("usage--paused",n.paused||n.pausedCases.length>0),Fg("open",n.paused||n.pausedCases.length>0),sI(2),cC(n.paused||n.pausedCases.length>0?2:3),sI(3),tm("",n.unknownCostCount>0?"At least ":"","",vT(6,11,n.cost,"1.2-6")," this run"),sI(2),cC(n.runCostThreshold!==null&&n.runCostThreshold!==void 0?7:-1),sI(4),cC((e=i.total())?11:-1,e),sI(),cC(n.liveTokens>0?12:-1),sI(),cC(n.unknownCostCount>0?13:-1),sI(),cC(n.paused||n.pausedCases.length>0?14:-1);}}function Qo(o,t){o&1&&(gl$1(0,"p",4),JC(1),ml$1()),o&2&&(sI(),em(t));}function Ko(o,t){if(o&1&&(aC(0,Go,15,14,"details",3),aC(1,Qo,2,1,"p",4)),o&2){let e,n,i=CC();cC((e=i.run())?0:-1,e),sI(),cC((n=i.error())?1:-1,n);}}var mt=class o{caseId=nV.required();canWrite=nV(false);running=nV(false);configuration=g(c$2);costs=g(ae$4);usage=g(G$7);caseState=g(ce);run=Wi$1(null);total=Wi$1(null);error=Wi$1(null);saving=Wi$1(false);constructor(){Wf(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());}),Wf(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(_=>_.caseId===e),re$4(_=>_.id),rv(),re$4(()=>true)),a=ev(br$1(true),i,n?xr$1(2e3,2e3).pipe(re$4(()=>false)):on).pipe(kd$1(_=>this.loadUsage(e,_))).subscribe(_=>this.applyUsage(e,_));t(()=>a.unsubscribe());});}actions=new J$2;loadUsage(t,e){return Wy({run:this.costs.getRunCost(t),total:e?this.usage.aggregateByCaseTreeUsageRecord(t):br$1(void 0)}).pipe(va$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(Da$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?z$2(P({},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=jw({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&&aC(0,Io,2,0,"p",0)(1,Do,4,0)(2,Ko,2,2),e&2&&cC(n.configuration.state()==="loading"?0:n.configuration.state()==="error"?1:n.configuration.enabled()?2:-1);},dependencies:[$b],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 Yo(o,t){o&1&&(Bf(),Rg(0,"circle",2)(1,"path",3));}function Jo(o,t){o&1&&(Bf(),Rg(0,"circle",4)(1,"circle",5));}function Xo(o,t){o&1&&(Bf(),Rg(0,"circle",6)(1,"rect",7));}function Zo(o,t){o&1&&(Bf(),Rg(0,"circle",8)(1,"line",9)(2,"circle",10));}function ei(o,t){o&1&&(Bf(),Rg(0,"circle",1));}var Ee=class o{status=nV.required();size=nV(16);Status=Re$1;static \u0275fac=function(e){return new(e||o)};static \u0275cmp=jw({type:o,selectors:[["agentos-case-status-glyph"]],hostVars:8,hostBindings:function(e,n){e&2&&qg("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&&(Bf(),gl$1(0,"svg",0),aC(1,Yo,2,0)(2,Jo,2,0)(3,Xo,2,0)(4,Zo,3,0)(5,ei,1,0,":svg:circle",1),ml$1()),e&2){let i;Ng("width",n.size())("height",n.size()),sI(),cC((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 ti(o,t){if(o&1){let e=vC();gl$1(0,"div",5)(1,"input",8),jg("input",function(i){Sf(e);let a=CC();return _f(a.onFreeTextInput(i))})("keydown",function(i){Sf(e);let a=CC();return _f(a.onFreeTextKeydown(i))}),ml$1(),gl$1(2,"button",9),jg("click",function(){Sf(e);let i=CC();return _f(i.submitFreeText())}),JC(3," Submit "),ml$1()();}if(o&2){let e=CC();sI(),Fg("value",e.freeTextValue()),sI(),Fg("disabled",!e.freeTextValue().trim());}}function ni(o,t){if(o&1){let e=vC();gl$1(0,"button",11),jg("click",function(){let i=Sf(e).$implicit,a=CC(2);return _f(a.selectOption(i))}),JC(1),ml$1();}if(o&2){let e=t.$implicit;sI(),Dl(" ",e," ");}}function oi(o,t){if(o&1&&(gl$1(0,"div",6),dC(1,ni,2,1,"button",10,lC),ml$1()),o&2){let e=CC();sI(),fC(e.questionEvent().options);}}function ii(o,t){if(o&1){let e=vC();gl$1(0,"button",11),jg("click",function(){let i=Sf(e).$implicit,a=CC(2);return _f(a.selectOption(i))}),JC(1),ml$1();}if(o&2){let e=t.$implicit;sI(),Dl(" ",e," ");}}function ai(o,t){if(o&1){let e=vC();gl$1(0,"div",6),dC(1,ii,2,1,"button",10,lC),ml$1(),gl$1(3,"div",12)(4,"input",13),jg("input",function(i){Sf(e);let a=CC();return _f(a.onFreeTextInput(i))})("keydown",function(i){Sf(e);let a=CC();return _f(a.onFreeTextKeydown(i))}),ml$1(),gl$1(5,"button",9),jg("click",function(){Sf(e);let i=CC();return _f(i.submitFreeText())}),JC(6," Submit "),ml$1()();}if(o&2){let e=CC();sI(),fC(e.questionEvent().options),sI(3),Fg("value",e.freeTextValue()),sI(),Fg("disabled",!e.freeTextValue().trim());}}function ri(o,t){if(o&1){let e=vC();gl$1(0,"div",7)(1,"p",14),JC(2," This action requires authorization. Click below to open the authorization page. "),ml$1(),gl$1(3,"div",15)(4,"button",16),jg("click",function(){Sf(e);let i=CC();return _f(i.onAuthorize())}),JC(5," Authorize "),ml$1(),gl$1(6,"button",17),jg("click",function(){Sf(e);let i=CC();return _f(i.onOAuthCancel())}),JC(7," Cancel "),ml$1()()();}}var pt=class o{oauthService=g(h$1);questionEvent=nV.required();answered=tV();cancelled=tV();QuestionType=Ve;freeTextValue=Wi$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=jw({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&&(gl$1(0,"div",0)(1,"div",1)(2,"span",2),JC(3),ml$1(),gl$1(4,"span",3),JC(5,"asks"),ml$1()(),gl$1(6,"p",4),JC(7),ml$1(),aC(8,ti,4,2,"div",5)(9,oi,3,0,"div",6)(10,ai,7,2)(11,ri,8,0,"div",7),ml$1()),e&2){let i;sI(3),em(n.questionEvent().agentName),sI(4),em(n.questionEvent().question),sI(),cC((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 We=class o{sanitizer=g(RS);renderer=this.buildRenderer();render(t){if(!t)return "";let e=x$2.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,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 si(o,t){if(o&1&&(gl$1(0,"p")(1,"strong"),JC(2,"Waiting for your answer:"),ml$1(),JC(3),ml$1()),o&2){let e=CC();sI(3),Dl(" ",e.result().pendingQuestion);}}function li(o,t){if(o&1&&(gl$1(0,"li"),JC(1),ml$1()),o&2){let e=t.$implicit;sI(),em(e);}}function ci(o,t){if(o&1&&(gl$1(0,"ul"),dC(1,li,2,1,"li",null,lC),ml$1()),o&2){let e=CC();sI(),fC(e.result().options);}}var _t=class o{result=nV.required();markdown=g(We);html=TT(()=>this.markdown.render(this.result().result??this.result().error??"No result returned."));static \u0275fac=function(e){return new(e||o)};static \u0275cmp=jw({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&&(gl$1(0,"section",0),Rg(1,"div",1),aC(2,si,4,1,"p"),aC(3,ci,3,0,"ul"),ml$1()),e&2&&(sI(),Fg("innerHTML",n.html(),gE),sI(),cC(n.result().pendingQuestion?2:-1),sI(),cC(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&&(Cs$1(0,"span",4),JC(1,"Resumed"),hl$1());}function mi(o,t){if(o&1&&Ag(0,"agentos-delegation-result",6),o&2){let e=CC(2);xg("result",e.delegation().result);}}function pi(o,t){if(o&1&&(Cs$1(0,"li"),JC(1),hl$1()),o&2){let e=t.$implicit;sI(),em(e);}}function _i(o,t){if(o&1&&dC(0,pi,2,1,"li",null,lC),o&2){let e=CC(3);fC(e.activity());}}function ui(o,t){o&1&&(Cs$1(0,"li"),JC(1,"Working\u2026"),hl$1());}function gi(o,t){if(o&1&&(Cs$1(0,"ol",7),aC(1,_i,2,0)(2,ui,2,0,"li"),hl$1(),Cs$1(3,"section",8)(4,"strong"),JC(5,"Task"),hl$1(),Cs$1(6,"p"),JC(7),hl$1()()),o&2){let e=CC(2);sI(),cC(e.activity().length?1:2),sI(6),em(e.delegation().task);}}function hi(o,t){if(o&1&&aC(0,mi,1,1,"agentos-delegation-result",6)(1,gi,8,2),o&2){let e=CC();cC(e.delegation().result?0:1);}}var ut=class o{delegation=nV.required();namespaceId=nV.required();router=g(G$5);config=g(y$1);zone=g(G$6);destroyRef=g(Ce$1);open=Wi$1(false);activity=Wi$1([]);source=null;statusLabel=TT(()=>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=jw({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&&(Cs$1(0,"article",0)(1,"header",1)(2,"button",2),Lg("click",function(){return n.toggle()}),Cs$1(3,"span"),JC(4),hl$1(),Cs$1(5,"strong"),JC(6),hl$1(),Cs$1(7,"span",3),JC(8),hl$1(),aC(9,di,2,0,"span",4),hl$1(),Cs$1(10,"button",5),Lg("click",function(){return n.openSubCase()}),JC(11," Open sub-case "),hl$1()(),aC(12,hi,2,1),hl$1()),e&2&&(qg("delegation-card--working",n.delegation().status==="WORKING")("delegation-card--error",n.delegation().status==="ERROR"||n.delegation().status==="TIMEOUT"||n.delegation().status==="KILLED"),sI(2),Ng("aria-expanded",n.open())("aria-label",(n.open()?"Collapse":"Expand")+" delegation for "+n.delegation().agentName),sI(2),em(n.open()?"\u25BE":"\u25B8"),sI(2),em(n.delegation().agentName),sI(2),em(n.statusLabel()),sI(),cC(n.delegation().resumed?9:-1),sI(),Ng("aria-label","Open sub-case for "+n.delegation().agentName),sI(2),cC(n.open()?12:-1));},dependencies:[_t],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 Xn(o){return o!==null&&typeof o=="object"&&!Array.isArray(o)?o:null}function $t(o){if(typeof o=="string")return o;if(Array.isArray(o)){for(let e of o){let n=$t(e);if(n!==null)return n}return null}let t=Xn(o);if(!t)return null;for(let e of ["content","text","output"]){let n=$t(t[e]);if(n!==null)return n}return null}function Zn(o){let t=$t(o?.output);if(t===null)return null;try{let e=JSON.parse(t),i=(Array.isArray(e)?e:[e]).map(a=>{let _=Xn(a);if(!_||typeof _.delegationId!="string"||typeof _.toolRequestId!="string")return null;let C={delegationId:_.delegationId,toolRequestId:_.toolRequestId};return typeof _.subCaseId=="string"&&(C.subCaseId=_.subCaseId),typeof _.agentName=="string"&&(C.agentName=_.agentName),typeof _.success=="boolean"&&(C.success=_.success),typeof _.result=="string"&&(C.result=_.result),typeof _.pendingQuestion=="string"&&(C.pendingQuestion=_.pendingQuestion),Array.isArray(_.options)&&(C.options=_.options.filter(y=>typeof y=="string")),typeof _.error=="string"&&(C.error=_.error),typeof _.errorType=="string"&&(C.errorType=_.errorType),C});return i.every(a=>a!==null)?i:null}catch(e){return null}}function eo(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 _ of Zn(a)??[])n.set(_.delegationId,_);return [...new Set([...t.keys(),...n.keys()])].map(a=>{let _=t.get(a),C=n.get(a),D=e.get(a)?.outcome??(C?.pendingQuestion?"WAITING_USER":C?C.success===false?"ERROR":"SUCCESS":"WORKING");return {delegationId:a,toolRequestId:_?.toolRequestId??C.toolRequestId,subCaseId:_?.subCaseId??C.subCaseId??"",agentName:_?.agentName??C.agentName??"Delegated agent",task:_?.task??"Delegated task",resumed:_?.resumed??false,status:D,result:C}})}function to(o,t,e,n){return o!=="DELEGATE__delegate"||!n.some(i=>i.toolRequestId===t)?false:e?Zn(e)?.some(i=>i.toolRequestId===t)??false:true}var Ci=["promptItem"],no=(o,t)=>t.name;function fi(o,t){if(o&1&&(gl$1(0,"span",5),JC(1),ml$1()),o&2){let e=t.$implicit;sI(),om("","{","","{","",e.name,"","}","","}");}}function bi(o,t){if(o&1&&(gl$1(0,"span",6),JC(1),ml$1()),o&2){let e=CC().$implicit;sI(),em(e.description);}}function xi(o,t){if(o&1){let e=vC();gl$1(0,"li",3,0),jg("click",function(){let i=Sf(e).$implicit,a=CC();return _f(a.onItemClick(i))})("keydown.enter",function(){let i=Sf(e).$implicit,a=CC();return _f(a.onItemClick(i))})("mouseenter",function(){let i=Sf(e).$index,a=CC();return _f(a.activeIndex.set(i))}),gl$1(2,"span",4),JC(3),dC(4,fi,2,5,"span",5,no),ml$1(),aC(6,bi,2,1,"span",6),ml$1();}if(o&2){let e=t.$implicit,n=t.$index,i=CC();qg("prompt-autocomplete__item--active",i.isActive(n)),Ng("aria-selected",i.isActive(n)),sI(3),Dl(" /",e.name," "),sI(),fC(e.parameters),sI(2),cC(e.description?6:-1);}}var _e=class o{prompts=nV.required();selected=tV();dismissed=tV();activeIndex=Wi$1(0);itemRefs=iV();constructor(){Wf(()=>{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=jw({type:o,selectors:[["agentos-prompt-autocomplete"]],viewQuery:function(e,n){e&1&&$g(n.itemRefs,Ci,5),e&2&&xC();},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&&(gl$1(0,"ul",1),dC(1,xi,7,5,"li",2,no),ml$1()),e&2&&(sI(),fC(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 vi=["agentItem"],yi=(o,t)=>t.id;function wi(o,t){if(o&1&&(gl$1(0,"span",5),JC(1),ml$1()),o&2){let e=CC().$implicit;sI(),em(e.description);}}function Si(o,t){if(o&1){let e=vC();gl$1(0,"li",3,0),jg("click",function(){let i=Sf(e).$implicit,a=CC();return _f(a.onItemClick(i))})("keydown.enter",function(){let i=Sf(e).$implicit,a=CC();return _f(a.onItemClick(i))})("mouseenter",function(){let i=Sf(e).$index,a=CC();return _f(a.activeIndex.set(i))}),gl$1(2,"span",4),JC(3),ml$1(),aC(4,wi,2,1,"span",5),ml$1();}if(o&2){let e=t.$implicit,n=t.$index,i=CC();qg("agent-autocomplete__item--active",i.isActive(n)),Ng("aria-selected",i.isActive(n)),sI(3),em("@"+e.name),sI(),cC(e.description?4:-1);}}var ue=class o{agents=nV.required();selected=tV();dismissed=tV();activeIndex=Wi$1(0);itemRefs=iV();constructor(){Wf(()=>{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=jw({type:o,selectors:[["agentos-agent-autocomplete"]],viewQuery:function(e,n){e&1&&$g(n.itemRefs,vi,5),e&2&&xC();},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&&(gl$1(0,"ul",1),dC(1,Si,5,5,"li",2,yi),ml$1()),e&2&&(sI(),fC(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 gt=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 Wt(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 Te=class o{promptState=g(m);agentState=g(gt);destroyRef=g(Ce$1);slashSuggestions=Wi$1([]);atSuggestions=Wi$1([]);namespaceId="";effectivePrompts=[];promptsLoaded=false;slashPrefix$=new ue$4;effectiveAgents=[];agentsLoaded=false;atPrefix$=new ue$4;constructor(){this.slashPrefix$.pipe(Cd(60),Da$1(t=>(this.promptsLoaded?br$1(this.effectivePrompts):this.promptState.listEffective(this.namespaceId).pipe(va$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(Cd(60),Da$1(t=>(this.agentsLoaded?br$1(this.effectiveAgents):this.agentState.listEffective(this.namespaceId).pipe(va$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(Wt(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 _=n()?.nativeElement;_&&(_.value=a,_.setSelectionRange(a.length,a.length),_.focus());}),this.slashSuggestions.set([]);}onAgentSelected(t,e,n,i){let a=e()?.completionFor(t)??`@${t.name} `,_=i().replace(/@\w*$/,a);i.set(_),queueMicrotask(()=>{let C=n()?.nativeElement;C&&(C.value=_,C.setSelectionRange(_.length,_.length),C.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(Wt(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 kd=20971520,Mi=["pdf","png","jpg","jpeg","gif","webp","zip","tar","gz","exe","bin","doc","docx","xls","xlsx","ppt","pptx"];function Bt(o){return o.split(".").pop()?.toLowerCase()??""}function ht(o){switch(Bt(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 oo(o){return o<1024?`${o} B`:o<1024*1024?`${(o/1024).toFixed(1)} KB`:`${(o/(1024*1024)).toFixed(1)} MB`}function io(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 ao(o){switch(Bt(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 Ei(o){return !Mi.includes(Bt(o))}function Ti(o){return o<=20971520}function ro(o){let t=o.filename??o.name??"";return o.size!==void 0&&Ei(t)&&Ti(o.size)}function so(o){try{return JSON.stringify(JSON.parse(o),null,2)}catch(t){return o}}function lo(o){let t=/^(case|namespace)-exchange__(editFiles|remove|moveFile)$/.exec(o??"");return t?t[1]:null}var ki=["backButton"];function Pi(o,t){if(o&1){let e=vC();Cs$1(0,"ds-empty-state",7)(1,"button",13),Lg("click",function(){Sf(e);let i=CC();return _f(i.onDownload())}),JC(2,"Download instead"),hl$1()();}}function Oi(o,t){o&1&&(Cs$1(0,"div",8),Ag(1,"ds-spinner",14),hl$1());}function Ii(o,t){if(o&1){let e=vC();Cs$1(0,"ds-empty-state",9)(1,"button",13),Lg("click",function(){Sf(e);let i=CC();return _f(i.onDownload())}),JC(2,"Download instead"),hl$1()();}}function Di(o,t){if(o&1&&(Ag(0,"div",10),gT(1,"agentosMarkdown")),o&2){let e=CC();xg("innerHTML",yT(1,1,e.content()),gE);}}function Ri(o,t){if(o&1&&Ag(0,"iframe",11),o&2){let e=CC();xg("srcdoc",e.displayContent(),gE)("title","Preview of "+e.filename());}}function Vi(o,t){if(o&1&&(Cs$1(0,"pre",12),JC(1),hl$1()),o&2){let e=CC();sI(),em(e.displayContent());}}var Ct=class o{file=nV.required();content=nV(null);status=nV("loading");canView=nV(true);closeRequested=tV();downloadRequested=tV();backButton=oV("backButton",{read:Xt});constructor(){PE(()=>{this.backButton()?.nativeElement?.querySelector("button")?.focus();});}filename=TT(()=>{let t=this.file().path;return t.split("/").pop()??t});format=TT(()=>ao(this.filename()));displayContent=TT(()=>{let t=this.content();return t==null?"":this.format()==="json"?so(t):t});onClose(){this.closeRequested.emit();}onDownload(){this.downloadRequested.emit(this.file());}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=jw({type:o,selectors:[["agentos-exchange-content-viewer"]],viewQuery:function(e,n){e&1&&$g(n.backButton,ki,5,Xt),e&2&&xC();},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&&(Cs$1(0,"div",1)(1,"header",2)(2,"ds-icon-button",3,0),Lg("action",function(){return n.onClose()}),hl$1(),Cs$1(4,"span",4),JC(5),hl$1(),Cs$1(6,"ds-icon-button",5),Lg("action",function(){return n.onDownload()}),hl$1()(),Cs$1(7,"div",6),aC(8,Pi,3,0,"ds-empty-state",7)(9,Oi,2,0,"div",8)(10,Ii,3,0,"ds-empty-state",9)(11,Di,2,3,"div",10)(12,Ri,1,2,"iframe",11)(13,Vi,2,1,"pre",12),hl$1()()),e&2&&(sI(4),xg("title",n.filename()),sI(),em(n.filename()),sI(),xg("title","Download "+n.filename()),sI(2),cC(n.canView()?n.status()==="loading"?9:n.status()==="error"?10:n.format()==="markdown"?11:n.format()==="html"?12:13:8));},dependencies:[Xn$2,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 Ni=(o,t)=>t.label;function Ai(o,t){if(o&1&&(Cs$1(0,"span"),JC(1),hl$1()),o&2){let e=t.$implicit;UC(sT("exchange-item__badge exchange-item__badge--",e.variant)),sI(),em(e.label);}}function Fi(o,t){if(o&1){let e=vC();Cs$1(0,"ds-icon-button",10),Lg("action",function(){Sf(e);let i=CC();return _f(i.deleteRequested.emit())}),hl$1();}if(o&2){let e=CC();xg("title","Delete "+e.row().filename);}}var Re=class o{row=nV.required();active=nV(false);canWrite=nV(false);viewRequested=tV();downloadRequested=tV();deleteRequested=tV();static toRow(t){let e=[t.size!==void 0?oo(t.size):null,t.lastModified?io(t.lastModified):null];return {path:t.path,filename:t.name,meta:e.filter(n=>n!==null).join(" \xB7 "),icon:ht(t.name)}}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=jw({type:o,selectors:[["agentos-exchange-item"]],inputs:{row:[1,"row"],active:[1,"active"],canWrite:[1,"canWrite"]},outputs:{viewRequested:"viewRequested",downloadRequested:"downloadRequested",deleteRequested:"deleteRequested"},decls:14,vars:10,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"],[1,"exchange-item__actions"],["icon","download","variant","default",3,"action","title"],["icon","delete","variant","danger",3,"title"],["icon","delete","variant","danger",3,"action","title"]],template:function(e,n){e&1&&(Cs$1(0,"div",0)(1,"button",1),Lg("click",function(){return n.viewRequested.emit()}),Cs$1(2,"span",2),JC(3),hl$1(),Cs$1(4,"span",3)(5,"span",4),JC(6),hl$1(),Cs$1(7,"span",5),JC(8),dC(9,Ai,2,4,"span",6,Ni),hl$1()()(),Cs$1(11,"div",7)(12,"ds-icon-button",8),Lg("action",function(){return n.downloadRequested.emit()}),hl$1(),aC(13,Fi,1,1,"ds-icon-button",9),hl$1()()),e&2&&(qg("exchange-item--active",n.active()),sI(),Ng("data-exchange-path",n.row().path)("aria-current",n.active()?"true":null)("aria-label","View "+n.row().filename),sI(2),em(n.row().icon),sI(3),em(n.row().filename),sI(2),Dl(" ",n.row().meta," "),sI(),fC(n.row().badges),sI(3),xg("title","Download "+n.row().filename),sI(),cC(n.canWrite()?13:-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}"]})};var qi=(o,t)=>t.path;function Li(o,t){if(o&1){let e=vC();Cs$1(0,"li",1)(1,"agentos-exchange-item",2),Lg("viewRequested",function(){let i=Sf(e).$implicit,a=CC();return _f(a.onView(i))})("downloadRequested",function(){let i=Sf(e).$implicit,a=CC();return _f(a.onDownload(i))})("deleteRequested",function(){let i=Sf(e).$implicit,a=CC();return _f(a.onDelete(i))}),hl$1()();}if(o&2){let e=t.$implicit,n=CC();sI(),xg("row",e)("active",n.isActive(e))("canWrite",n.canWrite());}}var ft=class o{rows=nV.required();scope=nV.required();activeFile=nV(null);canWrite=nV(false);fileSelected=tV();downloadRequested=tV();deleteRequested=tV();isActive(t){let e=this.activeFile();return e!==null&&e.scope===this.scope()&&e.path===t.path}onView(t){this.fileSelected.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=jw({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"},decls:3,vars:0,consts:[["role","list",1,"exchange-file-list"],["role","listitem",1,"exchange-file-list__row"],[3,"viewRequested","downloadRequested","deleteRequested","row","active","canWrite"]],template:function(e,n){e&1&&(Cs$1(0,"ul",0),dC(1,Li,2,3,"li",1,qi),hl$1()),e&2&&(sI(),fC(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 zi=["fileInput"],xt=(o,t)=>t.path;function Ui(o,t){if(o&1){let e=vC();Cs$1(0,"agentos-exchange-content-viewer",4),Lg("closeRequested",function(){Sf(e);let i=CC();return _f(i.onViewerClose())})("downloadRequested",function(i){Sf(e);let a=CC();return _f(a.downloadRequested.emit(i))}),hl$1();}if(o&2){let e=CC();xg("file",t)("content",e.selectedContent())("status",e.contentStatus())("canView",e.canViewSelected());}}function $i(o,t){if(o&1){let e=vC();Cs$1(0,"ds-icon-button",22),Lg("action",function(){Sf(e);let i=CC(3);return _f(i.triggerUpload(i.CASE))}),hl$1();}if(o&2){let e=CC(3);xg("disabled",e.caseUploading());}}function Wi(o,t){o&1&&(Cs$1(0,"span",16),JC(1,"read-only"),hl$1());}function Bi(o,t){if(o&1){let e=vC();Cs$1(0,"ds-icon-button",23),Lg("action",function(){Sf(e);let i=CC(3);return _f(i.downloadAllRequested.emit(i.CASE))}),hl$1();}}function Hi(o,t){o&1&&(Cs$1(0,"p",18),JC(1,"Uploading\u2026"),hl$1());}function ji(o,t){o&1&&(Cs$1(0,"div",19),Ag(1,"ds-spinner",24),hl$1());}function Gi(o,t){o&1&&(Cs$1(0,"div",20),Ag(1,"ds-spinner",25),Cs$1(2,"p"),JC(3,"Preparing workspace\u2026"),hl$1(),Cs$1(4,"p",26),JC(5," Files will appear automatically when the workspace is ready. "),hl$1()());}function Qi(o,t){if(o&1){let e=vC();Cs$1(0,"div",21)(1,"span"),JC(2,"Couldn't load case files."),hl$1(),Cs$1(3,"button",27),Lg("click",function(){Sf(e);let i=CC(3);return _f(i.retryRequested.emit())}),JC(4,"Retry"),hl$1()();}}function Ki(o,t){if(o&1){let e=vC();Cs$1(0,"span",32),JC(1,"/"),hl$1(),Cs$1(2,"button",31),Lg("click",function(){let i=Sf(e).$implicit,a=CC(5);return _f(a.onFolderOpen(a.CASE,i.path))}),JC(3),hl$1();}if(o&2){let e=t.$implicit;sI(3),Dl(" ",e.label," ");}}function Yi(o,t){if(o&1){let e=vC();Cs$1(0,"nav",28)(1,"button",31),Lg("click",function(){Sf(e);let i=CC(4);return _f(i.onFolderOpen(i.CASE,""))}),JC(2,"root"),hl$1(),dC(3,Ki,4,1,null,null,xt),hl$1();}if(o&2){let e=CC(4);sI(3),fC(e.caseBreadcrumb());}}function Ji(o,t){if(o&1){let e=vC();Cs$1(0,"li",33)(1,"button",34),Lg("click",function(){let i=Sf(e).$implicit,a=CC(5);return _f(a.onFolderOpen(a.CASE,i.path))}),Cs$1(2,"span",35),JC(3,"folder_open"),hl$1(),Cs$1(4,"span",36),JC(5),hl$1(),Cs$1(6,"span",37),JC(7,"chevron_right"),hl$1()()();}if(o&2){let e=t.$implicit;sI(5),em(e.name);}}function Xi(o,t){if(o&1&&(Cs$1(0,"ul",29),dC(1,Ji,8,1,"li",33,xt),hl$1()),o&2){let e=CC(4);sI(),fC(e.caseFolders());}}function Zi(o,t){if(o&1&&Ag(0,"ds-empty-state",30),o&2){let e=CC(4);xg("hint",e.canWriteCase()?"Upload a file to share it with this case.":void 0);}}function ea(o,t){if(o&1){let e=vC();Cs$1(0,"button",40),Lg("click",function(){Sf(e);let i=CC(5);return _f(i.loadMoreRequested.emit(i.CASE))}),JC(1),hl$1();}if(o&2){let e=CC(5);xg("disabled",e.caseLoadingMore()),sI(),Dl(" ",e.caseLoadingMore()?"Loading\u2026":"Load more files"," ");}}function ta(o,t){if(o&1){let e=vC();Cs$1(0,"agentos-exchange-file-list",38),Lg("fileSelected",function(i){Sf(e);let a=CC(4);return _f(a.onFileSelected(i))})("downloadRequested",function(i){Sf(e);let a=CC(4);return _f(a.downloadRequested.emit(i))})("deleteRequested",function(i){Sf(e);let a=CC(4);return _f(a.deleteRequested.emit(i))}),hl$1(),aC(1,ea,2,2,"button",39);}if(o&2){let e=CC(4);xg("rows",e.caseRows())("scope",e.CASE)("canWrite",e.canWriteCase())("activeFile",e.activeFile()),sI(),cC(e.caseHasMore()?1:-1);}}function na(o,t){if(o&1&&(aC(0,Yi,5,0,"nav",28),aC(1,Xi,3,0,"ul",29),aC(2,Zi,1,1,"ds-empty-state",30)(3,ta,2,5)),o&2){let e=CC(3);cC(e.caseBreadcrumb().length>0||e.caseFolders().length>0?0:-1),sI(),cC(e.caseFolders().length>0?1:-1),sI(),cC(e.caseRows().length===0&&e.caseFolders().length===0?2:3);}}function oa(o,t){if(o&1&&(Cs$1(0,"section",10)(1,"div",12)(2,"h3",13),JC(3,"Case files"),hl$1(),Cs$1(4,"div",14),aC(5,$i,1,1,"ds-icon-button",15)(6,Wi,2,0,"span",16),aC(7,Bi,1,0,"ds-icon-button",17),hl$1()(),aC(8,Hi,2,0,"p",18),aC(9,ji,2,0,"div",19)(10,Gi,6,0,"div",20)(11,Qi,5,0,"div",21)(12,na,4,3),hl$1()),o&2){let e,n=CC(2);sI(5),cC(n.canWriteCase()?5:n.caseStatus()==="ready"?6:-1),sI(2),cC(n.caseFiles().length>0||n.caseFolders().length>0||n.caseBreadcrumb().length>0?7:-1),sI(),cC(n.caseUploading()?8:-1),sI(),cC((e=n.caseStatus())==="loading"?9:e==="preparing"?10:e==="error"?11:12);}}function ia(o,t){if(o&1){let e=vC();Cs$1(0,"ds-icon-button",22),Lg("action",function(){Sf(e);let i=CC(3);return _f(i.triggerUpload(i.NAMESPACE))}),hl$1();}if(o&2){let e=CC(3);xg("disabled",e.namespaceUploading());}}function aa(o,t){o&1&&(Cs$1(0,"span",16),JC(1,"read-only"),hl$1());}function ra(o,t){if(o&1){let e=vC();Cs$1(0,"ds-icon-button",42),Lg("action",function(){Sf(e);let i=CC(3);return _f(i.downloadAllRequested.emit(i.NAMESPACE))}),hl$1();}}function sa(o,t){o&1&&(Cs$1(0,"div",19),Ag(1,"ds-spinner",43),hl$1());}function la(o,t){if(o&1){let e=vC();Cs$1(0,"div",21)(1,"span"),JC(2,"Couldn't load namespace files."),hl$1(),Cs$1(3,"button",27),Lg("click",function(){Sf(e);let i=CC(3);return _f(i.retryRequested.emit())}),JC(4,"Retry"),hl$1()();}}function ca(o,t){if(o&1){let e=vC();Cs$1(0,"span",32),JC(1,"/"),hl$1(),Cs$1(2,"button",31),Lg("click",function(){let i=Sf(e).$implicit,a=CC(5);return _f(a.onFolderOpen(a.NAMESPACE,i.path))}),JC(3),hl$1();}if(o&2){let e=t.$implicit;sI(3),Dl(" ",e.label," ");}}function da(o,t){if(o&1){let e=vC();Cs$1(0,"nav",28)(1,"button",31),Lg("click",function(){Sf(e);let i=CC(4);return _f(i.onFolderOpen(i.NAMESPACE,""))}),JC(2," root "),hl$1(),dC(3,ca,4,1,null,null,xt),hl$1();}if(o&2){let e=CC(4);sI(3),fC(e.namespaceBreadcrumb());}}function ma(o,t){if(o&1){let e=vC();Cs$1(0,"li",33)(1,"button",34),Lg("click",function(){let i=Sf(e).$implicit,a=CC(5);return _f(a.onFolderOpen(a.NAMESPACE,i.path))}),Cs$1(2,"span",35),JC(3,"folder_open"),hl$1(),Cs$1(4,"span",36),JC(5),hl$1(),Cs$1(6,"span",37),JC(7,"chevron_right"),hl$1()()();}if(o&2){let e=t.$implicit;sI(5),em(e.name);}}function pa(o,t){if(o&1&&(Cs$1(0,"ul",29),dC(1,ma,8,1,"li",33,xt),hl$1()),o&2){let e=CC(4);sI(),fC(e.namespaceFolders());}}function _a(o,t){if(o&1&&Ag(0,"ds-empty-state",44),o&2){let e=CC(4);xg("hint",e.canWriteNamespace()?"Upload a file to share it across this namespace.":void 0);}}function ua(o,t){if(o&1){let e=vC();Cs$1(0,"button",40),Lg("click",function(){Sf(e);let i=CC(5);return _f(i.loadMoreRequested.emit(i.NAMESPACE))}),JC(1),hl$1();}if(o&2){let e=CC(5);xg("disabled",e.namespaceLoadingMore()),sI(),Dl(" ",e.namespaceLoadingMore()?"Loading\u2026":"Load more files"," ");}}function ga(o,t){if(o&1){let e=vC();Cs$1(0,"agentos-exchange-file-list",38),Lg("fileSelected",function(i){Sf(e);let a=CC(4);return _f(a.onFileSelected(i))})("downloadRequested",function(i){Sf(e);let a=CC(4);return _f(a.downloadRequested.emit(i))})("deleteRequested",function(i){Sf(e);let a=CC(4);return _f(a.deleteRequested.emit(i))}),hl$1(),aC(1,ua,2,2,"button",39);}if(o&2){let e=CC(4);xg("rows",e.namespaceRows())("scope",e.NAMESPACE)("canWrite",e.canWriteNamespace())("activeFile",e.activeFile()),sI(),cC(e.namespaceHasMore()?1:-1);}}function ha(o,t){if(o&1&&(aC(0,da,5,0,"nav",28),aC(1,pa,3,0,"ul",29),aC(2,_a,1,1,"ds-empty-state",44)(3,ga,2,5)),o&2){let e=CC(3);cC(e.namespaceBreadcrumb().length>0||e.namespaceFolders().length>0?0:-1),sI(),cC(e.namespaceFolders().length>0?1:-1),sI(),cC(e.namespaceFiles().length===0&&e.namespaceFolders().length===0?2:3);}}function Ca(o,t){if(o&1&&(Cs$1(0,"section",10)(1,"div",12)(2,"h3",13),JC(3,"Namespace files"),hl$1(),Cs$1(4,"div",14),aC(5,ia,1,1,"ds-icon-button",15)(6,aa,2,0,"span",16),aC(7,ra,1,0,"ds-icon-button",41),hl$1()(),aC(8,sa,2,0,"div",19)(9,la,5,0,"div",21)(10,ha,4,3),hl$1()),o&2){let e,n=CC(2);sI(5),cC(n.canWriteNamespace()?5:6),sI(2),cC(n.namespaceFiles().length>0||n.namespaceFolders().length>0||n.namespaceBreadcrumb().length>0?7:-1),sI(),cC((e=n.namespaceStatus())==="loading"?8:e==="error"?9:10);}}function fa(o,t){o&1&&(Cs$1(0,"p",11),JC(1,"No files available."),hl$1());}function ba(o,t){if(o&1){let e=vC();Cs$1(0,"header",5)(1,"span",6)(2,"span",7),JC(3,"folder_open"),hl$1(),JC(4," Files "),hl$1(),Cs$1(5,"ds-icon-button",8),Lg("action",function(){Sf(e);let i=CC();return _f(i.closeRequested.emit())}),hl$1()(),Cs$1(6,"div",9),aC(7,oa,13,4,"section",10),aC(8,Ca,11,3,"section",10),aC(9,fa,2,0,"p",11),hl$1();}if(o&2){let e=CC();sI(7),cC(e.caseSectionVisible()?7:-1),sI(),cC(e.namespaceSectionVisible()?8:-1),sI(),cC(!e.caseSectionVisible()&&!e.namespaceSectionVisible()?9:-1);}}var bt=class o{caseFiles=nV([]);caseFolders=nV([]);caseBreadcrumb=nV([]);caseHasMore=nV(false);caseLoadingMore=nV(false);caseStatus=nV.required();caseSectionVisible=nV(false);canWriteCase=nV(false);caseUploading=nV(false);namespaceFiles=nV([]);namespaceFolders=nV([]);namespaceBreadcrumb=nV([]);namespaceHasMore=nV(false);namespaceLoadingMore=nV(false);namespaceStatus=nV.required();namespaceSectionVisible=nV(false);canWriteNamespace=nV(false);namespaceUploading=nV(false);activeFile=nV(null);selectedContent=nV(null);contentStatus=nV("loading");canViewSelected=nV(true);fileSelected=tV();folderOpened=tV();loadMoreRequested=tV();uploadRequested=tV();downloadRequested=tV();downloadAllRequested=tV();deleteRequested=tV();retryRequested=tV();closeRequested=tV();viewerClosed=tV();host=g(Xt);fileInput=oV("fileInput");CASE="CASE";NAMESPACE="NAMESPACE";caseRows=TT(()=>this.caseFiles().map(Re.toRow));onFolderOpen(t,e){this.folderOpened.emit({scope:t,path:e});}namespaceRows=TT(()=>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=jw({type:o,selectors:[["agentos-exchange-drawer"]],viewQuery:function(e,n){e&1&&$g(n.fileInput,zi,5),e&2&&xC();},inputs:{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"],[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"],["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"],["aria-hidden","true",1,"exchange-drawer__folder-chevron","material-icons"],[3,"fileSelected","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"]],template:function(e,n){if(e&1&&(Cs$1(0,"div",1),aC(1,Ui,1,4,"agentos-exchange-content-viewer",2)(2,ba,10,3),Cs$1(3,"input",3,0),Lg("change",function(a){return n.onFileInputChange(a)}),hl$1()()),e&2){let i;sI(),cC((i=n.activeFile())?1:2,i);}},dependencies:[Se$1,Xn$2,Gn,ft,Ct],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)}"]})};function xa(o,t){if(o&1&&(Cs$1(0,"p",1),JC(1),hl$1()),o&2){let e=CC();sI(),em(e.actionError());}}var vt=class o{route=g(V$2);destroyRef=g(Ce$1);state=g(de);closeRequested=tV();selectedFile=Wi$1(null);selectedContent=Wi$1(null);contentStatus=Wi$1("loading");canViewSelected=Wi$1(true);actionError=Wi$1(null);pendingDelete=Wi$1(null);confirmOpen=TT(()=>this.pendingDelete()!==null);deleteMessage=TT(()=>{let t=this.pendingDelete();return t?`Delete "${t.path.split("/").pop()??t.path}"? This action cannot be undone.`:""});activeCaseId=null;constructor(){this.route.queryParams.pipe(U$3()).subscribe(t=>{let e=t.ns,n=t.case;if(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());}),Wf(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?ro(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 dt$1(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 dt$1(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 dt$1(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 dt$1(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=jw({type:o,selectors:[["agentos-exchange-shell"]],outputs:{closeRequested:"closeRequested"},decls:4,vars:25,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","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&&(Cs$1(0,"div",0),aC(1,xa,2,1,"p",1),Cs$1(2,"agentos-exchange-drawer",2),Lg("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()}),hl$1()(),Cs$1(3,"ds-confirm-dialog",3),Lg("confirmed",function(){return n.onConfirmDelete()})("cancelled",function(){return n.onCancelDelete()}),hl$1()),e&2&&(sI(),cC(n.actionError()?1:-1),sI(),xg("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()),sI(),xg("open",n.confirmOpen())("message",n.deleteMessage()));},dependencies:[bt,Yn$1],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 yt=class o{membership=g(Q$2);userController=g(le$3);listMembers(t){return this.membership.getMembersCaseMembership(t)}listAllUsers(){return this.userController.listAllUser()}updateMembers(t,e){let n=e.map(i=>P({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 va=(o,t)=>t.userId;function ya(o,t){o&1&&(Cs$1(0,"p",5),JC(1,"Loading\u2026"),hl$1());}function wa(o,t){o&1&&(Cs$1(0,"p",7),JC(1," You can change roles or remove existing members. Only a platform super-admin can add a new user to this case. "),hl$1());}function Sa(o,t){o&1&&(Cs$1(0,"p",11),JC(1,"No members yet."),hl$1());}function Ma(o,t){if(o&1&&(Cs$1(0,"span",23),JC(1),hl$1()),o&2){let e=CC().$implicit;sI(),em(e.email);}}function Ea(o,t){if(o&1&&(Cs$1(0,"span",24),JC(1),gT(2,"lowercase"),hl$1()),o&2){let e=CC().$implicit;sI(),em(yT(2,1,e.role));}}function Ta(o,t){if(o&1){let e=vC();Cs$1(0,"select",25),Lg("change",function(i){Sf(e);let a=CC().$implicit,_=CC(3);return _f(_.setMemberRole(a.userId,i))}),Cs$1(1,"option",26),JC(2,"Member"),hl$1(),Cs$1(3,"option",27),JC(4,"Admin"),hl$1()(),Cs$1(5,"button",28),Lg("click",function(){Sf(e);let i=CC().$implicit,a=CC(3);return _f(a.removeMember(i.userId))}),JC(6," \xD7 "),hl$1();}if(o&2){let e=CC().$implicit;xg("value",e.role),Ng("aria-label","Role of "+e.label),sI(5),xg("title","Remove "+e.label);}}function ka(o,t){if(o&1&&(Cs$1(0,"li",20)(1,"div",21)(2,"span",22),JC(3),hl$1(),aC(4,Ma,2,1,"span",23),hl$1(),aC(5,Ea,3,3,"span",24)(6,Ta,7,3),hl$1()),o&2){let e=t.$implicit,n=CC(3);qg("case-members__member--self",e.userId===n.currentUserId()?.id),sI(3),em(e.label),sI(),cC(e.email&&e.email!==e.label?4:-1),sI(),cC(e.userId===n.currentUserId()?.id?5:6);}}function Pa(o,t){if(o&1&&(Cs$1(0,"ul",12),dC(1,ka,7,5,"li",19,va),hl$1()),o&2){let e=CC(2);sI(),fC(e.selectedMembers());}}function Oa(o,t){o&1&&(Cs$1(0,"p",13),JC(1,"At least one ADMIN must remain on the case."),hl$1());}function Ia(o,t){if(o&1){let e=vC();Cs$1(0,"ds-autocomplete-input",29),Lg("itemSelected",function(i){Sf(e);let a=CC(2);return _f(a.onMemberSelected(i))}),hl$1();}if(o&2){let e=CC(2);xg("dataSource",e.memberDataSource);}}function Da(o,t){if(o&1&&(Cs$1(0,"p",15),JC(1),hl$1()),o&2){let e=CC(2);sI(),em(e.errorMessage());}}function Ra(o,t){if(o&1){let e=vC();Cs$1(0,"div",6),aC(1,wa,2,0,"p",7),Cs$1(2,"fieldset",8)(3,"legend",9),JC(4," Members "),Cs$1(5,"span",10),JC(6,"ADMIN or MEMBER"),hl$1()(),aC(7,Sa,2,0,"p",11)(8,Pa,3,0,"ul",12),aC(9,Oa,2,0,"p",13),aC(10,Ia,1,1,"ds-autocomplete-input",14),hl$1(),aC(11,Da,2,1,"p",15),Cs$1(12,"div",16)(13,"button",17),Lg("click",function(){Sf(e);let i=CC();return _f(i.submit())}),JC(14," Save "),hl$1(),Cs$1(15,"button",18),Lg("click",function(){Sf(e);let i=CC();return _f(i.cancel())}),JC(16,"Cancel"),hl$1()()();}if(o&2){let e=CC();sI(),cC(e.isSuperAdmin()?-1:1),sI(6),cC(e.selectedMembers().length===0?7:8),sI(2),cC(e.wouldLockOutAdmins()?9:-1),sI(),cC(e.isSuperAdmin()?10:-1),sI(),cC(e.errorMessage()?11:-1),sI(2),xg("disabled",e.isSubmitting()||e.wouldLockOutAdmins());}}var wt=class o{destroyRef=g(Ce$1);memberState=g(yt);userState=g(l$3);caseId=nV.required();closeRequested=tV();currentUserId=this.userState.currentUser;isLoading=Wi$1(false);isSubmitting=Wi$1(false);errorMessage=Wi$1(null);isSuperAdmin=Wi$1(false);selectedMembers=Wi$1([]);originalMembers=[];candidateUsers=Wi$1([]);memberDataSource=new m$3(()=>this.candidateUsers(),()=>new Set(this.selectedMembers().map(t=>t.userId)));constructor(){Wf(()=>{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(va$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){Wy({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(_=>_.userId===t?z$2(P({},_),{role:i}):_));}wouldLockOutAdmins=TT(()=>!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$3(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=jw({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&&(Cs$1(0,"div",0)(1,"header",1)(2,"h2",2),JC(3,"Share case"),hl$1(),Cs$1(4,"button",3),Lg("click",function(){return n.cancel()}),Cs$1(5,"span",4),JC(6,"close"),hl$1()()(),aC(7,ya,2,0,"p",5)(8,Ra,17,6,"div",6),hl$1()),e&2&&(sI(7),cC(n.isLoading()?7:8));},dependencies:[Pn,jb],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 St=10,Va=/\bnamespace\b/i;function Ke(o,t){return Va.test(o)&&t?"NAMESPACE":"CASE"}function Mt(o,t){return Ke(o,t)==="NAMESPACE"}function co(o){let t=a=>o.filter(_=>_.uploadedScope===a).map(_=>_.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(`
|
|
3
|
+
`)}function mo(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 po(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=Wi$1([]);limitError=Wi$1(null);isDragOver=Wi$1(false);isUploading=Wi$1(false);hasAttachments=TT(()=>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=St-n.length;this.limitError.set(e.length>i?`You can attach up to ${St} files per message.`:null);let a=e.slice(0,Math.max(0,i)).map(_=>({id:`attachment-${this.nextId++}`,file:_,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<St&&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 dt$1(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:co(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?P(P({},i),e):i));}static \u0275fac=function(e){return new(e||o)};static \u0275prov=x$1({token:o,factory:o.\u0275fac})};var Na=["fileInput"],Aa=(o,t)=>t.id;function Fa(o,t){o&1&&(Cs$1(0,"span",10),JC(1,"namespace"),hl$1());}function qa(o,t){if(o&1&&(Cs$1(0,"span",12),JC(1),hl$1()),o&2){let e=CC().$implicit;sI(),em(e.error);}}function La(o,t){if(o&1){let e=vC();Cs$1(0,"div",6)(1,"span",7),JC(2),hl$1(),Cs$1(3,"span",8),JC(4),hl$1(),Cs$1(5,"span",9),JC(6),hl$1(),aC(7,Fa,2,0,"span",10),Cs$1(8,"ds-icon-button",11),Lg("action",function(){let i=Sf(e).$implicit,a=CC(3);return _f(a.removed.emit(i.id))}),hl$1(),aC(9,qa,2,1,"span",12),hl$1();}if(o&2){let e=t.$implicit,n=CC(3);qg("composer-attachments__chip--error",e.status==="error")("composer-attachments__chip--uploaded",e.status==="uploaded"),sI(),qg("composer-attachments__icon--spinning",e.status==="uploading"),sI(),em(n.chipIcon(e)),sI(),xg("title",e.file.name),sI(),em(n.middleTruncate(e.file.name)),sI(2),em(n.kindLabel(e.file.name)),sI(),cC(n.showNamespaceBadge(e)?7:-1),sI(),xg("title",n.removeTitle(e))("disabled",n.disabled()),sI(),cC(e.status==="error"&&e.error?9:-1);}}function za(o,t){if(o&1&&(Cs$1(0,"div",3),dC(1,La,10,14,"div",5,Aa),hl$1()),o&2){let e=CC(2);sI(),fC(e.attachments());}}function Ua(o,t){o&1&&(Cs$1(0,"p",4),JC(1),hl$1()),o&2&&(sI(),em(t));}function $a(o,t){if(o&1&&(Cs$1(0,"div",1),aC(1,za,3,0,"div",3),aC(2,Ua,2,1,"p",4),hl$1()),o&2){let e,n=CC();sI(),cC(n.attachments().length>0?1:-1),sI(),cC((e=n.limitError())?2:-1,e);}}var Be=class o{attachments=nV.required();namespaceBadge=nV(false);limitError=nV(null);disabled=nV(false);removed=tV();filesSelected=tV();fileInput=oV("fileInput");kindLabel=po;middleTruncate=mo;chipIcon(t){return t.status==="uploading"?"progress_activity":t.status==="uploaded"?"check_circle":ht(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=jw({type:o,selectors:[["agentos-composer-attachments"]],viewQuery:function(e,n){e&1&&$g(n.fileInput,Na,5),e&2&&xC();},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&&(aC(0,$a,3,2,"div",1),Cs$1(1,"input",2,0),Lg("change",function(a){return n.onFileInputChange(a)}),hl$1()),e&2&&cC(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 Wa=["composerInput"],Ba=["messagesContainer"],Ha=(o,t)=>t.phaseIndex;function ja(o,t){if(o&1){let e=vC();Cs$1(0,"agentos-case-members",25),Lg("closeRequested",function(){Sf(e);let i=CC();return _f(i.exchangeOpen.set(false))}),hl$1();}if(o&2){let e=CC();xg("caseId",e.caseId);}}function Ga(o,t){if(o&1){let e=vC();Cs$1(0,"agentos-exchange-shell",26),Lg("closeRequested",function(){Sf(e);let i=CC();return _f(i.exchangeOpen.set(false))}),hl$1();}}function Qa(o,t){if(o&1){let e=vC();Cs$1(0,"div",8)(1,"input",27),Lg("input",function(i){Sf(e);let a=CC();return _f(a.draftTitle.set(i.target.value))})("keydown",function(i){Sf(e);let a=CC();return _f(a.onEditKeydown(i))}),hl$1(),Cs$1(2,"input",28),Lg("input",function(i){Sf(e);let a=CC();return _f(a.draftThreshold.set(i.target.value))})("keydown",function(i){Sf(e);let a=CC();return _f(a.onEditKeydown(i))}),hl$1(),Cs$1(3,"button",29),Lg("click",function(){Sf(e);let i=CC();return _f(i.commitEdit())}),Cs$1(4,"span",30),JC(5,"check"),hl$1()(),Cs$1(6,"button",31),Lg("click",function(){Sf(e);let i=CC();return _f(i.cancelEdit())}),Cs$1(7,"span",30),JC(8,"close"),hl$1()()();}if(o&2){let e=CC();sI(),xg("value",e.draftTitle()),sI(),xg("value",e.draftThreshold());}}function Ka(o,t){if(o&1&&(Cs$1(0,"span",36),JC(1),hl$1()),o&2){let e=CC(2);sI(),Dl(" max ",e.activeCase().runCostThreshold," ");}}function Ya(o,t){if(o&1&&(Cs$1(0,"span",39),JC(1),hl$1()),o&2){let e=CC(2);sI(),em(e.exchangeFileCount());}}function Ja(o,t){if(o&1){let e=vC();Cs$1(0,"ds-icon-button",43),Lg("action",function(){Sf(e);let i=CC(2);return _f(i.starToggled.emit({id:i.caseId,starred:!i.activeCase()?.favorite}))}),hl$1(),Cs$1(1,"ds-icon-button",44),Lg("action",function(){Sf(e);let i=CC(2);return _f(i.confirmingDelete.set(true))}),hl$1();}if(o&2){let e=CC(2);qg("case-chat__header-star--active",e.activeCase()?.favorite),xg("icon",e.activeCase()?.favorite?"star":"star_border")("title",e.activeCase()?.favorite?"Remove from favorites":"Add to favorites");}}function Xa(o,t){if(o&1){let e=vC();Cs$1(0,"span",42)(1,"span",45),JC(2,"Delete this case?"),hl$1(),Cs$1(3,"button",46),Lg("click",function(){Sf(e);let i=CC(2);return i.deleteRequested.emit(i.caseId),_f(i.confirmingDelete.set(false))}),Cs$1(4,"span",30),JC(5,"check"),hl$1(),JC(6," Delete "),hl$1(),Cs$1(7,"button",47),Lg("click",function(){Sf(e);let i=CC(2);return _f(i.confirmingDelete.set(false))}),Cs$1(8,"span",30),JC(9,"close"),hl$1()()();}}function Za(o,t){if(o&1){let e=vC();Cs$1(0,"div",32),Ag(1,"agentos-case-status-glyph",33),Cs$1(2,"button",34),Lg("click",function(){Sf(e);let i=CC();return _f(i.startEdit())}),JC(3),hl$1(),Cs$1(4,"span",35),JC(5),hl$1(),aC(6,Ka,2,1,"span",36),hl$1(),Cs$1(7,"div",37)(8,"ds-icon-button",38),Lg("action",function(){Sf(e);let i=CC();return _f(i.openFilesPanel())}),hl$1(),aC(9,Ya,2,1,"span",39),hl$1(),Cs$1(10,"ds-icon-button",40),Lg("action",function(){Sf(e);let i=CC();return _f(i.openMembersPanel())}),hl$1(),Ag(11,"span",41),aC(12,Ja,2,4)(13,Xa,10,0,"span",42);}if(o&2){let e=CC();sI(),xg("status",e.caseStatus())("size",16),sI(2),Dl(" ",e.activeCase()?.title??""," "),sI(),qg("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),sI(),em(e.caseStatus().toLowerCase()),sI(),cC(e.activeCase()?.runCostThreshold!==null&&e.activeCase()?.runCostThreshold!==void 0?6:-1),sI(2),xg("title","Files ("+e.exchangeFileCount()+")"),sI(),cC(e.exchangeFileCount()>0&&!e.exchangeOpen()?9:-1),sI(3),cC(e.confirmingDelete()?13:12);}}function er(o,t){if(o&1&&Ag(0,"agentos-case-usage",9),o&2){let e=CC();xg("caseId",e.caseId)("canWrite",e.canAttach())("running",e.isRunning()||e.caseStatus()==="RUNNING");}}function tr(o,t){o&1&&(Cs$1(0,"div",11)(1,"span",48),JC(2,"upload_file"),hl$1(),Cs$1(3,"span"),JC(4,"Drop files to attach"),hl$1()());}function nr(o,t){o&1&&(Cs$1(0,"div",13)(1,"p"),JC(2,"No messages yet."),hl$1()());}function or(o,t){o&1&&(Cs$1(0,"span",63),JC(1),hl$1()),o&2&&(sI(),Dl("(",t,")"));}function ir(o,t){if(o&1&&(Cs$1(0,"span",56),JC(1),aC(2,or,2,1,"span",63),hl$1()),o&2){let e,n=CC(2).$implicit,i=CC(2);sI(),Dl(" ",n.event.actor.role==="USER"?"You":n.event.actor.displayName||"Agent"," "),sI(),cC((e=i.agentModelAttribution(n.event))?2:-1,e);}}function ar(o,t){if(o&1&&(Cs$1(0,"div",57)(1,"span",64),JC(2,"session context"),hl$1(),Cs$1(3,"pre",65),JC(4),gT(5,"json"),hl$1()()),o&2){let e=CC(2).$implicit;sI(4),em(yT(5,1,e.event.sessionContext));}}function rr(o,t){if(o&1&&Ag(0,"div",59),o&2){let e=CC(2).$implicit;xg("innerHTML",e.html,gE);}}function sr(o,t){if(o&1&&Ag(0,"div",60),o&2){let e=CC(2).$implicit;xg("innerHTML",e.html,gE);}}function lr(o,t){if(o&1&&(Cs$1(0,"time",62),JC(1),hl$1()),o&2){let e=CC(2).$implicit,n=CC(2);xg("title",n.formatMessageTimestampTitle(e.event.timestamp)),Ng("datetime",e.event.timestamp),sI(),em(n.formatMessageTime(e.event.timestamp));}}function cr(o,t){if(o&1&&(Cs$1(0,"div",55),aC(1,ir,3,2,"span",56),aC(2,ar,6,3,"div",57),Cs$1(3,"div",58),aC(4,rr,1,1,"div",59)(5,sr,1,1,"div",60),Ag(6,"ds-copy-button",61),aC(7,lr,2,3,"time",62),hl$1()()),o&2){let e=CC().$implicit,n=CC(2);qg("case-chat__turn--user",e.event.actor.role==="USER")("case-chat__turn--agent",e.event.actor.role==="AGENT"),sI(),cC(e.isFirstInGroup?1:-1),sI(),cC(n.showTechnical()&&e.event.sessionContext?2:-1),sI(2),cC(e.event.actor.role==="USER"?4:5),sI(2),xg("text",n.messageText(e)),sI(),cC(e.isLastInGroup?7:-1);}}function dr(o,t){if(o&1&&(Cs$1(0,"div",50)(1,"span",56),JC(2),hl$1(),Ag(3,"div",60),hl$1()),o&2){let e=CC(3);sI(2),em(e.agentDisplayName()),sI(),xg("innerHTML",e.streamingHtml(),gE);}}function mr(o,t){if(o&1&&(Cs$1(0,"span",68),JC(1),hl$1()),o&2){let e=CC(2).$implicit;sI(),em(e.notice.detail);}}function pr(o,t){if(o&1&&(Cs$1(0,"div",66)(1,"span",67),JC(2),hl$1(),aC(3,mr,2,1,"span",68),hl$1()),o&2){let e=CC().$implicit;qg("case-chat__execution-notice--warning",e.notice.severity==="warning")("case-chat__execution-notice--error",e.notice.severity==="error"||e.notice.severity==="terminal"),sI(2),em(e.notice.title),sI(),cC(e.notice.detail?3:-1);}}function _r(o,t){if(o&1&&(Cs$1(0,"pre",70),JC(1),hl$1()),o&2){let e=CC(2).$implicit;sI(),em(e.item.detail);}}function ur(o,t){if(o&1&&(Cs$1(0,"details",52)(1,"summary",69),JC(2),hl$1(),aC(3,_r,2,1,"pre",70),hl$1()),o&2){let e=CC().$implicit;sI(2),Dl("\u2699 System log \xB7 ",e.item.label),sI(),cC(e.item.detail?3:-1);}}function gr(o,t){if(o&1){let e=vC();Cs$1(0,"agentos-question-panel",73),Lg("answered",function(i){Sf(e);let a=CC(2).$implicit,_=CC(2);return _f(_.onQuestionAnswered(a.event,i))})("cancelled",function(){Sf(e);let i=CC(4);return _f(i.onQuestionCancelled())}),hl$1();}if(o&2){let e=CC(2).$implicit;xg("questionEvent",e.event);}}function hr(o,t){if(o&1&&(Cs$1(0,"div",72)(1,"span",74),JC(2,"\u2705 Question answered"),hl$1(),Cs$1(3,"span",75),JC(4),hl$1()()),o&2){let e=CC(2).$implicit;sI(4),em(e.event.question);}}function Cr(o,t){if(o&1&&aC(0,gr,1,1,"agentos-question-panel",71)(1,hr,5,1,"div",72),o&2){let e=CC().$implicit,n=CC(2);cC(!e.answered&&(e.event.questionType!=="OAUTH_AUTHORIZE"||n.oauthPendingQuestion()?.id===e.event.id)?0:e.answered?1:-1);}}function fr(o,t){if(o&1&&Ag(0,"agentos-delegation-card",53),o&2){let e=CC().$implicit,n=CC(2);xg("delegation",e.delegation)("namespaceId",n.namespaceId);}}function br(o,t){o&1&&JC(0," \u23F3 ");}function xr(o,t){o&1&&JC(0," \u2705 ");}function vr(o,t){o&1&&JC(0," \u274C ");}function yr(o,t){o&1&&JC(0," Running ");}function wr(o,t){o&1&&JC(0," Completed ");}function Sr(o,t){o&1&&JC(0," Failed ");}function Mr(o,t){if(o&1&&(Cs$1(0,"time",81),JC(1),hl$1()),o&2){let e=CC(2).$implicit,n=CC(2);xg("title",n.formatMessageTimestampTitle(e.call.timestamp)),Ng("datetime",e.call.timestamp),sI(),em(n.formatMessageTime(e.call.timestamp));}}function Er(o,t){if(o&1&&(Cs$1(0,"div",95)(1,"span",96),JC(2,"Enrichment content"),hl$1(),Cs$1(3,"pre"),JC(4),hl$1()()),o&2){let e=CC().$implicit;sI(4),em(e.enrichmentContent);}}function Tr(o,t){if(o&1&&(Cs$1(0,"div",91)(1,"div",92)(2,"span",93),JC(3),hl$1(),Cs$1(4,"span",94),JC(5),hl$1()(),Cs$1(6,"div",95)(7,"span",96),JC(8,"Prompt"),hl$1(),Cs$1(9,"pre"),JC(10),hl$1()(),Cs$1(11,"div",95)(12,"span",96),JC(13,"LLM output"),hl$1(),Cs$1(14,"pre"),JC(15),hl$1()(),aC(16,Er,5,1,"div",95),hl$1()),o&2){let e=t.$implicit;qg("case-chat__enrichment-phase--failed",!e.success),sI(3),Dl("Phase ",e.phaseIndex),sI(2),em(e.success?"\u2705":"\u274C"),sI(5),em(e.prompt),sI(5),em(e.llmOutput),sI(),cC(e.enrichmentContent?16:-1);}}function kr(o,t){if(o&1&&dC(0,Tr,17,7,"div",90,Ha),o&2){let e=CC(4).$implicit;fC(e.call.enrichmentPhases);}}function Pr(o,t){o&1&&(Cs$1(0,"span",89),JC(1,"No enrichment trace was provided."),hl$1());}function Or(o,t){if(o&1&&(Cs$1(0,"div",84)(1,"span",86),JC(2,"Enrichment phases"),hl$1(),aC(3,kr,2,0)(4,Pr,2,0,"span",89),hl$1()),o&2){let e=CC(3).$implicit;sI(3),cC(e.call.enrichmentPhases?.length?3:4);}}function Ir(o,t){o&1&&JC(0," \xB7 Text ");}function Dr(o,t){if(o&1&&(Cs$1(0,"div",85)(1,"span",86),JC(2," Arguments "),aC(3,Ir,1,0),hl$1(),Cs$1(4,"pre"),JC(5),hl$1()()),o&2){let e=CC(3).$implicit,n=CC(2);sI(3),cC(n.isStructuredPayload(e.call.args)?-1:3),sI(),qg("case-chat__tool-call-code--text",!n.isStructuredPayload(e.call.args)),sI(),em(t);}}function Rr(o,t){o&1&&(Cs$1(0,"div",85)(1,"span",86),JC(2,"Duration"),hl$1(),Cs$1(3,"span"),JC(4),hl$1()()),o&2&&(sI(4),em(t));}function Vr(o,t){o&1&&JC(0," \xB7 Text ");}function Nr(o,t){if(o&1&&(Cs$1(0,"pre"),JC(1),hl$1()),o&2){let e=CC(3).$implicit,n=CC(2);qg("case-chat__tool-call-code--text",!n.isToolOutputStructured(e.call)),sI(),em(t);}}function Ar(o,t){o&1&&(Cs$1(0,"span",88),JC(1,"Running\u2026"),hl$1());}function Fr(o,t){o&1&&(Cs$1(0,"span",89),JC(1,"No output"),hl$1());}function qr(o,t){o&1&&JC(0," \xB7 Text ");}function Lr(o,t){if(o&1&&(Cs$1(0,"div",85)(1,"span",86),JC(2," Metadata "),aC(3,qr,1,0),hl$1(),Cs$1(4,"pre"),JC(5),hl$1()()),o&2){let e=CC(3).$implicit,n=CC(2);sI(3),cC(n.isToolMetadataStructured(e.call)?-1:3),sI(),qg("case-chat__tool-call-code--text",!n.isToolMetadataStructured(e.call)),sI(),em(t);}}function zr(o,t){if(o&1&&(Cs$1(0,"div",83),aC(1,Or,5,1,"div",84),aC(2,Dr,6,4,"div",85),aC(3,Rr,5,1,"div",85),Cs$1(4,"div",85)(5,"span",86),JC(6),aC(7,Vr,1,0),hl$1(),aC(8,Nr,2,3,"pre",87)(9,Ar,2,0,"span",88)(10,Fr,2,0,"span",89),hl$1(),aC(11,Lr,6,4,"div",85),hl$1()),o&2){let e,n,i,a,_=CC(2).$implicit,C=CC(2);sI(),cC(C.showTechnical()?1:-1),sI(),cC((e=C.formatToolArguments(_.call.args))?2:-1,e),sI(),cC((n=C.showTechnical()&&C.formatToolDuration(_.call))?3:-1,n),sI(3),Dl(" ",_.call.response?.success===false?"Error":"Output"," "),sI(),cC(C.isToolOutputStructured(_.call)?-1:7),sI(),cC((i=C.extractToolOutput(_.call))?8:_.call.response?10:9,i),sI(3),cC((a=C.showTechnical()&&C.formatToolMetadata(_.call))?11:-1,a);}}function Ur(o,t){if(o&1){let e=vC();Cs$1(0,"div",76)(1,"button",77),Lg("click",function(){Sf(e);let i=CC().$implicit,a=CC(2);return _f(a.toggleToolCall(i.call.requestId))}),Cs$1(2,"span",78),aC(3,br,1,0)(4,xr,1,0)(5,vr,1,0),hl$1(),Cs$1(6,"span",79),JC(7),hl$1(),Cs$1(8,"span",80),aC(9,yr,1,0)(10,wr,1,0)(11,Sr,1,0),hl$1(),aC(12,Mr,2,3,"time",81),Cs$1(13,"span",82),JC(14),hl$1()(),aC(15,zr,12,7,"div",83),hl$1();}if(o&2){let e=CC().$implicit,n=CC(2);qg("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),sI(),Ng("aria-expanded",n.isToolCallExpanded(e.call.requestId)),sI(2),cC(e.call.response?e.call.response.success?4:5:3),sI(4),em(e.call.toolName),sI(2),cC(e.call.response?e.call.response.success?10:11:9),sI(3),cC(e.call.timestamp?12:-1),sI(2),em(n.isToolCallExpanded(e.call.requestId)?"\u25BC":"\u25B6"),sI(),cC(n.isToolCallExpanded(e.call.requestId)?15:-1);}}function $r(o,t){if(o&1&&aC(0,cr,8,9,"div",49)(1,dr,4,2,"div",50)(2,pr,4,6,"div",51)(3,ur,4,2,"details",52)(4,Cr,2,1)(5,fr,1,2,"agentos-delegation-card",53)(6,Ur,16,13,"div",54),o&2){let e=t.$implicit;cC(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 Wr(o,t){if(o&1&&dC(0,$r,7,1,null,null,iC().trackTimelineItem,true),o&2){let e=CC();fC(e.timeline());}}function Br(o,t){o&1&&(Cs$1(0,"div",14),Ag(1,"span",97)(2,"span",97)(3,"span",97),hl$1());}function Hr(o,t){if(o&1){let e=vC();Cs$1(0,"div",15)(1,"ds-icon-button",98),Lg("action",function(){Sf(e);let i=CC();return _f(i.onScrollToBottomClick())}),hl$1()();}}function jr(o,t){if(o&1){let e=vC();Cs$1(0,"div",17)(1,"agentos-agent-autocomplete",99),Lg("selected",function(i){Sf(e);let a=CC();return _f(a.onAgentSelected(i))})("dismissed",function(){Sf(e);let i=CC();return _f(i.closeAtAutocomplete())}),hl$1()();}if(o&2){let e=CC();sI(),xg("agents",e.autocomplete.atSuggestions());}}function Gr(o,t){if(o&1){let e=vC();Cs$1(0,"div",17)(1,"agentos-prompt-autocomplete",100),Lg("selected",function(i){Sf(e);let a=CC();return _f(a.onPromptSelected(i))})("dismissed",function(){Sf(e);let i=CC();return _f(i.closeSlashAutocomplete())}),hl$1()();}if(o&2){let e=CC();sI(),xg("prompts",e.autocomplete.slashSuggestions());}}function Qr(o,t){if(o&1){let e=vC();Cs$1(0,"ds-icon-button",101),Lg("action",function(){Sf(e),CC();let i=AC(21);return _f(i.openPicker())}),hl$1();}if(o&2){let e=CC();xg("disabled",!e.canStageFiles());}}function Kr(o,t){if(o&1){let e=vC();Cs$1(0,"ds-icon-button",102),Lg("action",function(){Sf(e);let i=CC();return _f(i.interrupt())}),hl$1();}}function Yr(o,t){if(o&1){let e=vC();Cs$1(0,"ds-icon-button",103),Lg("action",function(){Sf(e);let i=CC();return _f(i.submit())}),hl$1();}if(o&2){let e=CC();xg("title",e.preferences.composerHint())("disabled",!e.canSend);}}var Jr=64;function _o(){let o=window.getSelection();return !!o&&o.toString().length>0}var Et=class o{route=g(V$2);http=g(vy);zone=g(G$6);destroyRef=g(Ce$1);markdown=g(We);exchangeState=g(de);config=g(y$1);preferences=g(f);caseState=g(ce);oauthService=g(h$1);exchangeOpen=Wi$1(false);exchangeFileCount=this.exchangeState.fileCount;attachments=g(ke);autocomplete=g(Te);canAttach=this.exchangeState.canWriteCase;canStageFiles=TT(()=>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=Wi$1(this.route.snapshot.queryParams.case);agentDisplayName=TT(()=>{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=oV("composerInput");messagesContainer=oV("messagesContainer");promptAutocompleteRef=oV(_e);agentAutocompleteRef=oV(ue);events=Wi$1([]);messageHtmlCache=new Map;inputValue=Wi$1("");isRunning=Wi$1(false);isTerminal=Wi$1(false);activeCase=TT(()=>this.caseState.cases().find(t=>t.id===this._activeCaseId())??null);_sseStatus=Wi$1("");caseStatus=TT(()=>this._sseStatus()||this.activeCase()?.status||"IDLE");confirmingDelete=Wi$1(false);drawerPanel=Wi$1("files");openFilesPanel(){this.drawerPanel.set("files"),this.exchangeOpen.set(true);}openMembersPanel(){this.drawerPanel.set("members"),this.exchangeOpen.set(true);}starToggled=tV();deleteRequested=tV();logsToggled=tV();updateRequested=tV();isEditing=Wi$1(false);draftTitle=Wi$1("");draftThreshold=Wi$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=nV(false);showTechnical=TT(()=>this.showTechnicalOverride());showToolCallsOverride=nV(true);showToolCalls=TT(()=>this.showToolCallsOverride());streamingText=Wi$1("");streamingHtml=TT(()=>{let t=this.streamingText();return t?this.renderMarkdown(t):""});namespaceTargeted=TT(()=>Mt(this.inputValue(),this.exchangeState.canWriteNamespace()));collapsedTools=Wi$1(new Set);isAtBottom=Wi$1(true);scrollListenerCleanup=null;constructor(){this.autocomplete.init(this.namespaceId),Wf(()=>{this.isRunning()||this.isTerminal()||queueMicrotask(()=>{this.isEditing()||_o()||this.composerInput()?.nativeElement.focus();});}),Wf(()=>{this.inputValue(),queueMicrotask(()=>this.resizeComposer());}),Wf(()=>{this.timeline(),this.streamingText(),this.isAtBottom()&&queueMicrotask(()=>{_o()||this.scrollToBottom();});}),PE(()=>{this.attachScrollListener(),this.resizeComposer();});}delegations=TT(()=>eo(this.events()));baseTimeline=TT(()=>{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,Y=a.get(L);a.set(L,{requestId:L,toolName:I.toolName??"unknown",args:I.args??null,timestamp:I.timestamp??Y?.timestamp,response:Y?.response,enrichmentPhases:I.enrichmentPhases??null});}else if(O.type==="ToolResponseEvent"){let I=O,L=I.toolRequestId??O.id,Y=a.get(L);a.set(L,{requestId:L,toolName:Y?.toolName??I.toolName??"unknown",args:Y?.args??null,timestamp:Y?.timestamp,response:I,enrichmentPhases:Y?.enrichmentPhases??null});}let _=[],C=new Set,y=new Set,D=null;for(let O of t)if(O.type==="MessageEvent"){let I=O,L=I.actor.role,Y=L!==D;D=L,_.push({kind:"message",event:I,html:this.messageHtmlCache.get(O.id)??"",isFirstInGroup:Y,isLastInGroup:false});}else if(O.type==="ToolRequestEvent"||O.type==="ToolResponseEvent"){let I=O.toolRequestId??O.id;if(!C.has(I)){C.add(I);let L=a.get(I);if(to(L.toolName,I,L.response,i))for(let Y of i.filter(vo=>vo.toolRequestId===I))y.has(Y.delegationId)||(y.add(Y.delegationId),_.push({kind:"delegation",delegation:Y}));else n&&_.push({kind:"tool",call:L});}D=null;}else if(O.type==="SubCaseStartedEvent"){let I=i.find(L=>L.delegationId===O.delegationId);I&&!y.has(I.delegationId)&&(y.add(I.delegationId),_.push({kind:"delegation",delegation:I})),D=null;}else if(O.type!=="SubCaseFinishedEvent"){if(O.type==="QuestionEvent"){let I=O,L=t.some(Y=>Y.type==="AnswerEvent"&&Y.questionId===I.id);_.push({kind:"question",event:I,answered:L});}else if(e&&!this.isEventConsumedElsewhere(O)){let I=this.toExecutionNotice(O);I?_.push({kind:"notice",notice:I,eventId:O.id}):_.push({kind:"technical",item:this.toTechnicalItem(O),eventId:O.id}),D=null;}}for(let O=0;O<_.length;O++){let I=_[O];if(I?.kind!=="message")continue;let L=_[O+1];I.isLastInGroup=L?.kind!=="message"||L.event.actor.role!==I.event.actor.role;}return _});timeline=TT(()=>{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<=Jr);};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(),_=i.type,C=i.data;console.log("[AgentOS SSE] frame received",{sseEventName:_,dataLength:C?.length??0,dataPreview:C?.slice(0,120),receivedAtMs:a});try{let y=JSON.parse(C);this.zone.run(()=>{if(this.events().some(I=>I.id===y.id)){y.type==="CaseStatusEvent"&&[...this.events()].reverse().find(L=>L.type==="CaseStatusEvent"||L.type==="AgentFinishedEvent")?.id===y.id&&this.isRunning.set(y.status==="RUNNING");return}let D=this.events().length;if(y.type==="MessageEvent"){let I=y,L=this.extractText(I);this.messageHtmlCache.has(y.id)||this.messageHtmlCache.set(y.id,this.renderMarkdown(L)),I.actor.role==="AGENT"&&this.caseState.notifyAgentMessageEvent(I);}this.events.update(I=>[...I,y]);let O=this.events().length;if(console.log("[AgentOS SSE] event processed",{sseEventName:_,eventType:y.type,eventId:y.id,beforeLen:D,afterLen:O,running:this.isRunning(),terminal:this.isTerminal()}),y.type==="TextChunkEvent"){let I=y.chunk;I&&this.streamingText.update(L=>L+I);return}if(y.type==="CaseUpdatedEvent"){let I=y;I.title&&this.caseState.updateCaseTitle(y.caseId,I.title);return}if(y.type==="CaseStatusEvent"){let I=y.status;this._sseStatus.set(I),this.caseState.updateCaseStatus(y.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 Y=I==="RUNNING";this.isRunning.set(Y),Y||this.streamingText.set("");}return}if(y.type==="AgentFinishedEvent"){this.isRunning.set(!1),this.streamingText.set(""),this.anyToolResponseThisTurn&&this.exchangeState.refreshManifest(),this.anyToolResponseThisTurn=!1;return}if(y.type==="ToolResponseEvent"){this.anyToolResponseThisTurn=!0;let I=lo(y.toolName);I==="case"?this.exchangeState.refreshCase():I==="namespace"&&this.exchangeState.refreshNamespace();return}if(y.type==="QuestionEvent"){let I=y;I.questionType==="OAUTH_AUTHORIZE"&&this.oauthService.setPendingQuestion(I);return}});}catch(y){console.warn("[AgentOS SSE] failed to parse event data",{sseEventName:_,error:y,dataPreview:C?.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 dt$1(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=Ke(t,this.exchangeState.canWriteNamespace()),i=yield this.attachments.uploadAllAndBuildMention(n);if(i===null||this.caseId!==e)return;(yield this.postMessage(t?`${t}
|
|
4
|
+
|
|
5
|
+
${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(""),Qy(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,`
|
|
6
|
+
`).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,`
|
|
7
|
+
`).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=Te$1;static \u0275fac=function(e){return new(e||o)};static \u0275cmp=jw({type:o,selectors:[["agentos-case-chat"]],viewQuery:function(e,n){e&1&&$g(n.composerInput,Wa,5)(n.messagesContainer,Ba,5)(n.promptAutocompleteRef,_e,5)(n.agentAutocompleteRef,ue,5),e&2&&xC(4);},inputs:{showTechnicalOverride:[1,"showTechnicalOverride"],showToolCallsOverride:[1,"showToolCallsOverride"]},outputs:{starToggled:"starToggled",deleteRequested:"deleteRequested",logsToggled:"logsToggled",updateRequested:"updateRequested"},features:[lT([ke,Te])],decls:30,vars:20,consts:[["messagesContainer",""],["attachmentsUi",""],["composerInput",""],["position","end","drawerWidth","400px",3,"openChange","open","mobileFullWidth"],["dsDrawerSide","",1,"case-chat__drawer-side"],[3,"caseId"],["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"],["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=vC();Cs$1(0,"ds-drawer",3),sm("openChange",function(_){return Sf(i),iT(n.exchangeOpen,_)||(n.exchangeOpen=_),_f(_)}),Cs$1(1,"div",4),aC(2,ja,1,1,"agentos-case-members",5)(3,Ga,1,0,"agentos-exchange-shell"),hl$1(),Cs$1(4,"div",6)(5,"header",7),aC(6,Qa,9,2,"div",8)(7,Za,14,16),hl$1(),aC(8,er,1,3,"agentos-case-usage",9),Cs$1(9,"div",10),Lg("dragenter",function(_){return n.canStageFiles()&&n.attachments.onDragEnter(_)})("dragover",function(_){return n.canStageFiles()&&n.attachments.onDragOver(_)})("dragleave",function(){return n.attachments.onDragLeave()})("drop",function(_){return n.canStageFiles()&&n.attachments.onDrop(_)}),aC(10,tr,5,0,"div",11),Cs$1(11,"div",12,0),aC(13,nr,3,0,"div",13)(14,Wr,2,0),aC(15,Br,4,0,"div",14),hl$1(),aC(16,Hr,2,0,"div",15),Cs$1(17,"div",16),aC(18,jr,2,1,"div",17),aC(19,Gr,2,1,"div",17),Cs$1(20,"agentos-composer-attachments",18,1),Lg("removed",function(_){return n.attachments.remove(_)})("filesSelected",function(_){return n.attachments.addFiles(_)}),hl$1(),Cs$1(22,"textarea",19,2),Lg("input",function(_){return n.onInput(_)})("keydown",function(_){return n.onKeydown(_)}),hl$1(),Cs$1(24,"div",20),aC(25,Qr,1,1,"ds-icon-button",21),Cs$1(26,"span",22),JC(27),hl$1(),aC(28,Kr,1,0,"ds-icon-button",23)(29,Yr,1,2,"ds-icon-button",24),hl$1()()()()();}e&2&&(im("open",n.exchangeOpen),xg("mobileFullWidth",true),sI(2),cC(n.drawerPanel()==="members"?2:3),sI(4),cC(n.isEditing()?6:7),sI(2),cC(n.caseId?8:-1),sI(2),cC(n.attachments.isDragOver()?10:-1),sI(3),cC(n.timeline().length===0?13:14),sI(2),cC(n.isRunning()?15:-1),sI(),cC(n.isAtBottom()?-1:16),sI(2),cC(n.autocomplete.atSuggestions().length>0?18:-1),sI(),cC(n.autocomplete.slashSuggestions().length>0?19:-1),sI(),xg("attachments",n.attachments.attachments())("namespaceBadge",n.namespaceTargeted())("limitError",n.attachments.limitError())("disabled",n.attachments.isUploading()),sI(2),xg("value",n.inputValue())("disabled",n.isRunning()||n.isTerminal()||n.attachments.isUploading()),sI(3),cC(n.canAttach()?25:-1),sI(2),em(n.preferences.composerHint()),sI(),cC(n.isRunning()?28:29));},dependencies:[Se$1,mt,Jn$2,vt,wt,_e,ue,Kn,Ee,Un,Be,pt,ut,Ub],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 Xr=["composerInput"];function Zr(o,t){o&1&&(Cs$1(0,"div",3)(1,"span",19),JC(2,"upload_file"),hl$1(),Cs$1(3,"span"),JC(4,"Drop files to attach"),hl$1()());}function es(o,t){if(o&1&&(Cs$1(0,"div",6),JC(1),hl$1()),o&2){let e=CC();sI(),Dl("Namespace \xB7 ",e.namespaceName()??e.namespaceId);}}function ts(o,t){if(o&1){let e=vC();Cs$1(0,"button",20),Lg("click",function(){Sf(e);let i=CC();return _f(i.returnToParent())}),Cs$1(1,"span",21),JC(2,"subdirectory_arrow_right"),hl$1(),JC(3),hl$1();}if(o&2){let e=CC();sI(3),Dl(" Parent case: ",e.parentCaseTitle()," ");}}function ns(o,t){if(o&1&&(Cs$1(0,"p",10),JC(1),hl$1()),o&2){let e=CC();sI(),em(e.submitError());}}function os(o,t){if(o&1){let e=vC();Cs$1(0,"div",11)(1,"agentos-agent-autocomplete",22),Lg("selected",function(i){Sf(e);let a=CC();return _f(a.onAgentSelected(i))})("dismissed",function(){Sf(e);let i=CC();return _f(i.closeAtAutocomplete())}),hl$1()();}if(o&2){let e=CC();sI(),xg("agents",e.autocomplete.atSuggestions());}}function is(o,t){if(o&1){let e=vC();Cs$1(0,"div",11)(1,"agentos-prompt-autocomplete",23),Lg("selected",function(i){Sf(e);let a=CC();return _f(a.onPromptSelected(i))})("dismissed",function(){Sf(e);let i=CC();return _f(i.closeSlashAutocomplete())}),hl$1()();}if(o&2){let e=CC();sI(),xg("prompts",e.autocomplete.slashSuggestions());}}var Tt=class o{caseApi=g(K$2);workspaces=g(pe);router=g(G$5);route=g(V$2);caseState=g(ce);destroyRef=g(Ce$1);preferences=g(f);namespaceName=nV(null);exchangeState=g(de);attachments=g(ke);autocomplete=g(Te);composerInput=oV("composerInput");promptAutocompleteRef=oV(_e);agentAutocompleteRef=oV(ue);namespaceId=this.route.snapshot.queryParams.ns;parentCaseId=Wi$1(this.route.snapshot.queryParams.parentCase??null);parentCaseTitle=TT(()=>{let t=this.parentCaseId();return t?this.caseState.cases().find(e=>e.id===t)?.title||t:null});creationContext=0;creationChanged=new ue$4;inputValue=Wi$1("");isCreating=Wi$1(false);submitError=Wi$1("");pendingCaseId=Wi$1(null);destroyed=false;namespaceTargeted=TT(()=>Mt(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),Wf(()=>{this.inputValue();let t=this.composerInput()?.nativeElement;t&&queueMicrotask(()=>this.resizeComposer(t));}),PE(()=>{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 dt$1(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 C=yield Qy(this.caseApi.createCase(z$2(P({namespaceId:e},n?{parentCaseId:n}:{}),{status:"PENDING",favorite:!1,removed:!1})));if(this.abandoned(i))return;this.caseState.addCase(C),a=C.id??"",this.pendingCaseId.set(a);}if(this.abandoned(i))return;if(this.attachments.hasAttachments()){let C=yield Qy(this.workspaces.watch(a).pipe(kt$1(({view:D})=>!D?.equipped||D.status!=="REQUESTED"&&D.status!=="PREPARING"),Md({first:12e4,with:()=>qy(()=>new Error("Workspace preparation is still in progress. Your message and attachments are saved here. Retry shortly to continue with the same case."))}),_d(this.creationChanged),U$3(this.destroyRef))),y=!C.view||C.view.equipped&&C.view.status!=="READY";if(!Ut(C)&&y)throw new Error(C.view?.failureReason||"Workspace is not ready. Retry this submission shortly.");if(this.abandoned(i))return}let _=t;if(this.attachments.hasAttachments()){this.exchangeState.initializeForCase(e,a);let C=Ke(t,this.exchangeState.canWriteNamespace()),y=yield this.attachments.uploadAllAndBuildMention(C);if(y===null||this.abandoned(i))return;_=_?`${_}
|
|
8
|
+
|
|
9
|
+
${y}`:y;}if(yield Qy(this.caseApi.addMessageCase(a,{content:_})),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=jw({type:o,selectors:[["agentos-case-home"]],viewQuery:function(e,n){e&1&&$g(n.composerInput,Xr,5)(n.promptAutocompleteRef,_e,5)(n.agentAutocompleteRef,ue,5),e&2&&xC(3);},inputs:{namespaceName:[1,"namespaceName"]},features:[lT([ke,Te])],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=vC();Cs$1(0,"div",2),Lg("dragenter",function(_){return !n.isCreating()&&n.attachments.onDragEnter(_)})("dragover",function(_){return !n.isCreating()&&n.attachments.onDragOver(_)})("dragleave",function(){return n.attachments.onDragLeave()})("drop",function(_){return !n.isCreating()&&n.attachments.onDrop(_)}),aC(1,Zr,5,0,"div",3),Cs$1(2,"div",4)(3,"div",5),aC(4,es,2,1,"div",6),aC(5,ts,4,1,"button",7),Cs$1(6,"h1",8),JC(7),hl$1()(),Cs$1(8,"div",9),aC(9,ns,2,1,"p",10),aC(10,os,2,1,"div",11),aC(11,is,2,1,"div",11),Cs$1(12,"agentos-composer-attachments",12,0),Lg("removed",function(_){return n.attachments.remove(_)})("filesSelected",function(_){return n.attachments.addFiles(_)}),hl$1(),Cs$1(14,"textarea",13,1),Lg("input",function(_){return n.onInput(_)})("keydown",function(_){return n.onKeydown(_)}),hl$1(),Cs$1(16,"div",14)(17,"div",15)(18,"ds-icon-button",16),Lg("action",function(){Sf(i);let _=AC(13);return _f(_.openPicker())}),hl$1(),Cs$1(19,"span",17),JC(20),hl$1()(),Cs$1(21,"ds-icon-button",18),Lg("action",function(){return n.submit()}),hl$1()()()()();}e&2&&(sI(),cC(n.attachments.isDragOver()?1:-1),sI(3),cC(n.namespaceId?4:-1),sI(),cC(n.parentCaseId()?5:-1),sI(2),em(n.parentCaseId()?"New sub-case":"What can I help you with?"),sI(2),cC(n.submitError()?9:-1),sI(),cC(n.autocomplete.atSuggestions().length>0?10:-1),sI(),cC(n.autocomplete.slashSuggestions().length>0?11:-1),sI(),xg("attachments",n.attachments.attachments())("namespaceBadge",n.namespaceTargeted())("limitError",n.attachments.limitError())("disabled",n.attachments.isUploading()),sI(2),xg("value",n.inputValue())("disabled",n.isCreating()),sI(4),xg("disabled",n.isCreating()),sI(2),em(n.preferences.composerHint()),sI(),xg("title",n.parentCaseId()?"Start sub-case":"Start case")("disabled",!n.canSend));},dependencies:[Kn,Se$1,_e,ue,Be],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})};var kt=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=jw({type:o,selectors:[["agentos-case-item"]],inputs:{case:"case"},decls:0,vars:0,template:function(e,n){},encapsulation:2})};var rs=["renameInput"],ss=["caseRowTpl"],ls=o=>({node:o,depth:0}),cs=(o,t)=>({node:o,depth:t}),Ht=(o,t)=>t.id;function ds(o,t){if(o&1&&Ag(0,"div",5),o&2){let e=CC().$implicit;Ng("title",e.groupLabel??"");}}function ms(o,t){if(o&1){let e=vC();aC(0,ds,1,1,"div",5),Cs$1(1,"button",6),Lg("click",function(){let i=Sf(e).$implicit,a=CC(2);return _f(a.onItemSelected(i.id))})("mouseenter",function(i){let a=Sf(e).$implicit,_=CC(2);return _f(_.onCompactBadgeEnter(i,a))})("mouseleave",function(i){Sf(e);let a=CC(2);return _f(a.onCompactBadgeLeave(i))}),Ag(2,"agentos-case-status-glyph",7),hl$1();}if(o&2){let e=t.$implicit,n=CC(2);cC(e.isFirstInCompactGroup&&e.groupKey?0:-1),sI(),qg("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),Ng("aria-label",e.name+" \u2014 "+e.status),sI(),xg("status",e.status)("size",16);}}function ps(o,t){if(o&1){let e=vC();Cs$1(0,"button",17),Lg("click",function(i){Sf(e);let a=CC(2);return CC(2).subCaseCreateRequested.emit(a.id),_f(i.stopPropagation())}),Bf(),Cs$1(1,"svg",18),Ag(2,"path",19),hl$1()();}}function _s(o,t){if(o&1){let e=vC();Cs$1(0,"button",20),Lg("click",function(){Sf(e);let i=CC(2),a=CC(2);return _f(a.compactConfirmingDeleteId.set(i.id))}),Bf(),Cs$1(1,"svg",21),Ag(2,"path",22)(3,"line",23)(4,"line",24),hl$1()();}}function us(o,t){if(o&1){let e=vC();aC(0,ps,3,0,"button",12),Cs$1(1,"button",13),Lg("click",function(){Sf(e);let i=CC(),a=CC(2);return _f(a.onStarToggled(i))}),Bf(),Cs$1(2,"svg",14),Ag(3,"path",15),hl$1()(),aC(4,_s,5,0,"button",16);}if(o&2){let e=CC();cC(e.canCreateSubCase?0:-1),sI(),qg("case-drawer-compact__tooltip-btn--active",e.favorite),xg("title",e.favorite?"Remove from favorites":"Add to favorites"),sI(),Ng("fill",e.favorite?"currentColor":"none"),sI(2),cC(e.canDelete?4:-1);}}function gs(o,t){if(o&1){let e=vC();Cs$1(0,"button",25),Lg("click",function(){Sf(e);let i=CC(),a=CC(2);return a.onDeleteRequested(i.id),a.compactConfirmingDeleteId.set(null),_f(a.hoveredCompactItem.set(null))}),Bf(),Cs$1(1,"svg",26),Ag(2,"path",27),hl$1(),JC(3," Delete "),hl$1(),Vf(),Cs$1(4,"button",28),Lg("click",function(){Sf(e);let i=CC(3);return _f(i.compactConfirmingDeleteId.set(null))}),Bf(),Cs$1(5,"svg",29),Ag(6,"path",30)(7,"path",31),hl$1()();}}function hs(o,t){if(o&1){let e=vC();Cs$1(0,"div",8),Lg("mouseleave",function(i){Sf(e);let a=CC(2);return _f(a.onTooltipLeave(i))})("mouseenter",function(){Sf(e);let i=CC(2);return _f(i.onTooltipEnter())}),Cs$1(1,"span",9),JC(2),hl$1(),Cs$1(3,"span",10),JC(4),hl$1(),Cs$1(5,"span",11),aC(6,us,5,6)(7,gs,8,0),hl$1()();}if(o&2){let e=t,n=CC(2);Wg("top",n.tooltipPos().top,"px")("left",n.tooltipPos().left,"px"),sI(2),em(e.name),sI(),qg("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),sI(),em(e.status.toLowerCase()),sI(2),cC(n.compactConfirmingDeleteId()!==e.id?6:7);}}function Cs(o,t){if(o&1&&(Cs$1(0,"div",3),dC(1,ms,3,14,null,null,Ht),hl$1(),aC(3,hs,8,15,"div",4)),o&2){let e,n=CC();sI(),fC(n.compactItems()),sI(2),cC((e=n.hoveredCompactItem())?3:-1,e);}}function fs(o,t){o&1&&(Cs$1(0,"p",32),JC(1,"No cases yet. Start one with the + button above."),hl$1());}function bs(o,t){if(o&1&&(Cs$1(0,"div",33),JC(1),hl$1()),o&2){let e=CC().$implicit;sI(),em(e.groupLabel);}}function xs(o,t){if(o&1&&(aC(0,bs,2,1,"div",33),kg(1,34)),o&2){let e=t.$implicit,n=CC(3),i=AC(3);cC(n.isFirstInGroup(e,n.displayItems())?0:-1),sI(),xg("ngTemplateOutlet",i)("ngTemplateOutletContext",fT(3,ls,e));}}function vs(o,t){if(o&1&&dC(0,xs,2,5,null,null,Ht),o&2){let e=CC(2);fC(e.displayItems());}}function ys(o,t){if(o&1&&(Cs$1(0,"div",2),aC(1,fs,2,0,"p",32)(2,vs,2,0),hl$1()),o&2){let e=CC();sI(),cC(e.displayItems().length===0?1:2);}}function ws(o,t){if(o&1){let e=vC();Cs$1(0,"button",43),Lg("click",function(i){Sf(e);let a=CC().node,_=CC();return _f(_.toggleExpand(i,a.id))}),Bf(),Cs$1(1,"svg",44),Ag(2,"path",45),hl$1()();}if(o&2){let e=CC().node,n=CC();xg("title",n.isExpanded(e.id)?"Collapse":"Expand"),sI(),Wg("transform",n.isExpanded(e.id)?"rotate(90deg)":"rotate(0)");}}function Ss(o,t){if(o&1&&Ag(0,"agentos-case-status-glyph",7),o&2){let e=CC().node;xg("status",e.status)("size",15);}}function Ms(o,t){if(o&1&&(Cs$1(0,"p",47),JC(1),hl$1()),o&2){let e=CC(2).node;xg("id","rename-error-"+e.id),sI(),em(t);}}function Es(o,t){if(o&1){let e=vC();Cs$1(0,"div",38)(1,"input",46,1),Lg("click",function(i){return i.stopPropagation()})("input",function(i){Sf(e);let a=CC(2);return _f(a.onRenameInput(i.target.value))})("keydown",function(i){Sf(e);let a=CC(2);return _f(a.onRenameKeydown(i))})("blur",function(){Sf(e);let i=CC(2);return _f(i.onRenameBlur())}),hl$1(),aC(3,Ms,2,2,"p",47),hl$1();}if(o&2){let e,n=CC().node,i=CC();sI(),xg("value",i.editingTitle()),Ng("aria-invalid",i.renameError()?"true":null)("aria-describedby",i.renameError()?"rename-error-"+n.id:null),sI(2),cC((e=i.renameError())?3:-1,e);}}function Ts(o,t){if(o&1){let e=vC();Cs$1(0,"button",48),Lg("click",function(){Sf(e);let i=CC().node,a=CC();return _f(a.onItemSelected(i.id))}),Cs$1(1,"span",49),JC(2),hl$1()();}if(o&2){let e=CC().node;sI(2),em(e.name);}}function ks(o,t){if(o&1){let e=vC();Cs$1(0,"button",55),Lg("click",function(i){Sf(e);let a=CC(2).node;return CC().subCaseCreateRequested.emit(a.id),_f(i.stopPropagation())}),Bf(),Cs$1(1,"svg",18),Ag(2,"path",19),hl$1()();}}function Ps(o,t){if(o&1){let e=vC();Cs$1(0,"button",56),Lg("click",function(i){Sf(e);let a=CC(2).node;return CC().startRename(a),_f(i.stopPropagation())}),Bf(),Cs$1(1,"svg",18),Ag(2,"path",57)(3,"path",58),hl$1()();}}function Os(o,t){if(o&1){let e=vC();Cs$1(0,"button",59),Lg("click",function(i){Sf(e);let a=CC(2).node;return CC().expandedConfirmingDeleteId.set(a.id),_f(i.stopPropagation())}),Bf(),Cs$1(1,"svg",18),Ag(2,"path",22)(3,"line",23)(4,"line",24),hl$1()();}}function Is(o,t){if(o&1){let e=vC();aC(0,ks,3,0,"button",50),Cs$1(1,"button",51),Lg("click",function(i){Sf(e);let a=CC().node;return CC().onStarToggled(a),_f(i.stopPropagation())}),Bf(),Cs$1(2,"svg",52),Ag(3,"path",15),hl$1()(),aC(4,Ps,4,0,"button",53),aC(5,Os,5,0,"button",54);}if(o&2){let e=CC().node;cC(e.canCreateSubCase?0:-1),sI(),qg("case-tree-node__action-btn--active",e.favorite),xg("title",e.favorite?"Remove from favorites":"Add to favorites"),sI(),Ng("fill",e.favorite?"currentColor":"none"),sI(2),cC(e.canRename?4:-1),sI(),cC(e.canDelete?5:-1);}}function Ds(o,t){if(o&1){let e=vC();Cs$1(0,"button",60),Lg("click",function(i){Sf(e);let a=CC().node,_=CC();return _.onDeleteRequested(a.id),_.expandedConfirmingDeleteId.set(null),_f(i.stopPropagation())}),Bf(),Cs$1(1,"svg",26),Ag(2,"path",27),hl$1(),JC(3," Delete "),hl$1(),Vf(),Cs$1(4,"button",61),Lg("click",function(i){return Sf(e),CC(2).expandedConfirmingDeleteId.set(null),_f(i.stopPropagation())}),Bf(),Cs$1(5,"svg",29),Ag(6,"path",30)(7,"path",31),hl$1()();}}function Rs(o,t){if(o&1&&kg(0,34),o&2){let e=t.$implicit,n=CC(2).depth;CC();let i=AC(3);xg("ngTemplateOutlet",i)("ngTemplateOutletContext",pT(2,cs,e,n+1));}}function Vs(o,t){if(o&1&&dC(0,Rs,1,5,"ng-container",34,Ht),o&2){let e=CC().node;fC(e.children);}}function Ns(o,t){if(o&1&&(Cs$1(0,"div",35)(1,"div",36),aC(2,ws,3,3,"button",37)(3,Ss,1,2,"agentos-case-status-glyph",7),aC(4,Es,4,4,"div",38)(5,Ts,3,1,"button",39),Cs$1(6,"span",40)(7,"span",41),JC(8),hl$1()(),Cs$1(9,"span",42),aC(10,Is,6,7)(11,Ds,8,0),hl$1()(),aC(12,Vs,2,0),hl$1()),o&2){let e=t.node,n=t.depth,i=CC();Wg("--depth",n),sI(),qg("case-tree-node__row--active",e.id===i.activeCaseId())("case-tree-node__row--editing",i.editingCaseId()===e.id),sI(),cC(e.children?.length?2:3),sI(2),cC(i.editingCaseId()===e.id?4:5),sI(3),qg("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),sI(),em(e.status.toLowerCase()),sI(2),cC(i.expandedConfirmingDeleteId()!==e.id?10:11),sI(2),cC(!i.isSearchActive()&&i.isExpanded(e.id)&&e.children?.length?12:-1);}}var Pt=class o{cases=nV([]);activeCaseId=nV(null);compact=nV(false);filterQuery=nV("");caseSelected=tV();createRequested=tV();subCaseCreateRequested=tV();deleteRequested=tV();starToggled=tV();renameRequested=tV();caseRowTpl;searchQuery=Wi$1("");activeQuery=TT(()=>this.filterQuery().trim()||this.searchQuery().trim());isSearchActive=TT(()=>this.activeQuery().length>0);rootItems=TT(()=>{let t=this.cases(),e=new Map(t.map(n=>[n.id??"",n.modified??n.created??""]));return qs(Fs(t),e)});compactItems=TT(()=>(this.isSearchActive()?this.flatFilteredItems():this.rootItems()).map((e,n,i)=>z$2(P({},e),{initials:As(e.name),isFirstInCompactGroup:n===0||e.groupKey!==i[n-1]?.groupKey})));flatFilteredItems=TT(()=>{let t=this.activeQuery().toLowerCase();return t?Co(this.rootItems(),t):[]});displayItems=TT(()=>this.isSearchActive()?this.flatFilteredItems():this.rootItems());autoExpandedIds=TT(()=>{let t=this.activeCaseId();if(!t)return new Set;let e=new Set;return fo(this.rootItems(),t,e),e});hoveredCompactItem=Wi$1(null);tooltipPos=Wi$1({top:0,left:0});compactConfirmingDeleteId=Wi$1(null);expandedConfirmingDeleteId=Wi$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=Wi$1(new Map);editingCaseId=Wi$1(null);editingTitle=Wi$1("");renameError=Wi$1(null);renameOriginal="";renameInput=oV("renameInput");selectedForId=null;constructor(){uV(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&&(go(this.editingTitle().trim())?this.cancelRename():this.commitRename());}commitRename(){let t=this.editingCaseId();if(!t)return;let e=this.editingTitle().trim(),n=go(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=Re$1;static \u0275fac=function(e){return new(e||o)};static \u0275cmp=jw({type:o,selectors:[["agentos-case-drawer"]],viewQuery:function(e,n){if(e&1&&($g(n.renameInput,rs,5),Hg(ss,7)),e&2){xC();let i;MC(i=NC())&&(n.caseRowTpl=i.first);}},inputs:{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"],[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&&(aC(0,Cs,4,1)(1,ys,3,1,"div",2),bg(2,Ns,13,19,"ng-template",null,0,ET)),e&2&&cC(n.compact()?0:1);},dependencies:[kb,Ee],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}']})},uo=200;function go(o){return o?o.length>uo?`Name is too long (max ${uo} characters)`:null:"Name cannot be empty"}function As(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 Fs(o){let t=new Set(o.map(C=>C.id??"")),e=new Map(o.map(C=>[C.id??"",C.modified??C.created??""])),n=C=>z$2(P({},kt.toListItem(C)),{description:C.id??"",status:C.status??"IDLE",canCreateSubCase:!C.parentCaseId&&C.role==="ADMIN",children:[]}),i=new Map;for(let C of o)i.set(C.id??"",n(C));let a=[];for(let C of o){let y=i.get(C.id??""),D=C.parentCaseId;D&&t.has(D)?i.get(D).children.push(y):a.push(y);}let _=C=>C.sort((y,D)=>(e.get(D.id)??"")>(e.get(y.id)??"")?1:-1).map(y=>z$2(P({},y),{children:_(y.children)}));return _(a)}function qs(o,t){let e=[],n=[];for(let y of o){let D=ho(y,e);D&&n.push(D);}for(let y of e)y.groupKey="favorites",y.groupLabel="Favorites";let i=new Date,a=new Date(i.getFullYear(),i.getMonth(),i.getDate()),_=new Date(a.getTime()-864e5),C=new Date(a.getTime()-6*864e5);for(let y of n){let D=t.get(y.id)??"",O=D?new Date(D):null;O&&O>=a?(y.groupKey="today",y.groupLabel="Today"):O&&O>=_?(y.groupKey="yesterday",y.groupLabel="Yesterday"):O&&O>=C?(y.groupKey="week",y.groupLabel="Previous 7 days"):(y.groupKey="older",y.groupLabel="Older");}return [...e,...n]}function ho(o,t){if(o.favorite)return t.push(P({},o)),null;let e=[];for(let n of o.children){let i=ho(n,t);i&&e.push(i);}return z$2(P({},o),{children:e})}function Co(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(...Co(n.children,t)),e),[])}function fo(o,t,e){for(let n of o){if(n.id===t)return true;if(n.children.length&&fo(n.children,t,e))return e.add(n.id),true}return false}var Ls=["compactSearchInput"],bo=(o,t)=>t.id;function zs(o,t){o&1&&(Bf(),Cs$1(0,"svg",35),Ag(1,"path",36),hl$1());}function Us(o,t){if(o&1){let e=vC();Cs$1(0,"button",32),Lg("click",function(){let i=Sf(e).$implicit,a=CC(3);return _f(a.namespaceSelected.emit(i))}),Cs$1(1,"span",33),JC(2),hl$1(),Cs$1(3,"span",34),JC(4),hl$1(),aC(5,zs,2,0,":svg:svg",35),hl$1();}if(o&2){let e=t.$implicit,n=CC(3);qg("shell-sidebar__ns-item--active",e.id===n.selectedNamespace()?.id),sI(2),em(n.nsInitial(e.name)),sI(2),em(e.name),sI(),cC(e.id===n.selectedNamespace()?.id?5:-1);}}function $s(o,t){if(o&1&&(Cs$1(0,"div",13),dC(1,Us,6,5,"button",31,bo),hl$1()),o&2){let e=CC(2);sI(),fC(e.namespaces());}}function Ws(o,t){if(o&1){let e=vC();Cs$1(0,"div",2)(1,"div",3)(2,"button",4),Lg("click",function(){Sf(e);let i=CC();return _f(i.homeClicked.emit())}),Ag(3,"img",5),hl$1(),Cs$1(4,"div",6)(5,"div",7)(6,"button",8),Lg("click",function(){Sf(e);let i=CC();return _f(i.nsMenuToggled.emit())}),Cs$1(7,"span",9),JC(8),hl$1(),Cs$1(9,"span",10),JC(10),hl$1(),Bf(),Cs$1(11,"svg",11),Ag(12,"path",12),hl$1()(),aC(13,$s,3,0,"div",13),hl$1()()(),Vf(),Cs$1(14,"div",14)(15,"button",15),Lg("click",function(){Sf(e);let i=CC();return _f(i.createRequested.emit())}),Bf(),Cs$1(16,"svg",16),Ag(17,"path",17),hl$1(),JC(18," New case "),hl$1(),Vf(),Cs$1(19,"input",18),Lg("input",function(i){Sf(e);let a=CC();return _f(a.caseFilter.set(i.target.value))}),hl$1()()(),Cs$1(20,"div",19)(21,"agentos-case-drawer",20),Lg("caseSelected",function(i){Sf(e);let a=CC();return _f(a.caseSelected.emit(i))})("createRequested",function(){Sf(e);let i=CC();return _f(i.createRequested.emit())})("subCaseCreateRequested",function(i){Sf(e);let a=CC();return _f(a.subCaseCreateRequested.emit(i))})("deleteRequested",function(i){Sf(e);let a=CC();return _f(a.deleteRequested.emit(i))})("starToggled",function(i){Sf(e);let a=CC();return _f(a.starToggled.emit(i))})("renameRequested",function(i){Sf(e);let a=CC();return _f(a.renameRequested.emit(i))}),hl$1()(),Cs$1(22,"div",21)(23,"div",22)(24,"button",23),Lg("click",function(i){Sf(e);let a=CC();return _f(a.menuToggled.emit(i))}),Cs$1(25,"span",24),JC(26),hl$1(),Cs$1(27,"span",25)(28,"span",26),JC(29),hl$1()(),Bf(),Cs$1(30,"svg",16),Ag(31,"path",27),hl$1()(),Vf(),Cs$1(32,"agentos-shell-user-menu",28),Lg("navigateTo",function(i){Sf(e);let a=CC();return _f(a.navigateTo.emit(i))})("themeToggled",function(){Sf(e);let i=CC();return _f(i.themeToggled.emit())})("themeVariantChanged",function(i){Sf(e);let a=CC();return _f(a.themeVariantChanged.emit(i))})("logsToggled",function(){Sf(e);let i=CC();return _f(i.logsToggled.emit())})("toolCallsToggled",function(){Sf(e);let i=CC();return _f(i.toolCallsToggled.emit())})("closed",function(i){Sf(e);let a=CC();return _f(a.menuClosed.emit(i))}),hl$1()(),Cs$1(33,"button",29),Lg("click",function(){Sf(e);let i=CC();return _f(i.toggleCompact())}),Bf(),Cs$1(34,"svg",16),Ag(35,"path",30),hl$1()()();}if(o&2){let e=CC();qg("shell-sidebar__top--wide",e.effectiveWidth()>=400),sI(6),qg("shell-sidebar__ns-trigger--open",e.nsMenuOpen()),sI(2),em(e.nsInitial(e.selectedNamespace()?.name)),sI(2),em(e.selectedNamespace()?.name??"Select namespace"),sI(3),cC(e.nsMenuOpen()?13:-1),sI(),qg("shell-sidebar__bottom-row--wide",e.effectiveWidth()>=400),sI(5),xg("value",e.caseFilter()),sI(2),xg("cases",e.cases())("activeCaseId",e.activeCaseId())("compact",false)("filterQuery",e.caseFilter()),sI(5),em(e.userInitials()||"??"),sI(3),em(e.userName()),sI(3),xg("open",e.menuOpen())("isAdmin",e.isAdmin())("isDark",e.isDark())("themeVariant",e.themeVariant())("showTechnical",e.showTechnical())("showToolCalls",e.showToolCalls());}}function Bs(o,t){o&1&&(Bf(),Cs$1(0,"svg",35),Ag(1,"path",36),hl$1());}function Hs(o,t){if(o&1){let e=vC();Cs$1(0,"button",32),Lg("click",function(){let i=Sf(e).$implicit,a=CC(4);return _f(a.onCompactNsSelected(i))}),Cs$1(1,"span",33),JC(2),hl$1(),Cs$1(3,"span",34),JC(4),hl$1(),aC(5,Bs,2,0,":svg:svg",35),hl$1();}if(o&2){let e=t.$implicit,n=CC(4);qg("shell-sidebar__ns-item--active",e.id===n.selectedNamespace()?.id),sI(2),em(n.nsInitial(e.name)),sI(2),em(e.name),sI(),cC(e.id===n.selectedNamespace()?.id?5:-1);}}function js(o,t){if(o&1){let e=vC();Cs$1(0,"div",52),Lg("click",function(){Sf(e);let i=CC(3);return _f(i.closeCompactNsMenu())})("keyup.escape",function(){Sf(e);let i=CC(3);return _f(i.closeCompactNsMenu())}),hl$1(),Cs$1(1,"div",53),dC(2,Hs,6,5,"button",31,bo),hl$1();}if(o&2){let e=CC(3);sI(),Wg("top",e.compactNsMenuTop(),"px")("left",e.compactNsMenuLeft(),"px"),sI(),fC(e.namespaces());}}function Gs(o,t){if(o&1){let e=vC();Cs$1(0,"button",51),Lg("click",function(i){Sf(e);let a=CC(2);return _f(a.onCompactNsBtnClick(i))}),JC(1),hl$1(),aC(2,js,4,4);}if(o&2){let e=CC(2);qg("shell-sidebar__compact-ns-btn--open",e.compactNsMenuOpen()),xg("title",e.selectedNamespace()?.name??"Select namespace"),sI(),Dl(" ",e.nsInitial(e.selectedNamespace()?.name)," "),sI(),cC(e.compactNsMenuOpen()?2:-1);}}function Qs(o,t){if(o&1){let e=vC();Cs$1(0,"button",57),Lg("click",function(){Sf(e);let i=CC(3);return _f(i.clearCompactSearch())}),Bf(),Cs$1(1,"svg",35),Ag(2,"path",58),hl$1()();}}function Ks(o,t){if(o&1){let e=vC();Cs$1(0,"div",52),Lg("click",function(){Sf(e);let i=CC(2);return _f(i.closeCompactSearch())})("keyup.escape",function(){Sf(e);let i=CC(2);return _f(i.closeCompactSearch())}),hl$1(),Cs$1(1,"div",54)(2,"input",55,0),Lg("input",function(i){Sf(e);let a=CC(2);return _f(a.onCompactSearchInput(i.target.value))})("keyup.escape",function(){Sf(e);let i=CC(2);return _f(i.closeCompactSearch())}),hl$1(),aC(4,Qs,3,0,"button",56),hl$1();}if(o&2){let e=CC(2);sI(),Wg("top",e.compactSearchTop(),"px")("left",e.compactSearchLeft(),"px"),sI(),xg("value",e.caseFilter()),sI(2),cC(e.caseFilter()?4:-1);}}function Ys(o,t){if(o&1){let e=vC();Cs$1(0,"button",37),Lg("click",function(){Sf(e);let i=CC();return _f(i.homeClicked.emit())}),Ag(1,"img",38),hl$1(),aC(2,Gs,3,5),Cs$1(3,"button",39),Lg("click",function(){Sf(e);let i=CC();return _f(i.createRequested.emit())}),Bf(),Cs$1(4,"svg",40),Ag(5,"path",17),hl$1()(),Vf(),Cs$1(6,"button",41),Lg("click",function(i){Sf(e);let a=CC();return _f(a.onCompactSearchBtnClick(i))}),Bf(),Cs$1(7,"svg",42),Ag(8,"circle",43)(9,"path",44),hl$1()(),aC(10,Ks,5,6),Vf(),Ag(11,"div",45),Cs$1(12,"div",19)(13,"agentos-case-drawer",46),Lg("caseSelected",function(i){Sf(e);let a=CC();return _f(a.caseSelected.emit(i))})("createRequested",function(){Sf(e);let i=CC();return _f(i.createRequested.emit())})("subCaseCreateRequested",function(i){Sf(e);let a=CC();return _f(a.subCaseCreateRequested.emit(i))})("deleteRequested",function(i){Sf(e);let a=CC();return _f(a.deleteRequested.emit(i))})("starToggled",function(i){Sf(e);let a=CC();return _f(a.starToggled.emit(i))}),hl$1()(),Cs$1(14,"button",47),Lg("click",function(i){Sf(e);let a=CC();return _f(a.onCompactUserBtnClick(i))}),JC(15),hl$1(),Cs$1(16,"agentos-shell-user-menu",48),Lg("navigateTo",function(i){Sf(e);let a=CC();return _f(a.navigateTo.emit(i))})("themeToggled",function(){Sf(e);let i=CC();return _f(i.themeToggled.emit())})("themeVariantChanged",function(i){Sf(e);let a=CC();return _f(a.themeVariantChanged.emit(i))})("logsToggled",function(){Sf(e);let i=CC();return _f(i.logsToggled.emit())})("toolCallsToggled",function(){Sf(e);let i=CC();return _f(i.toolCallsToggled.emit())})("closed",function(i){Sf(e);let a=CC();return _f(a.menuClosed.emit(i))}),hl$1(),Cs$1(17,"button",49),Lg("click",function(){Sf(e);let i=CC();return _f(i.toggleCompact())}),Bf(),Cs$1(18,"svg",16),Ag(19,"path",50),hl$1()();}if(o&2){let e=CC();sI(2),cC(e.showNsPicker()?2:-1),sI(4),qg("shell-sidebar__compact-search-btn--active",e.compactSearchOpen()||e.caseFilter()),sI(4),cC(e.compactSearchOpen()?10:-1),sI(3),xg("cases",e.cases())("activeCaseId",e.activeCaseId())("compact",true)("filterQuery",e.caseFilter()),sI(2),Dl(" ",e.userInitials()||"?"," "),sI(),xg("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 Ot=class o{brandHovered=false;static COMPACT_WIDTH=64;isCompact=Wi$1(false);caseFilter=Wi$1("");compactMenuTop=Wi$1(0);compactMenuLeft=Wi$1(0);compactSearchOpen=Wi$1(false);compactSearchTop=Wi$1(0);compactSearchLeft=Wi$1(0);compactNsMenuOpen=Wi$1(false);compactNsMenuTop=Wi$1(0);compactNsMenuLeft=Wi$1(0);compactSearchInputRef=oV("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=TT(()=>this.sidebarOpen()?this.isCompact()?o.COMPACT_WIDTH:this.sidebarWidth():0);sidebarWidth=nV.required();sidebarOpen=nV.required();selectedNamespace=nV.required();namespaces=nV.required();showNsPicker=nV.required();nsMenuOpen=nV.required();cases=nV.required();activeCaseId=nV.required();userInitials=nV.required();userName=nV.required();menuOpen=nV.required();isAdmin=nV.required();isDark=nV.required();themeVariant=nV.required();showTechnical=nV.required();showToolCalls=nV.required();collapseRequested=tV();homeClicked=tV();namespaceSelected=tV();nsMenuToggled=tV();nsMenuClosed=tV();caseSelected=tV();createRequested=tV();subCaseCreateRequested=tV();deleteRequested=tV();starToggled=tV();renameRequested=tV();menuToggled=tV();menuClosed=tV();navigateTo=tV();themeToggled=tV();themeVariantChanged=tV();logsToggled=tV();toolCallsToggled=tV();static \u0275fac=function(e){return new(e||o)};static \u0275cmp=jw({type:o,selectors:[["agentos-shell-sidebar"]],viewQuery:function(e,n){e&1&&$g(n.compactSearchInputRef,Ls,5),e&2&&xC();},inputs:{sidebarWidth:[1,"sidebarWidth"],sidebarOpen:[1,"sidebarOpen"],selectedNamespace:[1,"selectedNamespace"],namespaces:[1,"namespaces"],showNsPicker:[1,"showNsPicker"],nsMenuOpen:[1,"nsMenuOpen"],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","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","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&&(Cs$1(0,"div",1),aC(1,Ws,36,22)(2,Ys,20,17),hl$1()),e&2&&(Wg("width",n.effectiveWidth(),"px")("overflow",n.effectiveWidth()===0?"hidden":"visible"),qg("shell-sidebar--compact",n.isCompact()),sI(),cC(n.isCompact()?2:1));},dependencies:[Pt,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 Js=(o,t)=>t.id;function Xs(o,t){o&1&&(Bf(),gl$1(0,"svg",24),Rg(1,"path",25),ml$1());}function Zs(o,t){if(o&1){let e=vC();gl$1(0,"button",21),jg("click",function(){let i=Sf(e).$implicit,a=CC(2);return _f(a.namespaceSelected.emit(i))}),gl$1(1,"span",22),JC(2),ml$1(),gl$1(3,"span",23),JC(4),ml$1(),aC(5,Xs,2,0,":svg:svg",24),ml$1();}if(o&2){let e=t.$implicit,n=CC(2);qg("shell-topbar-mobile__ns-item--active",e.id===n.selectedNamespace()?.id),sI(2),em(e.name.charAt(0).toUpperCase()),sI(2),em(e.name),sI(),cC(e.id===n.selectedNamespace()?.id?5:-1);}}function el(o,t){if(o&1){let e=vC();gl$1(0,"div",18),jg("click",function(i){Sf(e);let a=CC();return _f(a.nsMenuClosed.emit(i))})("keyup.escape",function(i){Sf(e);let a=CC();return _f(a.nsMenuClosed.emit(i))}),ml$1(),gl$1(1,"div",19),dC(2,Zs,6,5,"button",20,Js),ml$1();}if(o&2){let e=CC();sI(2),fC(e.namespaces());}}var It=class o{selectedNamespace=nV.required();namespaces=nV.required();nsMenuOpen=nV.required();drawerToggled=tV();createRequested=tV();namespaceSelected=tV();nsMenuToggled=tV();nsMenuClosed=tV();static \u0275fac=function(e){return new(e||o)};static \u0275cmp=jw({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&&(gl$1(0,"div",0)(1,"button",1),jg("click",function(){return n.drawerToggled.emit()}),Bf(),gl$1(2,"svg",2),Rg(3,"line",3)(4,"line",4)(5,"line",5),ml$1()(),Vf(),Rg(6,"img",6),gl$1(7,"div",7)(8,"button",8),jg("click",function(a){return n.nsMenuToggled.emit(a)}),gl$1(9,"span",9),JC(10),ml$1(),gl$1(11,"span",10),JC(12),ml$1(),Bf(),gl$1(13,"svg",11),Rg(14,"path",12),ml$1()(),aC(15,el,4,0),ml$1(),Vf(),Rg(16,"span",13),gl$1(17,"button",14),jg("click",function(){return n.createRequested.emit()}),Bf(),gl$1(18,"svg",15),Rg(19,"path",16)(20,"path",17),ml$1()()()),e&2&&(sI(8),qg("shell-topbar-mobile__ns-btn--open",n.nsMenuOpen()),sI(2),em((n.selectedNamespace()?.name??"N").charAt(0).toUpperCase()),sI(2),em(n.selectedNamespace()?.name??""),sI(3),cC(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 tl=(o,t)=>t.label,nl=(o,t)=>t.id;function ol(o,t){if(o&1){let e=vC();Cs$1(0,"button",43),Lg("click",function(i){Sf(e);let a=CC(2).$implicit;return CC(3).subCaseCreateRequested.emit(a.id),_f(i.stopPropagation())}),Bf(),Cs$1(1,"svg",37),Ag(2,"path",44),hl$1()();}}function il(o,t){if(o&1){let e=vC();Cs$1(0,"div",30),aC(1,ol,3,0,"button",32),Cs$1(2,"button",33),Lg("click",function(i){Sf(e);let a=CC().$implicit,_=CC(3);return _f(_.onStarToggle(i,a))}),Bf(),Cs$1(3,"svg",34),Ag(4,"path",35),hl$1()(),Vf(),Cs$1(5,"button",36),Lg("click",function(i){Sf(e);let a=CC().$implicit,_=CC(3);return _f(_.onDeleteRequest(i,a.id??""))}),Bf(),Cs$1(6,"svg",37),Ag(7,"path",38)(8,"path",39)(9,"path",40)(10,"line",41)(11,"line",42),hl$1()()();}if(o&2){let e=CC().$implicit;sI(),cC(!e.parentCaseId&&e.role==="ADMIN"?1:-1),sI(),qg("mobile-drawer__case-btn--active",!!e.favorite||!!e.starred),sI(),Ng("fill",e.favorite||e.starred?"currentColor":"none");}}function al(o,t){if(o&1){let e=vC();Cs$1(0,"div",31)(1,"button",45),Lg("click",function(i){Sf(e);let a=CC().$implicit,_=CC(3);return _f(_.onDeleteConfirm(i,a.id))}),Bf(),Cs$1(2,"svg",46),Ag(3,"path",47),hl$1()(),Vf(),Cs$1(4,"button",48),Lg("click",function(i){Sf(e);let a=CC(4);return _f(a.onDeleteCancel(i))}),Bf(),Cs$1(5,"svg",49),Ag(6,"path",7)(7,"path",8),hl$1()()();}}function rl(o,t){if(o&1){let e=vC();Cs$1(0,"button",27),Lg("click",function(){let i=Sf(e).$implicit,a=CC(3);return _f(a.onCaseSelect(i.id??""))}),Ag(1,"agentos-case-status-glyph",28),Cs$1(2,"span",29),JC(3),hl$1(),aC(4,il,12,4,"div",30)(5,al,8,0,"div",31),hl$1();}if(o&2){let e=t.$implicit,n=CC(3);qg("mobile-drawer__case-row--active",e.id===n.activeCaseId())("mobile-drawer__case-row--confirming",n.confirmingDeleteId()===e.id),sI(),xg("status",e.status)("size",15),sI(2),em(e.title??e.id),sI(),cC(n.confirmingDeleteId()!==e.id?4:5);}}function sl(o,t){if(o&1&&(Cs$1(0,"div",15)(1,"div",25),JC(2),hl$1(),dC(3,rl,6,8,"button",26,nl),hl$1()),o&2){let e=t.$implicit;sI(2),em(e.label),sI(),fC(e.cases);}}function ll(o,t){o&1&&(Cs$1(0,"p",16),JC(1,"No cases yet."),hl$1());}function cl(o,t){if(o&1){let e=vC();Cs$1(0,"button",53),Lg("click",function(){Sf(e);let i=CC(3);return _f(i.onMenuNavigate("/agentos/admin"))}),Bf(),Cs$1(1,"svg",54),Ag(2,"path",69),hl$1(),JC(3," Administration "),hl$1();}}function dl(o,t){o&1&&(Bf(),Cs$1(0,"svg",54),Ag(1,"path",70),hl$1());}function ml(o,t){o&1&&(Bf(),Cs$1(0,"svg",54),Ag(1,"circle",71)(2,"path",72)(3,"path",73)(4,"path",74)(5,"path",75)(6,"path",76)(7,"path",77)(8,"path",78)(9,"path",79),hl$1());}function pl(o,t){if(o&1){let e=vC();Cs$1(0,"button",50),Lg("click",function(){Sf(e);let i=CC(2);return _f(i.userMenuOpen.set(false))}),hl$1(),Cs$1(1,"div",51)(2,"div",52)(3,"button",53),Lg("click",function(){Sf(e);let i=CC(2);return _f(i.onMenuNavigate("/agentos/profile"))}),Bf(),Cs$1(4,"svg",54),Ag(5,"circle",55)(6,"path",56),hl$1(),JC(7," User settings "),hl$1(),Vf(),Cs$1(8,"button",53),Lg("click",function(){Sf(e);let i=CC(2);return _f(i.onMenuNavigate("/agentos/namespaces"))}),Bf(),Cs$1(9,"svg",54),Ag(10,"rect",57)(11,"rect",58)(12,"rect",59)(13,"rect",60),hl$1(),JC(14," Namespaces "),hl$1(),aC(15,cl,4,0,"button",61),Vf(),Cs$1(16,"button",53),Lg("click",function(){Sf(e);let i=CC(2);return _f(i.onMenuLogsToggle())}),Bf(),Cs$1(17,"svg",54),Ag(18,"polyline",62)(19,"line",63),hl$1(),JC(20," Technical logs "),hl$1(),Vf(),Cs$1(21,"button",53),Lg("click",function(){Sf(e);let i=CC(2);return _f(i.onMenuToolCallsToggle())}),Bf(),Cs$1(22,"svg",54),Ag(23,"path",64)(24,"path",65),hl$1(),JC(25," Tool calls "),Vf(),Ag(26,"span",66),Cs$1(27,"span",67),JC(28),hl$1()()(),Ag(29,"div",68),Cs$1(30,"div",52)(31,"button",53),Lg("click",function(){Sf(e);let i=CC(2);return _f(i.onMenuThemeToggle())}),aC(32,dl,2,0,":svg:svg",54)(33,ml,10,0,":svg:svg",54),JC(34," Dark mode "),Ag(35,"span",66),Cs$1(36,"span",67),JC(37),hl$1()()()();}if(o&2){let e=CC(2);sI(15),cC(e.isAdmin()?15:-1),sI(13),em(e.showToolCalls()?"On":"Off"),sI(4),cC(e.isDark()?33:32),sI(5),em(e.isDark()?"On":"Off");}}function _l(o,t){if(o&1){let e=vC();Cs$1(0,"div",0)(1,"button",1),Lg("click",function(){Sf(e);let i=CC();return _f(i.closed.emit())}),hl$1(),Cs$1(2,"div",2),Lg("click",function(i){return i.stopPropagation()})("keydown",function(i){return i.stopPropagation()}),Cs$1(3,"div",3)(4,"span",4),JC(5,"Cases"),hl$1(),Cs$1(6,"button",5),Lg("click",function(){Sf(e);let i=CC();return _f(i.closed.emit())}),Bf(),Cs$1(7,"svg",6),Ag(8,"path",7)(9,"path",8),hl$1()()(),Vf(),Cs$1(10,"div",9),Bf(),Cs$1(11,"svg",10),Ag(12,"circle",11)(13,"path",12),hl$1(),Vf(),Cs$1(14,"input",13),Lg("input",function(i){Sf(e);let a=CC();return _f(a.filterQuery.set(i.target.value))}),hl$1()(),Cs$1(15,"div",14),dC(16,sl,5,1,"div",15,tl),aC(18,ll,2,0,"p",16),hl$1(),Cs$1(19,"div",17),aC(20,pl,38,4),Cs$1(21,"button",18),Lg("click",function(){Sf(e);let i=CC();return _f(i.userMenuOpen.set(!i.userMenuOpen()))}),Cs$1(22,"span",19),JC(23),hl$1(),Cs$1(24,"span",20)(25,"span",21),JC(26),hl$1()(),Bf(),Cs$1(27,"svg",22),Ag(28,"path",23)(29,"path",24),hl$1()()()()();}if(o&2){let e=CC();sI(14),xg("value",e.filterQuery()),sI(2),fC(e.groupedCases()),sI(2),cC(e.groupedCases().length===0?18:-1),sI(2),cC(e.userMenuOpen()?20:-1),sI(3),em(e.userInitials()),sI(3),em(e.userName());}}var Dt=class o{open=nV.required();subCaseCreateRequested=tV();cases=nV.required();activeCaseId=nV.required();userInitials=nV.required();userName=nV.required();isAdmin=nV.required();isDark=nV.required();showToolCalls=nV.required();filterQuery=Wi$1("");confirmingDeleteId=Wi$1(null);userMenuOpen=Wi$1(false);groupedCases=TT(()=>{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)),_=e.filter(O=>!n(O)&&this.isYesterday(O)),C=e.filter(O=>!n(O)&&this.isPrev7(O)),y=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}),_.length&&D.push({label:"Yesterday",cases:_}),C.length&&D.push({label:"Previous 7 days",cases:C}),y.length&&D.push({label:"Older",cases:y}),D});closed=tV();caseSelected=tV();starToggled=tV();deleteRequested=tV();navigateTo=tV();themeToggled=tV();logsToggled=tV();toolCallsToggled=tV();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=jw({type:o,selectors:[["agentos-shell-case-switcher-mobile"]],inputs:{open:[1,"open"],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"],[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&&aC(0,_l,30,5,"div",0),e&2&&cC(n.open()?0:-1);},dependencies:[Ee],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 ul(o,t){if(o&1){let e=vC();Cs$1(0,"div",8),Lg("mousedown",function(i){Sf(e);let a=CC();return _f(a.onResizeStart(i))}),hl$1();}}function gl(o,t){if(o&1){let e=vC();Cs$1(0,"button",9),Lg("click",function(){Sf(e);let i=CC();return _f(i.expandSidebar())}),Cs$1(1,"span",10),JC(2,"menu"),hl$1()();}}function hl(o,t){if(o&1){let e=vC();Ag(0,"agentos-case-workspace",11),Cs$1(1,"agentos-case-chat",12),Lg("starToggled",function(i){Sf(e);let a=CC();return _f(a.onStarToggled(i))})("deleteRequested",function(i){Sf(e);let a=CC();return _f(a.onDeleteRequested(i))})("logsToggled",function(){Sf(e);let i=CC();return _f(i.onMenuToggleLogs())})("updateRequested",function(i){Sf(e);let a=CC();return _f(a.onCaseUpdateRequested(i))}),hl$1();}if(o&2){let e=CC();xg("caseId",e.activeCaseId())("canWrite",e.canWriteActiveCase()),sI(),xg("showTechnicalOverride",e.showTechnical())("showToolCallsOverride",e.showToolCalls());}}function Cl(o,t){if(o&1&&Ag(0,"agentos-case-home",7),o&2){let e=CC();xg("namespaceName",e.selectedNamespace()?.name??null);}}var xo=class o{router=g(G$5);route=g(V$2);namespaceController=g(k$1);themePort=g(I$1);userState=g(l$3);caseState=g(ce);workspaceService=g(pe);namespaceState=g(E);destroyRef=g(Ce$1);isAdmin=TT(()=>this.userState.currentUser()?.isAdmin===true);userInitials=TT(()=>{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=TT(()=>{let t=this.userState.currentUser();return t&&([t.firstname,t.lastname].filter(Boolean).join(" ")||t.email)||""});isDark=TT(()=>{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=TT(()=>this.themePort.theme().variant);sidebarWidth=Wi$1(Number(localStorage.getItem("agentos.sidebar.width"))||400);menuOpen=Wi$1(false);nsMenuOpen=Wi$1(false);sidebarOpen=Wi$1(localStorage.getItem("agentos.sidebar.open")!=="false");mobileDrawerOpen=Wi$1(false);static SHOW_TECHNICAL_KEY="agentos.case-chat.showTechnical";static SHOW_TOOL_CALLS_KEY="agentos.case-chat.showToolCalls";showTechnical=Wi$1(localStorage.getItem(o.SHOW_TECHNICAL_KEY)==="true");showToolCalls=Wi$1(localStorage.getItem(o.SHOW_TOOL_CALLS_KEY)!=="false");showNsPicker=TT(()=>this.isAdmin()||this.namespaces().length>1);namespaceId$=this.route.queryParams.pipe(re$4(t=>t.ns??null));_namespaceIdRaw=F$1(this.namespaceId$);namespaceId=TT(()=>this._namespaceIdRaw()??null);_activeCaseIdRaw=F$1(this.route.queryParams.pipe(re$4(t=>t.case??null)));activeCaseId=TT(()=>this._activeCaseIdRaw()??null);cases=this.caseState.cases;namespaces=F$1(this.namespaceController.listAllNamespace(),{initialValue:[]});selectedNamespace=Wi$1(null);canWriteActiveCase=TT(()=>{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(){Wf(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(Td(1),Cd(300),U$3(this.destroyRef)).subscribe(t=>localStorage.setItem("agentos.sidebar.width",String(t))),Wf(()=>{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});}}),Wf(()=>{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 _=n,C=D=>{let O=D.clientX-e;_=Math.max(200,Math.min(i,n+O)),a&&(a.style.width=`${_}px`);},y=()=>{document.removeEventListener("mousemove",C),document.removeEventListener("mouseup",y),document.body.style.userSelect="",document.body.style.cursor="",a&&(a.style.transition=""),this.sidebarWidth.set(_);};document.addEventListener("mousemove",C),document.addEventListener("mouseup",y);}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=jw({type:o,selectors:[["agentos-case-shell"]],decls:9,vars:30,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","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","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&&(Cs$1(0,"div",0)(1,"agentos-shell-topbar-mobile",1),Lg("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)}),hl$1(),Cs$1(2,"agentos-shell-case-switcher-mobile",2),Lg("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()}),hl$1(),Cs$1(3,"agentos-shell-sidebar",3),Lg("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()}),hl$1(),aC(4,ul,1,0,"div",4),aC(5,gl,3,0,"button",5),Cs$1(6,"main",6),aC(7,hl,2,4)(8,Cl,1,1,"agentos-case-home",7),hl$1()()),e&2&&(sI(),xg("selectedNamespace",n.selectedNamespace())("namespaces",n.namespaces())("nsMenuOpen",n.nsMenuOpen()),sI(),xg("open",n.mobileDrawerOpen())("cases",n.cases())("activeCaseId",n.activeCaseId())("userInitials",n.userInitials())("userName",n.userName())("isAdmin",n.isAdmin())("isDark",n.isDark())("showToolCalls",n.showToolCalls()),sI(),xg("sidebarWidth",n.sidebarWidth())("sidebarOpen",n.sidebarOpen())("selectedNamespace",n.selectedNamespace())("namespaces",n.namespaces())("showNsPicker",n.showNsPicker())("nsMenuOpen",n.nsMenuOpen())("cases",n.cases())("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()),sI(),cC(n.sidebarOpen()?4:-1),sI(),cC(n.sidebarOpen()?-1:5),sI(2),cC(n.activeCaseId()?7:8));},dependencies:[dt,Et,Tt,Ot,It,Dt],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&&JC(0),n&2){let o=CC();Dl(" ",o.userInitials()," ");}}function V$1(n,e){n&1&&JC(0," \u2022\u2022\u2022 ");}var h=class n{router=g(G$5);userState=g(l$3);themePort=g(I$1);namespaceState=g(E);menuOpen=Wi$1(false);isAdmin=TT(()=>this.userState.currentUser()?.isAdmin===true);isDark=TT(()=>{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=TT(()=>this.themePort.theme().variant);userInitials=TT(()=>{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=Wi$1(false);showToolCalls=Wi$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=jw({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&&(Cs$1(0,"div",0)(1,"button",1),Lg("click",function(){return t.navigateHome()}),Ag(2,"img",2),Cs$1(3,"span",3),JC(4,"Coday"),hl$1()(),Cs$1(5,"div",4)(6,"button",5),Lg("click",function(l){return t.toggleMenu(l)}),aC(7,N,1,1)(8,V$1,1,0),hl$1(),Cs$1(9,"agentos-shell-user-menu",6),Lg("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)}),hl$1()()()),o&2&&(sI(7),cC(t.userInitials()?7:8),sI(2),xg("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=jw({type:n,selectors:[["agentos-layout"]],decls:4,vars:0,consts:[[1,"layout"],[1,"layout__content"]],template:function(o,t){o&1&&(Cs$1(0,"div",0),Ag(1,"agentos-shell-topbar"),Cs$1(2,"main",1),Ag(3,"router-outlet"),hl$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-CIcEtCxk.js').then(e=>e.OAuthCallbackComponent)},{path:"",loadComponent:()=>Promise.resolve().then(function(){return chunkA5CQFTM7}).then(e=>e.AgentosShellComponent),children:[{path:"home",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunkXRB5D43W}).then(e=>e.CaseShellComponent)},{path:"",loadComponent:()=>Promise.resolve().then(function(){return chunkC5XCN6WC}).then(e=>e.LayoutComponent),children:[{path:"namespaces/new",canActivate:[t],loadComponent:()=>import('./chunk-C9dkqMA4.js').then(e=>e.NamespaceFormComponent)},{path:"namespaces/:namespaceId/edit",canActivate:[t],loadComponent:()=>import('./chunk-C9dkqMA4.js').then(e=>e.NamespaceFormComponent)},{path:"namespaces",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunkV6HAOO2Z}).then(e=>e.NamespaceListComponent)},{path:"admin",canActivate:[t],loadComponent:()=>import('./chunk-CBYDDKYs.js').then(e=>e.AdminHomeComponent)},{path:"admin/tool-invoke",canActivate:[t],loadComponent:()=>import('./chunk-B3xYeZtG.js').then(e=>e.ToolInvokeComponent)},{path:"admin/users/new",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunkGBQW7HRD}).then(e=>e.UserFormComponent)},{path:"admin/users/:userId/edit",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunkGBQW7HRD}).then(e=>e.UserFormComponent)},{path:"admin/users",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunkJQXHTMNG}).then(e=>e.AdminUsersGroupsComponent)},{path:"admin/integration-configs/new",canActivate:[t],loadComponent:()=>import('./chunk-buoxjd5i.js').then(e=>e.IntegrationFormComponent)},{path:"admin/integration-configs/:integrationId/edit",canActivate:[t],loadComponent:()=>import('./chunk-buoxjd5i.js').then(e=>e.IntegrationFormComponent)},{path:"admin/integration-configs",canActivate:[t],loadComponent:()=>import('./chunk-CKEgNNXU.js').then(e=>e.PlatformIntegrationConfigsComponent)},{path:"admin/scheduled-prompts/new",canActivate:[t],loadComponent:()=>import('./chunk-B4l5qLZ6.js').then(e=>e.ScheduledPromptFormComponent)},{path:"admin/scheduled-prompts/:scheduledPromptId/edit",canActivate:[t],loadComponent:()=>import('./chunk-B4l5qLZ6.js').then(e=>e.ScheduledPromptFormComponent)},{path:"admin/scheduled-prompts",canActivate:[t],loadComponent:()=>import('./chunk-C2Rueaad.js').then(e=>e.PlatformScheduledPromptsComponent)},{path:"admin/prompts/new",canActivate:[t],loadComponent:()=>import('./chunk-BqhCkR9t.js').then(e=>e.PromptFormComponent)},{path:"admin/prompts/:promptId/edit",canActivate:[t],loadComponent:()=>import('./chunk-BqhCkR9t.js').then(e=>e.PromptFormComponent)},{path:"admin/prompts",canActivate:[t],loadComponent:()=>import('./chunk-C93ZXc5y.js').then(e=>e.PlatformPromptsComponent)},{path:"admin/ai-providers/new",canActivate:[t],loadComponent:()=>import('./chunk-CbCwwL-W.js').then(e=>e.AiProviderFormComponent)},{path:"admin/ai-providers/:aiProviderId/edit",canActivate:[t],loadComponent:()=>import('./chunk-CbCwwL-W.js').then(e=>e.AiProviderFormComponent)},{path:"admin/ai-providers",canActivate:[t],loadComponent:()=>import('./chunk-DNVNXvsJ.js').then(e=>e.PlatformAiProvidersComponent)},{path:"admin/auth-settings/new",canActivate:[t],loadComponent:()=>import('./chunk-j5aTABHx.js').then(e=>e.AuthSettingFormComponent)},{path:"admin/auth-settings/:authSettingId/edit",canActivate:[t],loadComponent:()=>import('./chunk-j5aTABHx.js').then(e=>e.AuthSettingFormComponent)},{path:"admin/auth-settings",canActivate:[t],loadComponent:()=>import('./chunk-BQmHxval.js').then(e=>e.PlatformAuthSettingsComponent)},{path:"admin/ai-models/new",canActivate:[t],loadComponent:()=>import('./chunk-B7GIYsvs.js').then(e=>e.AiModelFormComponent)},{path:"admin/ai-models/:modelId/edit",canActivate:[t],loadComponent:()=>import('./chunk-B7GIYsvs.js').then(e=>e.AiModelFormComponent)},{path:"admin/ai-models",canActivate:[t],loadComponent:()=>import('./chunk-CKBQdAGJ.js').then(e=>e.PlatformAiModelsComponent)},{path:"admin/agent-configs/new",canActivate:[t],loadComponent:()=>import('./chunk-16yQFy5_.js').then(e=>e.AgentConfigFormComponent)},{path:"admin/agent-configs/:agentConfigId/edit",canActivate:[t],loadComponent:()=>import('./chunk-16yQFy5_.js').then(e=>e.AgentConfigFormComponent)},{path:"admin/agent-configs/:agentConfigId/inspect",canActivate:[t],loadComponent:()=>import('./chunk-CPt7Uw3a.js').then(e=>e.AgentConfigInspectComponent)},{path:"admin/agent-configs",canActivate:[t],loadComponent:()=>import('./chunk-Cf7f_94t.js').then(e=>e.PlatformAgentConfigsComponent)},{path:"me",canActivate:[t],loadComponent:()=>import('./chunk-DCjMvdvV.js').then(e=>e.UserProfileComponent)},{path:"user",canActivate:[t],loadComponent:()=>import('./chunk-DCjMvdvV.js').then(e=>e.UserProfileComponent)},{path:":namespaceId/auth-settings/new",canActivate:[t],loadComponent:()=>import('./chunk-j5aTABHx.js').then(e=>e.AuthSettingFormComponent)},{path:":namespaceId/auth-settings/:authSettingId/edit",canActivate:[t],loadComponent:()=>import('./chunk-j5aTABHx.js').then(e=>e.AuthSettingFormComponent)},{path:":namespaceId/auth-settings",canActivate:[t],loadComponent:()=>import('./chunk-CzDFGxwY.js').then(e=>e.AuthSettingsAllScopesComponent)},{path:":namespaceId/integrations/new",canActivate:[t],loadComponent:()=>import('./chunk-buoxjd5i.js').then(e=>e.IntegrationFormComponent)},{path:":namespaceId/integrations/:integrationId/edit",canActivate:[t],loadComponent:()=>import('./chunk-buoxjd5i.js').then(e=>e.IntegrationFormComponent)},{path:":namespaceId/integrations",canActivate:[t],loadComponent:()=>import('./chunk-C11du_uP.js').then(e=>e.IntegrationsAllScopesComponent)},{path:":namespaceId/ai-providers/new",canActivate:[t],loadComponent:()=>import('./chunk-CbCwwL-W.js').then(e=>e.AiProviderFormComponent)},{path:":namespaceId/ai-providers/:aiProviderId/edit",canActivate:[t],loadComponent:()=>import('./chunk-CbCwwL-W.js').then(e=>e.AiProviderFormComponent)},{path:":namespaceId/ai-providers",canActivate:[t],loadComponent:()=>import('./chunk-CPI0Zzv3.js').then(e=>e.AiProvidersAllScopesComponent)},{path:":namespaceId/ai-models/new",canActivate:[t],loadComponent:()=>import('./chunk-B7GIYsvs.js').then(e=>e.AiModelFormComponent)},{path:":namespaceId/ai-models/:modelId/edit",canActivate:[t],loadComponent:()=>import('./chunk-B7GIYsvs.js').then(e=>e.AiModelFormComponent)},{path:":namespaceId/ai-models",canActivate:[t],loadComponent:()=>import('./chunk-BLSD82nL.js').then(e=>e.NamespaceAiModelsComponent)},{path:":namespaceId/usage",canActivate:[t],loadComponent:()=>import('./chunk-BqxwtKFs.js').then(e=>e.NamespaceUsageComponent)},{path:":namespaceId/scheduled-prompts/new",canActivate:[t],loadComponent:()=>import('./chunk-B4l5qLZ6.js').then(e=>e.ScheduledPromptFormComponent)},{path:":namespaceId/scheduled-prompts/:scheduledPromptId/edit",canActivate:[t],loadComponent:()=>import('./chunk-B4l5qLZ6.js').then(e=>e.ScheduledPromptFormComponent)},{path:":namespaceId/scheduled-prompts",canActivate:[t],loadComponent:()=>import('./chunk-DFjiy89D.js').then(e=>e.ScheduledPromptListComponent)},{path:":namespaceId/prompts/new",canActivate:[t],loadComponent:()=>import('./chunk-BqhCkR9t.js').then(e=>e.PromptFormComponent)},{path:":namespaceId/prompts/:promptId/edit",canActivate:[t],loadComponent:()=>import('./chunk-BqhCkR9t.js').then(e=>e.PromptFormComponent)},{path:":namespaceId/prompts",canActivate:[t],loadComponent:()=>import('./chunk-B-t2KLMQ.js').then(e=>e.NamespacePromptsComponent)},{path:":namespaceId/agent-configs/new",canActivate:[t],loadComponent:()=>import('./chunk-16yQFy5_.js').then(e=>e.AgentConfigFormComponent)},{path:":namespaceId/agent-configs/:agentConfigId/edit",canActivate:[t],loadComponent:()=>import('./chunk-16yQFy5_.js').then(e=>e.AgentConfigFormComponent)},{path:":namespaceId/agent-configs/:agentConfigId/inspect",canActivate:[t],loadComponent:()=>import('./chunk-CPt7Uw3a.js').then(e=>e.AgentConfigInspectComponent)},{path:":namespaceId/agent-configs",canActivate:[t],loadComponent:()=>import('./chunk-D4DTIvDf.js').then(e=>e.NamespaceAgentConfigsComponent)},{path:":namespaceId/user-groups/new",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunkM4G255OQ}).then(e=>e.UserGroupFormComponent)},{path:":namespaceId/user-groups/:userGroupId/edit",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunkM4G255OQ}).then(e=>e.UserGroupFormComponent)},{path:":namespaceId/user-groups",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunkMTO4D2I3}).then(e=>e.NamespaceUserGroupsComponent)},{path:":namespaceId/tool-invoke",canActivate:[t],loadComponent:()=>import('./chunk-B3xYeZtG.js').then(e=>e.ToolInvokeComponent)},{path:":namespaceId/git",canActivate:[t],loadComponent:()=>import('./chunk-kNbhE9tu.js').then(e=>e.NamespaceGitComponent)},{path:":namespaceId/members",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunkW2VJZ57U}).then(e=>e.NamespaceMembersComponent)},{path:"",redirectTo:"namespaces",pathMatch:"full"}]}]}];function B(e,i){e&1&&Rg(0,"span",1);}function R(e,i){e&1&&Rg(0,"span",2);}function G(e,i){e&1&&Rg(0,"span",3);}var u=class e{pluginService=g(oe$3);online=Wi$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=jw({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&&(gl$1(0,"div",0),aC(1,B,1,0,"span",1)(2,R,1,0,"span",2)(3,G,1,0,"span",3),ml$1()),a&2){let c;sI(),cC((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=vC();Cs$1(0,"button",9),Lg("click",function(){Sf(a);let c=CC();return _f(c.navigateToAdmin())}),Cs$1(1,"span",10),JC(2,"\u2699\uFE0F"),hl$1()();}}function L(e,i){if(e&1&&(Cs$1(0,"span",7),JC(1),hl$1()),e&2){let a=CC();sI(),em(a.userInitials);}}function V(e,i){e&1&&(Cs$1(0,"span",8),JC(1,"\u25EF"),hl$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=TT(()=>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=jw({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&&(Cs$1(0,"header",0)(1,"button",1),Lg("click",function(){return m.navigateHome()}),Ag(2,"img",2),Cs$1(3,"span",3),JC(4,"Coday"),hl$1()(),Cs$1(5,"nav",4),Ag(6,"agentos-backend-status"),aC(7,j,3,0,"button",5),Cs$1(8,"button",6),Lg("click",function(){return m.toggleProfile()}),aC(9,L,2,1,"span",7)(10,V,2,0,"span",8),hl$1()()()),a&2&&(sI(7),cC(m.isAdmin()?7:-1),sI(),qg("header__user-btn--active",m.isOnProfilePage),xg("title",m.isOnProfilePage?"Back":"My profile"),sI(),cC(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&&(Cs$1(0,"p",11),JC(1," Last action: "),Cs$1(2,"strong"),JC(3),hl$1()()),e&2){let a=CC();sI(3),em(a.lastAction());}}var z=class e{lastAction=Wi$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=jw({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&&(Cs$1(0,"div",0)(1,"div",1)(2,"div",2),JC(3,"AgentOS UI"),hl$1(),Cs$1(4,"h1"),JC(5,"Hello AgentOS"),hl$1(),Cs$1(6,"p"),JC(7," This component lives in "),Cs$1(8,"code"),JC(9,"libs/agentos-ui"),hl$1(),JC(10," \u2014 isolated from Coday internals, ready to be published as "),Cs$1(11,"code"),JC(12,"@whoz-oss/agentos-ui"),hl$1(),JC(13,". "),hl$1(),Ag(14,"agentos-backend-status"),Cs$1(15,"ul",3)(16,"li"),JC(17,"\u2726 No imports from Coday app"),hl$1(),Cs$1(18,"li"),JC(19,"\u2726 CSS custom properties as host contract"),hl$1(),Cs$1(20,"li"),JC(21,"\u2726 Standalone Angular components"),hl$1(),Cs$1(22,"li"),JC(23,"\u2726 Signals-first reactive state"),hl$1()(),Cs$1(24,"div",4)(25,"p",5),JC(26,"ds-icon-button from "),Cs$1(27,"code"),JC(28,"@whoz-oss/design-system"),hl$1()(),Cs$1(29,"div",6)(30,"ds-icon-button",7),Lg("action",function(){return m.onSend()}),hl$1(),Cs$1(31,"ds-icon-button",8),Lg("action",function(){return m.onStop()}),hl$1(),Cs$1(32,"ds-icon-button",9),Lg("action",function(){return m.onAttach()}),hl$1(),Cs$1(33,"ds-icon-button",10),Lg("action",function(){return m.onAttach()}),hl$1()(),aC(34,W,4,1,"p",11),hl$1()()()),a&2&&(sI(33),xg("disabled",true),sI(),cC(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 chunkP3DAV4FX=/*#__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:Et,CaseDrawerComponent:Pt,CaseHomeComponent:Tt,CaseItemComponent:kt,CaseShellComponent:xo,ENTER_KEY_BEHAVIORS:l,ExchangeContentViewerComponent:Ct,ExchangeDrawerComponent:bt,ExchangeFileListComponent:ft,ExchangeItemComponent:Re,ExchangeShellComponent:vt,ExchangeStateService:de,HeaderComponent:U,HelloAgentosComponent:z,LayoutComponent:x,MAX_VIEWABLE_SIZE:kd,MarkdownPipe:d$1,NamespaceItemComponent:q,NamespaceListComponent:X,NamespaceMemberStateService:S,NamespaceMembersComponent:H$2,NamespaceSelectComponent:w,NamespaceUserGroupsComponent:d$2,THEME_MODES:l$2,THEME_PORT:I$1,THEME_VARIANTS:p$1,USER_PREFERENCES_PORT:f,UserAdminStateService:c$1,UserFormComponent:$,UserGroupFormComponent:se$3,UserGroupItemComponent:D$1,UserGroupListComponent:te$2,UserGroupStateService:m$2,UserItemComponent:I$2,UserListComponent:k,UserStateService:l$3,agentosReadyGuard:t,canViewFile:ro,detectFormat:ao,exchangeMutationScope:lo,formatDate:io,formatSize:oo,getFileIcon:ht,isFormatViewable:Ei,isViewable:Ti,reindentJson:so,toBreadcrumb:Jn});var chunkA5CQFTM7=/*#__PURE__*/Object.freeze({__proto__:null,AgentosShellComponent:l$1});var chunkXRB5D43W=/*#__PURE__*/Object.freeze({__proto__:null,CaseShellComponent:xo});var chunkC5XCN6WC=/*#__PURE__*/Object.freeze({__proto__:null,LayoutComponent:x});var chunkV6HAOO2Z=/*#__PURE__*/Object.freeze({__proto__:null,NamespaceListComponent:X});var chunkGBQW7HRD=/*#__PURE__*/Object.freeze({__proto__:null,UserFormComponent:$});var chunkJQXHTMNG=/*#__PURE__*/Object.freeze({__proto__:null,AdminUsersGroupsComponent:Z});var chunkM4G255OQ=/*#__PURE__*/Object.freeze({__proto__:null,UserGroupFormComponent:se$3});var chunkMTO4D2I3=/*#__PURE__*/Object.freeze({__proto__:null,NamespaceUserGroupsComponent:d$2});var chunkW2VJZ57U=/*#__PURE__*/Object.freeze({__proto__:null,NamespaceMembersComponent:H$2});export{B$1 as B,I$1 as I,chunkP3DAV4FX as a,c$2 as c,d$1 as d,f,l$3 as l,m,p};
|