@whoz-oss/coday-client 0.206.0 → 0.207.2
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-22RX22JY.js +1 -0
- package/browser/chunk-26MGIRJF.js +1 -0
- package/browser/{chunk-JWURN5PB.js → chunk-2O4IDVFE.js} +1 -1
- package/browser/chunk-2P74VZU4.js +1 -0
- package/browser/{chunk-WXOBY3EY.js → chunk-3AOPEZPX.js} +1 -1
- package/browser/{chunk-KKZABPQU.js → chunk-3NOI65IY.js} +1 -1
- package/browser/{chunk-A5C4DTSU.js → chunk-43DMEMMQ.js} +1 -1
- package/browser/{chunk-ZJUUFIFM.js → chunk-4KEHW6KL.js} +1 -1
- package/browser/{chunk-4734TK7R.js → chunk-5CBZIB6D.js} +1 -1
- package/browser/{chunk-L3L75XR6.js → chunk-5K5EFCNT.js} +1 -1
- package/browser/chunk-5OPQ2IC6.js +1 -0
- package/browser/chunk-6VCRRGXF.js +1 -0
- package/browser/{chunk-5EHY76TA.js → chunk-A2R5GVPT.js} +1 -1
- package/browser/{chunk-YMLYNSOP.js → chunk-BMUZTI7K.js} +1 -1
- package/browser/{chunk-QDRJZVVJ.js → chunk-BQHUHW7P.js} +1 -1
- package/browser/{chunk-G32LX34P.js → chunk-CCPU2LL3.js} +1 -1
- package/browser/chunk-CU4C25HM.js +1 -0
- package/browser/{chunk-XXFLSKH4.js → chunk-F42BGKID.js} +1 -1
- package/browser/{chunk-2J5DAOVJ.js → chunk-FOAW6HUH.js} +1 -1
- package/browser/chunk-G2BRVRGR.js +1 -0
- package/browser/{chunk-P6ABEFHB.js → chunk-GUB4VYOT.js} +1 -1
- package/browser/{chunk-ERQUBIFQ.js → chunk-IOREZEED.js} +1 -1
- package/browser/{chunk-53URG3R4.js → chunk-JIHPEYRG.js} +1 -1
- package/browser/{chunk-6F2QS5ZN.js → chunk-KZJRQ6RN.js} +1 -1
- package/browser/{chunk-ZMCXRMG2.js → chunk-LH4ATU27.js} +1 -1
- package/browser/{chunk-6YFVWUFP.js → chunk-LMFI6Y77.js} +1 -1
- package/browser/chunk-LX5DYIMF.js +1 -0
- package/browser/{chunk-E64XBDJ4.js → chunk-M6ORKUDA.js} +1 -1
- package/browser/{chunk-BWMTUVRQ.js → chunk-NIWF7LLH.js} +1 -1
- package/browser/{chunk-SO5P7HTY.js → chunk-OSQQAYJZ.js} +1 -1
- package/browser/{chunk-55QD2MSQ.js → chunk-PNFA7PN2.js} +1 -1
- package/browser/{chunk-XXPGZDVF.js → chunk-RJBF3TIH.js} +1 -1
- package/browser/chunk-RRBTVPFV.js +1 -0
- package/browser/{chunk-CIMPBK5N.js → chunk-S7MAZ5PQ.js} +1 -1
- package/browser/chunk-SF7PCURW.js +1 -0
- package/browser/{chunk-OSVXE7XF.js → chunk-UAHCUD67.js} +1 -1
- package/browser/chunk-UDA26TV3.js +1 -0
- package/browser/{chunk-42QJEAX4.js → chunk-VHC775VZ.js} +1 -1
- package/browser/{chunk-JHUUVBVD.js → chunk-VIDPCJ3F.js} +1 -1
- package/browser/chunk-Y6K6VJYJ.js +1 -0
- package/browser/index.html +1 -1
- package/browser/{main-UE2RLE5B.js → main-VRT323QR.js} +1 -1
- package/package.json +1 -1
- package/browser/chunk-2L7CAI22.js +0 -1
- package/browser/chunk-3ODG3JTW.js +0 -1
- package/browser/chunk-7BGJAFEA.js +0 -1
- package/browser/chunk-7TME2YLZ.js +0 -1
- package/browser/chunk-BD6N2UN6.js +0 -1
- package/browser/chunk-HM6HNJMS.js +0 -1
- package/browser/chunk-LH2YTDIO.js +0 -1
- package/browser/chunk-OBNBWBWU.js +0 -1
- package/browser/chunk-RMRAPNZV.js +0 -1
- package/browser/chunk-TWMYRLVR.js +0 -1
- package/browser/chunk-WSIKJ6LY.js +0 -1
- package/browser/chunk-ZAKB7MFY.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as be}from"./chunk-W6TYWCQH.js";import{a as Ce}from"./chunk-YMLYNSOP.js";import{c as Ye}from"./chunk-EQXGFCI5.js";import{a as Ge}from"./chunk-JHUUVBVD.js";import{a as ue,e as he,h as Ue}from"./chunk-BD6N2UN6.js";import{a as We,b as Be,c as je}from"./chunk-4F2LQOD7.js";import{a as X,c as _e}from"./chunk-7MQRVE7E.js";import{o as ge,t as Qe}from"./chunk-BGEXT3EN.js";import{a as Q,c as te}from"./chunk-IRZNRZ5Q.js";import{Ab as Me,Bb as S,D as ae,Db as f,Eb as V,F as re,Fb as c,Ga as Ne,Hc as ze,Jb as W,Ka as r,Kb as L,Kc as $e,Lb as q,Ma as le,Pb as de,Qb as me,Rb as O,S as U,Sb as Te,Tb as d,Ub as v,Uc as pe,Vb as F,Wa as P,Xb as Ae,Xc as He,Z as Oe,a as ne,ab as ce,b as oe,ca as x,cc as Ve,dc as Le,ec as qe,fc as Fe,ga as h,h as ie,ha as g,i as Pe,ic as ke,jb as ee,kb as Re,lb as p,lc as E,m as Y,ma as se,mb as _,oc as C,pa as Ie,pb as D,pc as u,qb as N,rb as M,sb as s,t as H,ta as y,tb as l,ua as G,ub as A,va as De,vb as T,wb as k,xb as K}from"./chunk-5J7BTB5J.js";var J=class o{caseController=x(he);cases=y([]);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=Oe({token:o,factory:o.\u0275fac,providedIn:"root"})};var et=["promptItem"],Ke=(o,t)=>t.name;function tt(o,t){if(o&1&&(T(0,"span",5),d(1),k()),o&2){let e=t.$implicit;r(),Ae("","{","","{","",e.name,"","}","","}")}}function nt(o,t){if(o&1&&(T(0,"span",6),d(1),k()),o&2){let e=c().$implicit;r(),v(e.description)}}function ot(o,t){if(o&1){let e=S();T(0,"li",3,0),V("click",function(){let i=h(e).$implicit,a=c();return g(a.onItemClick(i))})("keydown.enter",function(){let i=h(e).$implicit,a=c();return g(a.onItemClick(i))})("mouseenter",function(){let i=h(e).$index,a=c();return g(a.activeIndex.set(i))}),T(2,"span",4),d(3),D(4,tt,2,5,"span",5,Ke),k(),p(6,nt,2,1,"span",6),k()}if(o&2){let e=t.$implicit,n=t.$index,i=c();O("prompt-autocomplete__item--active",i.isActive(n)),ee("aria-selected",i.isActive(n)),r(3),F(" /",e.name," "),r(),N(e.parameters),r(2),_(e.description?6:-1)}}var B=class o{prompts=u.required();selected=C();dismissed=C();activeIndex=y(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(et,5),e&2){let i;L(i=q())&&(n.itemRefs=i)}},inputs:{prompts:[1,"prompts"]},outputs:{selected:"selected",dismissed:"dismissed"},features:[De],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&&(T(0,"ul",1),D(1,ot,7,5,"li",2,Ke),k()),e&2&&(r(),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 it=["composerInput"],at=["messagesContainer"],rt=(o,t)=>t.phaseIndex;function st(o,t){o&1&&(s(0,"div",4)(1,"p"),d(2,"No messages yet."),l()())}function lt(o,t){if(o&1&&(s(0,"div",19)(1,"span",22),d(2,"session context"),l(),s(3,"pre",23),d(4),qe(5,"json"),l()()),o&2){let e=c(2).$implicit;r(4),v(Fe(5,1,e.event.sessionContext))}}function ct(o,t){if(o&1&&(s(0,"div",18),p(1,lt,6,3,"div",19),s(2,"span",20),d(3),l(),A(4,"div",21),l()),o&2){let e=c().$implicit,n=c(2);O("case-chat__message--user",e.event.actor.role==="USER")("case-chat__message--agent",e.event.actor.role==="AGENT"),r(),_(n.showTechnical()&&e.event.sessionContext?1:-1),r(2),v(e.event.actor.displayName),r(),M("innerHTML",e.html,Ne)}}function dt(o,t){if(o&1&&(s(0,"div",15)(1,"span",20),d(2),l(),s(3,"p",24),d(4),l()()),o&2){let e=c().$implicit,n=c(2);r(2),v(n.agentDisplayName()),r(2),v(e.text)}}function mt(o,t){if(o&1&&(s(0,"div",29),d(1),l()),o&2){let e=c(3).$implicit;r(),v(e.item.detail)}}function pt(o,t){if(o&1){let e=S();s(0,"button",27),f("click",function(){h(e);let i=c(2).$implicit,a=c(2);return g(a.toggleTechnical(i.eventId))}),s(1,"span",26),d(2),l(),s(3,"span",28),d(4),l()(),p(5,mt,2,1,"div",29)}if(o&2){let e=c(2).$implicit,n=c(2);ee("aria-expanded",n.isTechnicalExpanded(e.eventId)),r(2),v(e.item.label),r(2),v(n.isTechnicalExpanded(e.eventId)?"\u25BC":"\u25B6"),r(),_(n.isTechnicalExpanded(e.eventId)?5:-1)}}function _t(o,t){if(o&1&&(s(0,"span",26),d(1),l()),o&2){let e=c(2).$implicit;r(),v(e.item.label)}}function ut(o,t){if(o&1&&(s(0,"div",25),p(1,pt,6,4)(2,_t,2,1,"span",26),l()),o&2){let e=c().$implicit;O("case-chat__technical--warn",e.item.type==="WarnEvent")("case-chat__technical--error",e.item.type==="ErrorEvent"),r(),_(e.item.detail?1:2)}}function ht(o,t){o&1&&d(0," \u23F3 ")}function gt(o,t){o&1&&d(0," \u2705 ")}function Ct(o,t){o&1&&d(0," \u274C ")}function bt(o,t){if(o&1&&(s(0,"div",46)(1,"span",47),d(2,"Enrichment content"),l(),s(3,"pre"),d(4),l()()),o&2){let e=c().$implicit;r(4),v(e.enrichmentContent)}}function ft(o,t){if(o&1&&(s(0,"div",42)(1,"div",43)(2,"span",44),d(3),l(),s(4,"span",45),d(5),l()(),s(6,"div",46)(7,"span",47),d(8,"Prompt"),l(),s(9,"pre"),d(10),l()(),s(11,"div",46)(12,"span",47),d(13,"LLM output"),l(),s(14,"pre"),d(15),l()(),p(16,bt,5,1,"div",46),l()),o&2){let e=t.$implicit;O("case-chat__enrichment-phase--failed",!e.success),r(3),F("Phase ",e.phaseIndex),r(2),v(e.success?"\u2705":"\u274C"),r(5),v(e.prompt),r(5),v(e.llmOutput),r(),_(e.enrichmentContent?16:-1)}}function vt(o,t){if(o&1&&(s(0,"div",36)(1,"span",38),d(2,"Enrichment phases"),l(),D(3,ft,17,7,"div",41,rt),l()),o&2){let e=c(3).$implicit;r(3),N(e.call.enrichmentPhases)}}function xt(o,t){if(o&1&&(s(0,"div",37)(1,"span",38),d(2,"Payload"),l(),s(3,"pre"),d(4),l()()),o&2){let e=c(3).$implicit;r(4),v(e.call.args)}}function yt(o,t){o&1&&(s(0,"pre"),d(1),l()),o&2&&(r(),v(t))}function wt(o,t){o&1&&(s(0,"span",39),d(1,"Running\u2026"),l())}function St(o,t){o&1&&(s(0,"span",40),d(1,"No output"),l())}function Mt(o,t){if(o&1&&(s(0,"div",35),p(1,vt,5,0,"div",36),p(2,xt,5,1,"div",37),s(3,"div",37)(4,"span",38),d(5,"Output"),l(),p(6,yt,2,1,"pre")(7,wt,2,0,"span",39)(8,St,2,0,"span",40),l()()),o&2){let e,n=c(2).$implicit,i=c(2);r(),_(i.showTechnical()&&(n.call.enrichmentPhases!=null&&n.call.enrichmentPhases.length)?1:-1),r(),_(n.call.args?2:-1),r(4),_((e=i.extractToolOutput(n.call))?6:n.call.response?8:7,e)}}function Tt(o,t){if(o&1){let e=S();s(0,"div",30)(1,"button",31),f("click",function(){h(e);let i=c().$implicit,a=c(2);return g(a.toggleToolCall(i.call.requestId))}),s(2,"span",32),p(3,ht,1,0)(4,gt,1,0)(5,Ct,1,0),l(),s(6,"span",33),d(7),l(),s(8,"span",34),d(9),l()(),p(10,Mt,9,3,"div",35),l()}if(o&2){let e=c().$implicit,n=c(2);O("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),r(),ee("aria-expanded",n.isToolCallExpanded(e.call.requestId)),r(2),_(e.call.response?e.call.response.success?4:5:3),r(4),v(e.call.toolName),r(2),v(n.isToolCallExpanded(e.call.requestId)?"\u25BC":"\u25B6"),r(),_(n.isToolCallExpanded(e.call.requestId)?10:-1)}}function kt(o,t){if(o&1&&p(0,ct,5,7,"div",14)(1,dt,5,2,"div",15)(2,ut,3,5,"div",16)(3,Tt,11,11,"div",17),o&2){let e=t.$implicit;_(e.kind==="message"?0:e.kind==="streaming"?1:e.kind==="technical"?2:3)}}function Et(o,t){if(o&1&&D(0,kt,4,1,null,null,Re().trackTimelineItem,!0),o&2){let e=c();N(e.timeline())}}function Pt(o,t){o&1&&(s(0,"div",5),A(1,"span",48)(2,"span",48)(3,"span",48),l())}function Ot(o,t){if(o&1){let e=S();s(0,"div",6)(1,"ds-icon-button",49),f("action",function(){h(e);let i=c();return g(i.onScrollToBottomClick())}),l()()}}function It(o,t){if(o&1){let e=S();s(0,"div",8)(1,"agentos-prompt-autocomplete",50),f("selected",function(i){h(e);let a=c();return g(a.onPromptSelected(i))})("dismissed",function(){h(e);let i=c();return g(i.closeAutocomplete())}),l()()}if(o&2){let e=c();r(),M("prompts",e.slashSuggestions())}}function Dt(o,t){if(o&1){let e=S();s(0,"ds-icon-button",51),f("action",function(){h(e);let i=c();return g(i.interrupt())}),l()}}function Nt(o,t){if(o&1){let e=S();s(0,"ds-icon-button",52),f("action",function(){h(e);let i=c();return g(i.submit())}),l()}if(o&2){let e=c();M("title",e.preferences.composerHint())("disabled",!e.canSend)}}var Rt=64,fe=class o{route=x(X);http=x(pe);zone=x(Ie);destroyRef=x(se);domSanitizer=x(He);config=x(ue);preferences=x(be);caseState=x(J);promptState=x(Ce);caseId=this.route.snapshot.queryParams.case;namespaceId=this.route.snapshot.queryParams.ns;markdownRenderer=this.buildMarkdownRenderer();agentDisplayName=E(()=>{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=y([]);messageHtmlCache=new Map;inputValue=y("");isRunning=y(!1);isTerminal=y(!1);effectivePrompts=[];promptsLoaded=!1;slashPrefix$=new ie;slashSuggestions=y([]);static SHOW_TECHNICAL_KEY="agentos.case-chat.showTechnical";showTechnical=y(localStorage.getItem(o.SHOW_TECHNICAL_KEY)==="true");showTechnicalOverride=u(!1);streamingText=y("");collapsedTools=y(new Set);expandedTechnicals=y(new Set);isAtBottom=y(!0);scrollListenerCleanup=null;constructor(){this.slashPrefix$.pipe(re(60),U(t=>(this.promptsLoaded?Y(this.effectivePrompts):this.promptState.listEffective(this.namespaceId).pipe(ae(()=>Y([])))).pipe(H(n=>({prefix:t,prompts:n})))),Q(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())))}),G(()=>{this.showTechnical.set(this.showTechnicalOverride())}),G(()=>{this.isRunning()||this.isTerminal()||queueMicrotask(()=>this.composerInput?.nativeElement.focus())}),G(()=>{this.timeline(),this.streamingText(),this.isAtBottom()&&queueMicrotask(()=>this.scrollToBottom())}),le(()=>{this.attachScrollListener()})}baseTimeline=E(()=>{let t=this.events(),e=this.showTechnical(),n=new Map;for(let w of t)if(w.type==="ToolRequestEvent"){let m=w,b=m.toolRequestId??w.id,R=n.get(b);n.set(b,{requestId:b,toolName:m.toolName??"unknown",args:m.args??null,response:R?.response,enrichmentPhases:m.enrichmentPhases??null})}else if(w.type==="ToolResponseEvent"){let m=w,b=m.toolRequestId??w.id,R=n.get(b);n.set(b,{requestId:b,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=E(()=>{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(Q(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<=Rt)};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 b=JSON.parse(m);this.zone.run(()=>{let R=this.events().length;if(b.type==="MessageEvent"){let I=b,$=this.extractText(I);this.messageHtmlCache.has(b.id)||this.messageHtmlCache.set(b.id,this.renderMarkdown($))}this.events.update(I=>I.some($=>$.id===b.id)?I:[...I,b]);let Ze=this.events().length;if(console.log("[AgentOS SSE] event processed",{sseEventName:w,eventType:b.type,eventId:b.id,beforeLen:R,afterLen:Ze,running:this.isRunning(),terminal:this.isTerminal()}),b.type==="TextChunkEvent"){let I=b.chunk;I&&this.streamingText.update($=>$+I);return}if(b.type==="CaseUpdatedEvent"){let I=b;I.title&&this.caseState.updateCaseTitle(b.caseId,I.title);return}if(b.type==="CaseStatusEvent"){let I=b.status,$=I==="KILLED"||I==="ERROR";if(this.isTerminal.set($),$)this.isRunning.set(!1),this.eventSource?.close(),this.eventSource=null;else{let Ee=I==="RUNNING";this.isRunning.set(Ee),Ee||this.streamingText.set("")}return}if(b.type==="AgentFinishedEvent"){this.isRunning.set(!1),this.streamingText.set("");return}})}catch(b){console.warn("[AgentOS SSE] failed to parse event data",{sseEventName:w,error:b,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=Be.parse(t,{renderer:this.markdownRenderer,breaks:!0,gfm:!0,async:!1}),n=je.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 We,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(it,5)(at,5)(B,5),e&2){let i;L(i=q())&&(n.composerInput=i.first),L(i=q())&&(n.messagesContainer=i.first),L(i=q())&&(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&&(s(0,"div",2)(1,"div",3,0),p(3,st,3,0,"div",4)(4,Et,2,0),p(5,Pt,4,0,"div",5),l(),p(6,Ot,2,0,"div",6),s(7,"div",7),p(8,It,2,1,"div",8),s(9,"textarea",9,1),f("input",function(a){return n.onInput(a)})("keydown",function(a){return n.onKeydown(a)}),l(),s(11,"div",10),p(12,Dt,1,0,"ds-icon-button",11)(13,Nt,1,2,"ds-icon-button",12),s(14,"ds-icon-button",13),f("action",function(){return n.kill()}),l()()()()),e&2&&(r(3),_(n.timeline().length===0?3:4),r(2),_(n.isRunning()?5:-1),r(),_(n.isAtBottom()?-1:6),r(2),_(n.slashSuggestions().length>0?8:-1),r(),M("value",n.inputValue())("disabled",n.isRunning()||n.isTerminal()),r(3),_(n.isRunning()?12:13),r(2),M("disabled",n.isTerminal()))},dependencies:[ge,B,$e],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 At=["composerInput"];function Vt(o,t){if(o&1){let e=S();s(0,"div",5)(1,"agentos-prompt-autocomplete",10),f("selected",function(i){h(e);let a=c();return g(a.onPromptSelected(i))})("dismissed",function(){h(e);let i=c();return g(i.closeAutocomplete())}),l()()}if(o&2){let e=c();r(),M("prompts",e.slashSuggestions())}}var ve=class o{http=x(pe);router=x(_e);route=x(X);config=x(ue);caseState=x(J);destroyRef=x(se);preferences=x(be);promptState=x(Ce);composerInput;autocompleteRef;namespaceId=this.route.snapshot.queryParams.ns;inputValue=y("");isCreating=y(!1);effectivePrompts=[];promptsLoaded=!1;slashPrefix$=new ie;slashSuggestions=y([]);ngOnInit(){this.route.queryParams.pipe(Q(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(){le(()=>{this.composerInput?.nativeElement.focus()}),this.slashPrefix$.pipe(re(60),U(t=>(this.promptsLoaded?Y(this.effectivePrompts):this.promptState.listEffective(this.namespaceId).pipe(ae(()=>Y([])))).pipe(H(n=>({prefix:t,prompts:n})))),Q(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(U(e=>(this.caseState.addCase(e),this.http.post(`${this.config.basePath}/api/cases/${e.id}/messages`,{content:t,userId:"default-user"}).pipe(H(()=>e)))),Q(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(At,5)(B,5),e&2){let i;L(i=q())&&(n.composerInput=i.first),L(i=q())&&(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&&(s(0,"div",1)(1,"div",2)(2,"h1",3),d(3,"What can I help you with?"),l(),s(4,"div",4),p(5,Vt,2,1,"div",5),s(6,"textarea",6,0),f("input",function(a){return n.onInput(a)})("keydown",function(a){return n.onKeydown(a)}),l(),s(8,"div",7)(9,"span",8),d(10),l(),s(11,"ds-icon-button",9),f("action",function(){return n.submit()}),l()()()()()),e&2&&(r(5),_(n.slashSuggestions().length>0?5:-1),r(),M("value",n.inputValue())("disabled",n.isCreating()),r(4),v(n.preferences.composerHint()),r(),M("disabled",!n.canSend))},dependencies:[ge,B],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, #1d1d1f);text-align:center}.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, 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;box-shadow:0 4px 24px var(--color-shadow, rgba(0, 0, 0, .07));transition:box-shadow .2s ease,border-color .2s ease}.case-home__composer[_ngcontent-%COMP%]:focus-within{box-shadow:0 4px 32px #007aff26;border-color:var(--color-primary, #007aff)}.case-home__input[_ngcontent-%COMP%]{width:100%;resize:none;padding:1rem 1.25rem .5rem;border:none;background:transparent;color:var(--color-text, #1d1d1f);font-size:1rem;font-family:inherit;line-height:1.6;outline:none;box-sizing:border-box}.case-home__input[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary, #6e6e73)}.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-size:.75rem;color:var(--color-text-secondary, #6e6e73);opacity:.7}@keyframes _ngcontent-%COMP%_autocomplete-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}"]})};var Lt=["caseItemTpl"],qt=o=>({node:o,depth:0}),Ft=(o,t)=>({node:o,depth:t}),zt=(o,t)=>t.id;function $t(o,t){o&1&&Me(0)}function Ht(o,t){if(o&1&&ce(0,$t,1,0,"ng-container",3),o&2){let e=t.$implicit;c();let n=de(4);M("ngTemplateOutlet",n)("ngTemplateOutletContext",Ve(2,qt,e))}}function Ut(o,t){if(o&1){let e=S();s(0,"button",9),f("click",function(i){h(e);let a=c().node,w=c();return g(w.toggleExpand(i,a.id))}),s(1,"span",10),d(2,"\u203A"),l()()}if(o&2){let e=c().node,n=c();M("title",n.isExpanded(e.id)?"Collapse":"Expand"),r(),O("case-tree-node__toggle-icon--open",n.isExpanded(e.id))}}function Wt(o,t){o&1&&Me(0)}function Bt(o,t){if(o&1&&ce(0,Wt,1,0,"ng-container",3),o&2){let e=t.$implicit,n=c(2).depth;c();let i=de(4);M("ngTemplateOutlet",i)("ngTemplateOutletContext",Le(2,Ft,e,n+1))}}function jt(o,t){if(o&1&&D(0,Bt,1,5,"ng-container",null,zt),o&2){let e=c().node;N(e.children)}}function Qt(o,t){if(o&1){let e=S();s(0,"div",4)(1,"button",5),f("click",function(){let i=h(e).node,a=c();return g(a.onItemSelected(i.id))}),s(2,"span",6),p(3,Ut,3,3,"button",7),l(),s(4,"span",8),d(5),l()(),p(6,jt,2,0),l()}if(o&2){let e=t.node,n=t.depth,i=c();me("--depth",n),r(),O("case-tree-node__row--active",e.id===i.activeCaseId()),r(2),_(e.children.length?3:-1),r(2),v(e.name),r(),_(i.isExpanded(e.id)&&e.children.length?6:-1)}}var xe=class o{cases=u([]);activeCaseId=u(null);caseSelected=C();createRequested=C();caseItemTpl;rootItems=E(()=>Yt(this.cases()));autoExpandedIds=E(()=>{let t=this.activeCaseId();if(!t)return new Set;let e=new Set;return Xe(this.rootItems(),t,e),e});expandedIds=y(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})}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(Lt,7),e&2){let i;L(i=q())&&(n.caseItemTpl=i.first)}},inputs:{cases:[1,"cases"],activeCaseId:[1,"activeCaseId"]},outputs:{caseSelected:"caseSelected",createRequested:"createRequested"},decls:5,vars:3,consts:[["caseItemTpl",""],["caseRowTpl",""],["title","Cases","emptyMessage","No cases yet. Start one below.","searchPlaceholder","Filter cases\u2026","cardMinWidth","220px","contentMaxWidth","100%",3,"itemSelected","createRequested","items","itemTemplate","showCreate"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"case-tree-node"],["type","button",1,"case-tree-node__row",3,"click"],[1,"case-tree-node__expand-slot"],["type","button",1,"case-tree-node__toggle",3,"title"],[1,"case-tree-node__name"],["type","button",1,"case-tree-node__toggle",3,"click","title"],[1,"case-tree-node__toggle-icon"]],template:function(e,n){if(e&1&&(s(0,"ds-entity-list",2),f("itemSelected",function(a){return n.onItemSelected(a)})("createRequested",function(){return n.onCreateRequested()}),l(),ce(1,Ht,1,4,"ng-template",null,0,ke)(3,Qt,7,7,"ng-template",null,1,ke)),e&2){let i=de(2);M("items",n.rootItems())("itemTemplate",i)("showCreate",!0)}},dependencies:[Qe,ze],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-family: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:#00000014}.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, ui-monospace, "SF Mono", monospace);font-size:.8rem}'],changeDetection:0})};function Yt(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",children:[]}),i=new Map;for(let m of o)i.set(m.id??"",n(m));let a=[];for(let m of o){let b=i.get(m.id??""),R=m.parentCaseId;R&&t.has(R)?i.get(R).children.push(b):a.push(b)}let w=m=>m.sort((b,R)=>(e.get(R.id)??"")>(e.get(b.id)??"")?1:-1).map(b=>oe(ne({},b),{children:w(b.children)}));return w(a)}function Xe(o,t,e){for(let n of o){if(n.id===t)return!0;if(n.children.length&&Xe(n.children,t,e))return e.add(n.id),!0}return!1}function Gt(o,t){if(o&1){let e=S();T(0,"button",2),V("click",function(){h(e);let i=c(2);return g(i.onNavigate("/agentos/admin"))}),d(1,"\u2699\uFE0F Admin"),k()}}function Kt(o,t){o&1&&d(0," \u2600\uFE0F Light mode ")}function Xt(o,t){o&1&&d(0," \u{1F319} Dark mode ")}function Jt(o,t){if(o&1){let e=S();T(0,"div",0),V("click",function(i){h(e);let a=c();return g(a.onClose(i))})("keyup.escape",function(i){h(e);let a=c();return g(a.onClose(i))}),k(),T(1,"div",1)(2,"button",2),V("click",function(){h(e);let i=c();return g(i.onNavigate("/agentos/user"))}),d(3,"\u{1F464} User"),k(),p(4,Gt,2,0,"button",3),K(5,"div",4),T(6,"button",2),V("click",function(){h(e);let i=c();return g(i.onNavigate("/agentos/namespaces"))}),d(7," \u{1F310} Namespaces "),k(),K(8,"div",4),T(9,"button",2),V("click",function(){h(e);let i=c();return g(i.onThemeToggle())}),p(10,Kt,1,0)(11,Xt,1,0),k(),T(12,"button",2),V("click",function(){h(e);let i=c();return g(i.onLogsToggle())}),d(13," </> Technical logs "),k()()}if(o&2){let e=c();r(),O("shell-user-menu__overlay--mobile",e.variant()==="mobile"),r(3),_(e.isAdmin()?4:-1),r(6),_(e.isDark()?10:11),r(2),O("shell-user-menu__item--active",e.showTechnical())}}var Z=class o{open=u.required();isAdmin=u.required();isDark=u.required();showTechnical=u.required();variant=u("desktop");navigateTo=C();themeToggled=C();logsToggled=C();closed=C();onNavigate(t){this.navigateTo.emit(t)}onThemeToggle(){this.themeToggled.emit()}onLogsToggle(){this.logsToggled.emit()}onClose(t){t.stopPropagation(),this.closed.emit(t)}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=P({type:o,selectors:[["agentos-shell-user-menu"]],inputs:{open:[1,"open"],isAdmin:[1,"isAdmin"],isDark:[1,"isDark"],showTechnical:[1,"showTechnical"],variant:[1,"variant"]},outputs:{navigateTo:"navigateTo",themeToggled:"themeToggled",logsToggled:"logsToggled",closed:"closed"},decls:1,vars:1,consts:[["role","presentation","tabindex","-1",1,"shell-user-menu__backdrop",3,"click","keyup.escape"],[1,"shell-user-menu__overlay"],["type","button",1,"shell-user-menu__item",3,"click"],["type","button",1,"shell-user-menu__item"],[1,"shell-user-menu__separator"]],template:function(e,n){e&1&&p(0,Jt,14,6),e&2&&_(n.open()?0:-1)},styles:[".shell-user-menu__backdrop[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:199}.shell-user-menu__overlay[_ngcontent-%COMP%]{position:absolute;top:calc(100% + 6px);right:0;min-width:180px;background:var(--color-bg, #f4f3ef);border:1px solid var(--color-border, rgba(0, 0, 0, .09));border-radius:14px;padding:6px;z-index:200;box-shadow:0 6px 20px #00000017,0 1px 4px #0000000d}.shell-user-menu__overlay--mobile[_ngcontent-%COMP%]{position:absolute;top:calc(100% + 4px);right:16px;left:auto;z-index:300}.shell-user-menu__item[_ngcontent-%COMP%]{width:100%;display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:10px;border:none;background:transparent;cursor:pointer;color:var(--color-text, #1b1916);font:inherit;font-size:.8rem;text-align:left;transition:all .13s}.shell-user-menu__item[_ngcontent-%COMP%]:hover{background:var(--color-surface-hover, rgba(0, 0, 0, .05))}.shell-user-menu__item--active[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--color-primary, #016b71) 12%,transparent);color:var(--color-primary, #016b71)}.shell-user-menu__separator[_ngcontent-%COMP%]{height:1px;background:var(--color-border, rgba(0, 0, 0, .09));margin:4px 6px}"],changeDetection:0})};var Zt=(o,t)=>t.id;function en(o,t){if(o&1&&d(0),o&2){let e=c();F(" ",e.userInitials()," ")}}function tn(o,t){o&1&&d(0," \u2022\u2022\u2022 ")}function nn(o,t){o&1&&(s(0,"span"),d(1,"\u2713"),l())}function on(o,t){if(o&1){let e=S();s(0,"button",19),f("click",function(){let i=h(e).$implicit,a=c(3);return g(a.namespaceSelected.emit(i))}),A(1,"span",14),s(2,"span",20),d(3),l(),p(4,nn,2,0,"span"),l()}if(o&2){let e,n,i=t.$implicit,a=c(3);O("shell-sidebar__ns-item--active",i.id===((e=a.selectedNamespace())==null?null:e.id)),r(3),v(i.name),r(),_(i.id===((n=a.selectedNamespace())==null?null:n.id)?4:-1)}}function an(o,t){if(o&1&&(s(0,"div",17),D(1,on,5,4,"button",18,Zt),l()),o&2){let e=c(2);r(),N(e.namespaces())}}function rn(o,t){if(o&1){let e=S();s(0,"div",9)(1,"button",13),f("click",function(){h(e);let i=c();return g(i.nsMenuToggled.emit())}),A(2,"span",14),s(3,"span",15),d(4),l(),s(5,"span",16),d(6,"\u25BE"),l()(),p(7,an,3,0,"div",17),l()}if(o&2){let e,n=c();r(4),v(((e=n.selectedNamespace())==null?null:e.name)??"Select namespace"),r(3),_(n.nsMenuOpen()?7:-1)}}function sn(o,t){if(o&1&&(s(0,"span",10),d(1),l()),o&2){let e,n=c();r(),v((e=n.selectedNamespace())==null?null:e.name)}}var ye=class o{sidebarWidth=u.required();selectedNamespace=u.required();namespaces=u.required();showNsPicker=u.required();nsMenuOpen=u.required();cases=u.required();activeCaseId=u.required();userInitials=u.required();menuOpen=u.required();isAdmin=u.required();isDark=u.required();showTechnical=u.required();homeClicked=C();namespaceSelected=C();nsMenuToggled=C();nsMenuClosed=C();caseSelected=C();createRequested=C();menuToggled=C();menuClosed=C();navigateTo=C();themeToggled=C();logsToggled=C();static \u0275fac=function(e){return new(e||o)};static \u0275cmp=P({type:o,selectors:[["agentos-shell-sidebar"]],inputs:{sidebarWidth:[1,"sidebarWidth"],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:{homeClicked:"homeClicked",namespaceSelected:"namespaceSelected",nsMenuToggled:"nsMenuToggled",nsMenuClosed:"nsMenuClosed",caseSelected:"caseSelected",createRequested:"createRequested",menuToggled:"menuToggled",menuClosed:"menuClosed",navigateTo:"navigateTo",themeToggled:"themeToggled",logsToggled:"logsToggled"},decls:16,vars:10,consts:[[1,"shell-sidebar"],[1,"shell-sidebar__top"],["type","button","title","Home",1,"shell-sidebar__brand",3,"click"],["src","CODAY-Logo.png","alt","Coday",1,"shell-sidebar__logo-img"],[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__ns-wrap"],[1,"shell-sidebar__ns-label"],[1,"shell-sidebar__ns-picker"],[1,"shell-sidebar__ns-name-static"],[1,"shell-sidebar__cases-scroll"],[3,"caseSelected","createRequested","cases","activeCaseId"],[1,"shell-sidebar__ns-trigger",3,"click"],[1,"shell-sidebar__ns-dot"],[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&&(s(0,"div",0)(1,"div",1)(2,"button",2),f("click",function(){return n.homeClicked.emit()}),A(3,"img",3),l(),s(4,"div",4)(5,"button",5),f("click",function(a){return n.menuToggled.emit(a)}),p(6,en,1,1)(7,tn,1,0),l(),s(8,"agentos-shell-user-menu",6),f("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()()(),s(9,"div",7)(10,"div",8),d(11,"Namespace"),l(),p(12,rn,8,2,"div",9)(13,sn,2,1,"span",10),l(),s(14,"div",11)(15,"agentos-case-drawer",12),f("caseSelected",function(a){return n.caseSelected.emit(a)})("createRequested",function(){return n.createRequested.emit()}),l()()()),e&2&&(me("width",n.sidebarWidth(),"px"),r(6),_(n.userInitials()?6:7),r(2),M("open",n.menuOpen())("isAdmin",n.isAdmin())("isDark",n.isDark())("showTechnical",n.showTechnical()),r(4),_(n.showNsPicker()?12:13),r(3),M("cases",n.cases())("activeCaseId",n.activeCaseId()))},dependencies:[xe,Z],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}.shell-sidebar__top[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 12px 6px;flex-shrink:0}.shell-sidebar__brand[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:8px;border:none;background:transparent;cursor:pointer;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:24px;height:24px;border-radius:6px;object-fit:contain}.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%]{padding:12px 12px 6px;position:relative}.shell-sidebar__ns-label[_ngcontent-%COMP%]{padding:0 2px 7px;font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-tertiary, #5a5449)}.shell-sidebar__ns-picker[_ngcontent-%COMP%]{position:relative}.shell-sidebar__ns-trigger[_ngcontent-%COMP%]{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;border:1px solid var(--color-border, rgba(0, 0, 0, .09));background:var(--color-bg-secondary, #faf9f7);cursor:pointer;color:var(--color-text, #1b1916);transition:all .15s;font:inherit;font-size:.82rem;font-weight:700}.shell-sidebar__ns-trigger[_ngcontent-%COMP%]:hover{border-color:var(--color-border-light, rgba(0, 0, 0, .15))}.shell-sidebar__ns-dot[_ngcontent-%COMP%]{width:10px;height:10px;border-radius:50%;background:var(--color-primary, #5aadb5);flex-shrink:0}.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-bg, #f4f3ef);border:1px solid var(--color-border, rgba(0, 0, 0, .09));border-radius:14px;padding:6px;z-index:100;box-shadow:0 6px 20px #00000017,0 1px 4px #0000000d}.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:10px 12px;font-size:.82rem;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 ln=(o,t)=>t.id;function cn(o,t){o&1&&(s(0,"span"),d(1,"\u2713"),l())}function dn(o,t){if(o&1){let e=S();s(0,"button",13),f("click",function(){let i=h(e).$implicit,a=c(2);return g(a.namespaceSelected.emit(i))}),A(1,"span",14),s(2,"span",15),d(3),l(),p(4,cn,2,0,"span"),l()}if(o&2){let e,n,i=t.$implicit,a=c(2);O("shell-topbar-mobile__ns-item--active",i.id===((e=a.selectedNamespace())==null?null:e.id)),r(3),v(i.name),r(),_(i.id===((n=a.selectedNamespace())==null?null:n.id)?4:-1)}}function mn(o,t){if(o&1){let e=S();s(0,"div",10),f("click",function(i){h(e);let a=c();return g(a.nsMenuClosed.emit(i))})("keyup.escape",function(i){h(e);let a=c();return g(a.nsMenuClosed.emit(i))}),l(),s(1,"div",11),D(2,dn,5,4,"button",12,ln),l()}if(o&2){let e=c();r(2),N(e.namespaces())}}var we=class o{selectedNamespace=u.required();namespaces=u.required();nsMenuOpen=u.required();userInitials=u.required();menuOpen=u.required();isAdmin=u.required();isDark=u.required();showTechnical=u.required();homeClicked=C();namespaceSelected=C();nsMenuToggled=C();nsMenuClosed=C();menuToggled=C();menuClosed=C();navigateTo=C();themeToggled=C();logsToggled=C();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:15,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__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&&(s(0,"div",0)(1,"button",1),f("click",function(){return n.homeClicked.emit()}),A(2,"img",2),l(),s(3,"span",3),d(4,"/"),l(),s(5,"div",4)(6,"button",5),f("click",function(a){return n.nsMenuToggled.emit(a)}),d(7),s(8,"span",6),d(9,"\u25BE"),l()(),p(10,mn,4,0),l()(),s(11,"div",7)(12,"div",8),f("click",function(a){return n.menuToggled.emit(a)})("keyup.enter",function(){return n.menuToggled.emit(void 0)}),d(13),l(),s(14,"agentos-shell-user-menu",9),f("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;r(7),F(" ",((i=n.selectedNamespace())==null?null:i.name)??""," "),r(3),_(n.nsMenuOpen()?10:-1),r(3),F(" ",n.userInitials()||"\xB7\xB7\xB7"," "),r(),M("open",n.menuOpen())("isAdmin",n.isAdmin())("isDark",n.isDark())("showTechnical",n.showTechnical())}},dependencies:[Z],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%]{width:20px;height:20px;border-radius:6px;object-fit:contain}.shell-topbar-mobile__sep[_ngcontent-%COMP%]{color:#00000040;font:400 12px Inter,sans-serif;flex:none}.shell-topbar-mobile__ns-wrap[_ngcontent-%COMP%]{position:static;min-width:0}.shell-topbar-mobile__ns-btn[_ngcontent-%COMP%]{font:600 12.5px Inter,sans-serif;color:var(--color-text, #161616);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:#00000059;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%]{position:fixed;top:44px;left:16px;min-width:180px;background:var(--color-bg, #f4f3ef);border:1px solid var(--color-border, rgba(0, 0, 0, .09));border-radius:14px;padding:6px;z-index:300;box-shadow:0 6px 20px #00000017,0 1px 4px #0000000d}.shell-topbar-mobile__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-topbar-mobile__ns-item[_ngcontent-%COMP%]:hover{background:var(--color-surface-hover, rgba(0, 0, 0, .05))}.shell-topbar-mobile__ns-item--active[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--color-primary, #016b71) 12%,transparent);color:var(--color-primary, #016b71)}.shell-topbar-mobile__ns-dot[_ngcontent-%COMP%]{width:10px;height:10px;background:var(--color-primary, #5aadb5);flex-shrink:0;border-radius:50%}.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:#dfedff;background:oklch(94% .03 255deg);border:1px solid oklch(82% .06 255deg);color:#2a5fc9;display:flex;align-items:center;justify-content:center;font:600 10px Inter,sans-serif;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 pn=(o,t)=>t.id;function _n(o,t){if(o&1){let e=S();T(0,"div",9),V("click",function(){let i=h(e).$implicit,a=c(2);return g(a.caseSelected.emit(i.id??""))})("keyup.enter",function(){let i=h(e).$implicit,a=c(2);return g(a.caseSelected.emit(i.id??""))}),K(1,"span",1),T(2,"span",2),d(3),k(),T(4,"span",3),d(5),k()()}if(o&2){let e=t.$implicit,n=c(2);r(),Te("shell-case-switcher__dot--"+n.deriveMobileStatus(e.status)),r(2),v(e.title??e.id),r(2),v(e.status.toLowerCase())}}function un(o,t){if(o&1){let e=S();T(0,"div",5)(1,"div",6),V("click",function(){h(e);let i=c();return g(i.createRequested.emit())})("keyup.enter",function(){h(e);let i=c();return g(i.createRequested.emit())}),T(2,"span",7),d(3,"+"),k(),T(4,"span",2),d(5,"New case"),k()(),D(6,_n,6,4,"div",8,pn),k()}if(o&2){let e=c();r(6),N(e.otherCases())}}var Se=class o{cases=u.required();activeCaseId=u.required();open=u.required();activeCase=E(()=>{let t=this.activeCaseId();return t?this.cases().find(e=>e.id===t)??null:null});activeCaseTitle=E(()=>this.activeCase()?.title??this.activeCaseId()??"New case");activeCaseStatus=E(()=>this.deriveMobileStatus(this.activeCase()?.status));activeCaseStatusLabel=E(()=>this.activeCase()?.status?.toLowerCase()??"");otherCases=E(()=>this.cases().filter(t=>t.id!==this.activeCaseId()));caseSelected=C();createRequested=C();toggled=C();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&&(T(0,"div",0),V("click",function(){return n.toggled.emit()})("keyup.enter",function(){return n.toggled.emit()}),K(1,"span",1),T(2,"span",2),d(3),k(),T(4,"span",3),d(5),k(),T(6,"span",4),d(7,"\u2304"),k()(),p(8,un,8,0,"div",5)),e&2&&(r(),Te("shell-case-switcher__dot--"+n.activeCaseStatus()),r(2),v(n.activeCaseTitle()),r(2),v(n.activeCaseStatusLabel()),r(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:#00000005}.shell-case-switcher__title[_ngcontent-%COMP%]{font:600 12.5px Inter,sans-serif;color:var(--color-text, #161616);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.shell-case-switcher__status[_ngcontent-%COMP%]{font:400 11px Inter,sans-serif;color:#0006;flex:none}.shell-case-switcher__chevron[_ngcontent-%COMP%]{color:#00000059;font-size:9px;flex:none}.shell-case-switcher__list[_ngcontent-%COMP%]{display:flex;flex-direction:column;border-top:1px solid rgba(0,0,0,.06);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:#000000b3}.shell-case-switcher__item[_ngcontent-%COMP%]:hover{background:#00000008}.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:#2a9d4a}.shell-case-switcher__dot--idle[_ngcontent-%COMP%]{background:#0003}.shell-case-switcher__dot--killed[_ngcontent-%COMP%], .shell-case-switcher__dot--error[_ngcontent-%COMP%]{background:#dc2614}@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 hn(o,t){if(o&1&&A(0,"agentos-case-chat",6),o&2){let e=c();M("showTechnicalOverride",e.showTechnical())}}function gn(o,t){o&1&&A(0,"agentos-case-home")}var Je=class o{router=x(_e);route=x(X);caseController=x(he);namespaceController=x(Ue);themePort=x(Ye);userState=x(Ge);isAdmin=E(()=>this.userState.currentUser()?.isAdmin===!0);userInitials=E(()=>{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=E(()=>{let t=this.themePort.theme();return t==="dark"?!0:t==="light"?!1:typeof document<"u"&&document.documentElement.hasAttribute("data-theme")});sidebarWidth=y(300);menuOpen=y(!1);nsMenuOpen=y(!1);mobileSwitcherOpen=y(!1);showTechnical=y(!1);showNsPicker=E(()=>this.isAdmin()||this.namespaces().length>1);namespaceId$=this.route.queryParams.pipe(H(t=>t.ns??null));_namespaceIdRaw=te(this.namespaceId$);namespaceId=E(()=>this._namespaceIdRaw()??null);_activeCaseIdRaw=te(this.route.queryParams.pipe(H(t=>t.case??null)));activeCaseId=E(()=>this._activeCaseIdRaw()??null);refresh$=new Pe(void 0);cases$=this.namespaceId$.pipe(U(t=>t?this.refresh$.pipe(U(()=>this.caseController.listByParentCase(t))):[[]]));cases=te(this.cases$,{initialValue:[]});namespaces=te(this.namespaceController.listAllNamespace(),{initialValue:[]});selectedNamespace=y(null);constructor(){G(()=>{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"])}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,b=Math.max(200,Math.min(500,n+m));this.sidebarWidth.set(b)},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:8,vars:24,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,"homeClicked","namespaceSelected","nsMenuToggled","nsMenuClosed","caseSelected","createRequested","menuToggled","menuClosed","navigateTo","themeToggled","logsToggled","sidebarWidth","selectedNamespace","namespaces","showNsPicker","nsMenuOpen","cases","activeCaseId","userInitials","menuOpen","isAdmin","isDark","showTechnical"],["role","separator","tabindex","-1","aria-label","Resize sidebar",1,"case-shell__resize-handle",3,"mousedown"],[1,"case-shell__main"],[3,"showTechnicalOverride"]],template:function(e,n){e&1&&(s(0,"div",0)(1,"agentos-shell-topbar-mobile",1),f("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(),s(2,"agentos-shell-case-switcher-mobile",2),f("caseSelected",function(a){return n.onMobileCaseSelect(a)})("createRequested",function(){return n.onMobileCreateCase()})("toggled",function(){return n.toggleMobileSwitcher()}),l(),s(3,"agentos-shell-sidebar",3),f("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(),s(4,"div",4),f("mousedown",function(a){return n.onResizeStart(a)}),l(),s(5,"main",5),p(6,hn,1,1,"agentos-case-chat",6)(7,gn,1,0,"agentos-case-home"),l()()),e&2&&(r(),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()),r(),M("cases",n.cases())("activeCaseId",n.activeCaseId())("open",n.mobileSwitcherOpen()),r(),M("sidebarWidth",n.sidebarWidth())("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()),r(3),_(n.activeCaseId()?6:7))},dependencies:[fe,ve,ye,we,Se],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}}"],changeDetection:0})};export{fe as a,ve as b,xe as c,Je as d};
|
|
1
|
+
import{c as be}from"./chunk-W6TYWCQH.js";import{a as Ce}from"./chunk-BMUZTI7K.js";import{c as Ye}from"./chunk-EQXGFCI5.js";import{a as Ge}from"./chunk-VIDPCJ3F.js";import{a as ue,e as he,h as Ue}from"./chunk-G2BRVRGR.js";import{a as We,b as Be,c as je}from"./chunk-4F2LQOD7.js";import{a as X,c as _e}from"./chunk-7MQRVE7E.js";import{o as ge,t as Qe}from"./chunk-BGEXT3EN.js";import{a as Q,c as te}from"./chunk-IRZNRZ5Q.js";import{Ab as Me,Bb as S,D as ae,Db as f,Eb as V,F as re,Fb as c,Ga as Ne,Hc as ze,Jb as W,Ka as r,Kb as L,Kc as $e,Lb as q,Ma as le,Pb as de,Qb as me,Rb as O,S as U,Sb as Te,Tb as d,Ub as v,Uc as pe,Vb as F,Wa as P,Xb as Ae,Xc as He,Z as Oe,a as ne,ab as ce,b as oe,ca as x,cc as Ve,dc as Le,ec as qe,fc as Fe,ga as h,h as ie,ha as g,i as Pe,ic as ke,jb as ee,kb as Re,lb as p,lc as E,m as Y,ma as se,mb as _,oc as C,pa as Ie,pb as D,pc as u,qb as N,rb as M,sb as s,t as H,ta as y,tb as l,ua as G,ub as A,va as De,vb as T,wb as k,xb as K}from"./chunk-5J7BTB5J.js";var J=class o{caseController=x(he);cases=y([]);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=Oe({token:o,factory:o.\u0275fac,providedIn:"root"})};var et=["promptItem"],Ke=(o,t)=>t.name;function tt(o,t){if(o&1&&(T(0,"span",5),d(1),k()),o&2){let e=t.$implicit;r(),Ae("","{","","{","",e.name,"","}","","}")}}function nt(o,t){if(o&1&&(T(0,"span",6),d(1),k()),o&2){let e=c().$implicit;r(),v(e.description)}}function ot(o,t){if(o&1){let e=S();T(0,"li",3,0),V("click",function(){let i=h(e).$implicit,a=c();return g(a.onItemClick(i))})("keydown.enter",function(){let i=h(e).$implicit,a=c();return g(a.onItemClick(i))})("mouseenter",function(){let i=h(e).$index,a=c();return g(a.activeIndex.set(i))}),T(2,"span",4),d(3),D(4,tt,2,5,"span",5,Ke),k(),p(6,nt,2,1,"span",6),k()}if(o&2){let e=t.$implicit,n=t.$index,i=c();O("prompt-autocomplete__item--active",i.isActive(n)),ee("aria-selected",i.isActive(n)),r(3),F(" /",e.name," "),r(),N(e.parameters),r(2),_(e.description?6:-1)}}var B=class o{prompts=u.required();selected=C();dismissed=C();activeIndex=y(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(et,5),e&2){let i;L(i=q())&&(n.itemRefs=i)}},inputs:{prompts:[1,"prompts"]},outputs:{selected:"selected",dismissed:"dismissed"},features:[De],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&&(T(0,"ul",1),D(1,ot,7,5,"li",2,Ke),k()),e&2&&(r(),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 it=["composerInput"],at=["messagesContainer"],rt=(o,t)=>t.phaseIndex;function st(o,t){o&1&&(s(0,"div",4)(1,"p"),d(2,"No messages yet."),l()())}function lt(o,t){if(o&1&&(s(0,"div",19)(1,"span",22),d(2,"session context"),l(),s(3,"pre",23),d(4),qe(5,"json"),l()()),o&2){let e=c(2).$implicit;r(4),v(Fe(5,1,e.event.sessionContext))}}function ct(o,t){if(o&1&&(s(0,"div",18),p(1,lt,6,3,"div",19),s(2,"span",20),d(3),l(),A(4,"div",21),l()),o&2){let e=c().$implicit,n=c(2);O("case-chat__message--user",e.event.actor.role==="USER")("case-chat__message--agent",e.event.actor.role==="AGENT"),r(),_(n.showTechnical()&&e.event.sessionContext?1:-1),r(2),v(e.event.actor.displayName),r(),M("innerHTML",e.html,Ne)}}function dt(o,t){if(o&1&&(s(0,"div",15)(1,"span",20),d(2),l(),s(3,"p",24),d(4),l()()),o&2){let e=c().$implicit,n=c(2);r(2),v(n.agentDisplayName()),r(2),v(e.text)}}function mt(o,t){if(o&1&&(s(0,"div",29),d(1),l()),o&2){let e=c(3).$implicit;r(),v(e.item.detail)}}function pt(o,t){if(o&1){let e=S();s(0,"button",27),f("click",function(){h(e);let i=c(2).$implicit,a=c(2);return g(a.toggleTechnical(i.eventId))}),s(1,"span",26),d(2),l(),s(3,"span",28),d(4),l()(),p(5,mt,2,1,"div",29)}if(o&2){let e=c(2).$implicit,n=c(2);ee("aria-expanded",n.isTechnicalExpanded(e.eventId)),r(2),v(e.item.label),r(2),v(n.isTechnicalExpanded(e.eventId)?"\u25BC":"\u25B6"),r(),_(n.isTechnicalExpanded(e.eventId)?5:-1)}}function _t(o,t){if(o&1&&(s(0,"span",26),d(1),l()),o&2){let e=c(2).$implicit;r(),v(e.item.label)}}function ut(o,t){if(o&1&&(s(0,"div",25),p(1,pt,6,4)(2,_t,2,1,"span",26),l()),o&2){let e=c().$implicit;O("case-chat__technical--warn",e.item.type==="WarnEvent")("case-chat__technical--error",e.item.type==="ErrorEvent"),r(),_(e.item.detail?1:2)}}function ht(o,t){o&1&&d(0," \u23F3 ")}function gt(o,t){o&1&&d(0," \u2705 ")}function Ct(o,t){o&1&&d(0," \u274C ")}function bt(o,t){if(o&1&&(s(0,"div",46)(1,"span",47),d(2,"Enrichment content"),l(),s(3,"pre"),d(4),l()()),o&2){let e=c().$implicit;r(4),v(e.enrichmentContent)}}function ft(o,t){if(o&1&&(s(0,"div",42)(1,"div",43)(2,"span",44),d(3),l(),s(4,"span",45),d(5),l()(),s(6,"div",46)(7,"span",47),d(8,"Prompt"),l(),s(9,"pre"),d(10),l()(),s(11,"div",46)(12,"span",47),d(13,"LLM output"),l(),s(14,"pre"),d(15),l()(),p(16,bt,5,1,"div",46),l()),o&2){let e=t.$implicit;O("case-chat__enrichment-phase--failed",!e.success),r(3),F("Phase ",e.phaseIndex),r(2),v(e.success?"\u2705":"\u274C"),r(5),v(e.prompt),r(5),v(e.llmOutput),r(),_(e.enrichmentContent?16:-1)}}function vt(o,t){if(o&1&&(s(0,"div",36)(1,"span",38),d(2,"Enrichment phases"),l(),D(3,ft,17,7,"div",41,rt),l()),o&2){let e=c(3).$implicit;r(3),N(e.call.enrichmentPhases)}}function xt(o,t){if(o&1&&(s(0,"div",37)(1,"span",38),d(2,"Payload"),l(),s(3,"pre"),d(4),l()()),o&2){let e=c(3).$implicit;r(4),v(e.call.args)}}function yt(o,t){o&1&&(s(0,"pre"),d(1),l()),o&2&&(r(),v(t))}function wt(o,t){o&1&&(s(0,"span",39),d(1,"Running\u2026"),l())}function St(o,t){o&1&&(s(0,"span",40),d(1,"No output"),l())}function Mt(o,t){if(o&1&&(s(0,"div",35),p(1,vt,5,0,"div",36),p(2,xt,5,1,"div",37),s(3,"div",37)(4,"span",38),d(5,"Output"),l(),p(6,yt,2,1,"pre")(7,wt,2,0,"span",39)(8,St,2,0,"span",40),l()()),o&2){let e,n=c(2).$implicit,i=c(2);r(),_(i.showTechnical()&&(n.call.enrichmentPhases!=null&&n.call.enrichmentPhases.length)?1:-1),r(),_(n.call.args?2:-1),r(4),_((e=i.extractToolOutput(n.call))?6:n.call.response?8:7,e)}}function Tt(o,t){if(o&1){let e=S();s(0,"div",30)(1,"button",31),f("click",function(){h(e);let i=c().$implicit,a=c(2);return g(a.toggleToolCall(i.call.requestId))}),s(2,"span",32),p(3,ht,1,0)(4,gt,1,0)(5,Ct,1,0),l(),s(6,"span",33),d(7),l(),s(8,"span",34),d(9),l()(),p(10,Mt,9,3,"div",35),l()}if(o&2){let e=c().$implicit,n=c(2);O("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),r(),ee("aria-expanded",n.isToolCallExpanded(e.call.requestId)),r(2),_(e.call.response?e.call.response.success?4:5:3),r(4),v(e.call.toolName),r(2),v(n.isToolCallExpanded(e.call.requestId)?"\u25BC":"\u25B6"),r(),_(n.isToolCallExpanded(e.call.requestId)?10:-1)}}function kt(o,t){if(o&1&&p(0,ct,5,7,"div",14)(1,dt,5,2,"div",15)(2,ut,3,5,"div",16)(3,Tt,11,11,"div",17),o&2){let e=t.$implicit;_(e.kind==="message"?0:e.kind==="streaming"?1:e.kind==="technical"?2:3)}}function Et(o,t){if(o&1&&D(0,kt,4,1,null,null,Re().trackTimelineItem,!0),o&2){let e=c();N(e.timeline())}}function Pt(o,t){o&1&&(s(0,"div",5),A(1,"span",48)(2,"span",48)(3,"span",48),l())}function Ot(o,t){if(o&1){let e=S();s(0,"div",6)(1,"ds-icon-button",49),f("action",function(){h(e);let i=c();return g(i.onScrollToBottomClick())}),l()()}}function It(o,t){if(o&1){let e=S();s(0,"div",8)(1,"agentos-prompt-autocomplete",50),f("selected",function(i){h(e);let a=c();return g(a.onPromptSelected(i))})("dismissed",function(){h(e);let i=c();return g(i.closeAutocomplete())}),l()()}if(o&2){let e=c();r(),M("prompts",e.slashSuggestions())}}function Dt(o,t){if(o&1){let e=S();s(0,"ds-icon-button",51),f("action",function(){h(e);let i=c();return g(i.interrupt())}),l()}}function Nt(o,t){if(o&1){let e=S();s(0,"ds-icon-button",52),f("action",function(){h(e);let i=c();return g(i.submit())}),l()}if(o&2){let e=c();M("title",e.preferences.composerHint())("disabled",!e.canSend)}}var Rt=64,fe=class o{route=x(X);http=x(pe);zone=x(Ie);destroyRef=x(se);domSanitizer=x(He);config=x(ue);preferences=x(be);caseState=x(J);promptState=x(Ce);caseId=this.route.snapshot.queryParams.case;namespaceId=this.route.snapshot.queryParams.ns;markdownRenderer=this.buildMarkdownRenderer();agentDisplayName=E(()=>{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=y([]);messageHtmlCache=new Map;inputValue=y("");isRunning=y(!1);isTerminal=y(!1);effectivePrompts=[];promptsLoaded=!1;slashPrefix$=new ie;slashSuggestions=y([]);static SHOW_TECHNICAL_KEY="agentos.case-chat.showTechnical";showTechnical=y(localStorage.getItem(o.SHOW_TECHNICAL_KEY)==="true");showTechnicalOverride=u(!1);streamingText=y("");collapsedTools=y(new Set);expandedTechnicals=y(new Set);isAtBottom=y(!0);scrollListenerCleanup=null;constructor(){this.slashPrefix$.pipe(re(60),U(t=>(this.promptsLoaded?Y(this.effectivePrompts):this.promptState.listEffective(this.namespaceId).pipe(ae(()=>Y([])))).pipe(H(n=>({prefix:t,prompts:n})))),Q(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())))}),G(()=>{this.showTechnical.set(this.showTechnicalOverride())}),G(()=>{this.isRunning()||this.isTerminal()||queueMicrotask(()=>this.composerInput?.nativeElement.focus())}),G(()=>{this.timeline(),this.streamingText(),this.isAtBottom()&&queueMicrotask(()=>this.scrollToBottom())}),le(()=>{this.attachScrollListener()})}baseTimeline=E(()=>{let t=this.events(),e=this.showTechnical(),n=new Map;for(let w of t)if(w.type==="ToolRequestEvent"){let m=w,b=m.toolRequestId??w.id,R=n.get(b);n.set(b,{requestId:b,toolName:m.toolName??"unknown",args:m.args??null,response:R?.response,enrichmentPhases:m.enrichmentPhases??null})}else if(w.type==="ToolResponseEvent"){let m=w,b=m.toolRequestId??w.id,R=n.get(b);n.set(b,{requestId:b,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=E(()=>{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(Q(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<=Rt)};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 b=JSON.parse(m);this.zone.run(()=>{let R=this.events().length;if(b.type==="MessageEvent"){let I=b,$=this.extractText(I);this.messageHtmlCache.has(b.id)||this.messageHtmlCache.set(b.id,this.renderMarkdown($))}this.events.update(I=>I.some($=>$.id===b.id)?I:[...I,b]);let Ze=this.events().length;if(console.log("[AgentOS SSE] event processed",{sseEventName:w,eventType:b.type,eventId:b.id,beforeLen:R,afterLen:Ze,running:this.isRunning(),terminal:this.isTerminal()}),b.type==="TextChunkEvent"){let I=b.chunk;I&&this.streamingText.update($=>$+I);return}if(b.type==="CaseUpdatedEvent"){let I=b;I.title&&this.caseState.updateCaseTitle(b.caseId,I.title);return}if(b.type==="CaseStatusEvent"){let I=b.status,$=I==="KILLED"||I==="ERROR";if(this.isTerminal.set($),$)this.isRunning.set(!1),this.eventSource?.close(),this.eventSource=null;else{let Ee=I==="RUNNING";this.isRunning.set(Ee),Ee||this.streamingText.set("")}return}if(b.type==="AgentFinishedEvent"){this.isRunning.set(!1),this.streamingText.set("");return}})}catch(b){console.warn("[AgentOS SSE] failed to parse event data",{sseEventName:w,error:b,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=Be.parse(t,{renderer:this.markdownRenderer,breaks:!0,gfm:!0,async:!1}),n=je.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 We,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(it,5)(at,5)(B,5),e&2){let i;L(i=q())&&(n.composerInput=i.first),L(i=q())&&(n.messagesContainer=i.first),L(i=q())&&(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&&(s(0,"div",2)(1,"div",3,0),p(3,st,3,0,"div",4)(4,Et,2,0),p(5,Pt,4,0,"div",5),l(),p(6,Ot,2,0,"div",6),s(7,"div",7),p(8,It,2,1,"div",8),s(9,"textarea",9,1),f("input",function(a){return n.onInput(a)})("keydown",function(a){return n.onKeydown(a)}),l(),s(11,"div",10),p(12,Dt,1,0,"ds-icon-button",11)(13,Nt,1,2,"ds-icon-button",12),s(14,"ds-icon-button",13),f("action",function(){return n.kill()}),l()()()()),e&2&&(r(3),_(n.timeline().length===0?3:4),r(2),_(n.isRunning()?5:-1),r(),_(n.isAtBottom()?-1:6),r(2),_(n.slashSuggestions().length>0?8:-1),r(),M("value",n.inputValue())("disabled",n.isRunning()||n.isTerminal()),r(3),_(n.isRunning()?12:13),r(2),M("disabled",n.isTerminal()))},dependencies:[ge,B,$e],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 At=["composerInput"];function Vt(o,t){if(o&1){let e=S();s(0,"div",5)(1,"agentos-prompt-autocomplete",10),f("selected",function(i){h(e);let a=c();return g(a.onPromptSelected(i))})("dismissed",function(){h(e);let i=c();return g(i.closeAutocomplete())}),l()()}if(o&2){let e=c();r(),M("prompts",e.slashSuggestions())}}var ve=class o{http=x(pe);router=x(_e);route=x(X);config=x(ue);caseState=x(J);destroyRef=x(se);preferences=x(be);promptState=x(Ce);composerInput;autocompleteRef;namespaceId=this.route.snapshot.queryParams.ns;inputValue=y("");isCreating=y(!1);effectivePrompts=[];promptsLoaded=!1;slashPrefix$=new ie;slashSuggestions=y([]);ngOnInit(){this.route.queryParams.pipe(Q(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(){le(()=>{this.composerInput?.nativeElement.focus()}),this.slashPrefix$.pipe(re(60),U(t=>(this.promptsLoaded?Y(this.effectivePrompts):this.promptState.listEffective(this.namespaceId).pipe(ae(()=>Y([])))).pipe(H(n=>({prefix:t,prompts:n})))),Q(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(U(e=>(this.caseState.addCase(e),this.http.post(`${this.config.basePath}/api/cases/${e.id}/messages`,{content:t,userId:"default-user"}).pipe(H(()=>e)))),Q(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(At,5)(B,5),e&2){let i;L(i=q())&&(n.composerInput=i.first),L(i=q())&&(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&&(s(0,"div",1)(1,"div",2)(2,"h1",3),d(3,"What can I help you with?"),l(),s(4,"div",4),p(5,Vt,2,1,"div",5),s(6,"textarea",6,0),f("input",function(a){return n.onInput(a)})("keydown",function(a){return n.onKeydown(a)}),l(),s(8,"div",7)(9,"span",8),d(10),l(),s(11,"ds-icon-button",9),f("action",function(){return n.submit()}),l()()()()()),e&2&&(r(5),_(n.slashSuggestions().length>0?5:-1),r(),M("value",n.inputValue())("disabled",n.isCreating()),r(4),v(n.preferences.composerHint()),r(),M("disabled",!n.canSend))},dependencies:[ge,B],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, #1d1d1f);text-align:center}.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, 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;box-shadow:0 4px 24px var(--color-shadow, rgba(0, 0, 0, .07));transition:box-shadow .2s ease,border-color .2s ease}.case-home__composer[_ngcontent-%COMP%]:focus-within{box-shadow:0 4px 32px #007aff26;border-color:var(--color-primary, #007aff)}.case-home__input[_ngcontent-%COMP%]{width:100%;resize:none;padding:1rem 1.25rem .5rem;border:none;background:transparent;color:var(--color-text, #1d1d1f);font-size:1rem;font-family:inherit;line-height:1.6;outline:none;box-sizing:border-box}.case-home__input[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary, #6e6e73)}.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-size:.75rem;color:var(--color-text-secondary, #6e6e73);opacity:.7}@keyframes _ngcontent-%COMP%_autocomplete-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}"]})};var Lt=["caseItemTpl"],qt=o=>({node:o,depth:0}),Ft=(o,t)=>({node:o,depth:t}),zt=(o,t)=>t.id;function $t(o,t){o&1&&Me(0)}function Ht(o,t){if(o&1&&ce(0,$t,1,0,"ng-container",3),o&2){let e=t.$implicit;c();let n=de(4);M("ngTemplateOutlet",n)("ngTemplateOutletContext",Ve(2,qt,e))}}function Ut(o,t){if(o&1){let e=S();s(0,"button",9),f("click",function(i){h(e);let a=c().node,w=c();return g(w.toggleExpand(i,a.id))}),s(1,"span",10),d(2,"\u203A"),l()()}if(o&2){let e=c().node,n=c();M("title",n.isExpanded(e.id)?"Collapse":"Expand"),r(),O("case-tree-node__toggle-icon--open",n.isExpanded(e.id))}}function Wt(o,t){o&1&&Me(0)}function Bt(o,t){if(o&1&&ce(0,Wt,1,0,"ng-container",3),o&2){let e=t.$implicit,n=c(2).depth;c();let i=de(4);M("ngTemplateOutlet",i)("ngTemplateOutletContext",Le(2,Ft,e,n+1))}}function jt(o,t){if(o&1&&D(0,Bt,1,5,"ng-container",null,zt),o&2){let e=c().node;N(e.children)}}function Qt(o,t){if(o&1){let e=S();s(0,"div",4)(1,"button",5),f("click",function(){let i=h(e).node,a=c();return g(a.onItemSelected(i.id))}),s(2,"span",6),p(3,Ut,3,3,"button",7),l(),s(4,"span",8),d(5),l()(),p(6,jt,2,0),l()}if(o&2){let e=t.node,n=t.depth,i=c();me("--depth",n),r(),O("case-tree-node__row--active",e.id===i.activeCaseId()),r(2),_(e.children.length?3:-1),r(2),v(e.name),r(),_(i.isExpanded(e.id)&&e.children.length?6:-1)}}var xe=class o{cases=u([]);activeCaseId=u(null);caseSelected=C();createRequested=C();caseItemTpl;rootItems=E(()=>Yt(this.cases()));autoExpandedIds=E(()=>{let t=this.activeCaseId();if(!t)return new Set;let e=new Set;return Xe(this.rootItems(),t,e),e});expandedIds=y(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})}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(Lt,7),e&2){let i;L(i=q())&&(n.caseItemTpl=i.first)}},inputs:{cases:[1,"cases"],activeCaseId:[1,"activeCaseId"]},outputs:{caseSelected:"caseSelected",createRequested:"createRequested"},decls:5,vars:3,consts:[["caseItemTpl",""],["caseRowTpl",""],["title","Cases","emptyMessage","No cases yet. Start one below.","searchPlaceholder","Filter cases\u2026","cardMinWidth","220px","contentMaxWidth","100%",3,"itemSelected","createRequested","items","itemTemplate","showCreate"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"case-tree-node"],["type","button",1,"case-tree-node__row",3,"click"],[1,"case-tree-node__expand-slot"],["type","button",1,"case-tree-node__toggle",3,"title"],[1,"case-tree-node__name"],["type","button",1,"case-tree-node__toggle",3,"click","title"],[1,"case-tree-node__toggle-icon"]],template:function(e,n){if(e&1&&(s(0,"ds-entity-list",2),f("itemSelected",function(a){return n.onItemSelected(a)})("createRequested",function(){return n.onCreateRequested()}),l(),ce(1,Ht,1,4,"ng-template",null,0,ke)(3,Qt,7,7,"ng-template",null,1,ke)),e&2){let i=de(2);M("items",n.rootItems())("itemTemplate",i)("showCreate",!0)}},dependencies:[Qe,ze],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-family: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:#00000014}.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, ui-monospace, "SF Mono", monospace);font-size:.8rem}'],changeDetection:0})};function Yt(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",children:[]}),i=new Map;for(let m of o)i.set(m.id??"",n(m));let a=[];for(let m of o){let b=i.get(m.id??""),R=m.parentCaseId;R&&t.has(R)?i.get(R).children.push(b):a.push(b)}let w=m=>m.sort((b,R)=>(e.get(R.id)??"")>(e.get(b.id)??"")?1:-1).map(b=>oe(ne({},b),{children:w(b.children)}));return w(a)}function Xe(o,t,e){for(let n of o){if(n.id===t)return!0;if(n.children.length&&Xe(n.children,t,e))return e.add(n.id),!0}return!1}function Gt(o,t){if(o&1){let e=S();T(0,"button",2),V("click",function(){h(e);let i=c(2);return g(i.onNavigate("/agentos/admin"))}),d(1,"\u2699\uFE0F Admin"),k()}}function Kt(o,t){o&1&&d(0," \u2600\uFE0F Light mode ")}function Xt(o,t){o&1&&d(0," \u{1F319} Dark mode ")}function Jt(o,t){if(o&1){let e=S();T(0,"div",0),V("click",function(i){h(e);let a=c();return g(a.onClose(i))})("keyup.escape",function(i){h(e);let a=c();return g(a.onClose(i))}),k(),T(1,"div",1)(2,"button",2),V("click",function(){h(e);let i=c();return g(i.onNavigate("/agentos/user"))}),d(3,"\u{1F464} User"),k(),p(4,Gt,2,0,"button",3),K(5,"div",4),T(6,"button",2),V("click",function(){h(e);let i=c();return g(i.onNavigate("/agentos/namespaces"))}),d(7," \u{1F310} Namespaces "),k(),K(8,"div",4),T(9,"button",2),V("click",function(){h(e);let i=c();return g(i.onThemeToggle())}),p(10,Kt,1,0)(11,Xt,1,0),k(),T(12,"button",2),V("click",function(){h(e);let i=c();return g(i.onLogsToggle())}),d(13," </> Technical logs "),k()()}if(o&2){let e=c();r(),O("shell-user-menu__overlay--mobile",e.variant()==="mobile"),r(3),_(e.isAdmin()?4:-1),r(6),_(e.isDark()?10:11),r(2),O("shell-user-menu__item--active",e.showTechnical())}}var Z=class o{open=u.required();isAdmin=u.required();isDark=u.required();showTechnical=u.required();variant=u("desktop");navigateTo=C();themeToggled=C();logsToggled=C();closed=C();onNavigate(t){this.navigateTo.emit(t)}onThemeToggle(){this.themeToggled.emit()}onLogsToggle(){this.logsToggled.emit()}onClose(t){t.stopPropagation(),this.closed.emit(t)}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=P({type:o,selectors:[["agentos-shell-user-menu"]],inputs:{open:[1,"open"],isAdmin:[1,"isAdmin"],isDark:[1,"isDark"],showTechnical:[1,"showTechnical"],variant:[1,"variant"]},outputs:{navigateTo:"navigateTo",themeToggled:"themeToggled",logsToggled:"logsToggled",closed:"closed"},decls:1,vars:1,consts:[["role","presentation","tabindex","-1",1,"shell-user-menu__backdrop",3,"click","keyup.escape"],[1,"shell-user-menu__overlay"],["type","button",1,"shell-user-menu__item",3,"click"],["type","button",1,"shell-user-menu__item"],[1,"shell-user-menu__separator"]],template:function(e,n){e&1&&p(0,Jt,14,6),e&2&&_(n.open()?0:-1)},styles:[".shell-user-menu__backdrop[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:199}.shell-user-menu__overlay[_ngcontent-%COMP%]{position:absolute;top:calc(100% + 6px);right:0;min-width:180px;background:var(--color-bg, #f4f3ef);border:1px solid var(--color-border, rgba(0, 0, 0, .09));border-radius:14px;padding:6px;z-index:200;box-shadow:0 6px 20px #00000017,0 1px 4px #0000000d}.shell-user-menu__overlay--mobile[_ngcontent-%COMP%]{position:absolute;top:calc(100% + 4px);right:16px;left:auto;z-index:300}.shell-user-menu__item[_ngcontent-%COMP%]{width:100%;display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:10px;border:none;background:transparent;cursor:pointer;color:var(--color-text, #1b1916);font:inherit;font-size:.8rem;text-align:left;transition:all .13s}.shell-user-menu__item[_ngcontent-%COMP%]:hover{background:var(--color-surface-hover, rgba(0, 0, 0, .05))}.shell-user-menu__item--active[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--color-primary, #016b71) 12%,transparent);color:var(--color-primary, #016b71)}.shell-user-menu__separator[_ngcontent-%COMP%]{height:1px;background:var(--color-border, rgba(0, 0, 0, .09));margin:4px 6px}"],changeDetection:0})};var Zt=(o,t)=>t.id;function en(o,t){if(o&1&&d(0),o&2){let e=c();F(" ",e.userInitials()," ")}}function tn(o,t){o&1&&d(0," \u2022\u2022\u2022 ")}function nn(o,t){o&1&&(s(0,"span"),d(1,"\u2713"),l())}function on(o,t){if(o&1){let e=S();s(0,"button",19),f("click",function(){let i=h(e).$implicit,a=c(3);return g(a.namespaceSelected.emit(i))}),A(1,"span",14),s(2,"span",20),d(3),l(),p(4,nn,2,0,"span"),l()}if(o&2){let e,n,i=t.$implicit,a=c(3);O("shell-sidebar__ns-item--active",i.id===((e=a.selectedNamespace())==null?null:e.id)),r(3),v(i.name),r(),_(i.id===((n=a.selectedNamespace())==null?null:n.id)?4:-1)}}function an(o,t){if(o&1&&(s(0,"div",17),D(1,on,5,4,"button",18,Zt),l()),o&2){let e=c(2);r(),N(e.namespaces())}}function rn(o,t){if(o&1){let e=S();s(0,"div",9)(1,"button",13),f("click",function(){h(e);let i=c();return g(i.nsMenuToggled.emit())}),A(2,"span",14),s(3,"span",15),d(4),l(),s(5,"span",16),d(6,"\u25BE"),l()(),p(7,an,3,0,"div",17),l()}if(o&2){let e,n=c();r(4),v(((e=n.selectedNamespace())==null?null:e.name)??"Select namespace"),r(3),_(n.nsMenuOpen()?7:-1)}}function sn(o,t){if(o&1&&(s(0,"span",10),d(1),l()),o&2){let e,n=c();r(),v((e=n.selectedNamespace())==null?null:e.name)}}var ye=class o{sidebarWidth=u.required();selectedNamespace=u.required();namespaces=u.required();showNsPicker=u.required();nsMenuOpen=u.required();cases=u.required();activeCaseId=u.required();userInitials=u.required();menuOpen=u.required();isAdmin=u.required();isDark=u.required();showTechnical=u.required();homeClicked=C();namespaceSelected=C();nsMenuToggled=C();nsMenuClosed=C();caseSelected=C();createRequested=C();menuToggled=C();menuClosed=C();navigateTo=C();themeToggled=C();logsToggled=C();static \u0275fac=function(e){return new(e||o)};static \u0275cmp=P({type:o,selectors:[["agentos-shell-sidebar"]],inputs:{sidebarWidth:[1,"sidebarWidth"],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:{homeClicked:"homeClicked",namespaceSelected:"namespaceSelected",nsMenuToggled:"nsMenuToggled",nsMenuClosed:"nsMenuClosed",caseSelected:"caseSelected",createRequested:"createRequested",menuToggled:"menuToggled",menuClosed:"menuClosed",navigateTo:"navigateTo",themeToggled:"themeToggled",logsToggled:"logsToggled"},decls:16,vars:10,consts:[[1,"shell-sidebar"],[1,"shell-sidebar__top"],["type","button","title","Home",1,"shell-sidebar__brand",3,"click"],["src","CODAY-Logo.png","alt","Coday",1,"shell-sidebar__logo-img"],[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__ns-wrap"],[1,"shell-sidebar__ns-label"],[1,"shell-sidebar__ns-picker"],[1,"shell-sidebar__ns-name-static"],[1,"shell-sidebar__cases-scroll"],[3,"caseSelected","createRequested","cases","activeCaseId"],[1,"shell-sidebar__ns-trigger",3,"click"],[1,"shell-sidebar__ns-dot"],[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&&(s(0,"div",0)(1,"div",1)(2,"button",2),f("click",function(){return n.homeClicked.emit()}),A(3,"img",3),l(),s(4,"div",4)(5,"button",5),f("click",function(a){return n.menuToggled.emit(a)}),p(6,en,1,1)(7,tn,1,0),l(),s(8,"agentos-shell-user-menu",6),f("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()()(),s(9,"div",7)(10,"div",8),d(11,"Namespace"),l(),p(12,rn,8,2,"div",9)(13,sn,2,1,"span",10),l(),s(14,"div",11)(15,"agentos-case-drawer",12),f("caseSelected",function(a){return n.caseSelected.emit(a)})("createRequested",function(){return n.createRequested.emit()}),l()()()),e&2&&(me("width",n.sidebarWidth(),"px"),r(6),_(n.userInitials()?6:7),r(2),M("open",n.menuOpen())("isAdmin",n.isAdmin())("isDark",n.isDark())("showTechnical",n.showTechnical()),r(4),_(n.showNsPicker()?12:13),r(3),M("cases",n.cases())("activeCaseId",n.activeCaseId()))},dependencies:[xe,Z],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}.shell-sidebar__top[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 12px 6px;flex-shrink:0}.shell-sidebar__brand[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:8px;border:none;background:transparent;cursor:pointer;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:24px;height:24px;border-radius:6px;object-fit:contain}.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%]{padding:12px 12px 6px;position:relative}.shell-sidebar__ns-label[_ngcontent-%COMP%]{padding:0 2px 7px;font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-tertiary, #5a5449)}.shell-sidebar__ns-picker[_ngcontent-%COMP%]{position:relative}.shell-sidebar__ns-trigger[_ngcontent-%COMP%]{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;border:1px solid var(--color-border, rgba(0, 0, 0, .09));background:var(--color-bg-secondary, #faf9f7);cursor:pointer;color:var(--color-text, #1b1916);transition:all .15s;font:inherit;font-size:.82rem;font-weight:700}.shell-sidebar__ns-trigger[_ngcontent-%COMP%]:hover{border-color:var(--color-border-light, rgba(0, 0, 0, .15))}.shell-sidebar__ns-dot[_ngcontent-%COMP%]{width:10px;height:10px;border-radius:50%;background:var(--color-primary, #5aadb5);flex-shrink:0}.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-bg, #f4f3ef);border:1px solid var(--color-border, rgba(0, 0, 0, .09));border-radius:14px;padding:6px;z-index:100;box-shadow:0 6px 20px #00000017,0 1px 4px #0000000d}.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:10px 12px;font-size:.82rem;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 ln=(o,t)=>t.id;function cn(o,t){o&1&&(s(0,"span"),d(1,"\u2713"),l())}function dn(o,t){if(o&1){let e=S();s(0,"button",13),f("click",function(){let i=h(e).$implicit,a=c(2);return g(a.namespaceSelected.emit(i))}),A(1,"span",14),s(2,"span",15),d(3),l(),p(4,cn,2,0,"span"),l()}if(o&2){let e,n,i=t.$implicit,a=c(2);O("shell-topbar-mobile__ns-item--active",i.id===((e=a.selectedNamespace())==null?null:e.id)),r(3),v(i.name),r(),_(i.id===((n=a.selectedNamespace())==null?null:n.id)?4:-1)}}function mn(o,t){if(o&1){let e=S();s(0,"div",10),f("click",function(i){h(e);let a=c();return g(a.nsMenuClosed.emit(i))})("keyup.escape",function(i){h(e);let a=c();return g(a.nsMenuClosed.emit(i))}),l(),s(1,"div",11),D(2,dn,5,4,"button",12,ln),l()}if(o&2){let e=c();r(2),N(e.namespaces())}}var we=class o{selectedNamespace=u.required();namespaces=u.required();nsMenuOpen=u.required();userInitials=u.required();menuOpen=u.required();isAdmin=u.required();isDark=u.required();showTechnical=u.required();homeClicked=C();namespaceSelected=C();nsMenuToggled=C();nsMenuClosed=C();menuToggled=C();menuClosed=C();navigateTo=C();themeToggled=C();logsToggled=C();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:15,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__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&&(s(0,"div",0)(1,"button",1),f("click",function(){return n.homeClicked.emit()}),A(2,"img",2),l(),s(3,"span",3),d(4,"/"),l(),s(5,"div",4)(6,"button",5),f("click",function(a){return n.nsMenuToggled.emit(a)}),d(7),s(8,"span",6),d(9,"\u25BE"),l()(),p(10,mn,4,0),l()(),s(11,"div",7)(12,"div",8),f("click",function(a){return n.menuToggled.emit(a)})("keyup.enter",function(){return n.menuToggled.emit(void 0)}),d(13),l(),s(14,"agentos-shell-user-menu",9),f("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;r(7),F(" ",((i=n.selectedNamespace())==null?null:i.name)??""," "),r(3),_(n.nsMenuOpen()?10:-1),r(3),F(" ",n.userInitials()||"\xB7\xB7\xB7"," "),r(),M("open",n.menuOpen())("isAdmin",n.isAdmin())("isDark",n.isDark())("showTechnical",n.showTechnical())}},dependencies:[Z],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%]{width:20px;height:20px;border-radius:6px;object-fit:contain}.shell-topbar-mobile__sep[_ngcontent-%COMP%]{color:#00000040;font:400 12px Inter,sans-serif;flex:none}.shell-topbar-mobile__ns-wrap[_ngcontent-%COMP%]{position:static;min-width:0}.shell-topbar-mobile__ns-btn[_ngcontent-%COMP%]{font:600 12.5px Inter,sans-serif;color:var(--color-text, #161616);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:#00000059;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%]{position:fixed;top:44px;left:16px;min-width:180px;background:var(--color-bg, #f4f3ef);border:1px solid var(--color-border, rgba(0, 0, 0, .09));border-radius:14px;padding:6px;z-index:300;box-shadow:0 6px 20px #00000017,0 1px 4px #0000000d}.shell-topbar-mobile__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-topbar-mobile__ns-item[_ngcontent-%COMP%]:hover{background:var(--color-surface-hover, rgba(0, 0, 0, .05))}.shell-topbar-mobile__ns-item--active[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--color-primary, #016b71) 12%,transparent);color:var(--color-primary, #016b71)}.shell-topbar-mobile__ns-dot[_ngcontent-%COMP%]{width:10px;height:10px;background:var(--color-primary, #5aadb5);flex-shrink:0;border-radius:50%}.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:#dfedff;background:oklch(94% .03 255deg);border:1px solid oklch(82% .06 255deg);color:#2a5fc9;display:flex;align-items:center;justify-content:center;font:600 10px Inter,sans-serif;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 pn=(o,t)=>t.id;function _n(o,t){if(o&1){let e=S();T(0,"div",9),V("click",function(){let i=h(e).$implicit,a=c(2);return g(a.caseSelected.emit(i.id??""))})("keyup.enter",function(){let i=h(e).$implicit,a=c(2);return g(a.caseSelected.emit(i.id??""))}),K(1,"span",1),T(2,"span",2),d(3),k(),T(4,"span",3),d(5),k()()}if(o&2){let e=t.$implicit,n=c(2);r(),Te("shell-case-switcher__dot--"+n.deriveMobileStatus(e.status)),r(2),v(e.title??e.id),r(2),v(e.status.toLowerCase())}}function un(o,t){if(o&1){let e=S();T(0,"div",5)(1,"div",6),V("click",function(){h(e);let i=c();return g(i.createRequested.emit())})("keyup.enter",function(){h(e);let i=c();return g(i.createRequested.emit())}),T(2,"span",7),d(3,"+"),k(),T(4,"span",2),d(5,"New case"),k()(),D(6,_n,6,4,"div",8,pn),k()}if(o&2){let e=c();r(6),N(e.otherCases())}}var Se=class o{cases=u.required();activeCaseId=u.required();open=u.required();activeCase=E(()=>{let t=this.activeCaseId();return t?this.cases().find(e=>e.id===t)??null:null});activeCaseTitle=E(()=>this.activeCase()?.title??this.activeCaseId()??"New case");activeCaseStatus=E(()=>this.deriveMobileStatus(this.activeCase()?.status));activeCaseStatusLabel=E(()=>this.activeCase()?.status?.toLowerCase()??"");otherCases=E(()=>this.cases().filter(t=>t.id!==this.activeCaseId()));caseSelected=C();createRequested=C();toggled=C();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&&(T(0,"div",0),V("click",function(){return n.toggled.emit()})("keyup.enter",function(){return n.toggled.emit()}),K(1,"span",1),T(2,"span",2),d(3),k(),T(4,"span",3),d(5),k(),T(6,"span",4),d(7,"\u2304"),k()(),p(8,un,8,0,"div",5)),e&2&&(r(),Te("shell-case-switcher__dot--"+n.activeCaseStatus()),r(2),v(n.activeCaseTitle()),r(2),v(n.activeCaseStatusLabel()),r(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:#00000005}.shell-case-switcher__title[_ngcontent-%COMP%]{font:600 12.5px Inter,sans-serif;color:var(--color-text, #161616);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.shell-case-switcher__status[_ngcontent-%COMP%]{font:400 11px Inter,sans-serif;color:#0006;flex:none}.shell-case-switcher__chevron[_ngcontent-%COMP%]{color:#00000059;font-size:9px;flex:none}.shell-case-switcher__list[_ngcontent-%COMP%]{display:flex;flex-direction:column;border-top:1px solid rgba(0,0,0,.06);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:#000000b3}.shell-case-switcher__item[_ngcontent-%COMP%]:hover{background:#00000008}.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:#2a9d4a}.shell-case-switcher__dot--idle[_ngcontent-%COMP%]{background:#0003}.shell-case-switcher__dot--killed[_ngcontent-%COMP%], .shell-case-switcher__dot--error[_ngcontent-%COMP%]{background:#dc2614}@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 hn(o,t){if(o&1&&A(0,"agentos-case-chat",6),o&2){let e=c();M("showTechnicalOverride",e.showTechnical())}}function gn(o,t){o&1&&A(0,"agentos-case-home")}var Je=class o{router=x(_e);route=x(X);caseController=x(he);namespaceController=x(Ue);themePort=x(Ye);userState=x(Ge);isAdmin=E(()=>this.userState.currentUser()?.isAdmin===!0);userInitials=E(()=>{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=E(()=>{let t=this.themePort.theme();return t==="dark"?!0:t==="light"?!1:typeof document<"u"&&document.documentElement.hasAttribute("data-theme")});sidebarWidth=y(300);menuOpen=y(!1);nsMenuOpen=y(!1);mobileSwitcherOpen=y(!1);showTechnical=y(!1);showNsPicker=E(()=>this.isAdmin()||this.namespaces().length>1);namespaceId$=this.route.queryParams.pipe(H(t=>t.ns??null));_namespaceIdRaw=te(this.namespaceId$);namespaceId=E(()=>this._namespaceIdRaw()??null);_activeCaseIdRaw=te(this.route.queryParams.pipe(H(t=>t.case??null)));activeCaseId=E(()=>this._activeCaseIdRaw()??null);refresh$=new Pe(void 0);cases$=this.namespaceId$.pipe(U(t=>t?this.refresh$.pipe(U(()=>this.caseController.listByParentCase(t))):[[]]));cases=te(this.cases$,{initialValue:[]});namespaces=te(this.namespaceController.listAllNamespace(),{initialValue:[]});selectedNamespace=y(null);constructor(){G(()=>{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"])}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,b=Math.max(200,Math.min(500,n+m));this.sidebarWidth.set(b)},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:8,vars:24,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,"homeClicked","namespaceSelected","nsMenuToggled","nsMenuClosed","caseSelected","createRequested","menuToggled","menuClosed","navigateTo","themeToggled","logsToggled","sidebarWidth","selectedNamespace","namespaces","showNsPicker","nsMenuOpen","cases","activeCaseId","userInitials","menuOpen","isAdmin","isDark","showTechnical"],["role","separator","tabindex","-1","aria-label","Resize sidebar",1,"case-shell__resize-handle",3,"mousedown"],[1,"case-shell__main"],[3,"showTechnicalOverride"]],template:function(e,n){e&1&&(s(0,"div",0)(1,"agentos-shell-topbar-mobile",1),f("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(),s(2,"agentos-shell-case-switcher-mobile",2),f("caseSelected",function(a){return n.onMobileCaseSelect(a)})("createRequested",function(){return n.onMobileCreateCase()})("toggled",function(){return n.toggleMobileSwitcher()}),l(),s(3,"agentos-shell-sidebar",3),f("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(),s(4,"div",4),f("mousedown",function(a){return n.onResizeStart(a)}),l(),s(5,"main",5),p(6,hn,1,1,"agentos-case-chat",6)(7,gn,1,0,"agentos-case-home"),l()()),e&2&&(r(),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()),r(),M("cases",n.cases())("activeCaseId",n.activeCaseId())("open",n.mobileSwitcherOpen()),r(),M("sidebarWidth",n.sidebarWidth())("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()),r(3),_(n.activeCaseId()?6:7))},dependencies:[fe,ve,ye,we,Se],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}}"],changeDetection:0})};export{fe as a,ve as b,xe as c,Je as d};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as L}from"./chunk-22RX22JY.js";import{a as D}from"./chunk-BMUZTI7K.js";import"./chunk-G2BRVRGR.js";import{a as E,c as $}from"./chunk-7MQRVE7E.js";import{t as O}from"./chunk-BGEXT3EN.js";import"./chunk-PKBNMAQJ.js";import"./chunk-OBV4LQBZ.js";import{a as l}from"./chunk-IRZNRZ5Q.js";import"./chunk-FAM7HWYV.js";import"./chunk-WLSXA23B.js";import"./chunk-E3XC4CVU.js";import{Bb as x,D as y,Db as m,Fb as a,Ic as T,Pb as N,S as P,Tb as w,Wa as b,ab as v,bc as M,ca as p,ec as B,fc as S,ga as g,ha as h,i as d,ic as k,lb as I,m as u,ma as C,mb as R,rb as s,sb as i,t as f,tb as c,z as _}from"./chunk-5J7BTB5J.js";var F=()=>[];function U(r,t){if(r&1){let o=x();i(0,"agentos-prompt-item",4),m("deleteRequested",function(n){g(o);let A=a(2);return h(A.deletePrompt(n))}),c()}if(r&2){let o=a().$implicit,e=a();s("prompt",t)("namespaceId",e.namespaceId)("readOnly",e.isPlatformPrompt(o.id))}}function V(r,t){if(r&1&&I(0,U,1,3,"agentos-prompt-item",3),r&2){let o,e=t.$implicit,n=a();R((o=n.resolvePrompt(e.id))?0:-1,o)}}var j="platform",G="namespace",q=class r{route=p(E);router=p($);destroyRef=p(C);promptState=p(D);namespaceId=this.route.snapshot.params.namespaceId;refresh$=new d(void 0);allPrompts$=this.refresh$.pipe(P(()=>_({platform:this.promptState.listPlatform().pipe(y(()=>u([]))),namespace:this.promptState.listByNamespace(this.namespaceId)})));promptItems$=this.allPrompts$.pipe(f(({platform:t,namespace:o})=>[...t.map(e=>({id:e.id??"",name:e.name,description:e.description,groupKey:j,groupLabel:"Platform (read-only)"})),...o.map(e=>({id:e.id??"",name:e.name,description:e.description,groupKey:G,groupLabel:"Namespace"}))]));namespacePromptsById=new Map;platformPromptsById=new Map;constructor(){this.allPrompts$.pipe(l(this.destroyRef)).subscribe(({platform:t,namespace:o})=>{this.platformPromptsById=new Map(t.map(e=>[e.id??"",e])),this.namespacePromptsById=new Map(o.map(e=>[e.id??"",e]))})}goBack(){this.router.navigate(["/agentos","namespaces"])}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId,"prompts","new"])}deletePrompt(t){this.promptState.delete(t.id??"").pipe(l(this.destroyRef)).subscribe(()=>this.refresh$.next())}resolvePrompt(t){return this.platformPromptsById.get(t)??this.namespacePromptsById.get(t)??null}isPlatformPrompt(t){return this.platformPromptsById.has(t)}static \u0275fac=function(o){return new(o||r)};static \u0275cmp=b({type:r,selectors:[["agentos-namespace-prompts"]],decls:6,vars:6,consts:[["promptItemTpl",""],["title","Prompts","emptyMessage","No prompts defined yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","type","button",1,"namespace-prompts__back",3,"click"],[3,"prompt","namespaceId","readOnly"],[3,"deleteRequested","prompt","namespaceId","readOnly"]],template:function(o,e){if(o&1&&(i(0,"ds-entity-list",1),B(1,"async"),m("createRequested",function(){return e.openCreateForm()}),i(2,"button",2),m("click",function(){return e.goBack()}),w(3,"\u2190 Namespaces"),c()(),v(4,V,1,1,"ng-template",null,0,k)),o&2){let n=N(5);s("items",S(1,3,e.promptItems$)??M(5,F))("showCreate",!0)("itemTemplate",n)}},dependencies:[O,L,T],styles:[".namespace-prompts__back[_ngcontent-%COMP%]{background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-primary, #007aff);font-family:inherit}.namespace-prompts__back[_ngcontent-%COMP%]:hover{text-decoration:underline}"],changeDetection:0})};export{q as NamespacePromptsComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as A}from"./chunk-
|
|
1
|
+
import{a as A}from"./chunk-VIDPCJ3F.js";import{j as H}from"./chunk-G2BRVRGR.js";import{b as E,c as T}from"./chunk-7MQRVE7E.js";import{a as I}from"./chunk-IRZNRZ5Q.js";import{Bb as M,Db as _,Fb as h,Ka as a,Rb as S,Tb as u,Ub as w,Wa as c,ca as l,ga as y,ha as C,lb as m,lc as D,ma as v,mb as p,rb as k,sb as r,ta as x,tb as i,ub as d,vb as P,wb as O,xb as g}from"./chunk-5J7BTB5J.js";function j(e,n){e&1&&g(0,"span",1)}function z(e,n){e&1&&g(0,"span",2)}function F(e,n){e&1&&g(0,"span",3)}var f=class e{pluginService=l(H);online=x(null);ngOnInit(){this.pluginService.getAllPlugins().subscribe({next:()=>this.online.set(!0),error:()=>this.online.set(!1)})}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=c({type:e,selectors:[["agentos-backend-status"]],decls:4,vars:1,consts:[[1,"backend-status"],["title","AgentOS online",1,"dot","dot--online"],["title","AgentOS offline",1,"dot","dot--offline"],["title","Checking\u2026",1,"dot","dot--checking"]],template:function(t,o){if(t&1&&(P(0,"div",0),m(1,j,1,0,"span",1)(2,z,1,0,"span",2)(3,F,1,0,"span",3),O()),t&2){let s;a(),p((s=o.online())===!0?1:s===!1?2:3)}},styles:[".backend-status[_ngcontent-%COMP%]{display:flex;align-items:center}.dot[_ngcontent-%COMP%]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dot--online[_ngcontent-%COMP%]{background:var(--color-success, #34c759)}.dot--offline[_ngcontent-%COMP%]{background:var(--color-error, #ff3b30)}.dot--checking[_ngcontent-%COMP%]{background:var(--color-text-secondary, #6e6e73);opacity:.5;animation:_ngcontent-%COMP%_pulse 1.2s ease-in-out infinite}@keyframes _ngcontent-%COMP%_pulse{0%,to{opacity:.5}50%{opacity:1}}"]})};function R(e,n){if(e&1){let t=M();r(0,"button",9),_("click",function(){y(t);let s=h();return C(s.navigateToAdmin())}),r(1,"span",10),u(2,"\u2699\uFE0F"),i()()}}function L(e,n){if(e&1&&(r(0,"span",7),u(1),i()),e&2){let t=h();a(),w(t.userInitials)}}function V(e,n){e&1&&(r(0,"span",8),u(1,"\u25EF"),i())}var b=class e{router=l(T);userState=l(A);destroyRef=l(v);currentUser=this.userState.currentUser;navigateHome(){this.router.navigate(["/agentos/home"])}isAdmin=D(()=>this.userState.currentUser()?.isAdmin===!0);navigateToAdmin(){this.router.navigate(["/agentos/admin"])}ngOnInit(){this.currentUser()||this.userState.loadMe().pipe(I(this.destroyRef)).subscribe()}get userInitials(){let n=this.currentUser();if(!n)return"";let t=n.firstname?.[0]??"",o=n.lastname?.[0]??"";return(t+o).toUpperCase()||n.email?.[0]?.toUpperCase()||"?"}get isOnProfilePage(){return this.router.url.startsWith("/agentos/me")}toggleProfile(){this.isOnProfilePage?window.history.length>1?window.history.back():this.router.navigate(["/agentos"]):this.router.navigate(["/agentos/me"])}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=c({type:e,selectors:[["agentos-header"]],decls:11,vars:5,consts:[[1,"header"],["type","button","title","Home",1,"header__brand",3,"click"],["src","CODAY-Logo.png","alt","Coday",1,"header__logo-img"],[1,"header__logo-text"],[1,"header__nav"],["type","button","title","Admin",1,"header__admin-btn"],["type","button",1,"header__user-btn",3,"click","title"],[1,"header__user-initials"],[1,"header__user-icon"],["type","button","title","Admin",1,"header__admin-btn",3,"click"],[1,"header__admin-icon"]],template:function(t,o){t&1&&(r(0,"header",0)(1,"button",1),_("click",function(){return o.navigateHome()}),d(2,"img",2),r(3,"span",3),u(4,"Coday"),i()(),r(5,"nav",4),d(6,"agentos-backend-status"),m(7,R,3,0,"button",5),r(8,"button",6),_("click",function(){return o.toggleProfile()}),m(9,L,2,1,"span",7)(10,V,2,0,"span",8),i()()()),t&2&&(a(7),p(o.isAdmin()?7:-1),a(),S("header__user-btn--active",o.isOnProfilePage),k("title",o.isOnProfilePage?"Back":"My profile"),a(),p(o.userInitials?9:10))},dependencies:[f],styles:[".header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;height:56px;background:var(--glass-bg, rgba(255, 255, 255, .72));border-bottom:1px solid var(--glass-border, rgba(255, 255, 255, .18));backdrop-filter:var(--glass-backdrop-blur, blur(20px));-webkit-backdrop-filter:var(--glass-backdrop-blur, blur(20px));position:sticky;top:0;z-index:100}.header__brand[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;background:none;border:none;padding:0;cursor:pointer;border-radius:6px;transition:opacity .15s ease}.header__brand[_ngcontent-%COMP%]:hover{opacity:.7}.header__logo-img[_ngcontent-%COMP%]{width:24px;height:24px;object-fit:contain}.header__logo-text[_ngcontent-%COMP%]{font-size:1rem;font-weight:600;letter-spacing:-.02em;color:var(--color-text, #1d1d1f)}.header__nav[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem}.header__admin-btn[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:1.5px solid var(--color-border, rgba(0, 0, 0, .1));background:var(--color-bg-secondary, rgba(0, 0, 0, .04));cursor:pointer;transition:background .15s ease,border-color .15s ease;padding:0;font-family:inherit;font-size:1rem;line-height:1}.header__admin-btn[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .08));border-color:var(--color-primary, #007aff)}.header__admin-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.header__user-btn[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:1.5px solid var(--color-border, rgba(0, 0, 0, .1));background:var(--color-bg-secondary, rgba(0, 0, 0, .04));cursor:pointer;transition:background .15s ease,border-color .15s ease;padding:0;font-family:inherit}.header__user-btn[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .08));border-color:var(--color-primary, #007aff)}.header__user-btn--active[_ngcontent-%COMP%]{background:var(--color-primary, #007aff);border-color:var(--color-primary, #007aff)}.header__user-btn--active[_ngcontent-%COMP%] .header__user-initials[_ngcontent-%COMP%], .header__user-btn--active[_ngcontent-%COMP%] .header__user-icon[_ngcontent-%COMP%]{color:#fff}.header__user-initials[_ngcontent-%COMP%]{font-size:.75rem;font-weight:600;color:var(--color-text, #1d1d1f);line-height:1;letter-spacing:.02em}.header__user-icon[_ngcontent-%COMP%]{font-size:1rem;color:var(--color-text-secondary, #6e6e73);line-height:1}"]})};var N=class e{static \u0275fac=function(t){return new(t||e)};static \u0275cmp=c({type:e,selectors:[["agentos-layout"]],decls:4,vars:0,consts:[[1,"layout"],[1,"layout__content"]],template:function(t,o){t&1&&(r(0,"div",0),d(1,"agentos-header"),r(2,"main",1),d(3,"router-outlet"),i()())},dependencies:[E,b],styles:[".layout[_ngcontent-%COMP%]{display:flex;flex-direction:column;min-height:100vh}.layout__content[_ngcontent-%COMP%]{flex:1;overflow-y:auto}"]})};export{f as a,b,N as c};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as $}from"./chunk-
|
|
1
|
+
import{a as $}from"./chunk-5OPQ2IC6.js";import{d as D}from"./chunk-G2BRVRGR.js";import{c as q}from"./chunk-7MQRVE7E.js";import{t as M}from"./chunk-BGEXT3EN.js";import"./chunk-PKBNMAQJ.js";import"./chunk-OBV4LQBZ.js";import{a as f}from"./chunk-IRZNRZ5Q.js";import"./chunk-FAM7HWYV.js";import"./chunk-WLSXA23B.js";import"./chunk-E3XC4CVU.js";import{Bb as b,Db as s,Fb as d,Ic as B,Pb as w,S as P,Tb as R,Wa as g,ab as C,bc as x,ca as n,ec as I,fc as T,ga as m,ha as l,i as _,ic as k,lb as h,ma as y,mb as A,rb as c,sb as a,t as u,tb as v}from"./chunk-5J7BTB5J.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(y);aiProviderController=n(D);refresh$=new _(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(f(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(f(this.destroyRef)).subscribe(()=>this.refresh$.next())}resolveProvider(e){return this.providersById.get(e)??null}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=g({type:r,selectors:[["agentos-platform-ai-providers"]],decls:6,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","","type","button",1,"platform-ai-providers__back",3,"click"],["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,"button",2),s("click",function(){return o.goBack()}),R(3,"\u2190 Admin"),v()(),C(4,F,1,1,"ng-template",null,0,k)),t&2){let i=w(5);c("items",T(1,3,o.providerItems$)??x(5,S))("showCreate",!0)("itemTemplate",i)}},dependencies:[M,$,B],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};
|