@whoz-oss/coday-client 0.226.0 → 0.227.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/browser/{chunk-IFCMGNTL.js → chunk-2EC3VX77.js} +1 -1
  2. package/browser/{chunk-OWANJEQU.js → chunk-2OC3IQX4.js} +1 -1
  3. package/browser/chunk-3B27XA6H.js +1 -0
  4. package/browser/{chunk-6WGVBQKC.js → chunk-3FIVKNVQ.js} +1 -1
  5. package/browser/{chunk-3MIJJDXL.js → chunk-3QNGI2KL.js} +1 -1
  6. package/browser/chunk-4224C2BE.js +1 -0
  7. package/browser/{chunk-QV6OOSC2.js → chunk-44OQZAMB.js} +1 -1
  8. package/browser/chunk-4NGK3AH3.js +1 -0
  9. package/browser/{chunk-CCWYFJZD.js → chunk-5KM666YK.js} +1 -1
  10. package/browser/chunk-5NIQZOIU.js +1 -0
  11. package/browser/{chunk-WTSDGIW6.js → chunk-5RGU7B74.js} +1 -1
  12. package/browser/chunk-6LNXGAHM.js +1 -0
  13. package/browser/{chunk-YHKKJQPZ.js → chunk-7BBT4E5E.js} +1 -1
  14. package/browser/chunk-7DZ6K6CC.js +6 -0
  15. package/browser/{chunk-MLVWHS7Q.js → chunk-7N4XUYW4.js} +1 -1
  16. package/browser/{chunk-6BVQYZZJ.js → chunk-AKTPF6RS.js} +1 -1
  17. package/browser/{chunk-V7G5TYBH.js → chunk-AVN3J4SW.js} +1 -1
  18. package/browser/{chunk-WGIDIO7O.js → chunk-BHI42QOO.js} +1 -1
  19. package/browser/{chunk-M2ZQ6RPO.js → chunk-BPTQDERH.js} +1 -1
  20. package/browser/{chunk-N347WQAU.js → chunk-C2J4TQ7V.js} +6 -6
  21. package/browser/chunk-CLXIHGI5.js +1 -0
  22. package/browser/{chunk-Y3VADJFG.js → chunk-CPIJPSK3.js} +1 -1
  23. package/browser/{chunk-7WF5A3H7.js → chunk-DEI4EULW.js} +1 -1
  24. package/browser/{chunk-KT6YZNOC.js → chunk-DXS7ET5V.js} +1 -1
  25. package/browser/chunk-DXSUJXKW.js +1 -0
  26. package/browser/{chunk-WEFHBDOC.js → chunk-E2PTKMR3.js} +1 -1
  27. package/browser/chunk-EBGVWTDP.js +1 -0
  28. package/browser/chunk-ETVJIECM.js +1 -0
  29. package/browser/{chunk-O2RHZQBE.js → chunk-FW4JCZNG.js} +1 -1
  30. package/browser/{chunk-T2HMC47U.js → chunk-GH2VWCFB.js} +1 -1
  31. package/browser/{chunk-BLH76GUG.js → chunk-HJCJ2A5U.js} +1 -1
  32. package/browser/{chunk-J4RCBELS.js → chunk-JC3UT7FL.js} +1 -1
  33. package/browser/{chunk-VDQ7VRBP.js → chunk-JW4JKLFN.js} +1 -1
  34. package/browser/{chunk-GXBIFFTK.js → chunk-KRRTNACV.js} +1 -1
  35. package/browser/chunk-L7EWDR3X.js +1 -0
  36. package/browser/{chunk-CC2JFA5X.js → chunk-LTFSHOKE.js} +1 -1
  37. package/browser/chunk-MDC6KYTF.js +1 -0
  38. package/browser/chunk-MGVK4WNW.js +1 -0
  39. package/browser/{chunk-S4UXUKNG.js → chunk-MQ6C2B4Z.js} +1 -1
  40. package/browser/{chunk-VFKWKYIG.js → chunk-MTXOV52Z.js} +1 -1
  41. package/browser/{chunk-IAB4GU4A.js → chunk-MZIRWGY7.js} +1 -1
  42. package/browser/{chunk-WIVM4HFF.js → chunk-NA5F32JD.js} +1 -1
  43. package/browser/chunk-NOMEOUXJ.js +1 -0
  44. package/browser/{chunk-NCQPF2YO.js → chunk-O77FDCNG.js} +1 -1
  45. package/browser/{chunk-C7Y56WDM.js → chunk-OK4EJOSI.js} +1 -1
  46. package/browser/{chunk-3SKJ5SNK.js → chunk-PFBYB2QD.js} +1 -1
  47. package/browser/{chunk-QINOZGE3.js → chunk-PTXZUITK.js} +1 -1
  48. package/browser/chunk-PW6KVUDR.js +1 -0
  49. package/browser/{chunk-MEZUHBEH.js → chunk-QDN2FP73.js} +1 -1
  50. package/browser/{chunk-KGJBI3SN.js → chunk-QUHNQ4OB.js} +1 -1
  51. package/browser/{chunk-26FFFP6M.js → chunk-RFBE4F6Q.js} +1 -1
  52. package/browser/chunk-RK2UBI5O.js +1 -0
  53. package/browser/{chunk-KRZMF2CT.js → chunk-SW3MVXR5.js} +1 -1
  54. package/browser/{chunk-6JGMDWHO.js → chunk-SWOMF3ZR.js} +1 -1
  55. package/browser/{chunk-CG7JPH7I.js → chunk-TBYJS5N4.js} +1 -1
  56. package/browser/{chunk-73TUA3JE.js → chunk-TGJ3LPLG.js} +1 -1
  57. package/browser/{chunk-245FSNUP.js → chunk-TML7WQTK.js} +1 -1
  58. package/browser/{chunk-3CMKQDJD.js → chunk-UBMWSFAZ.js} +1 -1
  59. package/browser/{chunk-O6KL6T76.js → chunk-UHZ4KKE5.js} +1 -1
  60. package/browser/{chunk-SC2IRNRE.js → chunk-UK3RUU4S.js} +1 -1
  61. package/browser/chunk-UR4PDGNP.js +6 -0
  62. package/browser/{chunk-2HCJBDRI.js → chunk-VO5LQION.js} +1 -1
  63. package/browser/{chunk-Q3ITJ7SM.js → chunk-W3ORO7W5.js} +1 -1
  64. package/browser/{chunk-KYYUJJ6W.js → chunk-WFLBQLIR.js} +1 -1
  65. package/browser/{chunk-IFHVRSTC.js → chunk-XPBP7UEM.js} +1 -1
  66. package/browser/chunk-XPCRFTEI.js +1 -0
  67. package/browser/{chunk-BCOH5IGB.js → chunk-ZAMAK546.js} +1 -1
  68. package/browser/{chunk-S2DDRVZC.js → chunk-ZHT32KNQ.js} +1 -1
  69. package/browser/index.html +13 -3
  70. package/browser/{main-TMN4EWBV.js → main-6VAJ4HYC.js} +1 -1
  71. package/browser/styles-2FWMUG56.css +1 -0
  72. package/package.json +1 -1
  73. package/browser/chunk-3OWOEY5M.js +0 -1
  74. package/browser/chunk-3XRWFLI7.js +0 -6
  75. package/browser/chunk-56ZJETOZ.js +0 -6
  76. package/browser/chunk-DLM7MUO5.js +0 -1
  77. package/browser/chunk-JQYJDI3L.js +0 -1
  78. package/browser/chunk-LPJG7HDA.js +0 -1
  79. package/browser/chunk-NEIKVLFC.js +0 -1
  80. package/browser/chunk-PMBWUQPI.js +0 -1
  81. package/browser/chunk-QCPXHP56.js +0 -1
  82. package/browser/chunk-QHD6RKEP.js +0 -1
  83. package/browser/chunk-QS5AU6X7.js +0 -1
  84. package/browser/chunk-QV2MVWJJ.js +0 -1
  85. package/browser/chunk-SFK3JOTF.js +0 -1
  86. package/browser/chunk-VURHEL5U.js +0 -1
  87. package/browser/chunk-WLBH76W3.js +0 -1
  88. package/browser/chunk-XEXRIFJE.js +0 -1
  89. package/browser/chunk-XTHD557L.js +0 -1
  90. package/browser/chunk-ZD5EXS3I.js +0 -1
  91. package/browser/styles-UY3RDTVV.css +0 -1
@@ -1,6 +0,0 @@
1
- import{c as be,d as N,e as _e,f as Te,g as we,h as Oe,i as Pe,j as xe,k as ke,l as Ve,m as Ie,n as Ne,o as je,p as We,q as U,r as Re,s as Ae,u as De,v as Fe,w as Le,x as Be,y as ze,z as Ue}from"./chunk-3SKJ5SNK.js";import{a as $e}from"./chunk-WUU4G5YQ.js";import{a as pe,b as ge,e as me,f as he,g as ue}from"./chunk-OX7PDXEA.js";import{a as j}from"./chunk-Q2M4W42M.js";import{E as D,c as W,g as R,m as A,p as Se,q as Ce,x as ye,y as Ee,z as Me}from"./chunk-DDWYQORF.js";import{E as le,J as de,O as ve,Q as fe}from"./chunk-B46LXCLF.js";import{$b as h,Ab as x,Db as d,Fb as k,Jb as X,Jc as se,Ka as c,Kb as ee,Lb as te,Oc as ce,Pb as ne,Qb as V,Rb as ie,Sb as oe,T as p,Tb as s,V as J,Vb as y,Wa as E,Wb as re,Xa as Q,Z as P,Zb as g,_ as Y,_b as m,aa as K,ab as Z,ca as v,d as S,h as C,i as b,ia as B,ja as q,jb as M,jc as ae,lb as T,mb as w,pb as $,qb as z,rb as u,sb as a,tb as r,ub as f,ya as G,yc as I}from"./chunk-KJ5SIUGY.js";var qe=["determinateSpinner"];function Ge(l,e){if(l&1&&(B(),a(0,"svg",11),f(1,"circle",12),r()),l&2){let n=k();M("viewBox",n._viewBox()),c(),V("stroke-dasharray",n._strokeCircumference(),"px")("stroke-dashoffset",n._strokeCircumference()/2,"px")("stroke-width",n._circleStrokeWidth(),"%"),M("r",n._circleRadius())}}var Qe=new K("mat-progress-spinner-default-options",{providedIn:"root",factory:()=>({diameter:He})}),He=100,Ze=10,St=(()=>{class l{_elementRef=v(G);_noopAnimations;get color(){return this._color||this._defaultColor}set color(n){this._color=n}_color;_defaultColor="primary";_determinateCircle;constructor(){let n=v(Qe),t=de(),i=this._elementRef.nativeElement;this._noopAnimations=t==="di-disabled"&&!!n&&!n._forceAnimations,this.mode=i.nodeName.toLowerCase()==="mat-spinner"?"indeterminate":"determinate",!this._noopAnimations&&t==="reduced-motion"&&i.classList.add("mat-progress-spinner-reduced-motion"),n&&(n.color&&(this.color=this._defaultColor=n.color),n.diameter&&(this.diameter=n.diameter),n.strokeWidth&&(this.strokeWidth=n.strokeWidth))}mode;get value(){return this.mode==="determinate"?this._value:0}set value(n){this._value=Math.max(0,Math.min(100,n||0))}_value=0;get diameter(){return this._diameter}set diameter(n){this._diameter=n||0}_diameter=He;get strokeWidth(){return this._strokeWidth??this.diameter/10}set strokeWidth(n){this._strokeWidth=n||0}_strokeWidth;_circleRadius(){return(this.diameter-Ze)/2}_viewBox(){let n=this._circleRadius()*2+this.strokeWidth;return`0 0 ${n} ${n}`}_strokeCircumference(){return 2*Math.PI*this._circleRadius()}_strokeDashOffset(){return this.mode==="determinate"?this._strokeCircumference()*(100-this._value)/100:null}_circleStrokeWidth(){return this.strokeWidth/this.diameter*100}static \u0275fac=function(t){return new(t||l)};static \u0275cmp=E({type:l,selectors:[["mat-progress-spinner"],["mat-spinner"]],viewQuery:function(t,i){if(t&1&&X(qe,5),t&2){let o;ee(o=te())&&(i._determinateCircle=o.first)}},hostAttrs:["role","progressbar","tabindex","-1",1,"mat-mdc-progress-spinner","mdc-circular-progress"],hostVars:18,hostBindings:function(t,i){t&2&&(M("aria-valuemin",0)("aria-valuemax",100)("aria-valuenow",i.mode==="determinate"?i.value:null)("mode",i.mode),oe("mat-"+i.color),V("width",i.diameter,"px")("height",i.diameter,"px")("--mat-progress-spinner-size",i.diameter+"px")("--mat-progress-spinner-active-indicator-width",i.diameter+"px"),ie("_mat-animation-noopable",i._noopAnimations)("mdc-circular-progress--indeterminate",i.mode==="indeterminate"))},inputs:{color:"color",mode:"mode",value:[2,"value","value",I],diameter:[2,"diameter","diameter",I],strokeWidth:[2,"strokeWidth","strokeWidth",I]},exportAs:["matProgressSpinner"],decls:14,vars:11,consts:[["circle",""],["determinateSpinner",""],["aria-hidden","true",1,"mdc-circular-progress__determinate-container"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__determinate-circle-graphic"],["cx","50%","cy","50%",1,"mdc-circular-progress__determinate-circle"],["aria-hidden","true",1,"mdc-circular-progress__indeterminate-container"],[1,"mdc-circular-progress__spinner-layer"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-left"],[3,"ngTemplateOutlet"],[1,"mdc-circular-progress__gap-patch"],[1,"mdc-circular-progress__circle-clipper","mdc-circular-progress__circle-right"],["xmlns","http://www.w3.org/2000/svg","focusable","false",1,"mdc-circular-progress__indeterminate-circle-graphic"],["cx","50%","cy","50%"]],template:function(t,i){if(t&1&&(Z(0,Ge,2,8,"ng-template",null,0,ae),a(2,"div",2,1),B(),a(4,"svg",3),f(5,"circle",4),r()(),q(),a(6,"div",5)(7,"div",6)(8,"div",7),x(9,8),r(),a(10,"div",9),x(11,8),r(),a(12,"div",10),x(13,8),r()()()),t&2){let o=ne(1);c(4),M("viewBox",i._viewBox()),c(),V("stroke-dasharray",i._strokeCircumference(),"px")("stroke-dashoffset",i._strokeDashOffset(),"px")("stroke-width",i._circleStrokeWidth(),"%"),M("r",i._circleRadius()),c(4),u("ngTemplateOutlet",o),c(2),u("ngTemplateOutlet",o),c(2),u("ngTemplateOutlet",o)}},dependencies:[se],styles:[`.mat-mdc-progress-spinner{--mat-progress-spinner-animation-multiplier: 1;display:block;overflow:hidden;line-height:0;position:relative;direction:ltr;transition:opacity 250ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-progress-spinner circle{stroke-width:var(--mat-progress-spinner-active-indicator-width, 4px)}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}}.mat-progress-spinner-reduced-motion{--mat-progress-spinner-animation-multiplier: 1.25}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1;animation:mdc-circular-progress-container-rotate calc(1568.2352941176ms*var(--mat-progress-spinner-animation-multiplier)) linear infinite}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mat-progress-spinner-active-indicator-color, var(--mat-sys-primary))}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin calc(1333ms*var(--mat-progress-spinner-animation-multiplier)) cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin calc(1333ms*var(--mat-progress-spinner-animation-multiplier)) cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate calc(5332ms*var(--mat-progress-spinner-animation-multiplier)) cubic-bezier(0.4, 0, 0.2, 1) infinite both}@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}
2
- `],encapsulation:2,changeDetection:0})}return l})();var Ct=(()=>{class l{static \u0275fac=function(t){return new(t||l)};static \u0275mod=Q({type:l});static \u0275inj=Y({imports:[le]})}return l})();var L=class l{destroy$=new C;voices;currentUtterance=null;currentOnEndCallback=null;speakingSubject=new b(!1);speaking$=this.speakingSubject.asObservable();volume=.8;rate=1.2;language="en-US";selectedVoice;preferencesService=v(N);constructor(){this.initializeSpeechSynthesis(),this.subscribeToPreferences()}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete(),this.stopSpeech()}initializeSpeechSynthesis(){if(!("speechSynthesis"in window)){console.warn("[VOICE-SERVICE] Speech synthesis not available"),this.voices=new Promise(e=>e([]));return}this.voices=new Promise((e,n)=>{let t=speechSynthesis.getVoices();if(t.length)e(t);else{let i=setTimeout(()=>{n("no voices found")},2e3);speechSynthesis.addEventListener("voiceschanged",()=>{let o=speechSynthesis.getVoices();o.length&&(clearTimeout(i),e(o))})}}),console.log("[VOICE-SERVICE] Speech synthesis initialized")}subscribeToPreferences(){this.preferencesService.voiceVolume$.pipe(p(this.destroy$)).subscribe(e=>{this.volume=e,console.log("[VOICE-SERVICE] Volume updated to:",e)}),this.preferencesService.voiceRate$.pipe(p(this.destroy$)).subscribe(e=>{this.rate=e,console.log("[VOICE-SERVICE] Rate updated to:",e)}),this.preferencesService.voiceLanguage$.pipe(p(this.destroy$)).subscribe(e=>{this.language=e,console.log("[VOICE-SERVICE] Language updated to:",e),this.updateSelectedVoiceForLanguage()}),this.preferencesService.selectedVoice$.pipe(p(this.destroy$)).subscribe(e=>{this.setSelectedVoice(e)}),this.volume=this.preferencesService.getVoiceVolume(),this.rate=this.preferencesService.getVoiceRate(),this.language=this.preferencesService.getVoiceLanguage(),this.setSelectedVoice(this.preferencesService.getSelectedVoice())}isReady(){return"speechSynthesis"in window&&this.selectedVoice!==void 0}isSpeaking(){return speechSynthesis.speaking}speak(e,n){return S(this,null,function*(){if(!this.selectedVoice)return console.warn("[VOICE-SERVICE] No voice selected"),!1;if(!e.trim())return console.warn("[VOICE-SERVICE] No text to speak"),!1;let t=this.extractPlainText(e);if(!t.trim())return console.warn("[VOICE-SERVICE] No text to speak after markdown cleaning"),!1;this.stopSpeech();try{let i=new SpeechSynthesisUtterance(t);i.voice=this.selectedVoice,i.lang=this.selectedVoice.lang,i.volume=this.volume,i.rate=this.rate,this.currentOnEndCallback=n||null,n&&(i.onend=()=>{this.currentOnEndCallback===n&&(this.currentOnEndCallback=null,n())},i.onerror=()=>{this.currentOnEndCallback===n&&(this.currentOnEndCallback=null,n())}),this.currentUtterance=i,this.speakingSubject.next(!0);let o=i.onend,_=i.onerror;return i.onend=O=>{this.speakingSubject.next(!1),o&&o.call(i,O)},i.onerror=O=>{this.speakingSubject.next(!1),_&&_.call(i,O)},speechSynthesis.speak(i),console.log("[VOICE-SERVICE] Started speaking:",e.substring(0,50)+"..."),!0}catch(i){return console.error("[VOICE-SERVICE] Error speaking:",i),!1}})}stopSpeech(){if(this.currentUtterance||speechSynthesis.speaking){if(speechSynthesis.cancel(),this.currentUtterance=null,this.currentOnEndCallback){let e=this.currentOnEndCallback;this.currentOnEndCallback=null,e()}this.speakingSubject.next(!1),console.log("[VOICE-SERVICE] Speech stopped")}}ding(){try{let e=new(window.AudioContext||window.webkitAudioContext),n=e.createOscillator(),t=e.createGain();n.connect(t),t.connect(e.destination),n.frequency.setValueAtTime(800,e.currentTime),t.gain.setValueAtTime(.1,e.currentTime),t.gain.exponentialRampToValueAtTime(.01,e.currentTime+.1),n.start(e.currentTime),n.stop(e.currentTime+.1),console.log("[VOICE-SERVICE] Notification sound played")}catch(e){console.error("[VOICE-SERVICE] Notification sound failed:",e)}}getVoicesForLanguage(){return S(this,null,function*(){try{let e=this.language.slice(0,2),n=yield this.voices;if(!n||n.length===0)return console.warn("[VOICE-SERVICE] No voices available on system"),[];let t=n.filter(i=>i.lang.toLowerCase().startsWith(e)).sort((i,o)=>i.localService&&!o.localService?-1:!i.localService&&o.localService?1:i.name.localeCompare(o.name));return console.log("[VOICE-SERVICE] Found matching voices:",t.length,"for language:",e),t.map(i=>({name:i.name,lang:i.lang,localService:i.localService,default:i.default,displayName:this.formatVoiceDisplayName(i)}))}catch(e){return console.error("[VOICE-SERVICE] Error getting voices for language:",e),[]}})}formatVoiceDisplayName(e){let n=e.localService?"\u{1F3E0}":"\u2601\uFE0F",t=e.default?" \u2B50":"";return`${n} ${e.name} (${e.lang})${t}`}setSelectedVoice(e){return S(this,null,function*(){if(!e){this.selectedVoice=void 0;return}let[n,t]=e.split("|");if(!n||!t){this.selectedVoice=void 0;return}let i=(yield this.voices)?.find(o=>o.name===n&&o.lang===t);i?(this.selectedVoice=i,console.log("[VOICE-SERVICE] Selected voice:",i.name,i.lang)):(this.selectedVoice=void 0,console.warn("[VOICE-SERVICE] Voice not found:",n,t))})}updateSelectedVoiceForLanguage(){return S(this,null,function*(){let e=yield this.getVoicesForLanguage();if(e.length===0){console.warn("[VOICE-SERVICE] No voices available for language:",this.language),this.selectedVoice=void 0,this.preferencesService.setSelectedVoice(null);return}let n=this.preferencesService.getSelectedVoice();if(n){let[i,o]=n.split("|"),_=o?.slice(0,2),O=this.language.slice(0,2);if(_===O&&e.some(H=>H.name===i&&H.lang===o)){console.log("[VOICE-SERVICE] Keeping current voice for language:",n);return}}let t=e[0];if(t){let i=`${t.name}|${t.lang}`;this.preferencesService.setSelectedVoice(i),console.log("[VOICE-SERVICE] Auto-selected voice for language change:",t.displayName)}})}testSelectedVoice(){setTimeout(()=>{if(!this.selectedVoice){console.log("[VOICE-SERVICE] No voice selected for test");return}this.stopSpeech();let e=this.getTestText();e&&this.speak(e)},100)}getTestText(){let e=this.language.slice(0,2),n={fr:"Bonjour, ceci est un test de la voix s\xE9lectionn\xE9e.",en:"Hello, this is a test of the selected voice.",es:"Hola, esta es una prueba de la voz seleccionada.",de:"Hallo, dies ist ein Test der ausgew\xE4hlten Stimme.",it:"Ciao, questo \xE8 un test della voce selezionata.",pt:"Ol\xE1, este \xE9 um teste da voz selecionada.",ja:"\u3053\u3093\u306B\u3061\u306F\u3001\u3053\u308C\u306F\u9078\u629E\u3055\u308C\u305F\u97F3\u58F0\u306E\u30C6\u30B9\u30C8\u3067\u3059\u3002",ko:"\uC548\uB155\uD558\uC138\uC694, \uC774\uAC83\uC740 \uC120\uD0DD\uB41C \uC74C\uC131\uC758 \uD14C\uC2A4\uD2B8\uC785\uB2C8\uB2E4.",zh:"\u4F60\u597D\uFF0C\u8FD9\u662F\u6240\u9009\u8BED\u97F3\u7684\u6D4B\u8BD5\u3002",ru:"\u041F\u0440\u0438\u0432\u0435\u0442, \u044D\u0442\u043E \u0442\u0435\u0441\u0442 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0433\u043E \u0433\u043E\u043B\u043E\u0441\u0430.",ar:"\u0645\u0631\u062D\u0628\u0627\u060C \u0647\u0630\u0627 \u0627\u062E\u062A\u0628\u0627\u0631 \u0644\u0644\u0635\u0648\u062A \u0627\u0644\u0645\u062D\u062F\u062F."};return n[e]||n.en||"Hello, this is a test."}extractPlainText(e){let n=e.replace(/[\u{1F600}-\u{1F64F}]|[\u{1F300}-\u{1F5FF}]|[\u{1F680}-\u{1F6FF}]|[\u{1F1E0}-\u{1F1FF}]|[\u{2600}-\u{26FF}]|[\u{2700}-\u{27BF}]|⭐/gu,"").replace(/```[\s\S]*?```/g,"code block").replace(/`([^`]+)`/g,"$1").replace(/\*\*\*(.*?)\*\*\*/g,"$1").replace(/\*\*(.*?)\*\*/g,"$1").replace(/\*(.*?)\*/g,"$1").replace(/~~(.*?)~~/g,"$1").replace(/#{1,6}\s*(.*)/g,"$1").replace(/\[([^\]]+)\]\([^)]+\)/g,"$1").replace(/https?:\/\/[^\s]+/g,"link").replace(/&nbsp;/g," ").replace(/&amp;/g,"and").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"');return n=this.addNaturalPunctuation(n),n.replace(/\s+/g," ").trim()}addNaturalPunctuation(e){return e.replace(/\n+/g,`
3
- `).split(`
4
- `).map(n=>this.addPeriodIfNeeded(n.trim())).filter(n=>n.length>0).join(" ")}addPeriodIfNeeded(e){return e?/[.!?;:]$/.test(e)?e:e+".":""}static \u0275fac=function(n){return new(n||l)};static \u0275prov=P({token:l,factory:l.\u0275fac,providedIn:"root"})};var tt=(l,e)=>e.code,nt=(l,e)=>e.name+e.lang;function it(l,e){l&1&&(a(0,"div",17)(1,"mat-icon",39),s(2,"warning"),r(),a(3,"span",40),s(4," Browser notifications have been blocked. To enable them, please reset the site permissions in your browser settings. "),r()())}function ot(l,e){if(l&1&&(a(0,"option",25),s(1),r()),l&2){let n=e.$implicit;u("value",n.code),c(),re("",n.flag," ",n.label)}}function rt(l,e){l&1&&(a(0,"option",32),s(1,"Loading voices..."),r())}function at(l,e){l&1&&(a(0,"option",32),s(1,"No voice available"),r())}function st(l,e){if(l&1&&(a(0,"option",25),s(1),r()),l&2){let n=e.$implicit;u("value",n.name+"|"+n.lang),c(),y(" ",n.displayName," ")}}var Je=class l{destroy$=new C;selectedTheme="light";selectedVoiceLanguage="en-US";useEnterToSend=!1;printTechnicalMessages=!1;showTechnicalMessages=!0;showWarningMessages=!0;voiceInputMode="browser";voiceAnnounceEnabled=!1;voiceMode="speech";voiceReadFullText=!1;voiceVolume=80;voiceRate=120;agentNotificationEnabled=!1;notificationSoundEnabled=!0;browserNotificationEnabled=!1;browserNotificationDenied=!1;missionPreviewEnabled=!1;availableVoices=[];selectedVoiceId=null;loadingVoices=!1;voiceLanguageOptions=[{code:"fr-FR",label:"Fran\xE7ais",flag:"\u{1F1EB}\u{1F1F7}"},{code:"en-US",label:"English (US)",flag:"\u{1F1FA}\u{1F1F8}"},{code:"en-GB",label:"English (UK)",flag:"\u{1F1EC}\u{1F1E7}"},{code:"es-ES",label:"Espa\xF1ol",flag:"\u{1F1EA}\u{1F1F8}"},{code:"de-DE",label:"Deutsch",flag:"\u{1F1E9}\u{1F1EA}"},{code:"it-IT",label:"Italiano",flag:"\u{1F1EE}\u{1F1F9}"},{code:"pt-BR",label:"Portugu\xEAs",flag:"\u{1F1E7}\u{1F1F7}"},{code:"ja-JP",label:"\u65E5\u672C\u8A9E",flag:"\u{1F1EF}\u{1F1F5}"},{code:"ko-KR",label:"\uD55C\uAD6D\uC5B4",flag:"\u{1F1F0}\u{1F1F7}"},{code:"zh-CN",label:"\u4E2D\u6587 (\u7B80\u4F53)",flag:"\u{1F1E8}\u{1F1F3}"},{code:"ru-RU",label:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",flag:"\u{1F1F7}\u{1F1FA}"},{code:"ar-SA",label:"\u0627\u0644\u0639\u0631\u0628\u064A\u0629",flag:"\u{1F1F8}\u{1F1E6}"}];preferencesService=v(N);voiceSynthesisService=v(L);themeService=v(_e);ngOnInit(){this.selectedTheme=this.themeService.getCurrentTheme(),this.selectedVoiceLanguage=this.preferencesService.getVoiceLanguage(),this.useEnterToSend=this.preferencesService.getEnterToSend(),this.printTechnicalMessages=this.preferencesService.getPrintTechnicalMessages(),this.showTechnicalMessages=!this.preferencesService.getHideTechnicalMessages(),this.showWarningMessages=!this.preferencesService.getHideWarningMessages(),this.voiceInputMode=this.preferencesService.getVoiceInputMode(),this.voiceAnnounceEnabled=this.preferencesService.getVoiceAnnounceEnabled(),this.voiceMode=this.preferencesService.getVoiceMode(),this.voiceReadFullText=this.preferencesService.getVoiceReadFullText(),this.voiceVolume=Math.round(this.preferencesService.getVoiceVolume()*100),this.voiceRate=Math.round(this.preferencesService.getVoiceRate()*100),this.selectedVoiceId=this.preferencesService.getSelectedVoice(),this.agentNotificationEnabled=this.preferencesService.getAgentNotificationEnabled(),this.notificationSoundEnabled=this.preferencesService.getNotificationSoundEnabled(),this.browserNotificationEnabled=this.preferencesService.getBrowserNotificationEnabled(),this.missionPreviewEnabled=this.preferencesService.getMissionPreviewEnabled(),this.loadAvailableVoices(),this.themeService.currentTheme$.pipe(p(this.destroy$)).subscribe(e=>{this.selectedTheme=e}),this.preferencesService.voiceLanguage$.pipe(p(this.destroy$)).subscribe(e=>{this.selectedVoiceLanguage=e}),this.preferencesService.enterToSend$.pipe(p(this.destroy$)).subscribe(e=>{this.useEnterToSend=e}),this.preferencesService.printTechnicalMessages$.pipe(p(this.destroy$)).subscribe(e=>{this.printTechnicalMessages=e}),this.preferencesService.hideTechnicalMessages$.pipe(p(this.destroy$)).subscribe(e=>{this.showTechnicalMessages=!e}),this.preferencesService.hideWarningMessages$.pipe(p(this.destroy$)).subscribe(e=>{this.showWarningMessages=!e}),this.preferencesService.voiceInputMode$.pipe(p(this.destroy$)).subscribe(e=>{this.voiceInputMode=e}),this.preferencesService.voiceAnnounceEnabled$.pipe(p(this.destroy$)).subscribe(e=>{this.voiceAnnounceEnabled=e}),this.preferencesService.voiceMode$.pipe(p(this.destroy$)).subscribe(e=>{this.voiceMode=e}),this.preferencesService.voiceReadFullText$.pipe(p(this.destroy$)).subscribe(e=>{this.voiceReadFullText=e}),this.preferencesService.voiceVolume$.pipe(p(this.destroy$)).subscribe(e=>{this.voiceVolume=Math.round(e*100)}),this.preferencesService.voiceRate$.pipe(p(this.destroy$)).subscribe(e=>{this.voiceRate=Math.round(e*100)}),this.preferencesService.selectedVoice$.pipe(p(this.destroy$)).subscribe(e=>{this.selectedVoiceId=e}),this.preferencesService.voiceLanguage$.pipe(p(this.destroy$)).subscribe(()=>{this.loadAvailableVoices()}),this.preferencesService.agentNotificationEnabled$.pipe(p(this.destroy$)).subscribe(e=>{this.agentNotificationEnabled=e}),this.preferencesService.notificationSoundEnabled$.pipe(p(this.destroy$)).subscribe(e=>{this.notificationSoundEnabled=e}),this.preferencesService.browserNotificationEnabled$.pipe(p(this.destroy$)).subscribe(e=>{this.browserNotificationEnabled=e,this.checkNotificationPermission()}),this.preferencesService.missionPreviewEnabled$.pipe(p(this.destroy$)).subscribe(e=>{this.missionPreviewEnabled=e})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}onThemeChange(){console.log("[OPTIONS] Theme changed to:",this.selectedTheme),this.themeService.setTheme(this.selectedTheme)}onVoiceLanguageChange(){console.log("[OPTIONS] Voice language changed to:",this.selectedVoiceLanguage),this.preferencesService.setVoiceLanguage(this.selectedVoiceLanguage)}onEnterToSendChange(){console.log("[OPTIONS] Enter to send changed to:",this.useEnterToSend),this.preferencesService.setEnterToSend(this.useEnterToSend)}onPrintTechnicalMessagesChange(){console.log("[OPTIONS] Print technical messages changed to:",this.printTechnicalMessages),this.preferencesService.setPrintTechnicalMessages(this.printTechnicalMessages)}onShowTechnicalMessagesChange(){let e=!this.showTechnicalMessages;console.log("[OPTIONS] Show technical messages changed to:",this.showTechnicalMessages,"(hide:",e,")"),this.preferencesService.setHideTechnicalMessages(e)}onShowWarningMessagesChange(){let e=!this.showWarningMessages;console.log("[OPTIONS] Show warning messages changed to:",this.showWarningMessages,"(hide:",e,")"),this.preferencesService.setHideWarningMessages(e)}onVoiceInputModeChange(e){let n=e.target.value;console.log("[OPTIONS] Voice input mode changed to:",n),this.preferencesService.setVoiceInputMode(n)}onVoiceAnnounceEnabledChange(){console.log("[OPTIONS] Voice announce enabled changed to:",this.voiceAnnounceEnabled),this.preferencesService.setVoiceAnnounceEnabled(this.voiceAnnounceEnabled)}onVoiceModeChange(){console.log("[OPTIONS] Voice mode changed to:",this.voiceMode),this.preferencesService.setVoiceMode(this.voiceMode)}onVoiceReadFullTextChange(){console.log("[OPTIONS] Voice read full text changed to:",this.voiceReadFullText),this.preferencesService.setVoiceReadFullText(this.voiceReadFullText)}onVoiceVolumeChange(){let e=this.voiceVolume/100;console.log("[OPTIONS] Voice volume changed to:",e),this.preferencesService.setVoiceVolume(e)}onVoiceRateChange(){let e=this.voiceRate/100;console.log("[OPTIONS] Voice rate changed to:",e),this.preferencesService.setVoiceRate(e)}loadAvailableVoices(){return S(this,null,function*(){this.loadingVoices=!0;try{this.availableVoices=yield this.voiceSynthesisService.getVoicesForLanguage(),console.log("[OPTIONS] Loaded",this.availableVoices.length,"voices for current language")}catch(e){console.error("[OPTIONS] Error loading voices:",e),this.availableVoices=[]}finally{this.loadingVoices=!1}})}onSelectedVoiceChange(){console.log("[OPTIONS] Selected voice changed to:",this.selectedVoiceId),this.preferencesService.setSelectedVoice(this.selectedVoiceId)}testVoice(){console.log("[OPTIONS] Testing voice with current settings"),this.voiceSynthesisService.testSelectedVoice()}onAgentNotificationEnabledChange(){console.log("[OPTIONS] Agent notification enabled changed to:",this.agentNotificationEnabled),this.preferencesService.setAgentNotificationEnabled(this.agentNotificationEnabled)}onNotificationSoundEnabledChange(){console.log("[OPTIONS] Notification sound enabled changed to:",this.notificationSoundEnabled),this.preferencesService.setNotificationSoundEnabled(this.notificationSoundEnabled)}onBrowserNotificationEnabledChange(){console.log("[OPTIONS] Browser notification enabled changed to:",this.browserNotificationEnabled),this.preferencesService.setBrowserNotificationEnabled(this.browserNotificationEnabled)}onMissionPreviewEnabledChange(){console.log("[OPTIONS] Mission preview panel enabled changed to:",this.missionPreviewEnabled),this.preferencesService.setMissionPreviewEnabled(this.missionPreviewEnabled)}checkNotificationPermission(){"Notification"in window&&(this.browserNotificationDenied=Notification.permission==="denied",console.log("[OPTIONS] Notification permission status:",Notification.permission))}static \u0275fac=function(n){return new(n||l)};static \u0275cmp=E({type:l,selectors:[["app-options-panel"]],decls:168,vars:37,consts:[[1,"options-content"],[1,"option-section"],[1,"section-title"],[1,"option-group"],[1,"radio-group"],[1,"option-radio"],["type","radio","name","theme","value","light",3,"ngModelChange","change","ngModel"],[1,"radio-mark"],["type","radio","name","theme","value","dark",3,"ngModelChange","change","ngModel"],["type","radio","name","theme","value","system",3,"ngModelChange","change","ngModel"],[1,"option-label"],["type","radio","name","enterBehavior",3,"ngModelChange","change","value","ngModel"],[1,"toggle-option"],["color","primary",3,"ngModelChange","change","ngModel"],[1,"option-label-with-hint"],[1,"option-hint"],["color","primary",3,"ngModelChange","change","ngModel","disabled"],[1,"notification-error"],["for","voice-input-mode-select",1,"option-label"],["id","voice-input-mode-select",1,"option-select",3,"change","value"],["value","browser"],["value","whisper"],["value","voice-message"],["for","voice-language-select",1,"option-label"],["id","voice-language-select",1,"option-select",3,"ngModelChange","change","ngModel"],[3,"value"],["type","radio","name","voiceAnnounce",3,"ngModelChange","change","value","ngModel"],["type","radio","name","voiceMode","value","speech",3,"ngModelChange","change","ngModel"],["type","radio","name","voiceMode","value","notification",3,"ngModelChange","change","ngModel"],["type","radio","name","voiceReadFull",3,"ngModelChange","change","value","ngModel"],["for","voice-select",1,"option-label"],["id","voice-select",1,"option-select",3,"ngModelChange","change","ngModel","disabled"],["value",""],["role","button","tabindex","0","title","Test voice with current settings",1,"test-voice-link",3,"click"],[1,"thread-name"],["for","voice-volume-slider",1,"option-label"],["id","voice-volume-slider","type","range","min","0","max","100","step","5",1,"option-slider",3,"ngModelChange","input","ngModel"],["for","voice-rate-slider",1,"option-label"],["id","voice-rate-slider","type","range","min","50","max","200","step","10",1,"option-slider",3,"ngModelChange","input","ngModel"],[1,"error-icon"],[1,"error-message"]],template:function(n,t){n&1&&(a(0,"div",0)(1,"div",1)(2,"div",2)(3,"mat-icon"),s(4,"palette"),r(),a(5,"span"),s(6,"Appearance"),r()(),a(7,"div",3)(8,"div",4)(9,"label",5)(10,"input",6),h("ngModelChange",function(o){return m(t.selectedTheme,o)||(t.selectedTheme=o),o}),d("change",function(){return t.onThemeChange()}),r(),f(11,"span",7),s(12," Light "),r(),a(13,"label",5)(14,"input",8),h("ngModelChange",function(o){return m(t.selectedTheme,o)||(t.selectedTheme=o),o}),d("change",function(){return t.onThemeChange()}),r(),f(15,"span",7),s(16," Dark "),r(),a(17,"label",5)(18,"input",9),h("ngModelChange",function(o){return m(t.selectedTheme,o)||(t.selectedTheme=o),o}),d("change",function(){return t.onThemeChange()}),r(),f(19,"span",7),s(20," System "),r()()()(),a(21,"div",1)(22,"div",2)(23,"mat-icon"),s(24,"chat_bubble_outline"),r(),a(25,"span"),s(26,"Messaging"),r()(),a(27,"div",3)(28,"span",10),s(29,"Send message behavior:"),r(),a(30,"div",4)(31,"label",5)(32,"input",11),h("ngModelChange",function(o){return m(t.useEnterToSend,o)||(t.useEnterToSend=o),o}),d("change",function(){return t.onEnterToSendChange()}),r(),f(33,"span",7),s(34," Enter to send "),r(),a(35,"label",5)(36,"input",11),h("ngModelChange",function(o){return m(t.useEnterToSend,o)||(t.useEnterToSend=o),o}),d("change",function(){return t.onEnterToSendChange()}),r(),f(37,"span",7),s(38," Enter for new line "),r()()(),a(39,"div",3)(40,"div",12)(41,"span",10),s(42,"Show technical messages"),r(),a(43,"mat-slide-toggle",13),h("ngModelChange",function(o){return m(t.showTechnicalMessages,o)||(t.showTechnicalMessages=o),o}),d("change",function(){return t.onShowTechnicalMessagesChange()}),r()()(),a(44,"div",3)(45,"div",12)(46,"span",10),s(47,"Show warning messages"),r(),a(48,"mat-slide-toggle",13),h("ngModelChange",function(o){return m(t.showWarningMessages,o)||(t.showWarningMessages=o),o}),d("change",function(){return t.onShowWarningMessagesChange()}),r()()(),a(49,"div",3)(50,"div",12)(51,"span",10),s(52,"Include technical messages in print"),r(),a(53,"mat-slide-toggle",13),h("ngModelChange",function(o){return m(t.printTechnicalMessages,o)||(t.printTechnicalMessages=o),o}),d("change",function(){return t.onPrintTechnicalMessagesChange()}),r()()()(),a(54,"div",1)(55,"div",2)(56,"mat-icon"),s(57,"rocket_launch"),r(),a(58,"span"),s(59,"Mission Control"),r()(),a(60,"div",3)(61,"div",12)(62,"div",14)(63,"span",10),s(64,"Side-by-side thread preview"),r(),a(65,"span",15),s(66,"Click a mission card to open a preview panel. Recommended for large screens."),r()(),a(67,"mat-slide-toggle",13),h("ngModelChange",function(o){return m(t.missionPreviewEnabled,o)||(t.missionPreviewEnabled=o),o}),d("change",function(){return t.onMissionPreviewEnabledChange()}),r()()()(),a(68,"div",1)(69,"div",2)(70,"mat-icon"),s(71,"notifications"),r(),a(72,"span"),s(73,"Notifications"),r()(),a(74,"div",3)(75,"div",12)(76,"span",10),s(77,"Notify when the agent answers or requests input"),r(),a(78,"mat-slide-toggle",13),h("ngModelChange",function(o){return m(t.agentNotificationEnabled,o)||(t.agentNotificationEnabled=o),o}),d("change",function(){return t.onAgentNotificationEnabledChange()}),r()()(),a(79,"div",3)(80,"div",12)(81,"span",10),s(82,"Notification sound"),r(),a(83,"mat-slide-toggle",16),h("ngModelChange",function(o){return m(t.notificationSoundEnabled,o)||(t.notificationSoundEnabled=o),o}),d("change",function(){return t.onNotificationSoundEnabledChange()}),r()()(),a(84,"div",3)(85,"div",12)(86,"span",10),s(87,"Browser notification"),r(),a(88,"mat-slide-toggle",16),h("ngModelChange",function(o){return m(t.browserNotificationEnabled,o)||(t.browserNotificationEnabled=o),o}),d("change",function(){return t.onBrowserNotificationEnabledChange()}),r()(),T(89,it,5,0,"div",17),r()(),a(90,"div",1)(91,"div",2)(92,"mat-icon"),s(93,"record_voice_over"),r(),a(94,"span"),s(95,"Voice & Speech"),r()(),a(96,"div",3)(97,"label",18),s(98,"Voice input method:"),r(),a(99,"select",19),d("change",function(o){return t.onVoiceInputModeChange(o)}),a(100,"option",20),s(101,"Browser (real-time)"),r(),a(102,"option",21),s(103,"Whisper (higher accuracy)"),r(),a(104,"option",22),s(105,"Voice message (send audio)"),r()()(),a(106,"div",3)(107,"label",23),s(108,"Voice recognition language:"),r(),a(109,"select",24),h("ngModelChange",function(o){return m(t.selectedVoiceLanguage,o)||(t.selectedVoiceLanguage=o),o}),d("change",function(){return t.onVoiceLanguageChange()}),$(110,ot,2,3,"option",25,tt),r()(),a(112,"div",3)(113,"span",10),s(114,"Automatic announcement:"),r(),a(115,"div",4)(116,"label",5)(117,"input",26),h("ngModelChange",function(o){return m(t.voiceAnnounceEnabled,o)||(t.voiceAnnounceEnabled=o),o}),d("change",function(){return t.onVoiceAnnounceEnabledChange()}),r(),f(118,"span",7),s(119," Enabled "),r(),a(120,"label",5)(121,"input",26),h("ngModelChange",function(o){return m(t.voiceAnnounceEnabled,o)||(t.voiceAnnounceEnabled=o),o}),d("change",function(){return t.onVoiceAnnounceEnabledChange()}),r(),f(122,"span",7),s(123," Disabled "),r()()(),a(124,"div",3)(125,"span",10),s(126,"Voice mode:"),r(),a(127,"div",4)(128,"label",5)(129,"input",27),h("ngModelChange",function(o){return m(t.voiceMode,o)||(t.voiceMode=o),o}),d("change",function(){return t.onVoiceModeChange()}),r(),f(130,"span",7),s(131," Voice synthesis "),r(),a(132,"label",5)(133,"input",28),h("ngModelChange",function(o){return m(t.voiceMode,o)||(t.voiceMode=o),o}),d("change",function(){return t.onVoiceModeChange()}),r(),f(134,"span",7),s(135," Sound notification "),r()()(),a(136,"div",3)(137,"span",10),s(138,"Message reading:"),r(),a(139,"div",4)(140,"label",5)(141,"input",29),h("ngModelChange",function(o){return m(t.voiceReadFullText,o)||(t.voiceReadFullText=o),o}),d("change",function(){return t.onVoiceReadFullTextChange()}),r(),f(142,"span",7),s(143," Full message "),r(),a(144,"label",5)(145,"input",29),h("ngModelChange",function(o){return m(t.voiceReadFullText,o)||(t.voiceReadFullText=o),o}),d("change",function(){return t.onVoiceReadFullTextChange()}),r(),f(146,"span",7),s(147," First paragraphs only "),r()()(),a(148,"div",3)(149,"label",30),s(150,"Selected voice:"),r(),a(151,"select",31),h("ngModelChange",function(o){return m(t.selectedVoiceId,o)||(t.selectedVoiceId=o),o}),d("change",function(){return t.onSelectedVoiceChange()}),T(152,rt,2,0,"option",32),T(153,at,2,0,"option",32),$(154,st,2,2,"option",25,nt),r(),f(156,"div",10),a(157,"a",33),d("click",function(){return t.testVoice()}),a(158,"span",34),s(159,"Test voice"),r()()(),a(160,"div",3)(161,"label",35),s(162),r(),a(163,"input",36),h("ngModelChange",function(o){return m(t.voiceVolume,o)||(t.voiceVolume=o),o}),d("input",function(){return t.onVoiceVolumeChange()}),r()(),a(164,"div",3)(165,"label",37),s(166),r(),a(167,"input",38),h("ngModelChange",function(o){return m(t.voiceRate,o)||(t.voiceRate=o),o}),d("input",function(){return t.onVoiceRateChange()}),r()()()()),n&2&&(c(10),g("ngModel",t.selectedTheme),c(4),g("ngModel",t.selectedTheme),c(4),g("ngModel",t.selectedTheme),c(14),u("value",!0),g("ngModel",t.useEnterToSend),c(4),u("value",!1),g("ngModel",t.useEnterToSend),c(7),g("ngModel",t.showTechnicalMessages),c(5),g("ngModel",t.showWarningMessages),c(5),g("ngModel",t.printTechnicalMessages),c(14),g("ngModel",t.missionPreviewEnabled),c(11),g("ngModel",t.agentNotificationEnabled),c(5),g("ngModel",t.notificationSoundEnabled),u("disabled",!t.agentNotificationEnabled),c(5),g("ngModel",t.browserNotificationEnabled),u("disabled",!t.agentNotificationEnabled||t.browserNotificationDenied),c(),w(t.browserNotificationDenied?89:-1),c(10),u("value",t.voiceInputMode),c(10),g("ngModel",t.selectedVoiceLanguage),c(),z(t.voiceLanguageOptions),c(7),u("value",!0),g("ngModel",t.voiceAnnounceEnabled),c(4),u("value",!1),g("ngModel",t.voiceAnnounceEnabled),c(8),g("ngModel",t.voiceMode),c(4),g("ngModel",t.voiceMode),c(8),u("value",!0),g("ngModel",t.voiceReadFullText),c(4),u("value",!1),g("ngModel",t.voiceReadFullText),c(6),g("ngModel",t.selectedVoiceId),u("disabled",t.loadingVoices||t.availableVoices.length===0),c(),w(t.loadingVoices?152:-1),c(),w(!t.loadingVoices&&t.availableVoices.length===0?153:-1),c(),z(t.availableVoices),c(8),y("Volume: ",t.voiceVolume,"%"),c(),g("ngModel",t.voiceVolume),c(3),y("Speed: ",t.voiceRate,"%"),c(),g("ngModel",t.voiceRate))},dependencies:[D,Ee,Me,W,Ce,ye,Se,R,A,j,$e],styles:['.options-content[_ngcontent-%COMP%]{padding:0;width:100%}.option-group[_ngcontent-%COMP%]{padding:0 1rem 1rem;margin-bottom:1rem;border-bottom:1px solid var(--color-border-light)}.option-group[_ngcontent-%COMP%]:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.option-label[_ngcontent-%COMP%]{display:block;margin-bottom:.5rem;font-weight:500;color:var(--color-text);font-size:.875rem}.toggle-option[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;gap:1rem}.toggle-option[_ngcontent-%COMP%] .option-label[_ngcontent-%COMP%]{margin-bottom:0;flex:1}.toggle-option[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%]{flex-shrink:0}.option-label-with-hint[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem;flex:1}.option-label-with-hint[_ngcontent-%COMP%] .option-label[_ngcontent-%COMP%]{margin-bottom:0}.option-label-with-hint[_ngcontent-%COMP%] .option-hint[_ngcontent-%COMP%]{font-size:.775rem;color:var(--color-text-secondary);line-height:1.4}.option-select[_ngcontent-%COMP%]{width:100%;padding:.5rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-input-bg);color:var(--color-text);font-size:.875rem;cursor:pointer}.option-select[_ngcontent-%COMP%]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #7064fb1a}.option-select[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed}.option-select[_ngcontent-%COMP%] option[_ngcontent-%COMP%]{padding:.5rem}.option-checkbox[_ngcontent-%COMP%]{display:flex;align-items:center;cursor:pointer;font-size:.875rem;color:var(--color-text);-webkit-user-select:none;user-select:none}.option-checkbox[_ngcontent-%COMP%] input[type=checkbox][_ngcontent-%COMP%]{display:none}.option-checkbox[_ngcontent-%COMP%] .checkmark[_ngcontent-%COMP%]{width:18px;height:18px;border:2px solid var(--color-border);border-radius:3px;margin-right:.75rem;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.option-checkbox[_ngcontent-%COMP%] .checkmark[_ngcontent-%COMP%]:after{content:"";width:10px;height:6px;border-left:2px solid transparent;border-bottom:2px solid transparent;transform:rotate(-45deg);transition:all .2s ease;opacity:0}.option-checkbox[_ngcontent-%COMP%] input[type=checkbox][_ngcontent-%COMP%]:checked + .checkmark[_ngcontent-%COMP%]{background-color:var(--color-primary);border-color:var(--color-primary)}.option-checkbox[_ngcontent-%COMP%] input[type=checkbox][_ngcontent-%COMP%]:checked + .checkmark[_ngcontent-%COMP%]:after{border-left-color:#fff;border-bottom-color:#fff;opacity:1}.option-checkbox[_ngcontent-%COMP%]:hover .checkmark[_ngcontent-%COMP%]{border-color:var(--color-primary)}.option-checkbox[_ngcontent-%COMP%]:focus-within .checkmark[_ngcontent-%COMP%]{box-shadow:0 0 0 3px #7064fb1a}.option-section[_ngcontent-%COMP%]{padding-top:1rem;margin-top:1rem;border-top:2px solid var(--color-border)}.option-section[_ngcontent-%COMP%]:first-child{border-top:none;padding-top:0;margin-top:0}.section-title[_ngcontent-%COMP%]{margin:0 0 1rem;padding:0 1rem;font-size:.9rem;font-weight:600;color:var(--color-text);display:flex;align-items:center;gap:.5rem}.section-title[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:20px;width:20px;height:20px}.radio-group[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.option-radio[_ngcontent-%COMP%]{display:flex;align-items:center;cursor:pointer;font-size:.875rem;color:var(--color-text);-webkit-user-select:none;user-select:none}.option-radio[_ngcontent-%COMP%] input[type=radio][_ngcontent-%COMP%]{display:none}.option-radio[_ngcontent-%COMP%] .radio-mark[_ngcontent-%COMP%]{width:16px;height:16px;border:2px solid var(--color-border);border-radius:50%;margin-right:.5rem;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0;position:relative}.option-radio[_ngcontent-%COMP%] .radio-mark[_ngcontent-%COMP%]:after{content:"";width:8px;height:8px;border-radius:50%;background-color:var(--color-primary);transition:all .2s ease;opacity:0;transform:scale(0)}.option-radio[_ngcontent-%COMP%] input[type=radio][_ngcontent-%COMP%]:checked + .radio-mark[_ngcontent-%COMP%]{border-color:var(--color-primary)}.option-radio[_ngcontent-%COMP%] input[type=radio][_ngcontent-%COMP%]:checked + .radio-mark[_ngcontent-%COMP%]:after{opacity:1;transform:scale(1)}.option-radio[_ngcontent-%COMP%]:hover .radio-mark[_ngcontent-%COMP%]{border-color:var(--color-primary)}.option-radio[_ngcontent-%COMP%]:focus-within .radio-mark[_ngcontent-%COMP%]{box-shadow:0 0 0 3px #7064fb1a}.option-slider[_ngcontent-%COMP%]{width:100%;height:6px;border-radius:3px;background:var(--color-bg-solid);outline:none;cursor:pointer;-webkit-appearance:none;appearance:none}.option-slider[_ngcontent-%COMP%]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:var(--color-primary);cursor:pointer;border:2px solid white;box-shadow:0 2px 6px #0003;transition:all .2s ease}.option-slider[_ngcontent-%COMP%]::-webkit-slider-thumb:hover{transform:scale(1.1);box-shadow:0 2px 8px #0000004d}.option-slider[_ngcontent-%COMP%]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--color-primary);cursor:pointer;border:2px solid white;box-shadow:0 2px 6px #0003;transition:all .2s ease}.option-slider[_ngcontent-%COMP%]::-moz-range-thumb:hover{transform:scale(1.1);box-shadow:0 2px 8px #0000004d}.option-slider[_ngcontent-%COMP%]::-webkit-slider-track{height:6px;border-radius:3px;background:var(--color-bg-secondary)}.option-slider[_ngcontent-%COMP%]::-moz-range-track{height:6px;border-radius:3px;background:var(--color-bg-secondary);border:none}.option-slider[_ngcontent-%COMP%]:focus{outline:none}.option-slider[_ngcontent-%COMP%]:focus::-webkit-slider-thumb{box-shadow:0 0 0 3px #7064fb4d,0 2px 6px #0003}.option-slider[_ngcontent-%COMP%]:focus::-moz-range-thumb{box-shadow:0 0 0 3px #7064fb4d,0 2px 6px #0003}.test-voice-btn[_ngcontent-%COMP%]{width:100%;padding:.75rem 1rem;background:var(--color-primary);color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem}.test-voice-btn[_ngcontent-%COMP%]:hover{background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:0 2px 8px #7064fb4d}.test-voice-btn[_ngcontent-%COMP%]:active{transform:translateY(0);box-shadow:0 1px 4px #7064fb4d}.test-voice-btn[_ngcontent-%COMP%]:focus{outline:none;box-shadow:0 0 0 3px #7064fb4d}.test-voice-btn[_ngcontent-%COMP%]:disabled{background:var(--color-bg-secondary);color:var(--color-text-secondary);cursor:not-allowed;transform:none;box-shadow:none}.test-voice-link[_ngcontent-%COMP%]{text-decoration-thickness:1.5px;text-underline-offset:3px;background:transparent;border:none;padding:0;font-size:.775rem;font-weight:400;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;text-decoration:underline}.test-voice-link[_ngcontent-%COMP%]:hover{color:var(--color-primary-hover, var(--color-primary));text-decoration-thickness:2px}.test-voice-link[_ngcontent-%COMP%]:active{opacity:.8}.test-voice-link[_ngcontent-%COMP%]:focus{outline:2px solid var(--color-primary);outline-offset:2px}.test-voice-link[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:20px;width:20px;height:20px}.notification-error[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem;margin-top:.75rem;background-color:#d32f2f1a;border:1px solid rgba(211,47,47,.3);border-radius:6px;font-size:.8125rem;line-height:1.5}.notification-error[_ngcontent-%COMP%] .error-icon[_ngcontent-%COMP%]{color:#d32f2f;font-size:20px;width:20px;height:20px;flex-shrink:0;margin-top:2px}.notification-error[_ngcontent-%COMP%] .error-message[_ngcontent-%COMP%]{color:var(--color-text);flex:1}.notification-error[_ngcontent-%COMP%]{margin-top:.75rem;padding:.75rem;background-color:#f443361a;border:1px solid rgba(244,67,54,.3);border-radius:6px;display:flex;align-items:flex-start;gap:.5rem}.notification-error[_ngcontent-%COMP%] .error-icon[_ngcontent-%COMP%]{color:#f44336;font-size:20px;width:20px;height:20px;flex-shrink:0;margin-top:2px}.notification-error[_ngcontent-%COMP%] .error-message[_ngcontent-%COMP%]{font-size:.8125rem;color:var(--color-text);line-height:1.5;flex:1}']})};var Ye=class l{destroy$=new C;currentProject=null;currentThread=null;messagesSubject=new b([]);isThinkingSubject=new b(!1);currentChoiceSubject=new b(null);projectTitleSubject=new b("Coday");currentInviteEventSubject=new b(null);messageToRestoreSubject=new b("");threadUpdateEventSubject=new b(null);currentChoiceEvent=null;thinkingTimeout=null;accumulatedChunks="";streamingTextSubject=new b("");subThreadEventsSubject=new C;subThreadEvents$=this.subThreadEventsSubject.asObservable();subThreadEventBuffers=new Map;getBufferedSubThreadEvents(e){return this.subThreadEventBuffers.get(e)??[]}messages$=this.messagesSubject.asObservable();streamingText$=this.streamingTextSubject.asObservable();isThinking$=this.isThinkingSubject.asObservable();currentChoice$=this.currentChoiceSubject.asObservable();currentInviteEvent$=this.currentInviteEventSubject.asObservable();messageToRestore$=this.messageToRestoreSubject.asObservable();threadUpdateEvent$=this.threadUpdateEventSubject.asObservable();connectionStatus$;tabTitleService=null;eventStream=v(ze);messageApi=v(Ue);userService=v(be);constructor(){this.connectionStatus$=this.eventStream.connectionStatus$,this.initializeEventHandling()}setTabTitleService(e){this.tabTitleService=e}connectToThread(e,n){this.currentProject=e,this.currentThread=n,this.eventStream.connectToThread(e,n)}loadHistoryFromRest(e){for(let n of e){let t=Be(n);t&&this.handleEvent(t)}}resetMessages(){this.messagesSubject.next([]),this.currentChoiceSubject.next(null),this.currentInviteEventSubject.next(null),this.currentChoiceEvent=null,this.accumulatedChunks="",this.streamingTextSubject.next(""),this.subThreadEventBuffers.clear(),this.stopThinking()}sendMessage(e){if(!this.currentProject||!this.currentThread){console.error("[CODAY] Cannot send message: no project or thread selected");return}let n=this.currentInviteEventSubject.value;if(n){this.isThinkingSubject.next(!0),this.tabTitleService?.setSystemActive(),this.currentInviteEventSubject.next(null);let t=n.buildAnswer(e);this.messageApi.sendMessage(t).subscribe({error:i=>{console.error("[CODAY] Send invite answer error:",i),this.currentInviteEventSubject.next(n),this.stopThinking()}})}else this.messageApi.sendFreeMessage(e).subscribe({error:t=>{console.error("[CODAY] Send error:",t)}})}sendChoice(e){if(!this.currentProject||!this.currentThread){console.error("[CODAY] Cannot send choice: no project or thread selected");return}if(this.currentChoiceEvent){this.isThinkingSubject.next(!0),this.tabTitleService?.setSystemActive();let n=this.currentChoiceEvent.buildAnswer(e);this.currentChoiceSubject.next(null),this.currentChoiceEvent=null,this.messageApi.sendMessage(n).subscribe({next:()=>{},error:t=>{console.error("[CODAY-CHOICE] Choice error:",t),this.stopThinking()}})}else console.error("[CODAY-CHOICE] No choice event available for choice:",e)}deleteMessage(e){let n=this.messagesSubject.value.find(i=>i.id===e),t=this.extractTextContentFromMessage(n);return this.messageApi.deleteMessage(e).pipe(J(i=>{i.success&&(this.removeMessagesFromIndex(e),t.trim()&&this.messageToRestoreSubject.next(t))}))}getCurrentProjectTitle(){return this.projectTitleSubject.value}getCurrentInviteEvent(){return this.currentInviteEventSubject.value}setThinkingForPendingMessage(){this.isThinkingSubject.next(!0),this.tabTitleService?.setSystemActive()}initializeEventHandling(){this.eventStream.events$.pipe(p(this.destroy$)).subscribe({next:e=>this.handleEvent(e),error:e=>console.error("[CODAY] Event stream error:",e),complete:()=>console.log("[CODAY] Event stream completed")})}handleEvent(e){if(e.threadId&&e.threadId!==this.currentThread){let n=this.subThreadEventBuffers.get(e.threadId);n?n.push(e):this.subThreadEventBuffers.set(e.threadId,[e]),this.subThreadEventsSubject.next(e);return}e instanceof Re?this.handleMessageEvent(e):e instanceof ke?this.handleTextChunkEvent(e):e instanceof xe?this.handleTextEvent(e):e instanceof Pe?this.handleAnswerEvent(e):e instanceof Ie?this.handleErrorEvent(e):e instanceof Ve?this.handleWarnEvent(e):e instanceof U?this.handleThinkingEvent(e):e instanceof je?this.handleToolRequestEvent(e):e instanceof We?this.handleToolResponseEvent(e):e instanceof Ne?this.handleChoiceEvent(e):e instanceof Te?this.handleHeartBeatEvent(e):e instanceof we?this.handleInviteEvent(e):e instanceof Ae?this.handleThreadUpdateEvent(e):e instanceof Fe?this.handleDelegationEvent(e):e instanceof De||e instanceof Le||console.warn("[CODAY] Unhandled event type:",e.type)}handleDelegationEvent(e){if(console.log("[CODAY] DelegationEvent received:",e.subThreadId,e.agentName),this.messagesSubject.value.findIndex(i=>i.subThreadId===e.subThreadId)===-1){let i={id:e.timestamp,role:"system",speaker:e.agentName,content:[{type:"text",content:""}],timestamp:new Date,type:"delegation",subThreadId:e.subThreadId,delegationAgentName:e.agentName};this.addMessage(i)}}handleThreadUpdateEvent(e){this.threadUpdateEventSubject.next(e)}handleMessageEvent(e){e.role==="assistant"&&this.accumulatedChunks&&(this.accumulatedChunks="",this.streamingTextSubject.next(""));let n={id:e.timestamp,role:e.role,speaker:e.name,content:e.content,timestamp:e.date,type:"text"};this.addMessage(n)}handleTextChunkEvent(e){this.accumulatedChunks+=e.chunk,this.streamingTextSubject.next(this.accumulatedChunks)}handleTextEvent(e){let n={id:e.timestamp,role:e.speaker?"assistant":"system",speaker:e.speaker??"System",content:[{type:"text",content:e.text}],timestamp:e.date,type:e.speaker?"text":"technical"};this.addMessage(n)}handleAnswerEvent(e){let n=this.currentInviteEventSubject.value;if(n){let i=!!e.parentKey&&e.parentKey===n.timestamp,o=!e.parentKey&&e.date>=n.date;(i||o)&&this.currentInviteEventSubject.next(null)}if(e.silent)return;let t={id:e.timestamp,role:"user",speaker:e.name??this.userService.getUsername()??"User",content:[{type:"text",content:e.answer}],timestamp:e.date,type:"text",parentKey:e.parentKey,invite:e.invite};this.addMessage(t)}handleErrorEvent(e){let n={id:e.timestamp,role:"system",speaker:"System",content:[{type:"text",content:`Error: ${JSON.stringify(e.error)}`}],timestamp:e.date,type:"error"};this.addMessage(n)}handleWarnEvent(e){let n={id:e.timestamp,role:"system",speaker:"System",content:[{type:"text",content:`Warning: ${JSON.stringify(e.warning)}`}],timestamp:e.date,type:"warning"};this.addMessage(n)}handleThinkingEvent(e){this.currentInviteEventSubject.value||this.currentChoiceEvent||(this.clearThinkingTimeout(),this.isThinkingSubject.next(!0),this.tabTitleService?.setSystemActive(),this.thinkingTimeout=setTimeout(()=>{this.isThinkingSubject.next(!1),this.thinkingTimeout=null,this.tabTitleService?.setSystemInactive()},U.debounce+1e3))}handleToolRequestEvent(e){let n={id:e.timestamp,role:"system",speaker:"System",content:[{type:"text",content:e.toSingleLineString()}],timestamp:e.date,type:"technical",eventId:e.timestamp};this.addMessage(n)}handleToolResponseEvent(e){let n={id:e.timestamp,role:"system",speaker:"System",content:[{type:"text",content:e.toSingleLineString()}],timestamp:e.date,type:"technical",eventId:e.timestamp};this.addMessage(n)}handleChoiceEvent(e){this.stopThinking(),this.currentChoiceEvent=e,this.tabTitleService?.setSystemInactive();let n=e.options.map(i=>({value:i,label:i})),t=e.optionalQuestion?`${e.optionalQuestion} ${e.invite}`:e.invite;this.currentChoiceSubject.next({options:n,label:t,allowFreeText:e.allowFreeText})}handleHeartBeatEvent(e){}handleInviteEvent(e){if(this.stopThinking(),e.invite===Oe)this.currentInviteEventSubject.next(e),this.tabTitleService?.setSystemInactive();else{let t={id:e.timestamp,role:"assistant",speaker:"Assistant",content:[{type:"text",content:e.invite}],timestamp:e.date,type:"text"};this.addMessage(t),this.messagesSubject.value.some(_=>_.parentKey===e.timestamp||_.role==="user"&&_.timestamp>e.date||_.role==="assistant"&&_.timestamp>e.date)||(this.currentInviteEventSubject.next(e),this.tabTitleService?.setSystemInactive())}}addMessage(e){let n=this.messagesSubject.value;n.some(t=>t.id===e.id)||this.messagesSubject.next([...n,e])}removeMessagesFromIndex(e){let n=this.messagesSubject.value,t=n.findIndex(o=>o.id===e);if(t===-1||t===0)return;let i=n.slice(0,t);this.messagesSubject.next(i),this.stopThinking()}extractTextContentFromMessage(e){return e?e.content.filter(n=>n.type==="text").map(n=>n.content).join(`
5
-
6
- `):""}clearThinkingTimeout(){this.thinkingTimeout&&(clearTimeout(this.thinkingTimeout),this.thinkingTimeout=null)}stopThinking(){this.clearThinkingTimeout(),this.isThinkingSubject.next(!1),this.tabTitleService&&this.tabTitleService.setSystemInactive()}ngOnDestroy(){this.clearThinkingTimeout(),this.destroy$.next(),this.destroy$.complete(),this.currentInviteEventSubject.complete(),this.messageToRestoreSubject.complete(),this.threadUpdateEventSubject.complete(),this.streamingTextSubject.complete(),this.eventStream.disconnect()}static \u0275fac=function(n){return new(n||l)};static \u0275prov=P({token:l,factory:l.\u0275fac,providedIn:"root"})};function ct(l,e){if(l&1&&(a(0,"div",3),s(1),r()),l&2){let n=k();c(),y("\u274C ",n.errorMessage)}}var Ke=class l{dialogRef=v(pe);data=v(ge);jsonContent;errorMessage="";title;constructor(){this.jsonContent=this.data.initialContent,this.title=this.data.title||this.getDefaultTitle(this.data.configType,this.data.projectName)}getDefaultTitle(e,n){return e==="user"?"User Configuration":`Project Configuration: ${n||"Unknown"}`}onSave(){this.errorMessage="";let e;try{e=JSON.parse(this.jsonContent)}catch(n){this.errorMessage=`Invalid JSON syntax: ${n instanceof Error?n.message:"Unknown error"}`;return}this.dialogRef.close(e)}onCancel(){this.dialogRef.close()}static \u0275fac=function(n){return new(n||l)};static \u0275cmp=E({type:l,selectors:[["app-json-editor"]],decls:13,vars:3,consts:[["mat-dialog-title",""],["mat-icon-button","","title","Close",1,"close-button",3,"click"],["spellcheck","false","placeholder","Enter JSON configuration...",1,"json-textarea",3,"ngModelChange","ngModel"],[1,"error-message"],["align","end"],["matButton","",3,"click"],["matButton","filled","color","primary",3,"click"]],template:function(n,t){n&1&&(a(0,"div",0),s(1),a(2,"button",1),d("click",function(){return t.onCancel()}),a(3,"mat-icon"),s(4,"close"),r()()(),a(5,"mat-dialog-content")(6,"textarea",2),h("ngModelChange",function(o){return m(t.jsonContent,o)||(t.jsonContent=o),o}),r(),T(7,ct,2,1,"div",3),r(),a(8,"mat-dialog-actions",4)(9,"button",5),d("click",function(){return t.onCancel()}),s(10,"Cancel"),r(),a(11,"button",6),d("click",function(){return t.onSave()}),s(12,"Save"),r()()),n&2&&(c(),y(" ",t.title," "),c(5),g("ngModel",t.jsonContent),c(),w(t.errorMessage?7:-1))},dependencies:[ce,D,W,R,A,j,ve,fe,me,he,ue],styles:["[mat-dialog-title][_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center}[mat-dialog-title][_ngcontent-%COMP%] .close-button[_ngcontent-%COMP%]{margin-left:auto}mat-dialog-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem;min-height:400px}.json-textarea[_ngcontent-%COMP%]{flex:1;min-height:300px;max-height:80vh;padding:1rem;font-family:Monaco,Menlo,Ubuntu Mono,Consolas,monospace;font-size:.875rem;line-height:1.5;background:var(--color-code-bg);color:var(--color-text);border:1px solid var(--color-border);border-radius:4px;resize:vertical;outline:none;transition:border-color .2s}.json-textarea[_ngcontent-%COMP%]:focus{border-color:var(--color-primary)}.json-textarea[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary);opacity:.6}.error-message[_ngcontent-%COMP%]{padding:.75rem 1rem;border-radius:4px;font-size:.875rem;line-height:1.4;background:#dc26261a;color:#dc2626;border:1px solid rgba(220,38,38,.3)}"]})};export{St as a,Ct as b,L as c,Je as d,Ye as e,Ke as f};
@@ -1,6 +0,0 @@
1
- import{a as Vt}from"./chunk-32WVX5ZP.js";import{c as Ve}from"./chunk-H2FHPYWP.js";import{a as Fe}from"./chunk-MLVWHS7Q.js";import{a as At,b as Ae}from"./chunk-XEXRIFJE.js";import{a as Ce}from"./chunk-7WF5A3H7.js";import{c as Ft}from"./chunk-JQYJDI3L.js";import{a as De,e as wt,f as St,i as Mt}from"./chunk-BCOH5IGB.js";import{a as Tt,b as Pt,c as kt}from"./chunk-VR3I4RKJ.js";import{a as ne,c as Ie}from"./chunk-MZT6I3S3.js";import{o as Ot,p as It,q as Re,r as U,s as Dt,t as Ne,y as Rt,z as Nt}from"./chunk-N347WQAU.js";import{a as L,b as Et,c as fe}from"./chunk-3ZLLFAXF.js";import{$b as ht,Ab as tt,Bb as y,D as J,Db as m,Eb as _e,F as se,Fb as c,Ga as de,Jb as ee,Jc as vt,Ka as l,Kb as W,Lb as H,Ma as me,Mc as xt,Nb as ue,Ob as ge,P as rt,Pb as te,Q as st,Qb as Ee,Rb as P,S as le,Sb as ye,Tb as d,Ub as S,V as lt,Vb as q,Wa as T,Wc as Oe,Yb as _t,Z as ce,Zb as ut,Zc as yt,_b as gt,a as $,ab as mt,ac as ft,b as X,bc as Te,ca as E,d as V,dc as Ct,ec as bt,fc as Pe,ga as u,gc as ke,h as Se,ha as g,i as Ze,jb as pe,jc as nt,kb as pt,lb as p,m as Q,ma as Z,mb as _,mc as x,n as Me,pa as ct,pb as O,pc as b,qb as I,qc as f,r as ve,rb as C,rc as he,sb as r,t as G,ta as M,tb as s,ua as K,ub as k,va as dt,vb as N,wb as A,xb as et,y as at,ya as xe}from"./chunk-KJ5SIUGY.js";var oe=class o{caseController=E(wt);cases=M([]);loadSubscription=null;currentNamespaceId=null;loadCases(t){t!==this.currentNamespaceId&&(this.currentNamespaceId=t,this.cases.set([])),this.loadSubscription?.unsubscribe(),this.loadSubscription=this.caseController.listMineByParentCase(t).subscribe({next:e=>{this.cases.set(e),this.loadSubscription=null},error:e=>{console.error(`[CaseState] Failed to load cases for namespace ${t}:`,e),this.loadSubscription=null}})}deleteCase(t){return this.caseController.deleteCase(t).pipe(lt(()=>this.reloadCurrent()))}setStarred(t,e){return at(()=>(this.patchFavorite(t,e),(e?this.caseController.starCase(t):this.caseController.unstarCase(t)).pipe(J(i=>(this.patchFavorite(t,!e),Me(()=>i))))))}patchFavorite(t,e){this.cases.update(n=>n.map(i=>i.id===t?X($({},i),{favorite:e}):i))}reloadCurrent(){this.currentNamespaceId&&this.loadCases(this.currentNamespaceId)}addCase(t){this.cases.update(e=>[t,...e])}updateCaseTitle(t,e){this.cases.update(n=>n.map(i=>i.id===t?X($({},i),{title:e}):i))}static \u0275fac=function(e){return new(e||o)};static \u0275prov=ce({token:o,factory:o.\u0275fac,providedIn:"root"})};var tn=["promptItem"],qt=(o,t)=>t.name;function nn(o,t){if(o&1&&(N(0,"span",5),d(1),A()),o&2){let e=t.$implicit;l(),_t("","{","","{","",e.name,"","}","","}")}}function on(o,t){if(o&1&&(N(0,"span",6),d(1),A()),o&2){let e=c().$implicit;l(),S(e.description)}}function an(o,t){if(o&1){let e=y();N(0,"li",3,0),_e("click",function(){let i=u(e).$implicit,a=c();return g(a.onItemClick(i))})("keydown.enter",function(){let i=u(e).$implicit,a=c();return g(a.onItemClick(i))})("mouseenter",function(){let i=u(e).$index,a=c();return g(a.activeIndex.set(i))}),N(2,"span",4),d(3),O(4,nn,2,5,"span",5,qt),A(),p(6,on,2,1,"span",6),A()}if(o&2){let e=t.$implicit,n=t.$index,i=c();P("prompt-autocomplete__item--active",i.isActive(n)),pe("aria-selected",i.isActive(n)),l(3),q(" /",e.name," "),l(),I(e.parameters),l(2),_(e.description?6:-1)}}var ie=class o{prompts=f.required();selected=b();dismissed=b();activeIndex=M(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=T({type:o,selectors:[["agentos-prompt-autocomplete"]],viewQuery:function(e,n){if(e&1&&ee(tn,5),e&2){let i;W(i=H())&&(n.itemRefs=i)}},inputs:{prompts:[1,"prompts"]},outputs:{selected:"selected",dismissed:"dismissed"},features:[dt],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&&(N(0,"ul",1),O(1,an,7,5,"li",2,qt),A()),e&2&&(l(),I(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 Lt={status:"loading",files:[],capability:"NONE"};function rn(o){return[...o].sort((t,e)=>new Date(e.lastModified).getTime()-new Date(t.lastModified).getTime())}var B=class o{controller=E(St);namespaceId=null;caseId=null;caseRefresh$=new Ze(void 0);namespaceRefresh$=new Ze(void 0);caseView=this.buildScopeView(this.caseRefresh$,()=>this.caseId,t=>this.controller.getCaseFilesManifestExchange(t));namespaceView=this.buildScopeView(this.namespaceRefresh$,()=>this.namespaceId,t=>this.controller.getNamespaceFilesManifestExchange(t));caseStatus=x(()=>this.caseView().status);namespaceStatus=x(()=>this.namespaceView().status);caseFiles=x(()=>this.caseView().files);namespaceFiles=x(()=>this.namespaceView().files);caseFileCount=x(()=>this.caseFiles().length);namespaceFileCount=x(()=>this.namespaceFiles().length);fileCount=x(()=>this.caseFileCount()+this.namespaceFileCount());canWriteCase=x(()=>this.caseView().capability==="READ_WRITE");canWriteNamespace=x(()=>this.namespaceView().capability==="READ_WRITE");caseSectionVisible=x(()=>this.caseView().status!=="forbidden");namespaceSectionVisible=x(()=>this.namespaceView().status!=="forbidden");caseUploading=M(!1);namespaceUploading=M(!1);loadScope(t){return t().pipe(G(e=>({status:"ready",files:rn(e.files??[]),capability:e.capability??"NONE"})),J(e=>{let n=e?.status===403||e?.status===404;return Q({status:n?"forbidden":"error",files:[],capability:"NONE"})}))}buildScopeView(t,e,n){let i=t.pipe(le(()=>{let a=e();return a?this.loadScope(()=>n(a)):Q(Lt)}),rt({bufferSize:1,refCount:!0}));return fe(i,{initialValue:Lt})}initializeForCase(t,e){this.namespaceId=t,this.caseId=e,this.refreshManifest()}initializeForNamespace(t){this.namespaceId=t,this.namespaceRefresh$.next()}clear(){this.namespaceId=null,this.caseId=null,this.refreshManifest()}refreshManifest(){this.caseRefresh$.next(),this.namespaceRefresh$.next()}refreshCase(){this.caseRefresh$.next()}refreshNamespace(){this.namespaceRefresh$.next()}getContent(t,e){let n=t==="CASE",i=n?this.caseId:this.namespaceId;return i?n?this.controller.getCaseFileContentExchange(i,e):this.controller.getNamespaceFileContentExchange(i,e):Me(()=>new Error("No active scope for content request"))}uploadFile(t,e){return V(this,null,function*(){let n=t==="CASE",i=n?this.caseId:this.namespaceId;if(!i)return{success:!1,error:"No active scope"};let a=n?this.caseUploading:this.namespaceUploading;a.set(!0);let h=n?this.controller.uploadCaseFileExchange(i,e):this.controller.uploadNamespaceFileExchange(i,e);return new Promise(w=>{h.subscribe({next:()=>{a.set(!1),this.refreshManifest(),w({success:!0})},error:v=>{a.set(!1),w({success:!1,error:this.uploadErrorMessage(v)})}})})})}uploadErrorMessage(t){let e={400:t?.error?.message??"This file type is not allowed.",409:"A file with this name already exists.",413:"This file is too large."};return t?.status!=null&&e[t.status]||t?.message||"Upload failed"}deleteFile(t,e){return V(this,null,function*(){let n=t==="CASE",i=n?this.caseId:this.namespaceId;if(!i)return{success:!1,error:"No active scope"};let a=n?this.controller.deleteCaseFileExchange(i,e):this.controller.deleteNamespaceFileExchange(i,e);return new Promise(h=>{a.subscribe({next:()=>{this.refreshManifest(),h({success:!0})},error:w=>h({success:!1,error:w?.message??"Delete failed"})})})})}downloadFile(t,e){let n=t==="CASE",i=n?this.caseId:this.namespaceId;if(!i)return Promise.resolve({success:!1,error:"No active scope"});let a=e.split("/").pop()??e,h=n?this.controller.downloadCaseFileExchange(i,e):this.controller.downloadNamespaceFileExchange(i,e);return new Promise(w=>{h.subscribe({next:v=>{this.saveBlob(v,a),w({success:!0})},error:v=>{console.error("[exchange] download failed",v),w({success:!1,error:v?.message??"Download failed"})}})})}downloadAll(t){return V(this,null,function*(){let e=t==="CASE"?this.caseFiles():this.namespaceFiles(),n=0,i=0;for(let a of e)i++>0&&(yield new Promise(w=>setTimeout(w,300))),(yield this.downloadFile(t,a.path)).success||n++;return{success:n===0,failedCount:n}})}saveBlob(t,e){let n=t instanceof Blob?t:new Blob([t]),i=window.URL.createObjectURL(n),a=document.createElement("a");a.href=i,a.download=e,a.style.display="none",document.body.appendChild(a),a.click(),document.body.removeChild(a),window.URL.revokeObjectURL(i)}static \u0275fac=function(e){return new(e||o)};static \u0275prov=ce({token:o,factory:o.\u0275fac,providedIn:"root"})};var sn=20*1024*1024,ln=["pdf","png","jpg","jpeg","gif","webp","zip","tar","gz","exe","bin","doc","docx","xls","xlsx","ppt","pptx"];function ot(o){return o.split(".").pop()?.toLowerCase()??""}function Le(o){switch(ot(o)){case"pdf":return"picture_as_pdf";case"csv":case"xlsx":case"xls":return"table_chart";case"txt":case"md":return"description";case"jpg":case"jpeg":case"png":case"gif":case"webp":return"image";case"zip":case"tar":case"gz":return"folder_zip";default:return"insert_drive_file"}}function zt(o){return o<1024?`${o} B`:o<1024*1024?`${(o/1024).toFixed(1)} KB`:`${(o/(1024*1024)).toFixed(1)} MB`}function $t(o){let t=new Date(o);return Number.isNaN(t.getTime())?o:t.toLocaleString(void 0,{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function Ut(o){switch(ot(o)){case"md":case"markdown":return"markdown";case"json":return"json";case"yaml":case"yml":return"yaml";case"html":case"htm":return"html";default:return"text"}}function cn(o){return!ln.includes(ot(o))}function dn(o){return o<=sn}function Wt(o){return cn(o.filename)&&dn(o.size)}function Ht(o){try{return JSON.stringify(JSON.parse(o),null,2)}catch(t){return o}}function Bt(o){let t=/^(case|namespace)-exchange__(editFiles|remove|moveFile)$/.exec(o??"");return t?t[1]:null}var mn=["backButton"];function pn(o,t){if(o&1){let e=y();r(0,"ds-empty-state",7)(1,"button",13),m("click",function(){u(e);let i=c();return g(i.onDownload())}),d(2,"Download instead"),s()()}}function _n(o,t){o&1&&(r(0,"div",8),k(1,"ds-spinner",14),s())}function un(o,t){if(o&1){let e=y();r(0,"ds-empty-state",9)(1,"button",13),m("click",function(){u(e);let i=c();return g(i.onDownload())}),d(2,"Download instead"),s()()}}function gn(o,t){if(o&1&&(k(0,"div",10),Pe(1,"agentosMarkdown")),o&2){let e=c();C("innerHTML",ke(1,1,e.content()),de)}}function hn(o,t){if(o&1&&k(0,"iframe",11),o&2){let e=c();C("srcdoc",e.displayContent(),de)("title","Preview of "+e.filename())}}function fn(o,t){if(o&1&&(r(0,"pre",12),d(1),s()),o&2){let e=c();l(),S(e.displayContent())}}var ze=class o{file=f.required();content=f(null);status=f("loading");canView=f(!0);closeRequested=b();downloadRequested=b();backButton=he("backButton",{read:xe});constructor(){me(()=>{this.backButton()?.nativeElement?.querySelector("button")?.focus()})}filename=x(()=>{let t=this.file().path;return t.split("/").pop()??t});format=x(()=>Ut(this.filename()));displayContent=x(()=>{let t=this.content();return t==null?"":this.format()==="json"?Ht(t):t});onClose(){this.closeRequested.emit()}onDownload(){this.downloadRequested.emit(this.file())}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=T({type:o,selectors:[["agentos-exchange-content-viewer"]],viewQuery:function(e,n){e&1&&ue(n.backButton,mn,5,xe),e&2&&ge()},inputs:{file:[1,"file"],content:[1,"content"],status:[1,"status"],canView:[1,"canView"]},outputs:{closeRequested:"closeRequested",downloadRequested:"downloadRequested"},decls:14,vars:4,consts:[["backButton",""],[1,"exchange-content-viewer"],[1,"exchange-content-viewer__header"],["icon","chevron_left","variant","default","title","Back to files",3,"action"],[1,"exchange-content-viewer__filename",3,"title"],["icon","download","variant","default",3,"action","title"],[1,"exchange-content-viewer__body"],["icon","insert_drive_file","title","Preview not available","hint","This file is binary or too large to display. Download it to view the contents."],[1,"exchange-content-viewer__center"],["icon","error_outline","title","Couldn't load this file","hint","The content could not be retrieved."],[1,"exchange-content-viewer__markdown",3,"innerHTML"],["sandbox","",1,"exchange-content-viewer__iframe",3,"srcdoc","title"],[1,"exchange-content-viewer__pre"],["type","button",1,"exchange-content-viewer__cta",3,"click"],["size","md","label","Loading content"]],template:function(e,n){e&1&&(r(0,"div",1)(1,"header",2)(2,"ds-icon-button",3,0),m("action",function(){return n.onClose()}),s(),r(4,"span",4),d(5),s(),r(6,"ds-icon-button",5),m("action",function(){return n.onDownload()}),s()(),r(7,"div",6),p(8,pn,3,0,"ds-empty-state",7)(9,_n,2,0,"div",8)(10,un,3,0,"ds-empty-state",9)(11,gn,2,3,"div",10)(12,hn,1,2,"iframe",11)(13,fn,2,1,"pre",12),s()()),e&2&&(l(4),C("title",n.filename()),l(),S(n.filename()),l(),C("title","Download "+n.filename()),l(2),_(n.canView()?n.status()==="loading"?9:n.status()==="error"?10:n.format()==="markdown"?11:n.format()==="html"?12:13:8))},dependencies:[Ne,Re,U,Vt],styles:['.exchange-content-viewer[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.exchange-content-viewer__header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.5rem .5rem .5rem .75rem;border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .1));flex-shrink:0}.exchange-content-viewer__filename[_ngcontent-%COMP%]{flex:1;min-width:0;font-size:.8125rem;font-weight:600;color:var(--color-text, #1d1d1f);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exchange-content-viewer__body[_ngcontent-%COMP%]{flex:1;min-height:0;overflow:auto;padding:.75rem}.exchange-content-viewer__iframe[_ngcontent-%COMP%]{width:100%;height:100%;min-height:320px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:8px;background:#fff}.exchange-content-viewer__cta[_ngcontent-%COMP%]{appearance:none;cursor:pointer;padding:.4rem .9rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:var(--color-primary, #007aff);color:var(--color-text-inverse, #ffffff);font-size:.8125rem;font-weight:600}.exchange-content-viewer__cta[_ngcontent-%COMP%]:hover{background:var(--color-primary-hover, #0066d6)}.exchange-content-viewer__cta[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--color-primary, #007aff);outline-offset:2px}.exchange-content-viewer__center[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;height:100%}.exchange-content-viewer__pre[_ngcontent-%COMP%]{margin:0;white-space:pre-wrap;word-break:break-word;font-family:var(--font-mono, ui-monospace, "SF Mono", "Menlo", monospace);font-size:.75rem;line-height:1.5;color:var(--color-text, #1d1d1f)}.exchange-content-viewer__markdown[_ngcontent-%COMP%]{font-size:.8125rem;line-height:1.6;color:var(--color-text, #1d1d1f);word-break:break-word}.exchange-content-viewer__markdown[_ngcontent-%COMP%] :where(img[_ngcontent-%COMP%], table[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]){max-width:100%}.exchange-content-viewer__markdown[_ngcontent-%COMP%] :where(pre[_ngcontent-%COMP%]){overflow-x:auto}'],changeDetection:0})};var Cn=(o,t)=>t.label;function bn(o,t){if(o&1&&(r(0,"span"),d(1),s()),o&2){let e=t.$implicit;ye(ft("exchange-item__badge exchange-item__badge--",e.variant)),l(),S(e.label)}}function vn(o,t){if(o&1){let e=y();r(0,"ds-icon-button",10),m("action",function(){u(e);let i=c();return g(i.deleteRequested.emit())}),s()}if(o&2){let e=c();C("title","Delete "+e.row().filename)}}var re=class o{row=f.required();active=f(!1);canWrite=f(!1);viewRequested=b();downloadRequested=b();deleteRequested=b();static toRow(t){return{path:t.path,filename:t.filename,meta:`${zt(t.size)} \xB7 ${$t(t.lastModified)}`,icon:Le(t.filename)}}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=T({type:o,selectors:[["agentos-exchange-item"]],inputs:{row:[1,"row"],active:[1,"active"],canWrite:[1,"canWrite"]},outputs:{viewRequested:"viewRequested",downloadRequested:"downloadRequested",deleteRequested:"deleteRequested"},decls:14,vars:10,consts:[[1,"exchange-item"],["type","button",1,"exchange-item__main",3,"click"],["aria-hidden","true",1,"exchange-item__icon","material-icons"],[1,"exchange-item__text"],[1,"exchange-item__name"],[1,"exchange-item__meta"],[3,"class"],[1,"exchange-item__actions"],["icon","download","variant","default",3,"action","title"],["icon","delete","variant","danger",3,"title"],["icon","delete","variant","danger",3,"action","title"]],template:function(e,n){e&1&&(r(0,"div",0)(1,"button",1),m("click",function(){return n.viewRequested.emit()}),r(2,"span",2),d(3),s(),r(4,"span",3)(5,"span",4),d(6),s(),r(7,"span",5),d(8),O(9,bn,2,4,"span",6,Cn),s()()(),r(11,"div",7)(12,"ds-icon-button",8),m("action",function(){return n.downloadRequested.emit()}),s(),p(13,vn,1,1,"ds-icon-button",9),s()()),e&2&&(P("exchange-item--active",n.active()),l(),pe("data-exchange-path",n.row().path)("aria-current",n.active()?"true":null)("aria-label","View "+n.row().filename),l(2),S(n.row().icon),l(3),S(n.row().filename),l(2),q(" ",n.row().meta," "),l(),I(n.row().badges),l(3),C("title","Download "+n.row().filename),l(),_(n.canWrite()?13:-1))},dependencies:[U],styles:[".exchange-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem;padding:.125rem .25rem .125rem .375rem;border-radius:8px;border:1px solid transparent;transition:background .15s ease,border-color .15s ease}.exchange-item[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04))}.exchange-item--active[_ngcontent-%COMP%]{background:var(--color-bg-hover, rgba(0, 0, 0, .04));border-color:var(--color-primary, #007aff)}.exchange-item__main[_ngcontent-%COMP%]{flex:1;min-width:0;display:flex;align-items:center;gap:.5rem;padding:.375rem .25rem;border:none;background:transparent;text-align:left;cursor:pointer;color:inherit;font:inherit}.exchange-item__main[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--color-primary, #007aff);outline-offset:2px;border-radius:6px}.exchange-item__icon[_ngcontent-%COMP%]{flex-shrink:0;font-size:1.25rem;color:var(--color-text-secondary, #6e6e73)}.exchange-item__text[_ngcontent-%COMP%]{flex:1;min-width:0;display:flex;flex-direction:column;gap:.125rem}.exchange-item__name[_ngcontent-%COMP%]{font-size:.8125rem;font-weight:600;color:var(--color-text, #1d1d1f);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exchange-item__meta[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;font-size:.6875rem;color:var(--color-text-secondary, #6e6e73);line-height:1.3}.exchange-item__badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:.0625rem .3rem;border-radius:999px;font-size:.5625rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#fff}.exchange-item__badge--warning[_ngcontent-%COMP%]{background:var(--color-warning, #ff9500)}.exchange-item__badge--info[_ngcontent-%COMP%]{background:var(--color-info, #5ac8fa)}.exchange-item__badge--success[_ngcontent-%COMP%]{background:var(--color-success, #34c759)}.exchange-item__badge--error[_ngcontent-%COMP%]{background:var(--color-error, #ff3b30)}.exchange-item__actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.125rem;flex-shrink:0}"],changeDetection:0})};var xn=(o,t)=>t.path;function yn(o,t){if(o&1){let e=y();r(0,"li",1)(1,"agentos-exchange-item",2),m("viewRequested",function(){let i=u(e).$implicit,a=c();return g(a.onView(i))})("downloadRequested",function(){let i=u(e).$implicit,a=c();return g(a.onDownload(i))})("deleteRequested",function(){let i=u(e).$implicit,a=c();return g(a.onDelete(i))}),s()()}if(o&2){let e=t.$implicit,n=c();l(),C("row",e)("active",n.isActive(e))("canWrite",n.canWrite())}}var $e=class o{rows=f.required();scope=f.required();activeFile=f(null);canWrite=f(!1);fileSelected=b();downloadRequested=b();deleteRequested=b();isActive(t){let e=this.activeFile();return e!==null&&e.scope===this.scope()&&e.path===t.path}onView(t){this.fileSelected.emit({scope:this.scope(),path:t.path})}onDownload(t){this.downloadRequested.emit({scope:this.scope(),path:t.path})}onDelete(t){this.deleteRequested.emit({scope:this.scope(),path:t.path})}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=T({type:o,selectors:[["agentos-exchange-file-list"]],inputs:{rows:[1,"rows"],scope:[1,"scope"],activeFile:[1,"activeFile"],canWrite:[1,"canWrite"]},outputs:{fileSelected:"fileSelected",downloadRequested:"downloadRequested",deleteRequested:"deleteRequested"},decls:3,vars:0,consts:[["role","list",1,"exchange-file-list"],["role","listitem",1,"exchange-file-list__row"],[3,"viewRequested","downloadRequested","deleteRequested","row","active","canWrite"]],template:function(e,n){e&1&&(r(0,"ul",0),O(1,yn,2,3,"li",1,xn),s()),e&2&&(l(),I(n.rows()))},dependencies:[re],styles:[".exchange-file-list[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.125rem}.exchange-file-list__row[_ngcontent-%COMP%]{display:block}"],changeDetection:0})};var wn=["fileInput"];function Sn(o,t){if(o&1){let e=y();r(0,"agentos-exchange-content-viewer",4),m("closeRequested",function(){u(e);let i=c();return g(i.onViewerClose())})("downloadRequested",function(i){u(e);let a=c();return g(a.downloadRequested.emit(i))}),s()}if(o&2){let e=c();C("file",t)("content",e.selectedContent())("status",e.contentStatus())("canView",e.canViewSelected())}}function Mn(o,t){if(o&1){let e=y();r(0,"ds-icon-button",20),m("action",function(){u(e);let i=c(3);return g(i.triggerUpload(i.CASE))}),s()}if(o&2){let e=c(3);C("disabled",e.caseUploading())}}function En(o,t){o&1&&(r(0,"span",15),d(1,"read-only"),s())}function Tn(o,t){if(o&1){let e=y();r(0,"ds-icon-button",21),m("action",function(){u(e);let i=c(3);return g(i.downloadAllRequested.emit(i.CASE))}),s()}}function Pn(o,t){o&1&&(r(0,"p",17),d(1,"Uploading\u2026"),s())}function kn(o,t){o&1&&(r(0,"div",18),k(1,"ds-spinner",22),s())}function On(o,t){if(o&1){let e=y();r(0,"div",19)(1,"span"),d(2,"Couldn't load case files."),s(),r(3,"button",23),m("click",function(){u(e);let i=c(3);return g(i.retryRequested.emit())}),d(4,"Retry"),s()()}}function In(o,t){if(o&1&&k(0,"ds-empty-state",24),o&2){let e=c(4);C("hint",e.canWriteCase()?"Upload a file to share it with this case.":void 0)}}function Dn(o,t){if(o&1){let e=y();r(0,"agentos-exchange-file-list",26),m("fileSelected",function(i){u(e);let a=c(4);return g(a.onFileSelected(i))})("downloadRequested",function(i){u(e);let a=c(4);return g(a.downloadRequested.emit(i))})("deleteRequested",function(i){u(e);let a=c(4);return g(a.deleteRequested.emit(i))}),s()}if(o&2){let e=c(4);C("rows",e.caseRows())("scope",e.CASE)("canWrite",e.canWriteCase())("activeFile",e.activeFile())}}function Rn(o,t){if(o&1&&p(0,In,1,1,"ds-empty-state",24)(1,Dn,1,4,"agentos-exchange-file-list",25),o&2){let e=c(3);_(e.caseFiles().length===0?0:1)}}function Nn(o,t){if(o&1&&(r(0,"section",9)(1,"div",11)(2,"h3",12),d(3,"Case files"),s(),r(4,"div",13),p(5,Mn,1,1,"ds-icon-button",14)(6,En,2,0,"span",15),p(7,Tn,1,0,"ds-icon-button",16),s()(),p(8,Pn,2,0,"p",17),p(9,kn,2,0,"div",18)(10,On,5,0,"div",19)(11,Rn,2,1),s()),o&2){let e,n=c(2);l(5),_(n.canWriteCase()?5:6),l(2),_(n.caseFiles().length>0?7:-1),l(),_(n.caseUploading()?8:-1),l(),_((e=n.caseStatus())==="loading"?9:e==="error"?10:11)}}function Fn(o,t){if(o&1){let e=y();r(0,"ds-icon-button",20),m("action",function(){u(e);let i=c(3);return g(i.triggerUpload(i.NAMESPACE))}),s()}if(o&2){let e=c(3);C("disabled",e.namespaceUploading())}}function Vn(o,t){o&1&&(r(0,"span",15),d(1,"read-only"),s())}function An(o,t){if(o&1){let e=y();r(0,"ds-icon-button",28),m("action",function(){u(e);let i=c(3);return g(i.downloadAllRequested.emit(i.NAMESPACE))}),s()}}function qn(o,t){o&1&&(r(0,"div",18),k(1,"ds-spinner",29),s())}function Ln(o,t){if(o&1){let e=y();r(0,"div",19)(1,"span"),d(2,"Couldn't load namespace files."),s(),r(3,"button",23),m("click",function(){u(e);let i=c(3);return g(i.retryRequested.emit())}),d(4,"Retry"),s()()}}function zn(o,t){if(o&1&&k(0,"ds-empty-state",30),o&2){let e=c(4);C("hint",e.canWriteNamespace()?"Upload a file to share it across this namespace.":void 0)}}function $n(o,t){if(o&1){let e=y();r(0,"agentos-exchange-file-list",26),m("fileSelected",function(i){u(e);let a=c(4);return g(a.onFileSelected(i))})("downloadRequested",function(i){u(e);let a=c(4);return g(a.downloadRequested.emit(i))})("deleteRequested",function(i){u(e);let a=c(4);return g(a.deleteRequested.emit(i))}),s()}if(o&2){let e=c(4);C("rows",e.namespaceRows())("scope",e.NAMESPACE)("canWrite",e.canWriteNamespace())("activeFile",e.activeFile())}}function Un(o,t){if(o&1&&p(0,zn,1,1,"ds-empty-state",30)(1,$n,1,4,"agentos-exchange-file-list",25),o&2){let e=c(3);_(e.namespaceFiles().length===0?0:1)}}function Wn(o,t){if(o&1&&(r(0,"section",9)(1,"div",11)(2,"h3",12),d(3,"Namespace files"),s(),r(4,"div",13),p(5,Fn,1,1,"ds-icon-button",14)(6,Vn,2,0,"span",15),p(7,An,1,0,"ds-icon-button",27),s()(),p(8,qn,2,0,"div",18)(9,Ln,5,0,"div",19)(10,Un,2,1),s()),o&2){let e,n=c(2);l(5),_(n.canWriteNamespace()?5:6),l(2),_(n.namespaceFiles().length>0?7:-1),l(),_((e=n.namespaceStatus())==="loading"?8:e==="error"?9:10)}}function Hn(o,t){o&1&&(r(0,"p",10),d(1,"No files available."),s())}function Bn(o,t){if(o&1){let e=y();r(0,"header",5)(1,"span",6),d(2,"Files"),s(),r(3,"ds-icon-button",7),m("action",function(){u(e);let i=c();return g(i.closeRequested.emit())}),s()(),r(4,"div",8),p(5,Nn,12,4,"section",9),p(6,Wn,11,3,"section",9),p(7,Hn,2,0,"p",10),s()}if(o&2){let e=c();l(5),_(e.caseSectionVisible()?5:-1),l(),_(e.namespaceSectionVisible()?6:-1),l(),_(!e.caseSectionVisible()&&!e.namespaceSectionVisible()?7:-1)}}var Ue=class o{caseFiles=f([]);caseStatus=f.required();caseSectionVisible=f(!1);canWriteCase=f(!1);caseUploading=f(!1);namespaceFiles=f([]);namespaceStatus=f.required();namespaceSectionVisible=f(!1);canWriteNamespace=f(!1);namespaceUploading=f(!1);activeFile=f(null);selectedContent=f(null);contentStatus=f("loading");canViewSelected=f(!0);fileSelected=b();uploadRequested=b();downloadRequested=b();downloadAllRequested=b();deleteRequested=b();retryRequested=b();closeRequested=b();viewerClosed=b();host=E(xe);fileInput=he("fileInput");CASE="CASE";NAMESPACE="NAMESPACE";caseRows=x(()=>this.caseFiles().map(re.toRow));namespaceRows=x(()=>this.namespaceFiles().map(re.toRow));lastSelectedPath=null;onFileSelected(t){this.lastSelectedPath=t.path,this.fileSelected.emit(t)}onViewerClose(){this.viewerClosed.emit();let t=this.lastSelectedPath;t&&queueMicrotask(()=>{let e=this.host.nativeElement.querySelectorAll("[data-exchange-path]");for(let n of Array.from(e))if(n.getAttribute("data-exchange-path")===t){n.focus();break}})}pendingUploadScope="CASE";triggerUpload(t){this.pendingUploadScope=t,this.fileInput()?.nativeElement.click()}onFileInputChange(t){let e=t.target,n=e.files?Array.from(e.files):[];n.length>0&&this.uploadRequested.emit({scope:this.pendingUploadScope,files:n}),e.value=""}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=T({type:o,selectors:[["agentos-exchange-drawer"]],viewQuery:function(e,n){e&1&&ue(n.fileInput,wn,5),e&2&&ge()},inputs:{caseFiles:[1,"caseFiles"],caseStatus:[1,"caseStatus"],caseSectionVisible:[1,"caseSectionVisible"],canWriteCase:[1,"canWriteCase"],caseUploading:[1,"caseUploading"],namespaceFiles:[1,"namespaceFiles"],namespaceStatus:[1,"namespaceStatus"],namespaceSectionVisible:[1,"namespaceSectionVisible"],canWriteNamespace:[1,"canWriteNamespace"],namespaceUploading:[1,"namespaceUploading"],activeFile:[1,"activeFile"],selectedContent:[1,"selectedContent"],contentStatus:[1,"contentStatus"],canViewSelected:[1,"canViewSelected"]},outputs:{fileSelected:"fileSelected",uploadRequested:"uploadRequested",downloadRequested:"downloadRequested",downloadAllRequested:"downloadAllRequested",deleteRequested:"deleteRequested",retryRequested:"retryRequested",closeRequested:"closeRequested",viewerClosed:"viewerClosed"},decls:5,vars:1,consts:[["fileInput",""],[1,"exchange-drawer"],[3,"file","content","status","canView"],["type","file","multiple","","aria-hidden","true","tabindex","-1",1,"exchange-drawer__file-input",3,"change"],[3,"closeRequested","downloadRequested","file","content","status","canView"],[1,"exchange-drawer__header"],[1,"exchange-drawer__title"],["icon","close","variant","default","title","Close files panel",3,"action"],[1,"exchange-drawer__sections"],[1,"exchange-drawer__section"],[1,"exchange-drawer__no-access"],[1,"exchange-drawer__section-header"],[1,"exchange-drawer__section-title"],[1,"exchange-drawer__section-actions"],["icon","upload_file","variant","primary","title","Upload a file",3,"disabled"],[1,"exchange-drawer__readonly-badge"],["icon","download","variant","default","title","Download all case files"],[1,"exchange-drawer__inflight"],[1,"exchange-drawer__center"],["role","alert",1,"exchange-drawer__error"],["icon","upload_file","variant","primary","title","Upload a file",3,"action","disabled"],["icon","download","variant","default","title","Download all case files",3,"action"],["size","md","label","Loading case files"],["type","button",1,"exchange-drawer__retry",3,"click"],["icon","folder_open","title","No case files",3,"hint"],[3,"rows","scope","canWrite","activeFile"],[3,"fileSelected","downloadRequested","deleteRequested","rows","scope","canWrite","activeFile"],["icon","download","variant","default","title","Download all namespace files"],["icon","download","variant","default","title","Download all namespace files",3,"action"],["size","md","label","Loading namespace files"],["icon","folder_shared","title","No namespace files",3,"hint"]],template:function(e,n){if(e&1&&(r(0,"div",1),p(1,Sn,1,4,"agentos-exchange-content-viewer",2)(2,Bn,8,3),r(3,"input",3,0),m("change",function(a){return n.onFileInputChange(a)}),s()()),e&2){let i;l(),_((i=n.activeFile())?1:2,i)}},dependencies:[U,Ne,Re,$e,ze],styles:[".exchange-drawer[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.exchange-drawer__header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .5rem .5rem .75rem;border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .1));flex-shrink:0}.exchange-drawer__title[_ngcontent-%COMP%]{font-size:.875rem;font-weight:700;color:var(--color-text, #1d1d1f)}.exchange-drawer__sections[_ngcontent-%COMP%]{flex:1;min-height:0;overflow:auto;padding:.5rem;display:flex;flex-direction:column;gap:1rem}.exchange-drawer__section-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:0 .25rem .25rem}.exchange-drawer__section-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.exchange-drawer__center[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;padding:1.5rem}.exchange-drawer__error[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .75rem;border-radius:8px;font-size:.8125rem;color:var(--color-error, #ff3b30);background:var(--color-bg-hover, rgba(0, 0, 0, .04))}.exchange-drawer__retry[_ngcontent-%COMP%]{appearance:none;cursor:pointer;border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:6px;background:transparent;padding:.2rem .6rem;font-size:.75rem;font-weight:600;color:var(--color-text, #1d1d1f)}.exchange-drawer__retry[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04))}.exchange-drawer__retry[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--color-primary, #007aff);outline-offset:2px}.exchange-drawer__inflight[_ngcontent-%COMP%]{margin:0 0 .25rem;padding:0 .25rem;font-size:.75rem;color:var(--color-text-secondary, #6e6e73)}.exchange-drawer__section-title[_ngcontent-%COMP%]{margin:0;font-size:.6875rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-secondary, #6e6e73)}.exchange-drawer__readonly-badge[_ngcontent-%COMP%]{font-size:.5625rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-secondary, #6e6e73);border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:999px;padding:.0625rem .375rem}.exchange-drawer__no-access[_ngcontent-%COMP%]{margin:0;padding:1.5rem .75rem;text-align:center;font-size:.8125rem;color:var(--color-text-secondary, #6e6e73)}.exchange-drawer__file-input[_ngcontent-%COMP%]{display:none}"],changeDetection:0})};function jn(o,t){if(o&1&&(r(0,"p",1),d(1),s()),o&2){let e=c();l(),S(e.actionError())}}var We=class o{route=E(ne);destroyRef=E(Z);state=E(B);closeRequested=b();selectedFile=M(null);selectedContent=M(null);contentStatus=M("loading");canViewSelected=M(!0);actionError=M(null);pendingDelete=M(null);confirmOpen=x(()=>this.pendingDelete()!==null);deleteMessage=x(()=>{let t=this.pendingDelete();return t?`Delete "${t.path.split("/").pop()??t.path}"? This action cannot be undone.`:""});activeCaseId=null;constructor(){this.route.queryParams.pipe(L()).subscribe(t=>{let e=t.ns,n=t.case;if(e&&n){if(n===this.activeCaseId)return;this.activeCaseId=n,this.resetSelection(),this.state.initializeForCase(e,n)}else this.activeCaseId!==null&&(this.activeCaseId=null,this.state.clear())}),K(t=>t(()=>this.state.clear()))}onFileSelected(t){this.selectedFile.set(t),this.selectedContent.set(null);let e=this.findFile(t),n=e?Wt(e):!1;if(this.canViewSelected.set(n),!n){this.contentStatus.set("ready");return}this.contentStatus.set("loading"),this.state.getContent(t.scope,t.path).pipe(L(this.destroyRef)).subscribe({next:i=>{this.isStillSelected(t)&&(this.selectedContent.set(i.content),this.contentStatus.set("ready"))},error:()=>{this.isStillSelected(t)&&this.contentStatus.set("error")}})}onUpload(t){return V(this,null,function*(){this.actionError.set(null);let e=[];for(let n of t.files){let i=yield this.state.uploadFile(t.scope,n);i.success||e.push({name:n.name,error:i.error??"Upload failed"})}e.length===1?this.actionError.set(e[0]?.error??"Upload failed"):e.length>1&&this.actionError.set(`${e.length} of ${t.files.length} files failed to upload: ${e.map(n=>n.name).join(", ")}`)})}onDownload(t){return V(this,null,function*(){this.actionError.set(null);let e=yield this.state.downloadFile(t.scope,t.path);e.success||this.actionError.set(e.error??"Download failed")})}onDownloadAll(t){return V(this,null,function*(){this.actionError.set(null);let e=yield this.state.downloadAll(t);e.failedCount>0&&this.actionError.set(e.failedCount===1?"A file failed to download.":`${e.failedCount} files failed to download.`)})}onDeleteRequest(t){this.pendingDelete.set(t)}onConfirmDelete(){return V(this,null,function*(){let t=this.pendingDelete();if(this.pendingDelete.set(null),t){let e=yield this.state.deleteFile(t.scope,t.path);e.success?this.isStillSelected(t)&&this.clearSelection():this.actionError.set(e.error??"Delete failed")}})}onCancelDelete(){this.pendingDelete.set(null)}onRetry(){this.state.refreshManifest()}onClose(){this.closeRequested.emit()}onViewerClosed(){this.clearSelection()}clearSelection(){this.selectedFile.set(null),this.selectedContent.set(null),this.contentStatus.set("loading"),this.canViewSelected.set(!0)}resetSelection(){this.clearSelection(),this.actionError.set(null)}findFile(t){return(t.scope==="CASE"?this.state.caseFiles():this.state.namespaceFiles()).find(n=>n.path===t.path)}isStillSelected(t){let e=this.selectedFile();return e!==null&&e.scope===t.scope&&e.path===t.path}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=T({type:o,selectors:[["agentos-exchange-shell"]],outputs:{closeRequested:"closeRequested"},decls:4,vars:17,consts:[[1,"exchange-shell"],["role","alert",1,"exchange-shell__upload-error"],[1,"exchange-shell__drawer",3,"fileSelected","uploadRequested","downloadRequested","downloadAllRequested","deleteRequested","retryRequested","viewerClosed","closeRequested","caseFiles","caseStatus","caseSectionVisible","canWriteCase","caseUploading","namespaceFiles","namespaceStatus","namespaceSectionVisible","canWriteNamespace","namespaceUploading","activeFile","selectedContent","contentStatus","canViewSelected"],["title","Delete file","confirmLabel","Delete","cancelLabel","Cancel",3,"confirmed","cancelled","open","message"]],template:function(e,n){e&1&&(r(0,"div",0),p(1,jn,2,1,"p",1),r(2,"agentos-exchange-drawer",2),m("fileSelected",function(a){return n.onFileSelected(a)})("uploadRequested",function(a){return n.onUpload(a)})("downloadRequested",function(a){return n.onDownload(a)})("downloadAllRequested",function(a){return n.onDownloadAll(a)})("deleteRequested",function(a){return n.onDeleteRequest(a)})("retryRequested",function(){return n.onRetry()})("viewerClosed",function(){return n.onViewerClosed()})("closeRequested",function(){return n.onClose()}),s()(),r(3,"ds-confirm-dialog",3),m("confirmed",function(){return n.onConfirmDelete()})("cancelled",function(){return n.onCancelDelete()}),s()),e&2&&(l(),_(n.actionError()?1:-1),l(),C("caseFiles",n.state.caseFiles())("caseStatus",n.state.caseStatus())("caseSectionVisible",n.state.caseSectionVisible())("canWriteCase",n.state.canWriteCase())("caseUploading",n.state.caseUploading())("namespaceFiles",n.state.namespaceFiles())("namespaceStatus",n.state.namespaceStatus())("namespaceSectionVisible",n.state.namespaceSectionVisible())("canWriteNamespace",n.state.canWriteNamespace())("namespaceUploading",n.state.namespaceUploading())("activeFile",n.selectedFile())("selectedContent",n.selectedContent())("contentStatus",n.contentStatus())("canViewSelected",n.canViewSelected()),l(),C("open",n.confirmOpen())("message",n.deleteMessage()))},dependencies:[Ue,Ot],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;height:100%;min-height:0}.exchange-shell[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.exchange-shell__drawer[_ngcontent-%COMP%]{flex:1;min-height:0;display:flex;flex-direction:column}.exchange-shell__upload-error[_ngcontent-%COMP%]{margin:0;padding:.5rem .75rem;font-size:.8125rem;color:var(--color-error, #ff3b30);background:var(--color-bg-hover, rgba(0, 0, 0, .04));flex-shrink:0}"],changeDetection:0})};var He=10,Qn=/\bnamespace\b/i;function we(o,t){return Qn.test(o)&&t?"NAMESPACE":"CASE"}function Be(o,t){return we(o,t)==="NAMESPACE"}function jt(o){let t=a=>o.filter(h=>h.uploadedScope===a).map(h=>h.file.name),e=[],n=t("CASE"),i=t("NAMESPACE");return n.length>0&&e.push(`[Files attached to the case exchange: ${n.join(", ")}]`),i.length>0&&e.push(`[Files attached to the namespace exchange: ${i.join(", ")}]`),e.join(`
2
- `)}function Qt(o,t=32){if(o.length<=t)return o;let e=t-1,n=Math.ceil(e/2),i=Math.floor(e/2);return`${o.slice(0,n)}\u2026${o.slice(o.length-i)}`}function Gt(o){let t=o.lastIndexOf(".");return t<=0||t===o.length-1?"FILE":o.slice(t+1).toUpperCase()}var Gn=["fileInput"],Kn=(o,t)=>t.id;function Yn(o,t){o&1&&(r(0,"span",10),d(1,"namespace"),s())}function Xn(o,t){if(o&1&&(r(0,"span",12),d(1),s()),o&2){let e=c().$implicit;l(),S(e.error)}}function Jn(o,t){if(o&1){let e=y();r(0,"div",6)(1,"span",7),d(2),s(),r(3,"span",8),d(4),s(),r(5,"span",9),d(6),s(),p(7,Yn,2,0,"span",10),r(8,"ds-icon-button",11),m("action",function(){let i=u(e).$implicit,a=c(3);return g(a.removed.emit(i.id))}),s(),p(9,Xn,2,1,"span",12),s()}if(o&2){let e=t.$implicit,n=c(3);P("composer-attachments__chip--error",e.status==="error")("composer-attachments__chip--uploaded",e.status==="uploaded"),l(),P("composer-attachments__icon--spinning",e.status==="uploading"),l(),S(n.chipIcon(e)),l(),C("title",e.file.name),l(),S(n.middleTruncate(e.file.name)),l(2),S(n.kindLabel(e.file.name)),l(),_(n.showNamespaceBadge(e)?7:-1),l(),C("title",n.removeTitle(e))("disabled",n.disabled()),l(),_(e.status==="error"&&e.error?9:-1)}}function Zn(o,t){if(o&1&&(r(0,"div",3),O(1,Jn,10,14,"div",5,Kn),s()),o&2){let e=c(2);l(),I(e.attachments())}}function eo(o,t){o&1&&(r(0,"p",4),d(1),s()),o&2&&(l(),S(t))}function to(o,t){if(o&1&&(r(0,"div",1),p(1,Zn,3,0,"div",3),p(2,eo,2,1,"p",4),s()),o&2){let e,n=c();l(),_(n.attachments().length>0?1:-1),l(),_((e=n.limitError())?2:-1,e)}}var be=class o{attachments=f.required();namespaceBadge=f(!1);limitError=f(null);disabled=f(!1);removed=b();filesSelected=b();fileInput=he("fileInput");kindLabel=Gt;middleTruncate=Qt;chipIcon(t){return t.status==="uploading"?"progress_activity":t.status==="uploaded"?"check_circle":Le(t.file.name)}showNamespaceBadge(t){return t.uploadedScope?t.uploadedScope==="NAMESPACE":this.namespaceBadge()}removeTitle(t){return t.status==="uploaded"?`Remove ${t.file.name} from the list (the uploaded file stays in the exchange)`:`Remove ${t.file.name}`}openPicker(){this.fileInput()?.nativeElement.click()}onFileInputChange(t){let e=t.target,n=e.files?Array.from(e.files):[];n.length>0&&this.filesSelected.emit(n),e.value=""}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=T({type:o,selectors:[["agentos-composer-attachments"]],viewQuery:function(e,n){e&1&&ue(n.fileInput,Gn,5),e&2&&ge()},inputs:{attachments:[1,"attachments"],namespaceBadge:[1,"namespaceBadge"],limitError:[1,"limitError"],disabled:[1,"disabled"]},outputs:{removed:"removed",filesSelected:"filesSelected"},decls:3,vars:1,consts:[["fileInput",""],[1,"composer-attachments"],["type","file","multiple","","aria-hidden","true","tabindex","-1",1,"composer-attachments__file-input",3,"change"],[1,"composer-attachments__chips"],["role","alert",1,"composer-attachments__limit"],[1,"composer-attachments__chip",3,"composer-attachments__chip--error","composer-attachments__chip--uploaded"],[1,"composer-attachments__chip"],["aria-hidden","true",1,"composer-attachments__icon","material-icons"],[1,"composer-attachments__name",3,"title"],[1,"composer-attachments__kind"],[1,"composer-attachments__badge"],["icon","close",3,"action","title","disabled"],["role","alert",1,"composer-attachments__error"]],template:function(e,n){e&1&&(p(0,to,3,2,"div",1),r(1,"input",2,0),m("change",function(a){return n.onFileInputChange(a)}),s()),e&2&&_(n.attachments().length>0||n.limitError()?0:-1)},dependencies:[U],styles:[".composer-attachments[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem;width:100%}.composer-attachments__chips[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.5rem}.composer-attachments__chip[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;padding:.375rem .375rem .375rem .625rem;border:1px solid var(--color-border, rgba(0, 0, 0, .12));border-radius:12px;background:var(--color-surface-secondary, rgba(0, 0, 0, .04));font-size:.8125rem}.composer-attachments__chip--error[_ngcontent-%COMP%]{border-color:var(--color-error, #d13438)}.composer-attachments__chip--uploaded[_ngcontent-%COMP%]{border-color:var(--color-success, #2e7d32)}.composer-attachments__icon[_ngcontent-%COMP%]{font-size:1.25rem;color:var(--color-text-secondary, rgba(0, 0, 0, .6))}.composer-attachments__icon--spinning[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_composer-attachments-spin 1s linear infinite}.composer-attachments__name[_ngcontent-%COMP%]{font-weight:500}.composer-attachments__kind[_ngcontent-%COMP%]{font-size:.6875rem;letter-spacing:.04em;color:var(--color-text-secondary, rgba(0, 0, 0, .6))}.composer-attachments__badge[_ngcontent-%COMP%]{padding:.0625rem .375rem;border-radius:999px;background:var(--color-primary, #0071e3);color:var(--color-text-inverse, #fff);font-size:.6875rem;font-weight:600}.composer-attachments__error[_ngcontent-%COMP%]{flex-basis:100%;font-size:.75rem;color:var(--color-error, #d13438)}.composer-attachments__limit[_ngcontent-%COMP%]{margin:0;font-size:.75rem;color:var(--color-error, #d13438)}.composer-attachments__file-input[_ngcontent-%COMP%]{display:none}@keyframes _ngcontent-%COMP%_composer-attachments-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}"],changeDetection:0})};var ae=class o{exchangeState=E(B);nextId=0;generation=0;dragDepth=0;attachments=M([]);limitError=M(null);isDragOver=M(!1);isUploading=M(!1);hasAttachments=x(()=>this.attachments().length>0);addFiles(t){if(this.isUploading())return;let e=Array.from(t);if(e.length===0)return;let n=this.attachments(),i=He-n.length;this.limitError.set(e.length>i?`You can attach up to ${He} files per message.`:null);let a=e.slice(0,Math.max(0,i)).map(h=>({id:`attachment-${this.nextId++}`,file:h,status:"pending"}));a.length>0&&this.attachments.set([...n,...a])}remove(t){this.isUploading()||(this.attachments.update(e=>e.filter(n=>n.id!==t)),this.attachments().length<He&&this.limitError.set(null))}reset(){this.generation++,this.attachments.set([]),this.limitError.set(null),this.isDragOver.set(!1),this.isUploading.set(!1),this.dragDepth=0}onDragEnter(t){this.holdsFiles(t)&&(t.preventDefault(),this.dragDepth++,this.isDragOver.set(!0))}onDragOver(t){this.holdsFiles(t)&&(t.preventDefault(),t.dataTransfer&&(t.dataTransfer.dropEffect="copy"))}onDragLeave(){this.dragDepth>0&&this.dragDepth--,this.dragDepth===0&&this.isDragOver.set(!1)}onDrop(t){if(!this.holdsFiles(t))return;t.preventDefault(),this.dragDepth=0,this.isDragOver.set(!1);let e=t.dataTransfer?.files;e&&e.length>0&&this.addFiles(e)}uploadAllAndBuildMention(t){return V(this,null,function*(){let e=this.generation;this.isUploading.set(!0);try{let n=!1;for(let i of this.attachments()){if(this.generation!==e)return null;if(i.status==="uploaded")continue;this.patch(i.id,{status:"uploading",error:void 0});let a=yield this.exchangeState.uploadFile(t,i.file);if(this.generation!==e)return null;a.success?this.patch(i.id,{status:"uploaded",uploadedScope:t}):(n=!0,this.patch(i.id,{status:"error",error:a.error??"Upload failed"}))}return n||this.generation!==e?null:jt(this.attachments())}finally{this.generation===e&&this.isUploading.set(!1)}})}holdsFiles(t){return t.dataTransfer?.types.includes("Files")??!1}patch(t,e){this.attachments.update(n=>n.map(i=>i.id===t?$($({},i),e):i))}static \u0275fac=function(e){return new(e||o)};static \u0275prov=ce({token:o,factory:o.\u0275fac})};var no=["composerInput"],oo=["messagesContainer"],io=(o,t)=>t.phaseIndex;function ao(o,t){o&1&&(r(0,"div",7)(1,"span",25),d(2,"upload_file"),s(),r(3,"span"),d(4,"Drop files to attach"),s()())}function ro(o,t){if(o&1&&(r(0,"span",10),d(1),s()),o&2){let e=c();l(),S(e.exchangeFileCount())}}function so(o,t){o&1&&(r(0,"div",12)(1,"p"),d(2,"No messages yet."),s()())}function lo(o,t){if(o&1&&(r(0,"span",31),d(1),s()),o&2){let e=c(2).$implicit;l(),q(" ",e.event.actor.role==="USER"?"You":e.event.actor.displayName||"Agent"," ")}}function co(o,t){if(o&1&&(r(0,"div",32)(1,"span",36),d(2,"session context"),s(),r(3,"pre",37),d(4),Pe(5,"json"),s()()),o&2){let e=c(2).$implicit;l(4),S(ke(5,1,e.event.sessionContext))}}function mo(o,t){if(o&1&&(r(0,"div",30),p(1,lo,2,1,"span",31),p(2,co,6,3,"div",32),r(3,"div",33),k(4,"div",34)(5,"ds-copy-button",35),s()()),o&2){let e=c().$implicit,n=c(2);P("case-chat__turn--user",e.event.actor.role==="USER")("case-chat__turn--agent",e.event.actor.role==="AGENT"),l(),_(e.isFirstInGroup?1:-1),l(),_(n.showTechnical()&&e.event.sessionContext?2:-1),l(2),C("innerHTML",e.html,de),l(),C("text",n.messageText(e))}}function po(o,t){if(o&1&&(r(0,"div",27)(1,"span",31),d(2),s(),k(3,"div",34),s()),o&2){let e=c(3);l(2),S(e.agentDisplayName()),l(),C("innerHTML",e.streamingHtml(),de)}}function _o(o,t){if(o&1&&(r(0,"div",39),d(1),s()),o&2){let e=c(2).$implicit;l(),S(e.item.detail)}}function uo(o,t){if(o&1&&(r(0,"details",28)(1,"summary",38),d(2),s(),p(3,_o,2,1,"div",39),s()),o&2){let e=c().$implicit;l(2),q("\u2699 System log \xB7 ",e.item.label),l(),_(e.item.detail?3:-1)}}function go(o,t){o&1&&d(0," \u23F3 ")}function ho(o,t){o&1&&d(0," \u2705 ")}function fo(o,t){o&1&&d(0," \u274C ")}function Co(o,t){if(o&1&&(r(0,"div",56)(1,"span",57),d(2,"Enrichment content"),s(),r(3,"pre"),d(4),s()()),o&2){let e=c().$implicit;l(4),S(e.enrichmentContent)}}function bo(o,t){if(o&1&&(r(0,"div",52)(1,"div",53)(2,"span",54),d(3),s(),r(4,"span",55),d(5),s()(),r(6,"div",56)(7,"span",57),d(8,"Prompt"),s(),r(9,"pre"),d(10),s()(),r(11,"div",56)(12,"span",57),d(13,"LLM output"),s(),r(14,"pre"),d(15),s()(),p(16,Co,5,1,"div",56),s()),o&2){let e=t.$implicit;P("case-chat__enrichment-phase--failed",!e.success),l(3),q("Phase ",e.phaseIndex),l(2),S(e.success?"\u2705":"\u274C"),l(5),S(e.prompt),l(5),S(e.llmOutput),l(),_(e.enrichmentContent?16:-1)}}function vo(o,t){if(o&1&&(r(0,"div",46)(1,"span",48),d(2,"Enrichment phases"),s(),O(3,bo,17,7,"div",51,io),s()),o&2){let e=c(3).$implicit;l(3),I(e.call.enrichmentPhases)}}function xo(o,t){if(o&1&&(r(0,"div",47)(1,"span",48),d(2,"Payload"),s(),r(3,"pre"),d(4),s()()),o&2){let e=c(3).$implicit;l(4),S(e.call.args)}}function yo(o,t){o&1&&(r(0,"pre"),d(1),s()),o&2&&(l(),S(t))}function wo(o,t){o&1&&(r(0,"span",49),d(1,"Running\u2026"),s())}function So(o,t){o&1&&(r(0,"span",50),d(1,"No output"),s())}function Mo(o,t){if(o&1&&(r(0,"div",45),p(1,vo,5,0,"div",46),p(2,xo,5,1,"div",47),r(3,"div",47)(4,"span",48),d(5,"Output"),s(),p(6,yo,2,1,"pre")(7,wo,2,0,"span",49)(8,So,2,0,"span",50),s()()),o&2){let e,n=c(2).$implicit,i=c(2);l(),_(i.showTechnical()&&(n.call.enrichmentPhases!=null&&n.call.enrichmentPhases.length)?1:-1),l(),_(n.call.args?2:-1),l(4),_((e=i.extractToolOutput(n.call))?6:n.call.response?8:7,e)}}function Eo(o,t){if(o&1){let e=y();r(0,"div",40)(1,"button",41),m("click",function(){u(e);let i=c().$implicit,a=c(2);return g(a.toggleToolCall(i.call.requestId))}),r(2,"span",42),p(3,go,1,0)(4,ho,1,0)(5,fo,1,0),s(),r(6,"span",43),d(7),s(),r(8,"span",44),d(9),s()(),p(10,Mo,9,3,"div",45),s()}if(o&2){let e=c().$implicit,n=c(2);P("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),l(),pe("aria-expanded",n.isToolCallExpanded(e.call.requestId)),l(2),_(e.call.response?e.call.response.success?4:5:3),l(4),S(e.call.toolName),l(2),S(n.isToolCallExpanded(e.call.requestId)?"\u25BC":"\u25B6"),l(),_(n.isToolCallExpanded(e.call.requestId)?10:-1)}}function To(o,t){if(o&1&&p(0,mo,6,8,"div",26)(1,po,4,2,"div",27)(2,uo,4,2,"details",28)(3,Eo,11,11,"div",29),o&2){let e=t.$implicit;_(e.kind==="message"?0:e.kind==="streaming"?1:e.kind==="technical"?2:3)}}function Po(o,t){if(o&1&&O(0,To,4,1,null,null,pt().trackTimelineItem,!0),o&2){let e=c();I(e.timeline())}}function ko(o,t){o&1&&(r(0,"div",13),k(1,"span",58)(2,"span",58)(3,"span",58),s())}function Oo(o,t){if(o&1){let e=y();r(0,"div",14)(1,"ds-icon-button",59),m("action",function(){u(e);let i=c();return g(i.onScrollToBottomClick())}),s()()}}function Io(o,t){if(o&1){let e=y();r(0,"div",16)(1,"agentos-prompt-autocomplete",60),m("selected",function(i){u(e);let a=c();return g(a.onPromptSelected(i))})("dismissed",function(){u(e);let i=c();return g(i.closeAutocomplete())}),s()()}if(o&2){let e=c();l(),C("prompts",e.slashSuggestions())}}function Do(o,t){if(o&1){let e=y();r(0,"ds-icon-button",61),m("action",function(){u(e),c();let i=te(17);return g(i.openPicker())}),s()}if(o&2){let e=c();C("disabled",!e.canStageFiles())}}function Ro(o,t){if(o&1){let e=y();r(0,"ds-icon-button",62),m("action",function(){u(e);let i=c();return g(i.interrupt())}),s()}}function No(o,t){if(o&1){let e=y();r(0,"ds-icon-button",63),m("action",function(){u(e);let i=c();return g(i.submit())}),s()}if(o&2){let e=c();C("title",e.preferences.composerHint())("disabled",!e.canSend)}}var Fo=64;function Kt(){let o=window.getSelection();return!!o&&o.toString().length>0}var je=class o{route=E(ne);http=E(Oe);zone=E(ct);destroyRef=E(Z);domSanitizer=E(yt);exchangeState=E(B);config=E(De);preferences=E(Ve);caseState=E(oe);promptState=E(Fe);userState=E(Ce);exchangeOpen=M(!1);exchangeFileCount=this.exchangeState.fileCount;attachments=E(ae);canAttach=this.exchangeState.canWriteCase;canStageFiles=x(()=>this.canAttach()&&!this.isRunning()&&!this.isTerminal()&&!this.attachments.isUploading());toggleExchange(){this.exchangeOpen.update(t=>!t)}caseId=this.route.snapshot.queryParams.case;namespaceId=this.route.snapshot.queryParams.ns;markdownRenderer=this.buildMarkdownRenderer();agentDisplayName=x(()=>{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=M([]);messageHtmlCache=new Map;inputValue=M("");isRunning=M(!1);isTerminal=M(!1);effectivePrompts=[];promptsLoaded=!1;slashPrefix$=new Se;slashSuggestions=M([]);static SHOW_TECHNICAL_KEY="agentos.case-chat.showTechnical";showTechnical=M(localStorage.getItem(o.SHOW_TECHNICAL_KEY)==="true");showTechnicalOverride=f(!1);streamingText=M("");streamingHtml=x(()=>{let t=this.streamingText();return t?this.renderMarkdown(t):""});namespaceTargeted=x(()=>Be(this.inputValue(),this.exchangeState.canWriteNamespace()));collapsedTools=M(new Set);isAtBottom=M(!0);scrollListenerCleanup=null;constructor(){this.slashPrefix$.pipe(se(60),le(t=>(this.promptsLoaded?Q(this.effectivePrompts):this.promptState.listEffective(this.namespaceId,this.userState.currentUser()?.id??"").pipe(J(()=>Q([])))).pipe(G(n=>({prefix:t,prompts:n})))),L(this.destroyRef)).subscribe(({prefix:t,prompts:e})=>{this.effectivePrompts=e,this.promptsLoaded=!0,this.slashSuggestions.set(e.filter(n=>n.name.toLowerCase().startsWith(t.toLowerCase())))}),K(()=>{this.showTechnical.set(this.showTechnicalOverride())}),K(()=>{this.isRunning()||this.isTerminal()||queueMicrotask(()=>{Kt()||this.composerInput?.nativeElement.focus()})}),K(()=>{this.timeline(),this.streamingText(),this.isAtBottom()&&queueMicrotask(()=>{Kt()||this.scrollToBottom()})}),me(()=>{this.attachScrollListener()})}baseTimeline=x(()=>{let t=this.events(),e=this.showTechnical(),n=new Map;for(let w of t)if(w.type==="ToolRequestEvent"){let v=w,D=v.toolRequestId??w.id,j=n.get(D);n.set(D,{requestId:D,toolName:v.toolName??"unknown",args:v.args??null,response:j?.response,enrichmentPhases:v.enrichmentPhases??null})}else if(w.type==="ToolResponseEvent"){let v=w,D=v.toolRequestId??w.id,j=n.get(D);n.set(D,{requestId:D,toolName:j?.toolName??v.toolName??"unknown",args:j?.args??null,response:v,enrichmentPhases:j?.enrichmentPhases??null})}let i=[],a=new Set,h=null;for(let w of t)if(w.type==="MessageEvent"){let v=w,D=v.actor.role,j=D!==h;h=D,i.push({kind:"message",event:v,html:this.messageHtmlCache.get(w.id)??"",isFirstInGroup:j})}else if(w.type==="ToolRequestEvent"||w.type==="ToolResponseEvent"){let v=w.toolRequestId??w.id;a.has(v)||(a.add(v),i.push({kind:"tool",call:n.get(v)})),h=null}else if(e){let v=this.toTechnicalItem(w);v&&(i.push({kind:"technical",item:v,eventId:w.id}),h=null)}return i});timeline=x(()=>{let t=this.baseTimeline();return this.streamingText().trim().length===0?t:[...t,{kind:"streaming"}]});trackTimelineItem(t,e){switch(e.kind){case"message":return e.event.id;case"tool":return e.call.requestId;case"technical":return e.eventId;case"streaming":return"streaming"}}get canSend(){return(!!this.inputValue().trim()||this.attachments.hasAttachments())&&!this.isRunning()&&!this.isTerminal()&&!this.attachments.isUploading()}ngOnInit(){this.connectSse(),this.route.queryParams.pipe(L(this.destroyRef)).subscribe(t=>{let e=t.case;e&&e!==this.caseId&&(this.caseId=e,this.reinitialise())})}ngOnDestroy(){this.eventSource?.close(),this.scrollListenerCleanup?.()}attachScrollListener(){let t=this.messagesContainer?.nativeElement;if(!t)return;let e=()=>{let n=t.scrollHeight-t.scrollTop-t.clientHeight;this.isAtBottom.set(n<=Fo)};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(),h=i.type,w=i.data;console.log("[AgentOS SSE] frame received",{sseEventName:h,dataLength:w?.length??0,dataPreview:w?.slice(0,120),receivedAtMs:a});try{let v=JSON.parse(w);this.zone.run(()=>{let D=this.events().length;if(v.type==="MessageEvent"){let R=v,Y=this.extractText(R);this.messageHtmlCache.has(v.id)||this.messageHtmlCache.set(v.id,this.renderMarkdown(Y))}this.events.update(R=>R.some(Y=>Y.id===v.id)?R:[...R,v]);let j=this.events().length;if(console.log("[AgentOS SSE] event processed",{sseEventName:h,eventType:v.type,eventId:v.id,beforeLen:D,afterLen:j,running:this.isRunning(),terminal:this.isTerminal()}),v.type==="TextChunkEvent"){let R=v.chunk;R&&this.streamingText.update(Y=>Y+R);return}if(v.type==="CaseUpdatedEvent"){let R=v;R.title&&this.caseState.updateCaseTitle(v.caseId,R.title);return}if(v.type==="CaseStatusEvent"){let R=v.status,Y=R==="KILLED"||R==="ERROR";if(this.isTerminal.set(Y),Y)this.isRunning.set(!1),this.eventSource?.close(),this.eventSource=null;else{let it=R==="RUNNING";this.isRunning.set(it),it||this.streamingText.set("")}return}if(v.type==="AgentFinishedEvent"){this.isRunning.set(!1),this.streamingText.set(""),this.anyToolResponseThisTurn&&this.exchangeState.refreshManifest(),this.anyToolResponseThisTurn=!1;return}if(v.type==="ToolResponseEvent"){this.anyToolResponseThisTurn=!0;let R=Bt(v.toolName);R==="case"?this.exchangeState.refreshCase():R==="namespace"&&this.exchangeState.refreshNamespace();return}})}catch(v){console.warn("[AgentOS SSE] failed to parse event data",{sseEventName:h,error:v,dataPreview:w?.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)})}}anyToolResponseThisTurn=!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.attachments.reset(),this.connectSse()}submitting=!1;submit(){return V(this,null,function*(){if(this.submitting||!this.canSend)return;let t=this.inputValue().trim();if(this.attachments.hasAttachments()){this.submitting=!0;try{let e=this.caseId,n=we(t,this.exchangeState.canWriteNamespace()),i=yield this.attachments.uploadAllAndBuildMention(n);if(i===null||this.caseId!==e)return;(yield this.postMessage(t?`${t}
3
-
4
- ${i}`:i))&&this.caseId===e&&(this.inputValue.set(""),this.attachments.reset())}finally{this.submitting=!1}return}this.inputValue.set(""),this.sendMessage(t)})}sendMessage(t){this.postMessage(t)}postMessage(t){return this.isRunning.set(!0),this.streamingText.set(""),ve(this.http.post(`${this.config.basePath}/api/cases/${this.caseId}/messages`,{content:t,userId:"default-user"})).then(()=>!0,e=>(console.error("[CaseChat] Failed to send message",e),this.isRunning.set(!1),!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})}messageText(t){return this.extractText(t.event)}renderMarkdown(t){if(!t)return"";let e=Pt.parse(t,{renderer:this.markdownRenderer,breaks:!0,gfm:!0,async:!1}),n=kt.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 Tt,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=T({type:o,selectors:[["agentos-case-chat"]],viewQuery:function(e,n){if(e&1&&ee(no,5)(oo,5)(ie,5),e&2){let i;W(i=H())&&(n.composerInput=i.first),W(i=H())&&(n.messagesContainer=i.first),W(i=H())&&(n.autocompleteRef=i.first)}},inputs:{showTechnicalOverride:[1,"showTechnicalOverride"]},features:[Te([ae])],decls:27,vars:21,consts:[["messagesContainer",""],["attachmentsUi",""],["composerInput",""],["position","end","drawerWidth","400px",3,"openChange","open","mobileFullWidth"],["dsDrawerSide","",3,"closeRequested"],["dsDrawerContent","",1,"case-chat__host"],[1,"case-chat",3,"dragenter","dragover","dragleave","drop"],["aria-hidden","true",1,"case-chat__drop-overlay"],[1,"case-chat__exchange-toggle"],["variant","default",3,"action","icon","title"],["aria-hidden","true",1,"case-chat__exchange-badge"],[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"],[3,"removed","filesSelected","attachments","namespaceBadge","limitError","disabled"],[1,"case-chat__composer-row"],["icon","add","variant","default","title","Attach files",3,"disabled"],["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,"material-icons"],[1,"case-chat__turn",3,"case-chat__turn--user","case-chat__turn--agent"],[1,"case-chat__turn","case-chat__turn--agent","case-chat__turn--streaming"],[1,"case-chat__log"],[1,"case-chat__tool-call",3,"case-chat__tool-call--pending","case-chat__tool-call--success","case-chat__tool-call--error"],[1,"case-chat__turn"],[1,"case-chat__role-label"],[1,"case-chat__session-context"],[1,"case-chat__bubble-wrapper"],[1,"case-chat__bubble","case-chat__message-text--markdown",3,"innerHTML"],["title","Copy message",1,"case-chat__bubble-copy",3,"text"],[1,"case-chat__session-context-label"],[1,"case-chat__session-context-body"],[1,"case-chat__log-summary"],[1,"case-chat__log-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","add","variant","default","title","Attach files",3,"action","disabled"],["icon","stop","variant","danger","title","Interrupt",3,"action"],["icon","send","variant","primary",3,"action","title","disabled"]],template:function(e,n){if(e&1){let i=y();r(0,"ds-drawer",3),ht("openChange",function(h){return u(i),gt(n.exchangeOpen,h)||(n.exchangeOpen=h),g(h)}),r(1,"agentos-exchange-shell",4),m("closeRequested",function(){return n.exchangeOpen.set(!1)}),s(),r(2,"div",5)(3,"div",6),m("dragenter",function(h){return n.canStageFiles()&&n.attachments.onDragEnter(h)})("dragover",function(h){return n.canStageFiles()&&n.attachments.onDragOver(h)})("dragleave",function(){return n.attachments.onDragLeave()})("drop",function(h){return n.canStageFiles()&&n.attachments.onDrop(h)}),p(4,ao,5,0,"div",7),r(5,"div",8)(6,"ds-icon-button",9),m("action",function(){return n.toggleExchange()}),s(),p(7,ro,2,1,"span",10),s(),r(8,"div",11,0),p(10,so,3,0,"div",12)(11,Po,2,0),p(12,ko,4,0,"div",13),s(),p(13,Oo,2,0,"div",14),r(14,"div",15),p(15,Io,2,1,"div",16),r(16,"agentos-composer-attachments",17,1),m("removed",function(h){return n.attachments.remove(h)})("filesSelected",function(h){return n.attachments.addFiles(h)}),s(),r(18,"div",18),p(19,Do,1,1,"ds-icon-button",19),r(20,"textarea",20,2),m("input",function(h){return n.onInput(h)})("keydown",function(h){return n.onKeydown(h)}),s(),r(22,"div",21)(23,"ds-icon-button",9),m("action",function(){return n.toggleShowTechnical()}),s(),p(24,Ro,1,0,"ds-icon-button",22)(25,No,1,2,"ds-icon-button",23),r(26,"ds-icon-button",24),m("action",function(){return n.kill()}),s()()()()()()()}e&2&&(ut("open",n.exchangeOpen),C("mobileFullWidth",!0),l(4),_(n.attachments.isDragOver()?4:-1),l(2),C("icon",n.exchangeOpen()?"chevron_right":"folder")("title","Files ("+n.exchangeFileCount()+")"),l(),_(n.exchangeFileCount()>0&&!n.exchangeOpen()?7:-1),l(3),_(n.timeline().length===0?10:11),l(2),_(n.isRunning()?12:-1),l(),_(n.isAtBottom()?-1:13),l(2),_(n.slashSuggestions().length>0?15:-1),l(),C("attachments",n.attachments.attachments())("namespaceBadge",n.namespaceTargeted())("limitError",n.attachments.limitError())("disabled",n.attachments.isUploading()),l(3),_(n.canAttach()?19:-1),l(),C("value",n.inputValue())("disabled",n.isRunning()||n.isTerminal()||n.attachments.isUploading()),l(3),C("icon",n.showTechnical()?"visibility_off":"bug_report")("title",n.showTechnical()?"Hide technical events":"Show technical events"),l(),_(n.isRunning()?24:25),l(2),C("disabled",n.isTerminal()))},dependencies:[U,Dt,It,We,ie,be,xt],styles:['[_nghost-%COMP%]{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.case-chat__host[_ngcontent-%COMP%]{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;height:100%;overflow:hidden}.case-chat__exchange-toggle[_ngcontent-%COMP%]{position:absolute;top:.5rem;right:.5rem;z-index:10}.case-chat__exchange-badge[_ngcontent-%COMP%]{position:absolute;top:-2px;right:-2px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--color-primary, #007aff);color:var(--color-text-inverse, #ffffff);font-size:.625rem;font-weight:700;line-height:16px;text-align:center;pointer-events:none}.case-chat[_ngcontent-%COMP%]{display:flex;flex-direction:column;flex:1;min-height:0;width:100%;padding:1rem;gap:1rem;position:relative}@media(min-width:900px){.case-chat[_ngcontent-%COMP%]{padding:1.5rem}}.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;align-self:flex-start;max-width:90%;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__turn[_ngcontent-%COMP%]{flex-shrink:0;display:flex;flex-direction:column;gap:6px;max-width:90%}.case-chat__turn--user[_ngcontent-%COMP%]{align-self:flex-end;align-items:flex-end;max-width:82%}.case-chat__turn--agent[_ngcontent-%COMP%]{align-self:flex-start;align-items:flex-start}.case-chat__turn--streaming[_ngcontent-%COMP%]{opacity:.95}.case-chat__role-label[_ngcontent-%COMP%]{font-family:Inter,sans-serif;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary, rgba(0, 0, 0, .35));line-height:1}.case-chat__bubble-wrapper[_ngcontent-%COMP%]{position:relative}.case-chat__bubble-wrapper[_ngcontent-%COMP%]:hover .case-chat__bubble-copy[_ngcontent-%COMP%]{opacity:1}.case-chat__bubble-copy[_ngcontent-%COMP%]{position:absolute;top:6px;right:6px;opacity:0;transition:opacity .15s ease;z-index:1}.case-chat__turn--user[_ngcontent-%COMP%] .case-chat__bubble-copy[_ngcontent-%COMP%]{--color-text-secondary: rgba(255, 255, 255, .7);--color-primary: rgba(255, 255, 255, .9)}.case-chat__bubble[_ngcontent-%COMP%]{background:var(--color-bubble-agent-bg, #f0f0ee);border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:12px 12px 12px 3px;box-shadow:0 1px 3px var(--color-shadow, rgba(0, 0, 0, .05));color:var(--color-text, #1d1d1f);padding:10px 14px;font-family:Inter,sans-serif;font-size:14px;font-weight:400;line-height:1.5;word-break:break-word}@media(min-width:900px){.case-chat__bubble[_ngcontent-%COMP%]{font-size:16px}}.case-chat__turn--user[_ngcontent-%COMP%] .case-chat__bubble[_ngcontent-%COMP%]{background:var(--color-bubble-user-bg, #6e6e73);color:var(--color-text-on-accent, #ffffff);border:none;border-radius:12px 12px 3px}.case-chat__turn--user[_ngcontent-%COMP%] .case-chat__bubble[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:#ffffffd9}.case-chat__log[_ngcontent-%COMP%]{flex-shrink:0;align-self:flex-start;width:fit-content;max-width:90%}.case-chat__log-summary[_ngcontent-%COMP%]{display:flex;align-items:center;gap:5px;font-family:ui-monospace,Menlo,monospace;font-size:10px;font-weight:600;color:var(--color-text-secondary, rgba(0, 0, 0, .4));letter-spacing:.02em;cursor:pointer;outline:none;list-style:none;background:none;border:none;padding:0}.case-chat__log-summary[_ngcontent-%COMP%]::-webkit-details-marker{display:none}.case-chat__log-body[_ngcontent-%COMP%]{background:var(--color-bubble-system-bg, #0f1115);color:var(--color-bubble-system-text, #e8eaf0);border-radius:6px;margin-top:4px;padding:10px 12px;font-family:ui-monospace,Menlo,monospace;font-size:11px;line-height:1.6;white-space:pre-wrap;word-break:break-word}.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__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;flex-direction:column;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__composer-row[_ngcontent-%COMP%]{display:flex;align-items:flex-end;gap:.5rem;width:100%}.case-chat__drop-overlay[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:30;pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;border:2px dashed var(--color-primary, #0071e3);border-radius:16px;background:color-mix(in srgb,var(--color-primary, #0071e3) 8%,transparent);color:var(--color-primary, #0071e3);font-weight:600}.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 Vo=["composerInput"];function Ao(o,t){o&1&&(r(0,"div",3)(1,"span",15),d(2,"upload_file"),s(),r(3,"span"),d(4,"Drop files to attach"),s()())}function qo(o,t){if(o&1){let e=y();r(0,"div",7)(1,"agentos-prompt-autocomplete",16),m("selected",function(i){u(e);let a=c();return g(a.onPromptSelected(i))})("dismissed",function(){u(e);let i=c();return g(i.closeAutocomplete())}),s()()}if(o&2){let e=c();l(),C("prompts",e.slashSuggestions())}}var Qe=class o{http=E(Oe);router=E(Ie);route=E(ne);config=E(De);caseState=E(oe);destroyRef=E(Z);preferences=E(Ve);promptState=E(Fe);userState=E(Ce);exchangeState=E(B);attachments=E(ae);composerInput;autocompleteRef;namespaceId=this.route.snapshot.queryParams.ns;inputValue=M("");isCreating=M(!1);pendingCaseId=M(null);destroyed=!1;namespaceTargeted=x(()=>Be(this.inputValue(),this.exchangeState.canWriteNamespace()));effectivePrompts=[];promptsLoaded=!1;slashPrefix$=new Se;slashSuggestions=M([]);ngOnInit(){this.exchangeState.initializeForNamespace(this.namespaceId),this.route.queryParams.pipe(L(this.destroyRef)).subscribe(t=>{let e=t.ns;e&&e!==this.namespaceId&&(this.namespaceId=e,this.effectivePrompts=[],this.promptsLoaded=!1,this.slashSuggestions.set([]),this.inputValue.set(""),this.attachments.reset(),this.pendingCaseId.set(null),this.exchangeState.initializeForNamespace(e))})}constructor(){this.destroyRef.onDestroy(()=>this.destroyed=!0),me(()=>{this.composerInput?.nativeElement.focus()}),this.slashPrefix$.pipe(se(60),le(t=>(this.promptsLoaded?Q(this.effectivePrompts):this.promptState.listEffective(this.namespaceId,this.userState.currentUser()?.id??"").pipe(J(()=>Q([])))).pipe(G(n=>({prefix:t,prompts:n})))),L(this.destroyRef)).subscribe(({prefix:t,prompts:e})=>{this.effectivePrompts=e,this.promptsLoaded=!0,this.slashSuggestions.set(e.filter(n=>n.name.toLowerCase().startsWith(t.toLowerCase())))})}get canSend(){return(!!this.inputValue().trim()||this.attachments.hasAttachments())&&!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(){return V(this,null,function*(){if(!this.canSend)return;let t=this.inputValue().trim(),e=this.namespaceId;this.isCreating.set(!0);try{let n=this.pendingCaseId();if(!n){let a=yield ve(this.http.post(`${this.config.basePath}/api/cases`,{namespaceId:e,metadata:{}}));this.caseState.addCase(a),n=a.id??"",this.pendingCaseId.set(n)}if(this.abandoned(e)){this.isCreating.set(!1);return}let i=t;if(this.attachments.hasAttachments()){this.exchangeState.initializeForCase(e,n);let a=we(t,this.exchangeState.canWriteNamespace()),h=yield this.attachments.uploadAllAndBuildMention(a);if(h===null||this.abandoned(e)){this.isCreating.set(!1);return}i=i?`${i}
5
-
6
- ${h}`:h}if(yield ve(this.http.post(`${this.config.basePath}/api/cases/${n}/messages`,{content:i,userId:"default-user"})),this.abandoned(e)){this.isCreating.set(!1);return}this.attachments.reset(),this.inputValue.set(""),this.pendingCaseId.set(null),this.router.navigate(["/agentos/home"],{queryParams:{ns:e,case:n}})}catch(n){console.error("[CaseHome] Failed to create case or send first message",n),this.isCreating.set(!1)}})}abandoned(t){return this.destroyed||this.namespaceId!==t}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=T({type:o,selectors:[["agentos-case-home"]],viewQuery:function(e,n){if(e&1&&ee(Vo,5)(ie,5),e&2){let i;W(i=H())&&(n.composerInput=i.first),W(i=H())&&(n.autocompleteRef=i.first)}},features:[Te([ae])],decls:17,vars:11,consts:[["attachmentsUi",""],["composerInput",""],[1,"case-home",3,"dragenter","dragover","dragleave","drop"],["aria-hidden","true",1,"case-home__drop-overlay"],[1,"case-home__hero"],[1,"case-home__headline"],[1,"case-home__composer"],[1,"case-home__autocomplete"],[1,"case-home__attachments",3,"removed","filesSelected","attachments","namespaceBadge","limitError","disabled"],["placeholder","Describe your task or ask a question\u2026","rows","4",1,"case-home__input",3,"input","keydown","value","disabled"],[1,"case-home__composer-footer"],[1,"case-home__footer-left"],["icon","add","variant","default","title","Attach files",3,"action","disabled"],[1,"case-home__hint"],["icon","send","variant","primary","title","Start case",3,"action","disabled"],[1,"material-icons"],[3,"selected","dismissed","prompts"]],template:function(e,n){if(e&1){let i=y();r(0,"div",2),m("dragenter",function(h){return!n.isCreating()&&n.attachments.onDragEnter(h)})("dragover",function(h){return!n.isCreating()&&n.attachments.onDragOver(h)})("dragleave",function(){return n.attachments.onDragLeave()})("drop",function(h){return!n.isCreating()&&n.attachments.onDrop(h)}),p(1,Ao,5,0,"div",3),r(2,"div",4)(3,"h1",5),d(4,"What can I help you with?"),s(),r(5,"div",6),p(6,qo,2,1,"div",7),r(7,"agentos-composer-attachments",8,0),m("removed",function(h){return n.attachments.remove(h)})("filesSelected",function(h){return n.attachments.addFiles(h)}),s(),r(9,"textarea",9,1),m("input",function(h){return n.onInput(h)})("keydown",function(h){return n.onKeydown(h)}),s(),r(11,"div",10)(12,"div",11)(13,"ds-icon-button",12),m("action",function(){u(i);let h=te(8);return g(h.openPicker())}),s(),r(14,"span",13),d(15),s()(),r(16,"ds-icon-button",14),m("action",function(){return n.submit()}),s()()()()()}e&2&&(l(),_(n.attachments.isDragOver()?1:-1),l(5),_(n.slashSuggestions().length>0?6:-1),l(),C("attachments",n.attachments.attachments())("namespaceBadge",n.namespaceTargeted())("limitError",n.attachments.limitError())("disabled",n.attachments.isUploading()),l(2),C("value",n.inputValue())("disabled",n.isCreating()),l(4),C("disabled",n.isCreating()),l(2),S(n.preferences.composerHint()),l(),C("disabled",!n.canSend))},dependencies:[U,ie,be],styles:[".case-home[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;align-items:center;justify-content:center;position:relative}.case-home__hero[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:2rem;padding:2rem 1.5rem 4rem;max-width:680px;width:100%}.case-home__headline[_ngcontent-%COMP%]{margin:0;font-size:clamp(1.5rem,4vw,2.25rem);font-weight:700;letter-spacing:-.03em;color:var(--color-text);text-align:center;font-family:Inter,sans-serif}.case-home__autocomplete[_ngcontent-%COMP%]{position:absolute;bottom:calc(100% + .5rem);left:0;right:0;background:var(--glass-bg, rgba(255, 255, 255, .96));border:1px solid var(--color-border, rgba(0, 0, 0, .1));backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:12px;box-shadow:0 8px 32px #00000026;z-index:20;animation:_ngcontent-%COMP%_autocomplete-in .12s ease}.case-home__composer[_ngcontent-%COMP%]{position:relative;width:100%;display:flex;flex-direction:column;background:var(--glass-bg);border:1px solid var(--glass-border);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border-radius:16px;box-shadow:0 4px 24px var(--color-shadow);transition:box-shadow .2s ease,border-color .2s ease}.case-home__composer[_ngcontent-%COMP%]:focus-within{box-shadow:0 4px 32px color-mix(in srgb,var(--color-primary) 20%,transparent);border-color:var(--color-primary)}.case-home__input[_ngcontent-%COMP%]{width:100%;resize:none;padding:1rem 1.25rem .5rem;border:none;background:transparent;color:var(--color-text);font-size:1rem;font-family:Inter,sans-serif;line-height:1.6;outline:none;box-sizing:border-box}.case-home__input[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary)}.case-home__input[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed}.case-home__composer-footer[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:.5rem}.case-home__footer-left[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem}.case-home__attachments[_ngcontent-%COMP%]{display:block;padding:.75rem .75rem 0}.case-home__drop-overlay[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:30;pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;border:2px dashed var(--color-primary, #0071e3);border-radius:16px;background:color-mix(in srgb,var(--color-primary, #0071e3) 8%,transparent);color:var(--color-primary, #0071e3);font-weight:600}.case-home__hint[_ngcontent-%COMP%]{font-family:Inter,sans-serif;font-size:.8125rem;font-weight:400;line-height:1.4;color:var(--color-text-secondary, #6e6e73);font-size:.75rem;opacity:.7}@keyframes _ngcontent-%COMP%_autocomplete-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}"]})};var Ge=class o{case;static toListItem(t){return{id:t.id??"",name:t.title??t.id??"\u2014",description:void 0,favorite:t.favorite,canDelete:t.role==="ADMIN"}}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=T({type:o,selectors:[["agentos-case-item"]],inputs:{case:"case"},decls:0,vars:0,template:function(e,n){},encapsulation:2,changeDetection:0})};var Lo=["caseItemTpl"],zo=o=>({node:o,depth:0}),$o=(o,t)=>({node:o,depth:t}),Yt=(o,t)=>t.id;function Uo(o,t){if(o&1){let e=y();r(0,"button",5),m("click",function(){let i=u(e).$implicit,a=c(2);return g(a.onItemSelected(i.id))}),d(1),s()}if(o&2){let e=t.$implicit,n=c(2);P("case-drawer-compact__badge--active",e.id===n.activeCaseId()),C("title",e.name),l(),q(" ",e.initials," ")}}function Wo(o,t){if(o&1&&(r(0,"div",3),O(1,Uo,2,4,"button",4,Yt),s()),o&2){let e=c();l(),I(e.compactItems())}}function Ho(o,t){if(o&1){let e=y();r(0,"button",8),m("click",function(){u(e);let i=c().$implicit,a=c();return g(a.onItemSelected(i.id))}),k(1,"span",9),r(2,"span",10),d(3),s()()}if(o&2){let e=c().$implicit,n=c();P("case-tree-node__row--active",e.id===n.activeCaseId()),l(3),S(e.name)}}function Bo(o,t){if(o&1&&tt(0,7),o&2){let e=c().$implicit;c();let n=te(5);C("ngTemplateOutlet",n)("ngTemplateOutletContext",Ct(2,zo,e))}}function jo(o,t){if(o&1&&p(0,Ho,4,3,"button",6)(1,Bo,1,4,"ng-container",7),o&2){let e=c();_(e.isSearchActive()?0:1)}}function Qo(o,t){if(o&1){let e=y();r(0,"button",16),m("click",function(i){u(e);let a=c().node,h=c();return g(h.toggleExpand(i,a.id))}),r(1,"span",17),d(2,"\u203A"),s()()}if(o&2){let e=c().node,n=c();C("title",n.isExpanded(e.id)?"Collapse":"Expand"),l(),P("case-tree-node__toggle-icon--open",n.isExpanded(e.id))}}function Go(o,t){if(o&1&&tt(0,7),o&2){let e=t.$implicit,n=c(2).depth;c();let i=te(5);C("ngTemplateOutlet",i)("ngTemplateOutletContext",bt(2,$o,e,n+1))}}function Ko(o,t){if(o&1&&O(0,Go,1,5,"ng-container",7,Yt),o&2){let e=c().node;I(e.children)}}function Yo(o,t){if(o&1){let e=y();r(0,"div",11)(1,"div",12)(2,"span",9),p(3,Qo,3,3,"button",13),s(),r(4,"button",14),m("click",function(){let i=u(e).node,a=c();return g(a.onItemSelected(i.id))}),r(5,"span",10),d(6),s()(),r(7,"ds-kebab-menu",15),m("itemSelected",function(i){let a=u(e).node,h=c();return g(h.onMenuAction(a,i))}),s()(),p(8,Ko,2,0),s()}if(o&2){let e=t.node,n=t.depth,i=c();Ee("--depth",n),l(),P("case-tree-node__row--active",e.id===i.activeCaseId()),l(2),_(e.children.length?3:-1),l(3),S(e.name),l(),C("items",i.menuItemsFor(e)),l(),_(i.isExpanded(e.id)&&e.children.length?8:-1)}}var Ke=class o{cases=f([]);activeCaseId=f(null);compact=f(!1);caseSelected=b();createRequested=b();deleteRequested=b();starToggled=b();caseItemTpl;searchQuery=M("");isSearchActive=x(()=>this.searchQuery().trim().length>0);rootItems=x(()=>Zo(Jo(this.cases())));compactItems=x(()=>this.rootItems().map(t=>X($({},t),{initials:Xo(t.name)})));flatFilteredItems=x(()=>{let t=this.searchQuery().toLowerCase().trim();return t?Jt(this.rootItems(),t):[]});displayItems=x(()=>this.isSearchActive()?this.flatFilteredItems():this.rootItems());autoExpandedIds=x(()=>{let t=this.activeCaseId();if(!t)return new Set;let e=new Set;return Zt(this.rootItems(),t,e),e});expandOverrides=M(new Map);isExpanded(t){return this.expandOverrides().get(t)??this.autoExpandedIds().has(t)}toggleExpand(t,e){t.stopPropagation();let n=!this.isExpanded(e);this.expandOverrides.update(i=>{let a=new Map(i);return a.set(e,n),a})}onSearchChanged(t){this.searchQuery.set(t)}onItemSelected(t){this.caseSelected.emit(t)}onCreateRequested(){this.createRequested.emit()}onDeleteRequested(t){this.deleteRequested.emit(t)}onStarToggled(t){this.starToggled.emit({id:t.id,starred:!t.favorite})}menuItemsFor(t){let e=[{key:"star",label:t.favorite?"Remove from favorites":"Add to favorites",icon:t.favorite?"star":"star_border"}];return t.canDelete&&e.push({key:"delete",label:"Delete",icon:"delete",variant:"danger"}),e}onMenuAction(t,e){switch(e){case"star":this.onStarToggled(t);break;case"delete":this.onDeleteRequested(t.id);break}}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=T({type:o,selectors:[["agentos-case-drawer"]],viewQuery:function(e,n){if(e&1&&ee(Lo,7),e&2){let i;W(i=H())&&(n.caseItemTpl=i.first)}},inputs:{cases:[1,"cases"],activeCaseId:[1,"activeCaseId"],compact:[1,"compact"]},outputs:{caseSelected:"caseSelected",createRequested:"createRequested",deleteRequested:"deleteRequested",starToggled:"starToggled"},decls:6,vars:7,consts:[["caseItemTpl",""],["caseRowTpl",""],["title","Cases","emptyMessage","No cases yet. Start one below.","searchPlaceholder","Filter cases\u2026","cardMinWidth","100%","contentMaxWidth","100%",3,"createRequested","searchChanged","items","itemTemplate","showCreate","toolbarOnly","disableInternalFilter","keepGroupsWhileSearching"],[1,"case-drawer-compact"],["type","button",1,"case-drawer-compact__badge",3,"case-drawer-compact__badge--active","title"],["type","button",1,"case-drawer-compact__badge",3,"click","title"],["type","button",1,"case-tree-node__row",3,"case-tree-node__row--active"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],["type","button",1,"case-tree-node__row",3,"click"],[1,"case-tree-node__expand-slot"],[1,"case-tree-node__name"],[1,"case-tree-node"],[1,"case-tree-node__row"],["type","button",1,"case-tree-node__toggle",3,"title"],["type","button",1,"case-tree-node__select",3,"click"],[1,"case-tree-node__menu",3,"itemSelected","items"],["type","button",1,"case-tree-node__toggle",3,"click","title"],[1,"case-tree-node__toggle-icon"]],template:function(e,n){if(e&1&&(r(0,"ds-entity-list",2),m("createRequested",function(){return n.onCreateRequested()})("searchChanged",function(a){return n.onSearchChanged(a)}),s(),p(1,Wo,3,0,"div",3),mt(2,jo,2,1,"ng-template",null,0,nt)(4,Yo,9,8,"ng-template",null,1,nt)),e&2){let i=te(3);C("items",n.displayItems())("itemTemplate",n.compact()?void 0:i)("showCreate",!0)("toolbarOnly",n.compact())("disableInternalFilter",!0)("keepGroupsWhileSearching",!0),l(),_(n.compact()?1:-1)}},dependencies:[Rt,Nt,vt],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;height:100%}.case-drawer-compact[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 0;overflow-y:auto}.case-drawer-compact__badge[_ngcontent-%COMP%]{width:32px;height:32px;border-radius:8px;background:#161616;color:#fff;border:none;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-family:Inter,sans-serif;font-size:13px;font-weight:700;line-height:1;width:36px;height:36px;letter-spacing:.03em;text-transform:uppercase;cursor:pointer;background:var(--color-bg-secondary, #fff);color:var(--color-text, #1b1916);border:1px solid var(--color-border);transition:background .12s ease,border-color .12s ease,box-shadow .12s ease}.case-drawer-compact__badge[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover);border-color:var(--color-border)}.case-drawer-compact__badge--active[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--color-primary) 12%,transparent);border-color:var(--color-primary);color:var(--color-primary)}.case-drawer-compact__badge--active[_ngcontent-%COMP%]:hover{background:color-mix(in srgb,var(--color-primary) 18%,transparent)}.case-tree-node[_ngcontent-%COMP%]{width:100%}.case-tree-node__row[_ngcontent-%COMP%]{display:flex;align-items:center;width:100%;text-align:left;padding:.375rem .5rem;padding-left:calc(.5rem + var(--depth, 0) * 1.25rem);color:var(--color-text);border:none;background:transparent;cursor:pointer;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)}.case-tree-node__row--active[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--color-primary) 12%,transparent);color:var(--color-primary)}.case-tree-node__row--active[_ngcontent-%COMP%]:hover{background:color-mix(in srgb,var(--color-primary) 18%,transparent)}.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%]{appearance:none;background:transparent;border:none;padding:0;margin:0;font:inherit;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:1rem;height:1rem;border-radius:3px;color:var(--color-text-secondary, rgba(0, 0, 0, .35));display:flex;align-items:center;justify-content:center;transition:background .12s ease,color .12s ease}.case-tree-node__toggle[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .05));color:var(--color-text, #1d1d1f)}.case-tree-node__toggle[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--color-primary, #007aff);outline-offset:2px;border-radius:2px}.case-tree-node__toggle[_ngcontent-%COMP%]:disabled{opacity:.4;cursor:not-allowed}.case-tree-node__toggle[_ngcontent-%COMP%]{color:inherit}.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__select[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;padding:0;margin:0;font:inherit;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;flex:1;min-width:0;display:flex;align-items:center;color:inherit}.case-tree-node__name[_ngcontent-%COMP%]{font-family:Inter,sans-serif;font-size:11.5px;font-weight:500;line-height:1;color:var(--color-text, #1d1d1f);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono, SF Mono, Monaco, Inconsolata, Fira Mono, monospace);font-size:.8rem}.case-tree-node__menu[_ngcontent-%COMP%]{flex:none;opacity:0;pointer-events:none;transition:opacity .12s ease}.case-tree-node__row[_ngcontent-%COMP%]:hover .case-tree-node__menu[_ngcontent-%COMP%], .case-tree-node__row[_ngcontent-%COMP%]:focus-within .case-tree-node__menu[_ngcontent-%COMP%], .case-tree-node__row--active[_ngcontent-%COMP%] .case-tree-node__menu[_ngcontent-%COMP%], .case-tree-node__menu[_ngcontent-%COMP%]:has([aria-expanded=true]){opacity:1;pointer-events:auto}"],changeDetection:0})};function Xo(o){let t=o.trim().split(/\s+/).filter(Boolean),e=t[0]?.[0]??"",n=t[1]?.[0]??t[0]?.[1]??"";return(e+n).toUpperCase()}function Jo(o){let t=new Set(o.map(w=>w.id??"")),e=new Map(o.map(w=>[w.id??"",w.modified??w.created??""])),n=w=>X($({},Ge.toListItem(w)),{description:w.id??"",children:[]}),i=new Map;for(let w of o)i.set(w.id??"",n(w));let a=[];for(let w of o){let v=i.get(w.id??""),D=w.parentCaseId;D&&t.has(D)?i.get(D).children.push(v):a.push(v)}let h=w=>w.sort((v,D)=>(e.get(D.id)??"")>(e.get(v.id)??"")?1:-1).map(v=>X($({},v),{children:h(v.children)}));return h(a)}function Zo(o){let t=[],e=[];for(let n of o){let i=Xt(n,t);i&&e.push(i)}if(!t.length)return o;for(let n of t)n.groupKey="favorites",n.groupLabel="Favorites";return[...t,...e]}function Xt(o,t){if(o.favorite)return t.push($({},o)),null;let e=[];for(let n of o.children){let i=Xt(n,t);i&&e.push(i)}return X($({},o),{children:e})}function Jt(o,t){return o.reduce((e,n)=>((n.name.toLowerCase().includes(t)||n.id.toLowerCase().includes(t))&&e.push(n),n.children.length&&e.push(...Jt(n.children,t)),e),[])}function Zt(o,t,e){for(let n of o){if(n.id===t)return!0;if(n.children.length&&Zt(n.children,t,e))return e.add(n.id),!0}return!1}var ei=(o,t)=>t.id;function ti(o,t){o&1&&(r(0,"span",3),d(1,"chevron_left"),s())}function ni(o,t){o&1&&k(0,"img",4)}function oi(o,t){o&1&&(r(0,"span",22),d(1,"\u2713"),s())}function ii(o,t){if(o&1){let e=y();r(0,"button",19),m("click",function(){let i=u(e).$implicit,a=c(4);return g(a.namespaceSelected.emit(i))}),r(1,"span",20),d(2),s(),r(3,"span",21),d(4),s(),p(5,oi,2,0,"span",22),s()}if(o&2){let e,n,i=t.$implicit,a=c(4);P("shell-sidebar__ns-item--active",i.id===((e=a.selectedNamespace())==null?null:e.id)),l(2),S(a.nsInitial(i.name)),l(2),S(i.name),l(),_(i.id===((n=a.selectedNamespace())==null?null:n.id)?5:-1)}}function ai(o,t){if(o&1&&(r(0,"div",17),O(1,ii,6,5,"button",18,ei),s()),o&2){let e=c(3);l(),I(e.namespaces())}}function ri(o,t){if(o&1){let e=y();r(0,"div",11)(1,"button",13),m("click",function(){u(e);let i=c(2);return g(i.nsMenuToggled.emit())}),r(2,"span",14),d(3),s(),r(4,"span",15),d(5),s(),r(6,"span",16),d(7,"\u25BE"),s()(),p(8,ai,3,0,"div",17),s()}if(o&2){let e,n,i=c(2);l(),P("shell-sidebar__ns-trigger--open",i.nsMenuOpen()),l(2),S(i.nsInitial((e=i.selectedNamespace())==null?null:e.name)),l(2),S(((n=i.selectedNamespace())==null?null:n.name)??"Select namespace"),l(3),_(i.nsMenuOpen()?8:-1)}}function si(o,t){if(o&1&&(r(0,"div",12)(1,"span",14),d(2),s(),r(3,"span",15),d(4),s()()),o&2){let e,n,i=c(2);l(2),S(i.nsInitial((e=i.selectedNamespace())==null?null:e.name)),l(2),S((n=i.selectedNamespace())==null?null:n.name)}}function li(o,t){if(o&1&&(r(0,"div",5),p(1,ri,9,5,"div",11)(2,si,5,2,"div",12),s()),o&2){let e=c();l(),_(e.showNsPicker()?1:2)}}function ci(o,t){if(o&1&&d(0),o&2){let e=c(2);q(" ",e.userInitials()," ")}}function di(o,t){o&1&&d(0," \u2022\u2022\u2022 ")}function mi(o,t){if(o&1){let e=y();r(0,"div",6)(1,"button",23),m("click",function(i){u(e);let a=c();return g(a.menuToggled.emit(i))}),p(2,ci,1,1)(3,di,1,0),s(),r(4,"agentos-shell-user-menu",24),m("navigateTo",function(i){u(e);let a=c();return g(a.navigateTo.emit(i))})("themeToggled",function(){u(e);let i=c();return g(i.themeToggled.emit())})("logsToggled",function(){u(e);let i=c();return g(i.logsToggled.emit())})("closed",function(i){u(e);let a=c();return g(a.menuClosed.emit(i))}),s()()}if(o&2){let e=c();l(2),_(e.userInitials()?2:3),l(2),C("open",e.menuOpen())("isAdmin",e.isAdmin())("isDark",e.isDark())("showTechnical",e.showTechnical())}}var Ye=class o{brandHovered=!1;static COMPACT_WIDTH=60;isCompact=M(!1);toggleCompact(){this.isCompact.update(t=>!t)}nsInitial(t){return(t??"?").charAt(0).toUpperCase()}effectiveWidth=x(()=>this.sidebarOpen()?this.isCompact()?o.COMPACT_WIDTH:this.sidebarWidth():0);sidebarWidth=f.required();sidebarOpen=f.required();selectedNamespace=f.required();namespaces=f.required();showNsPicker=f.required();nsMenuOpen=f.required();cases=f.required();activeCaseId=f.required();userInitials=f.required();menuOpen=f.required();isAdmin=f.required();isDark=f.required();showTechnical=f.required();collapseRequested=b();homeClicked=b();namespaceSelected=b();nsMenuToggled=b();nsMenuClosed=b();caseSelected=b();createRequested=b();deleteRequested=b();starToggled=b();menuToggled=b();menuClosed=b();navigateTo=b();themeToggled=b();logsToggled=b();static \u0275fac=function(e){return new(e||o)};static \u0275cmp=T({type:o,selectors:[["agentos-shell-sidebar"]],inputs:{sidebarWidth:[1,"sidebarWidth"],sidebarOpen:[1,"sidebarOpen"],selectedNamespace:[1,"selectedNamespace"],namespaces:[1,"namespaces"],showNsPicker:[1,"showNsPicker"],nsMenuOpen:[1,"nsMenuOpen"],cases:[1,"cases"],activeCaseId:[1,"activeCaseId"],userInitials:[1,"userInitials"],menuOpen:[1,"menuOpen"],isAdmin:[1,"isAdmin"],isDark:[1,"isDark"],showTechnical:[1,"showTechnical"]},outputs:{collapseRequested:"collapseRequested",homeClicked:"homeClicked",namespaceSelected:"namespaceSelected",nsMenuToggled:"nsMenuToggled",nsMenuClosed:"nsMenuClosed",caseSelected:"caseSelected",createRequested:"createRequested",deleteRequested:"deleteRequested",starToggled:"starToggled",menuToggled:"menuToggled",menuClosed:"menuClosed",navigateTo:"navigateTo",themeToggled:"themeToggled",logsToggled:"logsToggled"},decls:12,vars:14,consts:[[1,"shell-sidebar"],[1,"shell-sidebar__top"],["type","button",1,"shell-sidebar__brand",3,"mouseenter","mouseleave","click","title"],[1,"shell-sidebar__logo-chevron","material-icons"],["src","CODAY-Logo.png","alt","Coday",1,"shell-sidebar__logo-img"],[1,"shell-sidebar__ns-wrap"],[1,"shell-sidebar__user-menu"],[1,"shell-sidebar__cases-scroll"],[3,"caseSelected","createRequested","deleteRequested","starToggled","cases","activeCaseId","compact"],["type","button",1,"shell-sidebar__compact-toggle",3,"click","title"],[1,"material-icons","shell-sidebar__compact-toggle-icon"],[1,"shell-sidebar__ns-picker"],[1,"shell-sidebar__ns-trigger","shell-sidebar__ns-trigger--readonly"],[1,"shell-sidebar__ns-trigger",3,"click"],[1,"shell-sidebar__ns-mark"],[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-mark"],[1,"shell-sidebar__ns-item-name"],[1,"shell-sidebar__ns-item-check"],["type","button","title","Menu",1,"shell-sidebar__user-btn",3,"click"],["variant","desktop",3,"navigateTo","themeToggled","logsToggled","closed","open","isAdmin","isDark","showTechnical"]],template:function(e,n){e&1&&(r(0,"div",0)(1,"div",1)(2,"button",2),m("mouseenter",function(){return n.brandHovered=!0})("mouseleave",function(){return n.brandHovered=!1})("click",function(){return n.brandHovered?n.collapseRequested.emit():n.homeClicked.emit()}),p(3,ti,2,0,"span",3)(4,ni,1,0,"img",4),s(),p(5,li,3,1,"div",5),p(6,mi,5,5,"div",6),s(),r(7,"div",7)(8,"agentos-case-drawer",8),m("caseSelected",function(a){return n.caseSelected.emit(a)})("createRequested",function(){return n.createRequested.emit()})("deleteRequested",function(a){return n.deleteRequested.emit(a)})("starToggled",function(a){return n.starToggled.emit(a)}),s()(),r(9,"button",9),m("click",function(){return n.toggleCompact()}),r(10,"span",10),d(11,"chevron_left"),s()()()),e&2&&(Ee("width",n.effectiveWidth(),"px")("overflow",n.effectiveWidth()===0?"hidden":"visible"),l(2),C("title",n.brandHovered?"Close sidebar":"Home"),l(),_(n.brandHovered?3:4),l(2),_(n.isCompact()?-1:5),l(),_(n.isCompact()?-1:6),l(2),C("cases",n.cases())("activeCaseId",n.activeCaseId())("compact",n.isCompact()),l(),P("shell-sidebar__compact-toggle--compact",n.isCompact()),C("title",n.isCompact()?"Expand drawer":"Collapse to icons"))},dependencies:[Ke,Ae],styles:["[_nghost-%COMP%]{display:contents}@media(max-width:900px){[_nghost-%COMP%]{display:none!important}}.shell-sidebar[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;overflow:visible;position:relative;border-right:1px solid var(--color-border);background:var(--color-bg);flex-shrink:0;transition:width .24s cubic-bezier(.4,0,.2,1);white-space:nowrap}.shell-sidebar__top[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;padding:10px;border-bottom:1px solid var(--color-border);flex-shrink:0;overflow:visible}.shell-sidebar__brand[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;margin:0;font:inherit;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;display:flex;align-items:center;padding:4px;border-radius:8px;flex-shrink:0;transition:background .14s}.shell-sidebar__brand[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover)}.shell-sidebar__logo-img[_ngcontent-%COMP%]{width:28px;height:28px;border-radius:6px;object-fit:contain}.shell-sidebar__logo-chevron[_ngcontent-%COMP%]{width:28px;height:28px;font-size:22px;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary)}.shell-sidebar__user-menu[_ngcontent-%COMP%]{position:relative;flex-shrink:0}.shell-sidebar__user-btn[_ngcontent-%COMP%]{font-family:Inter,sans-serif;font-size:13px;font-weight:700;line-height:1;width:32px;height:32px;border-radius:8px;border:none;background:var(--color-primary, #016b71);color:#fff;cursor:pointer;display:grid;place-items:center;transition:background .14s ease}.shell-sidebar__user-btn[_ngcontent-%COMP%]:hover{background:var(--color-primary-hover, #015a5f)}.shell-sidebar__ns-wrap[_ngcontent-%COMP%]{flex:1;min-width:0;position:relative}.shell-sidebar__ns-picker[_ngcontent-%COMP%]{position:relative}.shell-sidebar__ns-trigger[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;margin:0;font:inherit;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:100%;display:flex;align-items:center;gap:8px;padding:5px 8px 5px 5px;border-radius:8px;border:1px solid var(--color-border);background:var(--color-bg-secondary);color:var(--color-text);transition:all .15s}.shell-sidebar__ns-trigger[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover)}.shell-sidebar__ns-trigger--open[_ngcontent-%COMP%]{border-color:var(--color-primary)}.shell-sidebar__ns-trigger--readonly[_ngcontent-%COMP%]{cursor:default;pointer-events:none}.shell-sidebar__ns-mark[_ngcontent-%COMP%]{width:32px;height:32px;background:#161616;color:#fff;border:none;display:flex;align-items:center;justify-content:center;font-family:Inter,sans-serif;font-size:13px;font-weight:700;line-height:1;width:26px;height:26px;border-radius:6px;font-size:11px;flex-shrink:0}.shell-sidebar__ns-name[_ngcontent-%COMP%]{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.8rem;font-weight:600}.shell-sidebar__ns-chevron[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:.7rem;flex-shrink:0}.shell-sidebar__ns-menu[_ngcontent-%COMP%]{background:var(--color-modal-bg, #ffffff);border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:10px;box-shadow:var(--color-modal-shadow, 0 6px 20px rgba(0, 0, 0, .08));padding:5px;position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:100}.shell-sidebar__ns-item[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;margin:0;font:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;display:flex;align-items:center;width:100%;padding:8px 10px;border-radius:6px;font-family:Inter,sans-serif;font-size:12.5px;font-weight:500;color:var(--color-text, #1d1d1f);text-align:left;transition:background .1s ease}.shell-sidebar__ns-item[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04))}.shell-sidebar__ns-item--danger[_ngcontent-%COMP%]{color:var(--color-error, #a5140a)}.shell-sidebar__ns-item--danger[_ngcontent-%COMP%]:hover{background:rgba(from var(--color-error, #ff453a) r g b/.08)}.shell-sidebar__ns-item[_ngcontent-%COMP%]{gap:8px;padding:6px 8px}.shell-sidebar__ns-item--active[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--color-primary) 10%,transparent);color:var(--color-primary)}.shell-sidebar__ns-item-mark[_ngcontent-%COMP%]{width:32px;height:32px;background:#161616;color:#fff;border:none;display:flex;align-items:center;justify-content:center;font-family:Inter,sans-serif;font-size:13px;font-weight:700;line-height:1;width:22px;height:22px;border-radius:5px;font-size:10px;flex-shrink:0}.shell-sidebar__ns-item-name[_ngcontent-%COMP%]{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shell-sidebar__ns-item-check[_ngcontent-%COMP%]{color:var(--color-primary);font-size:.75rem;flex-shrink:0}.shell-sidebar__cases-scroll[_ngcontent-%COMP%]{flex:1;overflow-y:auto;overflow-x:hidden;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);border-radius:999px}.shell-sidebar__compact-toggle[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;padding:0;margin:0;font:inherit;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;position:absolute;top:50%;right:3px;transform:translateY(-50%);width:24px;height:40px;border-radius:20px;background:var(--color-bg-secondary);border:1px solid var(--color-border);box-shadow:0 2px 6px var(--color-shadow);display:flex;align-items:center;justify-content:center;z-index:10;color:var(--color-text-secondary);transition:color .14s ease,box-shadow .14s ease}.shell-sidebar__compact-toggle[_ngcontent-%COMP%]:hover{color:var(--color-text);box-shadow:0 3px 10px var(--color-shadow)}.shell-sidebar__compact-toggle-icon[_ngcontent-%COMP%]{font-size:18px;transition:transform .2s ease}.shell-sidebar__compact-toggle--compact[_ngcontent-%COMP%] .shell-sidebar__compact-toggle-icon[_ngcontent-%COMP%]{transform:rotate(180deg)}"],changeDetection:0})};var pi=(o,t)=>t.id;function _i(o,t){o&1&&(r(0,"span"),d(1,"\u2713"),s())}function ui(o,t){if(o&1){let e=y();r(0,"button",12),m("click",function(){let i=u(e).$implicit,a=c(2);return g(a.namespaceSelected.emit(i))}),r(1,"span",13),d(2),s(),p(3,_i,2,0,"span"),s()}if(o&2){let e,n,i=t.$implicit,a=c(2);P("shell-topbar-mobile__ns-item--active",i.id===((e=a.selectedNamespace())==null?null:e.id)),l(2),S(i.name),l(),_(i.id===((n=a.selectedNamespace())==null?null:n.id)?3:-1)}}function gi(o,t){if(o&1){let e=y();r(0,"div",9),m("click",function(i){u(e);let a=c();return g(a.nsMenuClosed.emit(i))})("keyup.escape",function(i){u(e);let a=c();return g(a.nsMenuClosed.emit(i))}),s(),r(1,"div",10),O(2,ui,4,4,"button",11,pi),s()}if(o&2){let e=c();l(2),I(e.namespaces())}}var Xe=class o{selectedNamespace=f.required();namespaces=f.required();nsMenuOpen=f.required();userInitials=f.required();menuOpen=f.required();isAdmin=f.required();isDark=f.required();showTechnical=f.required();homeClicked=b();namespaceSelected=b();nsMenuToggled=b();nsMenuClosed=b();menuToggled=b();menuClosed=b();navigateTo=b();themeToggled=b();logsToggled=b();static \u0275fac=function(e){return new(e||o)};static \u0275cmp=T({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:13,vars:9,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__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-item-name"]],template:function(e,n){if(e&1&&(r(0,"div",0)(1,"button",1),m("click",function(){return n.homeClicked.emit()}),k(2,"img",2),s(),r(3,"div",3)(4,"button",4),m("click",function(a){return n.nsMenuToggled.emit(a)}),d(5),r(6,"span",5),d(7,"\u25BE"),s()(),p(8,gi,4,0),s()(),r(9,"div",6)(10,"div",7),m("click",function(a){return n.menuToggled.emit(a)})("keyup.enter",function(){return n.menuToggled.emit(void 0)}),d(11),s(),r(12,"agentos-shell-user-menu",8),m("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)}),s()()),e&2){let i;l(4),P("shell-topbar-mobile__ns-btn--open",n.nsMenuOpen()),l(),q(" ",((i=n.selectedNamespace())==null?null:i.name)??""," "),l(3),_(n.nsMenuOpen()?8:-1),l(3),q(" ",n.userInitials()||"\xB7\xB7\xB7"," "),l(),C("open",n.menuOpen())("isAdmin",n.isAdmin())("isDark",n.isDark())("showTechnical",n.showTechnical())}},dependencies:[Ae],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%]{appearance:none;background:transparent;border:none;padding:0;margin:0;font:inherit;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;display:flex;align-items:center;gap:6px;flex:none}.shell-topbar-mobile__logo-img[_ngcontent-%COMP%]{height:28px;width:auto;border-radius:6px;object-fit:contain}.shell-topbar-mobile__logo-text[_ngcontent-%COMP%]{font-family:Inter,sans-serif;font-size:11.5px;font-weight:500;line-height:1;color:var(--color-text, #1d1d1f)}.shell-topbar-mobile__sep[_ngcontent-%COMP%]{color:var(--color-text-tertiary);font:inherit;font-size:.75rem;flex:none}.shell-topbar-mobile__ns-wrap[_ngcontent-%COMP%]{position:static;min-width:0}.shell-topbar-mobile__ns-btn[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;margin:0;font:inherit;cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;font-family:Inter,sans-serif;font-size:12.5px;font-weight:500;line-height:1.4;color:var(--color-text, #1d1d1f);font-weight:600;display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:6px;border:1px solid transparent;transition:all .15s;max-width:160px}.shell-topbar-mobile__ns-btn[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover);border-color:var(--color-border)}.shell-topbar-mobile__ns-btn--open[_ngcontent-%COMP%]{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 6%,transparent)}.shell-topbar-mobile__chevron[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:9px;flex:none}.shell-topbar-mobile__ns-backdrop[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:299}.shell-topbar-mobile__ns-menu[_ngcontent-%COMP%]{background:var(--color-modal-bg, #ffffff);border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:10px;box-shadow:var(--color-modal-shadow, 0 6px 20px rgba(0, 0, 0, .08));padding:5px;position:fixed;top:44px;left:16px;min-width:200px;z-index:300}.shell-topbar-mobile__ns-item[_ngcontent-%COMP%]{appearance:none;background:transparent;border:none;margin:0;font:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;display:flex;align-items:center;width:100%;padding:8px 10px;border-radius:6px;font-family:Inter,sans-serif;font-size:12.5px;font-weight:500;color:var(--color-text, #1d1d1f);text-align:left;transition:background .1s ease}.shell-topbar-mobile__ns-item[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04))}.shell-topbar-mobile__ns-item--danger[_ngcontent-%COMP%]{color:var(--color-error, #a5140a)}.shell-topbar-mobile__ns-item--danger[_ngcontent-%COMP%]:hover{background:rgba(from var(--color-error, #ff453a) r g b/.08)}.shell-topbar-mobile__ns-item--active[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--color-primary) 12%,transparent);color:var(--color-primary)}.shell-topbar-mobile__ns-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%]{font-family:Inter,sans-serif;font-size:13px;font-weight:700;line-height:1;width:32px;height:32px;border-radius:8px;border:none;background:var(--color-primary, #016b71);color:#fff;display:grid;place-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .14s ease}.shell-topbar-mobile__avatar[_ngcontent-%COMP%]:hover{background:var(--color-primary-hover, #015a5f)}@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);background:var(--color-bg);flex-shrink:0;position:relative}}"],changeDetection:0})};var hi=(o,t)=>t.id;function fi(o,t){if(o&1){let e=y();N(0,"div",9),_e("click",function(){let i=u(e).$implicit,a=c(2);return g(a.caseSelected.emit(i.id??""))})("keyup.enter",function(){let i=u(e).$implicit,a=c(2);return g(a.caseSelected.emit(i.id??""))}),et(1,"span",1),N(2,"span",2),d(3),A(),N(4,"span",3),d(5),A()()}if(o&2){let e=t.$implicit,n=c(2);l(),ye("shell-case-switcher__dot--"+n.deriveMobileStatus(e.status)),l(2),S(e.title??e.id),l(2),S(e.status.toLowerCase())}}function Ci(o,t){if(o&1){let e=y();N(0,"div",5)(1,"div",6),_e("click",function(){u(e);let i=c();return g(i.createRequested.emit())})("keyup.enter",function(){u(e);let i=c();return g(i.createRequested.emit())}),N(2,"span",7),d(3,"+"),A(),N(4,"span",2),d(5,"New case"),A()(),O(6,fi,6,4,"div",8,hi),A()}if(o&2){let e=c();l(6),I(e.otherCases())}}var Je=class o{cases=f.required();activeCaseId=f.required();open=f.required();activeCase=x(()=>{let t=this.activeCaseId();return t?this.cases().find(e=>e.id===t)??null:null});activeCaseTitle=x(()=>this.activeCase()?.title??this.activeCaseId()??"New case");activeCaseStatus=x(()=>this.deriveMobileStatus(this.activeCase()?.status));activeCaseStatusLabel=x(()=>this.activeCase()?.status?.toLowerCase()??"");otherCases=x(()=>this.cases().filter(t=>t.id!==this.activeCaseId()));caseSelected=b();createRequested=b();toggled=b();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=T({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&&(N(0,"div",0),_e("click",function(){return n.toggled.emit()})("keyup.enter",function(){return n.toggled.emit()}),et(1,"span",1),N(2,"span",2),d(3),A(),N(4,"span",3),d(5),A(),N(6,"span",4),d(7,"\u2304"),A()(),p(8,Ci,8,0,"div",5)),e&2&&(l(),ye("shell-case-switcher__dot--"+n.activeCaseStatus()),l(2),S(n.activeCaseTitle()),l(2),S(n.activeCaseStatusLabel()),l(3),_(n.open()?8:-1))},styles:["[_nghost-%COMP%]{display:none}.shell-case-switcher__trigger[_ngcontent-%COMP%]{display:flex;align-items:center;gap:7px;padding:10px 16px;min-height:44px;cursor:pointer;-webkit-user-select:none;user-select:none}.shell-case-switcher__trigger[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover)}.shell-case-switcher__title[_ngcontent-%COMP%]{font-family:Inter,sans-serif;font-size:12.5px;font-weight:500;line-height:1.4;color:var(--color-text, #1d1d1f);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.shell-case-switcher__status[_ngcontent-%COMP%]{font:inherit;font-size:.6875rem;color:var(--color-text-secondary);flex:none}.shell-case-switcher__chevron[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:9px;flex:none}.shell-case-switcher__list[_ngcontent-%COMP%]{display:flex;flex-direction:column;border-top:1px solid var(--color-border-light);max-height:60vh;overflow-y:auto}.shell-case-switcher__item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:7px;padding:0 16px;height:44px;flex-shrink:0;cursor:pointer}.shell-case-switcher__item[_ngcontent-%COMP%] .shell-case-switcher__title[_ngcontent-%COMP%]{font-weight:500;color:var(--color-text-secondary)}.shell-case-switcher__item[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover)}.shell-case-switcher__item--new[_ngcontent-%COMP%]{border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .08))}.shell-case-switcher__item--new[_ngcontent-%COMP%] .shell-case-switcher__title[_ngcontent-%COMP%]{font-weight:600;color:var(--color-primary, #016b71)}.shell-case-switcher__new-icon[_ngcontent-%COMP%]{width:6px;height:6px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:300;color:var(--color-primary, #016b71);flex:none}.shell-case-switcher__dot[_ngcontent-%COMP%]{width:6px;height:6px;border-radius:50%;flex:none}.shell-case-switcher__dot--run[_ngcontent-%COMP%]{background:var(--color-success)}.shell-case-switcher__dot--idle[_ngcontent-%COMP%]{background:var(--color-border)}.shell-case-switcher__dot--killed[_ngcontent-%COMP%], .shell-case-switcher__dot--error[_ngcontent-%COMP%]{background:var(--color-error)}@media(max-width:900px){[_nghost-%COMP%]{display:flex;flex-direction:column;border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .08));background:var(--color-bg, #fff);flex-shrink:0}}"],changeDetection:0})};function bi(o,t){if(o&1){let e=y();r(0,"div",8),m("mousedown",function(i){u(e);let a=c();return g(a.onResizeStart(i))}),s()}}function vi(o,t){if(o&1){let e=y();r(0,"button",9),m("click",function(){u(e);let i=c();return g(i.expandSidebar())}),r(1,"span",10),d(2,"menu"),s()()}}function xi(o,t){if(o&1&&k(0,"agentos-case-chat",7),o&2){let e=c();C("showTechnicalOverride",e.showTechnical())}}function yi(o,t){o&1&&k(0,"agentos-case-home")}var en=class o{router=E(Ie);route=E(ne);namespaceController=E(Mt);themePort=E(Ft);userState=E(Ce);caseState=E(oe);namespaceState=E(At);destroyRef=E(Z);isAdmin=x(()=>this.userState.currentUser()?.isAdmin===!0);userInitials=x(()=>{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=x(()=>{let t=this.themePort.theme();return t==="dark"?!0:t==="light"?!1:typeof document<"u"&&document.documentElement.hasAttribute("data-theme")});sidebarWidth=M(Number(localStorage.getItem("agentos.sidebar.width"))||300);menuOpen=M(!1);nsMenuOpen=M(!1);sidebarOpen=M(localStorage.getItem("agentos.sidebar.open")!=="false");mobileSwitcherOpen=M(!1);showTechnical=M(!1);showNsPicker=x(()=>this.isAdmin()||this.namespaces().length>1);namespaceId$=this.route.queryParams.pipe(G(t=>t.ns??null));_namespaceIdRaw=fe(this.namespaceId$);namespaceId=x(()=>this._namespaceIdRaw()??null);_activeCaseIdRaw=fe(this.route.queryParams.pipe(G(t=>t.case??null)));activeCaseId=x(()=>this._activeCaseIdRaw()??null);cases=this.caseState.cases;namespaces=fe(this.namespaceController.listAllNamespace(),{initialValue:[]});selectedNamespace=M(null);constructor(){this.userState.currentUser()||this.userState.loadMe().pipe(L(this.destroyRef)).subscribe(),Et(this.sidebarWidth).pipe(st(1),se(300),L(this.destroyRef)).subscribe(t=>localStorage.setItem("agentos.sidebar.width",String(t))),K(()=>{let t=this.namespaces(),e=this.namespaceId();if(t.length)if(e){let n=t.find(i=>i.id===e);this.selectedNamespace.set(n??t[0]??null),this.namespaceState.selectNamespace(e)}else{let n=t[0];n?.id&&this.router.navigate(["/agentos/home"],{queryParams:{ns:n.id},replaceUrl:!0})}}),K(()=>{let t=this.namespaceId();t&&this.caseState.loadCases(t)})}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()}})}onDeleteRequested(t){let n=this.cases().find(i=>i.id===t)?.title??t;confirm(`Delete "${n}"?`)&&this.caseState.deleteCase(t).pipe(L(this.destroyRef)).subscribe({next:()=>{t===this.activeCaseId()&&this.router.navigate(["/agentos/home"],{queryParams:{ns:this.namespaceId()}})},error:i=>{console.error(`[CaseShell] Failed to delete case ${t}:`,i),alert("Could not delete the case. Please try again.")}})}onStarToggled(t){this.caseState.setStarred(t.id,t.starred).pipe(L(this.destroyRef)).subscribe({error:e=>{console.error(`[CaseShell] Failed to update star for case ${t.id}:`,e),alert("Could not update the favorite. Please try again.")}})}navigateHome(){let t=this.namespaceId();this.router.navigate(["/agentos/home"],t?{queryParams:{ns:t}}:{})}collapseSidebar(){this.sidebarOpen.set(!1),localStorage.setItem("agentos.sidebar.open","false")}expandSidebar(){this.sidebarOpen.set(!0),localStorage.setItem("agentos.sidebar.open","true")}onMenuNavigate(t){this.menuOpen.set(!1),this.router.navigate([t])}toggleMenu(t){t?.stopPropagation(),t?.preventDefault(),this.menuOpen.update(e=>!e)}closeMenu(t){t.stopPropagation(),this.menuOpen.set(!1)}onMenuToggleTheme(){this.menuOpen.set(!1);let t=this.isDark()?"light":"dark";this.themePort.setTheme(t)}onMenuToggleLogs(){this.menuOpen.set(!1),this.showTechnical.update(t=>!t)}toggleMobileSwitcher(){this.mobileSwitcherOpen.update(t=>!t)}onMobileCaseSelect(t){this.mobileSwitcherOpen.set(!1),this.onCaseSelected(t)}onMobileCreateCase(){this.mobileSwitcherOpen.set(!1),this.onCreateRequested()}onResizeStart(t){t.preventDefault();let e=t.clientX,n=this.sidebarWidth(),i=h=>{let w=h.clientX-e,v=Math.max(200,Math.min(500,n+w));this.sidebarWidth.set(v)},a=()=>{document.removeEventListener("mousemove",i),document.removeEventListener("mouseup",a)};document.addEventListener("mousemove",i),document.addEventListener("mouseup",a)}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=T({type:o,selectors:[["agentos-case-shell"]],decls:9,vars:27,consts:[[1,"case-shell"],[3,"homeClicked","namespaceSelected","nsMenuToggled","nsMenuClosed","menuToggled","menuClosed","navigateTo","themeToggled","logsToggled","selectedNamespace","namespaces","nsMenuOpen","userInitials","menuOpen","isAdmin","isDark","showTechnical"],[3,"caseSelected","createRequested","toggled","cases","activeCaseId","open"],[3,"collapseRequested","homeClicked","namespaceSelected","nsMenuToggled","nsMenuClosed","caseSelected","createRequested","deleteRequested","starToggled","menuToggled","menuClosed","navigateTo","themeToggled","logsToggled","sidebarWidth","sidebarOpen","selectedNamespace","namespaces","showNsPicker","nsMenuOpen","cases","activeCaseId","userInitials","menuOpen","isAdmin","isDark","showTechnical"],["role","separator","tabindex","-1","aria-label","Resize sidebar",1,"case-shell__resize-handle"],["type","button","title","Open sidebar",1,"case-shell__expand-btn"],[1,"case-shell__main"],[3,"showTechnicalOverride"],["role","separator","tabindex","-1","aria-label","Resize sidebar",1,"case-shell__resize-handle",3,"mousedown"],["type","button","title","Open sidebar",1,"case-shell__expand-btn",3,"click"],[1,"material-icons"]],template:function(e,n){e&1&&(r(0,"div",0)(1,"agentos-shell-topbar-mobile",1),m("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()}),s(),r(2,"agentos-shell-case-switcher-mobile",2),m("caseSelected",function(a){return n.onMobileCaseSelect(a)})("createRequested",function(){return n.onMobileCreateCase()})("toggled",function(){return n.toggleMobileSwitcher()}),s(),r(3,"agentos-shell-sidebar",3),m("collapseRequested",function(){return n.collapseSidebar()})("homeClicked",function(){return n.navigateHome()})("namespaceSelected",function(a){return n.onNamespaceSelected(a)})("nsMenuToggled",function(){return n.toggleNsMenu()})("nsMenuClosed",function(a){return n.closeNsMenu(a)})("caseSelected",function(a){return n.onCaseSelected(a)})("createRequested",function(){return n.onCreateRequested()})("deleteRequested",function(a){return n.onDeleteRequested(a)})("starToggled",function(a){return n.onStarToggled(a)})("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()}),s(),p(4,bi,1,0,"div",4),p(5,vi,3,0,"button",5),r(6,"main",6),p(7,xi,1,1,"agentos-case-chat",7)(8,yi,1,0,"agentos-case-home"),s()()),e&2&&(l(),C("selectedNamespace",n.selectedNamespace())("namespaces",n.namespaces())("nsMenuOpen",n.nsMenuOpen())("userInitials",n.userInitials())("menuOpen",n.menuOpen())("isAdmin",n.isAdmin())("isDark",n.isDark())("showTechnical",n.showTechnical()),l(),C("cases",n.cases())("activeCaseId",n.activeCaseId())("open",n.mobileSwitcherOpen()),l(),C("sidebarWidth",n.sidebarWidth())("sidebarOpen",n.sidebarOpen())("selectedNamespace",n.selectedNamespace())("namespaces",n.namespaces())("showNsPicker",n.showNsPicker())("nsMenuOpen",n.nsMenuOpen())("cases",n.cases())("activeCaseId",n.activeCaseId())("userInitials",n.userInitials())("menuOpen",n.menuOpen())("isAdmin",n.isAdmin())("isDark",n.isDark())("showTechnical",n.showTechnical()),l(),_(n.sidebarOpen()?4:-1),l(),_(n.sidebarOpen()?-1:5),l(2),_(n.activeCaseId()?7:8))},dependencies:[je,Qe,Ye,Xe,Je],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;height:100dvh}.case-shell[_ngcontent-%COMP%]{display:flex;height:100%}.case-shell__resize-handle[_ngcontent-%COMP%]{width:4px;flex-shrink:0;cursor:col-resize;background:var(--color-border, rgba(0, 0, 0, .09));transition:background .15s;position:relative;z-index:10}.case-shell__resize-handle[_ngcontent-%COMP%]:hover, .case-shell__resize-handle[_ngcontent-%COMP%]:active{background:var(--color-primary, #016b71)}.case-shell__main[_ngcontent-%COMP%]{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.case-shell__main[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{flex:1;min-height:0}@media(max-width:900px){.case-shell[_ngcontent-%COMP%]{flex-direction:column;overflow:hidden}.case-shell__resize-handle[_ngcontent-%COMP%]{display:none!important}.case-shell__main[_ngcontent-%COMP%]{flex:1;min-height:0;overflow:hidden}}.case-shell__expand-btn[_ngcontent-%COMP%]{position:fixed;top:14px;left:14px;z-index:200;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;border-radius:8px;background:transparent;cursor:pointer;color:var(--color-text-secondary, #968f85);transition:background .14s}.case-shell__expand-btn[_ngcontent-%COMP%] .material-icons[_ngcontent-%COMP%]{font-size:22px}.case-shell__expand-btn[_ngcontent-%COMP%]:hover{background:var(--color-surface-hover, rgba(0, 0, 0, .05));color:var(--color-text, #1b1916)}@media(max-width:900px){.case-shell__expand-btn[_ngcontent-%COMP%]{display:none}}"],changeDetection:0})};export{B as a,sn as b,Le as c,zt as d,$t as e,Ut as f,cn as g,dn as h,Wt as i,Ht as j,Bt as k,ze as l,re as m,$e as n,Ue as o,We as p,je as q,Qe as r,Ge as s,Ke as t,en as u};
@@ -1 +0,0 @@
1
- import{u as a}from"./chunk-56ZJETOZ.js";import"./chunk-32WVX5ZP.js";import"./chunk-H2FHPYWP.js";import"./chunk-MLVWHS7Q.js";import"./chunk-XEXRIFJE.js";import"./chunk-7WF5A3H7.js";import"./chunk-JQYJDI3L.js";import"./chunk-BCOH5IGB.js";import"./chunk-VR3I4RKJ.js";import"./chunk-MZT6I3S3.js";import"./chunk-N347WQAU.js";import"./chunk-MWPKXBXJ.js";import"./chunk-7EDSHFWH.js";import"./chunk-3ZLLFAXF.js";import"./chunk-Q2M4W42M.js";import"./chunk-DDWYQORF.js";import"./chunk-B46LXCLF.js";import"./chunk-KJ5SIUGY.js";export{a as CaseShellComponent};
@@ -1 +0,0 @@
1
- import{Z as r,aa as a,ca as m,ta as s}from"./chunk-KJ5SIUGY.js";var d=["light","dark","system"],i="agentos.theme",n=class o{_theme=s(this.readStoredTheme());theme=this._theme.asReadonly();media=typeof window<"u"&&window.matchMedia?window.matchMedia("(prefers-color-scheme: dark)"):null;onSystemChange=()=>{this._theme()==="system"&&this.applyTheme("system")};constructor(){this.applyTheme(this._theme()),this.media?.addEventListener("change",this.onSystemChange)}ngOnDestroy(){this.media?.removeEventListener("change",this.onSystemChange)}setTheme(e){this._theme.set(e);try{localStorage.setItem(i,e)}catch(t){}this.applyTheme(e)}applyTheme(e){let t=e==="system"?this.resolveSystem():e;typeof document>"u"||!document.documentElement||(t==="dark"?document.documentElement.setAttribute("data-theme","dark"):document.documentElement.removeAttribute("data-theme"))}resolveSystem(){return this.media?.matches?"dark":"light"}readStoredTheme(){try{let e=localStorage.getItem(i);if(e&&d.includes(e))return e}catch(e){}return"system"}static \u0275fac=function(t){return new(t||o)};static \u0275prov=r({token:o,factory:o.\u0275fac,providedIn:"root"})},T=new a("agentos.theme-port",{providedIn:"root",factory:()=>m(n)});export{d as a,n as b,T as c};
@@ -1 +0,0 @@
1
- import{c as M}from"./chunk-MZT6I3S3.js";import{r as I,z as w}from"./chunk-N347WQAU.js";import{Bb as b,Db as _,Fb as c,Ka as r,Tb as d,Ub as u,Wa as y,ca as C,ga as g,ha as m,lb as f,mb as p,pc as h,qc as s,rb as x,sb as i,ta as v,tb as t}from"./chunk-KJ5SIUGY.js";function O(n,o){if(n&1&&(i(0,"span",3),d(1),t()),n&2){let e=c();r(),u(e.config().modelName)}}function A(n,o){if(n&1&&(i(0,"span",4),d(1),t()),n&2){let e=c();r(),u(e.config().description)}}function P(n,o){if(n&1){let e=b();i(0,"span",7),d(1,"Delete?"),t(),i(2,"ds-icon-button",8),_("action",function(){g(e);let l=c();return m(l.onDeleteConfirmed())}),t(),i(3,"ds-icon-button",9),_("action",function(){g(e);let l=c();return m(l.onDeleteCancelled())}),t()}}function S(n,o){if(n&1){let e=b();i(0,"ds-kebab-menu",10),_("itemSelected",function(l){g(e);let k=c();return m(k.onMenuAction(l))}),t()}if(n&2){let e=c();x("items",e.readOnly()?e.readOnlyMenuItems:e.menuItems)}}var D=class n{router=C(M);config=s.required();namespaceId=s(void 0);platformMode=s(!1);readOnly=s(!1);deleteRequested=h();pendingDelete=v(!1);menuItems=[{key:"edit",label:"Edit agent config",icon:"edit"},{key:"inspect",label:"Inspect definition",icon:"search"},{key:"delete",label:"Delete agent config",icon:"delete",variant:"danger"}];readOnlyMenuItems=[{key:"inspect",label:"Inspect definition",icon:"search"}];onMenuAction(o){switch(o){case"edit":this.platformMode()?this.router.navigate(["/agentos","admin","agent-configs",this.config().id,"edit"]):this.router.navigate(["/agentos",this.namespaceId(),"agent-configs",this.config().id,"edit"]);break;case"inspect":this.platformMode()?this.router.navigate(["/agentos","admin","agent-configs",this.config().id,"inspect"]):this.router.navigate(["/agentos",this.namespaceId(),"agent-configs",this.config().id,"inspect"]);break;case"delete":this.pendingDelete.set(!0);break}}onDeleteConfirmed(){this.pendingDelete.set(!1),this.deleteRequested.emit(this.config())}onDeleteCancelled(){this.pendingDelete.set(!1)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=y({type:n,selectors:[["agentos-agent-config-item"]],inputs:{config:[1,"config"],namespaceId:[1,"namespaceId"],platformMode:[1,"platformMode"],readOnly:[1,"readOnly"]},outputs:{deleteRequested:"deleteRequested"},decls:9,vars:4,consts:[["role","listitem",1,"agent-config-item"],[1,"agent-config-item__body"],[1,"agent-config-item__name"],[1,"agent-config-item__model"],[1,"agent-config-item__description"],[1,"agent-config-item__actions"],[3,"items"],[1,"agent-config-item__confirm-label"],["icon","check","variant","danger","title","Confirm deletion",3,"action"],["icon","close","title","Cancel deletion",3,"action"],[3,"itemSelected","items"]],template:function(e,a){e&1&&(i(0,"div",0)(1,"div",1)(2,"span",2),d(3),t(),f(4,O,2,1,"span",3),f(5,A,2,1,"span",4),t(),i(6,"div",5),f(7,P,4,0)(8,S,1,1,"ds-kebab-menu",6),t()()),e&2&&(r(3),u(a.config().name),r(),p(a.config().modelName?4:-1),r(),p(a.config().description?5:-1),r(2),p(a.pendingDelete()?7:8))},dependencies:[w,I],styles:[".agent-config-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-radius:10px;border:1px solid var(--color-border, rgba(0, 0, 0, .08));background:var(--glass-bg, rgba(255, 255, 255, .72));-webkit-backdrop-filter:var(--glass-backdrop-blur, blur(20px));backdrop-filter:var(--glass-backdrop-blur, blur(20px));transition:background .15s ease,border-color .15s ease}.agent-config-item[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04));border-color:var(--color-primary, #007aff)}.agent-config-item__body[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.agent-config-item__name[_ngcontent-%COMP%]{font-size:.95rem;font-weight:500;color:var(--color-text, #1d1d1f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-config-item__model[_ngcontent-%COMP%]{font-size:.78rem;color:var(--color-text-secondary, #6e6e73);font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-config-item__description[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary, #6e6e73);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-config-item__actions[_ngcontent-%COMP%]{flex-shrink:0;display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.agent-config-item[_ngcontent-%COMP%]:hover .agent-config-item__actions[_ngcontent-%COMP%], .agent-config-item[_ngcontent-%COMP%]:focus-within .agent-config-item__actions[_ngcontent-%COMP%]{opacity:1}.agent-config-item__confirm-label[_ngcontent-%COMP%]{font-size:.8rem;font-weight:500;color:var(--color-error, #ff3b30);margin-right:.25rem;white-space:nowrap}"],changeDetection:0})};export{D as a};