@whoz-oss/coday-client 1.3.2 → 1.3.4
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-BXQCdGUa.js → chunk-3QjpTDpt.js} +1 -1
- package/browser/{chunk-ZTE9Vro-.js → chunk-7IEj5tud.js} +1 -1
- package/browser/{chunk-nSxfGVc8.js → chunk-8RFsf09R.js} +1 -1
- package/browser/{chunk-CRuFXEnP.js → chunk-9rFJllaP.js} +1 -1
- package/browser/{chunk-CeRWUb5g.js → chunk-B3mPWOwM.js} +1 -1
- package/browser/{chunk-SiAnBXor.js → chunk-BDqV-dXo.js} +1 -1
- package/browser/chunk-BGM4NjUk.js +1 -0
- package/browser/{chunk-TBsNfd0k.js → chunk-BMBD8g8i.js} +1 -1
- package/browser/chunk-BYAMVo7F.js +1 -0
- package/browser/{chunk-DeVzkEKK.js → chunk-BbOdBhQy.js} +1 -1
- package/browser/{chunk-E8b2_4uB.js → chunk-Bc_JiT75.js} +1 -1
- package/browser/{chunk-DlFFzFSe.js → chunk-BfoCTjUr.js} +1 -1
- package/browser/{chunk-BdWvjltK.js → chunk-BhKcjruH.js} +1 -1
- package/browser/{chunk-CNMTF87H.js → chunk-Bj9y8qST.js} +1 -1
- package/browser/{chunk-DGa4-UJW.js → chunk-Brj8HlXc.js} +1 -1
- package/browser/{chunk-Ckk6G7IP.js → chunk-BxT6IsjS.js} +1 -1
- package/browser/{chunk-eTAQJYle.js → chunk-By4bK8Lp.js} +1 -1
- package/browser/chunk-C8qVsVH8.js +1 -0
- package/browser/{chunk-CaxOrx5M.js → chunk-CFw8eyQX.js} +1 -1
- package/browser/{chunk-x7Suyrio.js → chunk-CH0b9ss9.js} +1 -1
- package/browser/{chunk-BovznIFZ.js → chunk-CInfUnUL.js} +1 -1
- package/browser/{chunk-DEhf9VBD.js → chunk-CJpYYZh2.js} +1 -1
- package/browser/{chunk-CcTN_TUb.js → chunk-CTjZECqR.js} +1 -1
- package/browser/{chunk-C7-Gy0Uz.js → chunk-CTx3Z0hA.js} +1 -1
- package/browser/{chunk-CZ6ILxDX.js → chunk-CVuNrNOH.js} +1 -1
- package/browser/{chunk-BpA60NxS.js → chunk-CXVQ4M5H.js} +1 -1
- package/browser/{chunk-CW742eC7.js → chunk-Cb82rqle.js} +4 -4
- package/browser/chunk-CbSC-SSJ.js +1 -0
- package/browser/chunk-CeTVH-vp.js +2 -0
- package/browser/{chunk-BmjhXCgH.js → chunk-Cek4dv2K.js} +1 -1
- package/browser/{chunk-BGeY6TJl.js → chunk-CekA5yLC.js} +1 -1
- package/browser/{chunk-D0tFEYpV.js → chunk-CisLHTrk.js} +1 -1
- package/browser/chunk-Cm35aeo6.js +1 -0
- package/browser/{chunk-Bi1D1MPS.js → chunk-Cm42_zF7.js} +1 -1
- package/browser/{chunk-G4MCwSm-.js → chunk-CpMYZ9dG.js} +1 -1
- package/browser/{chunk-DwB1vH9w.js → chunk-CrExrE4n.js} +1 -1
- package/browser/{chunk-Bh_9bCDZ.js → chunk-CsvLyu6R.js} +1 -1
- package/browser/{chunk-BjDDtMsE.js → chunk-Cy-MbcIf.js} +1 -1
- package/browser/{chunk-BWc0GaFw.js → chunk-CywonzJi.js} +1 -1
- package/browser/{chunk-BemBoNs5.js → chunk-D1ggthOI.js} +1 -1
- package/browser/{chunk-BBJc_ez4.js → chunk-DFaRJnOg.js} +1 -1
- package/browser/{chunk-n_Kgbuh3.js → chunk-DJz2cMcV.js} +1 -1
- package/browser/{chunk-BPJe1_uM.js → chunk-DLhvPTZP.js} +1 -1
- package/browser/{chunk-20v-HoGw.js → chunk-DVSN51SP.js} +1 -1
- package/browser/{chunk-B4CKPT8-.js → chunk-DWrJdp3G.js} +1 -1
- package/browser/{chunk-RbE7PtJh.js → chunk-DXVBbChn.js} +1 -1
- package/browser/{chunk-Cdu5JsaS.js → chunk-DgFkTqkZ.js} +1 -1
- package/browser/chunk-DoS8-ZTX.js +1 -0
- package/browser/{chunk-C_7QzTv7.js → chunk-DpRS0jIN.js} +1 -1
- package/browser/{chunk-CyEZHdnA.js → chunk-DvV6rFWO.js} +1 -1
- package/browser/{chunk-_PndMs0h.js → chunk-Lluy_pM_.js} +1 -1
- package/browser/{chunk-DUczAw5C.js → chunk-NPBU5yIa.js} +1 -1
- package/browser/{chunk-CteHmI07.js → chunk-OpV-oEpT.js} +1 -1
- package/browser/{chunk-DJOhzAbC.js → chunk-S_TYzsa6.js} +1 -1
- package/browser/{chunk-BptxX0h6.js → chunk-X4zIHpcE.js} +1 -1
- package/browser/{chunk-BQ2Vio1f.js → chunk-_Wj2M8II.js} +1 -1
- package/browser/{chunk-BtYN6RGw.js → chunk-_kolzKbl.js} +1 -1
- package/browser/chunk-_si25xRH.js +1 -0
- package/browser/{chunk-DzuMSf1O.js → chunk-eCkjwC-y.js} +1 -1
- package/browser/{chunk-Bh7gCjj4.js → chunk-eqpKdy80.js} +1 -1
- package/browser/{chunk-B4iDNUj6.js → chunk-hL6iczXD.js} +1 -1
- package/browser/{chunk-BXiOP6ZW.js → chunk-hcl2JPuw.js} +1 -1
- package/browser/{chunk-CiWRvj1N.js → chunk-i62b6Gtt.js} +1 -1
- package/browser/{chunk-C2TRQfu4.js → chunk-vkYtcaIT.js} +1 -1
- package/browser/{chunk-B9gLRfDm.js → chunk-xk_bqNV0.js} +1 -1
- package/browser/{chunk-D5NtIZG6.js → chunk-zyGtaVKQ.js} +1 -1
- package/browser/index.html +1 -1
- package/browser/{main-DXWHG4XK.js → main-FEA3BAHM.js} +2 -2
- package/package.json +1 -1
- package/browser/chunk-BIEjPnD4.js +0 -2
- package/browser/chunk-BUhtdVBd.js +0 -1
- package/browser/chunk-Balbg-lh.js +0 -1
- package/browser/chunk-CFvRU8Pw.js +0 -1
- package/browser/chunk-CmmK8635.js +0 -1
- package/browser/chunk-DvC7mEoN.js +0 -1
- package/browser/chunk-SlWicxh3.js +0 -1
- package/browser/chunk-spTKcuel.js +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {g,dy as re$4,d8 as M$1,dg as Q$3,Q as By,Y as x$1,ao as V$2,G as G$5,w as we$1,H as Hi$1,b as U$2,z as z$3,a as P,A as Aw,cd as Sb,v as vs,l as Ag,W as WC,k as fl,n as eC,af as Dg,X as XE,a8 as Zg,t as tC,S as ha$1,a9 as dC,o as bg,a3 as HI,ac as mC,r as Tg,y as Hg,a6 as $I,a5 as yl,q as oC,x as iC,T as TC,b3 as oT,C as Cg,cg as Mg,aa as If,ab as wf,ag as fT,ca as mB,cb as gB,aw as pl,ax as hl,cI as Rg,b$ as Ng,dz as Qg,F as F$1,aD as Ly,dh as T,bR as ma$1,bT as Od,a7 as ga$1,m as mT,dA as oe$2,aY as ks,cr as EB,bz as vC,cw as Pg,cv as CC,bA as DC,bj as yh,ah as rT,d4 as G$6,aI as Tr,u as ue$3,aJ as Nb,be as aT,bf as uT,bo as gl,bp as ml,c8 as kf,cj as Ff,aV as w$1,dB as mr$1,aH as TS,b0 as An$2,dC as ee$3,dD as ie$3,J as dy,d3 as y$1,aO as G$7,cD as Rd,b5 as Sg,ad as Vg,cq as vB,cc as Hf,c1 as ME,av as dt,dE as zy,dF as He$1,dG as kb,ai as Jg,ak as Xg,b4 as nT,cu as Lg,ct as CB,dH as xe$1,D as Fg,I as IC,E as wC,dI as wd,cK as Id,az as Qt,dJ as Y$2,bg as Hy,dK as _,bP as Zy,an as ce,dL as DB,cM as Rn$1,dM as xb,dN as me$2,cG as Xw,dO as L$3,a4 as rC,b_ as FC,a_ as XC,dP as Kg,aj as KC,cf as iT,bi as aE,dQ as X$3}from'./main-DXWHG4XK.js';import {x as x$2,i as is,U as Ue$1}from'./chunk-_PndMs0h.js';import {P as Pn$1,Z as Zn$2,S as Se$1,W as Wn$1,K as Kn$1,J as Jn$2,U as Un$1,X as Xn$2,G as Gn$1,Y as Yn$1}from'./chunk-RbE7PtJh.js';import'./chunk-Ckk6G7IP.js';import {o as z$2,k as _t$1,b as _e$2,n as ni$1,J as Jn$1,Q as Qn$1,e as ei$1,Y as Ye$1,Z as Zn$1,l as Xn$1,E as En$1,p as An$1,a as wt}from'./chunk-BBJc_ez4.js';var m$3=class s{controller=g(re$4);agentConfigController=g(M$1);namespaceMembership=g(Q$3);listByNamespace(e){return this.controller.findByNamespaceIdUserGroup(e)}loadFormData(e){return By({namespaceAgents:this.agentConfigController.listByParentAgentConfig(e,false),platformAgents:this.agentConfigController.listPlatformAgentsAgentConfig(false),groups:this.listByNamespace(e),users:this.namespaceMembership.getMembersNamespaceMembership(e)})}loadExistingGroup(e){return By({group:this.getById(e),members:this.getMembers(e)})}getById(e){return this.controller.getByIdUserGroup(e)}getMembers(e){return this.controller.getMembersUserGroup(e)}create(e){return this.controller.createUserGroup({namespaceId:e.namespaceId,name:e.name,agentIds:e.agentIds,userExternalIdsToAdd:e.memberExternalIdsToAdd,adminExternalIds:e.adminExternalIds})}update(e,r){return this.controller.updateUserGroup(e,{name:r.name,agentIds:r.agentIds,userExternalIdsToAdd:r.memberExternalIdsToAdd,userExternalIdsToRemove:r.memberExternalIdsToRemove,adminExternalIds:r.adminExternalIds})}delete(e){return this.controller.deleteUserGroup(e)}static \u0275fac=function(r){return new(r||s)};static \u0275prov=x$1({token:s,factory:s.\u0275fac,providedIn:"root"})};function ae$3(r,t){let e=new Map;for(let o of r)if(o.userGroupId!==t)for(let n of o.agentIds)e.has(n)||e.set(n,o.name);return e}function se$2(r,t){let e=new Set(r),o=new Set(t);return {toAdd:t.filter(n=>!e.has(n)),toRemove:r.filter(n=>!o.has(n))}}function v(r){return [r.firstname,r.lastname].filter(Boolean).join(" ").trim()||r.externalId}var pe$2=20,G$4=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,pe$2).map(m=>({id:m.externalId,name:v(m),description:m.email}));return ha$1(n)}matches(t,e){return t.externalId.toLowerCase().includes(e)||t.email.toLowerCase().includes(e)||v(t).toLowerCase().includes(e)}};var me$1=r=>({$implicit:r}),de=(r,t)=>t.id,ue$2=(r,t)=>t.externalId;function ge(r,t){r&1&&(vs(0,"p",6),WC(1,"Loading\u2026"),fl());}function _e$1(r,t){r&1&&(vs(0,"span",13),WC(1,"Name is required."),fl());}function fe$1(r,t){r&1&&(vs(0,"p",18),WC(1,"No agent configs available in this namespace."),fl());}function be(r,t){r&1&&Mg(0);}function xe(r,t){if(r&1&&Dg(0,be,1,0,"ng-container",27),r&2){let e=t.$implicit;mC(3);let o=TC(11);Tg("ngTemplateOutlet",o)("ngTemplateOutletContext",oT(2,me$1,e));}}function he(r,t){if(r&1&&(vs(0,"div",19)(1,"span",26),WC(2,"Platform"),fl(),oC(3,xe,1,4,"ng-container",null,de),fl()),r&2){let e=mC(2);XE(3),iC(e.platformAgents());}}function Ce(r,t){r&1&&Mg(0);}function ve(r,t){if(r&1&&Dg(0,Ce,1,0,"ng-container",27),r&2){let e=t.$implicit;mC(3);let o=TC(11);Tg("ngTemplateOutlet",o)("ngTemplateOutletContext",oT(2,me$1,e));}}function ye(r,t){if(r&1&&(vs(0,"div",19)(1,"span",26),WC(2,"Namespace"),fl(),oC(3,ve,1,4,"ng-container",null,de),fl()),r&2){let e=mC(2);XE(3),iC(e.namespaceAgents());}}function Me(r,t){r&1&&(vs(0,"p",18),WC(1,"No members yet."),fl());}function Se(r,t){if(r&1&&(vs(0,"span",31),WC(1),fl()),r&2){let e=mC().$implicit;XE(),Zg(e.email);}}function Ie$1(r,t){if(r&1){let e=dC();vs(0,"li",28)(1,"div",29)(2,"span",30),WC(3),fl(),eC(4,Se,2,1,"span",31),fl(),vs(5,"select",32),Ag("change",function(n){let m=If(e).$implicit,c=mC(3);return wf(c.setMemberRole(m.externalId,n.target.value))}),vs(6,"option",33),WC(7,"Member"),fl(),vs(8,"option",34),WC(9,"Admin"),fl()(),vs(10,"button",35),Ag("click",function(){let n=If(e).$implicit,m=mC(3);return wf(m.removeMember(n.externalId))}),WC(11," \xD7 "),fl()();}if(r&2){let e=t.$implicit;XE(3),Zg(e.label),XE(),tC(e.email&&e.email!==e.label?4:-1),XE(),Tg("value",e.role),Cg("aria-label","Role of "+e.label),XE(5),Tg("title","Remove "+e.label);}}function Ee$1(r,t){if(r&1&&(vs(0,"ul",20),oC(1,Ie$1,12,5,"li",28,ue$2),fl()),r&2){let e=mC(2);XE(),iC(e.selectedMembers());}}function Ge$2(r,t){if(r&1&&(vs(0,"p",22),WC(1),fl()),r&2){let e=mC(2);XE(),Zg(e.errorMessage());}}function Oe(r,t){if(r&1){let e=dC();vs(0,"form",8),Ag("ngSubmit",function(){If(e);let n=mC();return wf(n.submit())}),vs(1,"div",9)(2,"label",10),WC(3,"Name "),vs(4,"span",11),WC(5,"*"),fl()(),bg(6,"input",12),HI(),eC(7,_e$1,2,0,"span",13),fl(),vs(8,"fieldset",14)(9,"legend",15),WC(10," Deployed agents "),vs(11,"span",16),WC(12,"Agents this group can use"),fl()(),vs(13,"p",17),WC(14," Pick from platform agents and this namespace's agents. An agent already deployed to another group in this namespace is unavailable here. "),fl(),eC(15,fe$1,2,0,"p",18),eC(16,he,5,0,"div",19),eC(17,ye,5,0,"div",19),fl(),vs(18,"fieldset",14)(19,"legend",15),WC(20," Members "),vs(21,"span",16),WC(22,"Users in this group"),fl()(),vs(23,"p",17),WC(24,"ADMIN members can manage this group; MEMBER is read-only."),fl(),eC(25,Me,2,0,"p",18)(26,Ee$1,3,0,"ul",20),vs(27,"ds-autocomplete-input",21),Ag("itemSelected",function(n){If(e);let m=mC();return wf(m.onMemberSelected(n))}),fl()(),eC(28,Ge$2,2,1,"p",22),vs(29,"div",23)(30,"button",24),WC(31),fl(),vs(32,"button",25),Ag("click",function(){If(e);let n=mC();return wf(n.cancel())}),WC(33,"Cancel"),fl()()();}if(r&2){let e=mC();Tg("formGroup",e.form),XE(6),Hg("user-group-form__input--invalid",e.nameControl.invalid&&e.nameControl.touched),$I(),XE(),tC(e.nameControl.invalid&&e.nameControl.touched?7:-1),XE(8),tC(e.platformAgents().length===0&&e.namespaceAgents().length===0?15:-1),XE(),tC(e.platformAgents().length>0?16:-1),XE(),tC(e.namespaceAgents().length>0?17:-1),XE(8),tC(e.selectedMembers().length===0?25:26),XE(2),Tg("dataSource",e.memberDataSource),XE(),tC(e.errorMessage()?28:-1),XE(2),Tg("disabled",e.nameControl.invalid||e.isSubmitting()),XE(),yl(" ",e.isEditMode()?"Save changes":"Create"," ");}}function Ae(r,t){if(r&1&&(vs(0,"span",39),WC(1),fl()),r&2){let e=mC().$implicit,o=mC();XE(),yl("in ",o.agentOwnerGroup(e));}}function we(r,t){if(r&1){let e=dC();vs(0,"label",36)(1,"input",37),Ag("change",function(){let n=If(e).$implicit,m=mC();return wf(m.toggleAgent(n))}),fl(),vs(2,"span",38),WC(3),fl(),eC(4,Ae,2,1,"span",39),fl();}if(r&2){let e=t.$implicit,o=mC();Hg("user-group-form__agent--disabled",o.isAgentDisabled(e)),XE(),Tg("checked",o.isAgentSelected(e))("disabled",o.isAgentDisabled(e)),XE(2),Zg(e.name),XE(),tC(o.isAgentDisabled(e)?4:-1);}}var ke=250,le$2=class r{route=g(V$2);router=g(G$5);destroyRef=g(we$1);userGroupState=g(m$3);namespaceId=this.route.snapshot.params.namespaceId;userGroupId=this.route.snapshot.paramMap.get("userGroupId");returnTo=this.route.snapshot.queryParamMap.get("returnTo");isEditMode=Hi$1(false);isLoading=Hi$1(false);isSubmitting=Hi$1(false);errorMessage=Hi$1(null);form=new z$2({name:new _t$1("",{nonNullable:true,validators:[_e$2.required,_e$2.maxLength(ke)]})});get nameControl(){return this.form.controls.name}platformAgents=Hi$1([]);namespaceAgents=Hi$1([]);takenElsewhere=Hi$1(new Map);selectedAgentIds=Hi$1(new Set);candidateUsers=Hi$1([]);selectedMembers=Hi$1([]);originalMemberExternalIds=[];memberDataSource=new G$4(()=>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$2(this.destroyRef)).subscribe({next:({namespaceAgents:t,platformAgents:e,groups:o,users:n})=>{this.namespaceAgents.set(t),this.platformAgents.set(e),this.takenElsewhere.set(ae$3(o,this.userGroupId)),this.candidateUsers.set(n),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$2(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();}});}isAgentDisabled(t){return this.takenElsewhere().has(t.id??"")}agentOwnerGroup(t){return this.takenElsewhere().get(t.id??"")}isAgentSelected(t){return this.selectedAgentIds().has(t.id??"")}toggleAgent(t){let e=t.id;if(!e||this.isAgentDisabled(t))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$3(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$2(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:ce}=se$2(this.originalMemberExternalIds,n);return this.userGroupState.update(t,{name:e,agentIds:o,memberExternalIdsToAdd:c,memberExternalIdsToRemove:ce,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=Aw({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","disabled"],[1,"user-group-form__agent-name"],[1,"user-group-form__agent-note"]],template:function(e,o){e&1&&(vs(0,"div",1)(1,"header",2)(2,"button",3),Ag("click",function(){return o.cancel()}),vs(3,"span",4),WC(4,"\u2190"),fl(),WC(5," User Groups "),fl(),vs(6,"h1",5),WC(7),fl()(),eC(8,ge,2,0,"p",6)(9,Oe,34,12,"form",7),fl(),Dg(10,we,5,6,"ng-template",null,0,fT)),e&2&&(XE(7),Zg(o.isEditMode()?"Edit user group":"New user group"),XE(),tC(o.isLoading()?8:9));},dependencies:[Sb,ni$1,Jn$1,Qn$1,ei$1,Ye$1,Zn$1,Xn$1,En$1,An$1,Pn$1],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--disabled[_ngcontent-%COMP%]{cursor:not-allowed;opacity:.55}.user-group-form__agent--disabled[_ngcontent-%COMP%]:hover{background:transparent}.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__agent-note[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary, #6e6e73);font-style:italic}.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$1(n,t){n&1&&(pl(0,"option",3),WC(1,"All namespaces"),hl());}function re$3(n,t){if(n&1&&(pl(0,"option",4),WC(1),hl()),n&2){let e=t.$implicit;Ng("value",e.id),XE(),Zg(e.name);}}var w=class n{namespaces=mB.required();value=mB(null);includeAllOption=mB(false);valueChange=gB();onChange(t){let e=t.target.value;this.valueChange.emit(e===""?null:e);}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=Aw({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&&(pl(0,"label",0)(1,"span",1),WC(2,"Namespace"),hl(),pl(3,"select",2),Rg("change",function(m){return o.onChange(m)}),eC(4,oe$1,2,0,"option",3),oC(5,re$3,2,2,"option",4,ne$2),hl()()),e&2&&(XE(3),Ng("value",o.value()??""),XE(),tC(o.includeAllOption()?4:-1),XE(),iC(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=dC();vs(0,"span",6),WC(1,"Delete?"),fl(),vs(2,"ds-icon-button",7),Ag("action",function(){If(e);let r=mC();return wf(r.onDeleteConfirmed())}),fl(),vs(3,"ds-icon-button",8),Ag("action",function(){If(e);let r=mC();return wf(r.onDeleteCancelled())}),fl();}}function ie$2(n,t){if(n&1){let e=dC();vs(0,"ds-kebab-menu",9),Ag("itemSelected",function(r){If(e);let m=mC();return wf(m.onMenuAction(r))}),fl();}if(n&2){let e=mC();Tg("items",e.menuItems);}}var D$1=class n{router=g(G$5);userGroup=mB.required();namespaceId=mB.required();returnTo=mB(void 0);deleteRequested=gB();pendingDelete=Hi$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=Aw({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&&(vs(0,"div",0)(1,"div",1)(2,"span",2),WC(3),fl(),vs(4,"span",3),WC(5),fl()(),vs(6,"div",4),eC(7,ae$2,4,0)(8,ie$2,1,1,"ds-kebab-menu",5),fl()()),e&2&&(Hg("user-group-item--pending-delete",o.pendingDelete()),XE(3),Zg(o.userGroup().name),XE(2),Qg(" ",o.agentCount," ",o.agentCount===1?"agent":"agents"," \xB7 ",o.userGroup().userCount," ",o.userGroup().userCount===1?"member":"members"," "),XE(2),tC(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$1(n,t){if(n&1){let e=dC();vs(0,"button",4),Ag("click",function(){If(e);let r=mC();return wf(r.onBack())}),WC(1),fl();}n&2&&(XE(),yl("\u2190 ",t));}function le$1(n,t){if(n&1){let e=dC();vs(0,"agentos-namespace-select",5),Ag("valueChange",function(r){If(e);let m=mC();return wf(m.onNamespaceChange(r))}),fl();}if(n&2){let e=mC();Tg("namespaces",t)("value",e.namespaceId());}}function ue$1(n,t){if(n&1){let e=dC();vs(0,"agentos-user-group-item",7),Ag("deleteRequested",function(r){If(e);let m=mC(2);return wf(m.deleteGroup(r))}),fl();}if(n&2){let e=mC(2);Tg("userGroup",t)("namespaceId",e.namespaceId())("returnTo",e.returnTo());}}function pe$1(n,t){if(n&1&&eC(0,ue$1,1,3,"agentos-user-group-item",6),n&2){let e,o=t.$implicit,r=mC();tC((e=r.resolveGroup(o.id))?0:-1,e);}}var te$3=class n{router=g(G$5);destroyRef=g(we$1);userGroupState=g(m$3);namespaceId=mB.required();backLabel=mB(void 0);namespaces=mB(void 0);hideTitle=mB(false);returnTo=mB(void 0);backRequested=gB();namespaceChange=gB();refresh=Hi$1(0);isLoading=Hi$1(true);groups=F$1(Ly([T(this.namespaceId),T(this.refresh)]).pipe(ma$1(([t])=>(this.isLoading.set(true),this.userGroupState.listByNamespace(t).pipe(Od(()=>this.isLoading.set(false)),ga$1(e=>(console.error("[UserGroupList] Failed to load user groups",e),this.isLoading.set(false),ha$1([]))))))),{initialValue:[]});groupItems=mT(()=>this.groups().map(t=>({id:t.userGroupId,name:t.name})));groupsById=mT(()=>new Map(this.groups().map(t=>[t.userGroupId,t])));resolveGroup(t){return this.groupsById().get(t)??null}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId(),"user-groups","new"],{queryParams:this.returnTo()?{returnTo:this.returnTo()}:{}});}deleteGroup(t){this.userGroupState.delete(t.userGroupId).pipe(U$2(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=Aw({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&&(vs(0,"ds-entity-list",1),Ag("createRequested",function(){return o.openCreateForm()}),eC(1,se$1,2,1,"button",2)(2,le$1,1,2,"agentos-namespace-select",3),fl(),Dg(3,pe$1,1,1,"ng-template",null,0,fT)),e&2){let r,m=TC(4);Tg("hideTitle",o.hideTitle())("items",o.groupItems())("loading",o.isLoading())("showCreate",true)("itemTemplate",m),XE(),tC((r=o.backLabel())?1:(r=o.namespaces())?2:-1,r);}},dependencies:[Wn$1,D$1,w],styles:[".user-group-list__back[_ngcontent-%COMP%]{background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-primary, #007aff);font-family:inherit}.user-group-list__back[_ngcontent-%COMP%]:hover{text-decoration:underline}"]})};var d$3=class s{route=g(V$2);router=g(G$5);namespaceId=this.route.snapshot.params.namespaceId;goBack(){this.router.navigate(["/agentos","namespaces"]);}static \u0275fac=function(e){return new(e||s)};static \u0275cmp=Aw({type:s,selectors:[["agentos-namespace-user-groups"]],decls:1,vars:1,consts:[["backLabel","Namespaces",3,"backRequested","namespaceId"]],template:function(e,a){e&1&&(vs(0,"agentos-user-group-list",0),Ag("backRequested",function(){return a.goBack()}),fl()),e&2&&Tg("namespaceId",a.namespaceId);},dependencies:[te$3],encapsulation:2})};function d$2(r,e){let n=new Map(r.map(t=>[t.userId,t.role])),s=new Set(e.map(t=>t.userId)),i=e.filter(t=>n.get(t.userId)!==t.role),o=r.filter(t=>!s.has(t.userId)).map(t=>t.userId);return {toUpsert:i,toRemove:o}}function p$2(r){return r.some(e=>e.role==="ADMIN")}function a$1(r){return [r.firstname,r.lastname].filter(Boolean).join(" ").trim()||r.email||r.externalId||""}var c$2=20,m$2=class m{constructor(e,n){this.candidates=e;this.excludedUserIds=n;}candidates;excludedUserIds;search(e){let n=e.toLowerCase(),s=this.excludedUserIds(),i=this.candidates().filter(o=>!!o.id&&!s.has(o.id)).filter(o=>this.matches(o,n)).slice(0,c$2).map(o=>({id:o.id,name:a$1(o),description:o.email}));return ha$1(i)}matches(e,n){return (e.externalId??"").toLowerCase().includes(n)||(e.email??"").toLowerCase().includes(n)||a$1(e).toLowerCase().includes(n)}};var u$1=class t{userController=g(oe$2);currentUser=Hi$1(null);loadMe(){return this.userController.getMeUser().pipe(Od(r=>this.currentUser.set(r)))}updateMe(r){let e=this.currentUser();if(!e)throw new Error("Cannot update: current user not loaded");if(!e.id)throw new Error("Cannot update: current user has no id");let c=P(P({},e),r);return this.userController.updateUser(e.id,c).pipe(Od(d=>this.currentUser.set(d)))}static \u0275fac=function(e){return new(e||t)};static \u0275prov=x$1({token:t,factory:t.\u0275fac,providedIn:"root"})};var S=class r{membership=g(Q$3);userController=g(oe$2);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$1=(r,t)=>t.userId;function G$3(r,t){r&1&&(vs(0,"p",5),WC(1,"Loading\u2026"),fl());}function K$1(r,t){r&1&&(vs(0,"p",7),WC(1," You can change roles or remove existing members. Only a platform super-admin can add a new user to this namespace. "),fl());}function Q$2(r,t){r&1&&(vs(0,"p",11),WC(1,"No members yet."),fl());}function W$3(r,t){if(r&1&&(vs(0,"span",22),WC(1),fl()),r&2){let e=mC().$implicit;XE(),Zg(e.email);}}function X$2(r,t){if(r&1){let e=dC();vs(0,"li",19)(1,"div",20)(2,"span",21),WC(3),fl(),eC(4,W$3,2,1,"span",22),fl(),vs(5,"select",23),Ag("change",function(n){let c=If(e).$implicit,Y=mC(3);return wf(Y.setMemberRole(c.userId,n.target.value))}),vs(6,"option",24),WC(7,"Member"),fl(),vs(8,"option",25),WC(9,"Admin"),fl()(),vs(10,"button",26),Ag("click",function(){let n=If(e).$implicit,c=mC(3);return wf(c.removeMember(n.userId))}),WC(11," \xD7 "),fl()();}if(r&2){let e=t.$implicit;XE(3),Zg(e.label),XE(),tC(e.email&&e.email!==e.label?4:-1),XE(),Tg("value",e.role),Cg("aria-label","Role of "+e.label),XE(5),Tg("title","Remove "+e.label);}}function Z$3(r,t){if(r&1&&(vs(0,"ul",12),oC(1,X$2,12,5,"li",19,q$1),fl()),r&2){let e=mC(2);XE(),iC(e.selectedMembers());}}function ee$2(r,t){r&1&&(vs(0,"p",13),WC(1," At least one ADMIN must remain on the namespace. Assign ADMIN to someone before saving. "),fl());}function te$2(r,t){if(r&1){let e=dC();vs(0,"ds-autocomplete-input",27),Ag("itemSelected",function(n){If(e);let c=mC(2);return wf(c.onMemberSelected(n))}),fl();}if(r&2){let e=mC(2);Tg("dataSource",e.memberDataSource);}}function re$2(r,t){if(r&1&&(vs(0,"p",15),WC(1),fl()),r&2){let e=mC(2);XE(),Zg(e.errorMessage());}}function ne$1(r,t){if(r&1){let e=dC();vs(0,"div",6),eC(1,K$1,2,0,"p",7),vs(2,"fieldset",8)(3,"legend",9),WC(4," Roster "),vs(5,"span",10),WC(6,"Exactly one role per user: ADMIN or MEMBER"),fl()(),eC(7,Q$2,2,0,"p",11)(8,Z$3,3,0,"ul",12),eC(9,ee$2,2,0,"p",13),eC(10,te$2,1,1,"ds-autocomplete-input",14),fl(),eC(11,re$2,2,1,"p",15),vs(12,"div",16)(13,"button",17),Ag("click",function(){If(e);let n=mC();return wf(n.submit())}),WC(14," Save changes "),fl(),vs(15,"button",18),Ag("click",function(){If(e);let n=mC();return wf(n.cancel())}),WC(16,"Cancel"),fl()()();}if(r&2){let e=mC();XE(),tC(e.isSuperAdmin()?-1:1),XE(6),tC(e.selectedMembers().length===0?7:8),XE(2),tC(e.wouldLockOutAdmins()?9:-1),XE(),tC(e.isSuperAdmin()?10:-1),XE(),tC(e.errorMessage()?11:-1),XE(2),Tg("disabled",e.isSubmitting()||e.wouldLockOutAdmins());}}var H$2=class r{route=g(V$2);router=g(G$5);destroyRef=g(we$1);memberState=g(S);userState=g(u$1);namespaceId=this.route.snapshot.params.namespaceId;isLoading=Hi$1(false);isSubmitting=Hi$1(false);errorMessage=Hi$1(null);isSuperAdmin=Hi$1(false);selectedMembers=Hi$1([]);originalMembers=[];candidateUsers=Hi$1([]);memberDataSource=new m$2(()=>this.candidateUsers(),()=>new Set(this.selectedMembers().map(t=>t.userId)));ngOnInit(){this.loadData();}loadData(){this.isLoading.set(true),(this.userState.currentUser()?ha$1(this.userState.currentUser()):this.userState.loadMe()).pipe(ga$1(e=>(console.error("[NamespaceMembers] Failed to load current user",e),ha$1(null))),U$2(this.destroyRef)).subscribe(e=>{let i=e?.isAdmin===true;this.isSuperAdmin.set(i),this.loadMembersAndCandidates(i);});}loadMembersAndCandidates(t){By({members:this.memberState.listMembers(this.namespaceId),allUsers:t?this.memberState.listAllUsers():ha$1([])}).pipe(U$2(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$3(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$2(this.originalMembers,this.selectedMembers().map(n=>({userId:n.userId,role:n.role})));if(t.length===0&&e.length===0){this.isSubmitting.set(false),this.navigateBack();return}let i=[...t.map(n=>({userId:n.userId,role:n.role})),...e.map(n=>({userId:n}))];this.memberState.updateMembers(this.namespaceId,i).pipe(U$2(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=Aw({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&&(vs(0,"div",0)(1,"header",1)(2,"button",2),Ag("click",function(){return i.cancel()}),vs(3,"span",3),WC(4,"\u2190"),fl(),WC(5," Namespaces "),fl(),vs(6,"h1",4),WC(7,"Members"),fl()(),eC(8,G$3,2,0,"p",5)(9,ne$1,17,6,"div",6),fl()),e&2&&(XE(8),tC(i.isLoading()?8:9));},dependencies:[Pn$1],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 Q$1=[[["","agentosCardChips",""]]],q=["[agentosCardChips]"];function F(n,t){n&1&&Mg(0);}function U$1(n,t){if(n&1){let e=dC();vs(0,"button",3),Ag("click",function(){If(e);let l=mC();return wf(l.nameClicked.emit())}),Dg(1,F,1,0,"ng-container",4),fl();}if(n&2){mC();let e=TC(3);XE(),Tg("ngTemplateOutlet",e);}}function R$1(n,t){n&1&&Mg(0);}function G$2(n,t){if(n&1&&(vs(0,"div",2),Dg(1,R$1,1,0,"ng-container",4),fl()),n&2){mC();let e=TC(3);XE(),Tg("ngTemplateOutlet",e);}}function H$1(n,t){if(n&1&&(vs(0,"div",7),bg(1,"img",15),fl()),n&2){let e=mC(2);XE(),Tg("src",e.logo(),yh)("alt",e.name());}}function J$1(n,t){if(n&1&&(vs(0,"div",16),WC(1),fl()),n&2){let e=mC(2);Hg("ac__mark--emoji",e.markIsEmoji()),XE(),Zg(e.resolvedMark);}}function L$2(n,t){if(n&1&&(vs(0,"span",10),WC(1),fl()),n&2){let e=mC(2);XE(),Zg(e.name());}}function W$2(n,t){if(n&1){let e=dC();vs(0,"button",17),Ag("click",function(){If(e);let l=mC(2);return wf(l.nameClicked.emit())}),WC(1),fl();}if(n&2){let e=mC(2);XE(),Zg(e.name());}}function X$1(n,t){if(n&1&&(vs(0,"p",12),WC(1),fl()),n&2){let e=mC(2);XE(),Zg(e.description());}}function Y$1(n,t){if(n&1){let e=dC();vs(0,"ds-kebab-menu",18),Ag("itemSelected",function(l){If(e);let K=mC(2);return wf(K.menuAction.emit(l))}),fl();}if(n&2){let e=mC(2);Tg("items",e.menuItems());}}function Z$2(n,t){n&1&&(vs(0,"div",14),DC(1),fl());}function $$1(n,t){if(n&1&&(vs(0,"div",5)(1,"div",6),eC(2,H$1,2,2,"div",7)(3,J$1,2,3,"div",8),vs(4,"div",9),eC(5,L$2,2,1,"span",10)(6,W$2,2,1,"button",11),eC(7,X$1,2,1,"p",12),fl()(),eC(8,Y$1,1,1,"ds-kebab-menu",13),fl(),eC(9,Z$2,2,0,"div",14)),n&2){let e=mC();XE(2),tC(e.logo()?2:3),XE(3),tC(e.clickable()?5:6),XE(2),tC(e.description()?7:-1),XE(),tC(e.hasMenu?8:-1),XE(),tC(e.hasChips?9:-1);}}var h$2=class n{static \u0275fac=function(e){return new(e||n)};static \u0275dir=ks({type:n,selectors:[["","agentosCardChips",""]]})},B$1=class n{name=mB.required();description=mB(null);mark=mB(null);markIsEmoji=mB(false);logo=mB(null);menuItems=mB([]);clickable=mB(false);nameClicked=gB();menuAction=gB();chipsSlot=EB(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=Aw({type:n,selectors:[["agentos-action-card"]],contentQueries:function(e,m,l){e&1&&Pg(l,m.chipsSlot,h$2,5),e&2&&CC();},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,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&&(vC(Q$1),eC(0,U$1,2,1,"button",1)(1,G$2,2,1,"div",2),Dg(2,$$1,10,5,"ng-template",null,0,fT)),e&2&&tC(m.clickable()?0:1);},dependencies:[Kn$1,Zn$2,Sb],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 Q=()=>[];function X(p,n){if(p&1){let t=dC();gl(0,1),vs(1,"span",2),WC(2,"Delete?"),fl(),vs(3,"ds-icon-button",3),Ag("action",function(){If(t);let e=mC();return wf(e.onDeleteConfirmed())}),fl(),vs(4,"ds-icon-button",4),Ag("action",function(){If(t);let e=mC();return wf(e.onDeleteCancelled())}),fl(),ml();}}function Y(p,n){if(p&1){let t=dC();gl(0,1),vs(1,"button",5),Ag("click",function(){If(t);let e=mC();return wf(e.onIntegrations())}),kf(),vs(2,"svg",6),bg(3,"path",7)(4,"path",8),fl(),WC(5," Integrations "),fl(),Ff(),vs(6,"button",5),Ag("click",function(){If(t);let e=mC();return wf(e.onAiProviders())}),kf(),vs(7,"svg",6),bg(8,"rect",9)(9,"rect",10)(10,"path",11),fl(),WC(11," AI Providers "),fl(),Ff(),vs(12,"button",5),Ag("click",function(){If(t);let e=mC();return wf(e.onAiModels())}),kf(),vs(13,"svg",6),bg(14,"path",12),fl(),WC(15," AI Models "),fl(),Ff(),vs(16,"button",5),Ag("click",function(){If(t);let e=mC();return wf(e.onAgentConfigs())}),kf(),vs(17,"svg",6),bg(18,"path",13)(19,"circle",14)(20,"circle",15),fl(),WC(21," Agent Configs "),fl(),Ff(),vs(22,"button",5),Ag("click",function(){If(t);let e=mC();return wf(e.onPrompts())}),kf(),vs(23,"svg",6),bg(24,"path",16)(25,"path",17)(26,"path",18),fl(),WC(27," Prompts "),fl(),Ff(),vs(28,"button",5),Ag("click",function(){If(t);let e=mC();return wf(e.onScheduledPrompts())}),kf(),vs(29,"svg",6),bg(30,"circle",19)(31,"path",20),fl(),WC(32," Schedulers "),fl(),Ff(),vs(33,"button",5),Ag("click",function(){If(t);let e=mC();return wf(e.onUserGroups())}),kf(),vs(34,"svg",6),bg(35,"circle",21)(36,"path",22)(37,"path",23),fl(),WC(38," User Groups "),fl(),Ff(),vs(39,"button",5),Ag("click",function(){If(t);let e=mC();return wf(e.onAuthSettings())}),kf(),vs(40,"svg",6),bg(41,"circle",24)(42,"path",25)(43,"path",26),fl(),WC(44," Auth Settings "),fl(),Ff(),vs(45,"button",5),Ag("click",function(){If(t);let e=mC();return wf(e.onMembers())}),kf(),vs(46,"svg",6),bg(47,"circle",24)(48,"path",27),fl(),WC(49," Members "),fl(),ml();}}var M=class p{namespace=mB.required();selected=gB();editRequested=gB();integrationsRequested=gB();aiProvidersRequested=gB();aiModelsRequested=gB();agentConfigsRequested=gB();promptsRequested=gB();scheduledPromptsRequested=gB();userGroupsRequested=gB();membersRequested=gB();authSettingsRequested=gB();deleteRequested=gB();pendingDelete=Hi$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());}onAuthSettings(){this.authSettingsRequested.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||p)};static \u0275cmp=Aw({type:p,selectors:[["agentos-namespace-item"]],inputs:{namespace:[1,"namespace"]},outputs:{selected:"selected",editRequested:"editRequested",integrationsRequested:"integrationsRequested",aiProvidersRequested:"aiProvidersRequested",aiModelsRequested:"aiModelsRequested",agentConfigsRequested:"agentConfigsRequested",promptsRequested:"promptsRequested",scheduledPromptsRequested:"scheduledPromptsRequested",userGroupsRequested:"userGroupsRequested",membersRequested:"membersRequested",authSettingsRequested:"authSettingsRequested",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"],["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"]],template:function(t,i){t&1&&(vs(0,"agentos-action-card",0),Ag("nameClicked",function(){return i.onSelect()})("menuAction",function(o){return i.onMenuAction(o)}),eC(1,X,5,0,"ng-container",1)(2,Y,50,0,"ng-container",1),fl()),t&2&&(Tg("name",i.namespace().name)("menuItems",i.pendingDelete()?rT(3,Q):i.menuItems),XE(),tC(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 Z$1=()=>[];function ee$1(p,n){if(p&1){let t=dC();vs(0,"agentos-namespace-item",3),Ag("selected",function(e){If(t);let o=mC(2);return wf(o.navigateToHome(e.id??""))})("editRequested",function(e){If(t);let o=mC(2);return wf(o.navigateToEdit(e))})("deleteRequested",function(e){If(t);let o=mC(2);return wf(o.deleteNamespace(e))})("integrationsRequested",function(e){If(t);let o=mC(2);return wf(o.openIntegrations(e))})("aiProvidersRequested",function(e){If(t);let o=mC(2);return wf(o.openAiProviders(e))})("aiModelsRequested",function(e){If(t);let o=mC(2);return wf(o.openAiModels(e))})("agentConfigsRequested",function(e){If(t);let o=mC(2);return wf(o.openAgentConfigs(e))})("promptsRequested",function(e){If(t);let o=mC(2);return wf(o.openPrompts(e))})("scheduledPromptsRequested",function(e){If(t);let o=mC(2);return wf(o.openScheduledPrompts(e))})("userGroupsRequested",function(e){If(t);let o=mC(2);return wf(o.openUserGroups(e))})("membersRequested",function(e){If(t);let o=mC(2);return wf(o.openMembers(e))})("authSettingsRequested",function(e){If(t);let o=mC(2);return wf(o.openAuthSettings(e))}),fl();}p&2&&Tg("namespace",n);}function te$1(p,n){if(p&1&&eC(0,ee$1,1,1,"agentos-namespace-item",2),p&2){let t,i=n.$implicit,e=mC();tC((t=e.namespacesById().get(i.id))?0:-1,t);}}var W$1=class p{router=g(G$5);namespaceController=g(G$6);destroyRef=g(we$1);refresh$=new Tr(void 0);isLoading=Hi$1(true);namespaces$=this.refresh$.pipe(ma$1(()=>(this.isLoading.set(true),this.namespaceController.listAllNamespace())));namespaceItems$=this.namespaces$.pipe(ue$3(n=>n.map(t=>({id:t.id??"",name:t.name,description:t.description,badges:t.defaultAgentName?[{label:t.defaultAgentName,variant:"info"}]:void 0}))));namespacesById=Hi$1(new Map);constructor(){this.namespaces$.pipe(U$2(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"]);}openMembers(n){this.router.navigate(["/agentos",n.id,"members"]);}deleteNamespace(n){this.namespaceController.deleteNamespace(n.id??"").pipe(U$2(this.destroyRef)).subscribe(()=>this.refresh$.next());}static \u0275fac=function(t){return new(t||p)};static \u0275cmp=Aw({type:p,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"],[3,"selected","editRequested","deleteRequested","integrationsRequested","aiProvidersRequested","aiModelsRequested","agentConfigsRequested","promptsRequested","scheduledPromptsRequested","userGroupsRequested","membersRequested","authSettingsRequested","namespace"]],template:function(t,i){if(t&1&&(vs(0,"ds-entity-list",1),aT(1,"async"),Ag("itemSelected",function(o){return i.navigateToHome(o)})("createRequested",function(){return i.navigateToCreate()}),fl(),Dg(2,te$1,1,1,"ng-template",null,0,fT)),t&2){let e=TC(3);Tg("items",uT(1,4,i.namespaceItems$)??rT(6,Z$1))("loading",i.isLoading())("showCreate",true)("itemTemplate",e);}},dependencies:[M,Wn$1,Nb],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(oe$2);users=Hi$1([]);isLoading=Hi$1(false);loadAll(){return this.isLoading.set(true),this.userController.listAllUser().pipe(Od({next:e=>{this.users.set(e),this.isLoading.set(false);},error:()=>this.isLoading.set(false)}))}createUser(e){return this.userController.createUser(e).pipe(Od(()=>{this.loadAll().subscribe();}))}updateUser(e,r){let t=this.users().find(i=>i.id===e);if(!t)throw new Error(`Cannot update: user ${e} not found in state`);let U=P(P({},t),r);return this.userController.updateUser(e,U).pipe(Od(i=>{this.users.update(b=>b.map(l=>l.id===i.id?i:l));}))}deleteUser(e){return this.userController.deleteUser(e).pipe(Od(()=>{this.users.update(r=>r.filter(t=>t.id!==e));}))}static \u0275fac=function(r){return new(r||o)};static \u0275prov=x$1({token:o,factory:o.\u0275fac,providedIn:"root"})};function j$1(i,o){i&1&&(vs(0,"p",5),WC(1,"Loading\u2026"),fl());}function H(i,o){if(i&1&&(vs(0,"span",13),WC(1),fl()),i&2){let t=mC(2);XE(),Zg(t.form.controls.email.value);}}function J(i,o){i&1&&(bg(0,"input",14),HI()),i&2&&$I();}function K(i,o){if(i&1){let t=dC();vs(0,"form",7),Ag("ngSubmit",function(){If(t);let l=mC();return wf(l.save())}),vs(1,"div",8)(2,"h2",9),WC(3,"Identity"),fl(),vs(4,"div",10)(5,"label",11),WC(6,"Email "),vs(7,"span",12),WC(8,"*"),fl()(),eC(9,H,2,1,"span",13)(10,J,1,0,"input",14),fl(),vs(11,"div",10)(12,"label",15),WC(13,"External ID"),fl(),bg(14,"input",16),HI(),fl()(),vs(15,"div",8)(16,"h2",9),WC(17,"Profile"),fl(),vs(18,"div",10)(19,"label",17),WC(20,"First name"),fl(),bg(21,"input",18),HI(),fl(),vs(22,"div",10)(23,"label",19),WC(24,"Last name"),fl(),bg(25,"input",20),HI(),fl(),vs(26,"div",21)(27,"label",22),WC(28,"Bio"),fl(),bg(29,"textarea",23),HI(),fl()(),vs(30,"div",8)(31,"h2",9),WC(32,"Permissions"),fl(),vs(33,"div",24),bg(34,"input",25),HI(),vs(35,"label",26),WC(36," Super admin (full access to AgentOS) "),fl()()(),vs(37,"div",27)(38,"button",28),WC(39),fl(),vs(40,"button",29),Ag("click",function(){If(t);let l=mC();return wf(l.cancel())}),WC(41,"Cancel"),fl()()();}if(i&2){let t=mC();Tg("formGroup",t.form),XE(9),tC(t.isEditMode?9:10),XE(5),$I(),XE(7),$I(),XE(4),$I(),XE(4),$I(),XE(5),$I(),XE(4),Tg("disabled",t.form.invalid||t.isSaving()),XE(),yl(" ",t.isSaving()?"Saving\u2026":t.isEditMode?"Save changes":"Create user"," ");}}var $=class i{route=g(V$2);router=g(G$5);destroyRef=g(we$1);userAdminState=g(c$1);userState=g(u$1);userId=this.route.snapshot.params.userId;isEditMode=!!this.userId;isSaving=Hi$1(false);isLoading=Hi$1(false);form=new z$2({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$2(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$2(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$2(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=Aw({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&&(vs(0,"div",0)(1,"header",1)(2,"button",2),Ag("click",function(){return a.cancel()}),vs(3,"span",3),WC(4,"\u2190"),fl(),WC(5," Users "),fl(),vs(6,"h1",4),WC(7),fl()(),eC(8,j$1,2,0,"p",5)(9,K,42,4,"form",6),fl()),t&2&&(XE(7),Zg(a.title),XE(),tC(a.isLoading()?8:9));},dependencies:[ni$1,Jn$1,Ye$1,wt,Zn$1,Xn$1,En$1,An$1],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&&(vs(0,"span",3),WC(1),fl()),i&2){let e=mC();XE(),Zg(e.subtitle);}}var I$2=class i{user=mB.required();editRequested=gB();deleteRequested=gB();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=Aw({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&&(vs(0,"div",0)(1,"div",1)(2,"span",2),WC(3),fl(),eC(4,ee,2,1,"span",3),fl(),vs(5,"div",4)(6,"ds-kebab-menu",5),Ag("itemSelected",function(o){return n.onMenuAction(o)}),fl()()()),e&2&&(XE(3),Zg(n.displayName),XE(),tC(n.subtitle?4:-1),XE(2),Tg("items",n.menuItems));},dependencies:[Kn$1,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=dC();vs(0,"agentos-namespace-select",4),Ag("valueChange",function(s){If(e);let o=mC();return wf(o.onNamespaceChange(s))}),fl();}if(i&2){let e=mC();Tg("namespaces",t)("value",e.selectedNamespaceId())("includeAllOption",true);}}function ne(i,t){if(i&1){let e=dC();vs(0,"ds-icon-button",5),Ag("action",function(){If(e);let s=mC();return wf(s.goBack())}),fl();}}function ie$1(i,t){if(i&1){let e=dC();vs(0,"agentos-user-item",7),Ag("editRequested",function(s){If(e);let o=mC(2);return wf(o.navigateToEdit(s))})("deleteRequested",function(s){If(e);let o=mC(2);return wf(o.deleteUser(s))}),fl();}i&2&&Tg("user",t);}function se(i,t){if(i&1&&eC(0,ie$1,1,1,"agentos-user-item",6),i&2){let e,n=t.$implicit,s=mC();tC((e=s.resolveUser(n.id))?0:-1,e);}}var k=class i{router=g(G$5);destroyRef=g(we$1);userAdminState=g(c$1);namespaceMembership=g(Q$3);showBackButton=mB(true);namespaces=mB(void 0);selectedNamespaceId=mB(null);hideTitle=mB(false);namespaceFilterChange=gB();isLoading=this.userAdminState.isLoading;namespaceUserIds=F$1(T(this.selectedNamespaceId).pipe(ma$1(t=>t?this.namespaceMembership.getMembersNamespaceMembership(t).pipe(ue$3(e=>new Set(e.map(n=>n.id))),ga$1(e=>(console.error("[UserList] Failed to load namespace users",e),ha$1(null)))):ha$1(null))),{initialValue:null});userItems=mT(()=>{let t=this.namespaceUserIds();return this.userAdminState.users().filter(e=>t===null||t.has(e.id??"")).map(e=>({id:e.id??"",name:[e.firstname,e.lastname].filter(Boolean).join(" ")||e.email||"\u2014",description:e.email}))});get usersById(){return new Map(this.userAdminState.users().map(t=>[t.id??"",t]))}ngOnInit(){this.userAdminState.loadAll().pipe(U$2(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$2(this.destroyRef)).subscribe();}resolveUser(t){return this.usersById.get(t)??null}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=Aw({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&&(vs(0,"ds-entity-list",1),Ag("createRequested",function(){return n.navigateToCreate()}),eC(1,te,1,3,"agentos-namespace-select",2)(2,ne,1,0,"ds-icon-button",3),fl(),Dg(3,se,1,1,"ng-template",null,0,fT)),e&2){let s,o=TC(4);Tg("hideTitle",n.hideTitle())("items",n.userItems())("loading",n.isLoading())("showCreate",true)("pageSize",100)("itemTemplate",o),XE(),tC((s=n.namespaces())?1:n.showBackButton()?2:-1,s);}},dependencies:[Wn$1,I$2,Se$1,w],encapsulation:2})};function re$1(i,t){if(i&1){let e=dC();vs(0,"agentos-user-list",9),Ag("namespaceFilterChange",function(s){If(e);let o=mC();return wf(o.onUsersNamespaceChange(s))}),fl();}if(i&2){let e=mC();Tg("showBackButton",false)("hideTitle",true)("namespaces",e.namespaces())("selectedNamespaceId",e.usersNamespaceFilter());}}function ae$1(i,t){i&1&&(vs(0,"p",10),WC(1,"No namespaces yet. Create one before managing groups."),fl());}function oe(i,t){if(i&1){let e=dC();vs(0,"agentos-user-group-list",12),Ag("namespaceChange",function(s){If(e);let o=mC(2);return wf(o.onGroupsNamespaceChange(s))}),fl();}if(i&2){let e=mC(2);Tg("namespaceId",t)("hideTitle",true)("namespaces",e.namespaces())("returnTo",e.returnTo());}}function le(i,t){if(i&1&&eC(0,ae$1,2,0,"p",10)(1,oe,1,4,"agentos-user-group-list",11),i&2){let e,n=mC();tC(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(we$1);namespaceController=g(G$6);activeTab=Hi$1(this.route.snapshot.queryParamMap.get("tab")==="groups"?"groups":"users");namespaces=Hi$1([]);usersNamespaceFilter=Hi$1(null);groupsNamespaceId=Hi$1(null);returnTo=mT(()=>{let t=this.groupsNamespaceId();return t?`/agentos/admin/users?tab=groups&ns=${t}`:"/agentos/admin/users?tab=groups"});constructor(){let t=this.route.snapshot.queryParamMap.get("ns");this.namespaceController.listAllNamespace().pipe(U$2(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=Aw({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&&(vs(0,"div",0)(1,"header",1)(2,"button",2),Ag("click",function(){return n.goBack()}),WC(3,"\u2190 Admin"),fl(),vs(4,"h1",3),WC(5,"Users & Groups"),fl()(),vs(6,"div",4)(7,"button",5),Ag("click",function(){return n.setTab("users")}),WC(8," Users "),fl(),vs(9,"button",6),Ag("click",function(){return n.setTab("groups")}),WC(10," Groups "),fl()(),vs(11,"div",7),eC(12,re$1,1,4,"agentos-user-list",8)(13,le,2,1),fl()()),e&2&&(XE(7),Hg("admin-users-groups__tab--active",n.activeTab()==="users"),Cg("aria-selected",n.activeTab()==="users"),XE(2),Hg("admin-users-groups__tab--active",n.activeTab()==="groups"),Cg("aria-selected",n.activeTab()==="groups"),XE(2),Cg("aria-labelledby",n.activeTab()==="users"?"admin-tab-users":"admin-tab-groups"),XE(),tC(n.activeTab()==="users"?12:13));},dependencies:[k,te$3],styles:[".admin-users-groups[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem;padding:1.5rem 1rem 0;--entity-list-toolbar-max-width: 900px}.admin-users-groups__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem;max-width:900px;margin:0 auto;width:100%}.admin-users-groups__back[_ngcontent-%COMP%]{align-self:flex-start;background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-primary, #007aff);font-family:inherit}.admin-users-groups__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.admin-users-groups__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-text, #1d1d1f);letter-spacing:-.02em}.admin-users-groups__tabs[_ngcontent-%COMP%]{display:inline-flex;gap:.25rem;padding:.25rem;border-radius:10px;background:var(--color-surface-hover, rgba(0, 0, 0, .05));border:1px solid var(--color-border, rgba(0, 0, 0, .08));max-width:900px;margin:0 auto;width:fit-content;align-self:center}.admin-users-groups__tab[_ngcontent-%COMP%]{padding:.4rem 1.25rem;border-radius:8px;border:none;background:transparent;color:var(--color-text-secondary, #6e6e73);font-size:.9rem;font-family:inherit;font-weight:500;cursor:pointer;transition:background .15s ease,color .15s ease}.admin-users-groups__tab[_ngcontent-%COMP%]:hover{color:var(--color-text, #1d1d1f)}.admin-users-groups__tab--active[_ngcontent-%COMP%]{background:var(--color-bg-surface, #fff);color:var(--color-text, #1d1d1f);box-shadow:0 1px 2px #00000014}.admin-users-groups__empty[_ngcontent-%COMP%]{max-width:900px;margin:1rem auto;width:100%;color:var(--color-text-secondary, #6e6e73);font-size:.9rem}"]})};var p$1=["industry","terminal"],l$2=["light","dark","system"],r="agentos.theme.variant",a="agentos.theme.mode",y="agentos.theme",m$1=class n{_theme=Hi$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 w$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=Aw({type:t,selectors:[["agentos-shell"]],decls:1,vars:0,template:function(e,c){e&1&&bg(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(TS);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.sanitize(e,{ADD_TAGS:["span"],ADD_ATTR:["aria-hidden","aria-label","target","rel"],ALLOWED_URI_REGEXP:/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.-]+(?:[^a-z+.-:]|$))/i});return this.sanitizer.bypassSecurityTrustHtml(t)}buildRenderer(){let r=new Ue$1,e=r.link.bind(r);return r.link=t=>{let n=e(t);return this.isExternal(t.href)&&(n=n.replace("<a ",'<a target="_blank" rel="noopener noreferrer" ').replace("</a>",'<span class="external-link-icon" aria-hidden="true">\u2197</span></a>')),n},r}isExternal(r){if(!r||r.startsWith("/")||r.startsWith("#")||r.startsWith("?"))return false;if(r.startsWith("//"))return true;try{return new URL(r,window.location.href).hostname!==window.location.hostname}catch(e){return false}}static \u0275fac=function(e){return new(e||a)};static \u0275pipe=An$2({name:"agentosMarkdown",type:a,pure:true})};
|
|
2
|
-
var l=["send","newline"],c="agentos.enter-key-behavior",d="send",o=class t{_enterKeyBehavior=Hi$1(this.readStoredBehavior());enterKeyBehavior=this._enterKeyBehavior.asReadonly();composerHint=mT(()=>this._enterKeyBehavior()==="newline"?"Enter for a new line \xB7 Ctrl/Cmd+Enter to send":"Enter to send \xB7 Shift+Enter for a new line");setEnterKeyBehavior(e){this._enterKeyBehavior.set(e);try{localStorage.setItem(c,e);}catch(r){}}shouldSend(e){let r=e.key==="Enter"&&!e.isComposing,E=e.ctrlKey||e.metaKey,h=this._enterKeyBehavior()==="newline"?E:!e.shiftKey;return r&&h}readStoredBehavior(){try{let e=localStorage.getItem(c);return e&&l.includes(e)?e:d}catch(e){return d}}static \u0275fac=function(r){return new(r||t)};static \u0275prov=x$1({token:t,factory:t.\u0275fac,providedIn:"root"})},f=new w$1("agentos.user-preferences-port",{providedIn:"root",factory:()=>g(o)});var m=class e{promptController=g(ee$3);exportService=g(ie$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(dy);config=g(y$1);zone=g(G$7);popupCheckInterval=null;popupClosedAt=null;static POPUP_CLOSE_GRACE_MS=2e3;pendingQuestion=Hi$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([]);_selected$=new Tr(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(G$6);_initialized$=new Tr(false);initialized$=this._initialized$.asObservable();activeNamespaceId=Hi$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(Rd(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([]).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=dC();pl(0,"button",2),Rg("click",function(){If(e);let a=mC(2);return wf(a.onNavigate("/agentos/admin"))}),kf(),pl(1,"svg",3),Sg(2,"path",17),hl(),WC(3," Administration "),hl();}}function U(n,t){n&1&&(pl(0,"span",14),WC(1,"On"),hl());}function z$1(n,t){n&1&&(pl(0,"span",14),WC(1,"On"),hl());}function A(n,t){n&1&&(kf(),pl(0,"svg",3),Sg(1,"circle",18)(2,"path",19),hl(),WC(3," Light mode "));}function G$1(n,t){n&1&&(kf(),pl(0,"svg",3),Sg(1,"path",20),hl(),WC(2," Dark mode "));}function I(n,t){if(n&1){let e=dC();pl(0,"div",0),Rg("click",function(a){If(e);let T=mC();return wf(T.onClose(a))})("keyup.escape",function(a){If(e);let T=mC();return wf(T.onClose(a))}),hl(),pl(1,"div",1)(2,"button",2),Rg("click",function(){If(e);let a=mC();return wf(a.onNavigate("/agentos/user"))}),kf(),pl(3,"svg",3),Sg(4,"circle",4)(5,"path",5),hl(),WC(6," User settings "),hl(),eC(7,L$1,4,0,"button",6),Ff(),Sg(8,"div",7),pl(9,"button",2),Rg("click",function(){If(e);let a=mC();return wf(a.onNavigate("/agentos/namespaces"))}),kf(),pl(10,"svg",3),Sg(11,"rect",8)(12,"rect",9)(13,"rect",10)(14,"rect",11),hl(),WC(15," Namespaces "),hl(),Ff(),pl(16,"button",2),Rg("click",function(){If(e);let a=mC();return wf(a.onLogsToggle())}),kf(),pl(17,"svg",3),Sg(18,"polyline",12)(19,"line",13),hl(),WC(20," Technical logs "),eC(21,U,2,0,"span",14),hl(),Ff(),pl(22,"button",2),Rg("click",function(){If(e);let a=mC();return wf(a.onToolCallsToggle())}),kf(),pl(23,"svg",3),Sg(24,"path",15)(25,"path",16),hl(),WC(26," Tool calls "),eC(27,z$1,2,0,"span",14),hl(),Ff(),Sg(28,"div",7),pl(29,"button",2),Rg("click",function(){If(e);let a=mC();return wf(a.onThemeToggle())}),eC(30,A,4,0)(31,G$1,3,0),hl()();}if(n&2){let e=mC();XE(),Vg("top",e.variant()==="compact"?e.fixedTop():null,"px")("left",e.variant()==="compact"?e.fixedLeft():null,"px"),Hg("shell-user-menu__overlay--topbar",e.variant()==="topbar")("shell-user-menu__overlay--mobile",e.variant()==="mobile")("shell-user-menu__overlay--compact",e.variant()==="compact"),XE(6),tC(e.isAdmin()?7:-1),XE(9),Hg("shell-user-menu__item--active",e.showTechnical()),XE(5),tC(e.showTechnical()?21:-1),XE(),Hg("shell-user-menu__item--active",e.showToolCalls()),XE(5),tC(e.showToolCalls()?27:-1),XE(3),tC(e.isDark()?30:31);}}var D=class n{open=mB.required();isAdmin=mB.required();isDark=mB.required();themeVariant=mB.required();showTechnical=mB.required();showToolCalls=mB.required();variant=mB("desktop");fixedTop=mB(0);fixedLeft=mB(0);navigateTo=gB();themeToggled=gB();themeVariantChanged=gB();logsToggled=gB();toolCallsToggled=gB();closed=gB();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=Aw({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&&eC(0,I,32,18),e&2&&tC(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}"]})};function Dn(o,t){o&1&&(kf(),Sg(0,"circle",2)(1,"path",3));}function Vn(o,t){o&1&&(kf(),Sg(0,"circle",4)(1,"circle",5));}function Rn(o,t){o&1&&(kf(),Sg(0,"circle",6)(1,"rect",7));}function Nn(o,t){o&1&&(kf(),Sg(0,"circle",8)(1,"line",9)(2,"circle",10));}function An(o,t){o&1&&(kf(),Sg(0,"circle",1));}var me=class o{status=mB.required();size=mB(16);Status=xe$1;static \u0275fac=function(e){return new(e||o)};static \u0275cmp=Aw({type:o,selectors:[["agentos-case-status-glyph"]],hostVars:8,hostBindings:function(e,n){e&2&&Hg("is-running",n.status()===n.Status.RUNNING)("is-pending",n.status()===n.Status.PENDING)("is-error",n.status()===n.Status.ERROR)("is-killed",n.status()===n.Status.KILLED);},inputs:{status:[1,"status"],size:[1,"size"]},decls:6,vars:3,consts:[["viewBox","0 0 16 16","fill","none","aria-hidden","true"],["cx","8","cy","8","r","5.5","stroke","currentColor","stroke-width","1.6"],["cx","8","cy","8","r","6","stroke","currentColor","stroke-width","1.6","opacity","0.25"],["d","M8 2 A6 6 0 0 1 14 8","stroke","currentColor","stroke-width","1.8","stroke-linecap","round",1,"arc"],["cx","8","cy","8","r","6","stroke","currentColor","stroke-width","1.4","opacity","0.5"],["cx","8","cy","8","r","2.4","fill","currentColor",1,"dot"],["cx","8","cy","8","r","6.2","fill","currentColor","opacity","0.9"],["x","4.6","y","7.1","width","6.8","height","1.8","fill","var(--color-bg)"],["cx","8","cy","8","r","6.2","fill","currentColor"],["x1","8","y1","4.6","x2","8","y2","8.8","stroke","var(--color-bg)","stroke-width","1.7","stroke-linecap","round"],["cx","8","cy","11.2","r","1","fill","var(--color-bg)"]],template:function(e,n){if(e&1&&(kf(),pl(0,"svg",0),eC(1,Dn,2,0)(2,Vn,2,0)(3,Rn,2,0)(4,Nn,3,0)(5,An,1,0,":svg:circle",1),hl()),e&2){let i;Cg("width",n.size())("height",n.size()),XE(),tC((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)}}"]})};var pe=class o{caseController=g(_);cases=Hi$1([]);loadSubscription=null;currentNamespaceId=null;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(Od(()=>this.reloadCurrent()))}setStarred(t,e){return Zy(()=>(this.patchFavorite(t,e),(e?this.caseController.starCase(t):this.caseController.unstarCase(t)).pipe(ga$1(i=>(this.patchFavorite(t,!e),Hy(()=>i))))))}renameCase(t,e){return Zy(()=>{let n=this.cases().find(a=>a.id===t);if(!n)return Hy(()=>new Error(`[CaseState] Case ${t} is not in the current list`));let i=n.title;return this.patchTitle(t,e),this.caseController.updateCase(t,z$3(P({},n),{title:e})).pipe(ga$1(a=>(this.patchTitle(t,i),Hy(()=>a))))})}patchFavorite(t,e){this.cases.update(n=>n.map(i=>i.id===t?z$3(P({},i),{favorite:e}):i));}patchTitle(t,e){this.cases.update(n=>n.map(i=>i.id===t?z$3(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$3(P({},i),{status:e}):i));}static \u0275fac=function(e){return new(e||o)};static \u0275prov=x$1({token:o,factory:o.\u0275fac,providedIn:"root"})};function Fn(o,t){if(o&1){let e=dC();pl(0,"div",5)(1,"input",8),Rg("input",function(i){If(e);let a=mC();return wf(a.onFreeTextInput(i))})("keydown",function(i){If(e);let a=mC();return wf(a.onFreeTextKeydown(i))}),hl(),pl(2,"button",9),Rg("click",function(){If(e);let i=mC();return wf(i.submitFreeText())}),WC(3," Submit "),hl()();}if(o&2){let e=mC();XE(),Ng("value",e.freeTextValue()),XE(),Ng("disabled",!e.freeTextValue().trim());}}function qn(o,t){if(o&1){let e=dC();pl(0,"button",11),Rg("click",function(){let i=If(e).$implicit,a=mC(2);return wf(a.selectOption(i))}),WC(1),hl();}if(o&2){let e=t.$implicit;XE(),yl(" ",e," ");}}function Ln(o,t){if(o&1&&(pl(0,"div",6),oC(1,qn,2,1,"button",10,rC),hl()),o&2){let e=mC();XE(),iC(e.questionEvent().options);}}function zn(o,t){if(o&1){let e=dC();pl(0,"button",11),Rg("click",function(){let i=If(e).$implicit,a=mC(2);return wf(a.selectOption(i))}),WC(1),hl();}if(o&2){let e=t.$implicit;XE(),yl(" ",e," ");}}function $n(o,t){if(o&1){let e=dC();pl(0,"div",6),oC(1,zn,2,1,"button",10,rC),hl(),pl(3,"div",12)(4,"input",13),Rg("input",function(i){If(e);let a=mC();return wf(a.onFreeTextInput(i))})("keydown",function(i){If(e);let a=mC();return wf(a.onFreeTextKeydown(i))}),hl(),pl(5,"button",9),Rg("click",function(){If(e);let i=mC();return wf(i.submitFreeText())}),WC(6," Submit "),hl()();}if(o&2){let e=mC();XE(),iC(e.questionEvent().options),XE(3),Ng("value",e.freeTextValue()),XE(),Ng("disabled",!e.freeTextValue().trim());}}function Un(o,t){if(o&1){let e=dC();pl(0,"div",7)(1,"p",14),WC(2," This action requires authorization. Click below to open the authorization page. "),hl(),pl(3,"div",15)(4,"button",16),Rg("click",function(){If(e);let i=mC();return wf(i.onAuthorize())}),WC(5," Authorize "),hl(),pl(6,"button",17),Rg("click",function(){If(e);let i=mC();return wf(i.onOAuthCancel())}),WC(7," Cancel "),hl()()();}}var Ue=class o{oauthService=g(h$1);questionEvent=mB.required();answered=gB();cancelled=gB();QuestionType=me$2;freeTextValue=Hi$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=Aw({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&&(pl(0,"div",0)(1,"div",1)(2,"span",2),WC(3),hl(),pl(4,"span",3),WC(5,"asks"),hl()(),pl(6,"p",4),WC(7),hl(),eC(8,Fn,4,2,"div",5)(9,Ln,3,0,"div",6)(10,$n,7,2)(11,Un,8,0,"div",7),hl()),e&2){let i;XE(3),Zg(n.questionEvent().agentName),XE(4),Zg(n.questionEvent().question),XE(),tC((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 Hn=["promptItem"],_n=(o,t)=>t.name;function Bn(o,t){if(o&1&&(pl(0,"span",5),WC(1),hl()),o&2){let e=t.$implicit;XE(),Kg("","{","","{","",e.name,"","}","","}");}}function jn(o,t){if(o&1&&(pl(0,"span",6),WC(1),hl()),o&2){let e=mC().$implicit;XE(),Zg(e.description);}}function Qn(o,t){if(o&1){let e=dC();pl(0,"li",3,0),Rg("click",function(){let i=If(e).$implicit,a=mC();return wf(a.onItemClick(i))})("keydown.enter",function(){let i=If(e).$implicit,a=mC();return wf(a.onItemClick(i))})("mouseenter",function(){let i=If(e).$index,a=mC();return wf(a.activeIndex.set(i))}),pl(2,"span",4),WC(3),oC(4,Bn,2,5,"span",5,_n),hl(),eC(6,jn,2,1,"span",6),hl();}if(o&2){let e=t.$implicit,n=t.$index,i=mC();Hg("prompt-autocomplete__item--active",i.isActive(n)),Cg("aria-selected",i.isActive(n)),XE(3),yl(" /",e.name," "),XE(),iC(e.parameters),XE(2),tC(e.description?6:-1);}}var ie=class o{prompts=mB.required();selected=gB();dismissed=gB();activeIndex=Hi$1(0);itemRefs=DB();constructor(){Hf(()=>{this.prompts(),this.activeIndex.set(0);});}navigate(t){let e=this.prompts();switch(t){case "ArrowDown":this.activeIndex.set(Math.min(this.activeIndex()+1,e.length-1)),this.scrollActiveIntoView();break;case "ArrowUp":this.activeIndex.set(Math.max(this.activeIndex()-1,0)),this.scrollActiveIntoView();break;case "Enter":{let n=e[this.activeIndex()];n&&this.selected.emit(n);break}case "Escape":this.dismissed.emit();break}}onItemClick(t){this.selected.emit(t);}isActive(t){return this.activeIndex()===t}completionFor(t){return `/${t.name} `}scrollActiveIntoView(){this.itemRefs()[this.activeIndex()]?.nativeElement.scrollIntoView({block:"nearest"});}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=Aw({type:o,selectors:[["agentos-prompt-autocomplete"]],viewQuery:function(e,n){e&1&&Lg(n.itemRefs,Hn,5),e&2&&CC();},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&&(pl(0,"ul",1),oC(1,Qn,7,5,"li",2,_n),hl()),e&2&&(XE(),iC(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 Wn=["agentItem"],Gn=(o,t)=>t.id;function Kn(o,t){if(o&1&&(pl(0,"span",5),WC(1),hl()),o&2){let e=mC().$implicit;XE(),Zg(e.description);}}function Yn(o,t){if(o&1){let e=dC();pl(0,"li",3,0),Rg("click",function(){let i=If(e).$implicit,a=mC();return wf(a.onItemClick(i))})("keydown.enter",function(){let i=If(e).$implicit,a=mC();return wf(a.onItemClick(i))})("mouseenter",function(){let i=If(e).$index,a=mC();return wf(a.activeIndex.set(i))}),pl(2,"span",4),WC(3),hl(),eC(4,Kn,2,1,"span",5),hl();}if(o&2){let e=t.$implicit,n=t.$index,i=mC();Hg("agent-autocomplete__item--active",i.isActive(n)),Cg("aria-selected",i.isActive(n)),XE(3),Zg("@"+e.name),XE(),tC(e.description?4:-1);}}var ae=class o{agents=mB.required();selected=gB();dismissed=gB();activeIndex=Hi$1(0);itemRefs=DB();constructor(){Hf(()=>{this.agents(),this.activeIndex.set(0);});}navigate(t){let e=this.agents();switch(t){case "ArrowDown":this.activeIndex.set(Math.min(this.activeIndex()+1,e.length-1)),this.scrollActiveIntoView();break;case "ArrowUp":this.activeIndex.set(Math.max(this.activeIndex()-1,0)),this.scrollActiveIntoView();break;case "Enter":{let n=e[this.activeIndex()];n&&this.selected.emit(n);break}case "Escape":this.dismissed.emit();break}}onItemClick(t){this.selected.emit(t);}isActive(t){return this.activeIndex()===t}completionFor(t){return `@${t.name} `}scrollActiveIntoView(){this.itemRefs()[this.activeIndex()]?.nativeElement.scrollIntoView({block:"nearest"});}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=Aw({type:o,selectors:[["agentos-agent-autocomplete"]],viewQuery:function(e,n){e&1&&Lg(n.itemRefs,Wn,5),e&2&&CC();},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&&(pl(0,"ul",1),oC(1,Yn,5,5,"li",2,Gn),hl()),e&2&&(XE(),iC(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 He=class o{agentConfigController=g(M$1);userState=g(u$1);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 _t(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 _e=class o{promptState=g(m);agentState=g(He);destroyRef=g(we$1);slashSuggestions=Hi$1([]);atSuggestions=Hi$1([]);namespaceId="";effectivePrompts=[];promptsLoaded=false;slashPrefix$=new ce;effectiveAgents=[];agentsLoaded=false;atPrefix$=new ce;constructor(){this.slashPrefix$.pipe(Id(60),ma$1(t=>(this.promptsLoaded?ha$1(this.effectivePrompts):this.promptState.listEffective(this.namespaceId).pipe(ga$1(()=>ha$1([])))).pipe(ue$3(n=>({prefix:t,prompts:n})))),U$2(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(Id(60),ma$1(t=>(this.agentsLoaded?ha$1(this.effectiveAgents):this.agentState.listEffective(this.namespaceId).pipe(ga$1(()=>ha$1([])))).pipe(ue$3(n=>({prefix:t,agents:n})))),U$2(this.destroyRef)).subscribe(({prefix:t,agents:e})=>{this.effectiveAgents=e,this.agentsLoaded=true,this.atSuggestions.set(_t(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 h=n()?.nativeElement;h&&(h.value=a,h.setSelectionRange(a.length,a.length),h.focus());}),this.slashSuggestions.set([]);}onAgentSelected(t,e,n,i){let a=e()?.completionFor(t)??`@${t.name} `,h=i().replace(/@\w*$/,a);i.set(h),queueMicrotask(()=>{let T=n()?.nativeElement;T&&(T.value=h,T.setSelectionRange(h.length,h.length),T.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(_t(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 un={status:"loading",files:[],capability:"NONE"};function Jn(o){return [...o].sort((t,e)=>new Date(e.lastModified).getTime()-new Date(t.lastModified).getTime())}var re=class o{controller=g(Y$2);namespaceId=null;caseId=null;caseRefresh$=new Tr(void 0);namespaceRefresh$=new Tr(void 0);caseView=this.buildScopeView(this.caseRefresh$,()=>this.caseId,t=>this.controller.getCaseFilesManifestExchange(t));namespaceView=this.buildScopeView(this.namespaceRefresh$,()=>this.namespaceId,t=>this.controller.getNamespaceFilesManifestExchange(t));caseStatus=mT(()=>this.caseView().status);namespaceStatus=mT(()=>this.namespaceView().status);caseFiles=mT(()=>this.caseView().files);namespaceFiles=mT(()=>this.namespaceView().files);caseFileCount=mT(()=>this.caseFiles().length);namespaceFileCount=mT(()=>this.namespaceFiles().length);fileCount=mT(()=>this.caseFileCount()+this.namespaceFileCount());canWriteCase=mT(()=>this.caseView().capability==="READ_WRITE");canWriteNamespace=mT(()=>this.namespaceView().capability==="READ_WRITE");caseSectionVisible=mT(()=>this.caseView().status!=="forbidden");namespaceSectionVisible=mT(()=>this.namespaceView().status!=="forbidden");caseUploading=Hi$1(false);namespaceUploading=Hi$1(false);loadScope(t){return t().pipe(ue$3(e=>({status:"ready",files:Jn(e.files??[]),capability:e.capability??"NONE"})),ga$1(e=>{let n=e?.status===403||e?.status===404;return ha$1({status:n?"forbidden":"error",files:[],capability:"NONE"})}))}buildScopeView(t,e,n){let i=t.pipe(ma$1(()=>{let a=e();return a?this.loadScope(()=>n(a)):ha$1(un)}),Rd({bufferSize:1,refCount:true}));return F$1(i,{initialValue:un})}initializeForCase(t,e){this.namespaceId=t,this.caseId=e,this.refreshManifest();}initializeForNamespace(t){this.namespaceId=t,this.namespaceRefresh$.next();}clear(){this.namespaceId=null,this.caseId=null,this.refreshManifest();}refreshManifest(){this.caseRefresh$.next(),this.namespaceRefresh$.next();}refreshCase(){this.caseRefresh$.next();}refreshNamespace(){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):Hy(()=>new Error("No active scope for content request"))}uploadFile(t,e){return dt(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 h=n?this.controller.uploadCaseFileExchange(i,e):this.controller.uploadNamespaceFileExchange(i,e);return new Promise(T=>{h.subscribe({next:()=>{a.set(false),this.refreshManifest(),T({success:true});},error:f=>{a.set(false),T({success:false,error:this.uploadErrorMessage(f)});}});})})}uploadErrorMessage(t){let e={400:t?.error?.message??"This file type is not allowed.",409:"A file with this name already exists.",413:"This file is too large."};return t?.status!=null&&e[t.status]||t?.message||"Upload failed"}deleteFile(t,e){return dt(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(h=>{a.subscribe({next:()=>{this.refreshManifest(),h({success:true});},error:T=>h({success:false,error:T?.message??"Delete failed"})});})})}downloadFile(t,e){let n=t==="CASE",i=n?this.caseId:this.namespaceId;if(!i)return Promise.resolve({success:false,error:"No active scope"});let a=e.split("/").pop()??e,h=n?this.controller.downloadCaseFileExchange(i,e):this.controller.downloadNamespaceFileExchange(i,e);return new Promise(T=>{h.subscribe({next:f=>{this.saveBlob(f,a),T({success:true});},error:f=>{console.error("[exchange] download failed",f),T({success:false,error:f?.message??"Download failed"});}});})}downloadAll(t){return dt(this,null,function*(){let e=t==="CASE"?this.caseFiles():this.namespaceFiles(),n=0,i=0;for(let a of e)i++>0&&(yield new Promise(T=>setTimeout(T,300))),(yield this.downloadFile(t,a.path)).success||n++;return {success:n===0,failedCount:n}})}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"})};var Xn=20*1024*1024,Zn=["pdf","png","jpg","jpeg","gif","webp","zip","tar","gz","exe","bin","doc","docx","xls","xlsx","ppt","pptx"];function ut(o){return o.split(".").pop()?.toLowerCase()??""}function je(o){switch(ut(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 gn(o){return o<1024?`${o} B`:o<1024*1024?`${(o/1024).toFixed(1)} KB`:`${(o/(1024*1024)).toFixed(1)} MB`}function hn(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 Cn(o){switch(ut(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 eo(o){return !Zn.includes(ut(o))}function to(o){return o<=Xn}function fn(o){return eo(o.filename)&&to(o.size)}function bn(o){try{return JSON.stringify(JSON.parse(o),null,2)}catch(t){return o}}function xn(o){let t=/^(case|namespace)-exchange__(editFiles|remove|moveFile)$/.exec(o??"");return t?t[1]:null}var no=["backButton"];function oo(o,t){if(o&1){let e=dC();vs(0,"ds-empty-state",7)(1,"button",13),Ag("click",function(){If(e);let i=mC();return wf(i.onDownload())}),WC(2,"Download instead"),fl()();}}function io(o,t){o&1&&(vs(0,"div",8),bg(1,"ds-spinner",14),fl());}function ao(o,t){if(o&1){let e=dC();vs(0,"ds-empty-state",9)(1,"button",13),Ag("click",function(){If(e);let i=mC();return wf(i.onDownload())}),WC(2,"Download instead"),fl()();}}function ro(o,t){if(o&1&&(bg(0,"div",10),aT(1,"agentosMarkdown")),o&2){let e=mC();Tg("innerHTML",uT(1,1,e.content()),aE);}}function so(o,t){if(o&1&&bg(0,"iframe",11),o&2){let e=mC();Tg("srcdoc",e.displayContent(),aE)("title","Preview of "+e.filename());}}function lo(o,t){if(o&1&&(vs(0,"pre",12),WC(1),fl()),o&2){let e=mC();XE(),Zg(e.displayContent());}}var Qe=class o{file=mB.required();content=mB(null);status=mB("loading");canView=mB(true);closeRequested=gB();downloadRequested=gB();backButton=vB("backButton",{read:Qt});constructor(){ME(()=>{this.backButton()?.nativeElement?.querySelector("button")?.focus();});}filename=mT(()=>{let t=this.file().path;return t.split("/").pop()??t});format=mT(()=>Cn(this.filename()));displayContent=mT(()=>{let t=this.content();return t==null?"":this.format()==="json"?bn(t):t});onClose(){this.closeRequested.emit();}onDownload(){this.downloadRequested.emit(this.file());}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=Aw({type:o,selectors:[["agentos-exchange-content-viewer"]],viewQuery:function(e,n){e&1&&Lg(n.backButton,no,5,Qt),e&2&&CC();},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&&(vs(0,"div",1)(1,"header",2)(2,"ds-icon-button",3,0),Ag("action",function(){return n.onClose()}),fl(),vs(4,"span",4),WC(5),fl(),vs(6,"ds-icon-button",5),Ag("action",function(){return n.onDownload()}),fl()(),vs(7,"div",6),eC(8,oo,3,0,"ds-empty-state",7)(9,io,2,0,"div",8)(10,ao,3,0,"ds-empty-state",9)(11,ro,2,3,"div",10)(12,so,1,2,"iframe",11)(13,lo,2,1,"pre",12),fl()()),e&2&&(XE(4),Tg("title",n.filename()),XE(),Zg(n.filename()),XE(),Tg("title","Download "+n.filename()),XE(2),tC(n.canView()?n.status()==="loading"?9:n.status()==="error"?10:n.format()==="markdown"?11:n.format()==="html"?12:13:8));},dependencies:[Xn$2,Gn$1,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 co=(o,t)=>t.label;function mo(o,t){if(o&1&&(vs(0,"span"),WC(1),fl()),o&2){let e=t.$implicit;FC(XC("exchange-item__badge exchange-item__badge--",e.variant)),XE(),Zg(e.label);}}function po(o,t){if(o&1){let e=dC();vs(0,"ds-icon-button",10),Ag("action",function(){If(e);let i=mC();return wf(i.deleteRequested.emit())}),fl();}if(o&2){let e=mC();Tg("title","Delete "+e.row().filename);}}var fe=class o{row=mB.required();active=mB(false);canWrite=mB(false);viewRequested=gB();downloadRequested=gB();deleteRequested=gB();static toRow(t){return {path:t.path,filename:t.filename,meta:`${gn(t.size)} \xB7 ${hn(t.lastModified)}`,icon:je(t.filename)}}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=Aw({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&&(vs(0,"div",0)(1,"button",1),Ag("click",function(){return n.viewRequested.emit()}),vs(2,"span",2),WC(3),fl(),vs(4,"span",3)(5,"span",4),WC(6),fl(),vs(7,"span",5),WC(8),oC(9,mo,2,4,"span",6,co),fl()()(),vs(11,"div",7)(12,"ds-icon-button",8),Ag("action",function(){return n.downloadRequested.emit()}),fl(),eC(13,po,1,1,"ds-icon-button",9),fl()()),e&2&&(Hg("exchange-item--active",n.active()),XE(),Cg("data-exchange-path",n.row().path)("aria-current",n.active()?"true":null)("aria-label","View "+n.row().filename),XE(2),Zg(n.row().icon),XE(3),Zg(n.row().filename),XE(2),yl(" ",n.row().meta," "),XE(),iC(n.row().badges),XE(3),Tg("title","Download "+n.row().filename),XE(),tC(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:8px;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:6px}.exchange-item__icon[_ngcontent-%COMP%]{flex-shrink:0;font-size:1.25rem;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:.8125rem;font-weight:600;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:999px;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 _o=(o,t)=>t.path;function uo(o,t){if(o&1){let e=dC();vs(0,"li",1)(1,"agentos-exchange-item",2),Ag("viewRequested",function(){let i=If(e).$implicit,a=mC();return wf(a.onView(i))})("downloadRequested",function(){let i=If(e).$implicit,a=mC();return wf(a.onDownload(i))})("deleteRequested",function(){let i=If(e).$implicit,a=mC();return wf(a.onDelete(i))}),fl()();}if(o&2){let e=t.$implicit,n=mC();XE(),Tg("row",e)("active",n.isActive(e))("canWrite",n.canWrite());}}var We=class o{rows=mB.required();scope=mB.required();activeFile=mB(null);canWrite=mB(false);fileSelected=gB();downloadRequested=gB();deleteRequested=gB();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=Aw({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&&(vs(0,"ul",0),oC(1,uo,2,3,"li",1,_o),fl()),e&2&&(XE(),iC(n.rows()));},dependencies:[fe],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 go=["fileInput"];function ho(o,t){if(o&1){let e=dC();vs(0,"agentos-exchange-content-viewer",4),Ag("closeRequested",function(){If(e);let i=mC();return wf(i.onViewerClose())})("downloadRequested",function(i){If(e);let a=mC();return wf(a.downloadRequested.emit(i))}),fl();}if(o&2){let e=mC();Tg("file",t)("content",e.selectedContent())("status",e.contentStatus())("canView",e.canViewSelected());}}function Co(o,t){if(o&1){let e=dC();vs(0,"ds-icon-button",20),Ag("action",function(){If(e);let i=mC(3);return wf(i.triggerUpload(i.CASE))}),fl();}if(o&2){let e=mC(3);Tg("disabled",e.caseUploading());}}function fo(o,t){o&1&&(vs(0,"span",15),WC(1,"read-only"),fl());}function bo(o,t){if(o&1){let e=dC();vs(0,"ds-icon-button",21),Ag("action",function(){If(e);let i=mC(3);return wf(i.downloadAllRequested.emit(i.CASE))}),fl();}}function xo(o,t){o&1&&(vs(0,"p",17),WC(1,"Uploading\u2026"),fl());}function vo(o,t){o&1&&(vs(0,"div",18),bg(1,"ds-spinner",22),fl());}function yo(o,t){if(o&1){let e=dC();vs(0,"div",19)(1,"span"),WC(2,"Couldn't load case files."),fl(),vs(3,"button",23),Ag("click",function(){If(e);let i=mC(3);return wf(i.retryRequested.emit())}),WC(4,"Retry"),fl()();}}function wo(o,t){if(o&1&&bg(0,"ds-empty-state",24),o&2){let e=mC(4);Tg("hint",e.canWriteCase()?"Upload a file to share it with this case.":void 0);}}function So(o,t){if(o&1){let e=dC();vs(0,"agentos-exchange-file-list",26),Ag("fileSelected",function(i){If(e);let a=mC(4);return wf(a.onFileSelected(i))})("downloadRequested",function(i){If(e);let a=mC(4);return wf(a.downloadRequested.emit(i))})("deleteRequested",function(i){If(e);let a=mC(4);return wf(a.deleteRequested.emit(i))}),fl();}if(o&2){let e=mC(4);Tg("rows",e.caseRows())("scope",e.CASE)("canWrite",e.canWriteCase())("activeFile",e.activeFile());}}function Mo(o,t){if(o&1&&eC(0,wo,1,1,"ds-empty-state",24)(1,So,1,4,"agentos-exchange-file-list",25),o&2){let e=mC(3);tC(e.caseFiles().length===0?0:1);}}function Eo(o,t){if(o&1&&(vs(0,"section",9)(1,"div",11)(2,"h3",12),WC(3,"Case files"),fl(),vs(4,"div",13),eC(5,Co,1,1,"ds-icon-button",14)(6,fo,2,0,"span",15),eC(7,bo,1,0,"ds-icon-button",16),fl()(),eC(8,xo,2,0,"p",17),eC(9,vo,2,0,"div",18)(10,yo,5,0,"div",19)(11,Mo,2,1),fl()),o&2){let e,n=mC(2);XE(5),tC(n.canWriteCase()?5:6),XE(2),tC(n.caseFiles().length>0?7:-1),XE(),tC(n.caseUploading()?8:-1),XE(),tC((e=n.caseStatus())==="loading"?9:e==="error"?10:11);}}function To(o,t){if(o&1){let e=dC();vs(0,"ds-icon-button",20),Ag("action",function(){If(e);let i=mC(3);return wf(i.triggerUpload(i.NAMESPACE))}),fl();}if(o&2){let e=mC(3);Tg("disabled",e.namespaceUploading());}}function ko(o,t){o&1&&(vs(0,"span",15),WC(1,"read-only"),fl());}function Po(o,t){if(o&1){let e=dC();vs(0,"ds-icon-button",28),Ag("action",function(){If(e);let i=mC(3);return wf(i.downloadAllRequested.emit(i.NAMESPACE))}),fl();}}function Oo(o,t){o&1&&(vs(0,"div",18),bg(1,"ds-spinner",29),fl());}function Io(o,t){if(o&1){let e=dC();vs(0,"div",19)(1,"span"),WC(2,"Couldn't load namespace files."),fl(),vs(3,"button",23),Ag("click",function(){If(e);let i=mC(3);return wf(i.retryRequested.emit())}),WC(4,"Retry"),fl()();}}function Do(o,t){if(o&1&&bg(0,"ds-empty-state",30),o&2){let e=mC(4);Tg("hint",e.canWriteNamespace()?"Upload a file to share it across this namespace.":void 0);}}function Vo(o,t){if(o&1){let e=dC();vs(0,"agentos-exchange-file-list",26),Ag("fileSelected",function(i){If(e);let a=mC(4);return wf(a.onFileSelected(i))})("downloadRequested",function(i){If(e);let a=mC(4);return wf(a.downloadRequested.emit(i))})("deleteRequested",function(i){If(e);let a=mC(4);return wf(a.deleteRequested.emit(i))}),fl();}if(o&2){let e=mC(4);Tg("rows",e.namespaceRows())("scope",e.NAMESPACE)("canWrite",e.canWriteNamespace())("activeFile",e.activeFile());}}function Ro(o,t){if(o&1&&eC(0,Do,1,1,"ds-empty-state",30)(1,Vo,1,4,"agentos-exchange-file-list",25),o&2){let e=mC(3);tC(e.namespaceFiles().length===0?0:1);}}function No(o,t){if(o&1&&(vs(0,"section",9)(1,"div",11)(2,"h3",12),WC(3,"Namespace files"),fl(),vs(4,"div",13),eC(5,To,1,1,"ds-icon-button",14)(6,ko,2,0,"span",15),eC(7,Po,1,0,"ds-icon-button",27),fl()(),eC(8,Oo,2,0,"div",18)(9,Io,5,0,"div",19)(10,Ro,2,1),fl()),o&2){let e,n=mC(2);XE(5),tC(n.canWriteNamespace()?5:6),XE(2),tC(n.namespaceFiles().length>0?7:-1),XE(),tC((e=n.namespaceStatus())==="loading"?8:e==="error"?9:10);}}function Ao(o,t){o&1&&(vs(0,"p",10),WC(1,"No files available."),fl());}function Fo(o,t){if(o&1){let e=dC();vs(0,"header",5)(1,"span",6),WC(2,"Files"),fl(),vs(3,"ds-icon-button",7),Ag("action",function(){If(e);let i=mC();return wf(i.closeRequested.emit())}),fl()(),vs(4,"div",8),eC(5,Eo,12,4,"section",9),eC(6,No,11,3,"section",9),eC(7,Ao,2,0,"p",10),fl();}if(o&2){let e=mC();XE(5),tC(e.caseSectionVisible()?5:-1),XE(),tC(e.namespaceSectionVisible()?6:-1),XE(),tC(!e.caseSectionVisible()&&!e.namespaceSectionVisible()?7:-1);}}var Ge$1=class o{caseFiles=mB([]);caseStatus=mB.required();caseSectionVisible=mB(false);canWriteCase=mB(false);caseUploading=mB(false);namespaceFiles=mB([]);namespaceStatus=mB.required();namespaceSectionVisible=mB(false);canWriteNamespace=mB(false);namespaceUploading=mB(false);activeFile=mB(null);selectedContent=mB(null);contentStatus=mB("loading");canViewSelected=mB(true);fileSelected=gB();uploadRequested=gB();downloadRequested=gB();downloadAllRequested=gB();deleteRequested=gB();retryRequested=gB();closeRequested=gB();viewerClosed=gB();host=g(Qt);fileInput=vB("fileInput");CASE="CASE";NAMESPACE="NAMESPACE";caseRows=mT(()=>this.caseFiles().map(fe.toRow));namespaceRows=mT(()=>this.namespaceFiles().map(fe.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=Aw({type:o,selectors:[["agentos-exchange-drawer"]],viewQuery:function(e,n){e&1&&Lg(n.fileInput,go,5),e&2&&CC();},inputs:{caseFiles:[1,"caseFiles"],caseStatus:[1,"caseStatus"],caseSectionVisible:[1,"caseSectionVisible"],canWriteCase:[1,"canWriteCase"],caseUploading:[1,"caseUploading"],namespaceFiles:[1,"namespaceFiles"],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",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"],["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","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"],["type","button",1,"exchange-drawer__retry",3,"click"],["icon","folder_open","title","No case files",3,"hint"],[3,"rows","scope","canWrite","activeFile"],[3,"fileSelected","downloadRequested","deleteRequested","rows","scope","canWrite","activeFile"],["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&&(vs(0,"div",1),eC(1,ho,1,4,"agentos-exchange-content-viewer",2)(2,Fo,8,3),vs(3,"input",3,0),Ag("change",function(a){return n.onFileInputChange(a)}),fl()()),e&2){let i;XE(),tC((i=n.activeFile())?1:2,i);}},dependencies:[Se$1,Xn$2,Gn$1,We,Qe],styles:[".exchange-drawer[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.exchange-drawer__header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .5rem .5rem .75rem;border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .1));flex-shrink:0}.exchange-drawer__title[_ngcontent-%COMP%]{font-size:.875rem;font-weight:700;color:var(--color-text, #1d1d1f)}.exchange-drawer__sections[_ngcontent-%COMP%]{flex:1;min-height:0;overflow:auto;padding:.5rem;display:flex;flex-direction:column;gap:1rem}.exchange-drawer__section-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:0 .25rem .25rem}.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:8px;font-size:.8125rem;color:var(--color-error, #ff3b30);background:var(--color-bg-hover, rgba(0, 0, 0, .04))}.exchange-drawer__retry[_ngcontent-%COMP%]{appearance:none;cursor:pointer;border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:6px;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-size:.6875rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-secondary, #6e6e73)}.exchange-drawer__readonly-badge[_ngcontent-%COMP%]{font-size:.5625rem;font-weight:800;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:999px;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}"]})};function qo(o,t){if(o&1&&(vs(0,"p",1),WC(1),fl()),o&2){let e=mC();XE(),Zg(e.actionError());}}var Ke=class o{route=g(V$2);destroyRef=g(we$1);state=g(re);closeRequested=gB();selectedFile=Hi$1(null);selectedContent=Hi$1(null);contentStatus=Hi$1("loading");canViewSelected=Hi$1(true);actionError=Hi$1(null);pendingDelete=Hi$1(null);confirmOpen=mT(()=>this.pendingDelete()!==null);deleteMessage=mT(()=>{let t=this.pendingDelete();return t?`Delete "${t.path.split("/").pop()??t.path}"? This action cannot be undone.`:""});activeCaseId=null;constructor(){this.route.queryParams.pipe(U$2()).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());}),Hf(t=>t(()=>this.state.clear()));}onFileSelected(t){this.selectedFile.set(t),this.selectedContent.set(null);let e=this.findFile(t),n=e?fn(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$2(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(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(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(this,null,function*(){this.actionError.set(null);let e=yield this.state.downloadAll(t);e.failedCount>0&&this.actionError.set(e.failedCount===1?"A file failed to download.":`${e.failedCount} files failed to download.`);})}onDeleteRequest(t){this.pendingDelete.set(t);}onConfirmDelete(){return dt(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=Aw({type:o,selectors:[["agentos-exchange-shell"]],outputs:{closeRequested:"closeRequested"},decls:4,vars:17,consts:[[1,"exchange-shell"],["role","alert",1,"exchange-shell__upload-error"],[1,"exchange-shell__drawer",3,"fileSelected","uploadRequested","downloadRequested","downloadAllRequested","deleteRequested","retryRequested","viewerClosed","closeRequested","caseFiles","caseStatus","caseSectionVisible","canWriteCase","caseUploading","namespaceFiles","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&&(vs(0,"div",0),eC(1,qo,2,1,"p",1),vs(2,"agentos-exchange-drawer",2),Ag("fileSelected",function(a){return n.onFileSelected(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()}),fl()(),vs(3,"ds-confirm-dialog",3),Ag("confirmed",function(){return n.onConfirmDelete()})("cancelled",function(){return n.onCancelDelete()}),fl()),e&2&&(XE(),tC(n.actionError()?1:-1),XE(),Tg("caseFiles",n.state.caseFiles())("caseStatus",n.state.caseStatus())("caseSectionVisible",n.state.caseSectionVisible())("canWriteCase",n.state.canWriteCase())("caseUploading",n.state.caseUploading())("namespaceFiles",n.state.namespaceFiles())("namespaceStatus",n.state.namespaceStatus())("namespaceSectionVisible",n.state.namespaceSectionVisible())("canWriteNamespace",n.state.canWriteNamespace())("namespaceUploading",n.state.namespaceUploading())("activeFile",n.selectedFile())("selectedContent",n.selectedContent())("contentStatus",n.contentStatus())("canViewSelected",n.canViewSelected()),XE(),Tg("open",n.confirmOpen())("message",n.deleteMessage()));},dependencies:[Ge$1,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 Ye=class o{membership=g(L$3);userController=g(oe$2);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 Lo=(o,t)=>t.userId;function zo(o,t){o&1&&(vs(0,"p",5),WC(1,"Loading\u2026"),fl());}function $o(o,t){o&1&&(vs(0,"p",7),WC(1," You can change roles or remove existing members. Only a platform super-admin can add a new user to this case. "),fl());}function Uo(o,t){o&1&&(vs(0,"p",11),WC(1,"No members yet."),fl());}function Ho(o,t){if(o&1&&(vs(0,"span",23),WC(1),fl()),o&2){let e=mC().$implicit;XE(),Zg(e.email);}}function Bo(o,t){if(o&1&&(vs(0,"span",24),WC(1),aT(2,"lowercase"),fl()),o&2){let e=mC().$implicit;XE(),Zg(uT(2,1,e.role));}}function jo(o,t){if(o&1){let e=dC();vs(0,"select",25),Ag("change",function(i){If(e);let a=mC().$implicit,h=mC(3);return wf(h.setMemberRole(a.userId,i))}),vs(1,"option",26),WC(2,"Member"),fl(),vs(3,"option",27),WC(4,"Admin"),fl()(),vs(5,"button",28),Ag("click",function(){If(e);let i=mC().$implicit,a=mC(3);return wf(a.removeMember(i.userId))}),WC(6," \xD7 "),fl();}if(o&2){let e=mC().$implicit;Tg("value",e.role),Cg("aria-label","Role of "+e.label),XE(5),Tg("title","Remove "+e.label);}}function Qo(o,t){if(o&1&&(vs(0,"li",20)(1,"div",21)(2,"span",22),WC(3),fl(),eC(4,Ho,2,1,"span",23),fl(),eC(5,Bo,3,3,"span",24)(6,jo,7,3),fl()),o&2){let e=t.$implicit,n=mC(3);Hg("case-members__member--self",e.userId===n.currentUserId()?.id),XE(3),Zg(e.label),XE(),tC(e.email&&e.email!==e.label?4:-1),XE(),tC(e.userId===n.currentUserId()?.id?5:6);}}function Wo(o,t){if(o&1&&(vs(0,"ul",12),oC(1,Qo,7,5,"li",19,Lo),fl()),o&2){let e=mC(2);XE(),iC(e.selectedMembers());}}function Go(o,t){o&1&&(vs(0,"p",13),WC(1,"At least one ADMIN must remain on the case."),fl());}function Ko(o,t){if(o&1){let e=dC();vs(0,"ds-autocomplete-input",29),Ag("itemSelected",function(i){If(e);let a=mC(2);return wf(a.onMemberSelected(i))}),fl();}if(o&2){let e=mC(2);Tg("dataSource",e.memberDataSource);}}function Yo(o,t){if(o&1&&(vs(0,"p",15),WC(1),fl()),o&2){let e=mC(2);XE(),Zg(e.errorMessage());}}function Jo(o,t){if(o&1){let e=dC();vs(0,"div",6),eC(1,$o,2,0,"p",7),vs(2,"fieldset",8)(3,"legend",9),WC(4," Members "),vs(5,"span",10),WC(6,"ADMIN or MEMBER"),fl()(),eC(7,Uo,2,0,"p",11)(8,Wo,3,0,"ul",12),eC(9,Go,2,0,"p",13),eC(10,Ko,1,1,"ds-autocomplete-input",14),fl(),eC(11,Yo,2,1,"p",15),vs(12,"div",16)(13,"button",17),Ag("click",function(){If(e);let i=mC();return wf(i.submit())}),WC(14," Save "),fl(),vs(15,"button",18),Ag("click",function(){If(e);let i=mC();return wf(i.cancel())}),WC(16,"Cancel"),fl()()();}if(o&2){let e=mC();XE(),tC(e.isSuperAdmin()?-1:1),XE(6),tC(e.selectedMembers().length===0?7:8),XE(2),tC(e.wouldLockOutAdmins()?9:-1),XE(),tC(e.isSuperAdmin()?10:-1),XE(),tC(e.errorMessage()?11:-1),XE(2),Tg("disabled",e.isSubmitting()||e.wouldLockOutAdmins());}}var Je=class o{destroyRef=g(we$1);memberState=g(Ye);userState=g(u$1);caseId=mB.required();closeRequested=gB();currentUserId=this.userState.currentUser;isLoading=Hi$1(false);isSubmitting=Hi$1(false);errorMessage=Hi$1(null);isSuperAdmin=Hi$1(false);selectedMembers=Hi$1([]);originalMembers=[];candidateUsers=Hi$1([]);memberDataSource=new m$2(()=>this.candidateUsers(),()=>new Set(this.selectedMembers().map(t=>t.userId)));constructor(){Hf(()=>{this.caseId(),Rn$1(()=>this.loadData());});}loadData(){this.isLoading.set(true),this.errorMessage.set(null);let t=this.userState.currentUser();(t?ha$1(t):this.userState.loadMe()).pipe(ga$1(n=>(console.error("[CaseMembers] Failed to load current user",n),ha$1(null))),U$2(this.destroyRef)).subscribe(n=>{let i=n?.isAdmin===true;this.isSuperAdmin.set(i),this.loadMembersAndCandidates(i);});}loadMembersAndCandidates(t){By({members:this.memberState.listMembers(this.caseId()),allUsers:t?this.memberState.listAllUsers():ha$1([])}).pipe(U$2(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(h=>h.userId===t?z$3(P({},h),{role:i}):h));}wouldLockOutAdmins=mT(()=>!p$2(this.selectedMembers()));submit(){if(this.isSubmitting())return;if(this.wouldLockOutAdmins()){this.errorMessage.set("At least one ADMIN must remain on the case. Assign ADMIN to someone before saving.");return}this.isSubmitting.set(true),this.errorMessage.set(null);let{toUpsert:t,toRemove:e}=d$2(this.originalMembers,this.selectedMembers().map(i=>({userId:i.userId,role:i.role})));if(t.length===0&&e.length===0){this.isSubmitting.set(false),this.closeRequested.emit();return}let n=[...t.map(i=>({userId:i.userId,role:i.role})),...e.map(i=>({userId:i}))];this.memberState.updateMembers(this.caseId(),n).pipe(U$2(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=Aw({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&&(vs(0,"div",0)(1,"header",1)(2,"h2",2),WC(3,"Share case"),fl(),vs(4,"button",3),Ag("click",function(){return n.cancel()}),vs(5,"span",4),WC(6,"close"),fl()()(),eC(7,zo,2,0,"p",5)(8,Jo,17,6,"div",6),fl()),e&2&&(XE(7),tC(n.isLoading()?7:8));},dependencies:[Pn$1,xb],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 Xe=10,Xo=/\bnamespace\b/i;function Ie(o,t){return Xo.test(o)&&t?"NAMESPACE":"CASE"}function Ze(o,t){return Ie(o,t)==="NAMESPACE"}function vn(o){let t=a=>o.filter(h=>h.uploadedScope===a).map(h=>h.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 yn(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 wn(o){let t=o.lastIndexOf(".");return t<=0||t===o.length-1?"FILE":o.slice(t+1).toUpperCase()}var ue=class o{exchangeState=g(re);nextId=0;generation=0;dragDepth=0;attachments=Hi$1([]);limitError=Hi$1(null);isDragOver=Hi$1(false);isUploading=Hi$1(false);hasAttachments=mT(()=>this.attachments().length>0);addFiles(t){if(this.isUploading())return;let e=Array.from(t);if(e.length===0)return;let n=this.attachments(),i=Xe-n.length;this.limitError.set(e.length>i?`You can attach up to ${Xe} files per message.`:null);let a=e.slice(0,Math.max(0,i)).map(h=>({id:`attachment-${this.nextId++}`,file:h,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<Xe&&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(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:vn(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 Zo=["fileInput"],ei=(o,t)=>t.id;function ti(o,t){o&1&&(vs(0,"span",10),WC(1,"namespace"),fl());}function ni(o,t){if(o&1&&(vs(0,"span",12),WC(1),fl()),o&2){let e=mC().$implicit;XE(),Zg(e.error);}}function oi(o,t){if(o&1){let e=dC();vs(0,"div",6)(1,"span",7),WC(2),fl(),vs(3,"span",8),WC(4),fl(),vs(5,"span",9),WC(6),fl(),eC(7,ti,2,0,"span",10),vs(8,"ds-icon-button",11),Ag("action",function(){let i=If(e).$implicit,a=mC(3);return wf(a.removed.emit(i.id))}),fl(),eC(9,ni,2,1,"span",12),fl();}if(o&2){let e=t.$implicit,n=mC(3);Hg("composer-attachments__chip--error",e.status==="error")("composer-attachments__chip--uploaded",e.status==="uploaded"),XE(),Hg("composer-attachments__icon--spinning",e.status==="uploading"),XE(),Zg(n.chipIcon(e)),XE(),Tg("title",e.file.name),XE(),Zg(n.middleTruncate(e.file.name)),XE(2),Zg(n.kindLabel(e.file.name)),XE(),tC(n.showNamespaceBadge(e)?7:-1),XE(),Tg("title",n.removeTitle(e))("disabled",n.disabled()),XE(),tC(e.status==="error"&&e.error?9:-1);}}function ii(o,t){if(o&1&&(vs(0,"div",3),oC(1,oi,10,14,"div",5,ei),fl()),o&2){let e=mC(2);XE(),iC(e.attachments());}}function ai(o,t){o&1&&(vs(0,"p",4),WC(1),fl()),o&2&&(XE(),Zg(t));}function ri(o,t){if(o&1&&(vs(0,"div",1),eC(1,ii,3,0,"div",3),eC(2,ai,2,1,"p",4),fl()),o&2){let e,n=mC();XE(),tC(n.attachments().length>0?1:-1),XE(),tC((e=n.limitError())?2:-1,e);}}var Ee=class o{attachments=mB.required();namespaceBadge=mB(false);limitError=mB(null);disabled=mB(false);removed=gB();filesSelected=gB();fileInput=vB("fileInput");kindLabel=wn;middleTruncate=yn;chipIcon(t){return t.status==="uploading"?"progress_activity":t.status==="uploaded"?"check_circle":je(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=Aw({type:o,selectors:[["agentos-composer-attachments"]],viewQuery:function(e,n){e&1&&Lg(n.fileInput,Zo,5),e&2&&CC();},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&&(eC(0,ri,3,2,"div",1),vs(1,"input",2,0),Ag("change",function(a){return n.onFileInputChange(a)}),fl()),e&2&&tC(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 si=["composerInput"],li=["messagesContainer"],ci=(o,t)=>t.phaseIndex;function di(o,t){if(o&1){let e=dC();vs(0,"agentos-case-members",34),Ag("closeRequested",function(){If(e);let i=mC();return wf(i.exchangeOpen.set(false))}),fl();}if(o&2){let e=mC();Tg("caseId",e.caseId);}}function mi(o,t){if(o&1){let e=dC();vs(0,"agentos-exchange-shell",35),Ag("closeRequested",function(){If(e);let i=mC();return wf(i.exchangeOpen.set(false))}),fl();}}function pi(o,t){if(o&1&&(vs(0,"span",14),WC(1),fl()),o&2){let e=mC();XE(),Zg(e.exchangeFileCount());}}function _i(o,t){if(o&1){let e=dC();vs(0,"ds-icon-button",36),Ag("action",function(){If(e);let i=mC();return wf(i.starToggled.emit({id:i.caseId,starred:!i.activeCase()?.favorite}))}),fl(),vs(1,"ds-icon-button",37),Ag("action",function(){If(e);let i=mC();return wf(i.confirmingDelete.set(true))}),fl();}if(o&2){let e=mC();Hg("case-chat__header-star--active",e.activeCase()?.favorite),Tg("icon",e.activeCase()?.favorite?"star":"star_border")("title",e.activeCase()?.favorite?"Remove from favorites":"Add to favorites");}}function ui(o,t){if(o&1){let e=dC();vs(0,"span",17)(1,"span",38),WC(2,"Delete this case?"),fl(),vs(3,"button",39),Ag("click",function(){If(e);let i=mC();return i.deleteRequested.emit(i.caseId),wf(i.confirmingDelete.set(false))}),vs(4,"span",40),WC(5,"check"),fl(),WC(6," Delete "),fl(),vs(7,"button",41),Ag("click",function(){If(e);let i=mC();return wf(i.confirmingDelete.set(false))}),vs(8,"span",40),WC(9,"close"),fl()()();}}function gi(o,t){o&1&&(vs(0,"div",19)(1,"span",42),WC(2,"upload_file"),fl(),vs(3,"span"),WC(4,"Drop files to attach"),fl()());}function hi(o,t){o&1&&(vs(0,"div",21)(1,"p"),WC(2,"No messages yet."),fl()());}function Ci(o,t){o&1&&(vs(0,"span",56),WC(1),fl()),o&2&&(XE(),yl("(",t,")"));}function fi(o,t){if(o&1&&(vs(0,"span",49),WC(1),eC(2,Ci,2,1,"span",56),fl()),o&2){let e,n=mC(2).$implicit,i=mC(2);XE(),yl(" ",n.event.actor.role==="USER"?"You":n.event.actor.displayName||"Agent"," "),XE(),tC((e=i.agentModelAttribution(n.event))?2:-1,e);}}function bi(o,t){if(o&1&&(vs(0,"div",50)(1,"span",57),WC(2,"session context"),fl(),vs(3,"pre",58),WC(4),aT(5,"json"),fl()()),o&2){let e=mC(2).$implicit;XE(4),Zg(uT(5,1,e.event.sessionContext));}}function xi(o,t){if(o&1&&bg(0,"div",52),o&2){let e=mC(2).$implicit;Tg("innerHTML",e.html,aE);}}function vi(o,t){if(o&1&&bg(0,"div",53),o&2){let e=mC(2).$implicit;Tg("innerHTML",e.html,aE);}}function yi(o,t){if(o&1&&(vs(0,"time",55),WC(1),fl()),o&2){let e=mC(2).$implicit,n=mC(2);Tg("title",n.formatMessageTimestampTitle(e.event.timestamp)),Cg("datetime",e.event.timestamp),XE(),Zg(n.formatMessageTime(e.event.timestamp));}}function wi(o,t){if(o&1&&(vs(0,"div",48),eC(1,fi,3,2,"span",49),eC(2,bi,6,3,"div",50),vs(3,"div",51),eC(4,xi,1,1,"div",52)(5,vi,1,1,"div",53),bg(6,"ds-copy-button",54),eC(7,yi,2,3,"time",55),fl()()),o&2){let e=mC().$implicit,n=mC(2);Hg("case-chat__turn--user",e.event.actor.role==="USER")("case-chat__turn--agent",e.event.actor.role==="AGENT"),XE(),tC(e.isFirstInGroup?1:-1),XE(),tC(n.showTechnical()&&e.event.sessionContext?2:-1),XE(2),tC(e.event.actor.role==="USER"?4:5),XE(2),Tg("text",n.messageText(e)),XE(),tC(e.isLastInGroup?7:-1);}}function Si(o,t){if(o&1&&(vs(0,"div",44)(1,"span",49),WC(2),fl(),bg(3,"div",53),fl()),o&2){let e=mC(3);XE(2),Zg(e.agentDisplayName()),XE(),Tg("innerHTML",e.streamingHtml(),aE);}}function Mi(o,t){if(o&1&&(vs(0,"span",61),WC(1),fl()),o&2){let e=mC(2).$implicit;XE(),Zg(e.notice.detail);}}function Ei(o,t){if(o&1&&(vs(0,"div",59)(1,"span",60),WC(2),fl(),eC(3,Mi,2,1,"span",61),fl()),o&2){let e=mC().$implicit;Hg("case-chat__execution-notice--warning",e.notice.severity==="warning")("case-chat__execution-notice--error",e.notice.severity==="error"||e.notice.severity==="terminal"),XE(2),Zg(e.notice.title),XE(),tC(e.notice.detail?3:-1);}}function Ti(o,t){if(o&1&&(vs(0,"pre",63),WC(1),fl()),o&2){let e=mC(2).$implicit;XE(),Zg(e.item.detail);}}function ki(o,t){if(o&1&&(vs(0,"details",46)(1,"summary",62),WC(2),fl(),eC(3,Ti,2,1,"pre",63),fl()),o&2){let e=mC().$implicit;XE(2),yl("\u2699 System log \xB7 ",e.item.label),XE(),tC(e.item.detail?3:-1);}}function Pi(o,t){if(o&1){let e=dC();vs(0,"agentos-question-panel",66),Ag("answered",function(i){If(e);let a=mC(2).$implicit,h=mC(2);return wf(h.onQuestionAnswered(a.event,i))})("cancelled",function(){If(e);let i=mC(4);return wf(i.onQuestionCancelled())}),fl();}if(o&2){let e=mC(2).$implicit;Tg("questionEvent",e.event);}}function Oi(o,t){if(o&1&&(vs(0,"div",65)(1,"span",67),WC(2,"\u2705 Question answered"),fl(),vs(3,"span",68),WC(4),fl()()),o&2){let e=mC(2).$implicit;XE(4),Zg(e.event.question);}}function Ii(o,t){if(o&1&&eC(0,Pi,1,1,"agentos-question-panel",64)(1,Oi,5,1,"div",65),o&2){let e=mC().$implicit,n=mC(2);tC(!e.answered&&(e.event.questionType!=="OAUTH_AUTHORIZE"||n.oauthPendingQuestion()?.id===e.event.id)?0:e.answered?1:-1);}}function Di(o,t){o&1&&WC(0," \u23F3 ");}function Vi(o,t){o&1&&WC(0," \u2705 ");}function Ri(o,t){o&1&&WC(0," \u274C ");}function Ni(o,t){o&1&&WC(0," Running ");}function Ai(o,t){o&1&&WC(0," Completed ");}function Fi(o,t){o&1&&WC(0," Failed ");}function qi(o,t){if(o&1&&(vs(0,"time",74),WC(1),fl()),o&2){let e=mC(2).$implicit,n=mC(2);Tg("title",n.formatMessageTimestampTitle(e.call.timestamp)),Cg("datetime",e.call.timestamp),XE(),Zg(n.formatMessageTime(e.call.timestamp));}}function Li(o,t){if(o&1&&(vs(0,"div",88)(1,"span",89),WC(2,"Enrichment content"),fl(),vs(3,"pre"),WC(4),fl()()),o&2){let e=mC().$implicit;XE(4),Zg(e.enrichmentContent);}}function zi(o,t){if(o&1&&(vs(0,"div",84)(1,"div",85)(2,"span",86),WC(3),fl(),vs(4,"span",87),WC(5),fl()(),vs(6,"div",88)(7,"span",89),WC(8,"Prompt"),fl(),vs(9,"pre"),WC(10),fl()(),vs(11,"div",88)(12,"span",89),WC(13,"LLM output"),fl(),vs(14,"pre"),WC(15),fl()(),eC(16,Li,5,1,"div",88),fl()),o&2){let e=t.$implicit;Hg("case-chat__enrichment-phase--failed",!e.success),XE(3),yl("Phase ",e.phaseIndex),XE(2),Zg(e.success?"\u2705":"\u274C"),XE(5),Zg(e.prompt),XE(5),Zg(e.llmOutput),XE(),tC(e.enrichmentContent?16:-1);}}function $i(o,t){if(o&1&&oC(0,zi,17,7,"div",83,ci),o&2){let e=mC(4).$implicit;iC(e.call.enrichmentPhases);}}function Ui(o,t){o&1&&(vs(0,"span",82),WC(1,"No enrichment trace was provided."),fl());}function Hi(o,t){if(o&1&&(vs(0,"div",77)(1,"span",79),WC(2,"Enrichment phases"),fl(),eC(3,$i,2,0)(4,Ui,2,0,"span",82),fl()),o&2){let e=mC(3).$implicit;XE(3),tC(e.call.enrichmentPhases?.length?3:4);}}function Bi(o,t){o&1&&WC(0," \xB7 Text ");}function ji(o,t){if(o&1&&(vs(0,"div",78)(1,"span",79),WC(2," Arguments "),eC(3,Bi,1,0),fl(),vs(4,"pre"),WC(5),fl()()),o&2){let e=mC(3).$implicit,n=mC(2);XE(3),tC(n.isStructuredPayload(e.call.args)?-1:3),XE(),Hg("case-chat__tool-call-code--text",!n.isStructuredPayload(e.call.args)),XE(),Zg(t);}}function Qi(o,t){o&1&&(vs(0,"div",78)(1,"span",79),WC(2,"Duration"),fl(),vs(3,"span"),WC(4),fl()()),o&2&&(XE(4),Zg(t));}function Wi(o,t){o&1&&WC(0," \xB7 Text ");}function Gi(o,t){if(o&1&&(vs(0,"pre"),WC(1),fl()),o&2){let e=mC(3).$implicit,n=mC(2);Hg("case-chat__tool-call-code--text",!n.isToolOutputStructured(e.call)),XE(),Zg(t);}}function Ki(o,t){o&1&&(vs(0,"span",81),WC(1,"Running\u2026"),fl());}function Yi(o,t){o&1&&(vs(0,"span",82),WC(1,"No output"),fl());}function Ji(o,t){o&1&&WC(0," \xB7 Text ");}function Xi(o,t){if(o&1&&(vs(0,"div",78)(1,"span",79),WC(2," Metadata "),eC(3,Ji,1,0),fl(),vs(4,"pre"),WC(5),fl()()),o&2){let e=mC(3).$implicit,n=mC(2);XE(3),tC(n.isToolMetadataStructured(e.call)?-1:3),XE(),Hg("case-chat__tool-call-code--text",!n.isToolMetadataStructured(e.call)),XE(),Zg(t);}}function Zi(o,t){if(o&1&&(vs(0,"div",76),eC(1,Hi,5,1,"div",77),eC(2,ji,6,4,"div",78),eC(3,Qi,5,1,"div",78),vs(4,"div",78)(5,"span",79),WC(6),eC(7,Wi,1,0),fl(),eC(8,Gi,2,3,"pre",80)(9,Ki,2,0,"span",81)(10,Yi,2,0,"span",82),fl(),eC(11,Xi,6,4,"div",78),fl()),o&2){let e,n,i,a,h=mC(2).$implicit,T=mC(2);XE(),tC(T.showTechnical()?1:-1),XE(),tC((e=T.formatToolArguments(h.call.args))?2:-1,e),XE(),tC((n=T.showTechnical()&&T.formatToolDuration(h.call))?3:-1,n),XE(3),yl(" ",h.call.response?.success===false?"Error":"Output"," "),XE(),tC(T.isToolOutputStructured(h.call)?-1:7),XE(),tC((i=T.extractToolOutput(h.call))?8:h.call.response?10:9,i),XE(3),tC((a=T.showTechnical()&&T.formatToolMetadata(h.call))?11:-1,a);}}function ea(o,t){if(o&1){let e=dC();vs(0,"div",69)(1,"button",70),Ag("click",function(){If(e);let i=mC().$implicit,a=mC(2);return wf(a.toggleToolCall(i.call.requestId))}),vs(2,"span",71),eC(3,Di,1,0)(4,Vi,1,0)(5,Ri,1,0),fl(),vs(6,"span",72),WC(7),fl(),vs(8,"span",73),eC(9,Ni,1,0)(10,Ai,1,0)(11,Fi,1,0),fl(),eC(12,qi,2,3,"time",74),vs(13,"span",75),WC(14),fl()(),eC(15,Zi,12,7,"div",76),fl();}if(o&2){let e=mC().$implicit,n=mC(2);Hg("case-chat__tool-call--pending",!e.call.response)("case-chat__tool-call--success",e.call.response?.success===true)("case-chat__tool-call--error",e.call.response?.success===false),XE(),Cg("aria-expanded",n.isToolCallExpanded(e.call.requestId)),XE(2),tC(e.call.response?e.call.response.success?4:5:3),XE(4),Zg(e.call.toolName),XE(2),tC(e.call.response?e.call.response.success?10:11:9),XE(3),tC(e.call.timestamp?12:-1),XE(2),Zg(n.isToolCallExpanded(e.call.requestId)?"\u25BC":"\u25B6"),XE(),tC(n.isToolCallExpanded(e.call.requestId)?15:-1);}}function ta(o,t){if(o&1&&eC(0,wi,8,9,"div",43)(1,Si,4,2,"div",44)(2,Ei,4,6,"div",45)(3,ki,4,2,"details",46)(4,Ii,2,1)(5,ea,16,13,"div",47),o&2){let e=t.$implicit;tC(e.kind==="message"?0:e.kind==="streaming"?1:e.kind==="notice"?2:e.kind==="technical"?3:e.kind==="question"?4:5);}}function na(o,t){if(o&1&&oC(0,ta,6,1,null,null,Xw().trackTimelineItem,true),o&2){let e=mC();iC(e.timeline());}}function oa(o,t){o&1&&(vs(0,"div",22),bg(1,"span",90)(2,"span",90)(3,"span",90),fl());}function ia(o,t){if(o&1){let e=dC();vs(0,"div",23)(1,"ds-icon-button",91),Ag("action",function(){If(e);let i=mC();return wf(i.onScrollToBottomClick())}),fl()();}}function aa(o,t){if(o&1){let e=dC();vs(0,"div",25)(1,"agentos-agent-autocomplete",92),Ag("selected",function(i){If(e);let a=mC();return wf(a.onAgentSelected(i))})("dismissed",function(){If(e);let i=mC();return wf(i.closeAtAutocomplete())}),fl()();}if(o&2){let e=mC();XE(),Tg("agents",e.autocomplete.atSuggestions());}}function ra(o,t){if(o&1){let e=dC();vs(0,"div",25)(1,"agentos-prompt-autocomplete",93),Ag("selected",function(i){If(e);let a=mC();return wf(a.onPromptSelected(i))})("dismissed",function(){If(e);let i=mC();return wf(i.closeSlashAutocomplete())}),fl()();}if(o&2){let e=mC();XE(),Tg("prompts",e.autocomplete.slashSuggestions());}}function sa(o,t){if(o&1){let e=dC();vs(0,"ds-icon-button",94),Ag("action",function(){If(e),mC();let i=TC(31);return wf(i.openPicker())}),fl();}if(o&2){let e=mC();Tg("disabled",!e.canStageFiles());}}function la(o,t){if(o&1){let e=dC();vs(0,"ds-icon-button",95),Ag("action",function(){If(e);let i=mC();return wf(i.interrupt())}),fl();}}function ca(o,t){if(o&1){let e=dC();vs(0,"ds-icon-button",96),Ag("action",function(){If(e);let i=mC();return wf(i.submit())}),fl();}if(o&2){let e=mC();Tg("title",e.preferences.composerHint())("disabled",!e.canSend);}}var da=64;function Sn(){let o=window.getSelection();return !!o&&o.toString().length>0}var et=class o{route=g(V$2);http=g(dy);zone=g(G$7);destroyRef=g(we$1);domSanitizer=g(TS);exchangeState=g(re);config=g(y$1);preferences=g(f);caseState=g(pe);oauthService=g(h$1);exchangeOpen=Hi$1(false);exchangeFileCount=this.exchangeState.fileCount;attachments=g(ue);autocomplete=g(_e);canAttach=this.exchangeState.canWriteCase;canStageFiles=mT(()=>this.canAttach()&&!this.isRunning()&&!this.isTerminal()&&!this.attachments.isUploading());toggleExchange(){this.exchangeOpen.update(t=>!t);}caseId=this.route.snapshot.queryParams.case;namespaceId=this.route.snapshot.queryParams.ns;markdownRenderer=this.buildMarkdownRenderer();agentDisplayName=mT(()=>{let t=this.events();for(let e=t.length-1;e>=0;e--){let n=t[e];if(n){if(n.type==="AgentRunningEvent"||n.type==="AgentSelectedEvent"||n.type==="AgentFinishedEvent"){let i=n.agentName;if(i&&i.trim().length>0)return i}if(n.type==="MessageEvent"&&n.actor.role==="AGENT"&&n.actor.displayName)return n.actor.displayName}}return "Assistant"});eventSource=null;composerInput=vB("composerInput");messagesContainer=vB("messagesContainer");promptAutocompleteRef=vB(ie);agentAutocompleteRef=vB(ae);events=Hi$1([]);messageHtmlCache=new Map;inputValue=Hi$1("");isRunning=Hi$1(false);isTerminal=Hi$1(false);activeCase=mT(()=>this.caseState.cases().find(t=>t.id===this.caseId)??null);_sseStatus=Hi$1("");caseStatus=mT(()=>this._sseStatus()||this.activeCase()?.status||"IDLE");confirmingDelete=Hi$1(false);drawerPanel=Hi$1("files");openFilesPanel(){this.drawerPanel.set("files"),this.exchangeOpen.set(true);}openMembersPanel(){this.drawerPanel.set("members"),this.exchangeOpen.set(true);}starToggled=gB();deleteRequested=gB();logsToggled=gB();showTechnicalOverride=mB(false);showTechnical=mT(()=>this.showTechnicalOverride());showToolCallsOverride=mB(true);showToolCalls=mT(()=>this.showToolCallsOverride());streamingText=Hi$1("");streamingHtml=mT(()=>{let t=this.streamingText();return t?this.renderMarkdown(t):""});namespaceTargeted=mT(()=>Ze(this.inputValue(),this.exchangeState.canWriteNamespace()));collapsedTools=Hi$1(new Set);isAtBottom=Hi$1(true);scrollListenerCleanup=null;constructor(){this.autocomplete.init(this.namespaceId),Hf(()=>{this.isRunning()||this.isTerminal()||queueMicrotask(()=>{Sn()||this.composerInput()?.nativeElement.focus();});}),Hf(()=>{this.inputValue(),queueMicrotask(()=>this.resizeComposer());}),Hf(()=>{this.timeline(),this.streamingText(),this.isAtBottom()&&queueMicrotask(()=>{Sn()||this.scrollToBottom();});}),ME(()=>{this.attachScrollListener(),this.resizeComposer();});}baseTimeline=mT(()=>{let t=this.events(),e=this.showTechnical(),n=this.showToolCalls(),i=new Map;for(let f of t)if(f.type==="ToolRequestEvent"){let k=f,O=k.toolRequestId??f.id,N=i.get(O);i.set(O,{requestId:O,toolName:k.toolName??"unknown",args:k.args??null,timestamp:k.timestamp??N?.timestamp,response:N?.response,enrichmentPhases:k.enrichmentPhases??null});}else if(f.type==="ToolResponseEvent"){let k=f,O=k.toolRequestId??f.id,N=i.get(O);i.set(O,{requestId:O,toolName:N?.toolName??k.toolName??"unknown",args:N?.args??null,timestamp:N?.timestamp,response:k,enrichmentPhases:N?.enrichmentPhases??null});}let a=[],h=new Set,T=null;for(let f of t)if(f.type==="MessageEvent"){let k=f,O=k.actor.role,N=O!==T;T=O,a.push({kind:"message",event:k,html:this.messageHtmlCache.get(f.id)??"",isFirstInGroup:N,isLastInGroup:false});}else if(f.type==="ToolRequestEvent"||f.type==="ToolResponseEvent"){let k=f.toolRequestId??f.id;h.has(k)||(h.add(k),n&&a.push({kind:"tool",call:i.get(k)})),T=null;}else if(f.type==="QuestionEvent"){let k=f,O=t.some(N=>N.type==="AnswerEvent"&&N.questionId===k.id);a.push({kind:"question",event:k,answered:O});}else if(e&&!this.isEventConsumedElsewhere(f)){let k=this.toExecutionNotice(f);k?a.push({kind:"notice",notice:k,eventId:f.id}):a.push({kind:"technical",item:this.toTechnicalItem(f),eventId:f.id}),T=null;}for(let f=0;f<a.length;f++){let k=a[f];if(k?.kind!=="message")continue;let O=a[f+1];k.isLastInGroup=O?.kind!=="message"||O.event.actor.role!==k.event.actor.role;}return a});timeline=mT(()=>{let t=this.baseTimeline();return this.streamingText().trim().length===0?t:[...t,{kind:"streaming"}]});trackTimelineItem(t,e){switch(e.kind){case "message":return e.event.id;case "tool":return e.call.requestId;case "technical":case "notice":return e.eventId;case "streaming":return "streaming";case "question":return `question-${e.event.id}`}}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$2(this.destroyRef)).subscribe(t=>{let e=t.case;e&&e!==this.caseId&&(this.caseId=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<=da);};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(),h=i.type,T=i.data;console.log("[AgentOS SSE] frame received",{sseEventName:h,dataLength:T?.length??0,dataPreview:T?.slice(0,120),receivedAtMs:a});try{let f=JSON.parse(T);this.zone.run(()=>{let k=this.events().length;if(f.type==="MessageEvent"){let N=f,se=this.extractText(N);this.messageHtmlCache.has(f.id)||this.messageHtmlCache.set(f.id,this.renderMarkdown(se));}this.events.update(N=>N.some(se=>se.id===f.id)?N:[...N,f]);let O=this.events().length;if(console.log("[AgentOS SSE] event processed",{sseEventName:h,eventType:f.type,eventId:f.id,beforeLen:k,afterLen:O,running:this.isRunning(),terminal:this.isTerminal()}),f.type==="TextChunkEvent"){let N=f.chunk;N&&this.streamingText.update(se=>se+N);return}if(f.type==="CaseUpdatedEvent"){let N=f;N.title&&this.caseState.updateCaseTitle(f.caseId,N.title);return}if(f.type==="CaseStatusEvent"){let N=f.status;this._sseStatus.set(N),this.caseState.updateCaseStatus(this.caseId,N);let se=N==="KILLED"||N==="ERROR";if(this.isTerminal.set(se),se)this.isRunning.set(!1),this.eventSource?.close(),this.eventSource=null;else {let ht=N==="RUNNING";this.isRunning.set(ht),ht||this.streamingText.set("");}return}if(f.type==="AgentFinishedEvent"){this.isRunning.set(!1),this.streamingText.set(""),this.anyToolResponseThisTurn&&this.exchangeState.refreshManifest(),this.anyToolResponseThisTurn=!1;return}if(f.type==="ToolResponseEvent"){this.anyToolResponseThisTurn=!0;let N=xn(f.toolName);N==="case"?this.exchangeState.refreshCase():N==="namespace"&&this.exchangeState.refreshNamespace();return}if(f.type==="QuestionEvent"){let N=f;N.questionType==="OAUTH_AUTHORIZE"&&this.oauthService.setPendingQuestion(N);return}});}catch(f){console.warn("[AgentOS SSE] failed to parse event data",{sseEventName:h,error:f,dataPreview:T?.slice(0,500)});}},n=["MessageEvent","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.onmessage=i=>{console.log("[AgentOS SSE] onmessage (unnamed event) received",{dataLength:i.data?.length??0,dataPreview:i.data?.slice(0,120)});},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.autocomplete.reset(),this.attachments.reset(),this.connectSse();}submitting=false;submit(){return dt(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=Ie(t,this.exchangeState.canWriteNamespace()),i=yield this.attachments.uploadAllAndBuildMention(n);if(i===null||this.caseId!==e)return;(yield this.postMessage(t?`${t}
|
|
1
|
+
import {g,dy as re$4,d7 as M$1,de as Q$3,Q as By,Y as x$1,ao as V$2,G as G$5,w as we$1,H as Hi$1,b as U$2,z as z$3,a as P,A as Aw,cd as Sb,v as vs,l as Ag,W as WC,k as fl,n as eC,af as Dg,X as XE,a8 as Zg,t as tC,S as ha$1,a9 as dC,o as bg,a3 as HI,ac as mC,r as Tg,y as Hg,a6 as $I,a5 as yl,q as oC,x as iC,T as TC,b3 as oT,C as Cg,cg as Mg,aa as If,ab as wf,ag as fT,ca as mB,cb as gB,aw as pl,ax as hl,cI as Rg,b$ as Ng,dz as Qg,F as F$1,aD as Ly,df as T,bR as ma$1,bT as Od,a7 as ga$1,m as mT,dA as oe$2,aY as ks,cr as EB,bz as vC,cw as Pg,cv as CC,bA as DC,bj as yh,ah as rT,d4 as N$2,aI as Tr,u as ue$3,aJ as Nb,be as aT,bf as uT,bo as gl,bp as ml,c8 as kf,cj as Ff,aV as w$1,dB as mr$1,aH as TS,b0 as An$2,dC as ee$3,dD as ie$3,J as dy,d3 as y$1,aO as G$6,cD as Rd,b5 as Sg,ad as Vg,cq as vB,cc as Hf,c1 as ME,av as dt,dE as zy,dF as He$1,dG as kb,ai as Jg,ak as Xg,b4 as nT,cu as Lg,ct as CB,dH as xe$1,D as Fg,I as IC,E as wC,dI as wd,cK as Id,az as Qt,dJ as Y$2,bg as Hy,dK as _,bP as Zy,an as ce,dL as DB,cM as Rn$1,dM as xb,dN as me$2,cG as Xw,dO as L$3,a4 as rC,b_ as FC,a_ as XC,dP as Kg,aj as KC,cf as iT,bi as aE,dQ as X$3}from'./main-FEA3BAHM.js';import {x as x$2,i as is,U as Ue$1}from'./chunk-Lluy_pM_.js';import {P as Pn$1,Z as Zn$2,S as Se$1,W as Wn$1,K as Kn$1,J as Jn$2,U as Un$1,X as Xn$2,G as Gn$1,Y as Yn$1}from'./chunk-DXVBbChn.js';import'./chunk-BxT6IsjS.js';import {o as z$2,k as _t$1,b as _e$2,n as ni$1,J as Jn$1,Q as Qn$1,e as ei$1,Y as Ye$1,Z as Zn$1,l as Xn$1,E as En$1,p as An$1,a as wt}from'./chunk-DFaRJnOg.js';var m$3=class s{controller=g(re$4);agentConfigController=g(M$1);namespaceMembership=g(Q$3);listByNamespace(e){return this.controller.findByNamespaceIdUserGroup(e)}loadFormData(e){return By({namespaceAgents:this.agentConfigController.listByParentAgentConfig(e,false),platformAgents:this.agentConfigController.listPlatformAgentsAgentConfig(false),groups:this.listByNamespace(e),users:this.namespaceMembership.getMembersNamespaceMembership(e)})}loadExistingGroup(e){return By({group:this.getById(e),members:this.getMembers(e)})}getById(e){return this.controller.getByIdUserGroup(e)}getMembers(e){return this.controller.getMembersUserGroup(e)}create(e){return this.controller.createUserGroup({namespaceId:e.namespaceId,name:e.name,agentIds:e.agentIds,userExternalIdsToAdd:e.memberExternalIdsToAdd,adminExternalIds:e.adminExternalIds})}update(e,r){return this.controller.updateUserGroup(e,{name:r.name,agentIds:r.agentIds,userExternalIdsToAdd:r.memberExternalIdsToAdd,userExternalIdsToRemove:r.memberExternalIdsToRemove,adminExternalIds:r.adminExternalIds})}delete(e){return this.controller.deleteUserGroup(e)}static \u0275fac=function(r){return new(r||s)};static \u0275prov=x$1({token:s,factory:s.\u0275fac,providedIn:"root"})};function ae$3(r,t){let e=new Map;for(let o of r)if(o.userGroupId!==t)for(let n of o.agentIds)e.has(n)||e.set(n,o.name);return e}function se$2(r,t){let e=new Set(r),o=new Set(t);return {toAdd:t.filter(n=>!e.has(n)),toRemove:r.filter(n=>!o.has(n))}}function v(r){return [r.firstname,r.lastname].filter(Boolean).join(" ").trim()||r.externalId}var pe$2=20,G$4=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,pe$2).map(m=>({id:m.externalId,name:v(m),description:m.email}));return ha$1(n)}matches(t,e){return t.externalId.toLowerCase().includes(e)||t.email.toLowerCase().includes(e)||v(t).toLowerCase().includes(e)}};var me$1=r=>({$implicit:r}),de=(r,t)=>t.id,ue$2=(r,t)=>t.externalId;function ge(r,t){r&1&&(vs(0,"p",6),WC(1,"Loading\u2026"),fl());}function _e$1(r,t){r&1&&(vs(0,"span",13),WC(1,"Name is required."),fl());}function fe$1(r,t){r&1&&(vs(0,"p",18),WC(1,"No agent configs available in this namespace."),fl());}function be(r,t){r&1&&Mg(0);}function xe(r,t){if(r&1&&Dg(0,be,1,0,"ng-container",27),r&2){let e=t.$implicit;mC(3);let o=TC(11);Tg("ngTemplateOutlet",o)("ngTemplateOutletContext",oT(2,me$1,e));}}function he(r,t){if(r&1&&(vs(0,"div",19)(1,"span",26),WC(2,"Platform"),fl(),oC(3,xe,1,4,"ng-container",null,de),fl()),r&2){let e=mC(2);XE(3),iC(e.platformAgents());}}function Ce(r,t){r&1&&Mg(0);}function ve(r,t){if(r&1&&Dg(0,Ce,1,0,"ng-container",27),r&2){let e=t.$implicit;mC(3);let o=TC(11);Tg("ngTemplateOutlet",o)("ngTemplateOutletContext",oT(2,me$1,e));}}function ye(r,t){if(r&1&&(vs(0,"div",19)(1,"span",26),WC(2,"Namespace"),fl(),oC(3,ve,1,4,"ng-container",null,de),fl()),r&2){let e=mC(2);XE(3),iC(e.namespaceAgents());}}function Me(r,t){r&1&&(vs(0,"p",18),WC(1,"No members yet."),fl());}function Se(r,t){if(r&1&&(vs(0,"span",31),WC(1),fl()),r&2){let e=mC().$implicit;XE(),Zg(e.email);}}function Ie$1(r,t){if(r&1){let e=dC();vs(0,"li",28)(1,"div",29)(2,"span",30),WC(3),fl(),eC(4,Se,2,1,"span",31),fl(),vs(5,"select",32),Ag("change",function(n){let m=If(e).$implicit,c=mC(3);return wf(c.setMemberRole(m.externalId,n.target.value))}),vs(6,"option",33),WC(7,"Member"),fl(),vs(8,"option",34),WC(9,"Admin"),fl()(),vs(10,"button",35),Ag("click",function(){let n=If(e).$implicit,m=mC(3);return wf(m.removeMember(n.externalId))}),WC(11," \xD7 "),fl()();}if(r&2){let e=t.$implicit;XE(3),Zg(e.label),XE(),tC(e.email&&e.email!==e.label?4:-1),XE(),Tg("value",e.role),Cg("aria-label","Role of "+e.label),XE(5),Tg("title","Remove "+e.label);}}function Ee$1(r,t){if(r&1&&(vs(0,"ul",20),oC(1,Ie$1,12,5,"li",28,ue$2),fl()),r&2){let e=mC(2);XE(),iC(e.selectedMembers());}}function Ge$2(r,t){if(r&1&&(vs(0,"p",22),WC(1),fl()),r&2){let e=mC(2);XE(),Zg(e.errorMessage());}}function Oe(r,t){if(r&1){let e=dC();vs(0,"form",8),Ag("ngSubmit",function(){If(e);let n=mC();return wf(n.submit())}),vs(1,"div",9)(2,"label",10),WC(3,"Name "),vs(4,"span",11),WC(5,"*"),fl()(),bg(6,"input",12),HI(),eC(7,_e$1,2,0,"span",13),fl(),vs(8,"fieldset",14)(9,"legend",15),WC(10," Deployed agents "),vs(11,"span",16),WC(12,"Agents this group can use"),fl()(),vs(13,"p",17),WC(14," Pick from platform agents and this namespace's agents. An agent already deployed to another group in this namespace is unavailable here. "),fl(),eC(15,fe$1,2,0,"p",18),eC(16,he,5,0,"div",19),eC(17,ye,5,0,"div",19),fl(),vs(18,"fieldset",14)(19,"legend",15),WC(20," Members "),vs(21,"span",16),WC(22,"Users in this group"),fl()(),vs(23,"p",17),WC(24,"ADMIN members can manage this group; MEMBER is read-only."),fl(),eC(25,Me,2,0,"p",18)(26,Ee$1,3,0,"ul",20),vs(27,"ds-autocomplete-input",21),Ag("itemSelected",function(n){If(e);let m=mC();return wf(m.onMemberSelected(n))}),fl()(),eC(28,Ge$2,2,1,"p",22),vs(29,"div",23)(30,"button",24),WC(31),fl(),vs(32,"button",25),Ag("click",function(){If(e);let n=mC();return wf(n.cancel())}),WC(33,"Cancel"),fl()()();}if(r&2){let e=mC();Tg("formGroup",e.form),XE(6),Hg("user-group-form__input--invalid",e.nameControl.invalid&&e.nameControl.touched),$I(),XE(),tC(e.nameControl.invalid&&e.nameControl.touched?7:-1),XE(8),tC(e.platformAgents().length===0&&e.namespaceAgents().length===0?15:-1),XE(),tC(e.platformAgents().length>0?16:-1),XE(),tC(e.namespaceAgents().length>0?17:-1),XE(8),tC(e.selectedMembers().length===0?25:26),XE(2),Tg("dataSource",e.memberDataSource),XE(),tC(e.errorMessage()?28:-1),XE(2),Tg("disabled",e.nameControl.invalid||e.isSubmitting()),XE(),yl(" ",e.isEditMode()?"Save changes":"Create"," ");}}function Ae(r,t){if(r&1&&(vs(0,"span",39),WC(1),fl()),r&2){let e=mC().$implicit,o=mC();XE(),yl("in ",o.agentOwnerGroup(e));}}function we(r,t){if(r&1){let e=dC();vs(0,"label",36)(1,"input",37),Ag("change",function(){let n=If(e).$implicit,m=mC();return wf(m.toggleAgent(n))}),fl(),vs(2,"span",38),WC(3),fl(),eC(4,Ae,2,1,"span",39),fl();}if(r&2){let e=t.$implicit,o=mC();Hg("user-group-form__agent--disabled",o.isAgentDisabled(e)),XE(),Tg("checked",o.isAgentSelected(e))("disabled",o.isAgentDisabled(e)),XE(2),Zg(e.name),XE(),tC(o.isAgentDisabled(e)?4:-1);}}var ke=250,le$2=class r{route=g(V$2);router=g(G$5);destroyRef=g(we$1);userGroupState=g(m$3);namespaceId=this.route.snapshot.params.namespaceId;userGroupId=this.route.snapshot.paramMap.get("userGroupId");returnTo=this.route.snapshot.queryParamMap.get("returnTo");isEditMode=Hi$1(false);isLoading=Hi$1(false);isSubmitting=Hi$1(false);errorMessage=Hi$1(null);form=new z$2({name:new _t$1("",{nonNullable:true,validators:[_e$2.required,_e$2.maxLength(ke)]})});get nameControl(){return this.form.controls.name}platformAgents=Hi$1([]);namespaceAgents=Hi$1([]);takenElsewhere=Hi$1(new Map);selectedAgentIds=Hi$1(new Set);candidateUsers=Hi$1([]);selectedMembers=Hi$1([]);originalMemberExternalIds=[];memberDataSource=new G$4(()=>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$2(this.destroyRef)).subscribe({next:({namespaceAgents:t,platformAgents:e,groups:o,users:n})=>{this.namespaceAgents.set(t),this.platformAgents.set(e),this.takenElsewhere.set(ae$3(o,this.userGroupId)),this.candidateUsers.set(n),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$2(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();}});}isAgentDisabled(t){return this.takenElsewhere().has(t.id??"")}agentOwnerGroup(t){return this.takenElsewhere().get(t.id??"")}isAgentSelected(t){return this.selectedAgentIds().has(t.id??"")}toggleAgent(t){let e=t.id;if(!e||this.isAgentDisabled(t))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$3(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$2(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:ce}=se$2(this.originalMemberExternalIds,n);return this.userGroupState.update(t,{name:e,agentIds:o,memberExternalIdsToAdd:c,memberExternalIdsToRemove:ce,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=Aw({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","disabled"],[1,"user-group-form__agent-name"],[1,"user-group-form__agent-note"]],template:function(e,o){e&1&&(vs(0,"div",1)(1,"header",2)(2,"button",3),Ag("click",function(){return o.cancel()}),vs(3,"span",4),WC(4,"\u2190"),fl(),WC(5," User Groups "),fl(),vs(6,"h1",5),WC(7),fl()(),eC(8,ge,2,0,"p",6)(9,Oe,34,12,"form",7),fl(),Dg(10,we,5,6,"ng-template",null,0,fT)),e&2&&(XE(7),Zg(o.isEditMode()?"Edit user group":"New user group"),XE(),tC(o.isLoading()?8:9));},dependencies:[Sb,ni$1,Jn$1,Qn$1,ei$1,Ye$1,Zn$1,Xn$1,En$1,An$1,Pn$1],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--disabled[_ngcontent-%COMP%]{cursor:not-allowed;opacity:.55}.user-group-form__agent--disabled[_ngcontent-%COMP%]:hover{background:transparent}.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__agent-note[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary, #6e6e73);font-style:italic}.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$1(n,t){n&1&&(pl(0,"option",3),WC(1,"All namespaces"),hl());}function re$3(n,t){if(n&1&&(pl(0,"option",4),WC(1),hl()),n&2){let e=t.$implicit;Ng("value",e.id),XE(),Zg(e.name);}}var w=class n{namespaces=mB.required();value=mB(null);includeAllOption=mB(false);valueChange=gB();onChange(t){let e=t.target.value;this.valueChange.emit(e===""?null:e);}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=Aw({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&&(pl(0,"label",0)(1,"span",1),WC(2,"Namespace"),hl(),pl(3,"select",2),Rg("change",function(m){return o.onChange(m)}),eC(4,oe$1,2,0,"option",3),oC(5,re$3,2,2,"option",4,ne$2),hl()()),e&2&&(XE(3),Ng("value",o.value()??""),XE(),tC(o.includeAllOption()?4:-1),XE(),iC(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=dC();vs(0,"span",6),WC(1,"Delete?"),fl(),vs(2,"ds-icon-button",7),Ag("action",function(){If(e);let r=mC();return wf(r.onDeleteConfirmed())}),fl(),vs(3,"ds-icon-button",8),Ag("action",function(){If(e);let r=mC();return wf(r.onDeleteCancelled())}),fl();}}function ie$2(n,t){if(n&1){let e=dC();vs(0,"ds-kebab-menu",9),Ag("itemSelected",function(r){If(e);let m=mC();return wf(m.onMenuAction(r))}),fl();}if(n&2){let e=mC();Tg("items",e.menuItems);}}var D$1=class n{router=g(G$5);userGroup=mB.required();namespaceId=mB.required();returnTo=mB(void 0);deleteRequested=gB();pendingDelete=Hi$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=Aw({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&&(vs(0,"div",0)(1,"div",1)(2,"span",2),WC(3),fl(),vs(4,"span",3),WC(5),fl()(),vs(6,"div",4),eC(7,ae$2,4,0)(8,ie$2,1,1,"ds-kebab-menu",5),fl()()),e&2&&(Hg("user-group-item--pending-delete",o.pendingDelete()),XE(3),Zg(o.userGroup().name),XE(2),Qg(" ",o.agentCount," ",o.agentCount===1?"agent":"agents"," \xB7 ",o.userGroup().userCount," ",o.userGroup().userCount===1?"member":"members"," "),XE(2),tC(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$1(n,t){if(n&1){let e=dC();vs(0,"button",4),Ag("click",function(){If(e);let r=mC();return wf(r.onBack())}),WC(1),fl();}n&2&&(XE(),yl("\u2190 ",t));}function le$1(n,t){if(n&1){let e=dC();vs(0,"agentos-namespace-select",5),Ag("valueChange",function(r){If(e);let m=mC();return wf(m.onNamespaceChange(r))}),fl();}if(n&2){let e=mC();Tg("namespaces",t)("value",e.namespaceId());}}function ue$1(n,t){if(n&1){let e=dC();vs(0,"agentos-user-group-item",7),Ag("deleteRequested",function(r){If(e);let m=mC(2);return wf(m.deleteGroup(r))}),fl();}if(n&2){let e=mC(2);Tg("userGroup",t)("namespaceId",e.namespaceId())("returnTo",e.returnTo());}}function pe$1(n,t){if(n&1&&eC(0,ue$1,1,3,"agentos-user-group-item",6),n&2){let e,o=t.$implicit,r=mC();tC((e=r.resolveGroup(o.id))?0:-1,e);}}var te$3=class n{router=g(G$5);destroyRef=g(we$1);userGroupState=g(m$3);namespaceId=mB.required();backLabel=mB(void 0);namespaces=mB(void 0);hideTitle=mB(false);returnTo=mB(void 0);backRequested=gB();namespaceChange=gB();refresh=Hi$1(0);isLoading=Hi$1(true);groups=F$1(Ly([T(this.namespaceId),T(this.refresh)]).pipe(ma$1(([t])=>(this.isLoading.set(true),this.userGroupState.listByNamespace(t).pipe(Od(()=>this.isLoading.set(false)),ga$1(e=>(console.error("[UserGroupList] Failed to load user groups",e),this.isLoading.set(false),ha$1([]))))))),{initialValue:[]});groupItems=mT(()=>this.groups().map(t=>({id:t.userGroupId,name:t.name})));groupsById=mT(()=>new Map(this.groups().map(t=>[t.userGroupId,t])));resolveGroup(t){return this.groupsById().get(t)??null}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId(),"user-groups","new"],{queryParams:this.returnTo()?{returnTo:this.returnTo()}:{}});}deleteGroup(t){this.userGroupState.delete(t.userGroupId).pipe(U$2(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=Aw({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&&(vs(0,"ds-entity-list",1),Ag("createRequested",function(){return o.openCreateForm()}),eC(1,se$1,2,1,"button",2)(2,le$1,1,2,"agentos-namespace-select",3),fl(),Dg(3,pe$1,1,1,"ng-template",null,0,fT)),e&2){let r,m=TC(4);Tg("hideTitle",o.hideTitle())("items",o.groupItems())("loading",o.isLoading())("showCreate",true)("itemTemplate",m),XE(),tC((r=o.backLabel())?1:(r=o.namespaces())?2:-1,r);}},dependencies:[Wn$1,D$1,w],styles:[".user-group-list__back[_ngcontent-%COMP%]{background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-primary, #007aff);font-family:inherit}.user-group-list__back[_ngcontent-%COMP%]:hover{text-decoration:underline}"]})};var d$3=class s{route=g(V$2);router=g(G$5);namespaceId=this.route.snapshot.params.namespaceId;goBack(){this.router.navigate(["/agentos","namespaces"]);}static \u0275fac=function(e){return new(e||s)};static \u0275cmp=Aw({type:s,selectors:[["agentos-namespace-user-groups"]],decls:1,vars:1,consts:[["backLabel","Namespaces",3,"backRequested","namespaceId"]],template:function(e,a){e&1&&(vs(0,"agentos-user-group-list",0),Ag("backRequested",function(){return a.goBack()}),fl()),e&2&&Tg("namespaceId",a.namespaceId);},dependencies:[te$3],encapsulation:2})};function d$2(r,e){let n=new Map(r.map(t=>[t.userId,t.role])),s=new Set(e.map(t=>t.userId)),i=e.filter(t=>n.get(t.userId)!==t.role),o=r.filter(t=>!s.has(t.userId)).map(t=>t.userId);return {toUpsert:i,toRemove:o}}function p$2(r){return r.some(e=>e.role==="ADMIN")}function a$1(r){return [r.firstname,r.lastname].filter(Boolean).join(" ").trim()||r.email||r.externalId||""}var c$2=20,m$2=class m{constructor(e,n){this.candidates=e;this.excludedUserIds=n;}candidates;excludedUserIds;search(e){let n=e.toLowerCase(),s=this.excludedUserIds(),i=this.candidates().filter(o=>!!o.id&&!s.has(o.id)).filter(o=>this.matches(o,n)).slice(0,c$2).map(o=>({id:o.id,name:a$1(o),description:o.email}));return ha$1(i)}matches(e,n){return (e.externalId??"").toLowerCase().includes(n)||(e.email??"").toLowerCase().includes(n)||a$1(e).toLowerCase().includes(n)}};var u$1=class t{userController=g(oe$2);currentUser=Hi$1(null);loadMe(){return this.userController.getMeUser().pipe(Od(r=>this.currentUser.set(r)))}updateMe(r){let e=this.currentUser();if(!e)throw new Error("Cannot update: current user not loaded");if(!e.id)throw new Error("Cannot update: current user has no id");let c=P(P({},e),r);return this.userController.updateUser(e.id,c).pipe(Od(d=>this.currentUser.set(d)))}static \u0275fac=function(e){return new(e||t)};static \u0275prov=x$1({token:t,factory:t.\u0275fac,providedIn:"root"})};var S=class r{membership=g(Q$3);userController=g(oe$2);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$1=(r,t)=>t.userId;function G$3(r,t){r&1&&(vs(0,"p",5),WC(1,"Loading\u2026"),fl());}function K$1(r,t){r&1&&(vs(0,"p",7),WC(1," You can change roles or remove existing members. Only a platform super-admin can add a new user to this namespace. "),fl());}function Q$2(r,t){r&1&&(vs(0,"p",11),WC(1,"No members yet."),fl());}function W$3(r,t){if(r&1&&(vs(0,"span",22),WC(1),fl()),r&2){let e=mC().$implicit;XE(),Zg(e.email);}}function X$2(r,t){if(r&1){let e=dC();vs(0,"li",19)(1,"div",20)(2,"span",21),WC(3),fl(),eC(4,W$3,2,1,"span",22),fl(),vs(5,"select",23),Ag("change",function(n){let c=If(e).$implicit,Y=mC(3);return wf(Y.setMemberRole(c.userId,n.target.value))}),vs(6,"option",24),WC(7,"Member"),fl(),vs(8,"option",25),WC(9,"Admin"),fl()(),vs(10,"button",26),Ag("click",function(){let n=If(e).$implicit,c=mC(3);return wf(c.removeMember(n.userId))}),WC(11," \xD7 "),fl()();}if(r&2){let e=t.$implicit;XE(3),Zg(e.label),XE(),tC(e.email&&e.email!==e.label?4:-1),XE(),Tg("value",e.role),Cg("aria-label","Role of "+e.label),XE(5),Tg("title","Remove "+e.label);}}function Z$3(r,t){if(r&1&&(vs(0,"ul",12),oC(1,X$2,12,5,"li",19,q$1),fl()),r&2){let e=mC(2);XE(),iC(e.selectedMembers());}}function ee$2(r,t){r&1&&(vs(0,"p",13),WC(1," At least one ADMIN must remain on the namespace. Assign ADMIN to someone before saving. "),fl());}function te$2(r,t){if(r&1){let e=dC();vs(0,"ds-autocomplete-input",27),Ag("itemSelected",function(n){If(e);let c=mC(2);return wf(c.onMemberSelected(n))}),fl();}if(r&2){let e=mC(2);Tg("dataSource",e.memberDataSource);}}function re$2(r,t){if(r&1&&(vs(0,"p",15),WC(1),fl()),r&2){let e=mC(2);XE(),Zg(e.errorMessage());}}function ne$1(r,t){if(r&1){let e=dC();vs(0,"div",6),eC(1,K$1,2,0,"p",7),vs(2,"fieldset",8)(3,"legend",9),WC(4," Roster "),vs(5,"span",10),WC(6,"Exactly one role per user: ADMIN or MEMBER"),fl()(),eC(7,Q$2,2,0,"p",11)(8,Z$3,3,0,"ul",12),eC(9,ee$2,2,0,"p",13),eC(10,te$2,1,1,"ds-autocomplete-input",14),fl(),eC(11,re$2,2,1,"p",15),vs(12,"div",16)(13,"button",17),Ag("click",function(){If(e);let n=mC();return wf(n.submit())}),WC(14," Save changes "),fl(),vs(15,"button",18),Ag("click",function(){If(e);let n=mC();return wf(n.cancel())}),WC(16,"Cancel"),fl()()();}if(r&2){let e=mC();XE(),tC(e.isSuperAdmin()?-1:1),XE(6),tC(e.selectedMembers().length===0?7:8),XE(2),tC(e.wouldLockOutAdmins()?9:-1),XE(),tC(e.isSuperAdmin()?10:-1),XE(),tC(e.errorMessage()?11:-1),XE(2),Tg("disabled",e.isSubmitting()||e.wouldLockOutAdmins());}}var H$2=class r{route=g(V$2);router=g(G$5);destroyRef=g(we$1);memberState=g(S);userState=g(u$1);namespaceId=this.route.snapshot.params.namespaceId;isLoading=Hi$1(false);isSubmitting=Hi$1(false);errorMessage=Hi$1(null);isSuperAdmin=Hi$1(false);selectedMembers=Hi$1([]);originalMembers=[];candidateUsers=Hi$1([]);memberDataSource=new m$2(()=>this.candidateUsers(),()=>new Set(this.selectedMembers().map(t=>t.userId)));ngOnInit(){this.loadData();}loadData(){this.isLoading.set(true),(this.userState.currentUser()?ha$1(this.userState.currentUser()):this.userState.loadMe()).pipe(ga$1(e=>(console.error("[NamespaceMembers] Failed to load current user",e),ha$1(null))),U$2(this.destroyRef)).subscribe(e=>{let i=e?.isAdmin===true;this.isSuperAdmin.set(i),this.loadMembersAndCandidates(i);});}loadMembersAndCandidates(t){By({members:this.memberState.listMembers(this.namespaceId),allUsers:t?this.memberState.listAllUsers():ha$1([])}).pipe(U$2(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$3(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$2(this.originalMembers,this.selectedMembers().map(n=>({userId:n.userId,role:n.role})));if(t.length===0&&e.length===0){this.isSubmitting.set(false),this.navigateBack();return}let i=[...t.map(n=>({userId:n.userId,role:n.role})),...e.map(n=>({userId:n}))];this.memberState.updateMembers(this.namespaceId,i).pipe(U$2(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=Aw({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&&(vs(0,"div",0)(1,"header",1)(2,"button",2),Ag("click",function(){return i.cancel()}),vs(3,"span",3),WC(4,"\u2190"),fl(),WC(5," Namespaces "),fl(),vs(6,"h1",4),WC(7,"Members"),fl()(),eC(8,G$3,2,0,"p",5)(9,ne$1,17,6,"div",6),fl()),e&2&&(XE(8),tC(i.isLoading()?8:9));},dependencies:[Pn$1],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 Q$1=[[["","agentosCardChips",""]]],q=["[agentosCardChips]"];function F(n,t){n&1&&Mg(0);}function U$1(n,t){if(n&1){let e=dC();vs(0,"button",3),Ag("click",function(){If(e);let l=mC();return wf(l.nameClicked.emit())}),Dg(1,F,1,0,"ng-container",4),fl();}if(n&2){mC();let e=TC(3);XE(),Tg("ngTemplateOutlet",e);}}function R$1(n,t){n&1&&Mg(0);}function G$2(n,t){if(n&1&&(vs(0,"div",2),Dg(1,R$1,1,0,"ng-container",4),fl()),n&2){mC();let e=TC(3);XE(),Tg("ngTemplateOutlet",e);}}function H$1(n,t){if(n&1&&(vs(0,"div",7),bg(1,"img",15),fl()),n&2){let e=mC(2);XE(),Tg("src",e.logo(),yh)("alt",e.name());}}function J$1(n,t){if(n&1&&(vs(0,"div",16),WC(1),fl()),n&2){let e=mC(2);Hg("ac__mark--emoji",e.markIsEmoji()),XE(),Zg(e.resolvedMark);}}function L$2(n,t){if(n&1&&(vs(0,"span",10),WC(1),fl()),n&2){let e=mC(2);XE(),Zg(e.name());}}function W$2(n,t){if(n&1){let e=dC();vs(0,"button",17),Ag("click",function(){If(e);let l=mC(2);return wf(l.nameClicked.emit())}),WC(1),fl();}if(n&2){let e=mC(2);XE(),Zg(e.name());}}function X$1(n,t){if(n&1&&(vs(0,"p",12),WC(1),fl()),n&2){let e=mC(2);XE(),Zg(e.description());}}function Y$1(n,t){if(n&1){let e=dC();vs(0,"ds-kebab-menu",18),Ag("itemSelected",function(l){If(e);let K=mC(2);return wf(K.menuAction.emit(l))}),fl();}if(n&2){let e=mC(2);Tg("items",e.menuItems());}}function Z$2(n,t){n&1&&(vs(0,"div",14),DC(1),fl());}function $$1(n,t){if(n&1&&(vs(0,"div",5)(1,"div",6),eC(2,H$1,2,2,"div",7)(3,J$1,2,3,"div",8),vs(4,"div",9),eC(5,L$2,2,1,"span",10)(6,W$2,2,1,"button",11),eC(7,X$1,2,1,"p",12),fl()(),eC(8,Y$1,1,1,"ds-kebab-menu",13),fl(),eC(9,Z$2,2,0,"div",14)),n&2){let e=mC();XE(2),tC(e.logo()?2:3),XE(3),tC(e.clickable()?5:6),XE(2),tC(e.description()?7:-1),XE(),tC(e.hasMenu?8:-1),XE(),tC(e.hasChips?9:-1);}}var h$2=class n{static \u0275fac=function(e){return new(e||n)};static \u0275dir=ks({type:n,selectors:[["","agentosCardChips",""]]})},B$1=class n{name=mB.required();description=mB(null);mark=mB(null);markIsEmoji=mB(false);logo=mB(null);menuItems=mB([]);clickable=mB(false);nameClicked=gB();menuAction=gB();chipsSlot=EB(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=Aw({type:n,selectors:[["agentos-action-card"]],contentQueries:function(e,m,l){e&1&&Pg(l,m.chipsSlot,h$2,5),e&2&&CC();},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,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&&(vC(Q$1),eC(0,U$1,2,1,"button",1)(1,G$2,2,1,"div",2),Dg(2,$$1,10,5,"ng-template",null,0,fT)),e&2&&tC(m.clickable()?0:1);},dependencies:[Kn$1,Zn$2,Sb],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 Q=()=>[];function X(p,n){if(p&1){let t=dC();gl(0,1),vs(1,"span",2),WC(2,"Delete?"),fl(),vs(3,"ds-icon-button",3),Ag("action",function(){If(t);let e=mC();return wf(e.onDeleteConfirmed())}),fl(),vs(4,"ds-icon-button",4),Ag("action",function(){If(t);let e=mC();return wf(e.onDeleteCancelled())}),fl(),ml();}}function Y(p,n){if(p&1){let t=dC();gl(0,1),vs(1,"button",5),Ag("click",function(){If(t);let e=mC();return wf(e.onIntegrations())}),kf(),vs(2,"svg",6),bg(3,"path",7)(4,"path",8),fl(),WC(5," Integrations "),fl(),Ff(),vs(6,"button",5),Ag("click",function(){If(t);let e=mC();return wf(e.onAiProviders())}),kf(),vs(7,"svg",6),bg(8,"rect",9)(9,"rect",10)(10,"path",11),fl(),WC(11," AI Providers "),fl(),Ff(),vs(12,"button",5),Ag("click",function(){If(t);let e=mC();return wf(e.onAiModels())}),kf(),vs(13,"svg",6),bg(14,"path",12),fl(),WC(15," AI Models "),fl(),Ff(),vs(16,"button",5),Ag("click",function(){If(t);let e=mC();return wf(e.onAgentConfigs())}),kf(),vs(17,"svg",6),bg(18,"path",13)(19,"circle",14)(20,"circle",15),fl(),WC(21," Agent Configs "),fl(),Ff(),vs(22,"button",5),Ag("click",function(){If(t);let e=mC();return wf(e.onPrompts())}),kf(),vs(23,"svg",6),bg(24,"path",16)(25,"path",17)(26,"path",18),fl(),WC(27," Prompts "),fl(),Ff(),vs(28,"button",5),Ag("click",function(){If(t);let e=mC();return wf(e.onScheduledPrompts())}),kf(),vs(29,"svg",6),bg(30,"circle",19)(31,"path",20),fl(),WC(32," Schedulers "),fl(),Ff(),vs(33,"button",5),Ag("click",function(){If(t);let e=mC();return wf(e.onUserGroups())}),kf(),vs(34,"svg",6),bg(35,"circle",21)(36,"path",22)(37,"path",23),fl(),WC(38," User Groups "),fl(),Ff(),vs(39,"button",5),Ag("click",function(){If(t);let e=mC();return wf(e.onAuthSettings())}),kf(),vs(40,"svg",6),bg(41,"circle",24)(42,"path",25)(43,"path",26),fl(),WC(44," Auth Settings "),fl(),Ff(),vs(45,"button",5),Ag("click",function(){If(t);let e=mC();return wf(e.onMembers())}),kf(),vs(46,"svg",6),bg(47,"circle",24)(48,"path",27),fl(),WC(49," Members "),fl(),ml();}}var M=class p{namespace=mB.required();selected=gB();editRequested=gB();integrationsRequested=gB();aiProvidersRequested=gB();aiModelsRequested=gB();agentConfigsRequested=gB();promptsRequested=gB();scheduledPromptsRequested=gB();userGroupsRequested=gB();membersRequested=gB();authSettingsRequested=gB();deleteRequested=gB();pendingDelete=Hi$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());}onAuthSettings(){this.authSettingsRequested.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||p)};static \u0275cmp=Aw({type:p,selectors:[["agentos-namespace-item"]],inputs:{namespace:[1,"namespace"]},outputs:{selected:"selected",editRequested:"editRequested",integrationsRequested:"integrationsRequested",aiProvidersRequested:"aiProvidersRequested",aiModelsRequested:"aiModelsRequested",agentConfigsRequested:"agentConfigsRequested",promptsRequested:"promptsRequested",scheduledPromptsRequested:"scheduledPromptsRequested",userGroupsRequested:"userGroupsRequested",membersRequested:"membersRequested",authSettingsRequested:"authSettingsRequested",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"],["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"]],template:function(t,i){t&1&&(vs(0,"agentos-action-card",0),Ag("nameClicked",function(){return i.onSelect()})("menuAction",function(o){return i.onMenuAction(o)}),eC(1,X,5,0,"ng-container",1)(2,Y,50,0,"ng-container",1),fl()),t&2&&(Tg("name",i.namespace().name)("menuItems",i.pendingDelete()?rT(3,Q):i.menuItems),XE(),tC(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 Z$1=()=>[];function ee$1(p,n){if(p&1){let t=dC();vs(0,"agentos-namespace-item",3),Ag("selected",function(e){If(t);let o=mC(2);return wf(o.navigateToHome(e.id??""))})("editRequested",function(e){If(t);let o=mC(2);return wf(o.navigateToEdit(e))})("deleteRequested",function(e){If(t);let o=mC(2);return wf(o.deleteNamespace(e))})("integrationsRequested",function(e){If(t);let o=mC(2);return wf(o.openIntegrations(e))})("aiProvidersRequested",function(e){If(t);let o=mC(2);return wf(o.openAiProviders(e))})("aiModelsRequested",function(e){If(t);let o=mC(2);return wf(o.openAiModels(e))})("agentConfigsRequested",function(e){If(t);let o=mC(2);return wf(o.openAgentConfigs(e))})("promptsRequested",function(e){If(t);let o=mC(2);return wf(o.openPrompts(e))})("scheduledPromptsRequested",function(e){If(t);let o=mC(2);return wf(o.openScheduledPrompts(e))})("userGroupsRequested",function(e){If(t);let o=mC(2);return wf(o.openUserGroups(e))})("membersRequested",function(e){If(t);let o=mC(2);return wf(o.openMembers(e))})("authSettingsRequested",function(e){If(t);let o=mC(2);return wf(o.openAuthSettings(e))}),fl();}p&2&&Tg("namespace",n);}function te$1(p,n){if(p&1&&eC(0,ee$1,1,1,"agentos-namespace-item",2),p&2){let t,i=n.$implicit,e=mC();tC((t=e.namespacesById().get(i.id))?0:-1,t);}}var W$1=class p{router=g(G$5);namespaceController=g(N$2);destroyRef=g(we$1);refresh$=new Tr(void 0);isLoading=Hi$1(true);namespaces$=this.refresh$.pipe(ma$1(()=>(this.isLoading.set(true),this.namespaceController.listAllNamespace())));namespaceItems$=this.namespaces$.pipe(ue$3(n=>n.map(t=>({id:t.id??"",name:t.name,description:t.description,badges:t.defaultAgentName?[{label:t.defaultAgentName,variant:"info"}]:void 0}))));namespacesById=Hi$1(new Map);constructor(){this.namespaces$.pipe(U$2(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"]);}openMembers(n){this.router.navigate(["/agentos",n.id,"members"]);}deleteNamespace(n){this.namespaceController.deleteNamespace(n.id??"").pipe(U$2(this.destroyRef)).subscribe(()=>this.refresh$.next());}static \u0275fac=function(t){return new(t||p)};static \u0275cmp=Aw({type:p,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"],[3,"selected","editRequested","deleteRequested","integrationsRequested","aiProvidersRequested","aiModelsRequested","agentConfigsRequested","promptsRequested","scheduledPromptsRequested","userGroupsRequested","membersRequested","authSettingsRequested","namespace"]],template:function(t,i){if(t&1&&(vs(0,"ds-entity-list",1),aT(1,"async"),Ag("itemSelected",function(o){return i.navigateToHome(o)})("createRequested",function(){return i.navigateToCreate()}),fl(),Dg(2,te$1,1,1,"ng-template",null,0,fT)),t&2){let e=TC(3);Tg("items",uT(1,4,i.namespaceItems$)??rT(6,Z$1))("loading",i.isLoading())("showCreate",true)("itemTemplate",e);}},dependencies:[M,Wn$1,Nb],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(oe$2);users=Hi$1([]);isLoading=Hi$1(false);loadAll(){return this.isLoading.set(true),this.userController.listAllUser().pipe(Od({next:e=>{this.users.set(e),this.isLoading.set(false);},error:()=>this.isLoading.set(false)}))}createUser(e){return this.userController.createUser(e).pipe(Od(()=>{this.loadAll().subscribe();}))}updateUser(e,r){let t=this.users().find(i=>i.id===e);if(!t)throw new Error(`Cannot update: user ${e} not found in state`);let U=P(P({},t),r);return this.userController.updateUser(e,U).pipe(Od(i=>{this.users.update(b=>b.map(l=>l.id===i.id?i:l));}))}deleteUser(e){return this.userController.deleteUser(e).pipe(Od(()=>{this.users.update(r=>r.filter(t=>t.id!==e));}))}static \u0275fac=function(r){return new(r||o)};static \u0275prov=x$1({token:o,factory:o.\u0275fac,providedIn:"root"})};function j$1(i,o){i&1&&(vs(0,"p",5),WC(1,"Loading\u2026"),fl());}function H(i,o){if(i&1&&(vs(0,"span",13),WC(1),fl()),i&2){let t=mC(2);XE(),Zg(t.form.controls.email.value);}}function J(i,o){i&1&&(bg(0,"input",14),HI()),i&2&&$I();}function K(i,o){if(i&1){let t=dC();vs(0,"form",7),Ag("ngSubmit",function(){If(t);let l=mC();return wf(l.save())}),vs(1,"div",8)(2,"h2",9),WC(3,"Identity"),fl(),vs(4,"div",10)(5,"label",11),WC(6,"Email "),vs(7,"span",12),WC(8,"*"),fl()(),eC(9,H,2,1,"span",13)(10,J,1,0,"input",14),fl(),vs(11,"div",10)(12,"label",15),WC(13,"External ID"),fl(),bg(14,"input",16),HI(),fl()(),vs(15,"div",8)(16,"h2",9),WC(17,"Profile"),fl(),vs(18,"div",10)(19,"label",17),WC(20,"First name"),fl(),bg(21,"input",18),HI(),fl(),vs(22,"div",10)(23,"label",19),WC(24,"Last name"),fl(),bg(25,"input",20),HI(),fl(),vs(26,"div",21)(27,"label",22),WC(28,"Bio"),fl(),bg(29,"textarea",23),HI(),fl()(),vs(30,"div",8)(31,"h2",9),WC(32,"Permissions"),fl(),vs(33,"div",24),bg(34,"input",25),HI(),vs(35,"label",26),WC(36," Super admin (full access to AgentOS) "),fl()()(),vs(37,"div",27)(38,"button",28),WC(39),fl(),vs(40,"button",29),Ag("click",function(){If(t);let l=mC();return wf(l.cancel())}),WC(41,"Cancel"),fl()()();}if(i&2){let t=mC();Tg("formGroup",t.form),XE(9),tC(t.isEditMode?9:10),XE(5),$I(),XE(7),$I(),XE(4),$I(),XE(4),$I(),XE(5),$I(),XE(4),Tg("disabled",t.form.invalid||t.isSaving()),XE(),yl(" ",t.isSaving()?"Saving\u2026":t.isEditMode?"Save changes":"Create user"," ");}}var $=class i{route=g(V$2);router=g(G$5);destroyRef=g(we$1);userAdminState=g(c$1);userState=g(u$1);userId=this.route.snapshot.params.userId;isEditMode=!!this.userId;isSaving=Hi$1(false);isLoading=Hi$1(false);form=new z$2({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$2(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$2(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$2(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=Aw({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&&(vs(0,"div",0)(1,"header",1)(2,"button",2),Ag("click",function(){return a.cancel()}),vs(3,"span",3),WC(4,"\u2190"),fl(),WC(5," Users "),fl(),vs(6,"h1",4),WC(7),fl()(),eC(8,j$1,2,0,"p",5)(9,K,42,4,"form",6),fl()),t&2&&(XE(7),Zg(a.title),XE(),tC(a.isLoading()?8:9));},dependencies:[ni$1,Jn$1,Ye$1,wt,Zn$1,Xn$1,En$1,An$1],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&&(vs(0,"span",3),WC(1),fl()),i&2){let e=mC();XE(),Zg(e.subtitle);}}var I$2=class i{user=mB.required();editRequested=gB();deleteRequested=gB();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=Aw({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&&(vs(0,"div",0)(1,"div",1)(2,"span",2),WC(3),fl(),eC(4,ee,2,1,"span",3),fl(),vs(5,"div",4)(6,"ds-kebab-menu",5),Ag("itemSelected",function(o){return n.onMenuAction(o)}),fl()()()),e&2&&(XE(3),Zg(n.displayName),XE(),tC(n.subtitle?4:-1),XE(2),Tg("items",n.menuItems));},dependencies:[Kn$1,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=dC();vs(0,"agentos-namespace-select",4),Ag("valueChange",function(s){If(e);let o=mC();return wf(o.onNamespaceChange(s))}),fl();}if(i&2){let e=mC();Tg("namespaces",t)("value",e.selectedNamespaceId())("includeAllOption",true);}}function ne(i,t){if(i&1){let e=dC();vs(0,"ds-icon-button",5),Ag("action",function(){If(e);let s=mC();return wf(s.goBack())}),fl();}}function ie$1(i,t){if(i&1){let e=dC();vs(0,"agentos-user-item",7),Ag("editRequested",function(s){If(e);let o=mC(2);return wf(o.navigateToEdit(s))})("deleteRequested",function(s){If(e);let o=mC(2);return wf(o.deleteUser(s))}),fl();}i&2&&Tg("user",t);}function se(i,t){if(i&1&&eC(0,ie$1,1,1,"agentos-user-item",6),i&2){let e,n=t.$implicit,s=mC();tC((e=s.resolveUser(n.id))?0:-1,e);}}var k=class i{router=g(G$5);destroyRef=g(we$1);userAdminState=g(c$1);namespaceMembership=g(Q$3);showBackButton=mB(true);namespaces=mB(void 0);selectedNamespaceId=mB(null);hideTitle=mB(false);namespaceFilterChange=gB();isLoading=this.userAdminState.isLoading;namespaceUserIds=F$1(T(this.selectedNamespaceId).pipe(ma$1(t=>t?this.namespaceMembership.getMembersNamespaceMembership(t).pipe(ue$3(e=>new Set(e.map(n=>n.id))),ga$1(e=>(console.error("[UserList] Failed to load namespace users",e),ha$1(null)))):ha$1(null))),{initialValue:null});userItems=mT(()=>{let t=this.namespaceUserIds();return this.userAdminState.users().filter(e=>t===null||t.has(e.id??"")).map(e=>({id:e.id??"",name:[e.firstname,e.lastname].filter(Boolean).join(" ")||e.email||"\u2014",description:e.email}))});get usersById(){return new Map(this.userAdminState.users().map(t=>[t.id??"",t]))}ngOnInit(){this.userAdminState.loadAll().pipe(U$2(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$2(this.destroyRef)).subscribe();}resolveUser(t){return this.usersById.get(t)??null}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=Aw({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&&(vs(0,"ds-entity-list",1),Ag("createRequested",function(){return n.navigateToCreate()}),eC(1,te,1,3,"agentos-namespace-select",2)(2,ne,1,0,"ds-icon-button",3),fl(),Dg(3,se,1,1,"ng-template",null,0,fT)),e&2){let s,o=TC(4);Tg("hideTitle",n.hideTitle())("items",n.userItems())("loading",n.isLoading())("showCreate",true)("pageSize",100)("itemTemplate",o),XE(),tC((s=n.namespaces())?1:n.showBackButton()?2:-1,s);}},dependencies:[Wn$1,I$2,Se$1,w],encapsulation:2})};function re$1(i,t){if(i&1){let e=dC();vs(0,"agentos-user-list",9),Ag("namespaceFilterChange",function(s){If(e);let o=mC();return wf(o.onUsersNamespaceChange(s))}),fl();}if(i&2){let e=mC();Tg("showBackButton",false)("hideTitle",true)("namespaces",e.namespaces())("selectedNamespaceId",e.usersNamespaceFilter());}}function ae$1(i,t){i&1&&(vs(0,"p",10),WC(1,"No namespaces yet. Create one before managing groups."),fl());}function oe(i,t){if(i&1){let e=dC();vs(0,"agentos-user-group-list",12),Ag("namespaceChange",function(s){If(e);let o=mC(2);return wf(o.onGroupsNamespaceChange(s))}),fl();}if(i&2){let e=mC(2);Tg("namespaceId",t)("hideTitle",true)("namespaces",e.namespaces())("returnTo",e.returnTo());}}function le(i,t){if(i&1&&eC(0,ae$1,2,0,"p",10)(1,oe,1,4,"agentos-user-group-list",11),i&2){let e,n=mC();tC(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(we$1);namespaceController=g(N$2);activeTab=Hi$1(this.route.snapshot.queryParamMap.get("tab")==="groups"?"groups":"users");namespaces=Hi$1([]);usersNamespaceFilter=Hi$1(null);groupsNamespaceId=Hi$1(null);returnTo=mT(()=>{let t=this.groupsNamespaceId();return t?`/agentos/admin/users?tab=groups&ns=${t}`:"/agentos/admin/users?tab=groups"});constructor(){let t=this.route.snapshot.queryParamMap.get("ns");this.namespaceController.listAllNamespace().pipe(U$2(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=Aw({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&&(vs(0,"div",0)(1,"header",1)(2,"button",2),Ag("click",function(){return n.goBack()}),WC(3,"\u2190 Admin"),fl(),vs(4,"h1",3),WC(5,"Users & Groups"),fl()(),vs(6,"div",4)(7,"button",5),Ag("click",function(){return n.setTab("users")}),WC(8," Users "),fl(),vs(9,"button",6),Ag("click",function(){return n.setTab("groups")}),WC(10," Groups "),fl()(),vs(11,"div",7),eC(12,re$1,1,4,"agentos-user-list",8)(13,le,2,1),fl()()),e&2&&(XE(7),Hg("admin-users-groups__tab--active",n.activeTab()==="users"),Cg("aria-selected",n.activeTab()==="users"),XE(2),Hg("admin-users-groups__tab--active",n.activeTab()==="groups"),Cg("aria-selected",n.activeTab()==="groups"),XE(2),Cg("aria-labelledby",n.activeTab()==="users"?"admin-tab-users":"admin-tab-groups"),XE(),tC(n.activeTab()==="users"?12:13));},dependencies:[k,te$3],styles:[".admin-users-groups[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem;padding:1.5rem 1rem 0;--entity-list-toolbar-max-width: 900px}.admin-users-groups__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem;max-width:900px;margin:0 auto;width:100%}.admin-users-groups__back[_ngcontent-%COMP%]{align-self:flex-start;background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-primary, #007aff);font-family:inherit}.admin-users-groups__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.admin-users-groups__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-text, #1d1d1f);letter-spacing:-.02em}.admin-users-groups__tabs[_ngcontent-%COMP%]{display:inline-flex;gap:.25rem;padding:.25rem;border-radius:10px;background:var(--color-surface-hover, rgba(0, 0, 0, .05));border:1px solid var(--color-border, rgba(0, 0, 0, .08));max-width:900px;margin:0 auto;width:fit-content;align-self:center}.admin-users-groups__tab[_ngcontent-%COMP%]{padding:.4rem 1.25rem;border-radius:8px;border:none;background:transparent;color:var(--color-text-secondary, #6e6e73);font-size:.9rem;font-family:inherit;font-weight:500;cursor:pointer;transition:background .15s ease,color .15s ease}.admin-users-groups__tab[_ngcontent-%COMP%]:hover{color:var(--color-text, #1d1d1f)}.admin-users-groups__tab--active[_ngcontent-%COMP%]{background:var(--color-bg-surface, #fff);color:var(--color-text, #1d1d1f);box-shadow:0 1px 2px #00000014}.admin-users-groups__empty[_ngcontent-%COMP%]{max-width:900px;margin:1rem auto;width:100%;color:var(--color-text-secondary, #6e6e73);font-size:.9rem}"]})};var p$1=["industry","terminal"],l$2=["light","dark","system"],r="agentos.theme.variant",a="agentos.theme.mode",y="agentos.theme",m$1=class n{_theme=Hi$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 w$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=Aw({type:t,selectors:[["agentos-shell"]],decls:1,vars:0,template:function(e,c){e&1&&bg(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(TS);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.sanitize(e,{ADD_TAGS:["span"],ADD_ATTR:["aria-hidden","aria-label","target","rel"],ALLOWED_URI_REGEXP:/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.-]+(?:[^a-z+.-:]|$))/i});return this.sanitizer.bypassSecurityTrustHtml(t)}buildRenderer(){let r=new Ue$1,e=r.link.bind(r);return r.link=t=>{let n=e(t);return this.isExternal(t.href)&&(n=n.replace("<a ",'<a target="_blank" rel="noopener noreferrer" ').replace("</a>",'<span class="external-link-icon" aria-hidden="true">\u2197</span></a>')),n},r}isExternal(r){if(!r||r.startsWith("/")||r.startsWith("#")||r.startsWith("?"))return false;if(r.startsWith("//"))return true;try{return new URL(r,window.location.href).hostname!==window.location.hostname}catch(e){return false}}static \u0275fac=function(e){return new(e||a)};static \u0275pipe=An$2({name:"agentosMarkdown",type:a,pure:true})};
|
|
2
|
+
var l=["send","newline"],c="agentos.enter-key-behavior",d="send",o=class t{_enterKeyBehavior=Hi$1(this.readStoredBehavior());enterKeyBehavior=this._enterKeyBehavior.asReadonly();composerHint=mT(()=>this._enterKeyBehavior()==="newline"?"Enter for a new line \xB7 Ctrl/Cmd+Enter to send":"Enter to send \xB7 Shift+Enter for a new line");setEnterKeyBehavior(e){this._enterKeyBehavior.set(e);try{localStorage.setItem(c,e);}catch(r){}}shouldSend(e){let r=e.key==="Enter"&&!e.isComposing,E=e.ctrlKey||e.metaKey,h=this._enterKeyBehavior()==="newline"?E:!e.shiftKey;return r&&h}readStoredBehavior(){try{let e=localStorage.getItem(c);return e&&l.includes(e)?e:d}catch(e){return d}}static \u0275fac=function(r){return new(r||t)};static \u0275prov=x$1({token:t,factory:t.\u0275fac,providedIn:"root"})},f=new w$1("agentos.user-preferences-port",{providedIn:"root",factory:()=>g(o)});var m=class e{promptController=g(ee$3);exportService=g(ie$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(dy);config=g(y$1);zone=g(G$6);popupCheckInterval=null;popupClosedAt=null;static POPUP_CLOSE_GRACE_MS=2e3;pendingQuestion=Hi$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([]);_selected$=new Tr(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(N$2);_initialized$=new Tr(false);initialized$=this._initialized$.asObservable();activeNamespaceId=Hi$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(Rd(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([]).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=dC();pl(0,"button",2),Rg("click",function(){If(e);let a=mC(2);return wf(a.onNavigate("/agentos/admin"))}),kf(),pl(1,"svg",3),Sg(2,"path",17),hl(),WC(3," Administration "),hl();}}function U(n,t){n&1&&(pl(0,"span",14),WC(1,"On"),hl());}function z$1(n,t){n&1&&(pl(0,"span",14),WC(1,"On"),hl());}function A(n,t){n&1&&(kf(),pl(0,"svg",3),Sg(1,"circle",18)(2,"path",19),hl(),WC(3," Light mode "));}function G$1(n,t){n&1&&(kf(),pl(0,"svg",3),Sg(1,"path",20),hl(),WC(2," Dark mode "));}function I(n,t){if(n&1){let e=dC();pl(0,"div",0),Rg("click",function(a){If(e);let T=mC();return wf(T.onClose(a))})("keyup.escape",function(a){If(e);let T=mC();return wf(T.onClose(a))}),hl(),pl(1,"div",1)(2,"button",2),Rg("click",function(){If(e);let a=mC();return wf(a.onNavigate("/agentos/user"))}),kf(),pl(3,"svg",3),Sg(4,"circle",4)(5,"path",5),hl(),WC(6," User settings "),hl(),eC(7,L$1,4,0,"button",6),Ff(),Sg(8,"div",7),pl(9,"button",2),Rg("click",function(){If(e);let a=mC();return wf(a.onNavigate("/agentos/namespaces"))}),kf(),pl(10,"svg",3),Sg(11,"rect",8)(12,"rect",9)(13,"rect",10)(14,"rect",11),hl(),WC(15," Namespaces "),hl(),Ff(),pl(16,"button",2),Rg("click",function(){If(e);let a=mC();return wf(a.onLogsToggle())}),kf(),pl(17,"svg",3),Sg(18,"polyline",12)(19,"line",13),hl(),WC(20," Technical logs "),eC(21,U,2,0,"span",14),hl(),Ff(),pl(22,"button",2),Rg("click",function(){If(e);let a=mC();return wf(a.onToolCallsToggle())}),kf(),pl(23,"svg",3),Sg(24,"path",15)(25,"path",16),hl(),WC(26," Tool calls "),eC(27,z$1,2,0,"span",14),hl(),Ff(),Sg(28,"div",7),pl(29,"button",2),Rg("click",function(){If(e);let a=mC();return wf(a.onThemeToggle())}),eC(30,A,4,0)(31,G$1,3,0),hl()();}if(n&2){let e=mC();XE(),Vg("top",e.variant()==="compact"?e.fixedTop():null,"px")("left",e.variant()==="compact"?e.fixedLeft():null,"px"),Hg("shell-user-menu__overlay--topbar",e.variant()==="topbar")("shell-user-menu__overlay--mobile",e.variant()==="mobile")("shell-user-menu__overlay--compact",e.variant()==="compact"),XE(6),tC(e.isAdmin()?7:-1),XE(9),Hg("shell-user-menu__item--active",e.showTechnical()),XE(5),tC(e.showTechnical()?21:-1),XE(),Hg("shell-user-menu__item--active",e.showToolCalls()),XE(5),tC(e.showToolCalls()?27:-1),XE(3),tC(e.isDark()?30:31);}}var D=class n{open=mB.required();isAdmin=mB.required();isDark=mB.required();themeVariant=mB.required();showTechnical=mB.required();showToolCalls=mB.required();variant=mB("desktop");fixedTop=mB(0);fixedLeft=mB(0);navigateTo=gB();themeToggled=gB();themeVariantChanged=gB();logsToggled=gB();toolCallsToggled=gB();closed=gB();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=Aw({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&&eC(0,I,32,18),e&2&&tC(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}"]})};function Dn(o,t){o&1&&(kf(),Sg(0,"circle",2)(1,"path",3));}function Vn(o,t){o&1&&(kf(),Sg(0,"circle",4)(1,"circle",5));}function Rn(o,t){o&1&&(kf(),Sg(0,"circle",6)(1,"rect",7));}function Nn(o,t){o&1&&(kf(),Sg(0,"circle",8)(1,"line",9)(2,"circle",10));}function An(o,t){o&1&&(kf(),Sg(0,"circle",1));}var me=class o{status=mB.required();size=mB(16);Status=xe$1;static \u0275fac=function(e){return new(e||o)};static \u0275cmp=Aw({type:o,selectors:[["agentos-case-status-glyph"]],hostVars:8,hostBindings:function(e,n){e&2&&Hg("is-running",n.status()===n.Status.RUNNING)("is-pending",n.status()===n.Status.PENDING)("is-error",n.status()===n.Status.ERROR)("is-killed",n.status()===n.Status.KILLED);},inputs:{status:[1,"status"],size:[1,"size"]},decls:6,vars:3,consts:[["viewBox","0 0 16 16","fill","none","aria-hidden","true"],["cx","8","cy","8","r","5.5","stroke","currentColor","stroke-width","1.6"],["cx","8","cy","8","r","6","stroke","currentColor","stroke-width","1.6","opacity","0.25"],["d","M8 2 A6 6 0 0 1 14 8","stroke","currentColor","stroke-width","1.8","stroke-linecap","round",1,"arc"],["cx","8","cy","8","r","6","stroke","currentColor","stroke-width","1.4","opacity","0.5"],["cx","8","cy","8","r","2.4","fill","currentColor",1,"dot"],["cx","8","cy","8","r","6.2","fill","currentColor","opacity","0.9"],["x","4.6","y","7.1","width","6.8","height","1.8","fill","var(--color-bg)"],["cx","8","cy","8","r","6.2","fill","currentColor"],["x1","8","y1","4.6","x2","8","y2","8.8","stroke","var(--color-bg)","stroke-width","1.7","stroke-linecap","round"],["cx","8","cy","11.2","r","1","fill","var(--color-bg)"]],template:function(e,n){if(e&1&&(kf(),pl(0,"svg",0),eC(1,Dn,2,0)(2,Vn,2,0)(3,Rn,2,0)(4,Nn,3,0)(5,An,1,0,":svg:circle",1),hl()),e&2){let i;Cg("width",n.size())("height",n.size()),XE(),tC((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)}}"]})};var pe=class o{caseController=g(_);cases=Hi$1([]);loadSubscription=null;currentNamespaceId=null;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(Od(()=>this.reloadCurrent()))}setStarred(t,e){return Zy(()=>(this.patchFavorite(t,e),(e?this.caseController.starCase(t):this.caseController.unstarCase(t)).pipe(ga$1(i=>(this.patchFavorite(t,!e),Hy(()=>i))))))}renameCase(t,e){return Zy(()=>{let n=this.cases().find(a=>a.id===t);if(!n)return Hy(()=>new Error(`[CaseState] Case ${t} is not in the current list`));let i=n.title;return this.patchTitle(t,e),this.caseController.updateCase(t,z$3(P({},n),{title:e})).pipe(ga$1(a=>(this.patchTitle(t,i),Hy(()=>a))))})}patchFavorite(t,e){this.cases.update(n=>n.map(i=>i.id===t?z$3(P({},i),{favorite:e}):i));}patchTitle(t,e){this.cases.update(n=>n.map(i=>i.id===t?z$3(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$3(P({},i),{status:e}):i));}static \u0275fac=function(e){return new(e||o)};static \u0275prov=x$1({token:o,factory:o.\u0275fac,providedIn:"root"})};function Fn(o,t){if(o&1){let e=dC();pl(0,"div",5)(1,"input",8),Rg("input",function(i){If(e);let a=mC();return wf(a.onFreeTextInput(i))})("keydown",function(i){If(e);let a=mC();return wf(a.onFreeTextKeydown(i))}),hl(),pl(2,"button",9),Rg("click",function(){If(e);let i=mC();return wf(i.submitFreeText())}),WC(3," Submit "),hl()();}if(o&2){let e=mC();XE(),Ng("value",e.freeTextValue()),XE(),Ng("disabled",!e.freeTextValue().trim());}}function qn(o,t){if(o&1){let e=dC();pl(0,"button",11),Rg("click",function(){let i=If(e).$implicit,a=mC(2);return wf(a.selectOption(i))}),WC(1),hl();}if(o&2){let e=t.$implicit;XE(),yl(" ",e," ");}}function Ln(o,t){if(o&1&&(pl(0,"div",6),oC(1,qn,2,1,"button",10,rC),hl()),o&2){let e=mC();XE(),iC(e.questionEvent().options);}}function zn(o,t){if(o&1){let e=dC();pl(0,"button",11),Rg("click",function(){let i=If(e).$implicit,a=mC(2);return wf(a.selectOption(i))}),WC(1),hl();}if(o&2){let e=t.$implicit;XE(),yl(" ",e," ");}}function $n(o,t){if(o&1){let e=dC();pl(0,"div",6),oC(1,zn,2,1,"button",10,rC),hl(),pl(3,"div",12)(4,"input",13),Rg("input",function(i){If(e);let a=mC();return wf(a.onFreeTextInput(i))})("keydown",function(i){If(e);let a=mC();return wf(a.onFreeTextKeydown(i))}),hl(),pl(5,"button",9),Rg("click",function(){If(e);let i=mC();return wf(i.submitFreeText())}),WC(6," Submit "),hl()();}if(o&2){let e=mC();XE(),iC(e.questionEvent().options),XE(3),Ng("value",e.freeTextValue()),XE(),Ng("disabled",!e.freeTextValue().trim());}}function Un(o,t){if(o&1){let e=dC();pl(0,"div",7)(1,"p",14),WC(2," This action requires authorization. Click below to open the authorization page. "),hl(),pl(3,"div",15)(4,"button",16),Rg("click",function(){If(e);let i=mC();return wf(i.onAuthorize())}),WC(5," Authorize "),hl(),pl(6,"button",17),Rg("click",function(){If(e);let i=mC();return wf(i.onOAuthCancel())}),WC(7," Cancel "),hl()()();}}var Ue=class o{oauthService=g(h$1);questionEvent=mB.required();answered=gB();cancelled=gB();QuestionType=me$2;freeTextValue=Hi$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=Aw({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&&(pl(0,"div",0)(1,"div",1)(2,"span",2),WC(3),hl(),pl(4,"span",3),WC(5,"asks"),hl()(),pl(6,"p",4),WC(7),hl(),eC(8,Fn,4,2,"div",5)(9,Ln,3,0,"div",6)(10,$n,7,2)(11,Un,8,0,"div",7),hl()),e&2){let i;XE(3),Zg(n.questionEvent().agentName),XE(4),Zg(n.questionEvent().question),XE(),tC((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 Hn=["promptItem"],_n=(o,t)=>t.name;function Bn(o,t){if(o&1&&(pl(0,"span",5),WC(1),hl()),o&2){let e=t.$implicit;XE(),Kg("","{","","{","",e.name,"","}","","}");}}function jn(o,t){if(o&1&&(pl(0,"span",6),WC(1),hl()),o&2){let e=mC().$implicit;XE(),Zg(e.description);}}function Qn(o,t){if(o&1){let e=dC();pl(0,"li",3,0),Rg("click",function(){let i=If(e).$implicit,a=mC();return wf(a.onItemClick(i))})("keydown.enter",function(){let i=If(e).$implicit,a=mC();return wf(a.onItemClick(i))})("mouseenter",function(){let i=If(e).$index,a=mC();return wf(a.activeIndex.set(i))}),pl(2,"span",4),WC(3),oC(4,Bn,2,5,"span",5,_n),hl(),eC(6,jn,2,1,"span",6),hl();}if(o&2){let e=t.$implicit,n=t.$index,i=mC();Hg("prompt-autocomplete__item--active",i.isActive(n)),Cg("aria-selected",i.isActive(n)),XE(3),yl(" /",e.name," "),XE(),iC(e.parameters),XE(2),tC(e.description?6:-1);}}var ie=class o{prompts=mB.required();selected=gB();dismissed=gB();activeIndex=Hi$1(0);itemRefs=DB();constructor(){Hf(()=>{this.prompts(),this.activeIndex.set(0);});}navigate(t){let e=this.prompts();switch(t){case "ArrowDown":this.activeIndex.set(Math.min(this.activeIndex()+1,e.length-1)),this.scrollActiveIntoView();break;case "ArrowUp":this.activeIndex.set(Math.max(this.activeIndex()-1,0)),this.scrollActiveIntoView();break;case "Enter":{let n=e[this.activeIndex()];n&&this.selected.emit(n);break}case "Escape":this.dismissed.emit();break}}onItemClick(t){this.selected.emit(t);}isActive(t){return this.activeIndex()===t}completionFor(t){return `/${t.name} `}scrollActiveIntoView(){this.itemRefs()[this.activeIndex()]?.nativeElement.scrollIntoView({block:"nearest"});}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=Aw({type:o,selectors:[["agentos-prompt-autocomplete"]],viewQuery:function(e,n){e&1&&Lg(n.itemRefs,Hn,5),e&2&&CC();},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&&(pl(0,"ul",1),oC(1,Qn,7,5,"li",2,_n),hl()),e&2&&(XE(),iC(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 Wn=["agentItem"],Gn=(o,t)=>t.id;function Kn(o,t){if(o&1&&(pl(0,"span",5),WC(1),hl()),o&2){let e=mC().$implicit;XE(),Zg(e.description);}}function Yn(o,t){if(o&1){let e=dC();pl(0,"li",3,0),Rg("click",function(){let i=If(e).$implicit,a=mC();return wf(a.onItemClick(i))})("keydown.enter",function(){let i=If(e).$implicit,a=mC();return wf(a.onItemClick(i))})("mouseenter",function(){let i=If(e).$index,a=mC();return wf(a.activeIndex.set(i))}),pl(2,"span",4),WC(3),hl(),eC(4,Kn,2,1,"span",5),hl();}if(o&2){let e=t.$implicit,n=t.$index,i=mC();Hg("agent-autocomplete__item--active",i.isActive(n)),Cg("aria-selected",i.isActive(n)),XE(3),Zg("@"+e.name),XE(),tC(e.description?4:-1);}}var ae=class o{agents=mB.required();selected=gB();dismissed=gB();activeIndex=Hi$1(0);itemRefs=DB();constructor(){Hf(()=>{this.agents(),this.activeIndex.set(0);});}navigate(t){let e=this.agents();switch(t){case "ArrowDown":this.activeIndex.set(Math.min(this.activeIndex()+1,e.length-1)),this.scrollActiveIntoView();break;case "ArrowUp":this.activeIndex.set(Math.max(this.activeIndex()-1,0)),this.scrollActiveIntoView();break;case "Enter":{let n=e[this.activeIndex()];n&&this.selected.emit(n);break}case "Escape":this.dismissed.emit();break}}onItemClick(t){this.selected.emit(t);}isActive(t){return this.activeIndex()===t}completionFor(t){return `@${t.name} `}scrollActiveIntoView(){this.itemRefs()[this.activeIndex()]?.nativeElement.scrollIntoView({block:"nearest"});}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=Aw({type:o,selectors:[["agentos-agent-autocomplete"]],viewQuery:function(e,n){e&1&&Lg(n.itemRefs,Wn,5),e&2&&CC();},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&&(pl(0,"ul",1),oC(1,Yn,5,5,"li",2,Gn),hl()),e&2&&(XE(),iC(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 He=class o{agentConfigController=g(M$1);userState=g(u$1);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 _t(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 _e=class o{promptState=g(m);agentState=g(He);destroyRef=g(we$1);slashSuggestions=Hi$1([]);atSuggestions=Hi$1([]);namespaceId="";effectivePrompts=[];promptsLoaded=false;slashPrefix$=new ce;effectiveAgents=[];agentsLoaded=false;atPrefix$=new ce;constructor(){this.slashPrefix$.pipe(Id(60),ma$1(t=>(this.promptsLoaded?ha$1(this.effectivePrompts):this.promptState.listEffective(this.namespaceId).pipe(ga$1(()=>ha$1([])))).pipe(ue$3(n=>({prefix:t,prompts:n})))),U$2(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(Id(60),ma$1(t=>(this.agentsLoaded?ha$1(this.effectiveAgents):this.agentState.listEffective(this.namespaceId).pipe(ga$1(()=>ha$1([])))).pipe(ue$3(n=>({prefix:t,agents:n})))),U$2(this.destroyRef)).subscribe(({prefix:t,agents:e})=>{this.effectiveAgents=e,this.agentsLoaded=true,this.atSuggestions.set(_t(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 h=n()?.nativeElement;h&&(h.value=a,h.setSelectionRange(a.length,a.length),h.focus());}),this.slashSuggestions.set([]);}onAgentSelected(t,e,n,i){let a=e()?.completionFor(t)??`@${t.name} `,h=i().replace(/@\w*$/,a);i.set(h),queueMicrotask(()=>{let T=n()?.nativeElement;T&&(T.value=h,T.setSelectionRange(h.length,h.length),T.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(_t(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 un={status:"loading",files:[],capability:"NONE"};function Jn(o){return [...o].sort((t,e)=>new Date(e.lastModified).getTime()-new Date(t.lastModified).getTime())}var re=class o{controller=g(Y$2);namespaceId=null;caseId=null;caseRefresh$=new Tr(void 0);namespaceRefresh$=new Tr(void 0);caseView=this.buildScopeView(this.caseRefresh$,()=>this.caseId,t=>this.controller.getCaseFilesManifestExchange(t));namespaceView=this.buildScopeView(this.namespaceRefresh$,()=>this.namespaceId,t=>this.controller.getNamespaceFilesManifestExchange(t));caseStatus=mT(()=>this.caseView().status);namespaceStatus=mT(()=>this.namespaceView().status);caseFiles=mT(()=>this.caseView().files);namespaceFiles=mT(()=>this.namespaceView().files);caseFileCount=mT(()=>this.caseFiles().length);namespaceFileCount=mT(()=>this.namespaceFiles().length);fileCount=mT(()=>this.caseFileCount()+this.namespaceFileCount());canWriteCase=mT(()=>this.caseView().capability==="READ_WRITE");canWriteNamespace=mT(()=>this.namespaceView().capability==="READ_WRITE");caseSectionVisible=mT(()=>this.caseView().status!=="forbidden");namespaceSectionVisible=mT(()=>this.namespaceView().status!=="forbidden");caseUploading=Hi$1(false);namespaceUploading=Hi$1(false);loadScope(t){return t().pipe(ue$3(e=>({status:"ready",files:Jn(e.files??[]),capability:e.capability??"NONE"})),ga$1(e=>{let n=e?.status===403||e?.status===404;return ha$1({status:n?"forbidden":"error",files:[],capability:"NONE"})}))}buildScopeView(t,e,n){let i=t.pipe(ma$1(()=>{let a=e();return a?this.loadScope(()=>n(a)):ha$1(un)}),Rd({bufferSize:1,refCount:true}));return F$1(i,{initialValue:un})}initializeForCase(t,e){this.namespaceId=t,this.caseId=e,this.refreshManifest();}initializeForNamespace(t){this.namespaceId=t,this.namespaceRefresh$.next();}clear(){this.namespaceId=null,this.caseId=null,this.refreshManifest();}refreshManifest(){this.caseRefresh$.next(),this.namespaceRefresh$.next();}refreshCase(){this.caseRefresh$.next();}refreshNamespace(){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):Hy(()=>new Error("No active scope for content request"))}uploadFile(t,e){return dt(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 h=n?this.controller.uploadCaseFileExchange(i,e):this.controller.uploadNamespaceFileExchange(i,e);return new Promise(T=>{h.subscribe({next:()=>{a.set(false),this.refreshManifest(),T({success:true});},error:f=>{a.set(false),T({success:false,error:this.uploadErrorMessage(f)});}});})})}uploadErrorMessage(t){let e={400:t?.error?.message??"This file type is not allowed.",409:"A file with this name already exists.",413:"This file is too large."};return t?.status!=null&&e[t.status]||t?.message||"Upload failed"}deleteFile(t,e){return dt(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(h=>{a.subscribe({next:()=>{this.refreshManifest(),h({success:true});},error:T=>h({success:false,error:T?.message??"Delete failed"})});})})}downloadFile(t,e){let n=t==="CASE",i=n?this.caseId:this.namespaceId;if(!i)return Promise.resolve({success:false,error:"No active scope"});let a=e.split("/").pop()??e,h=n?this.controller.downloadCaseFileExchange(i,e):this.controller.downloadNamespaceFileExchange(i,e);return new Promise(T=>{h.subscribe({next:f=>{this.saveBlob(f,a),T({success:true});},error:f=>{console.error("[exchange] download failed",f),T({success:false,error:f?.message??"Download failed"});}});})}downloadAll(t){return dt(this,null,function*(){let e=t==="CASE"?this.caseFiles():this.namespaceFiles(),n=0,i=0;for(let a of e)i++>0&&(yield new Promise(T=>setTimeout(T,300))),(yield this.downloadFile(t,a.path)).success||n++;return {success:n===0,failedCount:n}})}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"})};var Xn=20*1024*1024,Zn=["pdf","png","jpg","jpeg","gif","webp","zip","tar","gz","exe","bin","doc","docx","xls","xlsx","ppt","pptx"];function ut(o){return o.split(".").pop()?.toLowerCase()??""}function je(o){switch(ut(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 gn(o){return o<1024?`${o} B`:o<1024*1024?`${(o/1024).toFixed(1)} KB`:`${(o/(1024*1024)).toFixed(1)} MB`}function hn(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 Cn(o){switch(ut(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 eo(o){return !Zn.includes(ut(o))}function to(o){return o<=Xn}function fn(o){return eo(o.filename)&&to(o.size)}function bn(o){try{return JSON.stringify(JSON.parse(o),null,2)}catch(t){return o}}function xn(o){let t=/^(case|namespace)-exchange__(editFiles|remove|moveFile)$/.exec(o??"");return t?t[1]:null}var no=["backButton"];function oo(o,t){if(o&1){let e=dC();vs(0,"ds-empty-state",7)(1,"button",13),Ag("click",function(){If(e);let i=mC();return wf(i.onDownload())}),WC(2,"Download instead"),fl()();}}function io(o,t){o&1&&(vs(0,"div",8),bg(1,"ds-spinner",14),fl());}function ao(o,t){if(o&1){let e=dC();vs(0,"ds-empty-state",9)(1,"button",13),Ag("click",function(){If(e);let i=mC();return wf(i.onDownload())}),WC(2,"Download instead"),fl()();}}function ro(o,t){if(o&1&&(bg(0,"div",10),aT(1,"agentosMarkdown")),o&2){let e=mC();Tg("innerHTML",uT(1,1,e.content()),aE);}}function so(o,t){if(o&1&&bg(0,"iframe",11),o&2){let e=mC();Tg("srcdoc",e.displayContent(),aE)("title","Preview of "+e.filename());}}function lo(o,t){if(o&1&&(vs(0,"pre",12),WC(1),fl()),o&2){let e=mC();XE(),Zg(e.displayContent());}}var Qe=class o{file=mB.required();content=mB(null);status=mB("loading");canView=mB(true);closeRequested=gB();downloadRequested=gB();backButton=vB("backButton",{read:Qt});constructor(){ME(()=>{this.backButton()?.nativeElement?.querySelector("button")?.focus();});}filename=mT(()=>{let t=this.file().path;return t.split("/").pop()??t});format=mT(()=>Cn(this.filename()));displayContent=mT(()=>{let t=this.content();return t==null?"":this.format()==="json"?bn(t):t});onClose(){this.closeRequested.emit();}onDownload(){this.downloadRequested.emit(this.file());}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=Aw({type:o,selectors:[["agentos-exchange-content-viewer"]],viewQuery:function(e,n){e&1&&Lg(n.backButton,no,5,Qt),e&2&&CC();},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&&(vs(0,"div",1)(1,"header",2)(2,"ds-icon-button",3,0),Ag("action",function(){return n.onClose()}),fl(),vs(4,"span",4),WC(5),fl(),vs(6,"ds-icon-button",5),Ag("action",function(){return n.onDownload()}),fl()(),vs(7,"div",6),eC(8,oo,3,0,"ds-empty-state",7)(9,io,2,0,"div",8)(10,ao,3,0,"ds-empty-state",9)(11,ro,2,3,"div",10)(12,so,1,2,"iframe",11)(13,lo,2,1,"pre",12),fl()()),e&2&&(XE(4),Tg("title",n.filename()),XE(),Zg(n.filename()),XE(),Tg("title","Download "+n.filename()),XE(2),tC(n.canView()?n.status()==="loading"?9:n.status()==="error"?10:n.format()==="markdown"?11:n.format()==="html"?12:13:8));},dependencies:[Xn$2,Gn$1,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 co=(o,t)=>t.label;function mo(o,t){if(o&1&&(vs(0,"span"),WC(1),fl()),o&2){let e=t.$implicit;FC(XC("exchange-item__badge exchange-item__badge--",e.variant)),XE(),Zg(e.label);}}function po(o,t){if(o&1){let e=dC();vs(0,"ds-icon-button",10),Ag("action",function(){If(e);let i=mC();return wf(i.deleteRequested.emit())}),fl();}if(o&2){let e=mC();Tg("title","Delete "+e.row().filename);}}var fe=class o{row=mB.required();active=mB(false);canWrite=mB(false);viewRequested=gB();downloadRequested=gB();deleteRequested=gB();static toRow(t){return {path:t.path,filename:t.filename,meta:`${gn(t.size)} \xB7 ${hn(t.lastModified)}`,icon:je(t.filename)}}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=Aw({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&&(vs(0,"div",0)(1,"button",1),Ag("click",function(){return n.viewRequested.emit()}),vs(2,"span",2),WC(3),fl(),vs(4,"span",3)(5,"span",4),WC(6),fl(),vs(7,"span",5),WC(8),oC(9,mo,2,4,"span",6,co),fl()()(),vs(11,"div",7)(12,"ds-icon-button",8),Ag("action",function(){return n.downloadRequested.emit()}),fl(),eC(13,po,1,1,"ds-icon-button",9),fl()()),e&2&&(Hg("exchange-item--active",n.active()),XE(),Cg("data-exchange-path",n.row().path)("aria-current",n.active()?"true":null)("aria-label","View "+n.row().filename),XE(2),Zg(n.row().icon),XE(3),Zg(n.row().filename),XE(2),yl(" ",n.row().meta," "),XE(),iC(n.row().badges),XE(3),Tg("title","Download "+n.row().filename),XE(),tC(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:8px;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:6px}.exchange-item__icon[_ngcontent-%COMP%]{flex-shrink:0;font-size:1.25rem;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:.8125rem;font-weight:600;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:999px;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 _o=(o,t)=>t.path;function uo(o,t){if(o&1){let e=dC();vs(0,"li",1)(1,"agentos-exchange-item",2),Ag("viewRequested",function(){let i=If(e).$implicit,a=mC();return wf(a.onView(i))})("downloadRequested",function(){let i=If(e).$implicit,a=mC();return wf(a.onDownload(i))})("deleteRequested",function(){let i=If(e).$implicit,a=mC();return wf(a.onDelete(i))}),fl()();}if(o&2){let e=t.$implicit,n=mC();XE(),Tg("row",e)("active",n.isActive(e))("canWrite",n.canWrite());}}var We=class o{rows=mB.required();scope=mB.required();activeFile=mB(null);canWrite=mB(false);fileSelected=gB();downloadRequested=gB();deleteRequested=gB();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=Aw({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&&(vs(0,"ul",0),oC(1,uo,2,3,"li",1,_o),fl()),e&2&&(XE(),iC(n.rows()));},dependencies:[fe],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 go=["fileInput"];function ho(o,t){if(o&1){let e=dC();vs(0,"agentos-exchange-content-viewer",4),Ag("closeRequested",function(){If(e);let i=mC();return wf(i.onViewerClose())})("downloadRequested",function(i){If(e);let a=mC();return wf(a.downloadRequested.emit(i))}),fl();}if(o&2){let e=mC();Tg("file",t)("content",e.selectedContent())("status",e.contentStatus())("canView",e.canViewSelected());}}function Co(o,t){if(o&1){let e=dC();vs(0,"ds-icon-button",20),Ag("action",function(){If(e);let i=mC(3);return wf(i.triggerUpload(i.CASE))}),fl();}if(o&2){let e=mC(3);Tg("disabled",e.caseUploading());}}function fo(o,t){o&1&&(vs(0,"span",15),WC(1,"read-only"),fl());}function bo(o,t){if(o&1){let e=dC();vs(0,"ds-icon-button",21),Ag("action",function(){If(e);let i=mC(3);return wf(i.downloadAllRequested.emit(i.CASE))}),fl();}}function xo(o,t){o&1&&(vs(0,"p",17),WC(1,"Uploading\u2026"),fl());}function vo(o,t){o&1&&(vs(0,"div",18),bg(1,"ds-spinner",22),fl());}function yo(o,t){if(o&1){let e=dC();vs(0,"div",19)(1,"span"),WC(2,"Couldn't load case files."),fl(),vs(3,"button",23),Ag("click",function(){If(e);let i=mC(3);return wf(i.retryRequested.emit())}),WC(4,"Retry"),fl()();}}function wo(o,t){if(o&1&&bg(0,"ds-empty-state",24),o&2){let e=mC(4);Tg("hint",e.canWriteCase()?"Upload a file to share it with this case.":void 0);}}function So(o,t){if(o&1){let e=dC();vs(0,"agentos-exchange-file-list",26),Ag("fileSelected",function(i){If(e);let a=mC(4);return wf(a.onFileSelected(i))})("downloadRequested",function(i){If(e);let a=mC(4);return wf(a.downloadRequested.emit(i))})("deleteRequested",function(i){If(e);let a=mC(4);return wf(a.deleteRequested.emit(i))}),fl();}if(o&2){let e=mC(4);Tg("rows",e.caseRows())("scope",e.CASE)("canWrite",e.canWriteCase())("activeFile",e.activeFile());}}function Mo(o,t){if(o&1&&eC(0,wo,1,1,"ds-empty-state",24)(1,So,1,4,"agentos-exchange-file-list",25),o&2){let e=mC(3);tC(e.caseFiles().length===0?0:1);}}function Eo(o,t){if(o&1&&(vs(0,"section",9)(1,"div",11)(2,"h3",12),WC(3,"Case files"),fl(),vs(4,"div",13),eC(5,Co,1,1,"ds-icon-button",14)(6,fo,2,0,"span",15),eC(7,bo,1,0,"ds-icon-button",16),fl()(),eC(8,xo,2,0,"p",17),eC(9,vo,2,0,"div",18)(10,yo,5,0,"div",19)(11,Mo,2,1),fl()),o&2){let e,n=mC(2);XE(5),tC(n.canWriteCase()?5:6),XE(2),tC(n.caseFiles().length>0?7:-1),XE(),tC(n.caseUploading()?8:-1),XE(),tC((e=n.caseStatus())==="loading"?9:e==="error"?10:11);}}function To(o,t){if(o&1){let e=dC();vs(0,"ds-icon-button",20),Ag("action",function(){If(e);let i=mC(3);return wf(i.triggerUpload(i.NAMESPACE))}),fl();}if(o&2){let e=mC(3);Tg("disabled",e.namespaceUploading());}}function ko(o,t){o&1&&(vs(0,"span",15),WC(1,"read-only"),fl());}function Po(o,t){if(o&1){let e=dC();vs(0,"ds-icon-button",28),Ag("action",function(){If(e);let i=mC(3);return wf(i.downloadAllRequested.emit(i.NAMESPACE))}),fl();}}function Oo(o,t){o&1&&(vs(0,"div",18),bg(1,"ds-spinner",29),fl());}function Io(o,t){if(o&1){let e=dC();vs(0,"div",19)(1,"span"),WC(2,"Couldn't load namespace files."),fl(),vs(3,"button",23),Ag("click",function(){If(e);let i=mC(3);return wf(i.retryRequested.emit())}),WC(4,"Retry"),fl()();}}function Do(o,t){if(o&1&&bg(0,"ds-empty-state",30),o&2){let e=mC(4);Tg("hint",e.canWriteNamespace()?"Upload a file to share it across this namespace.":void 0);}}function Vo(o,t){if(o&1){let e=dC();vs(0,"agentos-exchange-file-list",26),Ag("fileSelected",function(i){If(e);let a=mC(4);return wf(a.onFileSelected(i))})("downloadRequested",function(i){If(e);let a=mC(4);return wf(a.downloadRequested.emit(i))})("deleteRequested",function(i){If(e);let a=mC(4);return wf(a.deleteRequested.emit(i))}),fl();}if(o&2){let e=mC(4);Tg("rows",e.namespaceRows())("scope",e.NAMESPACE)("canWrite",e.canWriteNamespace())("activeFile",e.activeFile());}}function Ro(o,t){if(o&1&&eC(0,Do,1,1,"ds-empty-state",30)(1,Vo,1,4,"agentos-exchange-file-list",25),o&2){let e=mC(3);tC(e.namespaceFiles().length===0?0:1);}}function No(o,t){if(o&1&&(vs(0,"section",9)(1,"div",11)(2,"h3",12),WC(3,"Namespace files"),fl(),vs(4,"div",13),eC(5,To,1,1,"ds-icon-button",14)(6,ko,2,0,"span",15),eC(7,Po,1,0,"ds-icon-button",27),fl()(),eC(8,Oo,2,0,"div",18)(9,Io,5,0,"div",19)(10,Ro,2,1),fl()),o&2){let e,n=mC(2);XE(5),tC(n.canWriteNamespace()?5:6),XE(2),tC(n.namespaceFiles().length>0?7:-1),XE(),tC((e=n.namespaceStatus())==="loading"?8:e==="error"?9:10);}}function Ao(o,t){o&1&&(vs(0,"p",10),WC(1,"No files available."),fl());}function Fo(o,t){if(o&1){let e=dC();vs(0,"header",5)(1,"span",6),WC(2,"Files"),fl(),vs(3,"ds-icon-button",7),Ag("action",function(){If(e);let i=mC();return wf(i.closeRequested.emit())}),fl()(),vs(4,"div",8),eC(5,Eo,12,4,"section",9),eC(6,No,11,3,"section",9),eC(7,Ao,2,0,"p",10),fl();}if(o&2){let e=mC();XE(5),tC(e.caseSectionVisible()?5:-1),XE(),tC(e.namespaceSectionVisible()?6:-1),XE(),tC(!e.caseSectionVisible()&&!e.namespaceSectionVisible()?7:-1);}}var Ge$1=class o{caseFiles=mB([]);caseStatus=mB.required();caseSectionVisible=mB(false);canWriteCase=mB(false);caseUploading=mB(false);namespaceFiles=mB([]);namespaceStatus=mB.required();namespaceSectionVisible=mB(false);canWriteNamespace=mB(false);namespaceUploading=mB(false);activeFile=mB(null);selectedContent=mB(null);contentStatus=mB("loading");canViewSelected=mB(true);fileSelected=gB();uploadRequested=gB();downloadRequested=gB();downloadAllRequested=gB();deleteRequested=gB();retryRequested=gB();closeRequested=gB();viewerClosed=gB();host=g(Qt);fileInput=vB("fileInput");CASE="CASE";NAMESPACE="NAMESPACE";caseRows=mT(()=>this.caseFiles().map(fe.toRow));namespaceRows=mT(()=>this.namespaceFiles().map(fe.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=Aw({type:o,selectors:[["agentos-exchange-drawer"]],viewQuery:function(e,n){e&1&&Lg(n.fileInput,go,5),e&2&&CC();},inputs:{caseFiles:[1,"caseFiles"],caseStatus:[1,"caseStatus"],caseSectionVisible:[1,"caseSectionVisible"],canWriteCase:[1,"canWriteCase"],caseUploading:[1,"caseUploading"],namespaceFiles:[1,"namespaceFiles"],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",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"],["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","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"],["type","button",1,"exchange-drawer__retry",3,"click"],["icon","folder_open","title","No case files",3,"hint"],[3,"rows","scope","canWrite","activeFile"],[3,"fileSelected","downloadRequested","deleteRequested","rows","scope","canWrite","activeFile"],["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&&(vs(0,"div",1),eC(1,ho,1,4,"agentos-exchange-content-viewer",2)(2,Fo,8,3),vs(3,"input",3,0),Ag("change",function(a){return n.onFileInputChange(a)}),fl()()),e&2){let i;XE(),tC((i=n.activeFile())?1:2,i);}},dependencies:[Se$1,Xn$2,Gn$1,We,Qe],styles:[".exchange-drawer[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.exchange-drawer__header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .5rem .5rem .75rem;border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .1));flex-shrink:0}.exchange-drawer__title[_ngcontent-%COMP%]{font-size:.875rem;font-weight:700;color:var(--color-text, #1d1d1f)}.exchange-drawer__sections[_ngcontent-%COMP%]{flex:1;min-height:0;overflow:auto;padding:.5rem;display:flex;flex-direction:column;gap:1rem}.exchange-drawer__section-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:0 .25rem .25rem}.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:8px;font-size:.8125rem;color:var(--color-error, #ff3b30);background:var(--color-bg-hover, rgba(0, 0, 0, .04))}.exchange-drawer__retry[_ngcontent-%COMP%]{appearance:none;cursor:pointer;border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:6px;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-size:.6875rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-secondary, #6e6e73)}.exchange-drawer__readonly-badge[_ngcontent-%COMP%]{font-size:.5625rem;font-weight:800;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:999px;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}"]})};function qo(o,t){if(o&1&&(vs(0,"p",1),WC(1),fl()),o&2){let e=mC();XE(),Zg(e.actionError());}}var Ke=class o{route=g(V$2);destroyRef=g(we$1);state=g(re);closeRequested=gB();selectedFile=Hi$1(null);selectedContent=Hi$1(null);contentStatus=Hi$1("loading");canViewSelected=Hi$1(true);actionError=Hi$1(null);pendingDelete=Hi$1(null);confirmOpen=mT(()=>this.pendingDelete()!==null);deleteMessage=mT(()=>{let t=this.pendingDelete();return t?`Delete "${t.path.split("/").pop()??t.path}"? This action cannot be undone.`:""});activeCaseId=null;constructor(){this.route.queryParams.pipe(U$2()).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());}),Hf(t=>t(()=>this.state.clear()));}onFileSelected(t){this.selectedFile.set(t),this.selectedContent.set(null);let e=this.findFile(t),n=e?fn(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$2(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(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(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(this,null,function*(){this.actionError.set(null);let e=yield this.state.downloadAll(t);e.failedCount>0&&this.actionError.set(e.failedCount===1?"A file failed to download.":`${e.failedCount} files failed to download.`);})}onDeleteRequest(t){this.pendingDelete.set(t);}onConfirmDelete(){return dt(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=Aw({type:o,selectors:[["agentos-exchange-shell"]],outputs:{closeRequested:"closeRequested"},decls:4,vars:17,consts:[[1,"exchange-shell"],["role","alert",1,"exchange-shell__upload-error"],[1,"exchange-shell__drawer",3,"fileSelected","uploadRequested","downloadRequested","downloadAllRequested","deleteRequested","retryRequested","viewerClosed","closeRequested","caseFiles","caseStatus","caseSectionVisible","canWriteCase","caseUploading","namespaceFiles","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&&(vs(0,"div",0),eC(1,qo,2,1,"p",1),vs(2,"agentos-exchange-drawer",2),Ag("fileSelected",function(a){return n.onFileSelected(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()}),fl()(),vs(3,"ds-confirm-dialog",3),Ag("confirmed",function(){return n.onConfirmDelete()})("cancelled",function(){return n.onCancelDelete()}),fl()),e&2&&(XE(),tC(n.actionError()?1:-1),XE(),Tg("caseFiles",n.state.caseFiles())("caseStatus",n.state.caseStatus())("caseSectionVisible",n.state.caseSectionVisible())("canWriteCase",n.state.canWriteCase())("caseUploading",n.state.caseUploading())("namespaceFiles",n.state.namespaceFiles())("namespaceStatus",n.state.namespaceStatus())("namespaceSectionVisible",n.state.namespaceSectionVisible())("canWriteNamespace",n.state.canWriteNamespace())("namespaceUploading",n.state.namespaceUploading())("activeFile",n.selectedFile())("selectedContent",n.selectedContent())("contentStatus",n.contentStatus())("canViewSelected",n.canViewSelected()),XE(),Tg("open",n.confirmOpen())("message",n.deleteMessage()));},dependencies:[Ge$1,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 Ye=class o{membership=g(L$3);userController=g(oe$2);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 Lo=(o,t)=>t.userId;function zo(o,t){o&1&&(vs(0,"p",5),WC(1,"Loading\u2026"),fl());}function $o(o,t){o&1&&(vs(0,"p",7),WC(1," You can change roles or remove existing members. Only a platform super-admin can add a new user to this case. "),fl());}function Uo(o,t){o&1&&(vs(0,"p",11),WC(1,"No members yet."),fl());}function Ho(o,t){if(o&1&&(vs(0,"span",23),WC(1),fl()),o&2){let e=mC().$implicit;XE(),Zg(e.email);}}function Bo(o,t){if(o&1&&(vs(0,"span",24),WC(1),aT(2,"lowercase"),fl()),o&2){let e=mC().$implicit;XE(),Zg(uT(2,1,e.role));}}function jo(o,t){if(o&1){let e=dC();vs(0,"select",25),Ag("change",function(i){If(e);let a=mC().$implicit,h=mC(3);return wf(h.setMemberRole(a.userId,i))}),vs(1,"option",26),WC(2,"Member"),fl(),vs(3,"option",27),WC(4,"Admin"),fl()(),vs(5,"button",28),Ag("click",function(){If(e);let i=mC().$implicit,a=mC(3);return wf(a.removeMember(i.userId))}),WC(6," \xD7 "),fl();}if(o&2){let e=mC().$implicit;Tg("value",e.role),Cg("aria-label","Role of "+e.label),XE(5),Tg("title","Remove "+e.label);}}function Qo(o,t){if(o&1&&(vs(0,"li",20)(1,"div",21)(2,"span",22),WC(3),fl(),eC(4,Ho,2,1,"span",23),fl(),eC(5,Bo,3,3,"span",24)(6,jo,7,3),fl()),o&2){let e=t.$implicit,n=mC(3);Hg("case-members__member--self",e.userId===n.currentUserId()?.id),XE(3),Zg(e.label),XE(),tC(e.email&&e.email!==e.label?4:-1),XE(),tC(e.userId===n.currentUserId()?.id?5:6);}}function Wo(o,t){if(o&1&&(vs(0,"ul",12),oC(1,Qo,7,5,"li",19,Lo),fl()),o&2){let e=mC(2);XE(),iC(e.selectedMembers());}}function Go(o,t){o&1&&(vs(0,"p",13),WC(1,"At least one ADMIN must remain on the case."),fl());}function Ko(o,t){if(o&1){let e=dC();vs(0,"ds-autocomplete-input",29),Ag("itemSelected",function(i){If(e);let a=mC(2);return wf(a.onMemberSelected(i))}),fl();}if(o&2){let e=mC(2);Tg("dataSource",e.memberDataSource);}}function Yo(o,t){if(o&1&&(vs(0,"p",15),WC(1),fl()),o&2){let e=mC(2);XE(),Zg(e.errorMessage());}}function Jo(o,t){if(o&1){let e=dC();vs(0,"div",6),eC(1,$o,2,0,"p",7),vs(2,"fieldset",8)(3,"legend",9),WC(4," Members "),vs(5,"span",10),WC(6,"ADMIN or MEMBER"),fl()(),eC(7,Uo,2,0,"p",11)(8,Wo,3,0,"ul",12),eC(9,Go,2,0,"p",13),eC(10,Ko,1,1,"ds-autocomplete-input",14),fl(),eC(11,Yo,2,1,"p",15),vs(12,"div",16)(13,"button",17),Ag("click",function(){If(e);let i=mC();return wf(i.submit())}),WC(14," Save "),fl(),vs(15,"button",18),Ag("click",function(){If(e);let i=mC();return wf(i.cancel())}),WC(16,"Cancel"),fl()()();}if(o&2){let e=mC();XE(),tC(e.isSuperAdmin()?-1:1),XE(6),tC(e.selectedMembers().length===0?7:8),XE(2),tC(e.wouldLockOutAdmins()?9:-1),XE(),tC(e.isSuperAdmin()?10:-1),XE(),tC(e.errorMessage()?11:-1),XE(2),Tg("disabled",e.isSubmitting()||e.wouldLockOutAdmins());}}var Je=class o{destroyRef=g(we$1);memberState=g(Ye);userState=g(u$1);caseId=mB.required();closeRequested=gB();currentUserId=this.userState.currentUser;isLoading=Hi$1(false);isSubmitting=Hi$1(false);errorMessage=Hi$1(null);isSuperAdmin=Hi$1(false);selectedMembers=Hi$1([]);originalMembers=[];candidateUsers=Hi$1([]);memberDataSource=new m$2(()=>this.candidateUsers(),()=>new Set(this.selectedMembers().map(t=>t.userId)));constructor(){Hf(()=>{this.caseId(),Rn$1(()=>this.loadData());});}loadData(){this.isLoading.set(true),this.errorMessage.set(null);let t=this.userState.currentUser();(t?ha$1(t):this.userState.loadMe()).pipe(ga$1(n=>(console.error("[CaseMembers] Failed to load current user",n),ha$1(null))),U$2(this.destroyRef)).subscribe(n=>{let i=n?.isAdmin===true;this.isSuperAdmin.set(i),this.loadMembersAndCandidates(i);});}loadMembersAndCandidates(t){By({members:this.memberState.listMembers(this.caseId()),allUsers:t?this.memberState.listAllUsers():ha$1([])}).pipe(U$2(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(h=>h.userId===t?z$3(P({},h),{role:i}):h));}wouldLockOutAdmins=mT(()=>!p$2(this.selectedMembers()));submit(){if(this.isSubmitting())return;if(this.wouldLockOutAdmins()){this.errorMessage.set("At least one ADMIN must remain on the case. Assign ADMIN to someone before saving.");return}this.isSubmitting.set(true),this.errorMessage.set(null);let{toUpsert:t,toRemove:e}=d$2(this.originalMembers,this.selectedMembers().map(i=>({userId:i.userId,role:i.role})));if(t.length===0&&e.length===0){this.isSubmitting.set(false),this.closeRequested.emit();return}let n=[...t.map(i=>({userId:i.userId,role:i.role})),...e.map(i=>({userId:i}))];this.memberState.updateMembers(this.caseId(),n).pipe(U$2(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=Aw({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&&(vs(0,"div",0)(1,"header",1)(2,"h2",2),WC(3,"Share case"),fl(),vs(4,"button",3),Ag("click",function(){return n.cancel()}),vs(5,"span",4),WC(6,"close"),fl()()(),eC(7,zo,2,0,"p",5)(8,Jo,17,6,"div",6),fl()),e&2&&(XE(7),tC(n.isLoading()?7:8));},dependencies:[Pn$1,xb],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 Xe=10,Xo=/\bnamespace\b/i;function Ie(o,t){return Xo.test(o)&&t?"NAMESPACE":"CASE"}function Ze(o,t){return Ie(o,t)==="NAMESPACE"}function vn(o){let t=a=>o.filter(h=>h.uploadedScope===a).map(h=>h.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 yn(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 wn(o){let t=o.lastIndexOf(".");return t<=0||t===o.length-1?"FILE":o.slice(t+1).toUpperCase()}var ue=class o{exchangeState=g(re);nextId=0;generation=0;dragDepth=0;attachments=Hi$1([]);limitError=Hi$1(null);isDragOver=Hi$1(false);isUploading=Hi$1(false);hasAttachments=mT(()=>this.attachments().length>0);addFiles(t){if(this.isUploading())return;let e=Array.from(t);if(e.length===0)return;let n=this.attachments(),i=Xe-n.length;this.limitError.set(e.length>i?`You can attach up to ${Xe} files per message.`:null);let a=e.slice(0,Math.max(0,i)).map(h=>({id:`attachment-${this.nextId++}`,file:h,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<Xe&&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(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:vn(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 Zo=["fileInput"],ei=(o,t)=>t.id;function ti(o,t){o&1&&(vs(0,"span",10),WC(1,"namespace"),fl());}function ni(o,t){if(o&1&&(vs(0,"span",12),WC(1),fl()),o&2){let e=mC().$implicit;XE(),Zg(e.error);}}function oi(o,t){if(o&1){let e=dC();vs(0,"div",6)(1,"span",7),WC(2),fl(),vs(3,"span",8),WC(4),fl(),vs(5,"span",9),WC(6),fl(),eC(7,ti,2,0,"span",10),vs(8,"ds-icon-button",11),Ag("action",function(){let i=If(e).$implicit,a=mC(3);return wf(a.removed.emit(i.id))}),fl(),eC(9,ni,2,1,"span",12),fl();}if(o&2){let e=t.$implicit,n=mC(3);Hg("composer-attachments__chip--error",e.status==="error")("composer-attachments__chip--uploaded",e.status==="uploaded"),XE(),Hg("composer-attachments__icon--spinning",e.status==="uploading"),XE(),Zg(n.chipIcon(e)),XE(),Tg("title",e.file.name),XE(),Zg(n.middleTruncate(e.file.name)),XE(2),Zg(n.kindLabel(e.file.name)),XE(),tC(n.showNamespaceBadge(e)?7:-1),XE(),Tg("title",n.removeTitle(e))("disabled",n.disabled()),XE(),tC(e.status==="error"&&e.error?9:-1);}}function ii(o,t){if(o&1&&(vs(0,"div",3),oC(1,oi,10,14,"div",5,ei),fl()),o&2){let e=mC(2);XE(),iC(e.attachments());}}function ai(o,t){o&1&&(vs(0,"p",4),WC(1),fl()),o&2&&(XE(),Zg(t));}function ri(o,t){if(o&1&&(vs(0,"div",1),eC(1,ii,3,0,"div",3),eC(2,ai,2,1,"p",4),fl()),o&2){let e,n=mC();XE(),tC(n.attachments().length>0?1:-1),XE(),tC((e=n.limitError())?2:-1,e);}}var Ee=class o{attachments=mB.required();namespaceBadge=mB(false);limitError=mB(null);disabled=mB(false);removed=gB();filesSelected=gB();fileInput=vB("fileInput");kindLabel=wn;middleTruncate=yn;chipIcon(t){return t.status==="uploading"?"progress_activity":t.status==="uploaded"?"check_circle":je(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=Aw({type:o,selectors:[["agentos-composer-attachments"]],viewQuery:function(e,n){e&1&&Lg(n.fileInput,Zo,5),e&2&&CC();},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&&(eC(0,ri,3,2,"div",1),vs(1,"input",2,0),Ag("change",function(a){return n.onFileInputChange(a)}),fl()),e&2&&tC(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 si=["composerInput"],li=["messagesContainer"],ci=(o,t)=>t.phaseIndex;function di(o,t){if(o&1){let e=dC();vs(0,"agentos-case-members",34),Ag("closeRequested",function(){If(e);let i=mC();return wf(i.exchangeOpen.set(false))}),fl();}if(o&2){let e=mC();Tg("caseId",e.caseId);}}function mi(o,t){if(o&1){let e=dC();vs(0,"agentos-exchange-shell",35),Ag("closeRequested",function(){If(e);let i=mC();return wf(i.exchangeOpen.set(false))}),fl();}}function pi(o,t){if(o&1&&(vs(0,"span",14),WC(1),fl()),o&2){let e=mC();XE(),Zg(e.exchangeFileCount());}}function _i(o,t){if(o&1){let e=dC();vs(0,"ds-icon-button",36),Ag("action",function(){If(e);let i=mC();return wf(i.starToggled.emit({id:i.caseId,starred:!i.activeCase()?.favorite}))}),fl(),vs(1,"ds-icon-button",37),Ag("action",function(){If(e);let i=mC();return wf(i.confirmingDelete.set(true))}),fl();}if(o&2){let e=mC();Hg("case-chat__header-star--active",e.activeCase()?.favorite),Tg("icon",e.activeCase()?.favorite?"star":"star_border")("title",e.activeCase()?.favorite?"Remove from favorites":"Add to favorites");}}function ui(o,t){if(o&1){let e=dC();vs(0,"span",17)(1,"span",38),WC(2,"Delete this case?"),fl(),vs(3,"button",39),Ag("click",function(){If(e);let i=mC();return i.deleteRequested.emit(i.caseId),wf(i.confirmingDelete.set(false))}),vs(4,"span",40),WC(5,"check"),fl(),WC(6," Delete "),fl(),vs(7,"button",41),Ag("click",function(){If(e);let i=mC();return wf(i.confirmingDelete.set(false))}),vs(8,"span",40),WC(9,"close"),fl()()();}}function gi(o,t){o&1&&(vs(0,"div",19)(1,"span",42),WC(2,"upload_file"),fl(),vs(3,"span"),WC(4,"Drop files to attach"),fl()());}function hi(o,t){o&1&&(vs(0,"div",21)(1,"p"),WC(2,"No messages yet."),fl()());}function Ci(o,t){o&1&&(vs(0,"span",56),WC(1),fl()),o&2&&(XE(),yl("(",t,")"));}function fi(o,t){if(o&1&&(vs(0,"span",49),WC(1),eC(2,Ci,2,1,"span",56),fl()),o&2){let e,n=mC(2).$implicit,i=mC(2);XE(),yl(" ",n.event.actor.role==="USER"?"You":n.event.actor.displayName||"Agent"," "),XE(),tC((e=i.agentModelAttribution(n.event))?2:-1,e);}}function bi(o,t){if(o&1&&(vs(0,"div",50)(1,"span",57),WC(2,"session context"),fl(),vs(3,"pre",58),WC(4),aT(5,"json"),fl()()),o&2){let e=mC(2).$implicit;XE(4),Zg(uT(5,1,e.event.sessionContext));}}function xi(o,t){if(o&1&&bg(0,"div",52),o&2){let e=mC(2).$implicit;Tg("innerHTML",e.html,aE);}}function vi(o,t){if(o&1&&bg(0,"div",53),o&2){let e=mC(2).$implicit;Tg("innerHTML",e.html,aE);}}function yi(o,t){if(o&1&&(vs(0,"time",55),WC(1),fl()),o&2){let e=mC(2).$implicit,n=mC(2);Tg("title",n.formatMessageTimestampTitle(e.event.timestamp)),Cg("datetime",e.event.timestamp),XE(),Zg(n.formatMessageTime(e.event.timestamp));}}function wi(o,t){if(o&1&&(vs(0,"div",48),eC(1,fi,3,2,"span",49),eC(2,bi,6,3,"div",50),vs(3,"div",51),eC(4,xi,1,1,"div",52)(5,vi,1,1,"div",53),bg(6,"ds-copy-button",54),eC(7,yi,2,3,"time",55),fl()()),o&2){let e=mC().$implicit,n=mC(2);Hg("case-chat__turn--user",e.event.actor.role==="USER")("case-chat__turn--agent",e.event.actor.role==="AGENT"),XE(),tC(e.isFirstInGroup?1:-1),XE(),tC(n.showTechnical()&&e.event.sessionContext?2:-1),XE(2),tC(e.event.actor.role==="USER"?4:5),XE(2),Tg("text",n.messageText(e)),XE(),tC(e.isLastInGroup?7:-1);}}function Si(o,t){if(o&1&&(vs(0,"div",44)(1,"span",49),WC(2),fl(),bg(3,"div",53),fl()),o&2){let e=mC(3);XE(2),Zg(e.agentDisplayName()),XE(),Tg("innerHTML",e.streamingHtml(),aE);}}function Mi(o,t){if(o&1&&(vs(0,"span",61),WC(1),fl()),o&2){let e=mC(2).$implicit;XE(),Zg(e.notice.detail);}}function Ei(o,t){if(o&1&&(vs(0,"div",59)(1,"span",60),WC(2),fl(),eC(3,Mi,2,1,"span",61),fl()),o&2){let e=mC().$implicit;Hg("case-chat__execution-notice--warning",e.notice.severity==="warning")("case-chat__execution-notice--error",e.notice.severity==="error"||e.notice.severity==="terminal"),XE(2),Zg(e.notice.title),XE(),tC(e.notice.detail?3:-1);}}function Ti(o,t){if(o&1&&(vs(0,"pre",63),WC(1),fl()),o&2){let e=mC(2).$implicit;XE(),Zg(e.item.detail);}}function ki(o,t){if(o&1&&(vs(0,"details",46)(1,"summary",62),WC(2),fl(),eC(3,Ti,2,1,"pre",63),fl()),o&2){let e=mC().$implicit;XE(2),yl("\u2699 System log \xB7 ",e.item.label),XE(),tC(e.item.detail?3:-1);}}function Pi(o,t){if(o&1){let e=dC();vs(0,"agentos-question-panel",66),Ag("answered",function(i){If(e);let a=mC(2).$implicit,h=mC(2);return wf(h.onQuestionAnswered(a.event,i))})("cancelled",function(){If(e);let i=mC(4);return wf(i.onQuestionCancelled())}),fl();}if(o&2){let e=mC(2).$implicit;Tg("questionEvent",e.event);}}function Oi(o,t){if(o&1&&(vs(0,"div",65)(1,"span",67),WC(2,"\u2705 Question answered"),fl(),vs(3,"span",68),WC(4),fl()()),o&2){let e=mC(2).$implicit;XE(4),Zg(e.event.question);}}function Ii(o,t){if(o&1&&eC(0,Pi,1,1,"agentos-question-panel",64)(1,Oi,5,1,"div",65),o&2){let e=mC().$implicit,n=mC(2);tC(!e.answered&&(e.event.questionType!=="OAUTH_AUTHORIZE"||n.oauthPendingQuestion()?.id===e.event.id)?0:e.answered?1:-1);}}function Di(o,t){o&1&&WC(0," \u23F3 ");}function Vi(o,t){o&1&&WC(0," \u2705 ");}function Ri(o,t){o&1&&WC(0," \u274C ");}function Ni(o,t){o&1&&WC(0," Running ");}function Ai(o,t){o&1&&WC(0," Completed ");}function Fi(o,t){o&1&&WC(0," Failed ");}function qi(o,t){if(o&1&&(vs(0,"time",74),WC(1),fl()),o&2){let e=mC(2).$implicit,n=mC(2);Tg("title",n.formatMessageTimestampTitle(e.call.timestamp)),Cg("datetime",e.call.timestamp),XE(),Zg(n.formatMessageTime(e.call.timestamp));}}function Li(o,t){if(o&1&&(vs(0,"div",88)(1,"span",89),WC(2,"Enrichment content"),fl(),vs(3,"pre"),WC(4),fl()()),o&2){let e=mC().$implicit;XE(4),Zg(e.enrichmentContent);}}function zi(o,t){if(o&1&&(vs(0,"div",84)(1,"div",85)(2,"span",86),WC(3),fl(),vs(4,"span",87),WC(5),fl()(),vs(6,"div",88)(7,"span",89),WC(8,"Prompt"),fl(),vs(9,"pre"),WC(10),fl()(),vs(11,"div",88)(12,"span",89),WC(13,"LLM output"),fl(),vs(14,"pre"),WC(15),fl()(),eC(16,Li,5,1,"div",88),fl()),o&2){let e=t.$implicit;Hg("case-chat__enrichment-phase--failed",!e.success),XE(3),yl("Phase ",e.phaseIndex),XE(2),Zg(e.success?"\u2705":"\u274C"),XE(5),Zg(e.prompt),XE(5),Zg(e.llmOutput),XE(),tC(e.enrichmentContent?16:-1);}}function $i(o,t){if(o&1&&oC(0,zi,17,7,"div",83,ci),o&2){let e=mC(4).$implicit;iC(e.call.enrichmentPhases);}}function Ui(o,t){o&1&&(vs(0,"span",82),WC(1,"No enrichment trace was provided."),fl());}function Hi(o,t){if(o&1&&(vs(0,"div",77)(1,"span",79),WC(2,"Enrichment phases"),fl(),eC(3,$i,2,0)(4,Ui,2,0,"span",82),fl()),o&2){let e=mC(3).$implicit;XE(3),tC(e.call.enrichmentPhases?.length?3:4);}}function Bi(o,t){o&1&&WC(0," \xB7 Text ");}function ji(o,t){if(o&1&&(vs(0,"div",78)(1,"span",79),WC(2," Arguments "),eC(3,Bi,1,0),fl(),vs(4,"pre"),WC(5),fl()()),o&2){let e=mC(3).$implicit,n=mC(2);XE(3),tC(n.isStructuredPayload(e.call.args)?-1:3),XE(),Hg("case-chat__tool-call-code--text",!n.isStructuredPayload(e.call.args)),XE(),Zg(t);}}function Qi(o,t){o&1&&(vs(0,"div",78)(1,"span",79),WC(2,"Duration"),fl(),vs(3,"span"),WC(4),fl()()),o&2&&(XE(4),Zg(t));}function Wi(o,t){o&1&&WC(0," \xB7 Text ");}function Gi(o,t){if(o&1&&(vs(0,"pre"),WC(1),fl()),o&2){let e=mC(3).$implicit,n=mC(2);Hg("case-chat__tool-call-code--text",!n.isToolOutputStructured(e.call)),XE(),Zg(t);}}function Ki(o,t){o&1&&(vs(0,"span",81),WC(1,"Running\u2026"),fl());}function Yi(o,t){o&1&&(vs(0,"span",82),WC(1,"No output"),fl());}function Ji(o,t){o&1&&WC(0," \xB7 Text ");}function Xi(o,t){if(o&1&&(vs(0,"div",78)(1,"span",79),WC(2," Metadata "),eC(3,Ji,1,0),fl(),vs(4,"pre"),WC(5),fl()()),o&2){let e=mC(3).$implicit,n=mC(2);XE(3),tC(n.isToolMetadataStructured(e.call)?-1:3),XE(),Hg("case-chat__tool-call-code--text",!n.isToolMetadataStructured(e.call)),XE(),Zg(t);}}function Zi(o,t){if(o&1&&(vs(0,"div",76),eC(1,Hi,5,1,"div",77),eC(2,ji,6,4,"div",78),eC(3,Qi,5,1,"div",78),vs(4,"div",78)(5,"span",79),WC(6),eC(7,Wi,1,0),fl(),eC(8,Gi,2,3,"pre",80)(9,Ki,2,0,"span",81)(10,Yi,2,0,"span",82),fl(),eC(11,Xi,6,4,"div",78),fl()),o&2){let e,n,i,a,h=mC(2).$implicit,T=mC(2);XE(),tC(T.showTechnical()?1:-1),XE(),tC((e=T.formatToolArguments(h.call.args))?2:-1,e),XE(),tC((n=T.showTechnical()&&T.formatToolDuration(h.call))?3:-1,n),XE(3),yl(" ",h.call.response?.success===false?"Error":"Output"," "),XE(),tC(T.isToolOutputStructured(h.call)?-1:7),XE(),tC((i=T.extractToolOutput(h.call))?8:h.call.response?10:9,i),XE(3),tC((a=T.showTechnical()&&T.formatToolMetadata(h.call))?11:-1,a);}}function ea(o,t){if(o&1){let e=dC();vs(0,"div",69)(1,"button",70),Ag("click",function(){If(e);let i=mC().$implicit,a=mC(2);return wf(a.toggleToolCall(i.call.requestId))}),vs(2,"span",71),eC(3,Di,1,0)(4,Vi,1,0)(5,Ri,1,0),fl(),vs(6,"span",72),WC(7),fl(),vs(8,"span",73),eC(9,Ni,1,0)(10,Ai,1,0)(11,Fi,1,0),fl(),eC(12,qi,2,3,"time",74),vs(13,"span",75),WC(14),fl()(),eC(15,Zi,12,7,"div",76),fl();}if(o&2){let e=mC().$implicit,n=mC(2);Hg("case-chat__tool-call--pending",!e.call.response)("case-chat__tool-call--success",e.call.response?.success===true)("case-chat__tool-call--error",e.call.response?.success===false),XE(),Cg("aria-expanded",n.isToolCallExpanded(e.call.requestId)),XE(2),tC(e.call.response?e.call.response.success?4:5:3),XE(4),Zg(e.call.toolName),XE(2),tC(e.call.response?e.call.response.success?10:11:9),XE(3),tC(e.call.timestamp?12:-1),XE(2),Zg(n.isToolCallExpanded(e.call.requestId)?"\u25BC":"\u25B6"),XE(),tC(n.isToolCallExpanded(e.call.requestId)?15:-1);}}function ta(o,t){if(o&1&&eC(0,wi,8,9,"div",43)(1,Si,4,2,"div",44)(2,Ei,4,6,"div",45)(3,ki,4,2,"details",46)(4,Ii,2,1)(5,ea,16,13,"div",47),o&2){let e=t.$implicit;tC(e.kind==="message"?0:e.kind==="streaming"?1:e.kind==="notice"?2:e.kind==="technical"?3:e.kind==="question"?4:5);}}function na(o,t){if(o&1&&oC(0,ta,6,1,null,null,Xw().trackTimelineItem,true),o&2){let e=mC();iC(e.timeline());}}function oa(o,t){o&1&&(vs(0,"div",22),bg(1,"span",90)(2,"span",90)(3,"span",90),fl());}function ia(o,t){if(o&1){let e=dC();vs(0,"div",23)(1,"ds-icon-button",91),Ag("action",function(){If(e);let i=mC();return wf(i.onScrollToBottomClick())}),fl()();}}function aa(o,t){if(o&1){let e=dC();vs(0,"div",25)(1,"agentos-agent-autocomplete",92),Ag("selected",function(i){If(e);let a=mC();return wf(a.onAgentSelected(i))})("dismissed",function(){If(e);let i=mC();return wf(i.closeAtAutocomplete())}),fl()();}if(o&2){let e=mC();XE(),Tg("agents",e.autocomplete.atSuggestions());}}function ra(o,t){if(o&1){let e=dC();vs(0,"div",25)(1,"agentos-prompt-autocomplete",93),Ag("selected",function(i){If(e);let a=mC();return wf(a.onPromptSelected(i))})("dismissed",function(){If(e);let i=mC();return wf(i.closeSlashAutocomplete())}),fl()();}if(o&2){let e=mC();XE(),Tg("prompts",e.autocomplete.slashSuggestions());}}function sa(o,t){if(o&1){let e=dC();vs(0,"ds-icon-button",94),Ag("action",function(){If(e),mC();let i=TC(31);return wf(i.openPicker())}),fl();}if(o&2){let e=mC();Tg("disabled",!e.canStageFiles());}}function la(o,t){if(o&1){let e=dC();vs(0,"ds-icon-button",95),Ag("action",function(){If(e);let i=mC();return wf(i.interrupt())}),fl();}}function ca(o,t){if(o&1){let e=dC();vs(0,"ds-icon-button",96),Ag("action",function(){If(e);let i=mC();return wf(i.submit())}),fl();}if(o&2){let e=mC();Tg("title",e.preferences.composerHint())("disabled",!e.canSend);}}var da=64;function Sn(){let o=window.getSelection();return !!o&&o.toString().length>0}var et=class o{route=g(V$2);http=g(dy);zone=g(G$6);destroyRef=g(we$1);domSanitizer=g(TS);exchangeState=g(re);config=g(y$1);preferences=g(f);caseState=g(pe);oauthService=g(h$1);exchangeOpen=Hi$1(false);exchangeFileCount=this.exchangeState.fileCount;attachments=g(ue);autocomplete=g(_e);canAttach=this.exchangeState.canWriteCase;canStageFiles=mT(()=>this.canAttach()&&!this.isRunning()&&!this.isTerminal()&&!this.attachments.isUploading());toggleExchange(){this.exchangeOpen.update(t=>!t);}caseId=this.route.snapshot.queryParams.case;namespaceId=this.route.snapshot.queryParams.ns;markdownRenderer=this.buildMarkdownRenderer();agentDisplayName=mT(()=>{let t=this.events();for(let e=t.length-1;e>=0;e--){let n=t[e];if(n){if(n.type==="AgentRunningEvent"||n.type==="AgentSelectedEvent"||n.type==="AgentFinishedEvent"){let i=n.agentName;if(i&&i.trim().length>0)return i}if(n.type==="MessageEvent"&&n.actor.role==="AGENT"&&n.actor.displayName)return n.actor.displayName}}return "Assistant"});eventSource=null;composerInput=vB("composerInput");messagesContainer=vB("messagesContainer");promptAutocompleteRef=vB(ie);agentAutocompleteRef=vB(ae);events=Hi$1([]);messageHtmlCache=new Map;inputValue=Hi$1("");isRunning=Hi$1(false);isTerminal=Hi$1(false);activeCase=mT(()=>this.caseState.cases().find(t=>t.id===this.caseId)??null);_sseStatus=Hi$1("");caseStatus=mT(()=>this._sseStatus()||this.activeCase()?.status||"IDLE");confirmingDelete=Hi$1(false);drawerPanel=Hi$1("files");openFilesPanel(){this.drawerPanel.set("files"),this.exchangeOpen.set(true);}openMembersPanel(){this.drawerPanel.set("members"),this.exchangeOpen.set(true);}starToggled=gB();deleteRequested=gB();logsToggled=gB();showTechnicalOverride=mB(false);showTechnical=mT(()=>this.showTechnicalOverride());showToolCallsOverride=mB(true);showToolCalls=mT(()=>this.showToolCallsOverride());streamingText=Hi$1("");streamingHtml=mT(()=>{let t=this.streamingText();return t?this.renderMarkdown(t):""});namespaceTargeted=mT(()=>Ze(this.inputValue(),this.exchangeState.canWriteNamespace()));collapsedTools=Hi$1(new Set);isAtBottom=Hi$1(true);scrollListenerCleanup=null;constructor(){this.autocomplete.init(this.namespaceId),Hf(()=>{this.isRunning()||this.isTerminal()||queueMicrotask(()=>{Sn()||this.composerInput()?.nativeElement.focus();});}),Hf(()=>{this.inputValue(),queueMicrotask(()=>this.resizeComposer());}),Hf(()=>{this.timeline(),this.streamingText(),this.isAtBottom()&&queueMicrotask(()=>{Sn()||this.scrollToBottom();});}),ME(()=>{this.attachScrollListener(),this.resizeComposer();});}baseTimeline=mT(()=>{let t=this.events(),e=this.showTechnical(),n=this.showToolCalls(),i=new Map;for(let f of t)if(f.type==="ToolRequestEvent"){let k=f,O=k.toolRequestId??f.id,N=i.get(O);i.set(O,{requestId:O,toolName:k.toolName??"unknown",args:k.args??null,timestamp:k.timestamp??N?.timestamp,response:N?.response,enrichmentPhases:k.enrichmentPhases??null});}else if(f.type==="ToolResponseEvent"){let k=f,O=k.toolRequestId??f.id,N=i.get(O);i.set(O,{requestId:O,toolName:N?.toolName??k.toolName??"unknown",args:N?.args??null,timestamp:N?.timestamp,response:k,enrichmentPhases:N?.enrichmentPhases??null});}let a=[],h=new Set,T=null;for(let f of t)if(f.type==="MessageEvent"){let k=f,O=k.actor.role,N=O!==T;T=O,a.push({kind:"message",event:k,html:this.messageHtmlCache.get(f.id)??"",isFirstInGroup:N,isLastInGroup:false});}else if(f.type==="ToolRequestEvent"||f.type==="ToolResponseEvent"){let k=f.toolRequestId??f.id;h.has(k)||(h.add(k),n&&a.push({kind:"tool",call:i.get(k)})),T=null;}else if(f.type==="QuestionEvent"){let k=f,O=t.some(N=>N.type==="AnswerEvent"&&N.questionId===k.id);a.push({kind:"question",event:k,answered:O});}else if(e&&!this.isEventConsumedElsewhere(f)){let k=this.toExecutionNotice(f);k?a.push({kind:"notice",notice:k,eventId:f.id}):a.push({kind:"technical",item:this.toTechnicalItem(f),eventId:f.id}),T=null;}for(let f=0;f<a.length;f++){let k=a[f];if(k?.kind!=="message")continue;let O=a[f+1];k.isLastInGroup=O?.kind!=="message"||O.event.actor.role!==k.event.actor.role;}return a});timeline=mT(()=>{let t=this.baseTimeline();return this.streamingText().trim().length===0?t:[...t,{kind:"streaming"}]});trackTimelineItem(t,e){switch(e.kind){case "message":return e.event.id;case "tool":return e.call.requestId;case "technical":case "notice":return e.eventId;case "streaming":return "streaming";case "question":return `question-${e.event.id}`}}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$2(this.destroyRef)).subscribe(t=>{let e=t.case;e&&e!==this.caseId&&(this.caseId=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<=da);};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(),h=i.type,T=i.data;console.log("[AgentOS SSE] frame received",{sseEventName:h,dataLength:T?.length??0,dataPreview:T?.slice(0,120),receivedAtMs:a});try{let f=JSON.parse(T);this.zone.run(()=>{let k=this.events().length;if(f.type==="MessageEvent"){let N=f,se=this.extractText(N);this.messageHtmlCache.has(f.id)||this.messageHtmlCache.set(f.id,this.renderMarkdown(se));}this.events.update(N=>N.some(se=>se.id===f.id)?N:[...N,f]);let O=this.events().length;if(console.log("[AgentOS SSE] event processed",{sseEventName:h,eventType:f.type,eventId:f.id,beforeLen:k,afterLen:O,running:this.isRunning(),terminal:this.isTerminal()}),f.type==="TextChunkEvent"){let N=f.chunk;N&&this.streamingText.update(se=>se+N);return}if(f.type==="CaseUpdatedEvent"){let N=f;N.title&&this.caseState.updateCaseTitle(f.caseId,N.title);return}if(f.type==="CaseStatusEvent"){let N=f.status;this._sseStatus.set(N),this.caseState.updateCaseStatus(this.caseId,N);let se=N==="KILLED"||N==="ERROR";if(this.isTerminal.set(se),se)this.isRunning.set(!1),this.eventSource?.close(),this.eventSource=null;else {let ht=N==="RUNNING";this.isRunning.set(ht),ht||this.streamingText.set("");}return}if(f.type==="AgentFinishedEvent"){this.isRunning.set(!1),this.streamingText.set(""),this.anyToolResponseThisTurn&&this.exchangeState.refreshManifest(),this.anyToolResponseThisTurn=!1;return}if(f.type==="ToolResponseEvent"){this.anyToolResponseThisTurn=!0;let N=xn(f.toolName);N==="case"?this.exchangeState.refreshCase():N==="namespace"&&this.exchangeState.refreshNamespace();return}if(f.type==="QuestionEvent"){let N=f;N.questionType==="OAUTH_AUTHORIZE"&&this.oauthService.setPendingQuestion(N);return}});}catch(f){console.warn("[AgentOS SSE] failed to parse event data",{sseEventName:h,error:f,dataPreview:T?.slice(0,500)});}},n=["MessageEvent","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.onmessage=i=>{console.log("[AgentOS SSE] onmessage (unnamed event) received",{dataLength:i.data?.length??0,dataPreview:i.data?.slice(0,120)});},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.autocomplete.reset(),this.attachments.reset(),this.connectSse();}submitting=false;submit(){return dt(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=Ie(t,this.exchangeState.canWriteNamespace()),i=yield this.attachments.uploadAllAndBuildMention(n);if(i===null||this.caseId!==e)return;(yield this.postMessage(t?`${t}
|
|
4
4
|
|
|
5
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(""),zy(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)});}kill(){this.http.post(`${this.config.basePath}/api/cases/${this.caseId}/kill`,{}).subscribe({error:t=>console.error("[CaseChat] Failed to kill 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
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
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){if(!t)return "";let e=x$2.parse(t,{renderer:this.markdownRenderer,breaks:true,gfm:true,async:false}),n=is.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.domSanitizer.bypassSecurityTrustHtml(n)}buildMarkdownRenderer(){let t=new Ue$1,e=t.link.bind(t),n=t.code.bind(t);return t.code=i=>n(i).replace("<pre>",'<pre class="agentos-chat-code-block">'),t.link=i=>{let a=e(i);return this.isExternalLink(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}isExternalLink(t){if(!t||t.startsWith("/")||t.startsWith("#")||t.startsWith("?"))return false;if(t.startsWith("//"))return true;try{return new URL(t,window.location.href).hostname!==window.location.hostname}catch(e){return false}}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=He$1;static \u0275fac=function(e){return new(e||o)};static \u0275cmp=Aw({type:o,selectors:[["agentos-case-chat"]],viewQuery:function(e,n){e&1&&Lg(n.composerInput,si,5)(n.messagesContainer,li,5)(n.promptAutocompleteRef,ie,5)(n.agentAutocompleteRef,ae,5),e&2&&CC(4);},inputs:{showTechnicalOverride:[1,"showTechnicalOverride"],showToolCallsOverride:[1,"showToolCallsOverride"]},outputs:{starToggled:"starToggled",deleteRequested:"deleteRequested",logsToggled:"logsToggled"},features:[nT([ue,_e])],decls:41,vars:34,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-title-group"],[3,"status","size"],[1,"case-chat__header-title"],[1,"case-chat__header-badge"],[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"],[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"],["icon","cancel","variant","danger","title","Kill",3,"action","disabled"],[3,"closeRequested","caseId"],[3,"closeRequested"],["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"],["aria-hidden","true",1,"material-icons"],["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"],[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=dC();vs(0,"ds-drawer",3),Jg("openChange",function(h){return If(i),KC(n.exchangeOpen,h)||(n.exchangeOpen=h),wf(h)}),vs(1,"div",4),eC(2,di,1,1,"agentos-case-members",5)(3,mi,1,0,"agentos-exchange-shell"),fl(),vs(4,"div",6)(5,"header",7)(6,"div",8),bg(7,"agentos-case-status-glyph",9),vs(8,"span",10),WC(9),fl(),vs(10,"span",11),WC(11),fl()(),vs(12,"div",12)(13,"ds-icon-button",13),Ag("action",function(){return n.openFilesPanel()}),fl(),eC(14,pi,2,1,"span",14),fl(),vs(15,"ds-icon-button",15),Ag("action",function(){return n.openMembersPanel()}),fl(),bg(16,"span",16),eC(17,_i,2,4)(18,ui,10,0,"span",17),fl(),vs(19,"div",18),Ag("dragenter",function(h){return n.canStageFiles()&&n.attachments.onDragEnter(h)})("dragover",function(h){return n.canStageFiles()&&n.attachments.onDragOver(h)})("dragleave",function(){return n.attachments.onDragLeave()})("drop",function(h){return n.canStageFiles()&&n.attachments.onDrop(h)}),eC(20,gi,5,0,"div",19),vs(21,"div",20,0),eC(23,hi,3,0,"div",21)(24,na,2,0),eC(25,oa,4,0,"div",22),fl(),eC(26,ia,2,0,"div",23),vs(27,"div",24),eC(28,aa,2,1,"div",25),eC(29,ra,2,1,"div",25),vs(30,"agentos-composer-attachments",26,1),Ag("removed",function(h){return n.attachments.remove(h)})("filesSelected",function(h){return n.attachments.addFiles(h)}),fl(),vs(32,"textarea",27,2),Ag("input",function(h){return n.onInput(h)})("keydown",function(h){return n.onKeydown(h)}),fl(),vs(34,"div",28),eC(35,sa,1,1,"ds-icon-button",29),vs(36,"span",30),WC(37),fl(),eC(38,la,1,0,"ds-icon-button",31)(39,ca,1,2,"ds-icon-button",32),vs(40,"ds-icon-button",33),Ag("action",function(){return n.kill()}),fl()()()()()();}e&2&&(Xg("open",n.exchangeOpen),Tg("mobileFullWidth",true),XE(2),tC(n.drawerPanel()==="members"?2:3),XE(5),Tg("status",n.caseStatus())("size",16),XE(2),Zg(n.activeCase()?.title??""),XE(),Hg("case-chat__header-badge--running",n.caseStatus()===n.CaseStatusEnum.RUNNING)("case-chat__header-badge--error",n.caseStatus()===n.CaseStatusEnum.ERROR)("case-chat__header-badge--pending",n.caseStatus()===n.CaseStatusEnum.PENDING)("case-chat__header-badge--killed",n.caseStatus()===n.CaseStatusEnum.KILLED),XE(),Zg(n.caseStatus().toLowerCase()),XE(2),Tg("title","Files ("+n.exchangeFileCount()+")"),XE(),tC(n.exchangeFileCount()>0&&!n.exchangeOpen()?14:-1),XE(3),tC(n.confirmingDelete()?18:17),XE(3),tC(n.attachments.isDragOver()?20:-1),XE(3),tC(n.timeline().length===0?23:24),XE(2),tC(n.isRunning()?25:-1),XE(),tC(n.isAtBottom()?-1:26),XE(2),tC(n.autocomplete.atSuggestions().length>0?28:-1),XE(),tC(n.autocomplete.slashSuggestions().length>0?29:-1),XE(),Tg("attachments",n.attachments.attachments())("namespaceBadge",n.namespaceTargeted())("limitError",n.attachments.limitError())("disabled",n.attachments.isUploading()),XE(2),Tg("value",n.inputValue())("disabled",n.isRunning()||n.isTerminal()||n.attachments.isUploading()),XE(3),tC(n.canAttach()?35:-1),XE(2),Zg(n.preferences.composerHint()),XE(),tC(n.isRunning()?38:39),XE(2),Tg("disabled",n.isTerminal()));},dependencies:[Se$1,Jn$2,Ke,Je,ie,ae,Kn$1,me,Un$1,Ee,Ue,kb],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)}@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-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 ma=["composerInput"];function pa(o,t){o&1&&(vs(0,"div",3)(1,"span",17),WC(2,"upload_file"),fl(),vs(3,"span"),WC(4,"Drop files to attach"),fl()());}function _a(o,t){if(o&1&&(vs(0,"div",6),WC(1),fl()),o&2){let e=mC();XE(),yl("Namespace \xB7 ",e.namespaceName()??e.namespaceId);}}function ua(o,t){if(o&1){let e=dC();vs(0,"div",9)(1,"agentos-agent-autocomplete",18),Ag("selected",function(i){If(e);let a=mC();return wf(a.onAgentSelected(i))})("dismissed",function(){If(e);let i=mC();return wf(i.closeAtAutocomplete())}),fl()();}if(o&2){let e=mC();XE(),Tg("agents",e.autocomplete.atSuggestions());}}function ga(o,t){if(o&1){let e=dC();vs(0,"div",9)(1,"agentos-prompt-autocomplete",19),Ag("selected",function(i){If(e);let a=mC();return wf(a.onPromptSelected(i))})("dismissed",function(){If(e);let i=mC();return wf(i.closeSlashAutocomplete())}),fl()();}if(o&2){let e=mC();XE(),Tg("prompts",e.autocomplete.slashSuggestions());}}var tt=class o{http=g(dy);router=g(G$5);route=g(V$2);config=g(y$1);caseState=g(pe);destroyRef=g(we$1);preferences=g(f);namespaceName=mB(null);exchangeState=g(re);attachments=g(ue);autocomplete=g(_e);composerInput=vB("composerInput");promptAutocompleteRef=vB(ie);agentAutocompleteRef=vB(ae);namespaceId=this.route.snapshot.queryParams.ns;inputValue=Hi$1("");isCreating=Hi$1(false);pendingCaseId=Hi$1(null);destroyed=false;namespaceTargeted=mT(()=>Ze(this.inputValue(),this.exchangeState.canWriteNamespace()));ngOnInit(){this.exchangeState.initializeForNamespace(this.namespaceId),this.route.queryParams.pipe(U$2(this.destroyRef)).subscribe(t=>{let e=t.ns;e&&e!==this.namespaceId&&(this.namespaceId=e,this.autocomplete.init(e),this.autocomplete.reset(),this.inputValue.set(""),this.attachments.reset(),this.pendingCaseId.set(null),this.exchangeState.initializeForNamespace(e));});}constructor(){this.destroyRef.onDestroy(()=>this.destroyed=true),this.autocomplete.init(this.namespaceId),Hf(()=>{this.inputValue();let t=this.composerInput()?.nativeElement;t&&queueMicrotask(()=>this.resizeComposer(t));}),ME(()=>{let t=this.composerInput()?.nativeElement;t?.focus(),this.resizeComposer(t);});}get canSend(){return (!!this.inputValue().trim()||this.attachments.hasAttachments())&&!this.isCreating()}onInput(t){let e=t.target;this.autocomplete.onInput(e.value,this.inputValue),this.resizeComposer(e);}resizeComposer(t){t&&(t.style.height="auto",t.style.height=`${t.scrollHeight}px`);}onKeydown(t){this.autocomplete.onKeydown(t,this.promptAutocompleteRef,this.agentAutocompleteRef)||this.preferences.shouldSend(t)&&(t.preventDefault(),this.submit());}onPromptSelected(t){this.autocomplete.onPromptSelected(t,this.promptAutocompleteRef,this.composerInput,this.inputValue);}onAgentSelected(t){this.autocomplete.onAgentSelected(t,this.agentAutocompleteRef,this.composerInput,this.inputValue);}closeSlashAutocomplete(){this.autocomplete.slashSuggestions.set([]);}closeAtAutocomplete(){this.autocomplete.atSuggestions.set([]);}submit(){return dt(this,null,function*(){if(!this.canSend)return;let t=this.inputValue().trim(),e=this.namespaceId;this.isCreating.set(true);try{let n=this.pendingCaseId();if(!n){let a=yield zy(this.http.post(`${this.config.basePath}/api/cases`,{namespaceId:e,metadata:{}}));this.caseState.addCase(a),n=a.id??"",this.pendingCaseId.set(n);}if(this.abandoned(e)){this.isCreating.set(!1);return}let i=t;if(this.attachments.hasAttachments()){this.exchangeState.initializeForCase(e,n);let a=Ie(t,this.exchangeState.canWriteNamespace()),h=yield this.attachments.uploadAllAndBuildMention(a);if(h===null||this.abandoned(e)){this.isCreating.set(!1);return}i=i?`${i}
|
|
8
8
|
|
|
9
|
-
${h}`:h;}if(yield zy(this.http.post(`${this.config.basePath}/api/cases/${n}/messages`,{content:i,userId:"default-user"})),this.abandoned(e)){this.isCreating.set(!1);return}this.attachments.reset(),this.inputValue.set(""),this.pendingCaseId.set(null),this.router.navigate(["/agentos/home"],{queryParams:{ns:e,case:n}});}catch(n){console.error("[CaseHome] Failed to create case or send first message",n),this.isCreating.set(false);}})}abandoned(t){return this.destroyed||this.namespaceId!==t}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=Aw({type:o,selectors:[["agentos-case-home"]],viewQuery:function(e,n){e&1&&Lg(n.composerInput,ma,5)(n.promptAutocompleteRef,ie,5)(n.agentAutocompleteRef,ae,5),e&2&&CC(3);},inputs:{namespaceName:[1,"namespaceName"]},features:[nT([ue,_e])],decls:20,vars:13,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"],[1,"case-home__headline"],["dsBlueprint","",1,"case-home__composer"],[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","title","Start case",3,"action","disabled"],[1,"material-icons"],[3,"selected","dismissed","agents"],[3,"selected","dismissed","prompts"]],template:function(e,n){if(e&1){let i=dC();vs(0,"div",2),Ag("dragenter",function(h){return !n.isCreating()&&n.attachments.onDragEnter(h)})("dragover",function(h){return !n.isCreating()&&n.attachments.onDragOver(h)})("dragleave",function(){return n.attachments.onDragLeave()})("drop",function(h){return !n.isCreating()&&n.attachments.onDrop(h)}),eC(1,pa,5,0,"div",3),vs(2,"div",4)(3,"div",5),eC(4,_a,2,1,"div",6),vs(5,"h1",7),WC(6,"What can I help you with?"),fl()(),vs(7,"div",8),eC(8,ua,2,1,"div",9),eC(9,ga,2,1,"div",9),vs(10,"agentos-composer-attachments",10,0),Ag("removed",function(h){return n.attachments.remove(h)})("filesSelected",function(h){return n.attachments.addFiles(h)}),fl(),vs(12,"textarea",11,1),Ag("input",function(h){return n.onInput(h)})("keydown",function(h){return n.onKeydown(h)}),fl(),vs(14,"div",12)(15,"div",13)(16,"ds-icon-button",14),Ag("action",function(){If(i);let h=TC(11);return wf(h.openPicker())}),fl(),vs(17,"span",15),WC(18),fl()(),vs(19,"ds-icon-button",16),Ag("action",function(){return n.submit()}),fl()()()()();}e&2&&(XE(),tC(n.attachments.isDragOver()?1:-1),XE(3),tC(n.namespaceId?4:-1),XE(4),tC(n.autocomplete.atSuggestions().length>0?8:-1),XE(),tC(n.autocomplete.slashSuggestions().length>0?9:-1),XE(),Tg("attachments",n.attachments.attachments())("namespaceBadge",n.namespaceTargeted())("limitError",n.attachments.limitError())("disabled",n.attachments.isUploading()),XE(2),Tg("value",n.inputValue())("disabled",n.isCreating()),XE(4),Tg("disabled",n.isCreating()),XE(2),Zg(n.preferences.composerHint()),XE(),Tg("disabled",!n.canSend));},dependencies:[Kn$1,Se$1,ie,ae,Ee],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__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 nt=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=Aw({type:o,selectors:[["agentos-case-item"]],inputs:{case:"case"},decls:0,vars:0,template:function(e,n){},encapsulation:2})};var ha=["renameInput"],Ca=["caseRowTpl"],fa=o=>({node:o,depth:0}),ba=(o,t)=>({node:o,depth:t}),gt=(o,t)=>t.id;function xa(o,t){if(o&1&&bg(0,"div",5),o&2){let e=mC().$implicit;Cg("title",e.groupLabel??"");}}function va(o,t){if(o&1){let e=dC();eC(0,xa,1,1,"div",5),vs(1,"button",6),Ag("click",function(){let i=If(e).$implicit,a=mC(2);return wf(a.onItemSelected(i.id))})("mouseenter",function(i){let a=If(e).$implicit,h=mC(2);return wf(h.onCompactBadgeEnter(i,a))})("mouseleave",function(i){If(e);let a=mC(2);return wf(a.onCompactBadgeLeave(i))}),bg(2,"agentos-case-status-glyph",7),fl();}if(o&2){let e=t.$implicit,n=mC(2);tC(e.isFirstInCompactGroup&&e.groupKey?0:-1),XE(),Hg("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),Cg("aria-label",e.name+" \u2014 "+e.status),XE(),Tg("status",e.status)("size",16);}}function ya(o,t){if(o&1){let e=dC();vs(0,"button",16),Ag("click",function(){If(e);let i=mC(2),a=mC(2);return wf(a.compactConfirmingDeleteId.set(i.id))}),kf(),vs(1,"svg",17),bg(2,"path",18)(3,"line",19)(4,"line",20),fl()();}}function wa(o,t){if(o&1){let e=dC();vs(0,"button",12),Ag("click",function(){If(e);let i=mC(),a=mC(2);return wf(a.onStarToggled(i))}),kf(),vs(1,"svg",13),bg(2,"path",14),fl()(),eC(3,ya,5,0,"button",15);}if(o&2){let e=mC();Hg("case-drawer-compact__tooltip-btn--active",e.favorite),Tg("title",e.favorite?"Remove from favorites":"Add to favorites"),XE(),Cg("fill",e.favorite?"currentColor":"none"),XE(2),tC(e.canDelete?3:-1);}}function Sa(o,t){if(o&1){let e=dC();vs(0,"button",21),Ag("click",function(){If(e);let i=mC(),a=mC(2);return a.onDeleteRequested(i.id),a.compactConfirmingDeleteId.set(null),wf(a.hoveredCompactItem.set(null))}),kf(),vs(1,"svg",22),bg(2,"path",23),fl(),WC(3," Delete "),fl(),Ff(),vs(4,"button",24),Ag("click",function(){If(e);let i=mC(3);return wf(i.compactConfirmingDeleteId.set(null))}),kf(),vs(5,"svg",25),bg(6,"path",26)(7,"path",27),fl()();}}function Ma(o,t){if(o&1){let e=dC();vs(0,"div",8),Ag("mouseleave",function(i){If(e);let a=mC(2);return wf(a.onTooltipLeave(i))})("mouseenter",function(){If(e);let i=mC(2);return wf(i.onTooltipEnter())}),vs(1,"span",9),WC(2),fl(),vs(3,"span",10),WC(4),fl(),vs(5,"span",11),eC(6,wa,4,5)(7,Sa,8,0),fl()();}if(o&2){let e=t,n=mC(2);Vg("top",n.tooltipPos().top,"px")("left",n.tooltipPos().left,"px"),XE(2),Zg(e.name),XE(),Hg("case-drawer-compact__tooltip-status--running",e.status===n.Status.RUNNING)("case-drawer-compact__tooltip-status--error",e.status===n.Status.ERROR)("case-drawer-compact__tooltip-status--pending",e.status===n.Status.PENDING)("case-drawer-compact__tooltip-status--killed",e.status===n.Status.KILLED),XE(),Zg(e.status.toLowerCase()),XE(2),tC(n.compactConfirmingDeleteId()!==e.id?6:7);}}function Ea(o,t){if(o&1&&(vs(0,"div",3),oC(1,va,3,14,null,null,gt),fl(),eC(3,Ma,8,15,"div",4)),o&2){let e,n=mC();XE(),iC(n.compactItems()),XE(2),tC((e=n.hoveredCompactItem())?3:-1,e);}}function Ta(o,t){o&1&&(vs(0,"p",28),WC(1,"No cases yet. Start one with the + button above."),fl());}function ka(o,t){if(o&1&&(vs(0,"div",29),WC(1),fl()),o&2){let e=mC().$implicit;XE(),Zg(e.groupLabel);}}function Pa(o,t){if(o&1&&(eC(0,ka,2,1,"div",29),Mg(1,30)),o&2){let e=t.$implicit,n=mC(3),i=TC(3);tC(n.isFirstInGroup(e,n.displayItems())?0:-1),XE(),Tg("ngTemplateOutlet",i)("ngTemplateOutletContext",oT(3,fa,e));}}function Oa(o,t){if(o&1&&oC(0,Pa,2,5,null,null,gt),o&2){let e=mC(2);iC(e.displayItems());}}function Ia(o,t){if(o&1&&(vs(0,"div",2),eC(1,Ta,2,0,"p",28)(2,Oa,2,0),fl()),o&2){let e=mC();XE(),tC(e.displayItems().length===0?1:2);}}function Da(o,t){if(o&1){let e=dC();vs(0,"button",38),Ag("click",function(i){If(e);let a=mC().node,h=mC();return wf(h.toggleExpand(i,a.id))}),kf(),vs(1,"svg",39),bg(2,"path",40),fl()();}if(o&2){let e=mC().node,n=mC();Tg("title",n.isExpanded(e.id)?"Collapse":"Expand"),XE(),Vg("transform",n.isExpanded(e.id)?"rotate(90deg)":"rotate(0)");}}function Va(o,t){if(o&1&&bg(0,"agentos-case-status-glyph",7),o&2){let e=mC().node;Tg("status",e.status)("size",15);}}function Ra(o,t){if(o&1&&(vs(0,"p",42),WC(1),fl()),o&2){let e=mC(2).node;Tg("id","rename-error-"+e.id),XE(),Zg(t);}}function Na(o,t){if(o&1){let e=dC();vs(0,"div",34)(1,"input",41,1),Ag("click",function(i){return i.stopPropagation()})("input",function(i){If(e);let a=mC(2);return wf(a.onRenameInput(i.target.value))})("keydown",function(i){If(e);let a=mC(2);return wf(a.onRenameKeydown(i))})("blur",function(){If(e);let i=mC(2);return wf(i.onRenameBlur())}),fl(),eC(3,Ra,2,2,"p",42),fl();}if(o&2){let e,n=mC().node,i=mC();XE(),Tg("value",i.editingTitle()),Cg("aria-invalid",i.renameError()?"true":null)("aria-describedby",i.renameError()?"rename-error-"+n.id:null),XE(2),tC((e=i.renameError())?3:-1,e);}}function Aa(o,t){if(o&1){let e=dC();vs(0,"button",43),Ag("click",function(){If(e);let i=mC().node,a=mC();return wf(a.onItemSelected(i.id))}),vs(1,"span",44),WC(2),fl()();}if(o&2){let e=mC().node;XE(2),Zg(e.name);}}function Fa(o,t){if(o&1){let e=dC();vs(0,"button",49),Ag("click",function(i){If(e);let a=mC(2).node;return mC().startRename(a),wf(i.stopPropagation())}),kf(),vs(1,"svg",50),bg(2,"path",51)(3,"path",52),fl()();}}function qa(o,t){if(o&1){let e=dC();vs(0,"button",53),Ag("click",function(i){If(e);let a=mC(2).node;return mC().expandedConfirmingDeleteId.set(a.id),wf(i.stopPropagation())}),kf(),vs(1,"svg",50),bg(2,"path",18)(3,"line",19)(4,"line",20),fl()();}}function La(o,t){if(o&1){let e=dC();vs(0,"button",45),Ag("click",function(i){If(e);let a=mC().node;return mC().onStarToggled(a),wf(i.stopPropagation())}),kf(),vs(1,"svg",46),bg(2,"path",14),fl()(),eC(3,Fa,4,0,"button",47),eC(4,qa,5,0,"button",48);}if(o&2){let e=mC().node;Hg("case-tree-node__action-btn--active",e.favorite),Tg("title",e.favorite?"Remove from favorites":"Add to favorites"),XE(),Cg("fill",e.favorite?"currentColor":"none"),XE(2),tC(e.canRename?3:-1),XE(),tC(e.canDelete?4:-1);}}function za(o,t){if(o&1){let e=dC();vs(0,"button",54),Ag("click",function(i){If(e);let a=mC().node,h=mC();return h.onDeleteRequested(a.id),h.expandedConfirmingDeleteId.set(null),wf(i.stopPropagation())}),kf(),vs(1,"svg",22),bg(2,"path",23),fl(),WC(3," Delete "),fl(),Ff(),vs(4,"button",55),Ag("click",function(i){return If(e),mC(2).expandedConfirmingDeleteId.set(null),wf(i.stopPropagation())}),kf(),vs(5,"svg",25),bg(6,"path",26)(7,"path",27),fl()();}}function $a(o,t){if(o&1&&Mg(0,30),o&2){let e=t.$implicit,n=mC(2).depth;mC();let i=TC(3);Tg("ngTemplateOutlet",i)("ngTemplateOutletContext",iT(2,ba,e,n+1));}}function Ua(o,t){if(o&1&&oC(0,$a,1,5,"ng-container",30,gt),o&2){let e=mC().node;iC(e.children);}}function Ha(o,t){if(o&1&&(vs(0,"div",31)(1,"div",32),eC(2,Da,3,3,"button",33)(3,Va,1,2,"agentos-case-status-glyph",7),eC(4,Na,4,4,"div",34)(5,Aa,3,1,"button",35),vs(6,"span",36),WC(7),fl(),vs(8,"span",37),eC(9,La,5,6)(10,za,8,0),fl()(),eC(11,Ua,2,0),fl()),o&2){let e=t.node,n=t.depth,i=mC();Vg("--depth",n),XE(),Hg("case-tree-node__row--active",e.id===i.activeCaseId())("case-tree-node__row--editing",i.editingCaseId()===e.id),XE(),tC(e.children?.length?2:3),XE(2),tC(i.editingCaseId()===e.id?4:5),XE(2),Hg("case-tree-node__status-label--running",e.status===i.Status.RUNNING)("case-tree-node__status-label--error",e.status===i.Status.ERROR)("case-tree-node__status-label--pending",e.status===i.Status.PENDING)("case-tree-node__status-label--killed",e.status===i.Status.KILLED),XE(),Zg(e.status.toLowerCase()),XE(2),tC(i.expandedConfirmingDeleteId()!==e.id?9:10),XE(2),tC(!i.isSearchActive()&&i.isExpanded(e.id)&&e.children?.length?11:-1);}}var ot=class o{cases=mB([]);activeCaseId=mB(null);compact=mB(false);filterQuery=mB("");caseSelected=gB();createRequested=gB();deleteRequested=gB();starToggled=gB();renameRequested=gB();caseRowTpl;searchQuery=Hi$1("");activeQuery=mT(()=>this.filterQuery().trim()||this.searchQuery().trim());isSearchActive=mT(()=>this.activeQuery().length>0);rootItems=mT(()=>{let t=this.cases(),e=new Map(t.map(n=>[n.id??"",n.modified??n.created??""]));return Qa(ja(t),e)});compactItems=mT(()=>(this.isSearchActive()?this.flatFilteredItems():this.rootItems()).map((e,n,i)=>z$3(P({},e),{initials:Ba(e.name),isFirstInCompactGroup:n===0||e.groupKey!==i[n-1]?.groupKey})));flatFilteredItems=mT(()=>{let t=this.activeQuery().toLowerCase();return t?kn(this.rootItems(),t):[]});displayItems=mT(()=>this.isSearchActive()?this.flatFilteredItems():this.rootItems());autoExpandedIds=mT(()=>{let t=this.activeCaseId();if(!t)return new Set;let e=new Set;return Pn(this.rootItems(),t,e),e});hoveredCompactItem=Hi$1(null);tooltipPos=Hi$1({top:0,left:0});compactConfirmingDeleteId=Hi$1(null);expandedConfirmingDeleteId=Hi$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=Hi$1(new Map);editingCaseId=Hi$1(null);editingTitle=Hi$1("");renameError=Hi$1(null);renameOriginal="";renameInput=vB("renameInput");selectedForId=null;constructor(){CB(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&&(En(this.editingTitle().trim())?this.cancelRename():this.commitRename());}commitRename(){let t=this.editingCaseId();if(!t)return;let e=this.editingTitle().trim(),n=En(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=xe$1;static \u0275fac=function(e){return new(e||o)};static \u0275cmp=Aw({type:o,selectors:[["agentos-case-drawer"]],viewQuery:function(e,n){if(e&1&&(Lg(n.renameInput,ha,5),Fg(Ca,7)),e&2){CC();let i;IC(i=wC())&&(n.caseRowTpl=i.first);}},inputs:{cases:[1,"cases"],activeCaseId:[1,"activeCaseId"],compact:[1,"compact"],filterQuery:[1,"filterQuery"]},outputs:{caseSelected:"caseSelected",createRequested:"createRequested",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",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","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"],["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",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","Rename case",1,"case-tree-node__action-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","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&&(eC(0,Ea,4,1)(1,Ia,3,1,"div",2),Dg(2,Ha,12,19,"ng-template",null,0,fT)),e&2&&tC(n.compact()?0:1);},dependencies:[Sb,me],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__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__status-label[_ngcontent-%COMP%]{flex:none;transition:opacity .12s}.case-tree-node__row[_ngcontent-%COMP%]:hover .case-tree-node__status-label[_ngcontent-%COMP%], .case-tree-node__row[_ngcontent-%COMP%]:focus-within .case-tree-node__status-label[_ngcontent-%COMP%], .case-tree-node__row--active[_ngcontent-%COMP%] .case-tree-node__status-label[_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__status-label[_ngcontent-%COMP%], .case-tree-node__row--editing[_ngcontent-%COMP%]:focus-within .case-tree-node__status-label[_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}']})},Mn=200;function En(o){return o?o.length>Mn?`Name is too long (max ${Mn} characters)`:null:"Name cannot be empty"}function Ba(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 ja(o){let t=new Set(o.map(T=>T.id??"")),e=new Map(o.map(T=>[T.id??"",T.modified??T.created??""])),n=T=>z$3(P({},nt.toListItem(T)),{description:T.id??"",status:T.status??"IDLE",children:[]}),i=new Map;for(let T of o)i.set(T.id??"",n(T));let a=[];for(let T of o){let f=i.get(T.id??""),k=T.parentCaseId;k&&t.has(k)?i.get(k).children.push(f):a.push(f);}let h=T=>T.sort((f,k)=>(e.get(k.id)??"")>(e.get(f.id)??"")?1:-1).map(f=>z$3(P({},f),{children:h(f.children)}));return h(a)}function Qa(o,t){let e=[],n=[];for(let f of o){let k=Tn(f,e);k&&n.push(k);}for(let f of e)f.groupKey="favorites",f.groupLabel="Favorites";let i=new Date,a=new Date(i.getFullYear(),i.getMonth(),i.getDate()),h=new Date(a.getTime()-864e5),T=new Date(a.getTime()-6*864e5);for(let f of n){let k=t.get(f.id)??"",O=k?new Date(k):null;O&&O>=a?(f.groupKey="today",f.groupLabel="Today"):O&&O>=h?(f.groupKey="yesterday",f.groupLabel="Yesterday"):O&&O>=T?(f.groupKey="week",f.groupLabel="Previous 7 days"):(f.groupKey="older",f.groupLabel="Older");}return [...e,...n]}function Tn(o,t){if(o.favorite)return t.push(P({},o)),null;let e=[];for(let n of o.children){let i=Tn(n,t);i&&e.push(i);}return z$3(P({},o),{children:e})}function kn(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(...kn(n.children,t)),e),[])}function Pn(o,t,e){for(let n of o){if(n.id===t)return true;if(n.children.length&&Pn(n.children,t,e))return e.add(n.id),true}return false}var Wa=["compactSearchInput"],On=(o,t)=>t.id;function Ga(o,t){o&1&&(kf(),vs(0,"svg",35),bg(1,"path",36),fl());}function Ka(o,t){if(o&1){let e=dC();vs(0,"button",32),Ag("click",function(){let i=If(e).$implicit,a=mC(3);return wf(a.namespaceSelected.emit(i))}),vs(1,"span",33),WC(2),fl(),vs(3,"span",34),WC(4),fl(),eC(5,Ga,2,0,":svg:svg",35),fl();}if(o&2){let e=t.$implicit,n=mC(3);Hg("shell-sidebar__ns-item--active",e.id===n.selectedNamespace()?.id),XE(2),Zg(n.nsInitial(e.name)),XE(2),Zg(e.name),XE(),tC(e.id===n.selectedNamespace()?.id?5:-1);}}function Ya(o,t){if(o&1&&(vs(0,"div",13),oC(1,Ka,6,5,"button",31,On),fl()),o&2){let e=mC(2);XE(),iC(e.namespaces());}}function Ja(o,t){if(o&1){let e=dC();vs(0,"div",2)(1,"div",3)(2,"button",4),Ag("click",function(){If(e);let i=mC();return wf(i.homeClicked.emit())}),bg(3,"img",5),fl(),vs(4,"div",6)(5,"div",7)(6,"button",8),Ag("click",function(){If(e);let i=mC();return wf(i.nsMenuToggled.emit())}),vs(7,"span",9),WC(8),fl(),vs(9,"span",10),WC(10),fl(),kf(),vs(11,"svg",11),bg(12,"path",12),fl()(),eC(13,Ya,3,0,"div",13),fl()()(),Ff(),vs(14,"div",14)(15,"button",15),Ag("click",function(){If(e);let i=mC();return wf(i.createRequested.emit())}),kf(),vs(16,"svg",16),bg(17,"path",17),fl(),WC(18," New case "),fl(),Ff(),vs(19,"input",18),Ag("input",function(i){If(e);let a=mC();return wf(a.caseFilter.set(i.target.value))}),fl()()(),vs(20,"div",19)(21,"agentos-case-drawer",20),Ag("caseSelected",function(i){If(e);let a=mC();return wf(a.caseSelected.emit(i))})("createRequested",function(){If(e);let i=mC();return wf(i.createRequested.emit())})("deleteRequested",function(i){If(e);let a=mC();return wf(a.deleteRequested.emit(i))})("starToggled",function(i){If(e);let a=mC();return wf(a.starToggled.emit(i))})("renameRequested",function(i){If(e);let a=mC();return wf(a.renameRequested.emit(i))}),fl()(),vs(22,"div",21)(23,"div",22)(24,"button",23),Ag("click",function(i){If(e);let a=mC();return wf(a.menuToggled.emit(i))}),vs(25,"span",24),WC(26),fl(),vs(27,"span",25)(28,"span",26),WC(29),fl()(),kf(),vs(30,"svg",16),bg(31,"path",27),fl()(),Ff(),vs(32,"agentos-shell-user-menu",28),Ag("navigateTo",function(i){If(e);let a=mC();return wf(a.navigateTo.emit(i))})("themeToggled",function(){If(e);let i=mC();return wf(i.themeToggled.emit())})("themeVariantChanged",function(i){If(e);let a=mC();return wf(a.themeVariantChanged.emit(i))})("logsToggled",function(){If(e);let i=mC();return wf(i.logsToggled.emit())})("toolCallsToggled",function(){If(e);let i=mC();return wf(i.toolCallsToggled.emit())})("closed",function(i){If(e);let a=mC();return wf(a.menuClosed.emit(i))}),fl()(),vs(33,"button",29),Ag("click",function(){If(e);let i=mC();return wf(i.toggleCompact())}),kf(),vs(34,"svg",16),bg(35,"path",30),fl()()();}if(o&2){let e=mC();Hg("shell-sidebar__top--wide",e.effectiveWidth()>=400),XE(6),Hg("shell-sidebar__ns-trigger--open",e.nsMenuOpen()),XE(2),Zg(e.nsInitial(e.selectedNamespace()?.name)),XE(2),Zg(e.selectedNamespace()?.name??"Select namespace"),XE(3),tC(e.nsMenuOpen()?13:-1),XE(),Hg("shell-sidebar__bottom-row--wide",e.effectiveWidth()>=400),XE(5),Tg("value",e.caseFilter()),XE(2),Tg("cases",e.cases())("activeCaseId",e.activeCaseId())("compact",false)("filterQuery",e.caseFilter()),XE(5),Zg(e.userInitials()||"??"),XE(3),Zg(e.userName()),XE(3),Tg("open",e.menuOpen())("isAdmin",e.isAdmin())("isDark",e.isDark())("themeVariant",e.themeVariant())("showTechnical",e.showTechnical())("showToolCalls",e.showToolCalls());}}function Xa(o,t){o&1&&(kf(),vs(0,"svg",35),bg(1,"path",36),fl());}function Za(o,t){if(o&1){let e=dC();vs(0,"button",32),Ag("click",function(){let i=If(e).$implicit,a=mC(4);return wf(a.onCompactNsSelected(i))}),vs(1,"span",33),WC(2),fl(),vs(3,"span",34),WC(4),fl(),eC(5,Xa,2,0,":svg:svg",35),fl();}if(o&2){let e=t.$implicit,n=mC(4);Hg("shell-sidebar__ns-item--active",e.id===n.selectedNamespace()?.id),XE(2),Zg(n.nsInitial(e.name)),XE(2),Zg(e.name),XE(),tC(e.id===n.selectedNamespace()?.id?5:-1);}}function er(o,t){if(o&1){let e=dC();vs(0,"div",52),Ag("click",function(){If(e);let i=mC(3);return wf(i.closeCompactNsMenu())})("keyup.escape",function(){If(e);let i=mC(3);return wf(i.closeCompactNsMenu())}),fl(),vs(1,"div",53),oC(2,Za,6,5,"button",31,On),fl();}if(o&2){let e=mC(3);XE(),Vg("top",e.compactNsMenuTop(),"px")("left",e.compactNsMenuLeft(),"px"),XE(),iC(e.namespaces());}}function tr(o,t){if(o&1){let e=dC();vs(0,"button",51),Ag("click",function(i){If(e);let a=mC(2);return wf(a.onCompactNsBtnClick(i))}),WC(1),fl(),eC(2,er,4,4);}if(o&2){let e=mC(2);Hg("shell-sidebar__compact-ns-btn--open",e.compactNsMenuOpen()),Tg("title",e.selectedNamespace()?.name??"Select namespace"),XE(),yl(" ",e.nsInitial(e.selectedNamespace()?.name)," "),XE(),tC(e.compactNsMenuOpen()?2:-1);}}function nr(o,t){if(o&1){let e=dC();vs(0,"button",57),Ag("click",function(){If(e);let i=mC(3);return wf(i.clearCompactSearch())}),kf(),vs(1,"svg",35),bg(2,"path",58),fl()();}}function or(o,t){if(o&1){let e=dC();vs(0,"div",52),Ag("click",function(){If(e);let i=mC(2);return wf(i.closeCompactSearch())})("keyup.escape",function(){If(e);let i=mC(2);return wf(i.closeCompactSearch())}),fl(),vs(1,"div",54)(2,"input",55,0),Ag("input",function(i){If(e);let a=mC(2);return wf(a.onCompactSearchInput(i.target.value))})("keyup.escape",function(){If(e);let i=mC(2);return wf(i.closeCompactSearch())}),fl(),eC(4,nr,3,0,"button",56),fl();}if(o&2){let e=mC(2);XE(),Vg("top",e.compactSearchTop(),"px")("left",e.compactSearchLeft(),"px"),XE(),Tg("value",e.caseFilter()),XE(2),tC(e.caseFilter()?4:-1);}}function ir(o,t){if(o&1){let e=dC();vs(0,"button",37),Ag("click",function(){If(e);let i=mC();return wf(i.homeClicked.emit())}),bg(1,"img",38),fl(),eC(2,tr,3,5),vs(3,"button",39),Ag("click",function(){If(e);let i=mC();return wf(i.createRequested.emit())}),kf(),vs(4,"svg",40),bg(5,"path",17),fl()(),Ff(),vs(6,"button",41),Ag("click",function(i){If(e);let a=mC();return wf(a.onCompactSearchBtnClick(i))}),kf(),vs(7,"svg",42),bg(8,"circle",43)(9,"path",44),fl()(),eC(10,or,5,6),Ff(),bg(11,"div",45),vs(12,"div",19)(13,"agentos-case-drawer",46),Ag("caseSelected",function(i){If(e);let a=mC();return wf(a.caseSelected.emit(i))})("createRequested",function(){If(e);let i=mC();return wf(i.createRequested.emit())})("deleteRequested",function(i){If(e);let a=mC();return wf(a.deleteRequested.emit(i))})("starToggled",function(i){If(e);let a=mC();return wf(a.starToggled.emit(i))}),fl()(),vs(14,"button",47),Ag("click",function(i){If(e);let a=mC();return wf(a.onCompactUserBtnClick(i))}),WC(15),fl(),vs(16,"agentos-shell-user-menu",48),Ag("navigateTo",function(i){If(e);let a=mC();return wf(a.navigateTo.emit(i))})("themeToggled",function(){If(e);let i=mC();return wf(i.themeToggled.emit())})("themeVariantChanged",function(i){If(e);let a=mC();return wf(a.themeVariantChanged.emit(i))})("logsToggled",function(){If(e);let i=mC();return wf(i.logsToggled.emit())})("toolCallsToggled",function(){If(e);let i=mC();return wf(i.toolCallsToggled.emit())})("closed",function(i){If(e);let a=mC();return wf(a.menuClosed.emit(i))}),fl(),vs(17,"button",49),Ag("click",function(){If(e);let i=mC();return wf(i.toggleCompact())}),kf(),vs(18,"svg",16),bg(19,"path",50),fl()();}if(o&2){let e=mC();XE(2),tC(e.showNsPicker()?2:-1),XE(4),Hg("shell-sidebar__compact-search-btn--active",e.compactSearchOpen()||e.caseFilter()),XE(4),tC(e.compactSearchOpen()?10:-1),XE(3),Tg("cases",e.cases())("activeCaseId",e.activeCaseId())("compact",true)("filterQuery",e.caseFilter()),XE(2),yl(" ",e.userInitials()||"?"," "),XE(),Tg("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 it=class o{brandHovered=false;static COMPACT_WIDTH=64;isCompact=Hi$1(false);caseFilter=Hi$1("");compactMenuTop=Hi$1(0);compactMenuLeft=Hi$1(0);compactSearchOpen=Hi$1(false);compactSearchTop=Hi$1(0);compactSearchLeft=Hi$1(0);compactNsMenuOpen=Hi$1(false);compactNsMenuTop=Hi$1(0);compactNsMenuLeft=Hi$1(0);compactSearchInputRef=vB("compactSearchInput");onCompactSearchBtnClick(t){let e=t.currentTarget.getBoundingClientRect();this.compactSearchTop.set(e.top),this.compactSearchLeft.set(e.right+8),this.compactSearchOpen.update(n=>!n),this.compactSearchOpen()&&setTimeout(()=>this.compactSearchInputRef()?.nativeElement.focus(),0);}onCompactSearchInput(t){this.caseFilter.set(t);}closeCompactSearch(){this.compactSearchOpen.set(false);}clearCompactSearch(){this.caseFilter.set(""),this.compactSearchOpen.set(false);}onCompactNsBtnClick(t){let e=t.currentTarget.getBoundingClientRect();this.compactNsMenuTop.set(e.top),this.compactNsMenuLeft.set(e.right+8),this.compactNsMenuOpen.update(n=>!n);}closeCompactNsMenu(){this.compactNsMenuOpen.set(false);}onCompactNsSelected(t){this.compactNsMenuOpen.set(false),this.namespaceSelected.emit(t);}onCompactUserBtnClick(t){let e=t.currentTarget.getBoundingClientRect();this.compactMenuTop.set(e.bottom),this.compactMenuLeft.set(e.right+8),this.menuToggled.emit(t);}toggleCompact(){this.isCompact.update(t=>!t);}nsInitial(t){return (t??"?").charAt(0).toUpperCase()}effectiveWidth=mT(()=>this.sidebarOpen()?this.isCompact()?o.COMPACT_WIDTH:this.sidebarWidth():0);sidebarWidth=mB.required();sidebarOpen=mB.required();selectedNamespace=mB.required();namespaces=mB.required();showNsPicker=mB.required();nsMenuOpen=mB.required();cases=mB.required();activeCaseId=mB.required();userInitials=mB.required();userName=mB.required();menuOpen=mB.required();isAdmin=mB.required();isDark=mB.required();themeVariant=mB.required();showTechnical=mB.required();showToolCalls=mB.required();collapseRequested=gB();homeClicked=gB();namespaceSelected=gB();nsMenuToggled=gB();nsMenuClosed=gB();caseSelected=gB();createRequested=gB();deleteRequested=gB();starToggled=gB();renameRequested=gB();menuToggled=gB();menuClosed=gB();navigateTo=gB();themeToggled=gB();themeVariantChanged=gB();logsToggled=gB();toolCallsToggled=gB();static \u0275fac=function(e){return new(e||o)};static \u0275cmp=Aw({type:o,selectors:[["agentos-shell-sidebar"]],viewQuery:function(e,n){e&1&&Lg(n.compactSearchInputRef,Wa,5),e&2&&CC();},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",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","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","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&&(vs(0,"div",1),eC(1,Ja,36,22)(2,ir,20,17),fl()),e&2&&(Vg("width",n.effectiveWidth(),"px")("overflow",n.effectiveWidth()===0?"hidden":"visible"),Hg("shell-sidebar--compact",n.isCompact()),XE(),tC(n.isCompact()?2:1));},dependencies:[ot,D,Kn$1],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 ar=(o,t)=>t.id;function rr(o,t){o&1&&(kf(),pl(0,"svg",24),Sg(1,"path",25),hl());}function sr(o,t){if(o&1){let e=dC();pl(0,"button",21),Rg("click",function(){let i=If(e).$implicit,a=mC(2);return wf(a.namespaceSelected.emit(i))}),pl(1,"span",22),WC(2),hl(),pl(3,"span",23),WC(4),hl(),eC(5,rr,2,0,":svg:svg",24),hl();}if(o&2){let e=t.$implicit,n=mC(2);Hg("shell-topbar-mobile__ns-item--active",e.id===n.selectedNamespace()?.id),XE(2),Zg(e.name.charAt(0).toUpperCase()),XE(2),Zg(e.name),XE(),tC(e.id===n.selectedNamespace()?.id?5:-1);}}function lr(o,t){if(o&1){let e=dC();pl(0,"div",18),Rg("click",function(i){If(e);let a=mC();return wf(a.nsMenuClosed.emit(i))})("keyup.escape",function(i){If(e);let a=mC();return wf(a.nsMenuClosed.emit(i))}),hl(),pl(1,"div",19),oC(2,sr,6,5,"button",20,ar),hl();}if(o&2){let e=mC();XE(2),iC(e.namespaces());}}var at=class o{selectedNamespace=mB.required();namespaces=mB.required();nsMenuOpen=mB.required();drawerToggled=gB();createRequested=gB();namespaceSelected=gB();nsMenuToggled=gB();nsMenuClosed=gB();static \u0275fac=function(e){return new(e||o)};static \u0275cmp=Aw({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&&(pl(0,"div",0)(1,"button",1),Rg("click",function(){return n.drawerToggled.emit()}),kf(),pl(2,"svg",2),Sg(3,"line",3)(4,"line",4)(5,"line",5),hl()(),Ff(),Sg(6,"img",6),pl(7,"div",7)(8,"button",8),Rg("click",function(a){return n.nsMenuToggled.emit(a)}),pl(9,"span",9),WC(10),hl(),pl(11,"span",10),WC(12),hl(),kf(),pl(13,"svg",11),Sg(14,"path",12),hl()(),eC(15,lr,4,0),hl(),Ff(),Sg(16,"span",13),pl(17,"button",14),Rg("click",function(){return n.createRequested.emit()}),kf(),pl(18,"svg",15),Sg(19,"path",16)(20,"path",17),hl()()()),e&2&&(XE(8),Hg("shell-topbar-mobile__ns-btn--open",n.nsMenuOpen()),XE(2),Zg((n.selectedNamespace()?.name??"N").charAt(0).toUpperCase()),XE(2),Zg(n.selectedNamespace()?.name??""),XE(3),tC(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 cr=(o,t)=>t.label,dr=(o,t)=>t.id;function mr(o,t){if(o&1){let e=dC();vs(0,"div",30)(1,"button",32),Ag("click",function(i){If(e);let a=mC().$implicit,h=mC(3);return wf(h.onStarToggle(i,a))}),kf(),vs(2,"svg",33),bg(3,"path",34),fl()(),Ff(),vs(4,"button",35),Ag("click",function(i){If(e);let a=mC().$implicit,h=mC(3);return wf(h.onDeleteRequest(i,a.id??""))}),kf(),vs(5,"svg",36),bg(6,"path",37)(7,"path",38)(8,"path",39)(9,"line",40)(10,"line",41),fl()()();}if(o&2){let e=mC().$implicit;XE(),Hg("mobile-drawer__case-btn--active",!!e.favorite||!!e.starred),XE(),Cg("fill",e.favorite||e.starred?"currentColor":"none");}}function pr(o,t){if(o&1){let e=dC();vs(0,"div",31)(1,"button",42),Ag("click",function(i){If(e);let a=mC().$implicit,h=mC(3);return wf(h.onDeleteConfirm(i,a.id))}),kf(),vs(2,"svg",43),bg(3,"path",44),fl()(),Ff(),vs(4,"button",45),Ag("click",function(i){If(e);let a=mC(4);return wf(a.onDeleteCancel(i))}),kf(),vs(5,"svg",46),bg(6,"path",7)(7,"path",8),fl()()();}}function _r(o,t){if(o&1){let e=dC();vs(0,"button",27),Ag("click",function(){let i=If(e).$implicit,a=mC(3);return wf(a.onCaseSelect(i.id??""))}),bg(1,"agentos-case-status-glyph",28),vs(2,"span",29),WC(3),fl(),eC(4,mr,11,3,"div",30)(5,pr,8,0,"div",31),fl();}if(o&2){let e=t.$implicit,n=mC(3);Hg("mobile-drawer__case-row--active",e.id===n.activeCaseId())("mobile-drawer__case-row--confirming",n.confirmingDeleteId()===e.id),XE(),Tg("status",e.status)("size",15),XE(2),Zg(e.title??e.id),XE(),tC(n.confirmingDeleteId()!==e.id?4:5);}}function ur(o,t){if(o&1&&(vs(0,"div",15)(1,"div",25),WC(2),fl(),oC(3,_r,6,8,"button",26,dr),fl()),o&2){let e=t.$implicit;XE(2),Zg(e.label),XE(),iC(e.cases);}}function gr(o,t){o&1&&(vs(0,"p",16),WC(1,"No cases yet."),fl());}function hr(o,t){if(o&1){let e=dC();vs(0,"button",50),Ag("click",function(){If(e);let i=mC(3);return wf(i.onMenuNavigate("/agentos/admin"))}),kf(),vs(1,"svg",51),bg(2,"path",66),fl(),WC(3," Administration "),fl();}}function Cr(o,t){o&1&&(kf(),vs(0,"svg",51),bg(1,"path",67),fl());}function fr(o,t){o&1&&(kf(),vs(0,"svg",51),bg(1,"circle",68)(2,"path",69)(3,"path",70)(4,"path",71)(5,"path",72)(6,"path",73)(7,"path",74)(8,"path",75)(9,"path",76),fl());}function br(o,t){if(o&1){let e=dC();vs(0,"button",47),Ag("click",function(){If(e);let i=mC(2);return wf(i.userMenuOpen.set(false))}),fl(),vs(1,"div",48)(2,"div",49)(3,"button",50),Ag("click",function(){If(e);let i=mC(2);return wf(i.onMenuNavigate("/agentos/profile"))}),kf(),vs(4,"svg",51),bg(5,"circle",52)(6,"path",53),fl(),WC(7," User settings "),fl(),Ff(),vs(8,"button",50),Ag("click",function(){If(e);let i=mC(2);return wf(i.onMenuNavigate("/agentos/namespaces"))}),kf(),vs(9,"svg",51),bg(10,"rect",54)(11,"rect",55)(12,"rect",56)(13,"rect",57),fl(),WC(14," Namespaces "),fl(),eC(15,hr,4,0,"button",58),Ff(),vs(16,"button",50),Ag("click",function(){If(e);let i=mC(2);return wf(i.onMenuLogsToggle())}),kf(),vs(17,"svg",51),bg(18,"polyline",59)(19,"line",60),fl(),WC(20," Technical logs "),fl(),Ff(),vs(21,"button",50),Ag("click",function(){If(e);let i=mC(2);return wf(i.onMenuToolCallsToggle())}),kf(),vs(22,"svg",51),bg(23,"path",61)(24,"path",62),fl(),WC(25," Tool calls "),Ff(),bg(26,"span",63),vs(27,"span",64),WC(28),fl()()(),bg(29,"div",65),vs(30,"div",49)(31,"button",50),Ag("click",function(){If(e);let i=mC(2);return wf(i.onMenuThemeToggle())}),eC(32,Cr,2,0,":svg:svg",51)(33,fr,10,0,":svg:svg",51),WC(34," Dark mode "),bg(35,"span",63),vs(36,"span",64),WC(37),fl()()()();}if(o&2){let e=mC(2);XE(15),tC(e.isAdmin()?15:-1),XE(13),Zg(e.showToolCalls()?"On":"Off"),XE(4),tC(e.isDark()?33:32),XE(5),Zg(e.isDark()?"On":"Off");}}function xr(o,t){if(o&1){let e=dC();vs(0,"div",0)(1,"button",1),Ag("click",function(){If(e);let i=mC();return wf(i.closed.emit())}),fl(),vs(2,"div",2),Ag("click",function(i){return i.stopPropagation()})("keydown",function(i){return i.stopPropagation()}),vs(3,"div",3)(4,"span",4),WC(5,"Cases"),fl(),vs(6,"button",5),Ag("click",function(){If(e);let i=mC();return wf(i.closed.emit())}),kf(),vs(7,"svg",6),bg(8,"path",7)(9,"path",8),fl()()(),Ff(),vs(10,"div",9),kf(),vs(11,"svg",10),bg(12,"circle",11)(13,"path",12),fl(),Ff(),vs(14,"input",13),Ag("input",function(i){If(e);let a=mC();return wf(a.filterQuery.set(i.target.value))}),fl()(),vs(15,"div",14),oC(16,ur,5,1,"div",15,cr),eC(18,gr,2,0,"p",16),fl(),vs(19,"div",17),eC(20,br,38,4),vs(21,"button",18),Ag("click",function(){If(e);let i=mC();return wf(i.userMenuOpen.set(!i.userMenuOpen()))}),vs(22,"span",19),WC(23),fl(),vs(24,"span",20)(25,"span",21),WC(26),fl()(),kf(),vs(27,"svg",22),bg(28,"path",23)(29,"path",24),fl()()()()();}if(o&2){let e=mC();XE(14),Tg("value",e.filterQuery()),XE(2),iC(e.groupedCases()),XE(2),tC(e.groupedCases().length===0?18:-1),XE(2),tC(e.userMenuOpen()?20:-1),XE(3),Zg(e.userInitials()),XE(3),Zg(e.userName());}}var rt=class o{open=mB.required();cases=mB.required();activeCaseId=mB.required();userInitials=mB.required();userName=mB.required();isAdmin=mB.required();isDark=mB.required();showToolCalls=mB.required();filterQuery=Hi$1("");confirmingDeleteId=Hi$1(null);userMenuOpen=Hi$1(false);groupedCases=mT(()=>{let t=this.filterQuery().toLowerCase(),e=this.cases().filter(O=>!t||(O.title??O.id??"").toLowerCase().includes(t)),n=O=>!!O.favorite||!!O.starred,i=e.filter(O=>n(O)),a=e.filter(O=>!n(O)&&this.isToday(O)),h=e.filter(O=>!n(O)&&this.isYesterday(O)),T=e.filter(O=>!n(O)&&this.isPrev7(O)),f=e.filter(O=>!n(O)&&!this.isToday(O)&&!this.isYesterday(O)&&!this.isPrev7(O)),k=[];return i.length&&k.push({label:"Pinned",cases:i}),a.length&&k.push({label:"Today",cases:a}),h.length&&k.push({label:"Yesterday",cases:h}),T.length&&k.push({label:"Previous 7 days",cases:T}),f.length&&k.push({label:"Older",cases:f}),k});closed=gB();caseSelected=gB();starToggled=gB();deleteRequested=gB();navigateTo=gB();themeToggled=gB();logsToggled=gB();toolCallsToggled=gB();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=Aw({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:{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","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","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&&eC(0,xr,30,5,"div",0),e&2&&tC(n.open()?0:-1);},dependencies:[me],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 vr(o,t){if(o&1){let e=dC();vs(0,"div",9),Ag("mousedown",function(i){If(e);let a=mC();return wf(a.onResizeStart(i))}),fl();}}function yr(o,t){if(o&1){let e=dC();vs(0,"button",10),Ag("click",function(){If(e);let i=mC();return wf(i.expandSidebar())}),vs(1,"span",11),WC(2,"menu"),fl()();}}function wr(o,t){if(o&1){let e=dC();vs(0,"agentos-case-chat",12),Ag("starToggled",function(i){If(e);let a=mC();return wf(a.onStarToggled(i))})("deleteRequested",function(i){If(e);let a=mC();return wf(a.onDeleteRequested(i))})("logsToggled",function(){If(e);let i=mC();return wf(i.onMenuToggleLogs())}),fl();}if(o&2){let e=mC();Tg("showTechnicalOverride",e.showTechnical())("showToolCallsOverride",e.showToolCalls());}}function Sr(o,t){if(o&1&&bg(0,"agentos-case-home",8),o&2){let e=mC();Tg("namespaceName",e.selectedNamespace()?.name??null);}}var In=class o{router=g(G$5);route=g(V$2);namespaceController=g(G$6);themePort=g(I$1);userState=g(u$1);caseState=g(pe);namespaceState=g(E);destroyRef=g(we$1);isAdmin=mT(()=>this.userState.currentUser()?.isAdmin===true);userInitials=mT(()=>{let t=this.userState.currentUser();if(!t)return "";let e=t.firstname?.[0]??"",n=t.lastname?.[0]??"";return (e+n).toUpperCase()||t.email?.[0]?.toUpperCase()||""});userName=mT(()=>{let t=this.userState.currentUser();return t&&([t.firstname,t.lastname].filter(Boolean).join(" ")||t.email)||""});isDark=mT(()=>{let{mode:t}=this.themePort.theme();return t==="dark"?true:t==="light"?false:typeof document<"u"&&document.documentElement.getAttribute("data-theme")?.includes("dark")===true});themeVariant=mT(()=>this.themePort.theme().variant);sidebarWidth=Hi$1(Number(localStorage.getItem("agentos.sidebar.width"))||400);menuOpen=Hi$1(false);nsMenuOpen=Hi$1(false);sidebarOpen=Hi$1(localStorage.getItem("agentos.sidebar.open")!=="false");mobileDrawerOpen=Hi$1(false);static SHOW_TECHNICAL_KEY="agentos.case-chat.showTechnical";static SHOW_TOOL_CALLS_KEY="agentos.case-chat.showToolCalls";showTechnical=Hi$1(localStorage.getItem(o.SHOW_TECHNICAL_KEY)==="true");showToolCalls=Hi$1(localStorage.getItem(o.SHOW_TOOL_CALLS_KEY)!=="false");showNsPicker=mT(()=>this.isAdmin()||this.namespaces().length>1);namespaceId$=this.route.queryParams.pipe(ue$3(t=>t.ns??null));_namespaceIdRaw=F$1(this.namespaceId$);namespaceId=mT(()=>this._namespaceIdRaw()??null);_activeCaseIdRaw=F$1(this.route.queryParams.pipe(ue$3(t=>t.case??null)));activeCaseId=mT(()=>this._activeCaseIdRaw()??null);cases=this.caseState.cases;namespaces=F$1(this.namespaceController.listAllNamespace(),{initialValue:[]});selectedNamespace=Hi$1(null);constructor(){this.userState.currentUser()||this.userState.loadMe().pipe(U$2(this.destroyRef)).subscribe(),T(this.sidebarWidth).pipe(wd(1),Id(300),U$2(this.destroyRef)).subscribe(t=>localStorage.setItem("agentos.sidebar.width",String(t))),Hf(()=>{let t=this.namespaces(),e=this.namespaceId();if(t.length)if(e){let n=t.find(i=>i.id===e);this.selectedNamespace.set(n??t[0]??null),this.namespaceState.selectNamespace(e);}else {let n=t[0];n?.id&&this.router.navigate(["/agentos/home"],{queryParams:{ns:n.id},replaceUrl:true});}}),Hf(()=>{let t=this.namespaceId();t&&this.caseState.loadCases(t);});}onNamespaceSelected(t){this.selectedNamespace.set(t),this.nsMenuOpen.set(false),this.router.navigate(["/agentos/home"],{queryParams:{ns:t.id}});}toggleNsMenu(t){t?.stopPropagation(),t?.preventDefault(),this.nsMenuOpen.update(e=>!e);}closeNsMenu(t){t.stopPropagation(),this.nsMenuOpen.set(false);}onCaseSelected(t){this.router.navigate(["/agentos/home"],{queryParams:{ns:this.namespaceId(),case:t}});}onCreateRequested(){this.router.navigate(["/agentos/home"],{queryParams:{ns:this.namespaceId()}});}onDeleteRequested(t){this.caseState.deleteCase(t).pipe(U$2(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$2(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$2(this.destroyRef)).subscribe({error:e=>{console.error(`[CaseShell] Failed to rename case ${t.id}:`,e),alert("Could not rename the case. 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(Qt);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 h=n,T=k=>{let O=k.clientX-e;h=Math.max(200,Math.min(i,n+O)),a&&(a.style.width=`${h}px`);},f=()=>{document.removeEventListener("mousemove",T),document.removeEventListener("mouseup",f),document.body.style.userSelect="",document.body.style.cursor="",a&&(a.style.transition=""),this.sidebarWidth.set(h);};document.addEventListener("mousemove",T),document.addEventListener("mouseup",f);}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=Aw({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","starToggled","deleteRequested","navigateTo","themeToggled","logsToggled","toolCallsToggled","open","cases","activeCaseId","userInitials","userName","isAdmin","isDark","showToolCalls"],[3,"collapseRequested","homeClicked","namespaceSelected","nsMenuToggled","nsMenuClosed","caseSelected","createRequested","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,"showTechnicalOverride","showToolCallsOverride"],[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,"starToggled","deleteRequested","logsToggled","showTechnicalOverride","showToolCallsOverride"]],template:function(e,n){e&1&&(vs(0,"div",0)(1,"agentos-shell-topbar-mobile",1),Ag("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)}),fl(),vs(2,"agentos-shell-case-switcher-mobile",2),Ag("closed",function(){return n.mobileDrawerOpen.set(false)})("caseSelected",function(a){return n.onMobileCaseSelect(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()}),fl(),vs(3,"agentos-shell-sidebar",3),Ag("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()})("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()}),fl(),eC(4,vr,1,0,"div",4),eC(5,yr,3,0,"button",5),vs(6,"main",6),eC(7,wr,1,2,"agentos-case-chat",7)(8,Sr,1,1,"agentos-case-home",8),fl()()),e&2&&(XE(),Tg("selectedNamespace",n.selectedNamespace())("namespaces",n.namespaces())("nsMenuOpen",n.nsMenuOpen()),XE(),Tg("open",n.mobileDrawerOpen())("cases",n.cases())("activeCaseId",n.activeCaseId())("userInitials",n.userInitials())("userName",n.userName())("isAdmin",n.isAdmin())("isDark",n.isDark())("showToolCalls",n.showToolCalls()),XE(),Tg("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()),XE(),tC(n.sidebarOpen()?4:-1),XE(),tC(n.sidebarOpen()?-1:5),XE(2),tC(n.activeCaseId()?7:8));},dependencies:[et,tt,it,at,rt],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%] > *[_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$1(n,e){if(n&1&&WC(0),n&2){let o=mC();yl(" ",o.userInitials()," ");}}function V$1(n,e){n&1&&WC(0," \u2022\u2022\u2022 ");}var h=class n{router=g(G$5);userState=g(u$1);themePort=g(I$1);namespaceState=g(E);menuOpen=Hi$1(false);isAdmin=mT(()=>this.userState.currentUser()?.isAdmin===true);isDark=mT(()=>{let{mode:e}=this.themePort.theme();return e==="dark"?true:e==="light"?false:typeof document<"u"&&document.documentElement.getAttribute("data-theme")?.includes("dark")===true});themeVariant=mT(()=>this.themePort.theme().variant);userInitials=mT(()=>{let e=this.userState.currentUser();if(!e)return "";let o=e.firstname?.[0]??"",t=e.lastname?.[0]??"";return (o+t).toUpperCase()||e.email?.[0]?.toUpperCase()||""});showTechnical=Hi$1(false);showToolCalls=Hi$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=Aw({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&&(vs(0,"div",0)(1,"button",1),Ag("click",function(){return t.navigateHome()}),bg(2,"img",2),vs(3,"span",3),WC(4,"Coday"),fl()(),vs(5,"div",4)(6,"button",5),Ag("click",function(l){return t.toggleMenu(l)}),eC(7,N$1,1,1)(8,V$1,1,0),fl(),vs(9,"agentos-shell-user-menu",6),Ag("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)}),fl()()()),o&2&&(XE(7),tC(t.userInitials()?7:8),XE(2),Tg("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=Aw({type:n,selectors:[["agentos-layout"]],decls:4,vars:0,consts:[[1,"layout"],[1,"layout__content"]],template:function(o,t){o&1&&(vs(0,"div",0),bg(1,"agentos-shell-topbar"),vs(2,"main",1),bg(3,"router-outlet"),fl()());},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 Ge=[{path:"oauth/callback",loadComponent:()=>import('./chunk-ZTE9Vro-.js').then(e=>e.OAuthCallbackComponent)},{path:"",loadComponent:()=>Promise.resolve().then(function(){return chunkB33G64X6}).then(e=>e.AgentosShellComponent),children:[{path:"home",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunkGVRB3VE5}).then(e=>e.CaseShellComponent)},{path:"",loadComponent:()=>Promise.resolve().then(function(){return chunkQMF2N7N2}).then(e=>e.LayoutComponent),children:[{path:"namespaces/new",canActivate:[t],loadComponent:()=>import('./chunk-spTKcuel.js').then(e=>e.NamespaceFormComponent)},{path:"namespaces/:namespaceId/edit",canActivate:[t],loadComponent:()=>import('./chunk-spTKcuel.js').then(e=>e.NamespaceFormComponent)},{path:"namespaces",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunkU7CIICEM}).then(e=>e.NamespaceListComponent)},{path:"admin",canActivate:[t],loadComponent:()=>import('./chunk-SiAnBXor.js').then(e=>e.AdminHomeComponent)},{path:"admin/users/new",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunkUQEWD7KO}).then(e=>e.UserFormComponent)},{path:"admin/users/:userId/edit",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunkUQEWD7KO}).then(e=>e.UserFormComponent)},{path:"admin/users",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunkZ6YVV47V}).then(e=>e.AdminUsersGroupsComponent)},{path:"admin/integration-configs/new",canActivate:[t],loadComponent:()=>import('./chunk-Balbg-lh.js').then(e=>e.IntegrationFormComponent)},{path:"admin/integration-configs/:integrationId/edit",canActivate:[t],loadComponent:()=>import('./chunk-Balbg-lh.js').then(e=>e.IntegrationFormComponent)},{path:"admin/integration-configs",canActivate:[t],loadComponent:()=>import('./chunk-BUhtdVBd.js').then(e=>e.PlatformIntegrationConfigsComponent)},{path:"admin/scheduled-prompts/new",canActivate:[t],loadComponent:()=>import('./chunk-D5NtIZG6.js').then(e=>e.ScheduledPromptFormComponent)},{path:"admin/scheduled-prompts/:scheduledPromptId/edit",canActivate:[t],loadComponent:()=>import('./chunk-D5NtIZG6.js').then(e=>e.ScheduledPromptFormComponent)},{path:"admin/scheduled-prompts",canActivate:[t],loadComponent:()=>import('./chunk-B4CKPT8-.js').then(e=>e.PlatformScheduledPromptsComponent)},{path:"admin/prompts/new",canActivate:[t],loadComponent:()=>import('./chunk-BXQCdGUa.js').then(e=>e.PromptFormComponent)},{path:"admin/prompts/:promptId/edit",canActivate:[t],loadComponent:()=>import('./chunk-BXQCdGUa.js').then(e=>e.PromptFormComponent)},{path:"admin/prompts",canActivate:[t],loadComponent:()=>import('./chunk-CRuFXEnP.js').then(e=>e.PlatformPromptsComponent)},{path:"admin/ai-providers/new",canActivate:[t],loadComponent:()=>import('./chunk-CcTN_TUb.js').then(e=>e.AiProviderFormComponent)},{path:"admin/ai-providers/:aiProviderId/edit",canActivate:[t],loadComponent:()=>import('./chunk-CcTN_TUb.js').then(e=>e.AiProviderFormComponent)},{path:"admin/ai-providers",canActivate:[t],loadComponent:()=>import('./chunk-B4iDNUj6.js').then(e=>e.PlatformAiProvidersComponent)},{path:"admin/auth-settings/new",canActivate:[t],loadComponent:()=>import('./chunk-BIEjPnD4.js').then(e=>e.AuthSettingFormComponent)},{path:"admin/auth-settings/:authSettingId/edit",canActivate:[t],loadComponent:()=>import('./chunk-BIEjPnD4.js').then(e=>e.AuthSettingFormComponent)},{path:"admin/auth-settings",canActivate:[t],loadComponent:()=>import('./chunk-Cdu5JsaS.js').then(e=>e.PlatformAuthSettingsComponent)},{path:"admin/ai-models/new",canActivate:[t],loadComponent:()=>import('./chunk-CeRWUb5g.js').then(e=>e.AiModelFormComponent)},{path:"admin/ai-models/:modelId/edit",canActivate:[t],loadComponent:()=>import('./chunk-CeRWUb5g.js').then(e=>e.AiModelFormComponent)},{path:"admin/ai-models",canActivate:[t],loadComponent:()=>import('./chunk-DeVzkEKK.js').then(e=>e.PlatformAiModelsComponent)},{path:"admin/agent-configs/new",canActivate:[t],loadComponent:()=>import('./chunk-CFvRU8Pw.js').then(e=>e.AgentConfigFormComponent)},{path:"admin/agent-configs/:agentConfigId/edit",canActivate:[t],loadComponent:()=>import('./chunk-CFvRU8Pw.js').then(e=>e.AgentConfigFormComponent)},{path:"admin/agent-configs/:agentConfigId/inspect",canActivate:[t],loadComponent:()=>import('./chunk-BWc0GaFw.js').then(e=>e.AgentConfigInspectComponent)},{path:"admin/agent-configs",canActivate:[t],loadComponent:()=>import('./chunk-n_Kgbuh3.js').then(e=>e.PlatformAgentConfigsComponent)},{path:"me",canActivate:[t],loadComponent:()=>import('./chunk-BdWvjltK.js').then(e=>e.UserProfileComponent)},{path:"user",canActivate:[t],loadComponent:()=>import('./chunk-BdWvjltK.js').then(e=>e.UserProfileComponent)},{path:":namespaceId/auth-settings/new",canActivate:[t],loadComponent:()=>import('./chunk-BIEjPnD4.js').then(e=>e.AuthSettingFormComponent)},{path:":namespaceId/auth-settings/:authSettingId/edit",canActivate:[t],loadComponent:()=>import('./chunk-BIEjPnD4.js').then(e=>e.AuthSettingFormComponent)},{path:":namespaceId/auth-settings",canActivate:[t],loadComponent:()=>import('./chunk-SlWicxh3.js').then(e=>e.AuthSettingsAllScopesComponent)},{path:":namespaceId/integrations/new",canActivate:[t],loadComponent:()=>import('./chunk-Balbg-lh.js').then(e=>e.IntegrationFormComponent)},{path:":namespaceId/integrations/:integrationId/edit",canActivate:[t],loadComponent:()=>import('./chunk-Balbg-lh.js').then(e=>e.IntegrationFormComponent)},{path:":namespaceId/integrations",canActivate:[t],loadComponent:()=>import('./chunk-C_7QzTv7.js').then(e=>e.IntegrationsAllScopesComponent)},{path:":namespaceId/ai-providers/new",canActivate:[t],loadComponent:()=>import('./chunk-CcTN_TUb.js').then(e=>e.AiProviderFormComponent)},{path:":namespaceId/ai-providers/:aiProviderId/edit",canActivate:[t],loadComponent:()=>import('./chunk-CcTN_TUb.js').then(e=>e.AiProviderFormComponent)},{path:":namespaceId/ai-providers",canActivate:[t],loadComponent:()=>import('./chunk-G4MCwSm-.js').then(e=>e.AiProvidersAllScopesComponent)},{path:":namespaceId/ai-models/new",canActivate:[t],loadComponent:()=>import('./chunk-CeRWUb5g.js').then(e=>e.AiModelFormComponent)},{path:":namespaceId/ai-models/:modelId/edit",canActivate:[t],loadComponent:()=>import('./chunk-CeRWUb5g.js').then(e=>e.AiModelFormComponent)},{path:":namespaceId/ai-models",canActivate:[t],loadComponent:()=>import('./chunk-Bh7gCjj4.js').then(e=>e.NamespaceAiModelsComponent)},{path:":namespaceId/scheduled-prompts/new",canActivate:[t],loadComponent:()=>import('./chunk-D5NtIZG6.js').then(e=>e.ScheduledPromptFormComponent)},{path:":namespaceId/scheduled-prompts/:scheduledPromptId/edit",canActivate:[t],loadComponent:()=>import('./chunk-D5NtIZG6.js').then(e=>e.ScheduledPromptFormComponent)},{path:":namespaceId/scheduled-prompts",canActivate:[t],loadComponent:()=>import('./chunk-BemBoNs5.js').then(e=>e.ScheduledPromptListComponent)},{path:":namespaceId/prompts/new",canActivate:[t],loadComponent:()=>import('./chunk-BXQCdGUa.js').then(e=>e.PromptFormComponent)},{path:":namespaceId/prompts/:promptId/edit",canActivate:[t],loadComponent:()=>import('./chunk-BXQCdGUa.js').then(e=>e.PromptFormComponent)},{path:":namespaceId/prompts",canActivate:[t],loadComponent:()=>import('./chunk-BpA60NxS.js').then(e=>e.NamespacePromptsComponent)},{path:":namespaceId/agent-configs/new",canActivate:[t],loadComponent:()=>import('./chunk-CFvRU8Pw.js').then(e=>e.AgentConfigFormComponent)},{path:":namespaceId/agent-configs/:agentConfigId/edit",canActivate:[t],loadComponent:()=>import('./chunk-CFvRU8Pw.js').then(e=>e.AgentConfigFormComponent)},{path:":namespaceId/agent-configs/:agentConfigId/inspect",canActivate:[t],loadComponent:()=>import('./chunk-BWc0GaFw.js').then(e=>e.AgentConfigInspectComponent)},{path:":namespaceId/agent-configs",canActivate:[t],loadComponent:()=>import('./chunk-D0tFEYpV.js').then(e=>e.NamespaceAgentConfigsComponent)},{path:":namespaceId/user-groups/new",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunk5Y7FEKBQ}).then(e=>e.UserGroupFormComponent)},{path:":namespaceId/user-groups/:userGroupId/edit",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunk5Y7FEKBQ}).then(e=>e.UserGroupFormComponent)},{path:":namespaceId/user-groups",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunkPI75WNU2}).then(e=>e.NamespaceUserGroupsComponent)},{path:":namespaceId/members",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunk6HIOBIUY}).then(e=>e.NamespaceMembersComponent)},{path:"",redirectTo:"namespaces",pathMatch:"full"}]}]}];function B(e,i){e&1&&Sg(0,"span",1);}function R(e,i){e&1&&Sg(0,"span",2);}function j(e,i){e&1&&Sg(0,"span",3);}var u=class e{pluginService=g(X$3);online=Hi$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=Aw({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&&(pl(0,"div",0),eC(1,B,1,0,"span",1)(2,R,1,0,"span",2)(3,j,1,0,"span",3),hl()),a&2){let d;XE(),tC((d=m.online())===true?1:d===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 G(e,i){if(e&1){let a=dC();vs(0,"button",9),Ag("click",function(){If(a);let d=mC();return wf(d.navigateToAdmin())}),vs(1,"span",10),WC(2,"\u2699\uFE0F"),fl()();}}function L(e,i){if(e&1&&(vs(0,"span",7),WC(1),fl()),e&2){let a=mC();XE(),Zg(a.userInitials);}}function V(e,i){e&1&&(vs(0,"span",8),WC(1,"\u25EF"),fl());}var N=class e{router=g(G$5);userState=g(u$1);destroyRef=g(we$1);currentUser=this.userState.currentUser;navigateHome(){this.router.navigate(["/agentos/home"]);}isAdmin=mT(()=>this.userState.currentUser()?.isAdmin===true);navigateToAdmin(){this.router.navigate(["/agentos/admin"]);}ngOnInit(){this.currentUser()||this.userState.loadMe().pipe(U$2(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=Aw({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&&(vs(0,"header",0)(1,"button",1),Ag("click",function(){return m.navigateHome()}),bg(2,"img",2),vs(3,"span",3),WC(4,"Coday"),fl()(),vs(5,"nav",4),bg(6,"agentos-backend-status"),eC(7,G,3,0,"button",5),vs(8,"button",6),Ag("click",function(){return m.toggleProfile()}),eC(9,L,2,1,"span",7)(10,V,2,0,"span",8),fl()()()),a&2&&(XE(7),tC(m.isAdmin()?7:-1),XE(),Hg("header__user-btn--active",m.isOnProfilePage),Tg("title",m.isOnProfilePage?"Back":"My profile"),XE(),tC(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&&(vs(0,"p",11),WC(1," Last action: "),vs(2,"strong"),WC(3),fl()()),e&2){let a=mC();XE(3),Zg(a.lastAction());}}var z=class e{lastAction=Hi$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=Aw({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&&(vs(0,"div",0)(1,"div",1)(2,"div",2),WC(3,"AgentOS UI"),fl(),vs(4,"h1"),WC(5,"Hello AgentOS"),fl(),vs(6,"p"),WC(7," This component lives in "),vs(8,"code"),WC(9,"libs/agentos-ui"),fl(),WC(10," \u2014 isolated from Coday internals, ready to be published as "),vs(11,"code"),WC(12,"@whoz-oss/agentos-ui"),fl(),WC(13,". "),fl(),bg(14,"agentos-backend-status"),vs(15,"ul",3)(16,"li"),WC(17,"\u2726 No imports from Coday app"),fl(),vs(18,"li"),WC(19,"\u2726 CSS custom properties as host contract"),fl(),vs(20,"li"),WC(21,"\u2726 Standalone Angular components"),fl(),vs(22,"li"),WC(23,"\u2726 Signals-first reactive state"),fl()(),vs(24,"div",4)(25,"p",5),WC(26,"ds-icon-button from "),vs(27,"code"),WC(28,"@whoz-oss/design-system"),fl()(),vs(29,"div",6)(30,"ds-icon-button",7),Ag("action",function(){return m.onSend()}),fl(),vs(31,"ds-icon-button",8),Ag("action",function(){return m.onStop()}),fl(),vs(32,"ds-icon-button",9),Ag("action",function(){return m.onAttach()}),fl(),vs(33,"ds-icon-button",10),Ag("action",function(){return m.onAttach()}),fl()(),eC(34,W,4,1,"p",11),fl()()()),a&2&&(XE(33),Tg("disabled",true),XE(),tC(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 chunkKYMWLR4Z=/*#__PURE__*/Object.freeze({__proto__:null,AGENTOS_ROUTES:Ge,ActionCardChipsDirective:h$2,ActionCardComponent:B$1,AdminUsersGroupsComponent:Z,AgentosShellComponent:l$1,AgentosThemeService:m$1,AgentosUserPreferencesService:o,BackendStatusComponent:u,CaseChatComponent:et,CaseDrawerComponent:ot,CaseHomeComponent:tt,CaseItemComponent:nt,CaseShellComponent:In,ENTER_KEY_BEHAVIORS:l,ExchangeContentViewerComponent:Qe,ExchangeDrawerComponent:Ge$1,ExchangeFileListComponent:We,ExchangeItemComponent:fe,ExchangeShellComponent:Ke,ExchangeStateService:re,HeaderComponent:N,HelloAgentosComponent:z,LayoutComponent:x,MAX_VIEWABLE_SIZE:Xn,MarkdownPipe:d$1,NamespaceItemComponent:M,NamespaceListComponent:W$1,NamespaceMemberStateService:S,NamespaceMembersComponent:H$2,NamespaceSelectComponent:w,NamespaceUserGroupsComponent:d$3,THEME_MODES:l$2,THEME_PORT:I$1,THEME_VARIANTS:p$1,USER_PREFERENCES_PORT:f,UserAdminStateService:c$1,UserFormComponent:$,UserGroupFormComponent:le$2,UserGroupItemComponent:D$1,UserGroupListComponent:te$3,UserGroupStateService:m$3,UserItemComponent:I$2,UserListComponent:k,UserStateService:u$1,agentosReadyGuard:t,canViewFile:fn,detectFormat:Cn,exchangeMutationScope:xn,formatDate:hn,formatSize:gn,getFileIcon:je,isFormatViewable:eo,isViewable:to,reindentJson:bn});var chunkB33G64X6=/*#__PURE__*/Object.freeze({__proto__:null,AgentosShellComponent:l$1});var chunkGVRB3VE5=/*#__PURE__*/Object.freeze({__proto__:null,CaseShellComponent:In});var chunkQMF2N7N2=/*#__PURE__*/Object.freeze({__proto__:null,LayoutComponent:x});var chunkU7CIICEM=/*#__PURE__*/Object.freeze({__proto__:null,NamespaceListComponent:W$1});var chunkUQEWD7KO=/*#__PURE__*/Object.freeze({__proto__:null,UserFormComponent:$});var chunkZ6YVV47V=/*#__PURE__*/Object.freeze({__proto__:null,AdminUsersGroupsComponent:Z});var chunk5Y7FEKBQ=/*#__PURE__*/Object.freeze({__proto__:null,UserGroupFormComponent:le$2});var chunkPI75WNU2=/*#__PURE__*/Object.freeze({__proto__:null,NamespaceUserGroupsComponent:d$3});var chunk6HIOBIUY=/*#__PURE__*/Object.freeze({__proto__:null,NamespaceMembersComponent:H$2});export{B$1 as B,I$1 as I,chunkKYMWLR4Z as c,d$1 as d,f,m,p,u$1 as u};
|
|
9
|
+
${h}`:h;}if(yield zy(this.http.post(`${this.config.basePath}/api/cases/${n}/messages`,{content:i,userId:"default-user"})),this.abandoned(e)){this.isCreating.set(!1);return}this.attachments.reset(),this.inputValue.set(""),this.pendingCaseId.set(null),this.router.navigate(["/agentos/home"],{queryParams:{ns:e,case:n}});}catch(n){console.error("[CaseHome] Failed to create case or send first message",n),this.isCreating.set(false);}})}abandoned(t){return this.destroyed||this.namespaceId!==t}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=Aw({type:o,selectors:[["agentos-case-home"]],viewQuery:function(e,n){e&1&&Lg(n.composerInput,ma,5)(n.promptAutocompleteRef,ie,5)(n.agentAutocompleteRef,ae,5),e&2&&CC(3);},inputs:{namespaceName:[1,"namespaceName"]},features:[nT([ue,_e])],decls:20,vars:13,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"],[1,"case-home__headline"],["dsBlueprint","",1,"case-home__composer"],[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","title","Start case",3,"action","disabled"],[1,"material-icons"],[3,"selected","dismissed","agents"],[3,"selected","dismissed","prompts"]],template:function(e,n){if(e&1){let i=dC();vs(0,"div",2),Ag("dragenter",function(h){return !n.isCreating()&&n.attachments.onDragEnter(h)})("dragover",function(h){return !n.isCreating()&&n.attachments.onDragOver(h)})("dragleave",function(){return n.attachments.onDragLeave()})("drop",function(h){return !n.isCreating()&&n.attachments.onDrop(h)}),eC(1,pa,5,0,"div",3),vs(2,"div",4)(3,"div",5),eC(4,_a,2,1,"div",6),vs(5,"h1",7),WC(6,"What can I help you with?"),fl()(),vs(7,"div",8),eC(8,ua,2,1,"div",9),eC(9,ga,2,1,"div",9),vs(10,"agentos-composer-attachments",10,0),Ag("removed",function(h){return n.attachments.remove(h)})("filesSelected",function(h){return n.attachments.addFiles(h)}),fl(),vs(12,"textarea",11,1),Ag("input",function(h){return n.onInput(h)})("keydown",function(h){return n.onKeydown(h)}),fl(),vs(14,"div",12)(15,"div",13)(16,"ds-icon-button",14),Ag("action",function(){If(i);let h=TC(11);return wf(h.openPicker())}),fl(),vs(17,"span",15),WC(18),fl()(),vs(19,"ds-icon-button",16),Ag("action",function(){return n.submit()}),fl()()()()();}e&2&&(XE(),tC(n.attachments.isDragOver()?1:-1),XE(3),tC(n.namespaceId?4:-1),XE(4),tC(n.autocomplete.atSuggestions().length>0?8:-1),XE(),tC(n.autocomplete.slashSuggestions().length>0?9:-1),XE(),Tg("attachments",n.attachments.attachments())("namespaceBadge",n.namespaceTargeted())("limitError",n.attachments.limitError())("disabled",n.attachments.isUploading()),XE(2),Tg("value",n.inputValue())("disabled",n.isCreating()),XE(4),Tg("disabled",n.isCreating()),XE(2),Zg(n.preferences.composerHint()),XE(),Tg("disabled",!n.canSend));},dependencies:[Kn$1,Se$1,ie,ae,Ee],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__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 nt=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=Aw({type:o,selectors:[["agentos-case-item"]],inputs:{case:"case"},decls:0,vars:0,template:function(e,n){},encapsulation:2})};var ha=["renameInput"],Ca=["caseRowTpl"],fa=o=>({node:o,depth:0}),ba=(o,t)=>({node:o,depth:t}),gt=(o,t)=>t.id;function xa(o,t){if(o&1&&bg(0,"div",5),o&2){let e=mC().$implicit;Cg("title",e.groupLabel??"");}}function va(o,t){if(o&1){let e=dC();eC(0,xa,1,1,"div",5),vs(1,"button",6),Ag("click",function(){let i=If(e).$implicit,a=mC(2);return wf(a.onItemSelected(i.id))})("mouseenter",function(i){let a=If(e).$implicit,h=mC(2);return wf(h.onCompactBadgeEnter(i,a))})("mouseleave",function(i){If(e);let a=mC(2);return wf(a.onCompactBadgeLeave(i))}),bg(2,"agentos-case-status-glyph",7),fl();}if(o&2){let e=t.$implicit,n=mC(2);tC(e.isFirstInCompactGroup&&e.groupKey?0:-1),XE(),Hg("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),Cg("aria-label",e.name+" \u2014 "+e.status),XE(),Tg("status",e.status)("size",16);}}function ya(o,t){if(o&1){let e=dC();vs(0,"button",16),Ag("click",function(){If(e);let i=mC(2),a=mC(2);return wf(a.compactConfirmingDeleteId.set(i.id))}),kf(),vs(1,"svg",17),bg(2,"path",18)(3,"line",19)(4,"line",20),fl()();}}function wa(o,t){if(o&1){let e=dC();vs(0,"button",12),Ag("click",function(){If(e);let i=mC(),a=mC(2);return wf(a.onStarToggled(i))}),kf(),vs(1,"svg",13),bg(2,"path",14),fl()(),eC(3,ya,5,0,"button",15);}if(o&2){let e=mC();Hg("case-drawer-compact__tooltip-btn--active",e.favorite),Tg("title",e.favorite?"Remove from favorites":"Add to favorites"),XE(),Cg("fill",e.favorite?"currentColor":"none"),XE(2),tC(e.canDelete?3:-1);}}function Sa(o,t){if(o&1){let e=dC();vs(0,"button",21),Ag("click",function(){If(e);let i=mC(),a=mC(2);return a.onDeleteRequested(i.id),a.compactConfirmingDeleteId.set(null),wf(a.hoveredCompactItem.set(null))}),kf(),vs(1,"svg",22),bg(2,"path",23),fl(),WC(3," Delete "),fl(),Ff(),vs(4,"button",24),Ag("click",function(){If(e);let i=mC(3);return wf(i.compactConfirmingDeleteId.set(null))}),kf(),vs(5,"svg",25),bg(6,"path",26)(7,"path",27),fl()();}}function Ma(o,t){if(o&1){let e=dC();vs(0,"div",8),Ag("mouseleave",function(i){If(e);let a=mC(2);return wf(a.onTooltipLeave(i))})("mouseenter",function(){If(e);let i=mC(2);return wf(i.onTooltipEnter())}),vs(1,"span",9),WC(2),fl(),vs(3,"span",10),WC(4),fl(),vs(5,"span",11),eC(6,wa,4,5)(7,Sa,8,0),fl()();}if(o&2){let e=t,n=mC(2);Vg("top",n.tooltipPos().top,"px")("left",n.tooltipPos().left,"px"),XE(2),Zg(e.name),XE(),Hg("case-drawer-compact__tooltip-status--running",e.status===n.Status.RUNNING)("case-drawer-compact__tooltip-status--error",e.status===n.Status.ERROR)("case-drawer-compact__tooltip-status--pending",e.status===n.Status.PENDING)("case-drawer-compact__tooltip-status--killed",e.status===n.Status.KILLED),XE(),Zg(e.status.toLowerCase()),XE(2),tC(n.compactConfirmingDeleteId()!==e.id?6:7);}}function Ea(o,t){if(o&1&&(vs(0,"div",3),oC(1,va,3,14,null,null,gt),fl(),eC(3,Ma,8,15,"div",4)),o&2){let e,n=mC();XE(),iC(n.compactItems()),XE(2),tC((e=n.hoveredCompactItem())?3:-1,e);}}function Ta(o,t){o&1&&(vs(0,"p",28),WC(1,"No cases yet. Start one with the + button above."),fl());}function ka(o,t){if(o&1&&(vs(0,"div",29),WC(1),fl()),o&2){let e=mC().$implicit;XE(),Zg(e.groupLabel);}}function Pa(o,t){if(o&1&&(eC(0,ka,2,1,"div",29),Mg(1,30)),o&2){let e=t.$implicit,n=mC(3),i=TC(3);tC(n.isFirstInGroup(e,n.displayItems())?0:-1),XE(),Tg("ngTemplateOutlet",i)("ngTemplateOutletContext",oT(3,fa,e));}}function Oa(o,t){if(o&1&&oC(0,Pa,2,5,null,null,gt),o&2){let e=mC(2);iC(e.displayItems());}}function Ia(o,t){if(o&1&&(vs(0,"div",2),eC(1,Ta,2,0,"p",28)(2,Oa,2,0),fl()),o&2){let e=mC();XE(),tC(e.displayItems().length===0?1:2);}}function Da(o,t){if(o&1){let e=dC();vs(0,"button",38),Ag("click",function(i){If(e);let a=mC().node,h=mC();return wf(h.toggleExpand(i,a.id))}),kf(),vs(1,"svg",39),bg(2,"path",40),fl()();}if(o&2){let e=mC().node,n=mC();Tg("title",n.isExpanded(e.id)?"Collapse":"Expand"),XE(),Vg("transform",n.isExpanded(e.id)?"rotate(90deg)":"rotate(0)");}}function Va(o,t){if(o&1&&bg(0,"agentos-case-status-glyph",7),o&2){let e=mC().node;Tg("status",e.status)("size",15);}}function Ra(o,t){if(o&1&&(vs(0,"p",42),WC(1),fl()),o&2){let e=mC(2).node;Tg("id","rename-error-"+e.id),XE(),Zg(t);}}function Na(o,t){if(o&1){let e=dC();vs(0,"div",34)(1,"input",41,1),Ag("click",function(i){return i.stopPropagation()})("input",function(i){If(e);let a=mC(2);return wf(a.onRenameInput(i.target.value))})("keydown",function(i){If(e);let a=mC(2);return wf(a.onRenameKeydown(i))})("blur",function(){If(e);let i=mC(2);return wf(i.onRenameBlur())}),fl(),eC(3,Ra,2,2,"p",42),fl();}if(o&2){let e,n=mC().node,i=mC();XE(),Tg("value",i.editingTitle()),Cg("aria-invalid",i.renameError()?"true":null)("aria-describedby",i.renameError()?"rename-error-"+n.id:null),XE(2),tC((e=i.renameError())?3:-1,e);}}function Aa(o,t){if(o&1){let e=dC();vs(0,"button",43),Ag("click",function(){If(e);let i=mC().node,a=mC();return wf(a.onItemSelected(i.id))}),vs(1,"span",44),WC(2),fl()();}if(o&2){let e=mC().node;XE(2),Zg(e.name);}}function Fa(o,t){if(o&1){let e=dC();vs(0,"button",49),Ag("click",function(i){If(e);let a=mC(2).node;return mC().startRename(a),wf(i.stopPropagation())}),kf(),vs(1,"svg",50),bg(2,"path",51)(3,"path",52),fl()();}}function qa(o,t){if(o&1){let e=dC();vs(0,"button",53),Ag("click",function(i){If(e);let a=mC(2).node;return mC().expandedConfirmingDeleteId.set(a.id),wf(i.stopPropagation())}),kf(),vs(1,"svg",50),bg(2,"path",18)(3,"line",19)(4,"line",20),fl()();}}function La(o,t){if(o&1){let e=dC();vs(0,"button",45),Ag("click",function(i){If(e);let a=mC().node;return mC().onStarToggled(a),wf(i.stopPropagation())}),kf(),vs(1,"svg",46),bg(2,"path",14),fl()(),eC(3,Fa,4,0,"button",47),eC(4,qa,5,0,"button",48);}if(o&2){let e=mC().node;Hg("case-tree-node__action-btn--active",e.favorite),Tg("title",e.favorite?"Remove from favorites":"Add to favorites"),XE(),Cg("fill",e.favorite?"currentColor":"none"),XE(2),tC(e.canRename?3:-1),XE(),tC(e.canDelete?4:-1);}}function za(o,t){if(o&1){let e=dC();vs(0,"button",54),Ag("click",function(i){If(e);let a=mC().node,h=mC();return h.onDeleteRequested(a.id),h.expandedConfirmingDeleteId.set(null),wf(i.stopPropagation())}),kf(),vs(1,"svg",22),bg(2,"path",23),fl(),WC(3," Delete "),fl(),Ff(),vs(4,"button",55),Ag("click",function(i){return If(e),mC(2).expandedConfirmingDeleteId.set(null),wf(i.stopPropagation())}),kf(),vs(5,"svg",25),bg(6,"path",26)(7,"path",27),fl()();}}function $a(o,t){if(o&1&&Mg(0,30),o&2){let e=t.$implicit,n=mC(2).depth;mC();let i=TC(3);Tg("ngTemplateOutlet",i)("ngTemplateOutletContext",iT(2,ba,e,n+1));}}function Ua(o,t){if(o&1&&oC(0,$a,1,5,"ng-container",30,gt),o&2){let e=mC().node;iC(e.children);}}function Ha(o,t){if(o&1&&(vs(0,"div",31)(1,"div",32),eC(2,Da,3,3,"button",33)(3,Va,1,2,"agentos-case-status-glyph",7),eC(4,Na,4,4,"div",34)(5,Aa,3,1,"button",35),vs(6,"span",36),WC(7),fl(),vs(8,"span",37),eC(9,La,5,6)(10,za,8,0),fl()(),eC(11,Ua,2,0),fl()),o&2){let e=t.node,n=t.depth,i=mC();Vg("--depth",n),XE(),Hg("case-tree-node__row--active",e.id===i.activeCaseId())("case-tree-node__row--editing",i.editingCaseId()===e.id),XE(),tC(e.children?.length?2:3),XE(2),tC(i.editingCaseId()===e.id?4:5),XE(2),Hg("case-tree-node__status-label--running",e.status===i.Status.RUNNING)("case-tree-node__status-label--error",e.status===i.Status.ERROR)("case-tree-node__status-label--pending",e.status===i.Status.PENDING)("case-tree-node__status-label--killed",e.status===i.Status.KILLED),XE(),Zg(e.status.toLowerCase()),XE(2),tC(i.expandedConfirmingDeleteId()!==e.id?9:10),XE(2),tC(!i.isSearchActive()&&i.isExpanded(e.id)&&e.children?.length?11:-1);}}var ot=class o{cases=mB([]);activeCaseId=mB(null);compact=mB(false);filterQuery=mB("");caseSelected=gB();createRequested=gB();deleteRequested=gB();starToggled=gB();renameRequested=gB();caseRowTpl;searchQuery=Hi$1("");activeQuery=mT(()=>this.filterQuery().trim()||this.searchQuery().trim());isSearchActive=mT(()=>this.activeQuery().length>0);rootItems=mT(()=>{let t=this.cases(),e=new Map(t.map(n=>[n.id??"",n.modified??n.created??""]));return Qa(ja(t),e)});compactItems=mT(()=>(this.isSearchActive()?this.flatFilteredItems():this.rootItems()).map((e,n,i)=>z$3(P({},e),{initials:Ba(e.name),isFirstInCompactGroup:n===0||e.groupKey!==i[n-1]?.groupKey})));flatFilteredItems=mT(()=>{let t=this.activeQuery().toLowerCase();return t?kn(this.rootItems(),t):[]});displayItems=mT(()=>this.isSearchActive()?this.flatFilteredItems():this.rootItems());autoExpandedIds=mT(()=>{let t=this.activeCaseId();if(!t)return new Set;let e=new Set;return Pn(this.rootItems(),t,e),e});hoveredCompactItem=Hi$1(null);tooltipPos=Hi$1({top:0,left:0});compactConfirmingDeleteId=Hi$1(null);expandedConfirmingDeleteId=Hi$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=Hi$1(new Map);editingCaseId=Hi$1(null);editingTitle=Hi$1("");renameError=Hi$1(null);renameOriginal="";renameInput=vB("renameInput");selectedForId=null;constructor(){CB(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&&(En(this.editingTitle().trim())?this.cancelRename():this.commitRename());}commitRename(){let t=this.editingCaseId();if(!t)return;let e=this.editingTitle().trim(),n=En(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=xe$1;static \u0275fac=function(e){return new(e||o)};static \u0275cmp=Aw({type:o,selectors:[["agentos-case-drawer"]],viewQuery:function(e,n){if(e&1&&(Lg(n.renameInput,ha,5),Fg(Ca,7)),e&2){CC();let i;IC(i=wC())&&(n.caseRowTpl=i.first);}},inputs:{cases:[1,"cases"],activeCaseId:[1,"activeCaseId"],compact:[1,"compact"],filterQuery:[1,"filterQuery"]},outputs:{caseSelected:"caseSelected",createRequested:"createRequested",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",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","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"],["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",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","Rename case",1,"case-tree-node__action-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","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&&(eC(0,Ea,4,1)(1,Ia,3,1,"div",2),Dg(2,Ha,12,19,"ng-template",null,0,fT)),e&2&&tC(n.compact()?0:1);},dependencies:[Sb,me],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__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__status-label[_ngcontent-%COMP%]{flex:none;transition:opacity .12s}.case-tree-node__row[_ngcontent-%COMP%]:hover .case-tree-node__status-label[_ngcontent-%COMP%], .case-tree-node__row[_ngcontent-%COMP%]:focus-within .case-tree-node__status-label[_ngcontent-%COMP%], .case-tree-node__row--active[_ngcontent-%COMP%] .case-tree-node__status-label[_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__status-label[_ngcontent-%COMP%], .case-tree-node__row--editing[_ngcontent-%COMP%]:focus-within .case-tree-node__status-label[_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}']})},Mn=200;function En(o){return o?o.length>Mn?`Name is too long (max ${Mn} characters)`:null:"Name cannot be empty"}function Ba(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 ja(o){let t=new Set(o.map(T=>T.id??"")),e=new Map(o.map(T=>[T.id??"",T.modified??T.created??""])),n=T=>z$3(P({},nt.toListItem(T)),{description:T.id??"",status:T.status??"IDLE",children:[]}),i=new Map;for(let T of o)i.set(T.id??"",n(T));let a=[];for(let T of o){let f=i.get(T.id??""),k=T.parentCaseId;k&&t.has(k)?i.get(k).children.push(f):a.push(f);}let h=T=>T.sort((f,k)=>(e.get(k.id)??"")>(e.get(f.id)??"")?1:-1).map(f=>z$3(P({},f),{children:h(f.children)}));return h(a)}function Qa(o,t){let e=[],n=[];for(let f of o){let k=Tn(f,e);k&&n.push(k);}for(let f of e)f.groupKey="favorites",f.groupLabel="Favorites";let i=new Date,a=new Date(i.getFullYear(),i.getMonth(),i.getDate()),h=new Date(a.getTime()-864e5),T=new Date(a.getTime()-6*864e5);for(let f of n){let k=t.get(f.id)??"",O=k?new Date(k):null;O&&O>=a?(f.groupKey="today",f.groupLabel="Today"):O&&O>=h?(f.groupKey="yesterday",f.groupLabel="Yesterday"):O&&O>=T?(f.groupKey="week",f.groupLabel="Previous 7 days"):(f.groupKey="older",f.groupLabel="Older");}return [...e,...n]}function Tn(o,t){if(o.favorite)return t.push(P({},o)),null;let e=[];for(let n of o.children){let i=Tn(n,t);i&&e.push(i);}return z$3(P({},o),{children:e})}function kn(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(...kn(n.children,t)),e),[])}function Pn(o,t,e){for(let n of o){if(n.id===t)return true;if(n.children.length&&Pn(n.children,t,e))return e.add(n.id),true}return false}var Wa=["compactSearchInput"],On=(o,t)=>t.id;function Ga(o,t){o&1&&(kf(),vs(0,"svg",35),bg(1,"path",36),fl());}function Ka(o,t){if(o&1){let e=dC();vs(0,"button",32),Ag("click",function(){let i=If(e).$implicit,a=mC(3);return wf(a.namespaceSelected.emit(i))}),vs(1,"span",33),WC(2),fl(),vs(3,"span",34),WC(4),fl(),eC(5,Ga,2,0,":svg:svg",35),fl();}if(o&2){let e=t.$implicit,n=mC(3);Hg("shell-sidebar__ns-item--active",e.id===n.selectedNamespace()?.id),XE(2),Zg(n.nsInitial(e.name)),XE(2),Zg(e.name),XE(),tC(e.id===n.selectedNamespace()?.id?5:-1);}}function Ya(o,t){if(o&1&&(vs(0,"div",13),oC(1,Ka,6,5,"button",31,On),fl()),o&2){let e=mC(2);XE(),iC(e.namespaces());}}function Ja(o,t){if(o&1){let e=dC();vs(0,"div",2)(1,"div",3)(2,"button",4),Ag("click",function(){If(e);let i=mC();return wf(i.homeClicked.emit())}),bg(3,"img",5),fl(),vs(4,"div",6)(5,"div",7)(6,"button",8),Ag("click",function(){If(e);let i=mC();return wf(i.nsMenuToggled.emit())}),vs(7,"span",9),WC(8),fl(),vs(9,"span",10),WC(10),fl(),kf(),vs(11,"svg",11),bg(12,"path",12),fl()(),eC(13,Ya,3,0,"div",13),fl()()(),Ff(),vs(14,"div",14)(15,"button",15),Ag("click",function(){If(e);let i=mC();return wf(i.createRequested.emit())}),kf(),vs(16,"svg",16),bg(17,"path",17),fl(),WC(18," New case "),fl(),Ff(),vs(19,"input",18),Ag("input",function(i){If(e);let a=mC();return wf(a.caseFilter.set(i.target.value))}),fl()()(),vs(20,"div",19)(21,"agentos-case-drawer",20),Ag("caseSelected",function(i){If(e);let a=mC();return wf(a.caseSelected.emit(i))})("createRequested",function(){If(e);let i=mC();return wf(i.createRequested.emit())})("deleteRequested",function(i){If(e);let a=mC();return wf(a.deleteRequested.emit(i))})("starToggled",function(i){If(e);let a=mC();return wf(a.starToggled.emit(i))})("renameRequested",function(i){If(e);let a=mC();return wf(a.renameRequested.emit(i))}),fl()(),vs(22,"div",21)(23,"div",22)(24,"button",23),Ag("click",function(i){If(e);let a=mC();return wf(a.menuToggled.emit(i))}),vs(25,"span",24),WC(26),fl(),vs(27,"span",25)(28,"span",26),WC(29),fl()(),kf(),vs(30,"svg",16),bg(31,"path",27),fl()(),Ff(),vs(32,"agentos-shell-user-menu",28),Ag("navigateTo",function(i){If(e);let a=mC();return wf(a.navigateTo.emit(i))})("themeToggled",function(){If(e);let i=mC();return wf(i.themeToggled.emit())})("themeVariantChanged",function(i){If(e);let a=mC();return wf(a.themeVariantChanged.emit(i))})("logsToggled",function(){If(e);let i=mC();return wf(i.logsToggled.emit())})("toolCallsToggled",function(){If(e);let i=mC();return wf(i.toolCallsToggled.emit())})("closed",function(i){If(e);let a=mC();return wf(a.menuClosed.emit(i))}),fl()(),vs(33,"button",29),Ag("click",function(){If(e);let i=mC();return wf(i.toggleCompact())}),kf(),vs(34,"svg",16),bg(35,"path",30),fl()()();}if(o&2){let e=mC();Hg("shell-sidebar__top--wide",e.effectiveWidth()>=400),XE(6),Hg("shell-sidebar__ns-trigger--open",e.nsMenuOpen()),XE(2),Zg(e.nsInitial(e.selectedNamespace()?.name)),XE(2),Zg(e.selectedNamespace()?.name??"Select namespace"),XE(3),tC(e.nsMenuOpen()?13:-1),XE(),Hg("shell-sidebar__bottom-row--wide",e.effectiveWidth()>=400),XE(5),Tg("value",e.caseFilter()),XE(2),Tg("cases",e.cases())("activeCaseId",e.activeCaseId())("compact",false)("filterQuery",e.caseFilter()),XE(5),Zg(e.userInitials()||"??"),XE(3),Zg(e.userName()),XE(3),Tg("open",e.menuOpen())("isAdmin",e.isAdmin())("isDark",e.isDark())("themeVariant",e.themeVariant())("showTechnical",e.showTechnical())("showToolCalls",e.showToolCalls());}}function Xa(o,t){o&1&&(kf(),vs(0,"svg",35),bg(1,"path",36),fl());}function Za(o,t){if(o&1){let e=dC();vs(0,"button",32),Ag("click",function(){let i=If(e).$implicit,a=mC(4);return wf(a.onCompactNsSelected(i))}),vs(1,"span",33),WC(2),fl(),vs(3,"span",34),WC(4),fl(),eC(5,Xa,2,0,":svg:svg",35),fl();}if(o&2){let e=t.$implicit,n=mC(4);Hg("shell-sidebar__ns-item--active",e.id===n.selectedNamespace()?.id),XE(2),Zg(n.nsInitial(e.name)),XE(2),Zg(e.name),XE(),tC(e.id===n.selectedNamespace()?.id?5:-1);}}function er(o,t){if(o&1){let e=dC();vs(0,"div",52),Ag("click",function(){If(e);let i=mC(3);return wf(i.closeCompactNsMenu())})("keyup.escape",function(){If(e);let i=mC(3);return wf(i.closeCompactNsMenu())}),fl(),vs(1,"div",53),oC(2,Za,6,5,"button",31,On),fl();}if(o&2){let e=mC(3);XE(),Vg("top",e.compactNsMenuTop(),"px")("left",e.compactNsMenuLeft(),"px"),XE(),iC(e.namespaces());}}function tr(o,t){if(o&1){let e=dC();vs(0,"button",51),Ag("click",function(i){If(e);let a=mC(2);return wf(a.onCompactNsBtnClick(i))}),WC(1),fl(),eC(2,er,4,4);}if(o&2){let e=mC(2);Hg("shell-sidebar__compact-ns-btn--open",e.compactNsMenuOpen()),Tg("title",e.selectedNamespace()?.name??"Select namespace"),XE(),yl(" ",e.nsInitial(e.selectedNamespace()?.name)," "),XE(),tC(e.compactNsMenuOpen()?2:-1);}}function nr(o,t){if(o&1){let e=dC();vs(0,"button",57),Ag("click",function(){If(e);let i=mC(3);return wf(i.clearCompactSearch())}),kf(),vs(1,"svg",35),bg(2,"path",58),fl()();}}function or(o,t){if(o&1){let e=dC();vs(0,"div",52),Ag("click",function(){If(e);let i=mC(2);return wf(i.closeCompactSearch())})("keyup.escape",function(){If(e);let i=mC(2);return wf(i.closeCompactSearch())}),fl(),vs(1,"div",54)(2,"input",55,0),Ag("input",function(i){If(e);let a=mC(2);return wf(a.onCompactSearchInput(i.target.value))})("keyup.escape",function(){If(e);let i=mC(2);return wf(i.closeCompactSearch())}),fl(),eC(4,nr,3,0,"button",56),fl();}if(o&2){let e=mC(2);XE(),Vg("top",e.compactSearchTop(),"px")("left",e.compactSearchLeft(),"px"),XE(),Tg("value",e.caseFilter()),XE(2),tC(e.caseFilter()?4:-1);}}function ir(o,t){if(o&1){let e=dC();vs(0,"button",37),Ag("click",function(){If(e);let i=mC();return wf(i.homeClicked.emit())}),bg(1,"img",38),fl(),eC(2,tr,3,5),vs(3,"button",39),Ag("click",function(){If(e);let i=mC();return wf(i.createRequested.emit())}),kf(),vs(4,"svg",40),bg(5,"path",17),fl()(),Ff(),vs(6,"button",41),Ag("click",function(i){If(e);let a=mC();return wf(a.onCompactSearchBtnClick(i))}),kf(),vs(7,"svg",42),bg(8,"circle",43)(9,"path",44),fl()(),eC(10,or,5,6),Ff(),bg(11,"div",45),vs(12,"div",19)(13,"agentos-case-drawer",46),Ag("caseSelected",function(i){If(e);let a=mC();return wf(a.caseSelected.emit(i))})("createRequested",function(){If(e);let i=mC();return wf(i.createRequested.emit())})("deleteRequested",function(i){If(e);let a=mC();return wf(a.deleteRequested.emit(i))})("starToggled",function(i){If(e);let a=mC();return wf(a.starToggled.emit(i))}),fl()(),vs(14,"button",47),Ag("click",function(i){If(e);let a=mC();return wf(a.onCompactUserBtnClick(i))}),WC(15),fl(),vs(16,"agentos-shell-user-menu",48),Ag("navigateTo",function(i){If(e);let a=mC();return wf(a.navigateTo.emit(i))})("themeToggled",function(){If(e);let i=mC();return wf(i.themeToggled.emit())})("themeVariantChanged",function(i){If(e);let a=mC();return wf(a.themeVariantChanged.emit(i))})("logsToggled",function(){If(e);let i=mC();return wf(i.logsToggled.emit())})("toolCallsToggled",function(){If(e);let i=mC();return wf(i.toolCallsToggled.emit())})("closed",function(i){If(e);let a=mC();return wf(a.menuClosed.emit(i))}),fl(),vs(17,"button",49),Ag("click",function(){If(e);let i=mC();return wf(i.toggleCompact())}),kf(),vs(18,"svg",16),bg(19,"path",50),fl()();}if(o&2){let e=mC();XE(2),tC(e.showNsPicker()?2:-1),XE(4),Hg("shell-sidebar__compact-search-btn--active",e.compactSearchOpen()||e.caseFilter()),XE(4),tC(e.compactSearchOpen()?10:-1),XE(3),Tg("cases",e.cases())("activeCaseId",e.activeCaseId())("compact",true)("filterQuery",e.caseFilter()),XE(2),yl(" ",e.userInitials()||"?"," "),XE(),Tg("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 it=class o{brandHovered=false;static COMPACT_WIDTH=64;isCompact=Hi$1(false);caseFilter=Hi$1("");compactMenuTop=Hi$1(0);compactMenuLeft=Hi$1(0);compactSearchOpen=Hi$1(false);compactSearchTop=Hi$1(0);compactSearchLeft=Hi$1(0);compactNsMenuOpen=Hi$1(false);compactNsMenuTop=Hi$1(0);compactNsMenuLeft=Hi$1(0);compactSearchInputRef=vB("compactSearchInput");onCompactSearchBtnClick(t){let e=t.currentTarget.getBoundingClientRect();this.compactSearchTop.set(e.top),this.compactSearchLeft.set(e.right+8),this.compactSearchOpen.update(n=>!n),this.compactSearchOpen()&&setTimeout(()=>this.compactSearchInputRef()?.nativeElement.focus(),0);}onCompactSearchInput(t){this.caseFilter.set(t);}closeCompactSearch(){this.compactSearchOpen.set(false);}clearCompactSearch(){this.caseFilter.set(""),this.compactSearchOpen.set(false);}onCompactNsBtnClick(t){let e=t.currentTarget.getBoundingClientRect();this.compactNsMenuTop.set(e.top),this.compactNsMenuLeft.set(e.right+8),this.compactNsMenuOpen.update(n=>!n);}closeCompactNsMenu(){this.compactNsMenuOpen.set(false);}onCompactNsSelected(t){this.compactNsMenuOpen.set(false),this.namespaceSelected.emit(t);}onCompactUserBtnClick(t){let e=t.currentTarget.getBoundingClientRect();this.compactMenuTop.set(e.bottom),this.compactMenuLeft.set(e.right+8),this.menuToggled.emit(t);}toggleCompact(){this.isCompact.update(t=>!t);}nsInitial(t){return (t??"?").charAt(0).toUpperCase()}effectiveWidth=mT(()=>this.sidebarOpen()?this.isCompact()?o.COMPACT_WIDTH:this.sidebarWidth():0);sidebarWidth=mB.required();sidebarOpen=mB.required();selectedNamespace=mB.required();namespaces=mB.required();showNsPicker=mB.required();nsMenuOpen=mB.required();cases=mB.required();activeCaseId=mB.required();userInitials=mB.required();userName=mB.required();menuOpen=mB.required();isAdmin=mB.required();isDark=mB.required();themeVariant=mB.required();showTechnical=mB.required();showToolCalls=mB.required();collapseRequested=gB();homeClicked=gB();namespaceSelected=gB();nsMenuToggled=gB();nsMenuClosed=gB();caseSelected=gB();createRequested=gB();deleteRequested=gB();starToggled=gB();renameRequested=gB();menuToggled=gB();menuClosed=gB();navigateTo=gB();themeToggled=gB();themeVariantChanged=gB();logsToggled=gB();toolCallsToggled=gB();static \u0275fac=function(e){return new(e||o)};static \u0275cmp=Aw({type:o,selectors:[["agentos-shell-sidebar"]],viewQuery:function(e,n){e&1&&Lg(n.compactSearchInputRef,Wa,5),e&2&&CC();},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",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","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","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&&(vs(0,"div",1),eC(1,Ja,36,22)(2,ir,20,17),fl()),e&2&&(Vg("width",n.effectiveWidth(),"px")("overflow",n.effectiveWidth()===0?"hidden":"visible"),Hg("shell-sidebar--compact",n.isCompact()),XE(),tC(n.isCompact()?2:1));},dependencies:[ot,D,Kn$1],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 ar=(o,t)=>t.id;function rr(o,t){o&1&&(kf(),pl(0,"svg",24),Sg(1,"path",25),hl());}function sr(o,t){if(o&1){let e=dC();pl(0,"button",21),Rg("click",function(){let i=If(e).$implicit,a=mC(2);return wf(a.namespaceSelected.emit(i))}),pl(1,"span",22),WC(2),hl(),pl(3,"span",23),WC(4),hl(),eC(5,rr,2,0,":svg:svg",24),hl();}if(o&2){let e=t.$implicit,n=mC(2);Hg("shell-topbar-mobile__ns-item--active",e.id===n.selectedNamespace()?.id),XE(2),Zg(e.name.charAt(0).toUpperCase()),XE(2),Zg(e.name),XE(),tC(e.id===n.selectedNamespace()?.id?5:-1);}}function lr(o,t){if(o&1){let e=dC();pl(0,"div",18),Rg("click",function(i){If(e);let a=mC();return wf(a.nsMenuClosed.emit(i))})("keyup.escape",function(i){If(e);let a=mC();return wf(a.nsMenuClosed.emit(i))}),hl(),pl(1,"div",19),oC(2,sr,6,5,"button",20,ar),hl();}if(o&2){let e=mC();XE(2),iC(e.namespaces());}}var at=class o{selectedNamespace=mB.required();namespaces=mB.required();nsMenuOpen=mB.required();drawerToggled=gB();createRequested=gB();namespaceSelected=gB();nsMenuToggled=gB();nsMenuClosed=gB();static \u0275fac=function(e){return new(e||o)};static \u0275cmp=Aw({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&&(pl(0,"div",0)(1,"button",1),Rg("click",function(){return n.drawerToggled.emit()}),kf(),pl(2,"svg",2),Sg(3,"line",3)(4,"line",4)(5,"line",5),hl()(),Ff(),Sg(6,"img",6),pl(7,"div",7)(8,"button",8),Rg("click",function(a){return n.nsMenuToggled.emit(a)}),pl(9,"span",9),WC(10),hl(),pl(11,"span",10),WC(12),hl(),kf(),pl(13,"svg",11),Sg(14,"path",12),hl()(),eC(15,lr,4,0),hl(),Ff(),Sg(16,"span",13),pl(17,"button",14),Rg("click",function(){return n.createRequested.emit()}),kf(),pl(18,"svg",15),Sg(19,"path",16)(20,"path",17),hl()()()),e&2&&(XE(8),Hg("shell-topbar-mobile__ns-btn--open",n.nsMenuOpen()),XE(2),Zg((n.selectedNamespace()?.name??"N").charAt(0).toUpperCase()),XE(2),Zg(n.selectedNamespace()?.name??""),XE(3),tC(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 cr=(o,t)=>t.label,dr=(o,t)=>t.id;function mr(o,t){if(o&1){let e=dC();vs(0,"div",30)(1,"button",32),Ag("click",function(i){If(e);let a=mC().$implicit,h=mC(3);return wf(h.onStarToggle(i,a))}),kf(),vs(2,"svg",33),bg(3,"path",34),fl()(),Ff(),vs(4,"button",35),Ag("click",function(i){If(e);let a=mC().$implicit,h=mC(3);return wf(h.onDeleteRequest(i,a.id??""))}),kf(),vs(5,"svg",36),bg(6,"path",37)(7,"path",38)(8,"path",39)(9,"line",40)(10,"line",41),fl()()();}if(o&2){let e=mC().$implicit;XE(),Hg("mobile-drawer__case-btn--active",!!e.favorite||!!e.starred),XE(),Cg("fill",e.favorite||e.starred?"currentColor":"none");}}function pr(o,t){if(o&1){let e=dC();vs(0,"div",31)(1,"button",42),Ag("click",function(i){If(e);let a=mC().$implicit,h=mC(3);return wf(h.onDeleteConfirm(i,a.id))}),kf(),vs(2,"svg",43),bg(3,"path",44),fl()(),Ff(),vs(4,"button",45),Ag("click",function(i){If(e);let a=mC(4);return wf(a.onDeleteCancel(i))}),kf(),vs(5,"svg",46),bg(6,"path",7)(7,"path",8),fl()()();}}function _r(o,t){if(o&1){let e=dC();vs(0,"button",27),Ag("click",function(){let i=If(e).$implicit,a=mC(3);return wf(a.onCaseSelect(i.id??""))}),bg(1,"agentos-case-status-glyph",28),vs(2,"span",29),WC(3),fl(),eC(4,mr,11,3,"div",30)(5,pr,8,0,"div",31),fl();}if(o&2){let e=t.$implicit,n=mC(3);Hg("mobile-drawer__case-row--active",e.id===n.activeCaseId())("mobile-drawer__case-row--confirming",n.confirmingDeleteId()===e.id),XE(),Tg("status",e.status)("size",15),XE(2),Zg(e.title??e.id),XE(),tC(n.confirmingDeleteId()!==e.id?4:5);}}function ur(o,t){if(o&1&&(vs(0,"div",15)(1,"div",25),WC(2),fl(),oC(3,_r,6,8,"button",26,dr),fl()),o&2){let e=t.$implicit;XE(2),Zg(e.label),XE(),iC(e.cases);}}function gr(o,t){o&1&&(vs(0,"p",16),WC(1,"No cases yet."),fl());}function hr(o,t){if(o&1){let e=dC();vs(0,"button",50),Ag("click",function(){If(e);let i=mC(3);return wf(i.onMenuNavigate("/agentos/admin"))}),kf(),vs(1,"svg",51),bg(2,"path",66),fl(),WC(3," Administration "),fl();}}function Cr(o,t){o&1&&(kf(),vs(0,"svg",51),bg(1,"path",67),fl());}function fr(o,t){o&1&&(kf(),vs(0,"svg",51),bg(1,"circle",68)(2,"path",69)(3,"path",70)(4,"path",71)(5,"path",72)(6,"path",73)(7,"path",74)(8,"path",75)(9,"path",76),fl());}function br(o,t){if(o&1){let e=dC();vs(0,"button",47),Ag("click",function(){If(e);let i=mC(2);return wf(i.userMenuOpen.set(false))}),fl(),vs(1,"div",48)(2,"div",49)(3,"button",50),Ag("click",function(){If(e);let i=mC(2);return wf(i.onMenuNavigate("/agentos/profile"))}),kf(),vs(4,"svg",51),bg(5,"circle",52)(6,"path",53),fl(),WC(7," User settings "),fl(),Ff(),vs(8,"button",50),Ag("click",function(){If(e);let i=mC(2);return wf(i.onMenuNavigate("/agentos/namespaces"))}),kf(),vs(9,"svg",51),bg(10,"rect",54)(11,"rect",55)(12,"rect",56)(13,"rect",57),fl(),WC(14," Namespaces "),fl(),eC(15,hr,4,0,"button",58),Ff(),vs(16,"button",50),Ag("click",function(){If(e);let i=mC(2);return wf(i.onMenuLogsToggle())}),kf(),vs(17,"svg",51),bg(18,"polyline",59)(19,"line",60),fl(),WC(20," Technical logs "),fl(),Ff(),vs(21,"button",50),Ag("click",function(){If(e);let i=mC(2);return wf(i.onMenuToolCallsToggle())}),kf(),vs(22,"svg",51),bg(23,"path",61)(24,"path",62),fl(),WC(25," Tool calls "),Ff(),bg(26,"span",63),vs(27,"span",64),WC(28),fl()()(),bg(29,"div",65),vs(30,"div",49)(31,"button",50),Ag("click",function(){If(e);let i=mC(2);return wf(i.onMenuThemeToggle())}),eC(32,Cr,2,0,":svg:svg",51)(33,fr,10,0,":svg:svg",51),WC(34," Dark mode "),bg(35,"span",63),vs(36,"span",64),WC(37),fl()()()();}if(o&2){let e=mC(2);XE(15),tC(e.isAdmin()?15:-1),XE(13),Zg(e.showToolCalls()?"On":"Off"),XE(4),tC(e.isDark()?33:32),XE(5),Zg(e.isDark()?"On":"Off");}}function xr(o,t){if(o&1){let e=dC();vs(0,"div",0)(1,"button",1),Ag("click",function(){If(e);let i=mC();return wf(i.closed.emit())}),fl(),vs(2,"div",2),Ag("click",function(i){return i.stopPropagation()})("keydown",function(i){return i.stopPropagation()}),vs(3,"div",3)(4,"span",4),WC(5,"Cases"),fl(),vs(6,"button",5),Ag("click",function(){If(e);let i=mC();return wf(i.closed.emit())}),kf(),vs(7,"svg",6),bg(8,"path",7)(9,"path",8),fl()()(),Ff(),vs(10,"div",9),kf(),vs(11,"svg",10),bg(12,"circle",11)(13,"path",12),fl(),Ff(),vs(14,"input",13),Ag("input",function(i){If(e);let a=mC();return wf(a.filterQuery.set(i.target.value))}),fl()(),vs(15,"div",14),oC(16,ur,5,1,"div",15,cr),eC(18,gr,2,0,"p",16),fl(),vs(19,"div",17),eC(20,br,38,4),vs(21,"button",18),Ag("click",function(){If(e);let i=mC();return wf(i.userMenuOpen.set(!i.userMenuOpen()))}),vs(22,"span",19),WC(23),fl(),vs(24,"span",20)(25,"span",21),WC(26),fl()(),kf(),vs(27,"svg",22),bg(28,"path",23)(29,"path",24),fl()()()()();}if(o&2){let e=mC();XE(14),Tg("value",e.filterQuery()),XE(2),iC(e.groupedCases()),XE(2),tC(e.groupedCases().length===0?18:-1),XE(2),tC(e.userMenuOpen()?20:-1),XE(3),Zg(e.userInitials()),XE(3),Zg(e.userName());}}var rt=class o{open=mB.required();cases=mB.required();activeCaseId=mB.required();userInitials=mB.required();userName=mB.required();isAdmin=mB.required();isDark=mB.required();showToolCalls=mB.required();filterQuery=Hi$1("");confirmingDeleteId=Hi$1(null);userMenuOpen=Hi$1(false);groupedCases=mT(()=>{let t=this.filterQuery().toLowerCase(),e=this.cases().filter(O=>!t||(O.title??O.id??"").toLowerCase().includes(t)),n=O=>!!O.favorite||!!O.starred,i=e.filter(O=>n(O)),a=e.filter(O=>!n(O)&&this.isToday(O)),h=e.filter(O=>!n(O)&&this.isYesterday(O)),T=e.filter(O=>!n(O)&&this.isPrev7(O)),f=e.filter(O=>!n(O)&&!this.isToday(O)&&!this.isYesterday(O)&&!this.isPrev7(O)),k=[];return i.length&&k.push({label:"Pinned",cases:i}),a.length&&k.push({label:"Today",cases:a}),h.length&&k.push({label:"Yesterday",cases:h}),T.length&&k.push({label:"Previous 7 days",cases:T}),f.length&&k.push({label:"Older",cases:f}),k});closed=gB();caseSelected=gB();starToggled=gB();deleteRequested=gB();navigateTo=gB();themeToggled=gB();logsToggled=gB();toolCallsToggled=gB();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=Aw({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:{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","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","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&&eC(0,xr,30,5,"div",0),e&2&&tC(n.open()?0:-1);},dependencies:[me],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 vr(o,t){if(o&1){let e=dC();vs(0,"div",9),Ag("mousedown",function(i){If(e);let a=mC();return wf(a.onResizeStart(i))}),fl();}}function yr(o,t){if(o&1){let e=dC();vs(0,"button",10),Ag("click",function(){If(e);let i=mC();return wf(i.expandSidebar())}),vs(1,"span",11),WC(2,"menu"),fl()();}}function wr(o,t){if(o&1){let e=dC();vs(0,"agentos-case-chat",12),Ag("starToggled",function(i){If(e);let a=mC();return wf(a.onStarToggled(i))})("deleteRequested",function(i){If(e);let a=mC();return wf(a.onDeleteRequested(i))})("logsToggled",function(){If(e);let i=mC();return wf(i.onMenuToggleLogs())}),fl();}if(o&2){let e=mC();Tg("showTechnicalOverride",e.showTechnical())("showToolCallsOverride",e.showToolCalls());}}function Sr(o,t){if(o&1&&bg(0,"agentos-case-home",8),o&2){let e=mC();Tg("namespaceName",e.selectedNamespace()?.name??null);}}var In=class o{router=g(G$5);route=g(V$2);namespaceController=g(N$2);themePort=g(I$1);userState=g(u$1);caseState=g(pe);namespaceState=g(E);destroyRef=g(we$1);isAdmin=mT(()=>this.userState.currentUser()?.isAdmin===true);userInitials=mT(()=>{let t=this.userState.currentUser();if(!t)return "";let e=t.firstname?.[0]??"",n=t.lastname?.[0]??"";return (e+n).toUpperCase()||t.email?.[0]?.toUpperCase()||""});userName=mT(()=>{let t=this.userState.currentUser();return t&&([t.firstname,t.lastname].filter(Boolean).join(" ")||t.email)||""});isDark=mT(()=>{let{mode:t}=this.themePort.theme();return t==="dark"?true:t==="light"?false:typeof document<"u"&&document.documentElement.getAttribute("data-theme")?.includes("dark")===true});themeVariant=mT(()=>this.themePort.theme().variant);sidebarWidth=Hi$1(Number(localStorage.getItem("agentos.sidebar.width"))||400);menuOpen=Hi$1(false);nsMenuOpen=Hi$1(false);sidebarOpen=Hi$1(localStorage.getItem("agentos.sidebar.open")!=="false");mobileDrawerOpen=Hi$1(false);static SHOW_TECHNICAL_KEY="agentos.case-chat.showTechnical";static SHOW_TOOL_CALLS_KEY="agentos.case-chat.showToolCalls";showTechnical=Hi$1(localStorage.getItem(o.SHOW_TECHNICAL_KEY)==="true");showToolCalls=Hi$1(localStorage.getItem(o.SHOW_TOOL_CALLS_KEY)!=="false");showNsPicker=mT(()=>this.isAdmin()||this.namespaces().length>1);namespaceId$=this.route.queryParams.pipe(ue$3(t=>t.ns??null));_namespaceIdRaw=F$1(this.namespaceId$);namespaceId=mT(()=>this._namespaceIdRaw()??null);_activeCaseIdRaw=F$1(this.route.queryParams.pipe(ue$3(t=>t.case??null)));activeCaseId=mT(()=>this._activeCaseIdRaw()??null);cases=this.caseState.cases;namespaces=F$1(this.namespaceController.listAllNamespace(),{initialValue:[]});selectedNamespace=Hi$1(null);constructor(){this.userState.currentUser()||this.userState.loadMe().pipe(U$2(this.destroyRef)).subscribe(),T(this.sidebarWidth).pipe(wd(1),Id(300),U$2(this.destroyRef)).subscribe(t=>localStorage.setItem("agentos.sidebar.width",String(t))),Hf(()=>{let t=this.namespaces(),e=this.namespaceId();if(t.length)if(e){let n=t.find(i=>i.id===e);this.selectedNamespace.set(n??t[0]??null),this.namespaceState.selectNamespace(e);}else {let n=t[0];n?.id&&this.router.navigate(["/agentos/home"],{queryParams:{ns:n.id},replaceUrl:true});}}),Hf(()=>{let t=this.namespaceId();t&&this.caseState.loadCases(t);});}onNamespaceSelected(t){this.selectedNamespace.set(t),this.nsMenuOpen.set(false),this.router.navigate(["/agentos/home"],{queryParams:{ns:t.id}});}toggleNsMenu(t){t?.stopPropagation(),t?.preventDefault(),this.nsMenuOpen.update(e=>!e);}closeNsMenu(t){t.stopPropagation(),this.nsMenuOpen.set(false);}onCaseSelected(t){this.router.navigate(["/agentos/home"],{queryParams:{ns:this.namespaceId(),case:t}});}onCreateRequested(){this.router.navigate(["/agentos/home"],{queryParams:{ns:this.namespaceId()}});}onDeleteRequested(t){this.caseState.deleteCase(t).pipe(U$2(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$2(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$2(this.destroyRef)).subscribe({error:e=>{console.error(`[CaseShell] Failed to rename case ${t.id}:`,e),alert("Could not rename the case. 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(Qt);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 h=n,T=k=>{let O=k.clientX-e;h=Math.max(200,Math.min(i,n+O)),a&&(a.style.width=`${h}px`);},f=()=>{document.removeEventListener("mousemove",T),document.removeEventListener("mouseup",f),document.body.style.userSelect="",document.body.style.cursor="",a&&(a.style.transition=""),this.sidebarWidth.set(h);};document.addEventListener("mousemove",T),document.addEventListener("mouseup",f);}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=Aw({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","starToggled","deleteRequested","navigateTo","themeToggled","logsToggled","toolCallsToggled","open","cases","activeCaseId","userInitials","userName","isAdmin","isDark","showToolCalls"],[3,"collapseRequested","homeClicked","namespaceSelected","nsMenuToggled","nsMenuClosed","caseSelected","createRequested","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,"showTechnicalOverride","showToolCallsOverride"],[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,"starToggled","deleteRequested","logsToggled","showTechnicalOverride","showToolCallsOverride"]],template:function(e,n){e&1&&(vs(0,"div",0)(1,"agentos-shell-topbar-mobile",1),Ag("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)}),fl(),vs(2,"agentos-shell-case-switcher-mobile",2),Ag("closed",function(){return n.mobileDrawerOpen.set(false)})("caseSelected",function(a){return n.onMobileCaseSelect(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()}),fl(),vs(3,"agentos-shell-sidebar",3),Ag("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()})("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()}),fl(),eC(4,vr,1,0,"div",4),eC(5,yr,3,0,"button",5),vs(6,"main",6),eC(7,wr,1,2,"agentos-case-chat",7)(8,Sr,1,1,"agentos-case-home",8),fl()()),e&2&&(XE(),Tg("selectedNamespace",n.selectedNamespace())("namespaces",n.namespaces())("nsMenuOpen",n.nsMenuOpen()),XE(),Tg("open",n.mobileDrawerOpen())("cases",n.cases())("activeCaseId",n.activeCaseId())("userInitials",n.userInitials())("userName",n.userName())("isAdmin",n.isAdmin())("isDark",n.isDark())("showToolCalls",n.showToolCalls()),XE(),Tg("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()),XE(),tC(n.sidebarOpen()?4:-1),XE(),tC(n.sidebarOpen()?-1:5),XE(2),tC(n.activeCaseId()?7:8));},dependencies:[et,tt,it,at,rt],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%] > *[_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$1(n,e){if(n&1&&WC(0),n&2){let o=mC();yl(" ",o.userInitials()," ");}}function V$1(n,e){n&1&&WC(0," \u2022\u2022\u2022 ");}var h=class n{router=g(G$5);userState=g(u$1);themePort=g(I$1);namespaceState=g(E);menuOpen=Hi$1(false);isAdmin=mT(()=>this.userState.currentUser()?.isAdmin===true);isDark=mT(()=>{let{mode:e}=this.themePort.theme();return e==="dark"?true:e==="light"?false:typeof document<"u"&&document.documentElement.getAttribute("data-theme")?.includes("dark")===true});themeVariant=mT(()=>this.themePort.theme().variant);userInitials=mT(()=>{let e=this.userState.currentUser();if(!e)return "";let o=e.firstname?.[0]??"",t=e.lastname?.[0]??"";return (o+t).toUpperCase()||e.email?.[0]?.toUpperCase()||""});showTechnical=Hi$1(false);showToolCalls=Hi$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=Aw({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&&(vs(0,"div",0)(1,"button",1),Ag("click",function(){return t.navigateHome()}),bg(2,"img",2),vs(3,"span",3),WC(4,"Coday"),fl()(),vs(5,"div",4)(6,"button",5),Ag("click",function(l){return t.toggleMenu(l)}),eC(7,N$1,1,1)(8,V$1,1,0),fl(),vs(9,"agentos-shell-user-menu",6),Ag("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)}),fl()()()),o&2&&(XE(7),tC(t.userInitials()?7:8),XE(2),Tg("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=Aw({type:n,selectors:[["agentos-layout"]],decls:4,vars:0,consts:[[1,"layout"],[1,"layout__content"]],template:function(o,t){o&1&&(vs(0,"div",0),bg(1,"agentos-shell-topbar"),vs(2,"main",1),bg(3,"router-outlet"),fl()());},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 Ge=[{path:"oauth/callback",loadComponent:()=>import('./chunk-7IEj5tud.js').then(e=>e.OAuthCallbackComponent)},{path:"",loadComponent:()=>Promise.resolve().then(function(){return chunkB33G64X6}).then(e=>e.AgentosShellComponent),children:[{path:"home",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunkPIVWBUVD}).then(e=>e.CaseShellComponent)},{path:"",loadComponent:()=>Promise.resolve().then(function(){return chunkDOMQEK34}).then(e=>e.LayoutComponent),children:[{path:"namespaces/new",canActivate:[t],loadComponent:()=>import('./chunk-CbSC-SSJ.js').then(e=>e.NamespaceFormComponent)},{path:"namespaces/:namespaceId/edit",canActivate:[t],loadComponent:()=>import('./chunk-CbSC-SSJ.js').then(e=>e.NamespaceFormComponent)},{path:"namespaces",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunkVMQ64OCE}).then(e=>e.NamespaceListComponent)},{path:"admin",canActivate:[t],loadComponent:()=>import('./chunk-BDqV-dXo.js').then(e=>e.AdminHomeComponent)},{path:"admin/users/new",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunk32POIINB}).then(e=>e.UserFormComponent)},{path:"admin/users/:userId/edit",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunk32POIINB}).then(e=>e.UserFormComponent)},{path:"admin/users",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunk72SW52S3}).then(e=>e.AdminUsersGroupsComponent)},{path:"admin/integration-configs/new",canActivate:[t],loadComponent:()=>import('./chunk-BGM4NjUk.js').then(e=>e.IntegrationFormComponent)},{path:"admin/integration-configs/:integrationId/edit",canActivate:[t],loadComponent:()=>import('./chunk-BGM4NjUk.js').then(e=>e.IntegrationFormComponent)},{path:"admin/integration-configs",canActivate:[t],loadComponent:()=>import('./chunk-C8qVsVH8.js').then(e=>e.PlatformIntegrationConfigsComponent)},{path:"admin/scheduled-prompts/new",canActivate:[t],loadComponent:()=>import('./chunk-zyGtaVKQ.js').then(e=>e.ScheduledPromptFormComponent)},{path:"admin/scheduled-prompts/:scheduledPromptId/edit",canActivate:[t],loadComponent:()=>import('./chunk-zyGtaVKQ.js').then(e=>e.ScheduledPromptFormComponent)},{path:"admin/scheduled-prompts",canActivate:[t],loadComponent:()=>import('./chunk-DWrJdp3G.js').then(e=>e.PlatformScheduledPromptsComponent)},{path:"admin/prompts/new",canActivate:[t],loadComponent:()=>import('./chunk-3QjpTDpt.js').then(e=>e.PromptFormComponent)},{path:"admin/prompts/:promptId/edit",canActivate:[t],loadComponent:()=>import('./chunk-3QjpTDpt.js').then(e=>e.PromptFormComponent)},{path:"admin/prompts",canActivate:[t],loadComponent:()=>import('./chunk-9rFJllaP.js').then(e=>e.PlatformPromptsComponent)},{path:"admin/ai-providers/new",canActivate:[t],loadComponent:()=>import('./chunk-CTjZECqR.js').then(e=>e.AiProviderFormComponent)},{path:"admin/ai-providers/:aiProviderId/edit",canActivate:[t],loadComponent:()=>import('./chunk-CTjZECqR.js').then(e=>e.AiProviderFormComponent)},{path:"admin/ai-providers",canActivate:[t],loadComponent:()=>import('./chunk-hL6iczXD.js').then(e=>e.PlatformAiProvidersComponent)},{path:"admin/auth-settings/new",canActivate:[t],loadComponent:()=>import('./chunk-CeTVH-vp.js').then(e=>e.AuthSettingFormComponent)},{path:"admin/auth-settings/:authSettingId/edit",canActivate:[t],loadComponent:()=>import('./chunk-CeTVH-vp.js').then(e=>e.AuthSettingFormComponent)},{path:"admin/auth-settings",canActivate:[t],loadComponent:()=>import('./chunk-DgFkTqkZ.js').then(e=>e.PlatformAuthSettingsComponent)},{path:"admin/ai-models/new",canActivate:[t],loadComponent:()=>import('./chunk-B3mPWOwM.js').then(e=>e.AiModelFormComponent)},{path:"admin/ai-models/:modelId/edit",canActivate:[t],loadComponent:()=>import('./chunk-B3mPWOwM.js').then(e=>e.AiModelFormComponent)},{path:"admin/ai-models",canActivate:[t],loadComponent:()=>import('./chunk-BbOdBhQy.js').then(e=>e.PlatformAiModelsComponent)},{path:"admin/agent-configs/new",canActivate:[t],loadComponent:()=>import('./chunk-_si25xRH.js').then(e=>e.AgentConfigFormComponent)},{path:"admin/agent-configs/:agentConfigId/edit",canActivate:[t],loadComponent:()=>import('./chunk-_si25xRH.js').then(e=>e.AgentConfigFormComponent)},{path:"admin/agent-configs/:agentConfigId/inspect",canActivate:[t],loadComponent:()=>import('./chunk-CywonzJi.js').then(e=>e.AgentConfigInspectComponent)},{path:"admin/agent-configs",canActivate:[t],loadComponent:()=>import('./chunk-DJz2cMcV.js').then(e=>e.PlatformAgentConfigsComponent)},{path:"me",canActivate:[t],loadComponent:()=>import('./chunk-BhKcjruH.js').then(e=>e.UserProfileComponent)},{path:"user",canActivate:[t],loadComponent:()=>import('./chunk-BhKcjruH.js').then(e=>e.UserProfileComponent)},{path:":namespaceId/auth-settings/new",canActivate:[t],loadComponent:()=>import('./chunk-CeTVH-vp.js').then(e=>e.AuthSettingFormComponent)},{path:":namespaceId/auth-settings/:authSettingId/edit",canActivate:[t],loadComponent:()=>import('./chunk-CeTVH-vp.js').then(e=>e.AuthSettingFormComponent)},{path:":namespaceId/auth-settings",canActivate:[t],loadComponent:()=>import('./chunk-DoS8-ZTX.js').then(e=>e.AuthSettingsAllScopesComponent)},{path:":namespaceId/integrations/new",canActivate:[t],loadComponent:()=>import('./chunk-BGM4NjUk.js').then(e=>e.IntegrationFormComponent)},{path:":namespaceId/integrations/:integrationId/edit",canActivate:[t],loadComponent:()=>import('./chunk-BGM4NjUk.js').then(e=>e.IntegrationFormComponent)},{path:":namespaceId/integrations",canActivate:[t],loadComponent:()=>import('./chunk-DpRS0jIN.js').then(e=>e.IntegrationsAllScopesComponent)},{path:":namespaceId/ai-providers/new",canActivate:[t],loadComponent:()=>import('./chunk-CTjZECqR.js').then(e=>e.AiProviderFormComponent)},{path:":namespaceId/ai-providers/:aiProviderId/edit",canActivate:[t],loadComponent:()=>import('./chunk-CTjZECqR.js').then(e=>e.AiProviderFormComponent)},{path:":namespaceId/ai-providers",canActivate:[t],loadComponent:()=>import('./chunk-CpMYZ9dG.js').then(e=>e.AiProvidersAllScopesComponent)},{path:":namespaceId/ai-models/new",canActivate:[t],loadComponent:()=>import('./chunk-B3mPWOwM.js').then(e=>e.AiModelFormComponent)},{path:":namespaceId/ai-models/:modelId/edit",canActivate:[t],loadComponent:()=>import('./chunk-B3mPWOwM.js').then(e=>e.AiModelFormComponent)},{path:":namespaceId/ai-models",canActivate:[t],loadComponent:()=>import('./chunk-eqpKdy80.js').then(e=>e.NamespaceAiModelsComponent)},{path:":namespaceId/scheduled-prompts/new",canActivate:[t],loadComponent:()=>import('./chunk-zyGtaVKQ.js').then(e=>e.ScheduledPromptFormComponent)},{path:":namespaceId/scheduled-prompts/:scheduledPromptId/edit",canActivate:[t],loadComponent:()=>import('./chunk-zyGtaVKQ.js').then(e=>e.ScheduledPromptFormComponent)},{path:":namespaceId/scheduled-prompts",canActivate:[t],loadComponent:()=>import('./chunk-D1ggthOI.js').then(e=>e.ScheduledPromptListComponent)},{path:":namespaceId/prompts/new",canActivate:[t],loadComponent:()=>import('./chunk-3QjpTDpt.js').then(e=>e.PromptFormComponent)},{path:":namespaceId/prompts/:promptId/edit",canActivate:[t],loadComponent:()=>import('./chunk-3QjpTDpt.js').then(e=>e.PromptFormComponent)},{path:":namespaceId/prompts",canActivate:[t],loadComponent:()=>import('./chunk-CXVQ4M5H.js').then(e=>e.NamespacePromptsComponent)},{path:":namespaceId/agent-configs/new",canActivate:[t],loadComponent:()=>import('./chunk-_si25xRH.js').then(e=>e.AgentConfigFormComponent)},{path:":namespaceId/agent-configs/:agentConfigId/edit",canActivate:[t],loadComponent:()=>import('./chunk-_si25xRH.js').then(e=>e.AgentConfigFormComponent)},{path:":namespaceId/agent-configs/:agentConfigId/inspect",canActivate:[t],loadComponent:()=>import('./chunk-CywonzJi.js').then(e=>e.AgentConfigInspectComponent)},{path:":namespaceId/agent-configs",canActivate:[t],loadComponent:()=>import('./chunk-CisLHTrk.js').then(e=>e.NamespaceAgentConfigsComponent)},{path:":namespaceId/user-groups/new",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunkS3EJD7YS}).then(e=>e.UserGroupFormComponent)},{path:":namespaceId/user-groups/:userGroupId/edit",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunkS3EJD7YS}).then(e=>e.UserGroupFormComponent)},{path:":namespaceId/user-groups",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunkQSD43GWN}).then(e=>e.NamespaceUserGroupsComponent)},{path:":namespaceId/members",canActivate:[t],loadComponent:()=>Promise.resolve().then(function(){return chunkTF4JB4MQ}).then(e=>e.NamespaceMembersComponent)},{path:"",redirectTo:"namespaces",pathMatch:"full"}]}]}];function B(e,i){e&1&&Sg(0,"span",1);}function R(e,i){e&1&&Sg(0,"span",2);}function j(e,i){e&1&&Sg(0,"span",3);}var u=class e{pluginService=g(X$3);online=Hi$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=Aw({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&&(pl(0,"div",0),eC(1,B,1,0,"span",1)(2,R,1,0,"span",2)(3,j,1,0,"span",3),hl()),a&2){let d;XE(),tC((d=m.online())===true?1:d===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 G(e,i){if(e&1){let a=dC();vs(0,"button",9),Ag("click",function(){If(a);let d=mC();return wf(d.navigateToAdmin())}),vs(1,"span",10),WC(2,"\u2699\uFE0F"),fl()();}}function L(e,i){if(e&1&&(vs(0,"span",7),WC(1),fl()),e&2){let a=mC();XE(),Zg(a.userInitials);}}function V(e,i){e&1&&(vs(0,"span",8),WC(1,"\u25EF"),fl());}var N=class e{router=g(G$5);userState=g(u$1);destroyRef=g(we$1);currentUser=this.userState.currentUser;navigateHome(){this.router.navigate(["/agentos/home"]);}isAdmin=mT(()=>this.userState.currentUser()?.isAdmin===true);navigateToAdmin(){this.router.navigate(["/agentos/admin"]);}ngOnInit(){this.currentUser()||this.userState.loadMe().pipe(U$2(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=Aw({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&&(vs(0,"header",0)(1,"button",1),Ag("click",function(){return m.navigateHome()}),bg(2,"img",2),vs(3,"span",3),WC(4,"Coday"),fl()(),vs(5,"nav",4),bg(6,"agentos-backend-status"),eC(7,G,3,0,"button",5),vs(8,"button",6),Ag("click",function(){return m.toggleProfile()}),eC(9,L,2,1,"span",7)(10,V,2,0,"span",8),fl()()()),a&2&&(XE(7),tC(m.isAdmin()?7:-1),XE(),Hg("header__user-btn--active",m.isOnProfilePage),Tg("title",m.isOnProfilePage?"Back":"My profile"),XE(),tC(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&&(vs(0,"p",11),WC(1," Last action: "),vs(2,"strong"),WC(3),fl()()),e&2){let a=mC();XE(3),Zg(a.lastAction());}}var z=class e{lastAction=Hi$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=Aw({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&&(vs(0,"div",0)(1,"div",1)(2,"div",2),WC(3,"AgentOS UI"),fl(),vs(4,"h1"),WC(5,"Hello AgentOS"),fl(),vs(6,"p"),WC(7," This component lives in "),vs(8,"code"),WC(9,"libs/agentos-ui"),fl(),WC(10," \u2014 isolated from Coday internals, ready to be published as "),vs(11,"code"),WC(12,"@whoz-oss/agentos-ui"),fl(),WC(13,". "),fl(),bg(14,"agentos-backend-status"),vs(15,"ul",3)(16,"li"),WC(17,"\u2726 No imports from Coday app"),fl(),vs(18,"li"),WC(19,"\u2726 CSS custom properties as host contract"),fl(),vs(20,"li"),WC(21,"\u2726 Standalone Angular components"),fl(),vs(22,"li"),WC(23,"\u2726 Signals-first reactive state"),fl()(),vs(24,"div",4)(25,"p",5),WC(26,"ds-icon-button from "),vs(27,"code"),WC(28,"@whoz-oss/design-system"),fl()(),vs(29,"div",6)(30,"ds-icon-button",7),Ag("action",function(){return m.onSend()}),fl(),vs(31,"ds-icon-button",8),Ag("action",function(){return m.onStop()}),fl(),vs(32,"ds-icon-button",9),Ag("action",function(){return m.onAttach()}),fl(),vs(33,"ds-icon-button",10),Ag("action",function(){return m.onAttach()}),fl()(),eC(34,W,4,1,"p",11),fl()()()),a&2&&(XE(33),Tg("disabled",true),XE(),tC(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 chunk73NOTXVU=/*#__PURE__*/Object.freeze({__proto__:null,AGENTOS_ROUTES:Ge,ActionCardChipsDirective:h$2,ActionCardComponent:B$1,AdminUsersGroupsComponent:Z,AgentosShellComponent:l$1,AgentosThemeService:m$1,AgentosUserPreferencesService:o,BackendStatusComponent:u,CaseChatComponent:et,CaseDrawerComponent:ot,CaseHomeComponent:tt,CaseItemComponent:nt,CaseShellComponent:In,ENTER_KEY_BEHAVIORS:l,ExchangeContentViewerComponent:Qe,ExchangeDrawerComponent:Ge$1,ExchangeFileListComponent:We,ExchangeItemComponent:fe,ExchangeShellComponent:Ke,ExchangeStateService:re,HeaderComponent:N,HelloAgentosComponent:z,LayoutComponent:x,MAX_VIEWABLE_SIZE:Xn,MarkdownPipe:d$1,NamespaceItemComponent:M,NamespaceListComponent:W$1,NamespaceMemberStateService:S,NamespaceMembersComponent:H$2,NamespaceSelectComponent:w,NamespaceUserGroupsComponent:d$3,THEME_MODES:l$2,THEME_PORT:I$1,THEME_VARIANTS:p$1,USER_PREFERENCES_PORT:f,UserAdminStateService:c$1,UserFormComponent:$,UserGroupFormComponent:le$2,UserGroupItemComponent:D$1,UserGroupListComponent:te$3,UserGroupStateService:m$3,UserItemComponent:I$2,UserListComponent:k,UserStateService:u$1,agentosReadyGuard:t,canViewFile:fn,detectFormat:Cn,exchangeMutationScope:xn,formatDate:hn,formatSize:gn,getFileIcon:je,isFormatViewable:eo,isViewable:to,reindentJson:bn});var chunkB33G64X6=/*#__PURE__*/Object.freeze({__proto__:null,AgentosShellComponent:l$1});var chunkPIVWBUVD=/*#__PURE__*/Object.freeze({__proto__:null,CaseShellComponent:In});var chunkDOMQEK34=/*#__PURE__*/Object.freeze({__proto__:null,LayoutComponent:x});var chunkVMQ64OCE=/*#__PURE__*/Object.freeze({__proto__:null,NamespaceListComponent:W$1});var chunk32POIINB=/*#__PURE__*/Object.freeze({__proto__:null,UserFormComponent:$});var chunk72SW52S3=/*#__PURE__*/Object.freeze({__proto__:null,AdminUsersGroupsComponent:Z});var chunkS3EJD7YS=/*#__PURE__*/Object.freeze({__proto__:null,UserGroupFormComponent:le$2});var chunkQSD43GWN=/*#__PURE__*/Object.freeze({__proto__:null,NamespaceUserGroupsComponent:d$3});var chunkTF4JB4MQ=/*#__PURE__*/Object.freeze({__proto__:null,NamespaceMembersComponent:H$2});export{B$1 as B,I$1 as I,chunk73NOTXVU as c,d$1 as d,f,m,p,u$1 as u};
|