@whoz-oss/coday-client 0.211.0 → 0.211.1
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-26Y7QHUX.js +6 -0
- package/browser/{chunk-AFDQ6DZP.js → chunk-2D4GFLRK.js} +1 -1
- package/browser/{chunk-RAZWY4EA.js → chunk-2DY4SDDH.js} +1 -1
- package/browser/{chunk-BE7M4IG4.js → chunk-2RE6V43M.js} +1 -1
- package/browser/{chunk-TISGZSTL.js → chunk-4MF2HW3L.js} +1 -1
- package/browser/{chunk-CJGAUAQG.js → chunk-4SGDH2OK.js} +1 -1
- package/browser/{chunk-XEZ6VJ4O.js → chunk-5WOINLAX.js} +1 -1
- package/browser/{chunk-2BY3KQRI.js → chunk-6PK5FNSW.js} +1 -1
- package/browser/{chunk-C2WDN7VC.js → chunk-AUQEDCYM.js} +1 -1
- package/browser/{chunk-GPFXEDNE.js → chunk-B4FX32QR.js} +1 -1
- package/browser/{chunk-H3TZ44FQ.js → chunk-BFRQNDIH.js} +1 -1
- package/browser/{chunk-JE46DHIY.js → chunk-CFLI2OWG.js} +1 -1
- package/browser/{chunk-P2H3E3A5.js → chunk-CGTCICKZ.js} +1 -1
- package/browser/{chunk-XMX2HILZ.js → chunk-CX7XKBK2.js} +1 -1
- package/browser/{chunk-M7KJM66I.js → chunk-FNFYAJMS.js} +1 -1
- package/browser/{chunk-DCQJI6UI.js → chunk-HCFETNQ6.js} +1 -1
- package/browser/{chunk-SVDYPTKV.js → chunk-JBAFVFZR.js} +1 -1
- package/browser/{chunk-LNJHIZH4.js → chunk-JVDPRI2N.js} +1 -1
- package/browser/{chunk-ERDL7CBL.js → chunk-M3ZPITZW.js} +1 -1
- package/browser/{chunk-ICVL3MNG.js → chunk-M7CBEYMD.js} +1 -1
- package/browser/{chunk-EKDXOFZ4.js → chunk-MLKV56MK.js} +1 -1
- package/browser/{chunk-E5DDFFB5.js → chunk-MR7WYSXF.js} +1 -1
- package/browser/{chunk-2C5ENIQ7.js → chunk-MXVXTRUI.js} +1 -1
- package/browser/{chunk-JEQJLLFU.js → chunk-QNFNT462.js} +1 -1
- package/browser/{chunk-BIRQBBDM.js → chunk-QX3PREUS.js} +1 -1
- package/browser/{chunk-Z54GR5ZE.js → chunk-S7FMQPO3.js} +1 -1
- package/browser/{chunk-Y7F5MAVT.js → chunk-SJFPTVIP.js} +1 -1
- package/browser/{chunk-74OAAPUO.js → chunk-SOHEYVJF.js} +1 -1
- package/browser/{chunk-JKGV5VDH.js → chunk-SQCTA46L.js} +1 -1
- package/browser/{chunk-QGAK24J7.js → chunk-SQWYD6HJ.js} +1 -1
- package/browser/{chunk-7ZPD4MSE.js → chunk-U4IRQFQX.js} +1 -1
- package/browser/{chunk-VMVYRYDR.js → chunk-UDIJZYRI.js} +1 -1
- package/browser/{chunk-MXMEO3GF.js → chunk-UMIKI5LE.js} +1 -1
- package/browser/{chunk-UQKCMPNK.js → chunk-XKH66LUP.js} +1 -1
- package/browser/{chunk-GMEPQIKD.js → chunk-Y2UH6C4J.js} +1 -1
- package/browser/{chunk-6XJNC5K6.js → chunk-Y32N3VH4.js} +1 -1
- package/browser/index.html +1 -1
- package/browser/main-FRF4H6OA.js +1 -0
- package/package.json +1 -1
- package/browser/chunk-F7X52MX4.js +0 -6
- package/browser/main-NWHBJ3QR.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as ge}from"./chunk-IAIUV3RV.js";import{a as he}from"./chunk-7BVQ2WHQ.js";import{a as Ce}from"./chunk-5V6YWKKW.js";import{a as Xe}from"./chunk-ZX7BSCA5.js";import{c as Ke}from"./chunk-Q4QETBSU.js";import{a as pe,e as _e,h as Be}from"./chunk-5TU5JR3W.js";import{a as Qe,b as je,c as Ye}from"./chunk-CHH2YNB6.js";import{a as J,c as me}from"./chunk-32554AB2.js";import{o as ue,t as Ge}from"./chunk-F7X52MX4.js";import{a as L,b as Ue,c as te}from"./chunk-BVQ4XPRS.js";import{Ab as Me,Bb as S,D as ae,Db as u,Eb as X,F as Y,Fb as c,Ga as Re,Hc as $e,Jb as W,Ka as s,Kb as q,Kc as He,Lb as V,Ma as re,Pb as le,Q as Oe,Qb as ce,Rb as I,S as H,Sb as Te,Tb as d,Ub as g,Uc as de,Vb as z,Wa as P,Xb as qe,Xc as We,Z as Ie,a as ne,ab as se,b as oe,ca as y,cc as Ve,dc as Le,ec as ze,fc as Fe,ga as C,h as ie,ha as b,i as Ee,ic as ke,jb as ee,kb as Ae,lb as p,lc as T,m as j,ma as G,mb as _,oc as v,pa as De,pb as D,pc as f,qb as N,rb as M,sb as r,t as $,ta as x,tb as l,ua as K,ub as A,va as Ne,vb as k,wb as O,xb as Se}from"./chunk-QDO3O2UB.js";var Z=class o{caseController=y(_e);cases=x([]);loadSubscription=null;loadCases(t){this.loadSubscription?.unsubscribe(),this.loadSubscription=this.caseController.listByParentCase(t).subscribe(e=>{this.cases.set(e),this.loadSubscription=null})}addCase(t){this.cases.update(e=>[t,...e])}updateCaseTitle(t,e){this.cases.update(n=>n.map(i=>i.id===t?oe(ne({},i),{title:e}):i))}static \u0275fac=function(e){return new(e||o)};static \u0275prov=Ie({token:o,factory:o.\u0275fac,providedIn:"root"})};var ot=["promptItem"],Je=(o,t)=>t.name;function it(o,t){if(o&1&&(k(0,"span",5),d(1),O()),o&2){let e=t.$implicit;s(),qe("","{","","{","",e.name,"","}","","}")}}function at(o,t){if(o&1&&(k(0,"span",6),d(1),O()),o&2){let e=c().$implicit;s(),g(e.description)}}function rt(o,t){if(o&1){let e=S();k(0,"li",3,0),X("click",function(){let i=C(e).$implicit,a=c();return b(a.onItemClick(i))})("keydown.enter",function(){let i=C(e).$implicit,a=c();return b(a.onItemClick(i))})("mouseenter",function(){let i=C(e).$index,a=c();return b(a.activeIndex.set(i))}),k(2,"span",4),d(3),D(4,it,2,5,"span",5,Je),O(),p(6,at,2,1,"span",6),O()}if(o&2){let e=t.$implicit,n=t.$index,i=c();I("prompt-autocomplete__item--active",i.isActive(n)),ee("aria-selected",i.isActive(n)),s(3),z(" /",e.name," "),s(),N(e.parameters),s(2),_(e.description?6:-1)}}var U=class o{prompts=f.required();selected=v();dismissed=v();activeIndex=x(0);itemRefs;ngOnChanges(t){t.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?.toArray()?.[this.activeIndex()]?.nativeElement.scrollIntoView({block:"nearest"})}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=P({type:o,selectors:[["agentos-prompt-autocomplete"]],viewQuery:function(e,n){if(e&1&&W(ot,5),e&2){let i;q(i=V())&&(n.itemRefs=i)}},inputs:{prompts:[1,"prompts"]},outputs:{selected:"selected",dismissed:"dismissed"},features:[Ne],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&&(k(0,"ul",1),D(1,rt,7,5,"li",2,Je),O()),e&2&&(s(),N(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}"],changeDetection:0})};var st=["composerInput"],lt=["messagesContainer"],ct=(o,t)=>t.phaseIndex;function dt(o,t){o&1&&(r(0,"div",4)(1,"p"),d(2,"No messages yet."),l()())}function mt(o,t){if(o&1&&(r(0,"div",19)(1,"span",22),d(2,"session context"),l(),r(3,"pre",23),d(4),ze(5,"json"),l()()),o&2){let e=c(2).$implicit;s(4),g(Fe(5,1,e.event.sessionContext))}}function pt(o,t){if(o&1&&(r(0,"div",18),p(1,mt,6,3,"div",19),r(2,"span",20),d(3),l(),A(4,"div",21),l()),o&2){let e=c().$implicit,n=c(2);I("case-chat__message--user",e.event.actor.role==="USER")("case-chat__message--agent",e.event.actor.role==="AGENT"),s(),_(n.showTechnical()&&e.event.sessionContext?1:-1),s(2),g(e.event.actor.displayName),s(),M("innerHTML",e.html,Re)}}function _t(o,t){if(o&1&&(r(0,"div",15)(1,"span",20),d(2),l(),r(3,"p",24),d(4),l()()),o&2){let e=c().$implicit,n=c(2);s(2),g(n.agentDisplayName()),s(2),g(e.text)}}function ut(o,t){if(o&1&&(r(0,"div",29),d(1),l()),o&2){let e=c(3).$implicit;s(),g(e.item.detail)}}function ht(o,t){if(o&1){let e=S();r(0,"button",27),u("click",function(){C(e);let i=c(2).$implicit,a=c(2);return b(a.toggleTechnical(i.eventId))}),r(1,"span",26),d(2),l(),r(3,"span",28),d(4),l()(),p(5,ut,2,1,"div",29)}if(o&2){let e=c(2).$implicit,n=c(2);ee("aria-expanded",n.isTechnicalExpanded(e.eventId)),s(2),g(e.item.label),s(2),g(n.isTechnicalExpanded(e.eventId)?"\u25BC":"\u25B6"),s(),_(n.isTechnicalExpanded(e.eventId)?5:-1)}}function gt(o,t){if(o&1&&(r(0,"span",26),d(1),l()),o&2){let e=c(2).$implicit;s(),g(e.item.label)}}function Ct(o,t){if(o&1&&(r(0,"div",25),p(1,ht,6,4)(2,gt,2,1,"span",26),l()),o&2){let e=c().$implicit;I("case-chat__technical--warn",e.item.type==="WarnEvent")("case-chat__technical--error",e.item.type==="ErrorEvent"),s(),_(e.item.detail?1:2)}}function bt(o,t){o&1&&d(0," \u23F3 ")}function ft(o,t){o&1&&d(0," \u2705 ")}function vt(o,t){o&1&&d(0," \u274C ")}function xt(o,t){if(o&1&&(r(0,"div",46)(1,"span",47),d(2,"Enrichment content"),l(),r(3,"pre"),d(4),l()()),o&2){let e=c().$implicit;s(4),g(e.enrichmentContent)}}function yt(o,t){if(o&1&&(r(0,"div",42)(1,"div",43)(2,"span",44),d(3),l(),r(4,"span",45),d(5),l()(),r(6,"div",46)(7,"span",47),d(8,"Prompt"),l(),r(9,"pre"),d(10),l()(),r(11,"div",46)(12,"span",47),d(13,"LLM output"),l(),r(14,"pre"),d(15),l()(),p(16,xt,5,1,"div",46),l()),o&2){let e=t.$implicit;I("case-chat__enrichment-phase--failed",!e.success),s(3),z("Phase ",e.phaseIndex),s(2),g(e.success?"\u2705":"\u274C"),s(5),g(e.prompt),s(5),g(e.llmOutput),s(),_(e.enrichmentContent?16:-1)}}function wt(o,t){if(o&1&&(r(0,"div",36)(1,"span",38),d(2,"Enrichment phases"),l(),D(3,yt,17,7,"div",41,ct),l()),o&2){let e=c(3).$implicit;s(3),N(e.call.enrichmentPhases)}}function St(o,t){if(o&1&&(r(0,"div",37)(1,"span",38),d(2,"Payload"),l(),r(3,"pre"),d(4),l()()),o&2){let e=c(3).$implicit;s(4),g(e.call.args)}}function Mt(o,t){o&1&&(r(0,"pre"),d(1),l()),o&2&&(s(),g(t))}function Tt(o,t){o&1&&(r(0,"span",39),d(1,"Running\u2026"),l())}function kt(o,t){o&1&&(r(0,"span",40),d(1,"No output"),l())}function Pt(o,t){if(o&1&&(r(0,"div",35),p(1,wt,5,0,"div",36),p(2,St,5,1,"div",37),r(3,"div",37)(4,"span",38),d(5,"Output"),l(),p(6,Mt,2,1,"pre")(7,Tt,2,0,"span",39)(8,kt,2,0,"span",40),l()()),o&2){let e,n=c(2).$implicit,i=c(2);s(),_(i.showTechnical()&&(n.call.enrichmentPhases!=null&&n.call.enrichmentPhases.length)?1:-1),s(),_(n.call.args?2:-1),s(4),_((e=i.extractToolOutput(n.call))?6:n.call.response?8:7,e)}}function Et(o,t){if(o&1){let e=S();r(0,"div",30)(1,"button",31),u("click",function(){C(e);let i=c().$implicit,a=c(2);return b(a.toggleToolCall(i.call.requestId))}),r(2,"span",32),p(3,bt,1,0)(4,ft,1,0)(5,vt,1,0),l(),r(6,"span",33),d(7),l(),r(8,"span",34),d(9),l()(),p(10,Pt,9,3,"div",35),l()}if(o&2){let e=c().$implicit,n=c(2);I("case-chat__tool-call--pending",!e.call.response)("case-chat__tool-call--success",(e.call.response==null?null:e.call.response.success)===!0)("case-chat__tool-call--error",(e.call.response==null?null:e.call.response.success)===!1),s(),ee("aria-expanded",n.isToolCallExpanded(e.call.requestId)),s(2),_(e.call.response?e.call.response.success?4:5:3),s(4),g(e.call.toolName),s(2),g(n.isToolCallExpanded(e.call.requestId)?"\u25BC":"\u25B6"),s(),_(n.isToolCallExpanded(e.call.requestId)?10:-1)}}function Ot(o,t){if(o&1&&p(0,pt,5,7,"div",14)(1,_t,5,2,"div",15)(2,Ct,3,5,"div",16)(3,Et,11,11,"div",17),o&2){let e=t.$implicit;_(e.kind==="message"?0:e.kind==="streaming"?1:e.kind==="technical"?2:3)}}function It(o,t){if(o&1&&D(0,Ot,4,1,null,null,Ae().trackTimelineItem,!0),o&2){let e=c();N(e.timeline())}}function Dt(o,t){o&1&&(r(0,"div",5),A(1,"span",48)(2,"span",48)(3,"span",48),l())}function Nt(o,t){if(o&1){let e=S();r(0,"div",6)(1,"ds-icon-button",49),u("action",function(){C(e);let i=c();return b(i.onScrollToBottomClick())}),l()()}}function Rt(o,t){if(o&1){let e=S();r(0,"div",8)(1,"agentos-prompt-autocomplete",50),u("selected",function(i){C(e);let a=c();return b(a.onPromptSelected(i))})("dismissed",function(){C(e);let i=c();return b(i.closeAutocomplete())}),l()()}if(o&2){let e=c();s(),M("prompts",e.slashSuggestions())}}function At(o,t){if(o&1){let e=S();r(0,"ds-icon-button",51),u("action",function(){C(e);let i=c();return b(i.interrupt())}),l()}}function qt(o,t){if(o&1){let e=S();r(0,"ds-icon-button",52),u("action",function(){C(e);let i=c();return b(i.submit())}),l()}if(o&2){let e=c();M("title",e.preferences.composerHint())("disabled",!e.canSend)}}var Vt=64,be=class o{route=y(J);http=y(de);zone=y(De);destroyRef=y(G);domSanitizer=y(We);config=y(pe);preferences=y(ge);caseState=y(Z);promptState=y(he);caseId=this.route.snapshot.queryParams.case;namespaceId=this.route.snapshot.queryParams.ns;markdownRenderer=this.buildMarkdownRenderer();agentDisplayName=T(()=>{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;messagesContainer;autocompleteRef;events=x([]);messageHtmlCache=new Map;inputValue=x("");isRunning=x(!1);isTerminal=x(!1);effectivePrompts=[];promptsLoaded=!1;slashPrefix$=new ie;slashSuggestions=x([]);static SHOW_TECHNICAL_KEY="agentos.case-chat.showTechnical";showTechnical=x(localStorage.getItem(o.SHOW_TECHNICAL_KEY)==="true");showTechnicalOverride=f(!1);streamingText=x("");collapsedTools=x(new Set);expandedTechnicals=x(new Set);isAtBottom=x(!0);scrollListenerCleanup=null;constructor(){this.slashPrefix$.pipe(Y(60),H(t=>(this.promptsLoaded?j(this.effectivePrompts):this.promptState.listEffective(this.namespaceId).pipe(ae(()=>j([])))).pipe($(n=>({prefix:t,prompts:n})))),L(this.destroyRef)).subscribe(({prefix:t,prompts:e})=>{this.effectivePrompts=e,this.promptsLoaded=!0,this.slashSuggestions.set(e.filter(n=>n.name.toLowerCase().startsWith(t.toLowerCase())))}),K(()=>{this.showTechnical.set(this.showTechnicalOverride())}),K(()=>{this.isRunning()||this.isTerminal()||queueMicrotask(()=>this.composerInput?.nativeElement.focus())}),K(()=>{this.timeline(),this.streamingText(),this.isAtBottom()&&queueMicrotask(()=>this.scrollToBottom())}),re(()=>{this.attachScrollListener()})}baseTimeline=T(()=>{let t=this.events(),e=this.showTechnical(),n=new Map;for(let w of t)if(w.type==="ToolRequestEvent"){let m=w,h=m.toolRequestId??w.id,R=n.get(h);n.set(h,{requestId:h,toolName:m.toolName??"unknown",args:m.args??null,response:R?.response,enrichmentPhases:m.enrichmentPhases??null})}else if(w.type==="ToolResponseEvent"){let m=w,h=m.toolRequestId??w.id,R=n.get(h);n.set(h,{requestId:h,toolName:R?.toolName??m.toolName??"unknown",args:R?.args??null,response:m,enrichmentPhases:R?.enrichmentPhases??null})}let i=[],a=new Set;for(let w of t)if(w.type==="MessageEvent"){let m=w;i.push({kind:"message",event:m,html:this.messageHtmlCache.get(w.id)??""})}else if(w.type==="ToolRequestEvent"||w.type==="ToolResponseEvent"){let m=w.toolRequestId??w.id;a.has(m)||(a.add(m),i.push({kind:"tool",call:n.get(m)}))}else if(e){let m=this.toTechnicalItem(w);m&&i.push({kind:"technical",item:m,eventId:w.id})}return i});timeline=T(()=>{let t=this.baseTimeline(),e=this.streamingText();return e.trim().length===0?t:[...t,{kind:"streaming",text:e}]});trackTimelineItem(t,e){switch(e.kind){case"message":return e.event.id;case"tool":return e.call.requestId;case"technical":return e.eventId;case"streaming":return"streaming"}}get canSend(){return!!this.inputValue().trim()&&!this.isRunning()&&!this.isTerminal()}ngOnInit(){this.connectSse(),this.route.queryParams.pipe(L(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<=Vt)};t.addEventListener("scroll",e,{passive:!0}),this.scrollListenerCleanup=()=>t.removeEventListener("scroll",e)}scrollToBottom(){let t=this.messagesContainer?.nativeElement;t&&(t.scrollTop=t.scrollHeight)}onScrollToBottomClick(){this.isAtBottom.set(!0),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(),w=i.type,m=i.data;console.log("[AgentOS SSE] frame received",{sseEventName:w,dataLength:m?.length??0,dataPreview:m?.slice(0,120),receivedAtMs:a});try{let h=JSON.parse(m);this.zone.run(()=>{let R=this.events().length;if(h.type==="MessageEvent"){let E=h,F=this.extractText(E);this.messageHtmlCache.has(h.id)||this.messageHtmlCache.set(h.id,this.renderMarkdown(F))}this.events.update(E=>E.some(F=>F.id===h.id)?E:[...E,h]);let nt=this.events().length;if(console.log("[AgentOS SSE] event processed",{sseEventName:w,eventType:h.type,eventId:h.id,beforeLen:R,afterLen:nt,running:this.isRunning(),terminal:this.isTerminal()}),h.type==="TextChunkEvent"){let E=h.chunk;E&&this.streamingText.update(F=>F+E);return}if(h.type==="CaseUpdatedEvent"){let E=h;E.title&&this.caseState.updateCaseTitle(h.caseId,E.title);return}if(h.type==="CaseStatusEvent"){let E=h.status,F=E==="KILLED"||E==="ERROR";if(this.isTerminal.set(F),F)this.isRunning.set(!1),this.eventSource?.close(),this.eventSource=null;else{let Pe=E==="RUNNING";this.isRunning.set(Pe),Pe||this.streamingText.set("")}return}if(h.type==="AgentFinishedEvent"){this.isRunning.set(!1),this.streamingText.set("");return}})}catch(h){console.warn("[AgentOS SSE] failed to parse event data",{sseEventName:w,error:h,dataPreview:m?.slice(0,500)})}},n=["MessageEvent","CaseStatusEvent","CaseUpdatedEvent","AgentSelectedEvent","AgentRunningEvent","AgentFinishedEvent","ThinkingEvent","TextChunkEvent","ToolRequestEvent","ToolResponseEvent","PendingConfirmationEvent","ConfirmationResolvedEvent","ErrorEvent","WarnEvent","IntentionGeneratedEvent"];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(!1)})}}onInput(t){let e=t.target.value;this.inputValue.set(e),this.updateSlashAutocomplete(e)}onKeydown(t){if(this.slashSuggestions().length>0){if(t.key==="ArrowDown"||t.key==="ArrowUp"){t.preventDefault(),this.autocompleteRef?.navigate(t.key);return}if(t.key==="Escape"){t.preventDefault(),this.closeAutocomplete();return}if(t.key==="Tab"||t.key==="Enter"){t.preventDefault(),this.autocompleteRef?.navigate("Enter");return}}this.preferences.shouldSend(t)&&(t.preventDefault(),this.submit())}onPromptSelected(t){let e=this.autocompleteRef?.completionFor(t)??`/${t.name} `;this.inputValue.set(e),queueMicrotask(()=>{let n=this.composerInput?.nativeElement;n&&(n.value=e,n.setSelectionRange(e.length,e.length),n.focus())}),this.closeAutocomplete()}closeAutocomplete(){this.slashSuggestions.set([])}updateSlashAutocomplete(t){if(!t.startsWith("/")){this.slashSuggestions().length&&this.slashSuggestions.set([]);return}let e=t.slice(1);if(e.includes(" ")){this.slashSuggestions().length&&this.slashSuggestions.set([]);return}this.promptsLoaded&&this.slashSuggestions.set(this.effectivePrompts.filter(n=>n.name.toLowerCase().startsWith(e.toLowerCase()))),this.slashPrefix$.next(e)}reinitialise(){this.eventSource?.close(),this.eventSource=null,this.events.set([]),this.messageHtmlCache.clear(),this.inputValue.set(""),this.isRunning.set(!1),this.isTerminal.set(!1),this.streamingText.set(""),this.collapsedTools.set(new Set),this.isAtBottom.set(!0),this.slashSuggestions.set([]),this.effectivePrompts=[],this.promptsLoaded=!1,this.connectSse()}submit(){if(!this.canSend)return;let t=this.inputValue().trim();this.inputValue.set(""),this.sendMessage(t)}sendMessage(t){this.isRunning.set(!0),this.streamingText.set(""),this.http.post(`${this.config.basePath}/api/cases/${this.caseId}/messages`,{content:t,userId:"default-user"}).subscribe({error:e=>{console.error("[CaseChat] Failed to send message",e),this.isRunning.set(!1)}})}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("")??""}extractToolOutput(t){if(!t.response)return null;let e=t.response.output;return e?e.content??null:null}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.showTechnical.update(t=>{let e=!t;return localStorage.setItem(o.SHOW_TECHNICAL_KEY,String(e)),e})}toggleTechnical(t){this.expandedTechnicals.update(e=>{let n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n})}isTechnicalExpanded(t){return this.expandedTechnicals().has(t)}renderMarkdown(t){if(!t)return"";let e=je.parse(t,{renderer:this.markdownRenderer,breaks:!0,gfm:!0,async:!1}),n=Ye.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 Qe,e=t.link.bind(t);return t.link=n=>{let i=e(n);return this.isExternalLink(n.href)&&(i=i.replace("<a ",'<a target="_blank" rel="noopener noreferrer" ').replace("</a>",'<span class="external-link-icon" aria-hidden="true">\u2197</span></a>')),i},t}isExternalLink(t){if(!t||t.startsWith("/")||t.startsWith("#")||t.startsWith("?"))return!1;if(t.startsWith("//"))return!0;try{return new URL(t,window.location.href).hostname!==window.location.hostname}catch(e){return!1}}toTechnicalItem(t){switch(t.type){case"WarnEvent":return{type:"WarnEvent",label:"\u26A0\uFE0F Warn",detail:t.message};case"ErrorEvent":return{type:"ErrorEvent",label:"\u274C Error",detail:t.message};case"CaseStatusEvent":return{type:"CaseStatusEvent",label:`\u{1F7E1} Status: ${t.status}`};case"AgentRunningEvent":return{type:"AgentRunningEvent",label:`\u25B6\uFE0F Agent running: ${t.agentName}`};case"AgentFinishedEvent":return{type:"AgentFinishedEvent",label:`\u2705 Agent finished: ${t.agentName}`};case"AgentSelectedEvent":return{type:"AgentSelectedEvent",label:`\u{1F3AF} Agent selected: ${t.agentName}`};case"IntentionGeneratedEvent":{let e=t;return{type:"IntentionGeneratedEvent",label:`\u{1F9E0} Intention \u2192 ${e.toolName}`,detail:e.intention}}default:return null}}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=P({type:o,selectors:[["agentos-case-chat"]],viewQuery:function(e,n){if(e&1&&W(st,5)(lt,5)(U,5),e&2){let i;q(i=V())&&(n.composerInput=i.first),q(i=V())&&(n.messagesContainer=i.first),q(i=V())&&(n.autocompleteRef=i.first)}},inputs:{showTechnicalOverride:[1,"showTechnicalOverride"]},decls:15,vars:8,consts:[["messagesContainer",""],["composerInput",""],[1,"case-chat"],[1,"case-chat__messages"],[1,"case-chat__empty"],[1,"case-chat__thinking"],[1,"case-chat__scroll-anchor"],[1,"case-chat__composer"],[1,"case-chat__autocomplete"],["placeholder","Reply\u2026","rows","3",1,"case-chat__input",3,"input","keydown","value","disabled"],[1,"case-chat__actions"],["icon","stop","variant","danger","title","Interrupt"],["icon","send","variant","primary",3,"title","disabled"],["icon","cancel","variant","danger","title","Kill",3,"action","disabled"],[1,"case-chat__message",3,"case-chat__message--user","case-chat__message--agent"],[1,"case-chat__message","case-chat__message--agent","case-chat__message--streaming"],[1,"case-chat__technical",3,"case-chat__technical--warn","case-chat__technical--error"],[1,"case-chat__tool-call",3,"case-chat__tool-call--pending","case-chat__tool-call--success","case-chat__tool-call--error"],[1,"case-chat__message"],[1,"case-chat__session-context"],[1,"case-chat__message-author"],[1,"case-chat__message-text","case-chat__message-text--markdown",3,"innerHTML"],[1,"case-chat__session-context-label"],[1,"case-chat__session-context-body"],[1,"case-chat__message-text"],[1,"case-chat__technical"],[1,"case-chat__technical-label"],["type","button",1,"case-chat__technical-header",3,"click"],[1,"case-chat__technical-chevron"],[1,"case-chat__technical-body"],[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-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"],[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","prompts"],["icon","stop","variant","danger","title","Interrupt",3,"action"],["icon","send","variant","primary",3,"action","title","disabled"]],template:function(e,n){e&1&&(r(0,"div",2)(1,"div",3,0),p(3,dt,3,0,"div",4)(4,It,2,0),p(5,Dt,4,0,"div",5),l(),p(6,Nt,2,0,"div",6),r(7,"div",7),p(8,Rt,2,1,"div",8),r(9,"textarea",9,1),u("input",function(a){return n.onInput(a)})("keydown",function(a){return n.onKeydown(a)}),l(),r(11,"div",10),p(12,At,1,0,"ds-icon-button",11)(13,qt,1,2,"ds-icon-button",12),r(14,"ds-icon-button",13),u("action",function(){return n.kill()}),l()()()()),e&2&&(s(3),_(n.timeline().length===0?3:4),s(2),_(n.isRunning()?5:-1),s(),_(n.isAtBottom()?-1:6),s(2),_(n.slashSuggestions().length>0?8:-1),s(),M("value",n.inputValue())("disabled",n.isRunning()||n.isTerminal()),s(3),_(n.isRunning()?12:13),s(2),M("disabled",n.isTerminal()))},dependencies:[ue,U,He],styles:['[_nghost-%COMP%]{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.case-chat[_ngcontent-%COMP%]{display:flex;flex-direction:column;flex:1;min-height:0;max-width:800px;width:100%;margin:0 auto;padding:1.5rem;gap:1rem;position:relative}.case-chat__messages[_ngcontent-%COMP%]{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:.75rem;padding-bottom:.5rem;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--color-border, rgba(0, 0, 0, .15)) 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-text-secondary, #6e6e73);font-size:.9rem;margin:0}.case-chat__tool-calls[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.4rem;margin-top:.25rem}.case-chat__tool-call[_ngcontent-%COMP%]{flex-shrink:0;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:var(--glass-bg, rgba(255, 255, 255, .72));font-size:.8rem;overflow:hidden;transition:border-color .2s ease}.case-chat__tool-call--pending[_ngcontent-%COMP%]{border-color:var(--color-warning, #f5a623);opacity:.8}.case-chat__tool-call--success[_ngcontent-%COMP%]{border-color:var(--color-success, #34c759)}.case-chat__tool-call--error[_ngcontent-%COMP%]{border-color:var(--color-error, #ff3b30)}.case-chat__tool-call-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.4rem;width:100%;padding:.4rem .6rem;background:transparent;border:none;cursor:pointer;text-align:left;color:var(--color-text, #1d1d1f);font-family:inherit;font-size:.8rem}.case-chat__tool-call-header[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04))}.case-chat__tool-call-icon[_ngcontent-%COMP%]{flex-shrink:0;font-size:.75rem}.case-chat__tool-call-name[_ngcontent-%COMP%]{font-weight:600;font-family:var(--font-mono, ui-monospace, "SF Mono", monospace);color:var(--color-primary, #0071e3);flex-shrink:0}.case-chat__tool-call-args[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);font-family:var(--font-mono, ui-monospace, "SF Mono", monospace);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.case-chat__tool-call-chevron[_ngcontent-%COMP%]{flex-shrink:0;font-size:.6rem;color:var(--color-text-secondary, #6e6e73);margin-left:auto}.case-chat__tool-call-output[_ngcontent-%COMP%]{border-top:1px solid var(--color-border, rgba(0, 0, 0, .08));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-border, rgba(0, 0, 0, .06))}.case-chat__tool-call-section[_ngcontent-%COMP%] pre[_ngcontent-%COMP%]{margin:.25rem 0 0;white-space:pre-wrap;word-break:break-all;font-family:var(--font-mono, ui-monospace, "SF Mono", monospace);font-size:.75rem;color:var(--color-text, #1d1d1f);max-height:200px;overflow-y:auto}.case-chat__tool-call-label[_ngcontent-%COMP%]{display:block;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary, #6e6e73)}.case-chat__enrichment-section[_ngcontent-%COMP%]{background:var(--color-surface-secondary, rgba(0, 0, 0, .02))}.case-chat__enrichment-phase[_ngcontent-%COMP%]{margin-top:.35rem;border-radius:4px;border:1px solid var(--color-border, rgba(0, 0, 0, .08));background:var(--glass-bg, rgba(255, 255, 255, .6));overflow:hidden}.case-chat__enrichment-phase--failed[_ngcontent-%COMP%]{border-color:var(--color-error, #ff3b30);background:#ff3b300a}.case-chat__enrichment-phase-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:.2rem .5rem;background:var(--color-surface-secondary, rgba(0, 0, 0, .03));border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .06))}.case-chat__enrichment-phase-index[_ngcontent-%COMP%]{font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary, #6e6e73)}.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-border, rgba(0, 0, 0, .04))}.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-mono, ui-monospace, "SF Mono", monospace);font-size:.7rem;color:var(--color-text, #1d1d1f);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-text-secondary, #6e6e73)}.case-chat__tool-call-pending[_ngcontent-%COMP%], .case-chat__tool-call-empty[_ngcontent-%COMP%]{display:block;margin-top:.25rem;color:var(--color-text-secondary, #6e6e73);font-style:italic;font-size:.75rem}.case-chat__technical[_ngcontent-%COMP%]{flex-shrink:0;border-radius:6px;background:var(--color-surface-secondary, rgba(0, 0, 0, .03));border-left:3px solid var(--color-border, rgba(0, 0, 0, .12));font-size:.78rem;color:var(--color-text-secondary, #6e6e73);overflow:hidden}.case-chat__technical--warn[_ngcontent-%COMP%]{border-left-color:var(--color-warning, #f5a623);background:#f5a6230f;color:var(--color-text, #1d1d1f)}.case-chat__technical--error[_ngcontent-%COMP%]{border-left-color:var(--color-error, #ff3b30);background:#ff3b300f;color:var(--color-text, #1d1d1f)}.case-chat__technical-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;width:100%;padding:.2rem .75rem;background:transparent;border:none;cursor:pointer;text-align:left;color:inherit;font-family:inherit;font-size:inherit}.case-chat__technical-header[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04))}.case-chat__technical-label[_ngcontent-%COMP%]{font-weight:500;white-space:nowrap}.case-chat__technical-label[_ngcontent-%COMP%]:only-child{display:block;padding:.2rem .75rem}.case-chat__technical-chevron[_ngcontent-%COMP%]{flex-shrink:0;font-size:.6rem;color:var(--color-text-secondary, #6e6e73);margin-left:auto}.case-chat__technical-body[_ngcontent-%COMP%]{padding:.3rem .75rem .5rem;border-top:1px solid var(--color-border, rgba(0, 0, 0, .08));white-space:pre-wrap;word-break:break-word;font-size:.75rem;line-height:1.5;color:var(--color-text, #1d1d1f)}.case-chat__session-context[_ngcontent-%COMP%]{flex-shrink:0;border-radius:6px;background:var(--color-surface-secondary, rgba(0, 0, 0, .03));border-left:3px solid var(--color-primary, #0071e3);padding:.25rem .75rem .4rem;margin-bottom:.25rem;font-size:.75rem;color:var(--color-text-secondary, #6e6e73);overflow:hidden}.case-chat__session-context-label[_ngcontent-%COMP%]{display:block;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-primary, #0071e3);margin-bottom:.2rem}.case-chat__session-context-body[_ngcontent-%COMP%]{margin:0;white-space:pre-wrap;word-break:break-all;font-family:var(--font-mono, ui-monospace, "SF Mono", monospace);font-size:.75rem;color:var(--color-text, #1d1d1f);max-height:160px;overflow-y:auto}.case-chat__message[_ngcontent-%COMP%]{flex-shrink:0}.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-mono, ui-monospace, "SF Mono", monospace);font-size:.85em;background:var(--color-code-bg, rgba(0, 0, 0, .06));border-radius:3px;padding:.1em .35em}.case-chat__message-text--markdown[_ngcontent-%COMP%] pre[_ngcontent-%COMP%]{background:var(--color-code-bg, rgba(0, 0, 0, .06));border-radius:6px;padding:.6em .8em;overflow-x:auto;margin:.4em 0}.case-chat__message-text--markdown[_ngcontent-%COMP%] pre[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:none;padding:0;font-size:.8rem}.case-chat__message-text--markdown[_ngcontent-%COMP%] blockquote[_ngcontent-%COMP%]{margin:.4em 0;padding-left:.8em;border-left:3px solid var(--color-border, rgba(0, 0, 0, .15));color:var(--color-text-secondary, #6e6e73)}.case-chat__message-text--markdown[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:var(--color-primary, #0071e3);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__message--streaming[_ngcontent-%COMP%]{opacity:.95}.case-chat__scroll-anchor[_ngcontent-%COMP%]{position:absolute;bottom:calc(2rem + 80px);left:50%;transform:translate(-50%);z-index:10;background:var(--glass-bg, rgba(255, 255, 255, .88));border:1px solid var(--glass-border, rgba(255, 255, 255, .3));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:50%;box-shadow:0 2px 12px var(--color-shadow, rgba(0, 0, 0, .12));animation:_ngcontent-%COMP%_scroll-anchor-in .15s ease}.case-chat__autocomplete[_ngcontent-%COMP%]{position:absolute;bottom:calc(100% + .5rem);left:0;right:0;background:var(--glass-bg, rgba(255, 255, 255, .96));border:1px solid var(--color-border, rgba(0, 0, 0, .1));backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:12px;box-shadow:0 8px 32px #00000026;z-index:20;animation:_ngcontent-%COMP%_autocomplete-in .12s ease}.case-chat__composer[_ngcontent-%COMP%]{flex-shrink:0;position:relative;display:flex;align-items:flex-end;gap:.5rem;background:var(--glass-bg, rgba(255, 255, 255, .72));border: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));border-radius:16px;padding:.5rem .5rem .5rem 1rem}.case-chat__input[_ngcontent-%COMP%]{flex:1;resize:none;padding:.5rem 0;border:none;background:transparent;color:var(--color-text, #1d1d1f);font-size:.95rem;font-family:inherit;line-height:1.5;outline:none;min-height:40px}.case-chat__input[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary, #6e6e73)}.case-chat__input[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed}.case-chat__actions[_ngcontent-%COMP%]{display:flex;align-items:center;flex-shrink:0}.thinking-dot[_ngcontent-%COMP%]{width:8px;height:8px;border-radius:50%;background:var(--color-text-secondary, #6e6e73);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)}}']})};var Lt=["composerInput"];function zt(o,t){if(o&1){let e=S();r(0,"div",5)(1,"agentos-prompt-autocomplete",10),u("selected",function(i){C(e);let a=c();return b(a.onPromptSelected(i))})("dismissed",function(){C(e);let i=c();return b(i.closeAutocomplete())}),l()()}if(o&2){let e=c();s(),M("prompts",e.slashSuggestions())}}var fe=class o{http=y(de);router=y(me);route=y(J);config=y(pe);caseState=y(Z);destroyRef=y(G);preferences=y(ge);promptState=y(he);composerInput;autocompleteRef;namespaceId=this.route.snapshot.queryParams.ns;inputValue=x("");isCreating=x(!1);effectivePrompts=[];promptsLoaded=!1;slashPrefix$=new ie;slashSuggestions=x([]);ngOnInit(){this.route.queryParams.pipe(L(this.destroyRef)).subscribe(t=>{let e=t.ns;e&&e!==this.namespaceId&&(this.namespaceId=e,this.effectivePrompts=[],this.promptsLoaded=!1,this.slashSuggestions.set([]),this.inputValue.set(""))})}constructor(){re(()=>{this.composerInput?.nativeElement.focus()}),this.slashPrefix$.pipe(Y(60),H(t=>(this.promptsLoaded?j(this.effectivePrompts):this.promptState.listEffective(this.namespaceId).pipe(ae(()=>j([])))).pipe($(n=>({prefix:t,prompts:n})))),L(this.destroyRef)).subscribe(({prefix:t,prompts:e})=>{this.effectivePrompts=e,this.promptsLoaded=!0,this.slashSuggestions.set(e.filter(n=>n.name.toLowerCase().startsWith(t.toLowerCase())))})}get canSend(){return!!this.inputValue().trim()&&!this.isCreating()}onInput(t){let e=t.target.value;this.inputValue.set(e),this.updateSlashAutocomplete(e)}onKeydown(t){if(this.slashSuggestions().length>0){if(t.key==="ArrowDown"||t.key==="ArrowUp"){t.preventDefault(),this.autocompleteRef?.navigate(t.key);return}if(t.key==="Escape"){t.preventDefault(),this.closeAutocomplete();return}if(t.key==="Tab"||t.key==="Enter"){t.preventDefault(),this.autocompleteRef?.navigate("Enter");return}}this.preferences.shouldSend(t)&&(t.preventDefault(),this.submit())}onPromptSelected(t){let e=this.autocompleteRef?.completionFor(t)??`/${t.name} `;this.inputValue.set(e),queueMicrotask(()=>{let n=this.composerInput?.nativeElement;n&&(n.value=e,n.setSelectionRange(e.length,e.length),n.focus())}),this.closeAutocomplete()}closeAutocomplete(){this.slashSuggestions.set([])}updateSlashAutocomplete(t){if(!t.startsWith("/")){this.slashSuggestions().length&&this.slashSuggestions.set([]);return}let e=t.slice(1);if(e.includes(" ")){this.slashSuggestions().length&&this.slashSuggestions.set([]);return}this.promptsLoaded&&this.slashSuggestions.set(this.effectivePrompts.filter(n=>n.name.toLowerCase().startsWith(e.toLowerCase()))),this.slashPrefix$.next(e)}submit(){if(!this.canSend)return;let t=this.inputValue().trim();this.inputValue.set(""),this.isCreating.set(!0),this.http.post(`${this.config.basePath}/api/cases`,{namespaceId:this.namespaceId,metadata:{}}).pipe(H(e=>(this.caseState.addCase(e),this.http.post(`${this.config.basePath}/api/cases/${e.id}/messages`,{content:t,userId:"default-user"}).pipe($(()=>e)))),L(this.destroyRef)).subscribe({next:e=>{this.router.navigate(["/agentos/home"],{queryParams:{ns:this.namespaceId,case:e.id??""}})},error:e=>{console.error("[CaseHome] Failed to create case or send first message",e),this.isCreating.set(!1),this.inputValue.set(t)}})}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=P({type:o,selectors:[["agentos-case-home"]],viewQuery:function(e,n){if(e&1&&W(Lt,5)(U,5),e&2){let i;q(i=V())&&(n.composerInput=i.first),q(i=V())&&(n.autocompleteRef=i.first)}},decls:12,vars:5,consts:[["composerInput",""],[1,"case-home"],[1,"case-home__hero"],[1,"case-home__headline"],[1,"case-home__composer"],[1,"case-home__autocomplete"],["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__hint"],["icon","send","variant","primary","title","Start case",3,"action","disabled"],[3,"selected","dismissed","prompts"]],template:function(e,n){e&1&&(r(0,"div",1)(1,"div",2)(2,"h1",3),d(3,"What can I help you with?"),l(),r(4,"div",4),p(5,zt,2,1,"div",5),r(6,"textarea",6,0),u("input",function(a){return n.onInput(a)})("keydown",function(a){return n.onKeydown(a)}),l(),r(8,"div",7)(9,"span",8),d(10),l(),r(11,"ds-icon-button",9),u("action",function(){return n.submit()}),l()()()()()),e&2&&(s(5),_(n.slashSuggestions().length>0?5:-1),s(),M("value",n.inputValue())("disabled",n.isCreating()),s(4),g(n.preferences.composerHint()),s(),M("disabled",!n.canSend))},dependencies:[ue,U],styles:[".case-home[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;align-items:center;justify-content:center}.case-home__hero[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:2rem;padding:2rem 1.5rem 4rem;max-width:680px;width:100%}.case-home__headline[_ngcontent-%COMP%]{margin:0;font-size:clamp(1.5rem,4vw,2.25rem);font-weight:700;letter-spacing:-.03em;color:var(--color-text);text-align:center;font-family:Inter,sans-serif}.case-home__autocomplete[_ngcontent-%COMP%]{position:absolute;bottom:calc(100% + .5rem);left:0;right:0;background:var(--glass-bg, rgba(255, 255, 255, .96));border:1px solid var(--color-border, rgba(0, 0, 0, .1));backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:12px;box-shadow:0 8px 32px #00000026;z-index:20;animation:_ngcontent-%COMP%_autocomplete-in .12s ease}.case-home__composer[_ngcontent-%COMP%]{position:relative;width:100%;display:flex;flex-direction:column;background:var(--glass-bg);border:1px solid var(--glass-border);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border-radius:16px;box-shadow:0 4px 24px var(--color-shadow);transition:box-shadow .2s ease,border-color .2s ease}.case-home__composer[_ngcontent-%COMP%]:focus-within{box-shadow:0 4px 32px color-mix(in srgb,var(--color-primary) 20%,transparent);border-color:var(--color-primary)}.case-home__input[_ngcontent-%COMP%]{width:100%;resize:none;padding:1rem 1.25rem .5rem;border:none;background:transparent;color:var(--color-text);font-size:1rem;font-family:Inter,sans-serif;line-height:1.6;outline:none;box-sizing:border-box}.case-home__input[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary)}.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;padding:.5rem .5rem .5rem 1.25rem}.case-home__hint[_ngcontent-%COMP%]{font-family:Inter,sans-serif;font-size:.8125rem;font-weight:400;line-height:1.4;color:var(--color-text-secondary, #6e6e73);font-size:.75rem;opacity:.7}@keyframes _ngcontent-%COMP%_autocomplete-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}"]})};var Ft=["caseItemTpl"],$t=o=>({node:o,depth:0}),Ht=(o,t)=>({node:o,depth:t}),Wt=(o,t)=>t.id;function Bt(o,t){if(o&1){let e=S();r(0,"button",4),u("click",function(){C(e);let i=c().$implicit,a=c();return b(a.onItemSelected(i.id))}),A(1,"span",5),r(2,"span",6),d(3),l()()}if(o&2){let e=c().$implicit,n=c();I("case-tree-node__row--active",e.id===n.activeCaseId()),s(3),g(e.name)}}function Ut(o,t){o&1&&Me(0)}function Qt(o,t){if(o&1&&se(0,Ut,1,0,"ng-container",7),o&2){let e=c().$implicit;c();let n=le(4);M("ngTemplateOutlet",n)("ngTemplateOutletContext",Ve(2,$t,e))}}function jt(o,t){if(o&1&&p(0,Bt,4,3,"button",3)(1,Qt,1,4,"ng-container"),o&2){let e=c();_(e.isSearchActive()?0:1)}}function Yt(o,t){if(o&1){let e=S();r(0,"button",10),u("click",function(i){C(e);let a=c().node,w=c();return b(w.toggleExpand(i,a.id))}),r(1,"span",11),d(2,"\u203A"),l()()}if(o&2){let e=c().node,n=c();M("title",n.isExpanded(e.id)?"Collapse":"Expand"),s(),I("case-tree-node__toggle-icon--open",n.isExpanded(e.id))}}function Gt(o,t){o&1&&Me(0)}function Kt(o,t){if(o&1&&se(0,Gt,1,0,"ng-container",7),o&2){let e=t.$implicit,n=c(2).depth;c();let i=le(4);M("ngTemplateOutlet",i)("ngTemplateOutletContext",Le(2,Ht,e,n+1))}}function Xt(o,t){if(o&1&&D(0,Kt,1,5,"ng-container",null,Wt),o&2){let e=c().node;N(e.children)}}function Jt(o,t){if(o&1){let e=S();r(0,"div",8)(1,"button",4),u("click",function(){let i=C(e).node,a=c();return b(a.onItemSelected(i.id))}),r(2,"span",5),p(3,Yt,3,3,"button",9),l(),r(4,"span",6),d(5),l()(),p(6,Xt,2,0),l()}if(o&2){let e=t.node,n=t.depth,i=c();ce("--depth",n),s(),I("case-tree-node__row--active",e.id===i.activeCaseId()),s(2),_(e.children.length?3:-1),s(2),g(e.name),s(),_(i.isExpanded(e.id)&&e.children.length?6:-1)}}var ve=class o{cases=f([]);activeCaseId=f(null);caseSelected=v();createRequested=v();caseItemTpl;searchQuery=x("");isSearchActive=T(()=>this.searchQuery().trim().length>0);rootItems=T(()=>Zt(this.cases()));flatFilteredItems=T(()=>{let t=this.searchQuery().toLowerCase().trim();return t?Ze(this.rootItems(),t):[]});displayItems=T(()=>this.isSearchActive()?this.flatFilteredItems():this.rootItems());autoExpandedIds=T(()=>{let t=this.activeCaseId();if(!t)return new Set;let e=new Set;return et(this.rootItems(),t,e),e});expandedIds=x(new Set);isExpanded(t){return this.expandedIds().has(t)||this.autoExpandedIds().has(t)}toggleExpand(t,e){t.stopPropagation(),this.expandedIds.update(n=>{let i=new Set(n);return i.has(e)?i.delete(e):i.add(e),i})}onSearchChanged(t){this.searchQuery.set(t)}onItemSelected(t){this.caseSelected.emit(t)}onCreateRequested(){this.createRequested.emit()}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=P({type:o,selectors:[["agentos-case-drawer"]],viewQuery:function(e,n){if(e&1&&W(Ft,7),e&2){let i;q(i=V())&&(n.caseItemTpl=i.first)}},inputs:{cases:[1,"cases"],activeCaseId:[1,"activeCaseId"]},outputs:{caseSelected:"caseSelected",createRequested:"createRequested"},decls:5,vars:4,consts:[["caseItemTpl",""],["caseRowTpl",""],["title","Cases","emptyMessage","No cases yet. Start one below.","searchPlaceholder","Filter cases\u2026","cardMinWidth","100%","contentMaxWidth","100%",3,"itemSelected","createRequested","searchChanged","items","itemTemplate","showCreate","disableInternalFilter"],["type","button",1,"case-tree-node__row",3,"case-tree-node__row--active"],["type","button",1,"case-tree-node__row",3,"click"],[1,"case-tree-node__expand-slot"],[1,"case-tree-node__name"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"case-tree-node"],["type","button",1,"case-tree-node__toggle",3,"title"],["type","button",1,"case-tree-node__toggle",3,"click","title"],[1,"case-tree-node__toggle-icon"]],template:function(e,n){if(e&1&&(r(0,"ds-entity-list",2),u("itemSelected",function(a){return n.onItemSelected(a)})("createRequested",function(){return n.onCreateRequested()})("searchChanged",function(a){return n.onSearchChanged(a)}),l(),se(1,jt,2,1,"ng-template",null,0,ke)(3,Jt,7,7,"ng-template",null,1,ke)),e&2){let i=le(2);M("items",n.displayItems())("itemTemplate",i)("showCreate",!0)("disableInternalFilter",!0)}},dependencies:[Ge,$e],styles:['[_nghost-%COMP%]{display:flex;flex-direction:column;height:100%}.case-tree-node[_ngcontent-%COMP%]{width:100%}.case-tree-node__row[_ngcontent-%COMP%]{display:flex;align-items:center;width:100%;padding:.375rem .5rem;padding-left:calc(.5rem + var(--depth, 0) * 1.25rem);border:none;background:transparent;cursor:pointer;text-align:left;font:inherit;font-size:.875rem;color:var(--color-text, #1d1d1f);border-radius:6px;gap:.375rem;transition:background .12s ease;box-sizing:border-box}.case-tree-node__row[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .05))}.case-tree-node__row--active[_ngcontent-%COMP%]{background:var(--color-primary, #007aff);color:var(--color-text-inverse, #fff)}.case-tree-node__row--active[_ngcontent-%COMP%]:hover{background:var(--color-primary-hover, #0051d5)}.case-tree-node__expand-slot[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:1rem;flex-shrink:0}.case-tree-node__toggle[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:1rem;height:1rem;padding:0;border:none;background:transparent;cursor:pointer;color:inherit;border-radius:3px;transition:background .1s ease}.case-tree-node__toggle[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .05))}.case-tree-node__toggle-icon[_ngcontent-%COMP%]{display:inline-block;font-size:1.1rem;line-height:1;transition:transform .15s ease;transform:rotate(0)}.case-tree-node__toggle-icon--open[_ngcontent-%COMP%]{transform:rotate(90deg)}.case-tree-node__name[_ngcontent-%COMP%]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;font-family:var(--font-mono, "SF Mono", ui-monospace, monospace);font-size:.8rem}'],changeDetection:0})};function Zt(o){let t=new Set(o.map(m=>m.id??"")),e=new Map(o.map(m=>[m.id??"",m.created??""])),n=m=>({id:m.id??"",name:m.title??m.id??"\u2014",description:m.id??"",children:[]}),i=new Map;for(let m of o)i.set(m.id??"",n(m));let a=[];for(let m of o){let h=i.get(m.id??""),R=m.parentCaseId;R&&t.has(R)?i.get(R).children.push(h):a.push(h)}let w=m=>m.sort((h,R)=>(e.get(R.id)??"")>(e.get(h.id)??"")?1:-1).map(h=>oe(ne({},h),{children:w(h.children)}));return w(a)}function Ze(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(...Ze(n.children,t)),e),[])}function et(o,t,e){for(let n of o){if(n.id===t)return!0;if(n.children.length&&et(n.children,t,e))return e.add(n.id),!0}return!1}var en=(o,t)=>t.id;function tn(o,t){o&1&&(r(0,"span",3),d(1,"chevron_left"),l())}function nn(o,t){o&1&&A(0,"img",4)}function on(o,t){o&1&&(r(0,"span"),d(1,"\u2713"),l())}function an(o,t){if(o&1){let e=S();r(0,"button",18),u("click",function(){let i=C(e).$implicit,a=c(3);return b(a.namespaceSelected.emit(i))}),r(1,"span",19),d(2),l(),p(3,on,2,0,"span"),l()}if(o&2){let e,n,i=t.$implicit,a=c(3);I("shell-sidebar__ns-item--active",i.id===((e=a.selectedNamespace())==null?null:e.id)),s(2),g(i.name),s(),_(i.id===((n=a.selectedNamespace())==null?null:n.id)?3:-1)}}function rn(o,t){if(o&1&&(r(0,"div",16),D(1,an,4,4,"button",17,en),l()),o&2){let e=c(2);s(),N(e.namespaces())}}function sn(o,t){if(o&1){let e=S();r(0,"div",6)(1,"button",13),u("click",function(){C(e);let i=c();return b(i.nsMenuToggled.emit())}),r(2,"span",14),d(3),l(),r(4,"span",15),d(5,"\u25BE"),l()(),p(6,rn,3,0,"div",16),l()}if(o&2){let e,n=c();s(3),g(((e=n.selectedNamespace())==null?null:e.name)??"Select namespace"),s(3),_(n.nsMenuOpen()?6:-1)}}function ln(o,t){if(o&1&&(r(0,"span",7),d(1),l()),o&2){let e,n=c();s(),g((e=n.selectedNamespace())==null?null:e.name)}}function cn(o,t){if(o&1&&d(0),o&2){let e=c();z(" ",e.userInitials()," ")}}function dn(o,t){o&1&&d(0," \u2022\u2022\u2022 ")}var xe=class o{brandHovered=!1;sidebarWidth=f.required();sidebarOpen=f.required();selectedNamespace=f.required();namespaces=f.required();showNsPicker=f.required();nsMenuOpen=f.required();cases=f.required();activeCaseId=f.required();userInitials=f.required();menuOpen=f.required();isAdmin=f.required();isDark=f.required();showTechnical=f.required();collapseRequested=v();homeClicked=v();namespaceSelected=v();nsMenuToggled=v();nsMenuClosed=v();caseSelected=v();createRequested=v();menuToggled=v();menuClosed=v();navigateTo=v();themeToggled=v();logsToggled=v();static \u0275fac=function(e){return new(e||o)};static \u0275cmp=P({type:o,selectors:[["agentos-shell-sidebar"]],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"],menuOpen:[1,"menuOpen"],isAdmin:[1,"isAdmin"],isDark:[1,"isDark"],showTechnical:[1,"showTechnical"]},outputs:{collapseRequested:"collapseRequested",homeClicked:"homeClicked",namespaceSelected:"namespaceSelected",nsMenuToggled:"nsMenuToggled",nsMenuClosed:"nsMenuClosed",caseSelected:"caseSelected",createRequested:"createRequested",menuToggled:"menuToggled",menuClosed:"menuClosed",navigateTo:"navigateTo",themeToggled:"themeToggled",logsToggled:"logsToggled"},decls:15,vars:12,consts:[[1,"shell-sidebar"],[1,"shell-sidebar__top"],["type","button",1,"shell-sidebar__brand",3,"mouseenter","mouseleave","click","title"],[1,"shell-sidebar__logo-chevron","material-icons"],["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-name-static"],[1,"shell-sidebar__user-menu"],["type","button","title","Menu",1,"shell-sidebar__user-btn",3,"click"],["variant","desktop",3,"navigateTo","themeToggled","logsToggled","closed","open","isAdmin","isDark","showTechnical"],[1,"shell-sidebar__cases-scroll"],[3,"caseSelected","createRequested","cases","activeCaseId"],[1,"shell-sidebar__ns-trigger",3,"click"],[1,"shell-sidebar__ns-name"],[1,"shell-sidebar__ns-chevron"],[1,"shell-sidebar__ns-menu"],[1,"shell-sidebar__ns-item",3,"shell-sidebar__ns-item--active"],[1,"shell-sidebar__ns-item",3,"click"],[1,"shell-sidebar__ns-item-name"]],template:function(e,n){e&1&&(r(0,"div",0)(1,"div",1)(2,"button",2),u("mouseenter",function(){return n.brandHovered=!0})("mouseleave",function(){return n.brandHovered=!1})("click",function(){return n.brandHovered?n.collapseRequested.emit():n.homeClicked.emit()}),p(3,tn,2,0,"span",3)(4,nn,1,0,"img",4),l(),r(5,"div",5),p(6,sn,7,2,"div",6)(7,ln,2,1,"span",7),l(),r(8,"div",8)(9,"button",9),u("click",function(a){return n.menuToggled.emit(a)}),p(10,cn,1,1)(11,dn,1,0),l(),r(12,"agentos-shell-user-menu",10),u("navigateTo",function(a){return n.navigateTo.emit(a)})("themeToggled",function(){return n.themeToggled.emit()})("logsToggled",function(){return n.logsToggled.emit()})("closed",function(a){return n.menuClosed.emit(a)}),l()()(),r(13,"div",11)(14,"agentos-case-drawer",12),u("caseSelected",function(a){return n.caseSelected.emit(a)})("createRequested",function(){return n.createRequested.emit()}),l()()()),e&2&&(ce("width",n.sidebarOpen()?n.sidebarWidth():0,"px"),s(2),M("title",n.brandHovered?"Close sidebar":"Home"),s(),_(n.brandHovered?3:4),s(3),_(n.showNsPicker()?6:7),s(4),_(n.userInitials()?10:11),s(2),M("open",n.menuOpen())("isAdmin",n.isAdmin())("isDark",n.isDark())("showTechnical",n.showTechnical()),s(2),M("cases",n.cases())("activeCaseId",n.activeCaseId()))},dependencies:[ve,Ce],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:hidden;border-right:1px solid var(--color-border, rgba(0, 0, 0, .09));background:var(--color-bg, #f4f3ef);flex-shrink:0;transition:width .24s cubic-bezier(.4,0,.2,1);white-space:nowrap}.shell-sidebar__top[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;padding:10px;border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .09));flex-shrink:0}.shell-sidebar__brand[_ngcontent-%COMP%]{display:flex;align-items:center;padding:4px;border-radius:8px;border:none;background:transparent;cursor:pointer;flex-shrink:0;transition:background .14s}.shell-sidebar__brand[_ngcontent-%COMP%]:hover{background:var(--color-surface-hover, rgba(0, 0, 0, .05))}.shell-sidebar__logo-img[_ngcontent-%COMP%]{width:28px;height:28px;border-radius:6px;object-fit:contain}.shell-sidebar__logo-chevron[_ngcontent-%COMP%]{width:28px;height:28px;font-size:22px;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary, #968f85)}.shell-sidebar__user-menu[_ngcontent-%COMP%]{position:relative;flex-shrink:0}.shell-sidebar__user-btn[_ngcontent-%COMP%]{width:32px;height:32px;border-radius:50%;border:1px solid var(--color-border, rgba(0, 0, 0, .09));background:color-mix(in srgb,var(--color-primary, #016b71) 15%,transparent);cursor:pointer;display:grid;place-items:center;font-size:.7rem;font-weight:700;letter-spacing:.02em;color:var(--color-primary, #016b71);transition:all .14s}.shell-sidebar__user-btn[_ngcontent-%COMP%]:hover{background:color-mix(in srgb,var(--color-primary, #016b71) 25%,transparent)}.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%]{width:100%;display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:8px;border:1px solid transparent;background:transparent;cursor:pointer;color:var(--color-text, #1b1916);transition:all .15s;font:inherit;font-size:.85rem;font-weight:700}.shell-sidebar__ns-trigger[_ngcontent-%COMP%]:hover{background:var(--color-surface-hover, rgba(0, 0, 0, .05));border-color:var(--color-border, rgba(0, 0, 0, .09))}.shell-sidebar__ns-name[_ngcontent-%COMP%]{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shell-sidebar__ns-chevron[_ngcontent-%COMP%]{color:var(--color-text-secondary, #968f85);font-size:.75rem}.shell-sidebar__ns-menu[_ngcontent-%COMP%]{position:absolute;left:0;right:0;top:calc(100% + 4px);background:var(--color-modal-bg, #fff);border:1px solid var(--color-border, rgba(0, 0, 0, .09));border-radius:10px;padding:6px;z-index:100;box-shadow:var(--color-modal-shadow, 0 6px 20px rgba(0, 0, 0, .08))}.shell-sidebar__ns-item[_ngcontent-%COMP%]{width:100%;display:flex;align-items:center;gap:10px;padding:10px;border-radius:10px;border:none;background:transparent;cursor:pointer;color:var(--color-text, #1b1916);font:inherit;font-size:.8rem;transition:all .13s}.shell-sidebar__ns-item[_ngcontent-%COMP%]:hover{background:var(--color-surface-hover, rgba(0, 0, 0, .05))}.shell-sidebar__ns-item--active[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--color-primary, #016b71) 12%,transparent);color:var(--color-primary, #016b71)}.shell-sidebar__ns-item-name[_ngcontent-%COMP%]{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shell-sidebar__ns-name-static[_ngcontent-%COMP%]{display:block;padding:5px 8px;font-size:.85rem;font-weight:700;color:var(--color-text, #1b1916);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shell-sidebar__cases-scroll[_ngcontent-%COMP%]{flex:1;overflow-y:auto;padding-bottom:16px}.shell-sidebar__cases-scroll[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px}.shell-sidebar__cases-scroll[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:var(--color-border-light, rgba(255, 255, 255, .12));border-radius:999px}"],changeDetection:0})};var mn=(o,t)=>t.id;function pn(o,t){o&1&&(r(0,"span"),d(1,"\u2713"),l())}function _n(o,t){if(o&1){let e=S();r(0,"button",14),u("click",function(){let i=C(e).$implicit,a=c(2);return b(a.namespaceSelected.emit(i))}),A(1,"span",15),r(2,"span",16),d(3),l(),p(4,pn,2,0,"span"),l()}if(o&2){let e,n,i=t.$implicit,a=c(2);I("shell-topbar-mobile__ns-item--active",i.id===((e=a.selectedNamespace())==null?null:e.id)),s(3),g(i.name),s(),_(i.id===((n=a.selectedNamespace())==null?null:n.id)?4:-1)}}function un(o,t){if(o&1){let e=S();r(0,"div",11),u("click",function(i){C(e);let a=c();return b(a.nsMenuClosed.emit(i))})("keyup.escape",function(i){C(e);let a=c();return b(a.nsMenuClosed.emit(i))}),l(),r(1,"div",12),D(2,_n,5,4,"button",13,mn),l()}if(o&2){let e=c();s(2),N(e.namespaces())}}var ye=class o{selectedNamespace=f.required();namespaces=f.required();nsMenuOpen=f.required();userInitials=f.required();menuOpen=f.required();isAdmin=f.required();isDark=f.required();showTechnical=f.required();homeClicked=v();namespaceSelected=v();nsMenuToggled=v();nsMenuClosed=v();menuToggled=v();menuClosed=v();navigateTo=v();themeToggled=v();logsToggled=v();static \u0275fac=function(e){return new(e||o)};static \u0275cmp=P({type:o,selectors:[["agentos-shell-topbar-mobile"]],inputs:{selectedNamespace:[1,"selectedNamespace"],namespaces:[1,"namespaces"],nsMenuOpen:[1,"nsMenuOpen"],userInitials:[1,"userInitials"],menuOpen:[1,"menuOpen"],isAdmin:[1,"isAdmin"],isDark:[1,"isDark"],showTechnical:[1,"showTechnical"]},outputs:{homeClicked:"homeClicked",namespaceSelected:"namespaceSelected",nsMenuToggled:"nsMenuToggled",nsMenuClosed:"nsMenuClosed",menuToggled:"menuToggled",menuClosed:"menuClosed",navigateTo:"navigateTo",themeToggled:"themeToggled",logsToggled:"logsToggled"},decls:17,vars:7,consts:[[1,"shell-topbar-mobile__brand"],["type","button","title","Home",1,"shell-topbar-mobile__logo-btn",3,"click"],["src","CODAY-Logo.png","alt","Coday",1,"shell-topbar-mobile__logo-img"],[1,"shell-topbar-mobile__logo-text"],[1,"shell-topbar-mobile__sep"],[1,"shell-topbar-mobile__ns-wrap"],["type","button",1,"shell-topbar-mobile__ns-btn",3,"click"],[1,"shell-topbar-mobile__chevron"],[1,"shell-topbar-mobile__avatar-wrap"],["tabindex","0","role","button","aria-label","User menu",1,"shell-topbar-mobile__avatar",3,"click","keyup.enter"],["variant","mobile",3,"navigateTo","themeToggled","logsToggled","closed","open","isAdmin","isDark","showTechnical"],["role","presentation","tabindex","-1",1,"shell-topbar-mobile__ns-backdrop",3,"click","keyup.escape"],[1,"shell-topbar-mobile__ns-menu"],[1,"shell-topbar-mobile__ns-item",3,"shell-topbar-mobile__ns-item--active"],[1,"shell-topbar-mobile__ns-item",3,"click"],[1,"shell-topbar-mobile__ns-dot"],[1,"shell-topbar-mobile__ns-item-name"]],template:function(e,n){if(e&1&&(r(0,"div",0)(1,"button",1),u("click",function(){return n.homeClicked.emit()}),A(2,"img",2),r(3,"span",3),d(4,"Coday"),l()(),r(5,"span",4),d(6,"/"),l(),r(7,"div",5)(8,"button",6),u("click",function(a){return n.nsMenuToggled.emit(a)}),d(9),r(10,"span",7),d(11,"\u25BE"),l()(),p(12,un,4,0),l()(),r(13,"div",8)(14,"div",9),u("click",function(a){return n.menuToggled.emit(a)})("keyup.enter",function(){return n.menuToggled.emit(void 0)}),d(15),l(),r(16,"agentos-shell-user-menu",10),u("navigateTo",function(a){return n.navigateTo.emit(a)})("themeToggled",function(){return n.themeToggled.emit()})("logsToggled",function(){return n.logsToggled.emit()})("closed",function(a){return n.menuClosed.emit(a)}),l()()),e&2){let i;s(9),z(" ",((i=n.selectedNamespace())==null?null:i.name)??""," "),s(3),_(n.nsMenuOpen()?12:-1),s(3),z(" ",n.userInitials()||"\xB7\xB7\xB7"," "),s(),M("open",n.menuOpen())("isAdmin",n.isAdmin())("isDark",n.isDark())("showTechnical",n.showTechnical())}},dependencies:[Ce],styles:["[_nghost-%COMP%]{display:none}.shell-topbar-mobile__brand[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;min-width:0;flex:1;overflow:hidden}.shell-topbar-mobile__logo-btn[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;flex:none;padding:0;border:none;background:transparent;cursor:pointer}.shell-topbar-mobile__logo-img[_ngcontent-%COMP%]{height:28px;width:auto;border-radius:6px;object-fit:contain}.shell-topbar-mobile__logo-text[_ngcontent-%COMP%]{font-family:Inter,sans-serif;font-size:11.5px;font-weight:500;line-height:1;color:var(--color-text, #1d1d1f)}.shell-topbar-mobile__sep[_ngcontent-%COMP%]{color:var(--color-text-tertiary);font:inherit;font-size:.75rem;flex:none}.shell-topbar-mobile__ns-wrap[_ngcontent-%COMP%]{position:static;min-width:0}.shell-topbar-mobile__ns-btn[_ngcontent-%COMP%]{font-family:Inter,sans-serif;font-size:12.5px;font-weight:500;line-height:1.4;color:var(--color-text, #1d1d1f);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:3px;cursor:pointer;background:none;border:none;padding:0}.shell-topbar-mobile__chevron[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:9px;flex:none}.shell-topbar-mobile__ns-backdrop[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:299}.shell-topbar-mobile__ns-menu[_ngcontent-%COMP%]{background:var(--color-modal-bg, #ffffff);border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:10px;box-shadow:var(--color-modal-shadow, 0 6px 20px rgba(0, 0, 0, .08));padding:5px;position:fixed;top:44px;left:16px;min-width:180px;z-index:300}.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;display:flex;align-items:center;width:100%;padding:8px 10px;border-radius:6px;font-family:Inter,sans-serif;font-size:12.5px;font-weight:500;color:var(--color-text, #1d1d1f);text-align:left;transition:background .1s ease}.shell-topbar-mobile__ns-item[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04))}.shell-topbar-mobile__ns-item--danger[_ngcontent-%COMP%]{color:var(--color-error, #a5140a)}.shell-topbar-mobile__ns-item--danger[_ngcontent-%COMP%]:hover{background:rgba(from var(--color-error, #ff453a) r g b/.08)}.shell-topbar-mobile__ns-item--active[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--color-primary) 12%,transparent);color:var(--color-primary)}.shell-topbar-mobile__ns-dot[_ngcontent-%COMP%]{width:10px;height:10px;border-radius:50%;background:var(--color-primary);flex-shrink:0}.shell-topbar-mobile__ns-item-name[_ngcontent-%COMP%]{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shell-topbar-mobile__avatar-wrap[_ngcontent-%COMP%]{position:relative;flex-shrink:0}.shell-topbar-mobile__avatar[_ngcontent-%COMP%]{width:44px;height:44px;border-radius:50%;background:color-mix(in srgb,var(--color-primary) 15%,transparent);border:1px solid color-mix(in srgb,var(--color-primary) 35%,transparent);color:var(--color-primary);display:flex;align-items:center;justify-content:center;font:inherit;font-size:.625rem;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none}@media(max-width:900px){[_nghost-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 16px;min-height:44px;border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .08));background:var(--color-bg, #fff);flex-shrink:0;position:relative}}"],changeDetection:0})};var hn=(o,t)=>t.id;function gn(o,t){if(o&1){let e=S();k(0,"div",9),X("click",function(){let i=C(e).$implicit,a=c(2);return b(a.caseSelected.emit(i.id??""))})("keyup.enter",function(){let i=C(e).$implicit,a=c(2);return b(a.caseSelected.emit(i.id??""))}),Se(1,"span",1),k(2,"span",2),d(3),O(),k(4,"span",3),d(5),O()()}if(o&2){let e=t.$implicit,n=c(2);s(),Te("shell-case-switcher__dot--"+n.deriveMobileStatus(e.status)),s(2),g(e.title??e.id),s(2),g(e.status.toLowerCase())}}function Cn(o,t){if(o&1){let e=S();k(0,"div",5)(1,"div",6),X("click",function(){C(e);let i=c();return b(i.createRequested.emit())})("keyup.enter",function(){C(e);let i=c();return b(i.createRequested.emit())}),k(2,"span",7),d(3,"+"),O(),k(4,"span",2),d(5,"New case"),O()(),D(6,gn,6,4,"div",8,hn),O()}if(o&2){let e=c();s(6),N(e.otherCases())}}var we=class o{cases=f.required();activeCaseId=f.required();open=f.required();activeCase=T(()=>{let t=this.activeCaseId();return t?this.cases().find(e=>e.id===t)??null:null});activeCaseTitle=T(()=>this.activeCase()?.title??this.activeCaseId()??"New case");activeCaseStatus=T(()=>this.deriveMobileStatus(this.activeCase()?.status));activeCaseStatusLabel=T(()=>this.activeCase()?.status?.toLowerCase()??"");otherCases=T(()=>this.cases().filter(t=>t.id!==this.activeCaseId()));caseSelected=v();createRequested=v();toggled=v();deriveMobileStatus(t){switch(t){case"RUNNING":return"run";case"KILLED":return"killed";case"ERROR":return"error";default:return"idle"}}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=P({type:o,selectors:[["agentos-shell-case-switcher-mobile"]],inputs:{cases:[1,"cases"],activeCaseId:[1,"activeCaseId"],open:[1,"open"]},outputs:{caseSelected:"caseSelected",createRequested:"createRequested",toggled:"toggled"},decls:9,vars:5,consts:[["tabindex","0","role","button",1,"shell-case-switcher__trigger",3,"click","keyup.enter"],[1,"shell-case-switcher__dot"],[1,"shell-case-switcher__title"],[1,"shell-case-switcher__status"],[1,"shell-case-switcher__chevron"],[1,"shell-case-switcher__list"],["tabindex","0","role","button",1,"shell-case-switcher__item","shell-case-switcher__item--new",3,"click","keyup.enter"],[1,"shell-case-switcher__new-icon"],["tabindex","0","role","button",1,"shell-case-switcher__item"],["tabindex","0","role","button",1,"shell-case-switcher__item",3,"click","keyup.enter"]],template:function(e,n){e&1&&(k(0,"div",0),X("click",function(){return n.toggled.emit()})("keyup.enter",function(){return n.toggled.emit()}),Se(1,"span",1),k(2,"span",2),d(3),O(),k(4,"span",3),d(5),O(),k(6,"span",4),d(7,"\u2304"),O()(),p(8,Cn,8,0,"div",5)),e&2&&(s(),Te("shell-case-switcher__dot--"+n.activeCaseStatus()),s(2),g(n.activeCaseTitle()),s(2),g(n.activeCaseStatusLabel()),s(3),_(n.open()?8:-1))},styles:["[_nghost-%COMP%]{display:none}.shell-case-switcher__trigger[_ngcontent-%COMP%]{display:flex;align-items:center;gap:7px;padding:10px 16px;min-height:44px;cursor:pointer;-webkit-user-select:none;user-select:none}.shell-case-switcher__trigger[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover)}.shell-case-switcher__title[_ngcontent-%COMP%]{font-family:Inter,sans-serif;font-size:12.5px;font-weight:500;line-height:1.4;color:var(--color-text, #1d1d1f);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.shell-case-switcher__status[_ngcontent-%COMP%]{font:inherit;font-size:.6875rem;color:var(--color-text-secondary);flex:none}.shell-case-switcher__chevron[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:9px;flex:none}.shell-case-switcher__list[_ngcontent-%COMP%]{display:flex;flex-direction:column;border-top:1px solid var(--color-border-light);max-height:60vh;overflow-y:auto}.shell-case-switcher__item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:7px;padding:0 16px;height:44px;flex-shrink:0;cursor:pointer}.shell-case-switcher__item[_ngcontent-%COMP%] .shell-case-switcher__title[_ngcontent-%COMP%]{font-weight:500;color:var(--color-text-secondary)}.shell-case-switcher__item[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover)}.shell-case-switcher__item--new[_ngcontent-%COMP%]{border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .08))}.shell-case-switcher__item--new[_ngcontent-%COMP%] .shell-case-switcher__title[_ngcontent-%COMP%]{font-weight:600;color:var(--color-primary, #016b71)}.shell-case-switcher__new-icon[_ngcontent-%COMP%]{width:6px;height:6px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:300;color:var(--color-primary, #016b71);flex:none}.shell-case-switcher__dot[_ngcontent-%COMP%]{width:6px;height:6px;border-radius:50%;flex:none}.shell-case-switcher__dot--run[_ngcontent-%COMP%]{background:var(--color-success)}.shell-case-switcher__dot--idle[_ngcontent-%COMP%]{background:var(--color-border)}.shell-case-switcher__dot--killed[_ngcontent-%COMP%], .shell-case-switcher__dot--error[_ngcontent-%COMP%]{background:var(--color-error)}@media(max-width:900px){[_nghost-%COMP%]{display:flex;flex-direction:column;border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .08));background:var(--color-bg, #fff);flex-shrink:0}}"],changeDetection:0})};function bn(o,t){if(o&1){let e=S();r(0,"div",8),u("mousedown",function(i){C(e);let a=c();return b(a.onResizeStart(i))}),l()}}function fn(o,t){if(o&1){let e=S();r(0,"button",9),u("click",function(){C(e);let i=c();return b(i.expandSidebar())}),r(1,"span",10),d(2,"menu"),l()()}}function vn(o,t){if(o&1&&A(0,"agentos-case-chat",7),o&2){let e=c();M("showTechnicalOverride",e.showTechnical())}}function xn(o,t){o&1&&A(0,"agentos-case-home")}var tt=class o{router=y(me);route=y(J);caseController=y(_e);namespaceController=y(Be);themePort=y(Ke);userState=y(Xe);destroyRef=y(G);isAdmin=T(()=>this.userState.currentUser()?.isAdmin===!0);userInitials=T(()=>{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()||""});isDark=T(()=>{let t=this.themePort.theme();return t==="dark"?!0:t==="light"?!1:typeof document<"u"&&document.documentElement.hasAttribute("data-theme")});sidebarWidth=x(Number(localStorage.getItem("agentos.sidebar.width"))||300);menuOpen=x(!1);nsMenuOpen=x(!1);sidebarOpen=x(localStorage.getItem("agentos.sidebar.open")!=="false");mobileSwitcherOpen=x(!1);showTechnical=x(!1);showNsPicker=T(()=>this.isAdmin()||this.namespaces().length>1);namespaceId$=this.route.queryParams.pipe($(t=>t.ns??null));_namespaceIdRaw=te(this.namespaceId$);namespaceId=T(()=>this._namespaceIdRaw()??null);_activeCaseIdRaw=te(this.route.queryParams.pipe($(t=>t.case??null)));activeCaseId=T(()=>this._activeCaseIdRaw()??null);refresh$=new Ee(void 0);cases$=this.namespaceId$.pipe(H(t=>t?this.refresh$.pipe(H(()=>this.caseController.listByParentCase(t))):[[]]));cases=te(this.cases$,{initialValue:[]});namespaces=te(this.namespaceController.listAllNamespace(),{initialValue:[]});selectedNamespace=x(null);constructor(){this.userState.currentUser()||this.userState.loadMe().pipe(L(this.destroyRef)).subscribe(),Ue(this.sidebarWidth).pipe(Oe(1),Y(300),L(this.destroyRef)).subscribe(t=>localStorage.setItem("agentos.sidebar.width",String(t))),K(()=>{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)}else{let n=t[0];n?.id&&this.router.navigate(["/agentos/home"],{queryParams:{ns:n.id},replaceUrl:!0})}})}onNamespaceSelected(t){this.selectedNamespace.set(t),this.nsMenuOpen.set(!1),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(!1)}onCaseSelected(t){this.router.navigate(["/agentos/home"],{queryParams:{ns:this.namespaceId(),case:t}})}onCreateRequested(){this.router.navigate(["/agentos/home"],{queryParams:{ns:this.namespaceId()}})}navigateHome(){this.router.navigate(["/agentos/home"])}collapseSidebar(){this.sidebarOpen.set(!1),localStorage.setItem("agentos.sidebar.open","false")}expandSidebar(){this.sidebarOpen.set(!0),localStorage.setItem("agentos.sidebar.open","true")}onMenuNavigate(t){this.menuOpen.set(!1),this.router.navigate([t])}toggleMenu(t){t?.stopPropagation(),t?.preventDefault(),this.menuOpen.update(e=>!e)}closeMenu(t){t.stopPropagation(),this.menuOpen.set(!1)}onMenuToggleTheme(){this.menuOpen.set(!1);let t=this.isDark()?"light":"dark";this.themePort.setTheme(t)}onMenuToggleLogs(){this.menuOpen.set(!1),this.showTechnical.update(t=>!t)}toggleMobileSwitcher(){this.mobileSwitcherOpen.update(t=>!t)}onMobileCaseSelect(t){this.mobileSwitcherOpen.set(!1),this.onCaseSelected(t)}onMobileCreateCase(){this.mobileSwitcherOpen.set(!1),this.onCreateRequested()}onResizeStart(t){t.preventDefault();let e=t.clientX,n=this.sidebarWidth(),i=w=>{let m=w.clientX-e,h=Math.max(200,Math.min(500,n+m));this.sidebarWidth.set(h)},a=()=>{document.removeEventListener("mousemove",i),document.removeEventListener("mouseup",a)};document.addEventListener("mousemove",i),document.addEventListener("mouseup",a)}refreshCases(){this.refresh$.next()}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=P({type:o,selectors:[["agentos-case-shell"]],decls:9,vars:27,consts:[[1,"case-shell"],[3,"homeClicked","namespaceSelected","nsMenuToggled","nsMenuClosed","menuToggled","menuClosed","navigateTo","themeToggled","logsToggled","selectedNamespace","namespaces","nsMenuOpen","userInitials","menuOpen","isAdmin","isDark","showTechnical"],[3,"caseSelected","createRequested","toggled","cases","activeCaseId","open"],[3,"collapseRequested","homeClicked","namespaceSelected","nsMenuToggled","nsMenuClosed","caseSelected","createRequested","menuToggled","menuClosed","navigateTo","themeToggled","logsToggled","sidebarWidth","sidebarOpen","selectedNamespace","namespaces","showNsPicker","nsMenuOpen","cases","activeCaseId","userInitials","menuOpen","isAdmin","isDark","showTechnical"],["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"],["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"]],template:function(e,n){e&1&&(r(0,"div",0)(1,"agentos-shell-topbar-mobile",1),u("homeClicked",function(){return n.navigateHome()})("namespaceSelected",function(a){return n.onNamespaceSelected(a)})("nsMenuToggled",function(a){return n.toggleNsMenu(a)})("nsMenuClosed",function(a){return n.closeNsMenu(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()})("logsToggled",function(){return n.onMenuToggleLogs()}),l(),r(2,"agentos-shell-case-switcher-mobile",2),u("caseSelected",function(a){return n.onMobileCaseSelect(a)})("createRequested",function(){return n.onMobileCreateCase()})("toggled",function(){return n.toggleMobileSwitcher()}),l(),r(3,"agentos-shell-sidebar",3),u("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()})("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()})("logsToggled",function(){return n.onMenuToggleLogs()}),l(),p(4,bn,1,0,"div",4),p(5,fn,3,0,"button",5),r(6,"main",6),p(7,vn,1,1,"agentos-case-chat",7)(8,xn,1,0,"agentos-case-home"),l()()),e&2&&(s(),M("selectedNamespace",n.selectedNamespace())("namespaces",n.namespaces())("nsMenuOpen",n.nsMenuOpen())("userInitials",n.userInitials())("menuOpen",n.menuOpen())("isAdmin",n.isAdmin())("isDark",n.isDark())("showTechnical",n.showTechnical()),s(),M("cases",n.cases())("activeCaseId",n.activeCaseId())("open",n.mobileSwitcherOpen()),s(),M("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())("menuOpen",n.menuOpen())("isAdmin",n.isAdmin())("isDark",n.isDark())("showTechnical",n.showTechnical()),s(),_(n.sidebarOpen()?4:-1),s(),_(n.sidebarOpen()?-1:5),s(2),_(n.activeCaseId()?7:8))},dependencies:[be,fe,xe,ye,we],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;height:100dvh}.case-shell[_ngcontent-%COMP%]{display:flex;height:100%;overflow:hidden}.case-shell__resize-handle[_ngcontent-%COMP%]{width:4px;flex-shrink:0;cursor:col-resize;background:var(--color-border, rgba(0, 0, 0, .09));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-primary, #016b71)}.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, #968f85);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, rgba(0, 0, 0, .05));color:var(--color-text, #1b1916)}@media(max-width:900px){.case-shell__expand-btn[_ngcontent-%COMP%]{display:none}}"],changeDetection:0})};export{be as a,fe as b,ve as c,tt as d};
|
|
1
|
+
import{c as ge}from"./chunk-IAIUV3RV.js";import{a as he}from"./chunk-7BVQ2WHQ.js";import{a as Ce}from"./chunk-5V6YWKKW.js";import{a as Xe}from"./chunk-ZX7BSCA5.js";import{c as Ke}from"./chunk-Q4QETBSU.js";import{a as pe,e as _e,h as Be}from"./chunk-5TU5JR3W.js";import{a as Qe,b as je,c as Ye}from"./chunk-CHH2YNB6.js";import{a as J,c as me}from"./chunk-32554AB2.js";import{o as ue,t as Ge}from"./chunk-26Y7QHUX.js";import{a as L,b as Ue,c as te}from"./chunk-BVQ4XPRS.js";import{Ab as Me,Bb as S,D as ae,Db as u,Eb as X,F as Y,Fb as c,Ga as Re,Hc as $e,Jb as W,Ka as s,Kb as q,Kc as He,Lb as V,Ma as re,Pb as le,Q as Oe,Qb as ce,Rb as I,S as H,Sb as Te,Tb as d,Ub as g,Uc as de,Vb as z,Wa as P,Xb as qe,Xc as We,Z as Ie,a as ne,ab as se,b as oe,ca as y,cc as Ve,dc as Le,ec as ze,fc as Fe,ga as C,h as ie,ha as b,i as Ee,ic as ke,jb as ee,kb as Ae,lb as p,lc as T,m as j,ma as G,mb as _,oc as v,pa as De,pb as D,pc as f,qb as N,rb as M,sb as r,t as $,ta as x,tb as l,ua as K,ub as A,va as Ne,vb as k,wb as O,xb as Se}from"./chunk-QDO3O2UB.js";var Z=class o{caseController=y(_e);cases=x([]);loadSubscription=null;loadCases(t){this.loadSubscription?.unsubscribe(),this.loadSubscription=this.caseController.listByParentCase(t).subscribe(e=>{this.cases.set(e),this.loadSubscription=null})}addCase(t){this.cases.update(e=>[t,...e])}updateCaseTitle(t,e){this.cases.update(n=>n.map(i=>i.id===t?oe(ne({},i),{title:e}):i))}static \u0275fac=function(e){return new(e||o)};static \u0275prov=Ie({token:o,factory:o.\u0275fac,providedIn:"root"})};var ot=["promptItem"],Je=(o,t)=>t.name;function it(o,t){if(o&1&&(k(0,"span",5),d(1),O()),o&2){let e=t.$implicit;s(),qe("","{","","{","",e.name,"","}","","}")}}function at(o,t){if(o&1&&(k(0,"span",6),d(1),O()),o&2){let e=c().$implicit;s(),g(e.description)}}function rt(o,t){if(o&1){let e=S();k(0,"li",3,0),X("click",function(){let i=C(e).$implicit,a=c();return b(a.onItemClick(i))})("keydown.enter",function(){let i=C(e).$implicit,a=c();return b(a.onItemClick(i))})("mouseenter",function(){let i=C(e).$index,a=c();return b(a.activeIndex.set(i))}),k(2,"span",4),d(3),D(4,it,2,5,"span",5,Je),O(),p(6,at,2,1,"span",6),O()}if(o&2){let e=t.$implicit,n=t.$index,i=c();I("prompt-autocomplete__item--active",i.isActive(n)),ee("aria-selected",i.isActive(n)),s(3),z(" /",e.name," "),s(),N(e.parameters),s(2),_(e.description?6:-1)}}var U=class o{prompts=f.required();selected=v();dismissed=v();activeIndex=x(0);itemRefs;ngOnChanges(t){t.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?.toArray()?.[this.activeIndex()]?.nativeElement.scrollIntoView({block:"nearest"})}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=P({type:o,selectors:[["agentos-prompt-autocomplete"]],viewQuery:function(e,n){if(e&1&&W(ot,5),e&2){let i;q(i=V())&&(n.itemRefs=i)}},inputs:{prompts:[1,"prompts"]},outputs:{selected:"selected",dismissed:"dismissed"},features:[Ne],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&&(k(0,"ul",1),D(1,rt,7,5,"li",2,Je),O()),e&2&&(s(),N(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}"],changeDetection:0})};var st=["composerInput"],lt=["messagesContainer"],ct=(o,t)=>t.phaseIndex;function dt(o,t){o&1&&(r(0,"div",4)(1,"p"),d(2,"No messages yet."),l()())}function mt(o,t){if(o&1&&(r(0,"div",19)(1,"span",22),d(2,"session context"),l(),r(3,"pre",23),d(4),ze(5,"json"),l()()),o&2){let e=c(2).$implicit;s(4),g(Fe(5,1,e.event.sessionContext))}}function pt(o,t){if(o&1&&(r(0,"div",18),p(1,mt,6,3,"div",19),r(2,"span",20),d(3),l(),A(4,"div",21),l()),o&2){let e=c().$implicit,n=c(2);I("case-chat__message--user",e.event.actor.role==="USER")("case-chat__message--agent",e.event.actor.role==="AGENT"),s(),_(n.showTechnical()&&e.event.sessionContext?1:-1),s(2),g(e.event.actor.displayName),s(),M("innerHTML",e.html,Re)}}function _t(o,t){if(o&1&&(r(0,"div",15)(1,"span",20),d(2),l(),r(3,"p",24),d(4),l()()),o&2){let e=c().$implicit,n=c(2);s(2),g(n.agentDisplayName()),s(2),g(e.text)}}function ut(o,t){if(o&1&&(r(0,"div",29),d(1),l()),o&2){let e=c(3).$implicit;s(),g(e.item.detail)}}function ht(o,t){if(o&1){let e=S();r(0,"button",27),u("click",function(){C(e);let i=c(2).$implicit,a=c(2);return b(a.toggleTechnical(i.eventId))}),r(1,"span",26),d(2),l(),r(3,"span",28),d(4),l()(),p(5,ut,2,1,"div",29)}if(o&2){let e=c(2).$implicit,n=c(2);ee("aria-expanded",n.isTechnicalExpanded(e.eventId)),s(2),g(e.item.label),s(2),g(n.isTechnicalExpanded(e.eventId)?"\u25BC":"\u25B6"),s(),_(n.isTechnicalExpanded(e.eventId)?5:-1)}}function gt(o,t){if(o&1&&(r(0,"span",26),d(1),l()),o&2){let e=c(2).$implicit;s(),g(e.item.label)}}function Ct(o,t){if(o&1&&(r(0,"div",25),p(1,ht,6,4)(2,gt,2,1,"span",26),l()),o&2){let e=c().$implicit;I("case-chat__technical--warn",e.item.type==="WarnEvent")("case-chat__technical--error",e.item.type==="ErrorEvent"),s(),_(e.item.detail?1:2)}}function bt(o,t){o&1&&d(0," \u23F3 ")}function ft(o,t){o&1&&d(0," \u2705 ")}function vt(o,t){o&1&&d(0," \u274C ")}function xt(o,t){if(o&1&&(r(0,"div",46)(1,"span",47),d(2,"Enrichment content"),l(),r(3,"pre"),d(4),l()()),o&2){let e=c().$implicit;s(4),g(e.enrichmentContent)}}function yt(o,t){if(o&1&&(r(0,"div",42)(1,"div",43)(2,"span",44),d(3),l(),r(4,"span",45),d(5),l()(),r(6,"div",46)(7,"span",47),d(8,"Prompt"),l(),r(9,"pre"),d(10),l()(),r(11,"div",46)(12,"span",47),d(13,"LLM output"),l(),r(14,"pre"),d(15),l()(),p(16,xt,5,1,"div",46),l()),o&2){let e=t.$implicit;I("case-chat__enrichment-phase--failed",!e.success),s(3),z("Phase ",e.phaseIndex),s(2),g(e.success?"\u2705":"\u274C"),s(5),g(e.prompt),s(5),g(e.llmOutput),s(),_(e.enrichmentContent?16:-1)}}function wt(o,t){if(o&1&&(r(0,"div",36)(1,"span",38),d(2,"Enrichment phases"),l(),D(3,yt,17,7,"div",41,ct),l()),o&2){let e=c(3).$implicit;s(3),N(e.call.enrichmentPhases)}}function St(o,t){if(o&1&&(r(0,"div",37)(1,"span",38),d(2,"Payload"),l(),r(3,"pre"),d(4),l()()),o&2){let e=c(3).$implicit;s(4),g(e.call.args)}}function Mt(o,t){o&1&&(r(0,"pre"),d(1),l()),o&2&&(s(),g(t))}function Tt(o,t){o&1&&(r(0,"span",39),d(1,"Running\u2026"),l())}function kt(o,t){o&1&&(r(0,"span",40),d(1,"No output"),l())}function Pt(o,t){if(o&1&&(r(0,"div",35),p(1,wt,5,0,"div",36),p(2,St,5,1,"div",37),r(3,"div",37)(4,"span",38),d(5,"Output"),l(),p(6,Mt,2,1,"pre")(7,Tt,2,0,"span",39)(8,kt,2,0,"span",40),l()()),o&2){let e,n=c(2).$implicit,i=c(2);s(),_(i.showTechnical()&&(n.call.enrichmentPhases!=null&&n.call.enrichmentPhases.length)?1:-1),s(),_(n.call.args?2:-1),s(4),_((e=i.extractToolOutput(n.call))?6:n.call.response?8:7,e)}}function Et(o,t){if(o&1){let e=S();r(0,"div",30)(1,"button",31),u("click",function(){C(e);let i=c().$implicit,a=c(2);return b(a.toggleToolCall(i.call.requestId))}),r(2,"span",32),p(3,bt,1,0)(4,ft,1,0)(5,vt,1,0),l(),r(6,"span",33),d(7),l(),r(8,"span",34),d(9),l()(),p(10,Pt,9,3,"div",35),l()}if(o&2){let e=c().$implicit,n=c(2);I("case-chat__tool-call--pending",!e.call.response)("case-chat__tool-call--success",(e.call.response==null?null:e.call.response.success)===!0)("case-chat__tool-call--error",(e.call.response==null?null:e.call.response.success)===!1),s(),ee("aria-expanded",n.isToolCallExpanded(e.call.requestId)),s(2),_(e.call.response?e.call.response.success?4:5:3),s(4),g(e.call.toolName),s(2),g(n.isToolCallExpanded(e.call.requestId)?"\u25BC":"\u25B6"),s(),_(n.isToolCallExpanded(e.call.requestId)?10:-1)}}function Ot(o,t){if(o&1&&p(0,pt,5,7,"div",14)(1,_t,5,2,"div",15)(2,Ct,3,5,"div",16)(3,Et,11,11,"div",17),o&2){let e=t.$implicit;_(e.kind==="message"?0:e.kind==="streaming"?1:e.kind==="technical"?2:3)}}function It(o,t){if(o&1&&D(0,Ot,4,1,null,null,Ae().trackTimelineItem,!0),o&2){let e=c();N(e.timeline())}}function Dt(o,t){o&1&&(r(0,"div",5),A(1,"span",48)(2,"span",48)(3,"span",48),l())}function Nt(o,t){if(o&1){let e=S();r(0,"div",6)(1,"ds-icon-button",49),u("action",function(){C(e);let i=c();return b(i.onScrollToBottomClick())}),l()()}}function Rt(o,t){if(o&1){let e=S();r(0,"div",8)(1,"agentos-prompt-autocomplete",50),u("selected",function(i){C(e);let a=c();return b(a.onPromptSelected(i))})("dismissed",function(){C(e);let i=c();return b(i.closeAutocomplete())}),l()()}if(o&2){let e=c();s(),M("prompts",e.slashSuggestions())}}function At(o,t){if(o&1){let e=S();r(0,"ds-icon-button",51),u("action",function(){C(e);let i=c();return b(i.interrupt())}),l()}}function qt(o,t){if(o&1){let e=S();r(0,"ds-icon-button",52),u("action",function(){C(e);let i=c();return b(i.submit())}),l()}if(o&2){let e=c();M("title",e.preferences.composerHint())("disabled",!e.canSend)}}var Vt=64,be=class o{route=y(J);http=y(de);zone=y(De);destroyRef=y(G);domSanitizer=y(We);config=y(pe);preferences=y(ge);caseState=y(Z);promptState=y(he);caseId=this.route.snapshot.queryParams.case;namespaceId=this.route.snapshot.queryParams.ns;markdownRenderer=this.buildMarkdownRenderer();agentDisplayName=T(()=>{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;messagesContainer;autocompleteRef;events=x([]);messageHtmlCache=new Map;inputValue=x("");isRunning=x(!1);isTerminal=x(!1);effectivePrompts=[];promptsLoaded=!1;slashPrefix$=new ie;slashSuggestions=x([]);static SHOW_TECHNICAL_KEY="agentos.case-chat.showTechnical";showTechnical=x(localStorage.getItem(o.SHOW_TECHNICAL_KEY)==="true");showTechnicalOverride=f(!1);streamingText=x("");collapsedTools=x(new Set);expandedTechnicals=x(new Set);isAtBottom=x(!0);scrollListenerCleanup=null;constructor(){this.slashPrefix$.pipe(Y(60),H(t=>(this.promptsLoaded?j(this.effectivePrompts):this.promptState.listEffective(this.namespaceId).pipe(ae(()=>j([])))).pipe($(n=>({prefix:t,prompts:n})))),L(this.destroyRef)).subscribe(({prefix:t,prompts:e})=>{this.effectivePrompts=e,this.promptsLoaded=!0,this.slashSuggestions.set(e.filter(n=>n.name.toLowerCase().startsWith(t.toLowerCase())))}),K(()=>{this.showTechnical.set(this.showTechnicalOverride())}),K(()=>{this.isRunning()||this.isTerminal()||queueMicrotask(()=>this.composerInput?.nativeElement.focus())}),K(()=>{this.timeline(),this.streamingText(),this.isAtBottom()&&queueMicrotask(()=>this.scrollToBottom())}),re(()=>{this.attachScrollListener()})}baseTimeline=T(()=>{let t=this.events(),e=this.showTechnical(),n=new Map;for(let w of t)if(w.type==="ToolRequestEvent"){let m=w,h=m.toolRequestId??w.id,R=n.get(h);n.set(h,{requestId:h,toolName:m.toolName??"unknown",args:m.args??null,response:R?.response,enrichmentPhases:m.enrichmentPhases??null})}else if(w.type==="ToolResponseEvent"){let m=w,h=m.toolRequestId??w.id,R=n.get(h);n.set(h,{requestId:h,toolName:R?.toolName??m.toolName??"unknown",args:R?.args??null,response:m,enrichmentPhases:R?.enrichmentPhases??null})}let i=[],a=new Set;for(let w of t)if(w.type==="MessageEvent"){let m=w;i.push({kind:"message",event:m,html:this.messageHtmlCache.get(w.id)??""})}else if(w.type==="ToolRequestEvent"||w.type==="ToolResponseEvent"){let m=w.toolRequestId??w.id;a.has(m)||(a.add(m),i.push({kind:"tool",call:n.get(m)}))}else if(e){let m=this.toTechnicalItem(w);m&&i.push({kind:"technical",item:m,eventId:w.id})}return i});timeline=T(()=>{let t=this.baseTimeline(),e=this.streamingText();return e.trim().length===0?t:[...t,{kind:"streaming",text:e}]});trackTimelineItem(t,e){switch(e.kind){case"message":return e.event.id;case"tool":return e.call.requestId;case"technical":return e.eventId;case"streaming":return"streaming"}}get canSend(){return!!this.inputValue().trim()&&!this.isRunning()&&!this.isTerminal()}ngOnInit(){this.connectSse(),this.route.queryParams.pipe(L(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<=Vt)};t.addEventListener("scroll",e,{passive:!0}),this.scrollListenerCleanup=()=>t.removeEventListener("scroll",e)}scrollToBottom(){let t=this.messagesContainer?.nativeElement;t&&(t.scrollTop=t.scrollHeight)}onScrollToBottomClick(){this.isAtBottom.set(!0),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(),w=i.type,m=i.data;console.log("[AgentOS SSE] frame received",{sseEventName:w,dataLength:m?.length??0,dataPreview:m?.slice(0,120),receivedAtMs:a});try{let h=JSON.parse(m);this.zone.run(()=>{let R=this.events().length;if(h.type==="MessageEvent"){let E=h,F=this.extractText(E);this.messageHtmlCache.has(h.id)||this.messageHtmlCache.set(h.id,this.renderMarkdown(F))}this.events.update(E=>E.some(F=>F.id===h.id)?E:[...E,h]);let nt=this.events().length;if(console.log("[AgentOS SSE] event processed",{sseEventName:w,eventType:h.type,eventId:h.id,beforeLen:R,afterLen:nt,running:this.isRunning(),terminal:this.isTerminal()}),h.type==="TextChunkEvent"){let E=h.chunk;E&&this.streamingText.update(F=>F+E);return}if(h.type==="CaseUpdatedEvent"){let E=h;E.title&&this.caseState.updateCaseTitle(h.caseId,E.title);return}if(h.type==="CaseStatusEvent"){let E=h.status,F=E==="KILLED"||E==="ERROR";if(this.isTerminal.set(F),F)this.isRunning.set(!1),this.eventSource?.close(),this.eventSource=null;else{let Pe=E==="RUNNING";this.isRunning.set(Pe),Pe||this.streamingText.set("")}return}if(h.type==="AgentFinishedEvent"){this.isRunning.set(!1),this.streamingText.set("");return}})}catch(h){console.warn("[AgentOS SSE] failed to parse event data",{sseEventName:w,error:h,dataPreview:m?.slice(0,500)})}},n=["MessageEvent","CaseStatusEvent","CaseUpdatedEvent","AgentSelectedEvent","AgentRunningEvent","AgentFinishedEvent","ThinkingEvent","TextChunkEvent","ToolRequestEvent","ToolResponseEvent","PendingConfirmationEvent","ConfirmationResolvedEvent","ErrorEvent","WarnEvent","IntentionGeneratedEvent"];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(!1)})}}onInput(t){let e=t.target.value;this.inputValue.set(e),this.updateSlashAutocomplete(e)}onKeydown(t){if(this.slashSuggestions().length>0){if(t.key==="ArrowDown"||t.key==="ArrowUp"){t.preventDefault(),this.autocompleteRef?.navigate(t.key);return}if(t.key==="Escape"){t.preventDefault(),this.closeAutocomplete();return}if(t.key==="Tab"||t.key==="Enter"){t.preventDefault(),this.autocompleteRef?.navigate("Enter");return}}this.preferences.shouldSend(t)&&(t.preventDefault(),this.submit())}onPromptSelected(t){let e=this.autocompleteRef?.completionFor(t)??`/${t.name} `;this.inputValue.set(e),queueMicrotask(()=>{let n=this.composerInput?.nativeElement;n&&(n.value=e,n.setSelectionRange(e.length,e.length),n.focus())}),this.closeAutocomplete()}closeAutocomplete(){this.slashSuggestions.set([])}updateSlashAutocomplete(t){if(!t.startsWith("/")){this.slashSuggestions().length&&this.slashSuggestions.set([]);return}let e=t.slice(1);if(e.includes(" ")){this.slashSuggestions().length&&this.slashSuggestions.set([]);return}this.promptsLoaded&&this.slashSuggestions.set(this.effectivePrompts.filter(n=>n.name.toLowerCase().startsWith(e.toLowerCase()))),this.slashPrefix$.next(e)}reinitialise(){this.eventSource?.close(),this.eventSource=null,this.events.set([]),this.messageHtmlCache.clear(),this.inputValue.set(""),this.isRunning.set(!1),this.isTerminal.set(!1),this.streamingText.set(""),this.collapsedTools.set(new Set),this.isAtBottom.set(!0),this.slashSuggestions.set([]),this.effectivePrompts=[],this.promptsLoaded=!1,this.connectSse()}submit(){if(!this.canSend)return;let t=this.inputValue().trim();this.inputValue.set(""),this.sendMessage(t)}sendMessage(t){this.isRunning.set(!0),this.streamingText.set(""),this.http.post(`${this.config.basePath}/api/cases/${this.caseId}/messages`,{content:t,userId:"default-user"}).subscribe({error:e=>{console.error("[CaseChat] Failed to send message",e),this.isRunning.set(!1)}})}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("")??""}extractToolOutput(t){if(!t.response)return null;let e=t.response.output;return e?e.content??null:null}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.showTechnical.update(t=>{let e=!t;return localStorage.setItem(o.SHOW_TECHNICAL_KEY,String(e)),e})}toggleTechnical(t){this.expandedTechnicals.update(e=>{let n=new Set(e);return n.has(t)?n.delete(t):n.add(t),n})}isTechnicalExpanded(t){return this.expandedTechnicals().has(t)}renderMarkdown(t){if(!t)return"";let e=je.parse(t,{renderer:this.markdownRenderer,breaks:!0,gfm:!0,async:!1}),n=Ye.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 Qe,e=t.link.bind(t);return t.link=n=>{let i=e(n);return this.isExternalLink(n.href)&&(i=i.replace("<a ",'<a target="_blank" rel="noopener noreferrer" ').replace("</a>",'<span class="external-link-icon" aria-hidden="true">\u2197</span></a>')),i},t}isExternalLink(t){if(!t||t.startsWith("/")||t.startsWith("#")||t.startsWith("?"))return!1;if(t.startsWith("//"))return!0;try{return new URL(t,window.location.href).hostname!==window.location.hostname}catch(e){return!1}}toTechnicalItem(t){switch(t.type){case"WarnEvent":return{type:"WarnEvent",label:"\u26A0\uFE0F Warn",detail:t.message};case"ErrorEvent":return{type:"ErrorEvent",label:"\u274C Error",detail:t.message};case"CaseStatusEvent":return{type:"CaseStatusEvent",label:`\u{1F7E1} Status: ${t.status}`};case"AgentRunningEvent":return{type:"AgentRunningEvent",label:`\u25B6\uFE0F Agent running: ${t.agentName}`};case"AgentFinishedEvent":return{type:"AgentFinishedEvent",label:`\u2705 Agent finished: ${t.agentName}`};case"AgentSelectedEvent":return{type:"AgentSelectedEvent",label:`\u{1F3AF} Agent selected: ${t.agentName}`};case"IntentionGeneratedEvent":{let e=t;return{type:"IntentionGeneratedEvent",label:`\u{1F9E0} Intention \u2192 ${e.toolName}`,detail:e.intention}}default:return null}}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=P({type:o,selectors:[["agentos-case-chat"]],viewQuery:function(e,n){if(e&1&&W(st,5)(lt,5)(U,5),e&2){let i;q(i=V())&&(n.composerInput=i.first),q(i=V())&&(n.messagesContainer=i.first),q(i=V())&&(n.autocompleteRef=i.first)}},inputs:{showTechnicalOverride:[1,"showTechnicalOverride"]},decls:15,vars:8,consts:[["messagesContainer",""],["composerInput",""],[1,"case-chat"],[1,"case-chat__messages"],[1,"case-chat__empty"],[1,"case-chat__thinking"],[1,"case-chat__scroll-anchor"],[1,"case-chat__composer"],[1,"case-chat__autocomplete"],["placeholder","Reply\u2026","rows","3",1,"case-chat__input",3,"input","keydown","value","disabled"],[1,"case-chat__actions"],["icon","stop","variant","danger","title","Interrupt"],["icon","send","variant","primary",3,"title","disabled"],["icon","cancel","variant","danger","title","Kill",3,"action","disabled"],[1,"case-chat__message",3,"case-chat__message--user","case-chat__message--agent"],[1,"case-chat__message","case-chat__message--agent","case-chat__message--streaming"],[1,"case-chat__technical",3,"case-chat__technical--warn","case-chat__technical--error"],[1,"case-chat__tool-call",3,"case-chat__tool-call--pending","case-chat__tool-call--success","case-chat__tool-call--error"],[1,"case-chat__message"],[1,"case-chat__session-context"],[1,"case-chat__message-author"],[1,"case-chat__message-text","case-chat__message-text--markdown",3,"innerHTML"],[1,"case-chat__session-context-label"],[1,"case-chat__session-context-body"],[1,"case-chat__message-text"],[1,"case-chat__technical"],[1,"case-chat__technical-label"],["type","button",1,"case-chat__technical-header",3,"click"],[1,"case-chat__technical-chevron"],[1,"case-chat__technical-body"],[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-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"],[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","prompts"],["icon","stop","variant","danger","title","Interrupt",3,"action"],["icon","send","variant","primary",3,"action","title","disabled"]],template:function(e,n){e&1&&(r(0,"div",2)(1,"div",3,0),p(3,dt,3,0,"div",4)(4,It,2,0),p(5,Dt,4,0,"div",5),l(),p(6,Nt,2,0,"div",6),r(7,"div",7),p(8,Rt,2,1,"div",8),r(9,"textarea",9,1),u("input",function(a){return n.onInput(a)})("keydown",function(a){return n.onKeydown(a)}),l(),r(11,"div",10),p(12,At,1,0,"ds-icon-button",11)(13,qt,1,2,"ds-icon-button",12),r(14,"ds-icon-button",13),u("action",function(){return n.kill()}),l()()()()),e&2&&(s(3),_(n.timeline().length===0?3:4),s(2),_(n.isRunning()?5:-1),s(),_(n.isAtBottom()?-1:6),s(2),_(n.slashSuggestions().length>0?8:-1),s(),M("value",n.inputValue())("disabled",n.isRunning()||n.isTerminal()),s(3),_(n.isRunning()?12:13),s(2),M("disabled",n.isTerminal()))},dependencies:[ue,U,He],styles:['[_nghost-%COMP%]{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.case-chat[_ngcontent-%COMP%]{display:flex;flex-direction:column;flex:1;min-height:0;max-width:800px;width:100%;margin:0 auto;padding:1.5rem;gap:1rem;position:relative}.case-chat__messages[_ngcontent-%COMP%]{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:.75rem;padding-bottom:.5rem;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--color-border, rgba(0, 0, 0, .15)) 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-text-secondary, #6e6e73);font-size:.9rem;margin:0}.case-chat__tool-calls[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.4rem;margin-top:.25rem}.case-chat__tool-call[_ngcontent-%COMP%]{flex-shrink:0;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:var(--glass-bg, rgba(255, 255, 255, .72));font-size:.8rem;overflow:hidden;transition:border-color .2s ease}.case-chat__tool-call--pending[_ngcontent-%COMP%]{border-color:var(--color-warning, #f5a623);opacity:.8}.case-chat__tool-call--success[_ngcontent-%COMP%]{border-color:var(--color-success, #34c759)}.case-chat__tool-call--error[_ngcontent-%COMP%]{border-color:var(--color-error, #ff3b30)}.case-chat__tool-call-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.4rem;width:100%;padding:.4rem .6rem;background:transparent;border:none;cursor:pointer;text-align:left;color:var(--color-text, #1d1d1f);font-family:inherit;font-size:.8rem}.case-chat__tool-call-header[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04))}.case-chat__tool-call-icon[_ngcontent-%COMP%]{flex-shrink:0;font-size:.75rem}.case-chat__tool-call-name[_ngcontent-%COMP%]{font-weight:600;font-family:var(--font-mono, ui-monospace, "SF Mono", monospace);color:var(--color-primary, #0071e3);flex-shrink:0}.case-chat__tool-call-args[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);font-family:var(--font-mono, ui-monospace, "SF Mono", monospace);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.case-chat__tool-call-chevron[_ngcontent-%COMP%]{flex-shrink:0;font-size:.6rem;color:var(--color-text-secondary, #6e6e73);margin-left:auto}.case-chat__tool-call-output[_ngcontent-%COMP%]{border-top:1px solid var(--color-border, rgba(0, 0, 0, .08));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-border, rgba(0, 0, 0, .06))}.case-chat__tool-call-section[_ngcontent-%COMP%] pre[_ngcontent-%COMP%]{margin:.25rem 0 0;white-space:pre-wrap;word-break:break-all;font-family:var(--font-mono, ui-monospace, "SF Mono", monospace);font-size:.75rem;color:var(--color-text, #1d1d1f);max-height:200px;overflow-y:auto}.case-chat__tool-call-label[_ngcontent-%COMP%]{display:block;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary, #6e6e73)}.case-chat__enrichment-section[_ngcontent-%COMP%]{background:var(--color-surface-secondary, rgba(0, 0, 0, .02))}.case-chat__enrichment-phase[_ngcontent-%COMP%]{margin-top:.35rem;border-radius:4px;border:1px solid var(--color-border, rgba(0, 0, 0, .08));background:var(--glass-bg, rgba(255, 255, 255, .6));overflow:hidden}.case-chat__enrichment-phase--failed[_ngcontent-%COMP%]{border-color:var(--color-error, #ff3b30);background:#ff3b300a}.case-chat__enrichment-phase-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:.2rem .5rem;background:var(--color-surface-secondary, rgba(0, 0, 0, .03));border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .06))}.case-chat__enrichment-phase-index[_ngcontent-%COMP%]{font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary, #6e6e73)}.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-border, rgba(0, 0, 0, .04))}.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-mono, ui-monospace, "SF Mono", monospace);font-size:.7rem;color:var(--color-text, #1d1d1f);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-text-secondary, #6e6e73)}.case-chat__tool-call-pending[_ngcontent-%COMP%], .case-chat__tool-call-empty[_ngcontent-%COMP%]{display:block;margin-top:.25rem;color:var(--color-text-secondary, #6e6e73);font-style:italic;font-size:.75rem}.case-chat__technical[_ngcontent-%COMP%]{flex-shrink:0;border-radius:6px;background:var(--color-surface-secondary, rgba(0, 0, 0, .03));border-left:3px solid var(--color-border, rgba(0, 0, 0, .12));font-size:.78rem;color:var(--color-text-secondary, #6e6e73);overflow:hidden}.case-chat__technical--warn[_ngcontent-%COMP%]{border-left-color:var(--color-warning, #f5a623);background:#f5a6230f;color:var(--color-text, #1d1d1f)}.case-chat__technical--error[_ngcontent-%COMP%]{border-left-color:var(--color-error, #ff3b30);background:#ff3b300f;color:var(--color-text, #1d1d1f)}.case-chat__technical-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;width:100%;padding:.2rem .75rem;background:transparent;border:none;cursor:pointer;text-align:left;color:inherit;font-family:inherit;font-size:inherit}.case-chat__technical-header[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04))}.case-chat__technical-label[_ngcontent-%COMP%]{font-weight:500;white-space:nowrap}.case-chat__technical-label[_ngcontent-%COMP%]:only-child{display:block;padding:.2rem .75rem}.case-chat__technical-chevron[_ngcontent-%COMP%]{flex-shrink:0;font-size:.6rem;color:var(--color-text-secondary, #6e6e73);margin-left:auto}.case-chat__technical-body[_ngcontent-%COMP%]{padding:.3rem .75rem .5rem;border-top:1px solid var(--color-border, rgba(0, 0, 0, .08));white-space:pre-wrap;word-break:break-word;font-size:.75rem;line-height:1.5;color:var(--color-text, #1d1d1f)}.case-chat__session-context[_ngcontent-%COMP%]{flex-shrink:0;border-radius:6px;background:var(--color-surface-secondary, rgba(0, 0, 0, .03));border-left:3px solid var(--color-primary, #0071e3);padding:.25rem .75rem .4rem;margin-bottom:.25rem;font-size:.75rem;color:var(--color-text-secondary, #6e6e73);overflow:hidden}.case-chat__session-context-label[_ngcontent-%COMP%]{display:block;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-primary, #0071e3);margin-bottom:.2rem}.case-chat__session-context-body[_ngcontent-%COMP%]{margin:0;white-space:pre-wrap;word-break:break-all;font-family:var(--font-mono, ui-monospace, "SF Mono", monospace);font-size:.75rem;color:var(--color-text, #1d1d1f);max-height:160px;overflow-y:auto}.case-chat__message[_ngcontent-%COMP%]{flex-shrink:0}.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-mono, ui-monospace, "SF Mono", monospace);font-size:.85em;background:var(--color-code-bg, rgba(0, 0, 0, .06));border-radius:3px;padding:.1em .35em}.case-chat__message-text--markdown[_ngcontent-%COMP%] pre[_ngcontent-%COMP%]{background:var(--color-code-bg, rgba(0, 0, 0, .06));border-radius:6px;padding:.6em .8em;overflow-x:auto;margin:.4em 0}.case-chat__message-text--markdown[_ngcontent-%COMP%] pre[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:none;padding:0;font-size:.8rem}.case-chat__message-text--markdown[_ngcontent-%COMP%] blockquote[_ngcontent-%COMP%]{margin:.4em 0;padding-left:.8em;border-left:3px solid var(--color-border, rgba(0, 0, 0, .15));color:var(--color-text-secondary, #6e6e73)}.case-chat__message-text--markdown[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:var(--color-primary, #0071e3);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__message--streaming[_ngcontent-%COMP%]{opacity:.95}.case-chat__scroll-anchor[_ngcontent-%COMP%]{position:absolute;bottom:calc(2rem + 80px);left:50%;transform:translate(-50%);z-index:10;background:var(--glass-bg, rgba(255, 255, 255, .88));border:1px solid var(--glass-border, rgba(255, 255, 255, .3));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:50%;box-shadow:0 2px 12px var(--color-shadow, rgba(0, 0, 0, .12));animation:_ngcontent-%COMP%_scroll-anchor-in .15s ease}.case-chat__autocomplete[_ngcontent-%COMP%]{position:absolute;bottom:calc(100% + .5rem);left:0;right:0;background:var(--glass-bg, rgba(255, 255, 255, .96));border:1px solid var(--color-border, rgba(0, 0, 0, .1));backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:12px;box-shadow:0 8px 32px #00000026;z-index:20;animation:_ngcontent-%COMP%_autocomplete-in .12s ease}.case-chat__composer[_ngcontent-%COMP%]{flex-shrink:0;position:relative;display:flex;align-items:flex-end;gap:.5rem;background:var(--glass-bg, rgba(255, 255, 255, .72));border: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));border-radius:16px;padding:.5rem .5rem .5rem 1rem}.case-chat__input[_ngcontent-%COMP%]{flex:1;resize:none;padding:.5rem 0;border:none;background:transparent;color:var(--color-text, #1d1d1f);font-size:.95rem;font-family:inherit;line-height:1.5;outline:none;min-height:40px}.case-chat__input[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary, #6e6e73)}.case-chat__input[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed}.case-chat__actions[_ngcontent-%COMP%]{display:flex;align-items:center;flex-shrink:0}.thinking-dot[_ngcontent-%COMP%]{width:8px;height:8px;border-radius:50%;background:var(--color-text-secondary, #6e6e73);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)}}']})};var Lt=["composerInput"];function zt(o,t){if(o&1){let e=S();r(0,"div",5)(1,"agentos-prompt-autocomplete",10),u("selected",function(i){C(e);let a=c();return b(a.onPromptSelected(i))})("dismissed",function(){C(e);let i=c();return b(i.closeAutocomplete())}),l()()}if(o&2){let e=c();s(),M("prompts",e.slashSuggestions())}}var fe=class o{http=y(de);router=y(me);route=y(J);config=y(pe);caseState=y(Z);destroyRef=y(G);preferences=y(ge);promptState=y(he);composerInput;autocompleteRef;namespaceId=this.route.snapshot.queryParams.ns;inputValue=x("");isCreating=x(!1);effectivePrompts=[];promptsLoaded=!1;slashPrefix$=new ie;slashSuggestions=x([]);ngOnInit(){this.route.queryParams.pipe(L(this.destroyRef)).subscribe(t=>{let e=t.ns;e&&e!==this.namespaceId&&(this.namespaceId=e,this.effectivePrompts=[],this.promptsLoaded=!1,this.slashSuggestions.set([]),this.inputValue.set(""))})}constructor(){re(()=>{this.composerInput?.nativeElement.focus()}),this.slashPrefix$.pipe(Y(60),H(t=>(this.promptsLoaded?j(this.effectivePrompts):this.promptState.listEffective(this.namespaceId).pipe(ae(()=>j([])))).pipe($(n=>({prefix:t,prompts:n})))),L(this.destroyRef)).subscribe(({prefix:t,prompts:e})=>{this.effectivePrompts=e,this.promptsLoaded=!0,this.slashSuggestions.set(e.filter(n=>n.name.toLowerCase().startsWith(t.toLowerCase())))})}get canSend(){return!!this.inputValue().trim()&&!this.isCreating()}onInput(t){let e=t.target.value;this.inputValue.set(e),this.updateSlashAutocomplete(e)}onKeydown(t){if(this.slashSuggestions().length>0){if(t.key==="ArrowDown"||t.key==="ArrowUp"){t.preventDefault(),this.autocompleteRef?.navigate(t.key);return}if(t.key==="Escape"){t.preventDefault(),this.closeAutocomplete();return}if(t.key==="Tab"||t.key==="Enter"){t.preventDefault(),this.autocompleteRef?.navigate("Enter");return}}this.preferences.shouldSend(t)&&(t.preventDefault(),this.submit())}onPromptSelected(t){let e=this.autocompleteRef?.completionFor(t)??`/${t.name} `;this.inputValue.set(e),queueMicrotask(()=>{let n=this.composerInput?.nativeElement;n&&(n.value=e,n.setSelectionRange(e.length,e.length),n.focus())}),this.closeAutocomplete()}closeAutocomplete(){this.slashSuggestions.set([])}updateSlashAutocomplete(t){if(!t.startsWith("/")){this.slashSuggestions().length&&this.slashSuggestions.set([]);return}let e=t.slice(1);if(e.includes(" ")){this.slashSuggestions().length&&this.slashSuggestions.set([]);return}this.promptsLoaded&&this.slashSuggestions.set(this.effectivePrompts.filter(n=>n.name.toLowerCase().startsWith(e.toLowerCase()))),this.slashPrefix$.next(e)}submit(){if(!this.canSend)return;let t=this.inputValue().trim();this.inputValue.set(""),this.isCreating.set(!0),this.http.post(`${this.config.basePath}/api/cases`,{namespaceId:this.namespaceId,metadata:{}}).pipe(H(e=>(this.caseState.addCase(e),this.http.post(`${this.config.basePath}/api/cases/${e.id}/messages`,{content:t,userId:"default-user"}).pipe($(()=>e)))),L(this.destroyRef)).subscribe({next:e=>{this.router.navigate(["/agentos/home"],{queryParams:{ns:this.namespaceId,case:e.id??""}})},error:e=>{console.error("[CaseHome] Failed to create case or send first message",e),this.isCreating.set(!1),this.inputValue.set(t)}})}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=P({type:o,selectors:[["agentos-case-home"]],viewQuery:function(e,n){if(e&1&&W(Lt,5)(U,5),e&2){let i;q(i=V())&&(n.composerInput=i.first),q(i=V())&&(n.autocompleteRef=i.first)}},decls:12,vars:5,consts:[["composerInput",""],[1,"case-home"],[1,"case-home__hero"],[1,"case-home__headline"],[1,"case-home__composer"],[1,"case-home__autocomplete"],["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__hint"],["icon","send","variant","primary","title","Start case",3,"action","disabled"],[3,"selected","dismissed","prompts"]],template:function(e,n){e&1&&(r(0,"div",1)(1,"div",2)(2,"h1",3),d(3,"What can I help you with?"),l(),r(4,"div",4),p(5,zt,2,1,"div",5),r(6,"textarea",6,0),u("input",function(a){return n.onInput(a)})("keydown",function(a){return n.onKeydown(a)}),l(),r(8,"div",7)(9,"span",8),d(10),l(),r(11,"ds-icon-button",9),u("action",function(){return n.submit()}),l()()()()()),e&2&&(s(5),_(n.slashSuggestions().length>0?5:-1),s(),M("value",n.inputValue())("disabled",n.isCreating()),s(4),g(n.preferences.composerHint()),s(),M("disabled",!n.canSend))},dependencies:[ue,U],styles:[".case-home[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;align-items:center;justify-content:center}.case-home__hero[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:2rem;padding:2rem 1.5rem 4rem;max-width:680px;width:100%}.case-home__headline[_ngcontent-%COMP%]{margin:0;font-size:clamp(1.5rem,4vw,2.25rem);font-weight:700;letter-spacing:-.03em;color:var(--color-text);text-align:center;font-family:Inter,sans-serif}.case-home__autocomplete[_ngcontent-%COMP%]{position:absolute;bottom:calc(100% + .5rem);left:0;right:0;background:var(--glass-bg, rgba(255, 255, 255, .96));border:1px solid var(--color-border, rgba(0, 0, 0, .1));backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:12px;box-shadow:0 8px 32px #00000026;z-index:20;animation:_ngcontent-%COMP%_autocomplete-in .12s ease}.case-home__composer[_ngcontent-%COMP%]{position:relative;width:100%;display:flex;flex-direction:column;background:var(--glass-bg);border:1px solid var(--glass-border);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border-radius:16px;box-shadow:0 4px 24px var(--color-shadow);transition:box-shadow .2s ease,border-color .2s ease}.case-home__composer[_ngcontent-%COMP%]:focus-within{box-shadow:0 4px 32px color-mix(in srgb,var(--color-primary) 20%,transparent);border-color:var(--color-primary)}.case-home__input[_ngcontent-%COMP%]{width:100%;resize:none;padding:1rem 1.25rem .5rem;border:none;background:transparent;color:var(--color-text);font-size:1rem;font-family:Inter,sans-serif;line-height:1.6;outline:none;box-sizing:border-box}.case-home__input[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary)}.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;padding:.5rem .5rem .5rem 1.25rem}.case-home__hint[_ngcontent-%COMP%]{font-family:Inter,sans-serif;font-size:.8125rem;font-weight:400;line-height:1.4;color:var(--color-text-secondary, #6e6e73);font-size:.75rem;opacity:.7}@keyframes _ngcontent-%COMP%_autocomplete-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}"]})};var Ft=["caseItemTpl"],$t=o=>({node:o,depth:0}),Ht=(o,t)=>({node:o,depth:t}),Wt=(o,t)=>t.id;function Bt(o,t){if(o&1){let e=S();r(0,"button",4),u("click",function(){C(e);let i=c().$implicit,a=c();return b(a.onItemSelected(i.id))}),A(1,"span",5),r(2,"span",6),d(3),l()()}if(o&2){let e=c().$implicit,n=c();I("case-tree-node__row--active",e.id===n.activeCaseId()),s(3),g(e.name)}}function Ut(o,t){o&1&&Me(0)}function Qt(o,t){if(o&1&&se(0,Ut,1,0,"ng-container",7),o&2){let e=c().$implicit;c();let n=le(4);M("ngTemplateOutlet",n)("ngTemplateOutletContext",Ve(2,$t,e))}}function jt(o,t){if(o&1&&p(0,Bt,4,3,"button",3)(1,Qt,1,4,"ng-container"),o&2){let e=c();_(e.isSearchActive()?0:1)}}function Yt(o,t){if(o&1){let e=S();r(0,"button",10),u("click",function(i){C(e);let a=c().node,w=c();return b(w.toggleExpand(i,a.id))}),r(1,"span",11),d(2,"\u203A"),l()()}if(o&2){let e=c().node,n=c();M("title",n.isExpanded(e.id)?"Collapse":"Expand"),s(),I("case-tree-node__toggle-icon--open",n.isExpanded(e.id))}}function Gt(o,t){o&1&&Me(0)}function Kt(o,t){if(o&1&&se(0,Gt,1,0,"ng-container",7),o&2){let e=t.$implicit,n=c(2).depth;c();let i=le(4);M("ngTemplateOutlet",i)("ngTemplateOutletContext",Le(2,Ht,e,n+1))}}function Xt(o,t){if(o&1&&D(0,Kt,1,5,"ng-container",null,Wt),o&2){let e=c().node;N(e.children)}}function Jt(o,t){if(o&1){let e=S();r(0,"div",8)(1,"button",4),u("click",function(){let i=C(e).node,a=c();return b(a.onItemSelected(i.id))}),r(2,"span",5),p(3,Yt,3,3,"button",9),l(),r(4,"span",6),d(5),l()(),p(6,Xt,2,0),l()}if(o&2){let e=t.node,n=t.depth,i=c();ce("--depth",n),s(),I("case-tree-node__row--active",e.id===i.activeCaseId()),s(2),_(e.children.length?3:-1),s(2),g(e.name),s(),_(i.isExpanded(e.id)&&e.children.length?6:-1)}}var ve=class o{cases=f([]);activeCaseId=f(null);caseSelected=v();createRequested=v();caseItemTpl;searchQuery=x("");isSearchActive=T(()=>this.searchQuery().trim().length>0);rootItems=T(()=>Zt(this.cases()));flatFilteredItems=T(()=>{let t=this.searchQuery().toLowerCase().trim();return t?Ze(this.rootItems(),t):[]});displayItems=T(()=>this.isSearchActive()?this.flatFilteredItems():this.rootItems());autoExpandedIds=T(()=>{let t=this.activeCaseId();if(!t)return new Set;let e=new Set;return et(this.rootItems(),t,e),e});expandedIds=x(new Set);isExpanded(t){return this.expandedIds().has(t)||this.autoExpandedIds().has(t)}toggleExpand(t,e){t.stopPropagation(),this.expandedIds.update(n=>{let i=new Set(n);return i.has(e)?i.delete(e):i.add(e),i})}onSearchChanged(t){this.searchQuery.set(t)}onItemSelected(t){this.caseSelected.emit(t)}onCreateRequested(){this.createRequested.emit()}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=P({type:o,selectors:[["agentos-case-drawer"]],viewQuery:function(e,n){if(e&1&&W(Ft,7),e&2){let i;q(i=V())&&(n.caseItemTpl=i.first)}},inputs:{cases:[1,"cases"],activeCaseId:[1,"activeCaseId"]},outputs:{caseSelected:"caseSelected",createRequested:"createRequested"},decls:5,vars:4,consts:[["caseItemTpl",""],["caseRowTpl",""],["title","Cases","emptyMessage","No cases yet. Start one below.","searchPlaceholder","Filter cases\u2026","cardMinWidth","100%","contentMaxWidth","100%",3,"itemSelected","createRequested","searchChanged","items","itemTemplate","showCreate","disableInternalFilter"],["type","button",1,"case-tree-node__row",3,"case-tree-node__row--active"],["type","button",1,"case-tree-node__row",3,"click"],[1,"case-tree-node__expand-slot"],[1,"case-tree-node__name"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"case-tree-node"],["type","button",1,"case-tree-node__toggle",3,"title"],["type","button",1,"case-tree-node__toggle",3,"click","title"],[1,"case-tree-node__toggle-icon"]],template:function(e,n){if(e&1&&(r(0,"ds-entity-list",2),u("itemSelected",function(a){return n.onItemSelected(a)})("createRequested",function(){return n.onCreateRequested()})("searchChanged",function(a){return n.onSearchChanged(a)}),l(),se(1,jt,2,1,"ng-template",null,0,ke)(3,Jt,7,7,"ng-template",null,1,ke)),e&2){let i=le(2);M("items",n.displayItems())("itemTemplate",i)("showCreate",!0)("disableInternalFilter",!0)}},dependencies:[Ge,$e],styles:['[_nghost-%COMP%]{display:flex;flex-direction:column;height:100%}.case-tree-node[_ngcontent-%COMP%]{width:100%}.case-tree-node__row[_ngcontent-%COMP%]{display:flex;align-items:center;width:100%;padding:.375rem .5rem;padding-left:calc(.5rem + var(--depth, 0) * 1.25rem);border:none;background:transparent;cursor:pointer;text-align:left;font:inherit;font-size:.875rem;color:var(--color-text, #1d1d1f);border-radius:6px;gap:.375rem;transition:background .12s ease;box-sizing:border-box}.case-tree-node__row[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .05))}.case-tree-node__row--active[_ngcontent-%COMP%]{background:var(--color-primary, #007aff);color:var(--color-text-inverse, #fff)}.case-tree-node__row--active[_ngcontent-%COMP%]:hover{background:var(--color-primary-hover, #0051d5)}.case-tree-node__expand-slot[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:1rem;flex-shrink:0}.case-tree-node__toggle[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:1rem;height:1rem;padding:0;border:none;background:transparent;cursor:pointer;color:inherit;border-radius:3px;transition:background .1s ease}.case-tree-node__toggle[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .05))}.case-tree-node__toggle-icon[_ngcontent-%COMP%]{display:inline-block;font-size:1.1rem;line-height:1;transition:transform .15s ease;transform:rotate(0)}.case-tree-node__toggle-icon--open[_ngcontent-%COMP%]{transform:rotate(90deg)}.case-tree-node__name[_ngcontent-%COMP%]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;font-family:var(--font-mono, "SF Mono", ui-monospace, monospace);font-size:.8rem}'],changeDetection:0})};function Zt(o){let t=new Set(o.map(m=>m.id??"")),e=new Map(o.map(m=>[m.id??"",m.created??""])),n=m=>({id:m.id??"",name:m.title??m.id??"\u2014",description:m.id??"",children:[]}),i=new Map;for(let m of o)i.set(m.id??"",n(m));let a=[];for(let m of o){let h=i.get(m.id??""),R=m.parentCaseId;R&&t.has(R)?i.get(R).children.push(h):a.push(h)}let w=m=>m.sort((h,R)=>(e.get(R.id)??"")>(e.get(h.id)??"")?1:-1).map(h=>oe(ne({},h),{children:w(h.children)}));return w(a)}function Ze(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(...Ze(n.children,t)),e),[])}function et(o,t,e){for(let n of o){if(n.id===t)return!0;if(n.children.length&&et(n.children,t,e))return e.add(n.id),!0}return!1}var en=(o,t)=>t.id;function tn(o,t){o&1&&(r(0,"span",3),d(1,"chevron_left"),l())}function nn(o,t){o&1&&A(0,"img",4)}function on(o,t){o&1&&(r(0,"span"),d(1,"\u2713"),l())}function an(o,t){if(o&1){let e=S();r(0,"button",18),u("click",function(){let i=C(e).$implicit,a=c(3);return b(a.namespaceSelected.emit(i))}),r(1,"span",19),d(2),l(),p(3,on,2,0,"span"),l()}if(o&2){let e,n,i=t.$implicit,a=c(3);I("shell-sidebar__ns-item--active",i.id===((e=a.selectedNamespace())==null?null:e.id)),s(2),g(i.name),s(),_(i.id===((n=a.selectedNamespace())==null?null:n.id)?3:-1)}}function rn(o,t){if(o&1&&(r(0,"div",16),D(1,an,4,4,"button",17,en),l()),o&2){let e=c(2);s(),N(e.namespaces())}}function sn(o,t){if(o&1){let e=S();r(0,"div",6)(1,"button",13),u("click",function(){C(e);let i=c();return b(i.nsMenuToggled.emit())}),r(2,"span",14),d(3),l(),r(4,"span",15),d(5,"\u25BE"),l()(),p(6,rn,3,0,"div",16),l()}if(o&2){let e,n=c();s(3),g(((e=n.selectedNamespace())==null?null:e.name)??"Select namespace"),s(3),_(n.nsMenuOpen()?6:-1)}}function ln(o,t){if(o&1&&(r(0,"span",7),d(1),l()),o&2){let e,n=c();s(),g((e=n.selectedNamespace())==null?null:e.name)}}function cn(o,t){if(o&1&&d(0),o&2){let e=c();z(" ",e.userInitials()," ")}}function dn(o,t){o&1&&d(0," \u2022\u2022\u2022 ")}var xe=class o{brandHovered=!1;sidebarWidth=f.required();sidebarOpen=f.required();selectedNamespace=f.required();namespaces=f.required();showNsPicker=f.required();nsMenuOpen=f.required();cases=f.required();activeCaseId=f.required();userInitials=f.required();menuOpen=f.required();isAdmin=f.required();isDark=f.required();showTechnical=f.required();collapseRequested=v();homeClicked=v();namespaceSelected=v();nsMenuToggled=v();nsMenuClosed=v();caseSelected=v();createRequested=v();menuToggled=v();menuClosed=v();navigateTo=v();themeToggled=v();logsToggled=v();static \u0275fac=function(e){return new(e||o)};static \u0275cmp=P({type:o,selectors:[["agentos-shell-sidebar"]],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"],menuOpen:[1,"menuOpen"],isAdmin:[1,"isAdmin"],isDark:[1,"isDark"],showTechnical:[1,"showTechnical"]},outputs:{collapseRequested:"collapseRequested",homeClicked:"homeClicked",namespaceSelected:"namespaceSelected",nsMenuToggled:"nsMenuToggled",nsMenuClosed:"nsMenuClosed",caseSelected:"caseSelected",createRequested:"createRequested",menuToggled:"menuToggled",menuClosed:"menuClosed",navigateTo:"navigateTo",themeToggled:"themeToggled",logsToggled:"logsToggled"},decls:15,vars:12,consts:[[1,"shell-sidebar"],[1,"shell-sidebar__top"],["type","button",1,"shell-sidebar__brand",3,"mouseenter","mouseleave","click","title"],[1,"shell-sidebar__logo-chevron","material-icons"],["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-name-static"],[1,"shell-sidebar__user-menu"],["type","button","title","Menu",1,"shell-sidebar__user-btn",3,"click"],["variant","desktop",3,"navigateTo","themeToggled","logsToggled","closed","open","isAdmin","isDark","showTechnical"],[1,"shell-sidebar__cases-scroll"],[3,"caseSelected","createRequested","cases","activeCaseId"],[1,"shell-sidebar__ns-trigger",3,"click"],[1,"shell-sidebar__ns-name"],[1,"shell-sidebar__ns-chevron"],[1,"shell-sidebar__ns-menu"],[1,"shell-sidebar__ns-item",3,"shell-sidebar__ns-item--active"],[1,"shell-sidebar__ns-item",3,"click"],[1,"shell-sidebar__ns-item-name"]],template:function(e,n){e&1&&(r(0,"div",0)(1,"div",1)(2,"button",2),u("mouseenter",function(){return n.brandHovered=!0})("mouseleave",function(){return n.brandHovered=!1})("click",function(){return n.brandHovered?n.collapseRequested.emit():n.homeClicked.emit()}),p(3,tn,2,0,"span",3)(4,nn,1,0,"img",4),l(),r(5,"div",5),p(6,sn,7,2,"div",6)(7,ln,2,1,"span",7),l(),r(8,"div",8)(9,"button",9),u("click",function(a){return n.menuToggled.emit(a)}),p(10,cn,1,1)(11,dn,1,0),l(),r(12,"agentos-shell-user-menu",10),u("navigateTo",function(a){return n.navigateTo.emit(a)})("themeToggled",function(){return n.themeToggled.emit()})("logsToggled",function(){return n.logsToggled.emit()})("closed",function(a){return n.menuClosed.emit(a)}),l()()(),r(13,"div",11)(14,"agentos-case-drawer",12),u("caseSelected",function(a){return n.caseSelected.emit(a)})("createRequested",function(){return n.createRequested.emit()}),l()()()),e&2&&(ce("width",n.sidebarOpen()?n.sidebarWidth():0,"px"),s(2),M("title",n.brandHovered?"Close sidebar":"Home"),s(),_(n.brandHovered?3:4),s(3),_(n.showNsPicker()?6:7),s(4),_(n.userInitials()?10:11),s(2),M("open",n.menuOpen())("isAdmin",n.isAdmin())("isDark",n.isDark())("showTechnical",n.showTechnical()),s(2),M("cases",n.cases())("activeCaseId",n.activeCaseId()))},dependencies:[ve,Ce],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:hidden;border-right:1px solid var(--color-border, rgba(0, 0, 0, .09));background:var(--color-bg, #f4f3ef);flex-shrink:0;transition:width .24s cubic-bezier(.4,0,.2,1);white-space:nowrap}.shell-sidebar__top[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;padding:10px;border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .09));flex-shrink:0}.shell-sidebar__brand[_ngcontent-%COMP%]{display:flex;align-items:center;padding:4px;border-radius:8px;border:none;background:transparent;cursor:pointer;flex-shrink:0;transition:background .14s}.shell-sidebar__brand[_ngcontent-%COMP%]:hover{background:var(--color-surface-hover, rgba(0, 0, 0, .05))}.shell-sidebar__logo-img[_ngcontent-%COMP%]{width:28px;height:28px;border-radius:6px;object-fit:contain}.shell-sidebar__logo-chevron[_ngcontent-%COMP%]{width:28px;height:28px;font-size:22px;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary, #968f85)}.shell-sidebar__user-menu[_ngcontent-%COMP%]{position:relative;flex-shrink:0}.shell-sidebar__user-btn[_ngcontent-%COMP%]{width:32px;height:32px;border-radius:50%;border:1px solid var(--color-border, rgba(0, 0, 0, .09));background:color-mix(in srgb,var(--color-primary, #016b71) 15%,transparent);cursor:pointer;display:grid;place-items:center;font-size:.7rem;font-weight:700;letter-spacing:.02em;color:var(--color-primary, #016b71);transition:all .14s}.shell-sidebar__user-btn[_ngcontent-%COMP%]:hover{background:color-mix(in srgb,var(--color-primary, #016b71) 25%,transparent)}.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%]{width:100%;display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:8px;border:1px solid transparent;background:transparent;cursor:pointer;color:var(--color-text, #1b1916);transition:all .15s;font:inherit;font-size:.85rem;font-weight:700}.shell-sidebar__ns-trigger[_ngcontent-%COMP%]:hover{background:var(--color-surface-hover, rgba(0, 0, 0, .05));border-color:var(--color-border, rgba(0, 0, 0, .09))}.shell-sidebar__ns-name[_ngcontent-%COMP%]{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shell-sidebar__ns-chevron[_ngcontent-%COMP%]{color:var(--color-text-secondary, #968f85);font-size:.75rem}.shell-sidebar__ns-menu[_ngcontent-%COMP%]{position:absolute;left:0;right:0;top:calc(100% + 4px);background:var(--color-modal-bg, #fff);border:1px solid var(--color-border, rgba(0, 0, 0, .09));border-radius:10px;padding:6px;z-index:100;box-shadow:var(--color-modal-shadow, 0 6px 20px rgba(0, 0, 0, .08))}.shell-sidebar__ns-item[_ngcontent-%COMP%]{width:100%;display:flex;align-items:center;gap:10px;padding:10px;border-radius:10px;border:none;background:transparent;cursor:pointer;color:var(--color-text, #1b1916);font:inherit;font-size:.8rem;transition:all .13s}.shell-sidebar__ns-item[_ngcontent-%COMP%]:hover{background:var(--color-surface-hover, rgba(0, 0, 0, .05))}.shell-sidebar__ns-item--active[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--color-primary, #016b71) 12%,transparent);color:var(--color-primary, #016b71)}.shell-sidebar__ns-item-name[_ngcontent-%COMP%]{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shell-sidebar__ns-name-static[_ngcontent-%COMP%]{display:block;padding:5px 8px;font-size:.85rem;font-weight:700;color:var(--color-text, #1b1916);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shell-sidebar__cases-scroll[_ngcontent-%COMP%]{flex:1;overflow-y:auto;padding-bottom:16px}.shell-sidebar__cases-scroll[_ngcontent-%COMP%]::-webkit-scrollbar{width:4px}.shell-sidebar__cases-scroll[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:var(--color-border-light, rgba(255, 255, 255, .12));border-radius:999px}"],changeDetection:0})};var mn=(o,t)=>t.id;function pn(o,t){o&1&&(r(0,"span"),d(1,"\u2713"),l())}function _n(o,t){if(o&1){let e=S();r(0,"button",14),u("click",function(){let i=C(e).$implicit,a=c(2);return b(a.namespaceSelected.emit(i))}),A(1,"span",15),r(2,"span",16),d(3),l(),p(4,pn,2,0,"span"),l()}if(o&2){let e,n,i=t.$implicit,a=c(2);I("shell-topbar-mobile__ns-item--active",i.id===((e=a.selectedNamespace())==null?null:e.id)),s(3),g(i.name),s(),_(i.id===((n=a.selectedNamespace())==null?null:n.id)?4:-1)}}function un(o,t){if(o&1){let e=S();r(0,"div",11),u("click",function(i){C(e);let a=c();return b(a.nsMenuClosed.emit(i))})("keyup.escape",function(i){C(e);let a=c();return b(a.nsMenuClosed.emit(i))}),l(),r(1,"div",12),D(2,_n,5,4,"button",13,mn),l()}if(o&2){let e=c();s(2),N(e.namespaces())}}var ye=class o{selectedNamespace=f.required();namespaces=f.required();nsMenuOpen=f.required();userInitials=f.required();menuOpen=f.required();isAdmin=f.required();isDark=f.required();showTechnical=f.required();homeClicked=v();namespaceSelected=v();nsMenuToggled=v();nsMenuClosed=v();menuToggled=v();menuClosed=v();navigateTo=v();themeToggled=v();logsToggled=v();static \u0275fac=function(e){return new(e||o)};static \u0275cmp=P({type:o,selectors:[["agentos-shell-topbar-mobile"]],inputs:{selectedNamespace:[1,"selectedNamespace"],namespaces:[1,"namespaces"],nsMenuOpen:[1,"nsMenuOpen"],userInitials:[1,"userInitials"],menuOpen:[1,"menuOpen"],isAdmin:[1,"isAdmin"],isDark:[1,"isDark"],showTechnical:[1,"showTechnical"]},outputs:{homeClicked:"homeClicked",namespaceSelected:"namespaceSelected",nsMenuToggled:"nsMenuToggled",nsMenuClosed:"nsMenuClosed",menuToggled:"menuToggled",menuClosed:"menuClosed",navigateTo:"navigateTo",themeToggled:"themeToggled",logsToggled:"logsToggled"},decls:17,vars:7,consts:[[1,"shell-topbar-mobile__brand"],["type","button","title","Home",1,"shell-topbar-mobile__logo-btn",3,"click"],["src","CODAY-Logo.png","alt","Coday",1,"shell-topbar-mobile__logo-img"],[1,"shell-topbar-mobile__logo-text"],[1,"shell-topbar-mobile__sep"],[1,"shell-topbar-mobile__ns-wrap"],["type","button",1,"shell-topbar-mobile__ns-btn",3,"click"],[1,"shell-topbar-mobile__chevron"],[1,"shell-topbar-mobile__avatar-wrap"],["tabindex","0","role","button","aria-label","User menu",1,"shell-topbar-mobile__avatar",3,"click","keyup.enter"],["variant","mobile",3,"navigateTo","themeToggled","logsToggled","closed","open","isAdmin","isDark","showTechnical"],["role","presentation","tabindex","-1",1,"shell-topbar-mobile__ns-backdrop",3,"click","keyup.escape"],[1,"shell-topbar-mobile__ns-menu"],[1,"shell-topbar-mobile__ns-item",3,"shell-topbar-mobile__ns-item--active"],[1,"shell-topbar-mobile__ns-item",3,"click"],[1,"shell-topbar-mobile__ns-dot"],[1,"shell-topbar-mobile__ns-item-name"]],template:function(e,n){if(e&1&&(r(0,"div",0)(1,"button",1),u("click",function(){return n.homeClicked.emit()}),A(2,"img",2),r(3,"span",3),d(4,"Coday"),l()(),r(5,"span",4),d(6,"/"),l(),r(7,"div",5)(8,"button",6),u("click",function(a){return n.nsMenuToggled.emit(a)}),d(9),r(10,"span",7),d(11,"\u25BE"),l()(),p(12,un,4,0),l()(),r(13,"div",8)(14,"div",9),u("click",function(a){return n.menuToggled.emit(a)})("keyup.enter",function(){return n.menuToggled.emit(void 0)}),d(15),l(),r(16,"agentos-shell-user-menu",10),u("navigateTo",function(a){return n.navigateTo.emit(a)})("themeToggled",function(){return n.themeToggled.emit()})("logsToggled",function(){return n.logsToggled.emit()})("closed",function(a){return n.menuClosed.emit(a)}),l()()),e&2){let i;s(9),z(" ",((i=n.selectedNamespace())==null?null:i.name)??""," "),s(3),_(n.nsMenuOpen()?12:-1),s(3),z(" ",n.userInitials()||"\xB7\xB7\xB7"," "),s(),M("open",n.menuOpen())("isAdmin",n.isAdmin())("isDark",n.isDark())("showTechnical",n.showTechnical())}},dependencies:[Ce],styles:["[_nghost-%COMP%]{display:none}.shell-topbar-mobile__brand[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;min-width:0;flex:1;overflow:hidden}.shell-topbar-mobile__logo-btn[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;flex:none;padding:0;border:none;background:transparent;cursor:pointer}.shell-topbar-mobile__logo-img[_ngcontent-%COMP%]{height:28px;width:auto;border-radius:6px;object-fit:contain}.shell-topbar-mobile__logo-text[_ngcontent-%COMP%]{font-family:Inter,sans-serif;font-size:11.5px;font-weight:500;line-height:1;color:var(--color-text, #1d1d1f)}.shell-topbar-mobile__sep[_ngcontent-%COMP%]{color:var(--color-text-tertiary);font:inherit;font-size:.75rem;flex:none}.shell-topbar-mobile__ns-wrap[_ngcontent-%COMP%]{position:static;min-width:0}.shell-topbar-mobile__ns-btn[_ngcontent-%COMP%]{font-family:Inter,sans-serif;font-size:12.5px;font-weight:500;line-height:1.4;color:var(--color-text, #1d1d1f);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:3px;cursor:pointer;background:none;border:none;padding:0}.shell-topbar-mobile__chevron[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:9px;flex:none}.shell-topbar-mobile__ns-backdrop[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:299}.shell-topbar-mobile__ns-menu[_ngcontent-%COMP%]{background:var(--color-modal-bg, #ffffff);border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:10px;box-shadow:var(--color-modal-shadow, 0 6px 20px rgba(0, 0, 0, .08));padding:5px;position:fixed;top:44px;left:16px;min-width:180px;z-index:300}.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;display:flex;align-items:center;width:100%;padding:8px 10px;border-radius:6px;font-family:Inter,sans-serif;font-size:12.5px;font-weight:500;color:var(--color-text, #1d1d1f);text-align:left;transition:background .1s ease}.shell-topbar-mobile__ns-item[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04))}.shell-topbar-mobile__ns-item--danger[_ngcontent-%COMP%]{color:var(--color-error, #a5140a)}.shell-topbar-mobile__ns-item--danger[_ngcontent-%COMP%]:hover{background:rgba(from var(--color-error, #ff453a) r g b/.08)}.shell-topbar-mobile__ns-item--active[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--color-primary) 12%,transparent);color:var(--color-primary)}.shell-topbar-mobile__ns-dot[_ngcontent-%COMP%]{width:10px;height:10px;border-radius:50%;background:var(--color-primary);flex-shrink:0}.shell-topbar-mobile__ns-item-name[_ngcontent-%COMP%]{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shell-topbar-mobile__avatar-wrap[_ngcontent-%COMP%]{position:relative;flex-shrink:0}.shell-topbar-mobile__avatar[_ngcontent-%COMP%]{width:44px;height:44px;border-radius:50%;background:color-mix(in srgb,var(--color-primary) 15%,transparent);border:1px solid color-mix(in srgb,var(--color-primary) 35%,transparent);color:var(--color-primary);display:flex;align-items:center;justify-content:center;font:inherit;font-size:.625rem;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none}@media(max-width:900px){[_nghost-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 16px;min-height:44px;border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .08));background:var(--color-bg, #fff);flex-shrink:0;position:relative}}"],changeDetection:0})};var hn=(o,t)=>t.id;function gn(o,t){if(o&1){let e=S();k(0,"div",9),X("click",function(){let i=C(e).$implicit,a=c(2);return b(a.caseSelected.emit(i.id??""))})("keyup.enter",function(){let i=C(e).$implicit,a=c(2);return b(a.caseSelected.emit(i.id??""))}),Se(1,"span",1),k(2,"span",2),d(3),O(),k(4,"span",3),d(5),O()()}if(o&2){let e=t.$implicit,n=c(2);s(),Te("shell-case-switcher__dot--"+n.deriveMobileStatus(e.status)),s(2),g(e.title??e.id),s(2),g(e.status.toLowerCase())}}function Cn(o,t){if(o&1){let e=S();k(0,"div",5)(1,"div",6),X("click",function(){C(e);let i=c();return b(i.createRequested.emit())})("keyup.enter",function(){C(e);let i=c();return b(i.createRequested.emit())}),k(2,"span",7),d(3,"+"),O(),k(4,"span",2),d(5,"New case"),O()(),D(6,gn,6,4,"div",8,hn),O()}if(o&2){let e=c();s(6),N(e.otherCases())}}var we=class o{cases=f.required();activeCaseId=f.required();open=f.required();activeCase=T(()=>{let t=this.activeCaseId();return t?this.cases().find(e=>e.id===t)??null:null});activeCaseTitle=T(()=>this.activeCase()?.title??this.activeCaseId()??"New case");activeCaseStatus=T(()=>this.deriveMobileStatus(this.activeCase()?.status));activeCaseStatusLabel=T(()=>this.activeCase()?.status?.toLowerCase()??"");otherCases=T(()=>this.cases().filter(t=>t.id!==this.activeCaseId()));caseSelected=v();createRequested=v();toggled=v();deriveMobileStatus(t){switch(t){case"RUNNING":return"run";case"KILLED":return"killed";case"ERROR":return"error";default:return"idle"}}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=P({type:o,selectors:[["agentos-shell-case-switcher-mobile"]],inputs:{cases:[1,"cases"],activeCaseId:[1,"activeCaseId"],open:[1,"open"]},outputs:{caseSelected:"caseSelected",createRequested:"createRequested",toggled:"toggled"},decls:9,vars:5,consts:[["tabindex","0","role","button",1,"shell-case-switcher__trigger",3,"click","keyup.enter"],[1,"shell-case-switcher__dot"],[1,"shell-case-switcher__title"],[1,"shell-case-switcher__status"],[1,"shell-case-switcher__chevron"],[1,"shell-case-switcher__list"],["tabindex","0","role","button",1,"shell-case-switcher__item","shell-case-switcher__item--new",3,"click","keyup.enter"],[1,"shell-case-switcher__new-icon"],["tabindex","0","role","button",1,"shell-case-switcher__item"],["tabindex","0","role","button",1,"shell-case-switcher__item",3,"click","keyup.enter"]],template:function(e,n){e&1&&(k(0,"div",0),X("click",function(){return n.toggled.emit()})("keyup.enter",function(){return n.toggled.emit()}),Se(1,"span",1),k(2,"span",2),d(3),O(),k(4,"span",3),d(5),O(),k(6,"span",4),d(7,"\u2304"),O()(),p(8,Cn,8,0,"div",5)),e&2&&(s(),Te("shell-case-switcher__dot--"+n.activeCaseStatus()),s(2),g(n.activeCaseTitle()),s(2),g(n.activeCaseStatusLabel()),s(3),_(n.open()?8:-1))},styles:["[_nghost-%COMP%]{display:none}.shell-case-switcher__trigger[_ngcontent-%COMP%]{display:flex;align-items:center;gap:7px;padding:10px 16px;min-height:44px;cursor:pointer;-webkit-user-select:none;user-select:none}.shell-case-switcher__trigger[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover)}.shell-case-switcher__title[_ngcontent-%COMP%]{font-family:Inter,sans-serif;font-size:12.5px;font-weight:500;line-height:1.4;color:var(--color-text, #1d1d1f);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.shell-case-switcher__status[_ngcontent-%COMP%]{font:inherit;font-size:.6875rem;color:var(--color-text-secondary);flex:none}.shell-case-switcher__chevron[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:9px;flex:none}.shell-case-switcher__list[_ngcontent-%COMP%]{display:flex;flex-direction:column;border-top:1px solid var(--color-border-light);max-height:60vh;overflow-y:auto}.shell-case-switcher__item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:7px;padding:0 16px;height:44px;flex-shrink:0;cursor:pointer}.shell-case-switcher__item[_ngcontent-%COMP%] .shell-case-switcher__title[_ngcontent-%COMP%]{font-weight:500;color:var(--color-text-secondary)}.shell-case-switcher__item[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover)}.shell-case-switcher__item--new[_ngcontent-%COMP%]{border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .08))}.shell-case-switcher__item--new[_ngcontent-%COMP%] .shell-case-switcher__title[_ngcontent-%COMP%]{font-weight:600;color:var(--color-primary, #016b71)}.shell-case-switcher__new-icon[_ngcontent-%COMP%]{width:6px;height:6px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:300;color:var(--color-primary, #016b71);flex:none}.shell-case-switcher__dot[_ngcontent-%COMP%]{width:6px;height:6px;border-radius:50%;flex:none}.shell-case-switcher__dot--run[_ngcontent-%COMP%]{background:var(--color-success)}.shell-case-switcher__dot--idle[_ngcontent-%COMP%]{background:var(--color-border)}.shell-case-switcher__dot--killed[_ngcontent-%COMP%], .shell-case-switcher__dot--error[_ngcontent-%COMP%]{background:var(--color-error)}@media(max-width:900px){[_nghost-%COMP%]{display:flex;flex-direction:column;border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .08));background:var(--color-bg, #fff);flex-shrink:0}}"],changeDetection:0})};function bn(o,t){if(o&1){let e=S();r(0,"div",8),u("mousedown",function(i){C(e);let a=c();return b(a.onResizeStart(i))}),l()}}function fn(o,t){if(o&1){let e=S();r(0,"button",9),u("click",function(){C(e);let i=c();return b(i.expandSidebar())}),r(1,"span",10),d(2,"menu"),l()()}}function vn(o,t){if(o&1&&A(0,"agentos-case-chat",7),o&2){let e=c();M("showTechnicalOverride",e.showTechnical())}}function xn(o,t){o&1&&A(0,"agentos-case-home")}var tt=class o{router=y(me);route=y(J);caseController=y(_e);namespaceController=y(Be);themePort=y(Ke);userState=y(Xe);destroyRef=y(G);isAdmin=T(()=>this.userState.currentUser()?.isAdmin===!0);userInitials=T(()=>{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()||""});isDark=T(()=>{let t=this.themePort.theme();return t==="dark"?!0:t==="light"?!1:typeof document<"u"&&document.documentElement.hasAttribute("data-theme")});sidebarWidth=x(Number(localStorage.getItem("agentos.sidebar.width"))||300);menuOpen=x(!1);nsMenuOpen=x(!1);sidebarOpen=x(localStorage.getItem("agentos.sidebar.open")!=="false");mobileSwitcherOpen=x(!1);showTechnical=x(!1);showNsPicker=T(()=>this.isAdmin()||this.namespaces().length>1);namespaceId$=this.route.queryParams.pipe($(t=>t.ns??null));_namespaceIdRaw=te(this.namespaceId$);namespaceId=T(()=>this._namespaceIdRaw()??null);_activeCaseIdRaw=te(this.route.queryParams.pipe($(t=>t.case??null)));activeCaseId=T(()=>this._activeCaseIdRaw()??null);refresh$=new Ee(void 0);cases$=this.namespaceId$.pipe(H(t=>t?this.refresh$.pipe(H(()=>this.caseController.listByParentCase(t))):[[]]));cases=te(this.cases$,{initialValue:[]});namespaces=te(this.namespaceController.listAllNamespace(),{initialValue:[]});selectedNamespace=x(null);constructor(){this.userState.currentUser()||this.userState.loadMe().pipe(L(this.destroyRef)).subscribe(),Ue(this.sidebarWidth).pipe(Oe(1),Y(300),L(this.destroyRef)).subscribe(t=>localStorage.setItem("agentos.sidebar.width",String(t))),K(()=>{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)}else{let n=t[0];n?.id&&this.router.navigate(["/agentos/home"],{queryParams:{ns:n.id},replaceUrl:!0})}})}onNamespaceSelected(t){this.selectedNamespace.set(t),this.nsMenuOpen.set(!1),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(!1)}onCaseSelected(t){this.router.navigate(["/agentos/home"],{queryParams:{ns:this.namespaceId(),case:t}})}onCreateRequested(){this.router.navigate(["/agentos/home"],{queryParams:{ns:this.namespaceId()}})}navigateHome(){this.router.navigate(["/agentos/home"])}collapseSidebar(){this.sidebarOpen.set(!1),localStorage.setItem("agentos.sidebar.open","false")}expandSidebar(){this.sidebarOpen.set(!0),localStorage.setItem("agentos.sidebar.open","true")}onMenuNavigate(t){this.menuOpen.set(!1),this.router.navigate([t])}toggleMenu(t){t?.stopPropagation(),t?.preventDefault(),this.menuOpen.update(e=>!e)}closeMenu(t){t.stopPropagation(),this.menuOpen.set(!1)}onMenuToggleTheme(){this.menuOpen.set(!1);let t=this.isDark()?"light":"dark";this.themePort.setTheme(t)}onMenuToggleLogs(){this.menuOpen.set(!1),this.showTechnical.update(t=>!t)}toggleMobileSwitcher(){this.mobileSwitcherOpen.update(t=>!t)}onMobileCaseSelect(t){this.mobileSwitcherOpen.set(!1),this.onCaseSelected(t)}onMobileCreateCase(){this.mobileSwitcherOpen.set(!1),this.onCreateRequested()}onResizeStart(t){t.preventDefault();let e=t.clientX,n=this.sidebarWidth(),i=w=>{let m=w.clientX-e,h=Math.max(200,Math.min(500,n+m));this.sidebarWidth.set(h)},a=()=>{document.removeEventListener("mousemove",i),document.removeEventListener("mouseup",a)};document.addEventListener("mousemove",i),document.addEventListener("mouseup",a)}refreshCases(){this.refresh$.next()}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=P({type:o,selectors:[["agentos-case-shell"]],decls:9,vars:27,consts:[[1,"case-shell"],[3,"homeClicked","namespaceSelected","nsMenuToggled","nsMenuClosed","menuToggled","menuClosed","navigateTo","themeToggled","logsToggled","selectedNamespace","namespaces","nsMenuOpen","userInitials","menuOpen","isAdmin","isDark","showTechnical"],[3,"caseSelected","createRequested","toggled","cases","activeCaseId","open"],[3,"collapseRequested","homeClicked","namespaceSelected","nsMenuToggled","nsMenuClosed","caseSelected","createRequested","menuToggled","menuClosed","navigateTo","themeToggled","logsToggled","sidebarWidth","sidebarOpen","selectedNamespace","namespaces","showNsPicker","nsMenuOpen","cases","activeCaseId","userInitials","menuOpen","isAdmin","isDark","showTechnical"],["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"],["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"]],template:function(e,n){e&1&&(r(0,"div",0)(1,"agentos-shell-topbar-mobile",1),u("homeClicked",function(){return n.navigateHome()})("namespaceSelected",function(a){return n.onNamespaceSelected(a)})("nsMenuToggled",function(a){return n.toggleNsMenu(a)})("nsMenuClosed",function(a){return n.closeNsMenu(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()})("logsToggled",function(){return n.onMenuToggleLogs()}),l(),r(2,"agentos-shell-case-switcher-mobile",2),u("caseSelected",function(a){return n.onMobileCaseSelect(a)})("createRequested",function(){return n.onMobileCreateCase()})("toggled",function(){return n.toggleMobileSwitcher()}),l(),r(3,"agentos-shell-sidebar",3),u("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()})("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()})("logsToggled",function(){return n.onMenuToggleLogs()}),l(),p(4,bn,1,0,"div",4),p(5,fn,3,0,"button",5),r(6,"main",6),p(7,vn,1,1,"agentos-case-chat",7)(8,xn,1,0,"agentos-case-home"),l()()),e&2&&(s(),M("selectedNamespace",n.selectedNamespace())("namespaces",n.namespaces())("nsMenuOpen",n.nsMenuOpen())("userInitials",n.userInitials())("menuOpen",n.menuOpen())("isAdmin",n.isAdmin())("isDark",n.isDark())("showTechnical",n.showTechnical()),s(),M("cases",n.cases())("activeCaseId",n.activeCaseId())("open",n.mobileSwitcherOpen()),s(),M("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())("menuOpen",n.menuOpen())("isAdmin",n.isAdmin())("isDark",n.isDark())("showTechnical",n.showTechnical()),s(),_(n.sidebarOpen()?4:-1),s(),_(n.sidebarOpen()?-1:5),s(2),_(n.activeCaseId()?7:8))},dependencies:[be,fe,xe,ye,we],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;height:100dvh}.case-shell[_ngcontent-%COMP%]{display:flex;height:100%;overflow:hidden}.case-shell__resize-handle[_ngcontent-%COMP%]{width:4px;flex-shrink:0;cursor:col-resize;background:var(--color-border, rgba(0, 0, 0, .09));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-primary, #016b71)}.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, #968f85);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, rgba(0, 0, 0, .05));color:var(--color-text, #1b1916)}@media(max-width:900px){.case-shell__expand-btn[_ngcontent-%COMP%]{display:none}}"],changeDetection:0})};export{be as a,fe as b,ve as c,tt as d};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as k}from"./chunk-3KLIHIYI.js";import{c as T}from"./chunk-32554AB2.js";import{o as D,t as L,u as E}from"./chunk-
|
|
1
|
+
import{a as k}from"./chunk-3KLIHIYI.js";import{c as T}from"./chunk-32554AB2.js";import{o as D,t as L,u as E}from"./chunk-26Y7QHUX.js";import{a as U}from"./chunk-BVQ4XPRS.js";import{Bb as w,Db as a,Fb as m,Ka as l,Pb as R,Tb as v,Ub as C,Wa as c,ab as I,ca as p,ga as y,ha as b,ic as M,lb as _,lc as S,ma as x,mb as g,oc as h,pc as q,rb as u,sb as s,tb as o}from"./chunk-QDO3O2UB.js";function O(i,e){if(i&1&&(s(0,"span",3),v(1),o()),i&2){let t=m();l(),C(t.subtitle)}}var f=class i{user=q.required();editRequested=h();deleteRequested=h();menuItems=[{key:"edit",label:"Edit user",icon:"edit"},{key:"delete",label:"Delete user",icon:"delete",variant:"danger"}];get displayName(){let{firstname:e,lastname:t,email:n}=this.user();return[e,t].filter(Boolean).join(" ")||n||"\u2014"}get subtitle(){return this.user().email??this.user().externalId??""}onMenuAction(e){switch(e){case"edit":this.editRequested.emit(this.user());break;case"delete":confirm(`Delete user "${this.displayName}"?`)&&this.deleteRequested.emit(this.user());break}}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=c({type:i,selectors:[["agentos-user-item"]],inputs:{user:[1,"user"]},outputs:{editRequested:"editRequested",deleteRequested:"deleteRequested"},decls:7,vars:3,consts:[["role","listitem",1,"user-item"],[1,"user-item__body"],[1,"user-item__name"],[1,"user-item__subtitle"],[1,"user-item__actions"],[3,"itemSelected","items"]],template:function(t,n){t&1&&(s(0,"div",0)(1,"div",1)(2,"span",2),v(3),o(),_(4,O,2,1,"span",3),o(),s(5,"div",4)(6,"ds-kebab-menu",5),a("itemSelected",function(d){return n.onMenuAction(d)}),o()()()),t&2&&(l(3),C(n.displayName),l(),g(n.subtitle?4:-1),l(2),u("items",n.menuItems))},dependencies:[E],styles:[".user-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;width:100%;padding:1rem 1.25rem;background:var(--color-bg-secondary, rgba(255, 255, 255, .7));border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:12px;box-sizing:border-box;overflow:hidden;position:relative}.user-item__body[_ngcontent-%COMP%]{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.user-item__name[_ngcontent-%COMP%]{font-size:.9375rem;font-weight:600;color:var(--color-text, #1d1d1f);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-item__subtitle[_ngcontent-%COMP%]{font-size:.8125rem;color:var(--color-text-secondary, #6e6e73);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-item__actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem;flex-shrink:0}"],changeDetection:0})};function P(i,e){if(i&1){let t=w();s(0,"agentos-user-item",4),a("editRequested",function(r){y(t);let d=m(2);return b(d.navigateToEdit(r))})("deleteRequested",function(r){y(t);let d=m(2);return b(d.deleteUser(r))}),o()}i&2&&u("user",e)}function V(i,e){if(i&1&&_(0,P,1,1,"agentos-user-item",3),i&2){let t,n=e.$implicit,r=m();g((t=r.resolveUser(n.id))?0:-1,t)}}var A=class i{router=p(T);destroyRef=p(x);userAdminState=p(k);isLoading=this.userAdminState.isLoading;userItems=S(()=>this.userAdminState.users().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(e=>[e.id??"",e]))}ngOnInit(){this.userAdminState.loadAll().pipe(U(this.destroyRef)).subscribe()}goBack(){this.router.navigate(["/agentos","admin"])}navigateToCreate(){this.router.navigate(["/agentos/admin/users/new"])}navigateToEdit(e){this.router.navigate(["/agentos/admin/users",e.id??"","edit"])}deleteUser(e){this.userAdminState.deleteUser(e.id??"").pipe(U(this.destroyRef)).subscribe()}resolveUser(e){return this.usersById.get(e)??null}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=c({type:i,selectors:[["agentos-user-list"]],decls:4,vars:3,consts:[["userItemTpl",""],["title","Users","emptyMessage","No users found.","cardMinWidth","320px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[3,"user"],[3,"editRequested","deleteRequested","user"]],template:function(t,n){if(t&1&&(s(0,"ds-entity-list",1),a("createRequested",function(){return n.navigateToCreate()}),s(1,"ds-icon-button",2),a("action",function(){return n.goBack()}),o()(),I(2,V,1,1,"ng-template",null,0,M)),t&2){let r=R(3);u("items",n.userItems())("showCreate",!0)("itemTemplate",r)}},dependencies:[L,f,D],encapsulation:2,changeDetection:0})};export{f as a,A as b};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as P}from"./chunk-32554AB2.js";import{o as w,u as D}from"./chunk-
|
|
1
|
+
import{c as P}from"./chunk-32554AB2.js";import{o as w,u as D}from"./chunk-26Y7QHUX.js";import{Bb as f,Db as c,Fb as a,Ka as p,Rb as h,Tb as _,Ub as b,Wa as y,ca as C,ga as d,ha as s,lb as g,mb as u,oc as M,pc as l,rb as x,sb as i,ta as v,tb as n}from"./chunk-QDO3O2UB.js";function k(t,r){if(t&1&&(i(0,"span",3),_(1),n()),t&2){let e=a();p(),b(e.prompt().description)}}function S(t,r){if(t&1){let e=f();i(0,"span",6),_(1,"Delete?"),n(),i(2,"ds-icon-button",7),c("action",function(){d(e);let m=a();return s(m.onDeleteConfirmed())}),n(),i(3,"ds-icon-button",8),c("action",function(){d(e);let m=a();return s(m.onDeleteCancelled())}),n()}}function E(t,r){if(t&1){let e=f();i(0,"ds-kebab-menu",9),c("itemSelected",function(m){d(e);let O=a();return s(O.onMenuAction(m))}),n()}if(t&2){let e=a();x("items",e.menuItems)}}var I=class t{router=C(P);prompt=l.required();namespaceId=l(void 0);platformMode=l(!1);readOnly=l(!1);deleteRequested=M();pendingDelete=v(!1);menuItems=[{key:"edit",label:"Edit prompt",icon:"edit"},{key:"delete",label:"Delete prompt",icon:"delete",variant:"danger"}];onMenuAction(r){switch(r){case"edit":this.platformMode()?this.router.navigate(["/agentos","admin","prompts",this.prompt().id,"edit"]):this.router.navigate(["/agentos",this.namespaceId(),"prompts",this.prompt().id,"edit"]);break;case"delete":this.pendingDelete.set(!0);break}}onDeleteConfirmed(){this.pendingDelete.set(!1),this.deleteRequested.emit(this.prompt())}onDeleteCancelled(){this.pendingDelete.set(!1)}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=y({type:t,selectors:[["agentos-prompt-item"]],inputs:{prompt:[1,"prompt"],namespaceId:[1,"namespaceId"],platformMode:[1,"platformMode"],readOnly:[1,"readOnly"]},outputs:{deleteRequested:"deleteRequested"},decls:8,vars:5,consts:[["role","listitem",1,"prompt-item"],[1,"prompt-item__body"],[1,"prompt-item__name"],[1,"prompt-item__description"],[1,"prompt-item__actions"],[3,"items"],[1,"prompt-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&&(i(0,"div",0)(1,"div",1)(2,"span",2),_(3),n(),g(4,k,2,1,"span",3),n(),i(5,"div",4),g(6,S,4,0)(7,E,1,1,"ds-kebab-menu",5),n()()),e&2&&(h("prompt-item--pending-delete",o.pendingDelete()),p(3),b(o.prompt().name),p(),u(o.prompt().description?4:-1),p(2),u(o.pendingDelete()?6:o.readOnly()?-1:7))},dependencies:[D,w],styles:[".prompt-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}.prompt-item[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04));border-color:var(--color-primary, #007aff)}.prompt-item__body[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.prompt-item__name[_ngcontent-%COMP%]{font-size:.95rem;font-weight:500;color:var(--color-text, #1d1d1f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prompt-item__description[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary, #6e6e73);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prompt-item__actions[_ngcontent-%COMP%]{flex-shrink:0;display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.prompt-item[_ngcontent-%COMP%]:hover .prompt-item__actions[_ngcontent-%COMP%], .prompt-item[_ngcontent-%COMP%]:focus-within .prompt-item__actions[_ngcontent-%COMP%], .prompt-item--pending-delete[_ngcontent-%COMP%] .prompt-item__actions[_ngcontent-%COMP%]{opacity:1}.prompt-item__confirm-label[_ngcontent-%COMP%]{font-size:.8rem;font-weight:500;color:var(--color-error, #ff3b30);margin-right:.25rem;white-space:nowrap}"],changeDetection:0})};export{I as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as G}from"./chunk-AIC4U2MU.js";import{a as V}from"./chunk-X5QAL64P.js";import{a as B}from"./chunk-
|
|
1
|
+
import{a as G}from"./chunk-AIC4U2MU.js";import{a as V}from"./chunk-X5QAL64P.js";import{a as B}from"./chunk-MR7WYSXF.js";import{a as K}from"./chunk-MAHIDPCP.js";import"./chunk-CK52GCRW.js";import"./chunk-ZX7BSCA5.js";import"./chunk-5TU5JR3W.js";import{a as D,c as $}from"./chunk-32554AB2.js";import{o as P,t as L}from"./chunk-26Y7QHUX.js";import"./chunk-NXKPUZGQ.js";import"./chunk-QN7OUZIZ.js";import{a as c}from"./chunk-BVQ4XPRS.js";import"./chunk-HTKDXFLE.js";import"./chunk-7VQ75OC6.js";import"./chunk-NNVKL253.js";import{Bb as A,Db as g,Fb as s,Ic as N,Ka as C,Pb as x,S as y,Tb as E,Ub as w,Wa as v,ab as R,bc as O,ca as r,ec as M,fc as T,ga as l,ha as m,ic as q,lb as b,m as _,ma as I,mb as S,rb as f,sb as p,t as u,ta as h,tb as d}from"./chunk-QDO3O2UB.js";var z=()=>[];function W(o,e){if(o&1&&(p(0,"p",3),E(1),d()),o&2){let t=s().$implicit;C(),w(t.name)}}function U(o,e){if(o&1){let t=A();p(0,"agentos-integration-config-item",5),g("editRequested",function(){let i=l(t),a=s(2);return m(a.onEdit(i))})("deleteRequested",function(){let i=l(t),a=s(2);return m(a.onDelete(i))})("duplicateRequested",function(){let i=l(t),a=s(2);return m(a.onDuplicate(i))}),d()}if(o&2){let t=e,n=s(2);f("config",t.config)("scope",t.scope)("readOnly",t.scope==="platform"||t.scope==="namespace"&&!n.isAdmin())}}function X(o,e){if(o&1&&b(0,W,2,1,"p",3)(1,U,1,3,"agentos-integration-config-item",4),o&2){let t,n=e.$implicit,i=s();S(i.isEmptyPlaceholder(n.id)?0:(t=i.resolve(n.id))?1:-1,t)}}var k=Object.freeze({platform:"Configurations plateforme",namespace:"Configurations du namespace",userOnNs:"Mes overrides sur ce namespace",userGlobal:"Mes overrides globaux"}),F="__empty__",j=class o{route=r(D);router=r($);destroyRef=r(I);state=r(V);namespaceRole=r(K);namespaceId=this.route.snapshot.params.namespaceId;isAdmin=h(!1);listItems$=this.state.vm$.pipe(u(e=>this.toListItems(e)));resolved=new Map;ngOnInit(){this.route.paramMap.pipe(c(this.destroyRef)).subscribe(e=>{let t=e.get("namespaceId")??"";t&&t!==this.namespaceId&&(this.namespaceId=t),this.state.setNamespace(t)}),this.route.paramMap.pipe(u(e=>e.get("namespaceId")??""),y(e=>e?this.namespaceRole.isAdminOfNamespace$(e):_(!1)),c(this.destroyRef)).subscribe(e=>this.isAdmin.set(e)),this.state.vm$.pipe(c(this.destroyRef)).subscribe(e=>{let t=new Map;e.platform.forEach(n=>{n.id&&t.set(this.itemKey("platform",n.id),{config:n,scope:"platform"})}),e.namespace.forEach(n=>{n.id&&t.set(this.itemKey("namespace",n.id),{config:n,scope:"namespace"})}),e.userOnNs.forEach(n=>{n.id&&t.set(this.itemKey("userOnNs",n.id),{config:n,scope:"userOnNs"})}),e.userGlobal.forEach(n=>{n.id&&t.set(this.itemKey("userGlobal",n.id),{config:n,scope:"userGlobal"})}),this.resolved=t})}isEmptyPlaceholder(e){return e.startsWith(F)}resolve(e){return this.resolved.get(e)??null}itemKey(e,t){return`${e}:${t}`}goBack(){this.router.navigate(["/agentos","namespaces"])}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId,"integrations","new"],{queryParams:{scope:G(this.isAdmin())}})}onEdit(e){let t=e.config.id??"";this.router.navigate(["/agentos",this.namespaceId,"integrations",t,"edit"],{queryParams:{scope:e.scope}})}onDelete(e){let t=e.config.id;t&&this.state.delete(t,e.scope).pipe(c(this.destroyRef)).subscribe({error:n=>{console.error(`[IntegrationsAllScopes] Delete failed for ${e.scope}:${t}:`,n)}})}onDuplicate(e){if(!e.config.id)return;let n=(e.scope==="namespace"||e.scope==="platform")&&!this.isAdmin()?"userOnNs":e.scope;this.router.navigate(["/agentos",this.namespaceId,"integrations","new"],{queryParams:{scope:n,template:e.config.id,templateScope:e.scope}})}toListItems(e){let t=[];return t.push(...this.sectionItems("platform",e.platform)),t.push(...this.sectionItems("namespace",e.namespace)),t.push(...this.sectionItems("userOnNs",e.userOnNs)),t.push(...this.sectionItems("userGlobal",e.userGlobal)),t}sectionItems(e,t){return t.length===0?[{id:`${F}${e}`,name:"Aucune configuration",groupKey:e,groupLabel:k[e]}]:t.filter(n=>!!n.id).map(n=>({id:this.itemKey(e,n.id),name:n.name,description:n.integrationType,groupKey:e,groupLabel:k[e]}))}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=v({type:o,selectors:[["agentos-integrations-all-scopes"]],decls:5,vars:6,consts:[["integrationItemTpl",""],["title","Integrations","emptyMessage","No integrations available.","cardMinWidth","400px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[1,"integrations-all-scopes__empty"],[3,"config","scope","readOnly"],[3,"editRequested","deleteRequested","duplicateRequested","config","scope","readOnly"]],template:function(t,n){if(t&1&&(p(0,"ds-entity-list",1),M(1,"async"),g("createRequested",function(){return n.openCreateForm()}),p(2,"ds-icon-button",2),g("action",function(){return n.goBack()}),d()(),R(3,X,2,1,"ng-template",null,0,q)),t&2){let i=x(4);f("items",T(1,3,n.listItems$)??O(5,z))("showCreate",!0)("itemTemplate",i)}},dependencies:[L,B,P,N],styles:[".integrations-all-scopes__empty[_ngcontent-%COMP%]{margin:0;padding:.65rem 1rem;font-size:.85rem;font-style:italic;color:var(--color-text-secondary)}"],changeDetection:0})};export{j as IntegrationsAllScopesComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as a}from"./chunk-
|
|
1
|
+
import{b as a}from"./chunk-U4IRQFQX.js";import"./chunk-3KLIHIYI.js";import"./chunk-5TU5JR3W.js";import"./chunk-32554AB2.js";import"./chunk-26Y7QHUX.js";import"./chunk-NXKPUZGQ.js";import"./chunk-QN7OUZIZ.js";import"./chunk-BVQ4XPRS.js";import"./chunk-HTKDXFLE.js";import"./chunk-7VQ75OC6.js";import"./chunk-NNVKL253.js";import"./chunk-QDO3O2UB.js";export{a as UserListComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as D}from"./chunk-
|
|
1
|
+
import{a as D}from"./chunk-UDIJZYRI.js";import{a as k}from"./chunk-7BVQ2WHQ.js";import"./chunk-5TU5JR3W.js";import{c as x}from"./chunk-32554AB2.js";import{o as B,t as $}from"./chunk-26Y7QHUX.js";import"./chunk-NXKPUZGQ.js";import"./chunk-QN7OUZIZ.js";import{a as d}from"./chunk-BVQ4XPRS.js";import"./chunk-HTKDXFLE.js";import"./chunk-7VQ75OC6.js";import"./chunk-NNVKL253.js";import{Bb as b,Db as m,Fb as l,Ic as T,Pb as w,S as _,Wa as g,ab as C,bc as I,ca as i,ec as M,fc as R,ga as u,ha as y,i as c,ic as S,lb as h,ma as P,mb as v,rb as a,sb as p,t as f,tb as s}from"./chunk-QDO3O2UB.js";var F=()=>[];function L(o,e){if(o&1){let t=b();p(0,"agentos-prompt-item",4),m("deleteRequested",function(r){u(t);let E=l(2);return y(E.deletePrompt(r))}),s()}o&2&&a("prompt",e)("platformMode",!0)}function N(o,e){if(o&1&&h(0,L,1,2,"agentos-prompt-item",3),o&2){let t,n=e.$implicit,r=l();v((t=r.resolvePrompt(n.id))?0:-1,t)}}var q=class o{router=i(x);destroyRef=i(P);promptState=i(k);refresh$=new c(void 0);prompts$=this.refresh$.pipe(_(()=>this.promptState.listPlatform()));promptItems$=this.prompts$.pipe(f(e=>e.map(t=>({id:t.id??"",name:t.name,description:t.description}))));promptsById=new Map;constructor(){this.prompts$.pipe(d(this.destroyRef)).subscribe(e=>{this.promptsById=new Map(e.map(t=>[t.id??"",t]))})}goBack(){this.router.navigate(["/agentos","admin"])}openCreateForm(){this.router.navigate(["/agentos","admin","prompts","new"])}deletePrompt(e){this.promptState.delete(e.id??"").pipe(d(this.destroyRef)).subscribe(()=>this.refresh$.next())}resolvePrompt(e){return this.promptsById.get(e)??null}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=g({type:o,selectors:[["agentos-platform-prompts"]],decls:5,vars:6,consts:[["promptItemTpl",""],["title","Platform Prompts","emptyMessage","No platform prompts defined yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[3,"prompt","platformMode"],[3,"deleteRequested","prompt","platformMode"]],template:function(t,n){if(t&1&&(p(0,"ds-entity-list",1),M(1,"async"),m("createRequested",function(){return n.openCreateForm()}),p(2,"ds-icon-button",2),m("action",function(){return n.goBack()}),s()(),C(3,N,1,1,"ng-template",null,0,S)),t&2){let r=w(4);a("items",R(1,3,n.promptItems$)??I(5,F))("showCreate",!0)("itemTemplate",r)}},dependencies:[$,D,B,T],styles:[".platform-prompts__back[_ngcontent-%COMP%]{background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-primary, #007aff);font-family:inherit}.platform-prompts__back[_ngcontent-%COMP%]:hover{text-decoration:underline}"],changeDetection:0})};export{q as PlatformPromptsComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as k}from"./chunk-
|
|
1
|
+
import{a as k}from"./chunk-FNFYAJMS.js";import{d as D}from"./chunk-5TU5JR3W.js";import{c as q}from"./chunk-32554AB2.js";import{o as M,t as $}from"./chunk-26Y7QHUX.js";import"./chunk-NXKPUZGQ.js";import"./chunk-QN7OUZIZ.js";import{a as _}from"./chunk-BVQ4XPRS.js";import"./chunk-HTKDXFLE.js";import"./chunk-7VQ75OC6.js";import"./chunk-NNVKL253.js";import{Bb as b,Db as s,Fb as d,Ic as T,Pb as w,S as P,Wa as y,ab as C,bc as R,ca as n,ec as I,fc as x,ga as m,ha as l,i as f,ic as B,lb as h,ma as g,mb as A,rb as c,sb as a,t as u,tb as v}from"./chunk-QDO3O2UB.js";var S=()=>[];function V(r,e){if(r&1){let t=b();a(0,"agentos-ai-provider-item",4),s("editRequested",function(i){m(t);let p=d(2);return l(p.onEdit(i))})("deleteRequested",function(i){m(t);let p=d(2);return l(p.onDelete(i))}),v()}r&2&&c("config",e)("showBadge",!1)}function F(r,e){if(r&1&&h(0,V,1,2,"agentos-ai-provider-item",3),r&2){let t,o=e.$implicit,i=d();A((t=i.resolveProvider(o.id))?0:-1,t)}}var E=class r{router=n(q);destroyRef=n(g);aiProviderController=n(D);refresh$=new f(void 0);providers$=this.refresh$.pipe(P(()=>this.aiProviderController.listAiProvider("none")));providerItems$=this.providers$.pipe(u(e=>e.map(t=>({id:t.id??"",name:t.name,description:t.apiType}))));providersById=new Map;constructor(){this.providers$.pipe(_(this.destroyRef)).subscribe(e=>{this.providersById=new Map(e.map(t=>[t.id??"",t]))})}goBack(){this.router.navigate(["/agentos","admin"])}openCreateForm(){this.router.navigate(["/agentos","admin","ai-providers","new"])}onEdit(e){e.id&&this.router.navigate(["/agentos","admin","ai-providers",e.id,"edit"])}onDelete(e){e.id&&this.aiProviderController.deleteAiProvider(e.id).pipe(_(this.destroyRef)).subscribe(()=>this.refresh$.next())}resolveProvider(e){return this.providersById.get(e)??null}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=y({type:r,selectors:[["agentos-platform-ai-providers"]],decls:5,vars:6,consts:[["aiProviderItemTpl",""],["title","Platform AI Providers","emptyMessage","No platform AI providers defined yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],["scope","namespace",3,"config","showBadge"],["scope","namespace",3,"editRequested","deleteRequested","config","showBadge"]],template:function(t,o){if(t&1&&(a(0,"ds-entity-list",1),I(1,"async"),s("createRequested",function(){return o.openCreateForm()}),a(2,"ds-icon-button",2),s("action",function(){return o.goBack()}),v()(),C(3,F,1,1,"ng-template",null,0,B)),t&2){let i=w(4);c("items",x(1,3,o.providerItems$)??R(5,S))("showCreate",!0)("itemTemplate",i)}},dependencies:[$,k,M,T],styles:[".platform-ai-providers__back[_ngcontent-%COMP%]{background:none;border:none;cursor:pointer;font-family:inherit;font-size:.875rem;color:var(--color-text-secondary, #6e6e73);padding:.25rem .5rem;border-radius:4px;transition:color .15s ease}.platform-ai-providers__back[_ngcontent-%COMP%]:hover{color:var(--color-primary, #007aff)}"],changeDetection:0})};export{E as PlatformAiProvidersComponent};
|