@whoz-oss/coday-client 0.220.0 → 0.221.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/{chunk-VEJ7WOTG.js → chunk-245FSNUP.js} +1 -1
- package/browser/chunk-26FFFP6M.js +1 -0
- package/browser/chunk-2JFW66QF.js +1 -0
- package/browser/{chunk-ZUHPSVJI.js → chunk-2MSURPPU.js} +1 -1
- package/browser/{chunk-XC3I4AWV.js → chunk-32WVX5ZP.js} +1 -1
- package/browser/{chunk-CQMVBNBQ.js → chunk-37R4PWRM.js} +1 -1
- package/browser/{chunk-66JGZWOM.js → chunk-3I6ZJMCS.js} +1 -1
- package/browser/{chunk-SKBT6DBT.js → chunk-3ZLLFAXF.js} +1 -1
- package/browser/{chunk-2K6TMGVY.js → chunk-4LLQHQ72.js} +1 -1
- package/browser/{chunk-4OZEACGW.js → chunk-4ZQC632F.js} +1 -1
- package/browser/{chunk-6WEPMSFL.js → chunk-5YICJPG4.js} +1 -1
- package/browser/{chunk-MV2EB7ZU.js → chunk-6JGMDWHO.js} +1 -1
- package/browser/{chunk-2PNAJMT3.js → chunk-6L7NNQJK.js} +1 -1
- package/browser/{chunk-JZNKFELS.js → chunk-6QVHTXNY.js} +1 -1
- package/browser/chunk-6WGVBQKC.js +1 -0
- package/browser/{chunk-24QOKK6F.js → chunk-73TUA3JE.js} +1 -1
- package/browser/{chunk-BZ7URUNM.js → chunk-7EDSHFWH.js} +1 -1
- package/browser/{chunk-R6RFNQXI.js → chunk-7WF5A3H7.js} +1 -1
- package/browser/{chunk-3NQ3WSD6.js → chunk-7ZT4AOIS.js} +1 -1
- package/browser/{chunk-V7NUXN3R.js → chunk-A7WS3RLV.js} +1 -1
- package/browser/{chunk-BZD44TVX.js → chunk-AE2KD4A7.js} +1 -1
- package/browser/chunk-AE74H57T.js +1 -0
- package/browser/{chunk-NAHXPRXR.js → chunk-AEGHERYH.js} +1 -1
- package/browser/{chunk-OPSHMM4H.js → chunk-B46LXCLF.js} +1 -1
- package/browser/{chunk-GDZOBNVN.js → chunk-BCOH5IGB.js} +1 -1
- package/browser/{chunk-G7AYL55H.js → chunk-BLH76GUG.js} +1 -1
- package/browser/{chunk-SU4RJNAW.js → chunk-BOKUHMXQ.js} +1 -1
- package/browser/chunk-CG7JPH7I.js +1 -0
- package/browser/{chunk-Z6RFJ6L3.js → chunk-DDWYQORF.js} +1 -1
- package/browser/chunk-DJW5YEVF.js +1 -0
- package/browser/{chunk-UDEMKCGK.js → chunk-DVUB4DDV.js} +1 -1
- package/browser/{chunk-2LJ5KJSM.js → chunk-F2SDHNCX.js} +6 -6
- package/browser/{chunk-U5L2OULZ.js → chunk-F4DLZWDY.js} +1 -1
- package/browser/{chunk-KX2SBQGE.js → chunk-FLOWHF2Q.js} +1 -1
- package/browser/chunk-FYW22VB6.js +1 -0
- package/browser/{chunk-PWB3PMMP.js → chunk-GE5IABDA.js} +1 -1
- package/browser/chunk-GNOCAZPC.js +1 -0
- package/browser/{chunk-NCFBQG5D.js → chunk-H2FHPYWP.js} +1 -1
- package/browser/chunk-HEO22D4L.js +1 -0
- package/browser/{chunk-4TH4ERQY.js → chunk-I2FVKUBH.js} +1 -1
- package/browser/{chunk-6V56ZA7X.js → chunk-IZLOFLQI.js} +1 -1
- package/browser/{chunk-LN55MSDV.js → chunk-JF3TWRKD.js} +1 -1
- package/browser/{chunk-SO6H32XQ.js → chunk-JFRIGSWA.js} +1 -1
- package/browser/{chunk-OETBTCGG.js → chunk-JM5SK7RJ.js} +1 -1
- package/browser/{chunk-Q2AMNPUD.js → chunk-JMGIKNHE.js} +1 -1
- package/browser/{chunk-7EHCV7WH.js → chunk-JQYJDI3L.js} +1 -1
- package/browser/{chunk-G5DFEIWC.js → chunk-K5ALWDTN.js} +1 -1
- package/browser/chunk-KJ5SIUGY.js +5 -0
- package/browser/{chunk-X7C5YFTO.js → chunk-KRZMF2CT.js} +1 -1
- package/browser/{chunk-P6FB27NC.js → chunk-KVRSWZ37.js} +1 -1
- package/browser/{chunk-OB7XCFGZ.js → chunk-KYYUJJ6W.js} +1 -1
- package/browser/{chunk-34BTCCLM.js → chunk-L2CXQ5ZG.js} +1 -1
- package/browser/{chunk-SFHAQYFT.js → chunk-LQXAXQDW.js} +1 -1
- package/browser/{chunk-3DMSIXFU.js → chunk-LVMHNPNL.js} +1 -1
- package/browser/{chunk-O2R7P65K.js → chunk-MLVWHS7Q.js} +1 -1
- package/browser/{chunk-EBAEYY2S.js → chunk-MWPKXBXJ.js} +1 -1
- package/browser/{chunk-P4GNUQZT.js → chunk-MZT6I3S3.js} +1 -1
- package/browser/{chunk-RXRBDGVY.js → chunk-N4H6RBJP.js} +1 -1
- package/browser/{chunk-CGNJQWBH.js → chunk-NCHQXF4S.js} +1 -1
- package/browser/{chunk-J5W3AZMJ.js → chunk-NCQPF2YO.js} +1 -1
- package/browser/chunk-NPW3WIRW.js +1 -0
- package/browser/{chunk-JBI5WDPK.js → chunk-O2RHZQBE.js} +1 -1
- package/browser/{chunk-Z46CAQIL.js → chunk-O4EHMHGS.js} +1 -1
- package/browser/{chunk-RTIVYXZO.js → chunk-OK32ENYP.js} +1 -1
- package/browser/{chunk-PNVMTTHR.js → chunk-OWANJEQU.js} +1 -1
- package/browser/{chunk-C2XSJPYF.js → chunk-OX7PDXEA.js} +1 -1
- package/browser/{chunk-5CGB5NAW.js → chunk-PBFPI55X.js} +1 -1
- package/browser/{chunk-2Y5JVJQU.js → chunk-PIVEZFIL.js} +1 -1
- package/browser/chunk-PJ3HC56D.js +1 -0
- package/browser/{chunk-GF3EMWCA.js → chunk-Q2M4W42M.js} +1 -1
- package/browser/{chunk-HF5B4U3Q.js → chunk-QA6XH3LQ.js} +1 -1
- package/browser/{chunk-SA5ZJKKF.js → chunk-QHD6RKEP.js} +1 -1
- package/browser/{chunk-67BZXGWU.js → chunk-QINOZGE3.js} +1 -1
- package/browser/{chunk-CNI3G2X3.js → chunk-QV6OOSC2.js} +1 -1
- package/browser/{chunk-QCDV42EK.js → chunk-R7YB3V2E.js} +1 -1
- package/browser/{chunk-BZS55WHS.js → chunk-RX6XVTR7.js} +1 -1
- package/browser/{chunk-W62KNARA.js → chunk-S2AP7DX6.js} +1 -1
- package/browser/chunk-S5GYRWWO.js +1 -0
- package/browser/{chunk-OWSH6KVW.js → chunk-S5XVTDPO.js} +1 -1
- package/browser/{chunk-IRW4FVEN.js → chunk-SDAXOB46.js} +1 -1
- package/browser/chunk-SFK3JOTF.js +1 -0
- package/browser/{chunk-YGSTXCW4.js → chunk-UTUTCLZV.js} +1 -1
- package/browser/{chunk-UU7EP36X.js → chunk-VKFTA4MX.js} +1 -1
- package/browser/{chunk-WIYSZEOD.js → chunk-VR3I4RKJ.js} +1 -1
- package/browser/chunk-VURRJ77W.js +1 -0
- package/browser/{chunk-Q6JKTADC.js → chunk-WIVM4HFF.js} +1 -1
- package/browser/chunk-WO2Z5JMW.js +1 -0
- package/browser/{chunk-KD3BJ52V.js → chunk-WUU4G5YQ.js} +1 -1
- package/browser/{chunk-BJM7MKOH.js → chunk-X7WD62KI.js} +1 -1
- package/browser/{chunk-64F56SX7.js → chunk-XEXRIFJE.js} +1 -1
- package/browser/chunk-XLY3EKFY.js +1 -0
- package/browser/{chunk-KYHDDGML.js → chunk-YC3HFWKP.js} +1 -1
- package/browser/{chunk-CA4E6QDU.js → chunk-Z43UATKA.js} +1 -1
- package/browser/chunk-ZB3LDCY3.js +1 -0
- package/browser/{chunk-EGCAPAB4.js → chunk-ZKS4VKDZ.js} +1 -1
- package/browser/index.html +1 -1
- package/browser/{main-HWNV4D4D.js → main-AXQXT3DL.js} +1 -1
- package/package.json +1 -1
- package/browser/chunk-5NLXR4MK.js +0 -5
- package/browser/chunk-7PIT6THG.js +0 -1
- package/browser/chunk-7WUO5KJA.js +0 -1
- package/browser/chunk-APUP4V4X.js +0 -1
- package/browser/chunk-GDWZ2TMN.js +0 -1
- package/browser/chunk-JY2JVRRR.js +0 -1
- package/browser/chunk-K66GXZVK.js +0 -1
- package/browser/chunk-KNPRX3H3.js +0 -1
- package/browser/chunk-LC4SU6EB.js +0 -1
- package/browser/chunk-M3ZTJBEP.js +0 -1
- package/browser/chunk-NHXL5GKK.js +0 -1
- package/browser/chunk-OT2DXF3I.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as Ft}from"./chunk-XC3I4AWV.js";import{c as Ve}from"./chunk-NCFBQG5D.js";import{a as Fe}from"./chunk-O2R7P65K.js";import{a as Vt,b as Ae}from"./chunk-64F56SX7.js";import{a as Ce}from"./chunk-R6RFNQXI.js";import{c as Nt}from"./chunk-7EHCV7WH.js";import{a as De,e as wt,f as St,i as Mt}from"./chunk-GDZOBNVN.js";import{a as Tt,b as Pt,c as kt}from"./chunk-WIYSZEOD.js";import{a as ne,c as Ie}from"./chunk-P4GNUQZT.js";import{o as Ot,p as It,q as Re,r as U,s as Ne,x as Dt,y as Rt}from"./chunk-2LJ5KJSM.js";import{a as L,b as Et,c as fe}from"./chunk-SKBT6DBT.js";import{$b as ft,Ab as tt,Bb as y,D as J,Db as m,Eb as _e,F as se,Fb as c,Ga as de,Ic as vt,Jb as ee,Ka as l,Kb as W,Lb as H,Lc as xt,Ma as me,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,Vc as Oe,Wa as T,Xb as _t,Yb as ut,Yc as yt,Z as ce,Zb as gt,_b as ht,a as $,ab as mt,ac as Te,b as X,ca as E,cc as Ct,d as V,dc as bt,ec as Pe,fc as ke,ga as u,h as Se,ha as g,i as Ze,ic as nt,jb as pe,kb as pt,lb as p,lc as x,m as Q,ma as Z,mb as _,n as Me,oc as C,pa as ct,pb as O,pc as f,qb as I,qc as he,r as ve,rb as b,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-5NLXR4MK.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 Zt=["promptItem"],At=(o,t)=>t.name;function en(o,t){if(o&1&&(N(0,"span",5),d(1),A()),o&2){let e=t.$implicit;l(),_t("","{","","{","",e.name,"","}","","}")}}function tn(o,t){if(o&1&&(N(0,"span",6),d(1),A()),o&2){let e=c().$implicit;l(),S(e.description)}}function nn(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,en,2,5,"span",5,At),A(),p(6,tn,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=C();dismissed=C();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(Zt,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,nn,7,5,"li",2,At),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 qt={status:"loading",files:[],capability:"NONE"};function on(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:on(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(qt)}),rt({bufferSize:1,refCount:!0}));return fe(i,{initialValue:qt})}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 an=20*1024*1024,rn=["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 Lt(o){return o<1024?`${o} B`:o<1024*1024?`${(o/1024).toFixed(1)} KB`:`${(o/(1024*1024)).toFixed(1)} MB`}function zt(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 $t(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 sn(o){return!rn.includes(ot(o))}function ln(o){return o<=an}function Ut(o){return sn(o.filename)&&ln(o.size)}function Wt(o){try{return JSON.stringify(JSON.parse(o),null,2)}catch(t){return o}}function Ht(o){let t=/^(case|namespace)-exchange__(editFiles|remove|moveFile)$/.exec(o??"");return t?t[1]:null}var cn=["backButton"];function dn(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 mn(o,t){o&1&&(r(0,"div",8),k(1,"ds-spinner",14),s())}function pn(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 _n(o,t){if(o&1&&(k(0,"div",10),Pe(1,"agentosMarkdown")),o&2){let e=c();b("innerHTML",ke(1,1,e.content()),de)}}function un(o,t){if(o&1&&k(0,"iframe",11),o&2){let e=c();b("srcdoc",e.displayContent(),de)("title","Preview of "+e.filename())}}function gn(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=C();downloadRequested=C();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(()=>$t(this.filename()));displayContent=x(()=>{let t=this.content();return t==null?"":this.format()==="json"?Wt(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,cn,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,dn,3,0,"ds-empty-state",7)(9,mn,2,0,"div",8)(10,pn,3,0,"ds-empty-state",9)(11,_n,2,3,"div",10)(12,un,1,2,"iframe",11)(13,gn,2,1,"pre",12),s()()),e&2&&(l(4),b("title",n.filename()),l(),S(n.filename()),l(),b("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,Ft],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 hn=(o,t)=>t.label;function fn(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 Cn(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();b("title","Delete "+e.row().filename)}}var re=class o{row=f.required();active=f(!1);canWrite=f(!1);viewRequested=C();downloadRequested=C();deleteRequested=C();static toRow(t){return{path:t.path,filename:t.filename,meta:`${Lt(t.size)} \xB7 ${zt(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,fn,2,4,"span",6,hn),s()()(),r(11,"div",7)(12,"ds-icon-button",8),m("action",function(){return n.downloadRequested.emit()}),s(),p(13,Cn,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),b("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 bn=(o,t)=>t.path;function vn(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(),b("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=C();downloadRequested=C();deleteRequested=C();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,vn,2,3,"li",1,bn),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 xn=["fileInput"];function yn(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();b("file",t)("content",e.selectedContent())("status",e.contentStatus())("canView",e.canViewSelected())}}function wn(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);b("disabled",e.caseUploading())}}function Sn(o,t){o&1&&(r(0,"span",15),d(1,"read-only"),s())}function Mn(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 En(o,t){o&1&&(r(0,"p",17),d(1,"Uploading\u2026"),s())}function Tn(o,t){o&1&&(r(0,"div",18),k(1,"ds-spinner",22),s())}function Pn(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 kn(o,t){if(o&1&&k(0,"ds-empty-state",24),o&2){let e=c(4);b("hint",e.canWriteCase()?"Upload a file to share it with this case.":void 0)}}function On(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);b("rows",e.caseRows())("scope",e.CASE)("canWrite",e.canWriteCase())("activeFile",e.activeFile())}}function In(o,t){if(o&1&&p(0,kn,1,1,"ds-empty-state",24)(1,On,1,4,"agentos-exchange-file-list",25),o&2){let e=c(3);_(e.caseFiles().length===0?0:1)}}function Dn(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,wn,1,1,"ds-icon-button",14)(6,Sn,2,0,"span",15),p(7,Mn,1,0,"ds-icon-button",16),s()(),p(8,En,2,0,"p",17),p(9,Tn,2,0,"div",18)(10,Pn,5,0,"div",19)(11,In,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 Rn(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);b("disabled",e.namespaceUploading())}}function Nn(o,t){o&1&&(r(0,"span",15),d(1,"read-only"),s())}function Fn(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 Vn(o,t){o&1&&(r(0,"div",18),k(1,"ds-spinner",29),s())}function An(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 qn(o,t){if(o&1&&k(0,"ds-empty-state",30),o&2){let e=c(4);b("hint",e.canWriteNamespace()?"Upload a file to share it across this namespace.":void 0)}}function Ln(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);b("rows",e.namespaceRows())("scope",e.NAMESPACE)("canWrite",e.canWriteNamespace())("activeFile",e.activeFile())}}function zn(o,t){if(o&1&&p(0,qn,1,1,"ds-empty-state",30)(1,Ln,1,4,"agentos-exchange-file-list",25),o&2){let e=c(3);_(e.namespaceFiles().length===0?0:1)}}function $n(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,Rn,1,1,"ds-icon-button",14)(6,Nn,2,0,"span",15),p(7,Fn,1,0,"ds-icon-button",27),s()(),p(8,Vn,2,0,"div",18)(9,An,5,0,"div",19)(10,zn,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 Un(o,t){o&1&&(r(0,"p",10),d(1,"No files available."),s())}function Wn(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,Dn,12,4,"section",9),p(6,$n,11,3,"section",9),p(7,Un,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=C();uploadRequested=C();downloadRequested=C();downloadAllRequested=C();deleteRequested=C();retryRequested=C();closeRequested=C();viewerClosed=C();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,xn,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,yn,1,4,"agentos-exchange-content-viewer",2)(2,Wn,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 Hn(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=C();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?Ut(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,Hn,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(),b("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(),b("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,Bn=/\bnamespace\b/i;function we(o,t){return Bn.test(o)&&t?"NAMESPACE":"CASE"}function Be(o,t){return we(o,t)==="NAMESPACE"}function Bt(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(`
|
|
1
|
+
import{a as Ft}from"./chunk-32WVX5ZP.js";import{c as Ve}from"./chunk-H2FHPYWP.js";import{a as Fe}from"./chunk-MLVWHS7Q.js";import{a as Vt,b as Ae}from"./chunk-XEXRIFJE.js";import{a as Ce}from"./chunk-7WF5A3H7.js";import{c as Nt}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 Ne,x as Dt,y as Rt}from"./chunk-F2SDHNCX.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 C,qb as I,qc as f,r as ve,rb as b,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 Zt=["promptItem"],At=(o,t)=>t.name;function en(o,t){if(o&1&&(N(0,"span",5),d(1),A()),o&2){let e=t.$implicit;l(),_t("","{","","{","",e.name,"","}","","}")}}function tn(o,t){if(o&1&&(N(0,"span",6),d(1),A()),o&2){let e=c().$implicit;l(),S(e.description)}}function nn(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,en,2,5,"span",5,At),A(),p(6,tn,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=C();dismissed=C();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(Zt,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,nn,7,5,"li",2,At),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 qt={status:"loading",files:[],capability:"NONE"};function on(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:on(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(qt)}),rt({bufferSize:1,refCount:!0}));return fe(i,{initialValue:qt})}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 an=20*1024*1024,rn=["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 Lt(o){return o<1024?`${o} B`:o<1024*1024?`${(o/1024).toFixed(1)} KB`:`${(o/(1024*1024)).toFixed(1)} MB`}function zt(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 $t(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 sn(o){return!rn.includes(ot(o))}function ln(o){return o<=an}function Ut(o){return sn(o.filename)&&ln(o.size)}function Wt(o){try{return JSON.stringify(JSON.parse(o),null,2)}catch(t){return o}}function Ht(o){let t=/^(case|namespace)-exchange__(editFiles|remove|moveFile)$/.exec(o??"");return t?t[1]:null}var cn=["backButton"];function dn(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 mn(o,t){o&1&&(r(0,"div",8),k(1,"ds-spinner",14),s())}function pn(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 _n(o,t){if(o&1&&(k(0,"div",10),Pe(1,"agentosMarkdown")),o&2){let e=c();b("innerHTML",ke(1,1,e.content()),de)}}function un(o,t){if(o&1&&k(0,"iframe",11),o&2){let e=c();b("srcdoc",e.displayContent(),de)("title","Preview of "+e.filename())}}function gn(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=C();downloadRequested=C();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(()=>$t(this.filename()));displayContent=x(()=>{let t=this.content();return t==null?"":this.format()==="json"?Wt(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,cn,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,dn,3,0,"ds-empty-state",7)(9,mn,2,0,"div",8)(10,pn,3,0,"ds-empty-state",9)(11,_n,2,3,"div",10)(12,un,1,2,"iframe",11)(13,gn,2,1,"pre",12),s()()),e&2&&(l(4),b("title",n.filename()),l(),S(n.filename()),l(),b("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,Ft],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 hn=(o,t)=>t.label;function fn(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 Cn(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();b("title","Delete "+e.row().filename)}}var re=class o{row=f.required();active=f(!1);canWrite=f(!1);viewRequested=C();downloadRequested=C();deleteRequested=C();static toRow(t){return{path:t.path,filename:t.filename,meta:`${Lt(t.size)} \xB7 ${zt(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,fn,2,4,"span",6,hn),s()()(),r(11,"div",7)(12,"ds-icon-button",8),m("action",function(){return n.downloadRequested.emit()}),s(),p(13,Cn,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),b("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 bn=(o,t)=>t.path;function vn(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(),b("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=C();downloadRequested=C();deleteRequested=C();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,vn,2,3,"li",1,bn),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 xn=["fileInput"];function yn(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();b("file",t)("content",e.selectedContent())("status",e.contentStatus())("canView",e.canViewSelected())}}function wn(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);b("disabled",e.caseUploading())}}function Sn(o,t){o&1&&(r(0,"span",15),d(1,"read-only"),s())}function Mn(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 En(o,t){o&1&&(r(0,"p",17),d(1,"Uploading\u2026"),s())}function Tn(o,t){o&1&&(r(0,"div",18),k(1,"ds-spinner",22),s())}function Pn(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 kn(o,t){if(o&1&&k(0,"ds-empty-state",24),o&2){let e=c(4);b("hint",e.canWriteCase()?"Upload a file to share it with this case.":void 0)}}function On(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);b("rows",e.caseRows())("scope",e.CASE)("canWrite",e.canWriteCase())("activeFile",e.activeFile())}}function In(o,t){if(o&1&&p(0,kn,1,1,"ds-empty-state",24)(1,On,1,4,"agentos-exchange-file-list",25),o&2){let e=c(3);_(e.caseFiles().length===0?0:1)}}function Dn(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,wn,1,1,"ds-icon-button",14)(6,Sn,2,0,"span",15),p(7,Mn,1,0,"ds-icon-button",16),s()(),p(8,En,2,0,"p",17),p(9,Tn,2,0,"div",18)(10,Pn,5,0,"div",19)(11,In,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 Rn(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);b("disabled",e.namespaceUploading())}}function Nn(o,t){o&1&&(r(0,"span",15),d(1,"read-only"),s())}function Fn(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 Vn(o,t){o&1&&(r(0,"div",18),k(1,"ds-spinner",29),s())}function An(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 qn(o,t){if(o&1&&k(0,"ds-empty-state",30),o&2){let e=c(4);b("hint",e.canWriteNamespace()?"Upload a file to share it across this namespace.":void 0)}}function Ln(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);b("rows",e.namespaceRows())("scope",e.NAMESPACE)("canWrite",e.canWriteNamespace())("activeFile",e.activeFile())}}function zn(o,t){if(o&1&&p(0,qn,1,1,"ds-empty-state",30)(1,Ln,1,4,"agentos-exchange-file-list",25),o&2){let e=c(3);_(e.namespaceFiles().length===0?0:1)}}function $n(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,Rn,1,1,"ds-icon-button",14)(6,Nn,2,0,"span",15),p(7,Fn,1,0,"ds-icon-button",27),s()(),p(8,Vn,2,0,"div",18)(9,An,5,0,"div",19)(10,zn,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 Un(o,t){o&1&&(r(0,"p",10),d(1,"No files available."),s())}function Wn(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,Dn,12,4,"section",9),p(6,$n,11,3,"section",9),p(7,Un,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=C();uploadRequested=C();downloadRequested=C();downloadAllRequested=C();deleteRequested=C();retryRequested=C();closeRequested=C();viewerClosed=C();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,xn,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,yn,1,4,"agentos-exchange-content-viewer",2)(2,Wn,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 Hn(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=C();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?Ut(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,Hn,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(),b("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(),b("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,Bn=/\bnamespace\b/i;function we(o,t){return Bn.test(o)&&t?"NAMESPACE":"CASE"}function Be(o,t){return we(o,t)==="NAMESPACE"}function Bt(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
2
|
`)}function jt(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 Qt(o){let t=o.lastIndexOf(".");return t<=0||t===o.length-1?"FILE":o.slice(t+1).toUpperCase()}var jn=["fileInput"],Qn=(o,t)=>t.id;function Gn(o,t){o&1&&(r(0,"span",10),d(1,"namespace"),s())}function Kn(o,t){if(o&1&&(r(0,"span",12),d(1),s()),o&2){let e=c().$implicit;l(),S(e.error)}}function Yn(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,Gn,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,Kn,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(),b("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(),b("title",n.removeTitle(e))("disabled",n.disabled()),l(),_(e.status==="error"&&e.error?9:-1)}}function Xn(o,t){if(o&1&&(r(0,"div",3),O(1,Yn,10,14,"div",5,Qn),s()),o&2){let e=c(2);l(),I(e.attachments())}}function Jn(o,t){o&1&&(r(0,"p",4),d(1),s()),o&2&&(l(),S(t))}function Zn(o,t){if(o&1&&(r(0,"div",1),p(1,Xn,3,0,"div",3),p(2,Jn,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=C();filesSelected=C();fileInput=he("fileInput");kindLabel=Qt;middleTruncate=jt;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,jn,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,Zn,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:Bt(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 eo=["composerInput"],to=["messagesContainer"],no=(o,t)=>t.phaseIndex;function oo(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 io(o,t){if(o&1&&(r(0,"span",10),d(1),s()),o&2){let e=c();l(),S(e.exchangeFileCount())}}function ao(o,t){o&1&&(r(0,"div",12)(1,"p"),d(2,"No messages yet."),s()())}function ro(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 so(o,t){if(o&1&&(r(0,"div",32)(1,"span",34),d(2,"session context"),s(),r(3,"pre",35),d(4),Pe(5,"json"),s()()),o&2){let e=c(2).$implicit;l(4),S(ke(5,1,e.event.sessionContext))}}function lo(o,t){if(o&1&&(r(0,"div",30),p(1,ro,2,1,"span",31),p(2,so,6,3,"div",32),k(3,"div",33),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(),b("innerHTML",e.html,de)}}function co(o,t){if(o&1&&(r(0,"div",27)(1,"span",31),d(2),s(),k(3,"div",33),s()),o&2){let e=c(3);l(2),S(e.agentDisplayName()),l(),b("innerHTML",e.streamingHtml(),de)}}function mo(o,t){if(o&1&&(r(0,"div",37),d(1),s()),o&2){let e=c(2).$implicit;l(),S(e.item.detail)}}function po(o,t){if(o&1&&(r(0,"details",28)(1,"summary",36),d(2),s(),p(3,mo,2,1,"div",37),s()),o&2){let e=c().$implicit;l(2),q("\u2699 System log \xB7 ",e.item.label),l(),_(e.item.detail?3:-1)}}function _o(o,t){o&1&&d(0," \u23F3 ")}function uo(o,t){o&1&&d(0," \u2705 ")}function go(o,t){o&1&&d(0," \u274C ")}function ho(o,t){if(o&1&&(r(0,"div",54)(1,"span",55),d(2,"Enrichment content"),s(),r(3,"pre"),d(4),s()()),o&2){let e=c().$implicit;l(4),S(e.enrichmentContent)}}function fo(o,t){if(o&1&&(r(0,"div",50)(1,"div",51)(2,"span",52),d(3),s(),r(4,"span",53),d(5),s()(),r(6,"div",54)(7,"span",55),d(8,"Prompt"),s(),r(9,"pre"),d(10),s()(),r(11,"div",54)(12,"span",55),d(13,"LLM output"),s(),r(14,"pre"),d(15),s()(),p(16,ho,5,1,"div",54),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 Co(o,t){if(o&1&&(r(0,"div",44)(1,"span",46),d(2,"Enrichment phases"),s(),O(3,fo,17,7,"div",49,no),s()),o&2){let e=c(3).$implicit;l(3),I(e.call.enrichmentPhases)}}function bo(o,t){if(o&1&&(r(0,"div",45)(1,"span",46),d(2,"Payload"),s(),r(3,"pre"),d(4),s()()),o&2){let e=c(3).$implicit;l(4),S(e.call.args)}}function vo(o,t){o&1&&(r(0,"pre"),d(1),s()),o&2&&(l(),S(t))}function xo(o,t){o&1&&(r(0,"span",47),d(1,"Running\u2026"),s())}function yo(o,t){o&1&&(r(0,"span",48),d(1,"No output"),s())}function wo(o,t){if(o&1&&(r(0,"div",43),p(1,Co,5,0,"div",44),p(2,bo,5,1,"div",45),r(3,"div",45)(4,"span",46),d(5,"Output"),s(),p(6,vo,2,1,"pre")(7,xo,2,0,"span",47)(8,yo,2,0,"span",48),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 So(o,t){if(o&1){let e=y();r(0,"div",38)(1,"button",39),m("click",function(){u(e);let i=c().$implicit,a=c(2);return g(a.toggleToolCall(i.call.requestId))}),r(2,"span",40),p(3,_o,1,0)(4,uo,1,0)(5,go,1,0),s(),r(6,"span",41),d(7),s(),r(8,"span",42),d(9),s()(),p(10,wo,9,3,"div",43),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 Mo(o,t){if(o&1&&p(0,lo,4,7,"div",26)(1,co,4,2,"div",27)(2,po,4,2,"details",28)(3,So,11,11,"div",29),o&2){let e=t.$implicit;_(e.kind==="message"?0:e.kind==="streaming"?1:e.kind==="technical"?2:3)}}function Eo(o,t){if(o&1&&O(0,Mo,4,1,null,null,pt().trackTimelineItem,!0),o&2){let e=c();I(e.timeline())}}function To(o,t){o&1&&(r(0,"div",13),k(1,"span",56)(2,"span",56)(3,"span",56),s())}function Po(o,t){if(o&1){let e=y();r(0,"div",14)(1,"ds-icon-button",57),m("action",function(){u(e);let i=c();return g(i.onScrollToBottomClick())}),s()()}}function ko(o,t){if(o&1){let e=y();r(0,"div",16)(1,"agentos-prompt-autocomplete",58),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(),b("prompts",e.slashSuggestions())}}function Oo(o,t){if(o&1){let e=y();r(0,"ds-icon-button",59),m("action",function(){u(e),c();let i=te(17);return g(i.openPicker())}),s()}if(o&2){let e=c();b("disabled",!e.canStageFiles())}}function Io(o,t){if(o&1){let e=y();r(0,"ds-icon-button",60),m("action",function(){u(e);let i=c();return g(i.interrupt())}),s()}}function Do(o,t){if(o&1){let e=y();r(0,"ds-icon-button",61),m("action",function(){u(e);let i=c();return g(i.submit())}),s()}if(o&2){let e=c();b("title",e.preferences.composerHint())("disabled",!e.canSend)}}var Ro=64,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(()=>this.composerInput?.nativeElement.focus())}),K(()=>{this.timeline(),this.streamingText(),this.isAtBottom()&&queueMicrotask(()=>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<=Ro)};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=Ht(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
3
|
|
|
4
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})}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(eo,5)(to,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","case-chat__message-text--markdown",3,"innerHTML"],[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,oo,5,0,"div",7),r(5,"div",8)(6,"ds-icon-button",9),m("action",function(){return n.toggleExchange()}),s(),p(7,io,2,1,"span",10),s(),r(8,"div",11,0),p(10,ao,3,0,"div",12)(11,Eo,2,0),p(12,To,4,0,"div",13),s(),p(13,Po,2,0,"div",14),r(14,"div",15),p(15,ko,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,Oo,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,Io,1,0,"ds-icon-button",22)(25,Do,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),b("mobileFullWidth",!0),l(4),_(n.attachments.isDragOver()?4:-1),l(2),b("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(),b("attachments",n.attachments.attachments())("namespaceBadge",n.namespaceTargeted())("limitError",n.attachments.limitError())("disabled",n.attachments.isUploading()),l(3),_(n.canAttach()?19:-1),l(),b("value",n.inputValue())("disabled",n.isRunning()||n.isTerminal()||n.attachments.isUploading()),l(3),b("icon",n.showTechnical()?"visibility_off":"bug_report")("title",n.showTechnical()?"Hide technical events":"Show technical events"),l(),_(n.isRunning()?24:25),l(2),b("disabled",n.isTerminal()))},dependencies:[U,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[_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 No=["composerInput"];function Fo(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 Vo(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(),b("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}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as I}from"./chunk-
|
|
1
|
+
import{r as I}from"./chunk-F2SDHNCX.js";import{Bb as p,Db as d,Fb as c,Ka as r,Tb as s,Ub as C,Vb as w,Wa as x,ga as l,ha as g,jb as y,lb as u,mb as b,mc as h,pc as f,qc as _,sb as n,ta as v,tb as i}from"./chunk-KJ5SIUGY.js";function O(o,m){if(o&1){let e=p();n(0,"span",7),s(1,"Delete?"),i(),n(2,"ds-icon-button",8),d("action",function(){l(e);let a=c();return g(a.onDeleteConfirmed())}),i(),n(3,"ds-icon-button",9),d("action",function(){l(e);let a=c();return g(a.onDeleteCancelled())}),i()}}function M(o,m){if(o&1){let e=p();n(0,"ds-icon-button",11),d("action",function(){l(e);let a=c(2);return g(a.onEdit())}),i(),n(1,"ds-icon-button",12),d("action",function(){l(e);let a=c(2);return g(a.onDeleteArmed())}),i()}}function S(o,m){if(o&1){let e=p();n(0,"ds-icon-button",10),d("action",function(){l(e);let a=c();return g(a.onDuplicate())}),i(),u(1,M,2,0)}if(o&2){let e=c();r(),b(e.readOnly()?-1:1)}}var P=Object.freeze({platform:{label:"PLATFORM",ariaLabel:"Configuration partag\xE9e plateforme",variant:"neutral"},namespace:{label:"NS",ariaLabel:"Configuration partag\xE9e du namespace",variant:"neutral"},userOnNs:{label:"USER \xD7 NS",ariaLabel:"Configuration utilisateur sur ce namespace",variant:"info"},userGlobal:{label:"USER GLOBAL",ariaLabel:"Configuration utilisateur globale",variant:"warning"}}),D=class o{config=_.required();scope=_.required();readOnly=_(!1);editRequested=f();deleteRequested=f();duplicateRequested=f();pendingDelete=v(!1);badge=h(()=>P[this.scope()]);onEdit(){this.editRequested.emit(this.config())}onDuplicate(){this.duplicateRequested.emit(this.config())}onDeleteArmed(){this.pendingDelete.set(!0)}onDeleteConfirmed(){this.pendingDelete.set(!1),this.deleteRequested.emit(this.config())}onDeleteCancelled(){this.pendingDelete.set(!1)}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=x({type:o,selectors:[["agentos-integration-config-item"]],inputs:{config:[1,"config"],scope:[1,"scope"],readOnly:[1,"readOnly"]},outputs:{editRequested:"editRequested",deleteRequested:"deleteRequested",duplicateRequested:"duplicateRequested"},decls:12,vars:6,consts:[["role","listitem",1,"integration-config-item"],[1,"integration-config-item__body"],[1,"integration-config-item__heading"],[1,"integration-config-item__name"],[1,"integration-config-item__badge"],[1,"integration-config-item__type"],[1,"integration-config-item__actions"],[1,"integration-config-item__confirm-label"],["icon","check","variant","danger","title","Confirm deletion",3,"action"],["icon","close","title","Cancel deletion",3,"action"],["icon","content_copy","title","Duplicate this configuration",3,"action"],["icon","edit","title","Edit integration",3,"action"],["icon","delete","variant","danger","title","Delete integration",3,"action"]],template:function(e,t){e&1&&(n(0,"div",0)(1,"div",1)(2,"div",2)(3,"span",3),s(4),i(),n(5,"span",4),s(6),i()(),n(7,"span",5),s(8),i()(),n(9,"div",6),u(10,O,4,0)(11,S,2,1),i()()),e&2&&(r(4),C(t.config().name),r(),y("data-variant",t.badge().variant)("aria-label",t.badge().ariaLabel),r(),w(" ",t.badge().label," "),r(2),C(t.config().integrationType),r(2),b(t.pendingDelete()?10:11))},dependencies:[I],styles:[".integration-config-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-radius:10px;border:1px solid var(--color-border);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-backdrop-blur);backdrop-filter:var(--glass-backdrop-blur);transition:background .15s ease,border-color .15s ease}.integration-config-item[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover);border-color:var(--color-primary)}.integration-config-item__body[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.integration-config-item__heading[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;min-width:0}.integration-config-item__name[_ngcontent-%COMP%]{font-size:.95rem;font-weight:500;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.integration-config-item__badge[_ngcontent-%COMP%]{flex-shrink:0;font-size:.65rem;font-weight:600;letter-spacing:.04em;padding:.15rem .5rem;border-radius:999px;border:1px solid transparent;text-transform:uppercase;white-space:nowrap}.integration-config-item__badge[data-variant=neutral][_ngcontent-%COMP%]{background:var(--color-bg-secondary);color:var(--color-text-secondary);border-color:var(--color-border)}.integration-config-item__badge[data-variant=info][_ngcontent-%COMP%]{background:color-mix(in srgb,var(--color-info) 12%,transparent);color:var(--color-info);border-color:color-mix(in srgb,var(--color-info) 30%,transparent)}.integration-config-item__badge[data-variant=warning][_ngcontent-%COMP%]{background:color-mix(in srgb,var(--color-warning) 12%,transparent);color:var(--color-warning);border-color:color-mix(in srgb,var(--color-warning) 30%,transparent)}.integration-config-item__type[_ngcontent-%COMP%]{font-size:.78rem;color:var(--color-text-secondary);font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.integration-config-item__actions[_ngcontent-%COMP%]{flex-shrink:0;display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.integration-config-item[_ngcontent-%COMP%]:hover .integration-config-item__actions[_ngcontent-%COMP%], .integration-config-item[_ngcontent-%COMP%]:focus-within .integration-config-item__actions[_ngcontent-%COMP%]{opacity:1}.integration-config-item__confirm-label[_ngcontent-%COMP%]{font-size:.8rem;font-weight:500;color:var(--color-error);margin-right:.25rem;white-space:nowrap}"],changeDetection:0})};export{D as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as I}from"./chunk-
|
|
1
|
+
import{i as I}from"./chunk-BCOH5IGB.js";import{a as k,c as w}from"./chunk-MZT6I3S3.js";import{a as h}from"./chunk-3ZLLFAXF.js";import{F as B,c as D,e as C,g as F,h as V,i as A,l as s,n as z,s as L,w as R}from"./chunk-DDWYQORF.js";import{Bb as O,Db as u,Fb as g,Ka as r,Tb as o,Ub as S,Vb as E,Wa as N,a as x,b as v,ca as p,ga as _,ha as b,lb as M,ma as y,mb as P,rb as i,sb as n,ta as f,tb as t,ub as l}from"./chunk-KJ5SIUGY.js";function T(m,a){m&1&&(n(0,"p",5),o(1,"Loading\u2026"),t())}function $(m,a){if(m&1){let e=O();n(0,"form",7),u("ngSubmit",function(){_(e);let d=g();return b(d.submit())}),n(1,"div",8)(2,"label",9),o(3,"Name "),n(4,"span",10),o(5,"*"),t()(),l(6,"input",11),t(),n(7,"div",8)(8,"label",12),o(9,"Description"),t(),l(10,"textarea",13),t(),n(11,"div",8)(12,"label",14),o(13,"External ID"),t(),l(14,"input",15),t(),n(15,"div",8)(16,"label",16),o(17,"Default agent"),t(),l(18,"input",17),t(),n(19,"div",8)(20,"label",18),o(21,"Config path"),t(),l(22,"input",19),t(),n(23,"div",20)(24,"button",21),o(25),t(),n(26,"button",22),u("click",function(){_(e);let d=g();return b(d.cancel())}),o(27,"Cancel"),t()()()}if(m&2){let e=g();i("formGroup",e.form),r(6),i("formControl",e.nameControl),r(4),i("formControl",e.descriptionControl),r(4),i("formControl",e.externalIdControl),r(4),i("formControl",e.defaultAgentNameControl),r(4),i("formControl",e.configPathControl),r(2),i("disabled",e.nameControl.invalid||e.isSubmitting()),r(),E(" ",e.isEditMode()?"Save changes":"Create"," ")}}var G=class m{route=p(k);router=p(w);namespaceController=p(I);destroyRef=p(y);form=new A({name:new s("",{nonNullable:!0,validators:[C.required,C.minLength(1)]}),description:new s("",{nonNullable:!0}),configPath:new s("",{nonNullable:!0}),externalId:new s("",{nonNullable:!0}),defaultAgentName:new s("",{nonNullable:!0})});get nameControl(){return this.form.controls.name}get descriptionControl(){return this.form.controls.description}get configPathControl(){return this.form.controls.configPath}get externalIdControl(){return this.form.controls.externalId}get defaultAgentNameControl(){return this.form.controls.defaultAgentName}isEditMode=f(!1);isSubmitting=f(!1);isLoading=f(!1);existingNamespace=null;ngOnInit(){let a=this.route.snapshot.paramMap.get("namespaceId");a&&(this.isEditMode.set(!0),this.loadNamespace(a))}loadNamespace(a){this.isLoading.set(!0),this.namespaceController.getByIdNamespace(a).pipe(h(this.destroyRef)).subscribe({next:e=>{this.existingNamespace=e,this.nameControl.setValue(e.name),this.descriptionControl.setValue(e.description??""),this.configPathControl.setValue(e.configPath??""),this.externalIdControl.setValue(e.externalId??""),this.defaultAgentNameControl.setValue(e.defaultAgentName??""),this.isLoading.set(!1)},error:()=>{this.isLoading.set(!1),this.navigateBack()}})}submit(){if(this.nameControl.invalid||this.isSubmitting())return;this.isSubmitting.set(!0);let a=v(x({},this.existingNamespace),{name:this.nameControl.value.trim(),description:this.descriptionControl.value.trim()||void 0,configPath:this.configPathControl.value.trim()||void 0,externalId:this.externalIdControl.value.trim()||void 0,defaultAgentName:this.defaultAgentNameControl.value.trim()||void 0});(this.isEditMode()?this.namespaceController.updateNamespace(this.existingNamespace.id??"",a):this.namespaceController.createNamespace(a)).pipe(h(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:()=>this.isSubmitting.set(!1)})}cancel(){this.navigateBack()}navigateBack(){this.router.navigate(["/agentos/namespaces"])}static \u0275fac=function(e){return new(e||m)};static \u0275cmp=N({type:m,selectors:[["agentos-namespace-form"]],decls:10,vars:2,consts:[[1,"namespace-form"],[1,"namespace-form__header"],["type","button","title","Back to namespaces",1,"namespace-form__back",3,"click"],[1,"namespace-form__back-icon"],[1,"namespace-form__title"],[1,"namespace-form__loading"],[1,"namespace-form__form",3,"formGroup"],[1,"namespace-form__form",3,"ngSubmit","formGroup"],[1,"namespace-form__field"],["for","ns-name",1,"namespace-form__label"],["aria-hidden","true"],["id","ns-name","type","text","placeholder","Namespace name","autocomplete","off",1,"namespace-form__input",3,"formControl"],["for","ns-description",1,"namespace-form__label"],["id","ns-description","rows","4","placeholder","Optional description",1,"namespace-form__textarea",3,"formControl"],["for","ns-external-id",1,"namespace-form__label"],["id","ns-external-id","type","text","placeholder","Optional federation ID from an external system","autocomplete","off",1,"namespace-form__input",3,"formControl"],["for","ns-default-agent",1,"namespace-form__label"],["id","ns-default-agent","type","text","placeholder","Logical name of the default agent (e.g. coday)","autocomplete","off",1,"namespace-form__input",3,"formControl"],["for","ns-config-path",1,"namespace-form__label"],["id","ns-config-path","type","text","placeholder","Optional path to base configuration directory","autocomplete","off",1,"namespace-form__input",3,"formControl"],[1,"namespace-form__actions"],["type","submit",1,"namespace-form__btn","namespace-form__btn--primary",3,"disabled"],["type","button",1,"namespace-form__btn",3,"click"]],template:function(e,c){e&1&&(n(0,"div",0)(1,"header",1)(2,"button",2),u("click",function(){return c.cancel()}),n(3,"span",3),o(4,"\u2190"),t(),o(5," Namespaces "),t(),n(6,"h1",4),o(7),t()(),M(8,T,2,0,"p",5)(9,$,28,8,"form",6),t()),e&2&&(r(7),S(c.isEditMode()?"Edit namespace":"New namespace"),r(),P(c.isLoading()?8:9))},dependencies:[B,z,D,F,V,L,R],styles:[".namespace-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:480px;margin:0 auto;padding:2rem 1rem}.namespace-form__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.namespace-form__back[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.375rem;background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-primary, #007aff);font-family:inherit}.namespace-form__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.namespace-form__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.namespace-form__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-text, #1d1d1f);letter-spacing:-.02em}.namespace-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);font-size:.9rem;margin:0}.namespace-form__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.25rem}.namespace-form__field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.namespace-form__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text, #1d1d1f)}.namespace-form__input[_ngcontent-%COMP%], .namespace-form__textarea[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.9375rem;font-family:inherit;outline:none;box-sizing:border-box;transition:border-color .15s ease}.namespace-form__input[_ngcontent-%COMP%]:focus, .namespace-form__textarea[_ngcontent-%COMP%]:focus{border-color:var(--color-primary, #007aff)}.namespace-form__input[_ngcontent-%COMP%]::placeholder, .namespace-form__textarea[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary, #6e6e73)}.namespace-form__textarea[_ngcontent-%COMP%]{resize:vertical;min-height:96px;line-height:1.5}.namespace-form__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.namespace-form__btn[_ngcontent-%COMP%]{padding:.6rem 1.25rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.9375rem;font-family:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease}.namespace-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-surface-hover, rgba(0, 0, 0, .04))}.namespace-form__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.namespace-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-primary, #007aff);border-color:var(--color-primary, #007aff);color:#fff}.namespace-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-primary-hover, #0051d5);border-color:var(--color-primary-hover, #0051d5)}"],changeDetection:0})};export{G as NamespaceFormComponent};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as W}from"./chunk-
|
|
1
|
+
import{a as W}from"./chunk-JFRIGSWA.js";import{a as P,b as w,e as I,f as L,g as O,h as S}from"./chunk-OX7PDXEA.js";import{a as R,b as A}from"./chunk-Q2M4W42M.js";import{E as V,g as N,m as B}from"./chunk-DDWYQORF.js";import{Q as T,S as E}from"./chunk-B46LXCLF.js";import{$b as v,Bb as M,Db as d,Fb as s,Ka as o,Rb as k,Tb as i,Ub as r,Vb as g,Wa as b,Zb as D,_b as y,ca as m,ga as C,ha as u,lb as h,mb as _,rb as x,sb as a,tb as n}from"./chunk-KJ5SIUGY.js";function j(c,p){if(c&1){let t=M();a(0,"mat-checkbox",5),v("ngModelChange",function(l){C(t);let f=s();return y(f.checkboxChecked,l)||(f.checkboxChecked=l),u(l)}),i(1),n()}if(c&2){let t=s();D("ngModel",t.checkboxChecked),o(),r(t.data.checkboxLabel)}}var F=class c{dialogRef=m(P);data=m(w);checkboxChecked=!1;confirm(){this.dialogRef.close({confirmed:!0,checkboxChecked:this.checkboxChecked})}cancel(){this.dialogRef.close({confirmed:!1})}static \u0275fac=function(t){return new(t||c)};static \u0275cmp=b({type:c,selectors:[["app-confirm-dialog"]],decls:13,vars:8,consts:[["mat-dialog-title",""],[3,"ngModel"],["align","end"],["mat-button","",3,"click"],["mat-flat-button","",3,"click","color"],[3,"ngModelChange","ngModel"]],template:function(t,e){t&1&&(a(0,"h2",0)(1,"mat-icon"),i(2,"warning"),n(),i(3),n(),a(4,"mat-dialog-content")(5,"p"),i(6),n(),h(7,j,2,2,"mat-checkbox",1),n(),a(8,"mat-dialog-actions",2)(9,"button",3),d("click",function(){return e.cancel()}),i(10),n(),a(11,"button",4),d("click",function(){return e.confirm()}),i(12),n()()),t&2&&(o(),k("destructive",!!e.data.isDestructive),o(2),g(" ",e.data.title,`
|
|
2
2
|
`),o(3),r(e.data.message),o(),_(e.data.checkboxLabel?7:-1),o(3),r(e.data.cancelLabel??"Cancel"),o(),x("color",e.data.isDestructive?"warn":"primary"),o(),g(" ",e.data.confirmLabel??"Confirm"," "))},dependencies:[S,I,O,L,E,T,A,R,W,V,N,B],styles:["h2[mat-dialog-title][_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem}h2[mat-dialog-title][_ngcontent-%COMP%] mat-icon.destructive[_ngcontent-%COMP%]{color:var(--color-error, #f44336)}mat-dialog-content[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{color:var(--color-text-secondary);line-height:1.5}mat-dialog-content[_ngcontent-%COMP%] mat-checkbox[_ngcontent-%COMP%]{display:block;margin-top:8px;font-size:.875rem}"],changeDetection:0})};export{F as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as E}from"./chunk-BJM7MKOH.js";import{c as S,d as _,f as u,g as C}from"./chunk-QVW2GZXC.js";import{a as q,b as U,c as Y,d as Q}from"./chunk-2Y5JVJQU.js";import"./chunk-OWSH6KVW.js";import{e as I}from"./chunk-34BTCCLM.js";import"./chunk-WIYSZEOD.js";import"./chunk-4TH4ERQY.js";import{a as L,d as b}from"./chunk-NAHXPRXR.js";import"./chunk-CA4E6QDU.js";import"./chunk-QCDV42EK.js";import{a as $,c as H}from"./chunk-P4GNUQZT.js";import"./chunk-BZS55WHS.js";import"./chunk-V7NUXN3R.js";import"./chunk-KD3BJ52V.js";import"./chunk-UDEMKCGK.js";import"./chunk-2LJ5KJSM.js";import"./chunk-EBAEYY2S.js";import"./chunk-C2XSJPYF.js";import"./chunk-BZ7URUNM.js";import"./chunk-SKBT6DBT.js";import"./chunk-GF3EMWCA.js";import"./chunk-Z6RFJ6L3.js";import"./chunk-LN55MSDV.js";import"./chunk-OPSHMM4H.js";import{B as x,Bb as M,Db as y,Fb as s,Jb as W,Ka as m,Kb as O,Lb as P,N as A,T as p,Tb as G,Ub as z,Wa as v,Z as F,ca as a,d as k,ga as c,h as f,ha as d,lb as V,mb as j,rb as w,sb as h,tb as g,ub as R,vb as D,wb as B}from"./chunk-5NLXR4MK.js";var T=class o{welcomeMessages=["Welcome to Coday","Bienvenue sur Coday","Bienvenido a Coday","Willkommen bei Coday","Benvenuto su Coday","Bem-vindo ao Coday","Welkom bij Coday","\u0414\u043E\u0431\u0440\u043E \u043F\u043E\u0436\u0430\u043B\u043E\u0432\u0430\u0442\u044C \u0432 Coday","Coday \u3078\u3088\u3046\u3053\u305D","\u6B22\u8FCE\u6765\u5230 Coday","Coday \uC5D0 \uC624\uC2E0 \uAC83\uC744 \uD658\uC601\uD569\uB2C8\uB2E4","\u0645\u0631\u062D\u0628\u064B\u0627 \u0628\u0643 \u0641\u064A Coday"];currentWelcomeIndex=0;currentWelcomeMessage=this.welcomeMessages[0];welcomeRotationInterval;ngOnInit(){this.startWelcomeRotation()}ngOnDestroy(){this.stopWelcomeRotation()}startWelcomeRotation(){this.welcomeRotationInterval=window.setInterval(()=>{this.currentWelcomeIndex=(this.currentWelcomeIndex+1)%this.welcomeMessages.length,this.currentWelcomeMessage=this.welcomeMessages[this.currentWelcomeIndex]},3e3)}stopWelcomeRotation(){this.welcomeRotationInterval&&(clearInterval(this.welcomeRotationInterval),this.welcomeRotationInterval=void 0)}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=v({type:o,selectors:[["app-welcome-message"]],decls:2,vars:1,consts:[[1,"welcome-title"]],template:function(t,i){t&1&&(D(0,"h1",0),G(1),B()),t&2&&(m(),z(i.currentWelcomeMessage))},styles:[".welcome-title[_ngcontent-%COMP%]{font-size:clamp(1.5rem,4vw,4rem);font-weight:700;background:linear-gradient(90deg,var(--color-primary, #3b82f6) 0%,var(--color-accent, #8b5cf6) 50%,var(--color-primary, #3b82f6) 100%);background-size:200% auto;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:_ngcontent-%COMP%_gradientShift 3s ease-in-out infinite;margin:0;padding:0;line-height:1.2;transition:opacity .5s ease-in-out;display:block;min-height:1.2em;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@keyframes _ngcontent-%COMP%_gradientShift{0%{background-position:0% center}50%{background-position:100% center}to{background-position:0% center}}"]})};var N=class o{destroy$=new f;isSetup=!1;codayService=a(I);preferencesService=a(b);setup(){if(this.isSetup){console.warn("[AGENT-NOTIFICATION] Service already set up");return}console.log("[AGENT-NOTIFICATION] Setting up agent notification service"),this.codayService.isThinking$.pipe(p(this.destroy$),A(),x(([e,t])=>e===!0&&t===!1)).subscribe(()=>{console.log("[AGENT-NOTIFICATION] Agent stopped thinking, notifying task finished"),this.notifyTaskFinishedIfEnabled()}),this.preferencesService.browserNotificationEnabled$.pipe(p(this.destroy$),A(),x(([e,t])=>e===!1&&t===!0)).subscribe(()=>{console.log("[AGENT-NOTIFICATION] Browser notifications enabled, checking permission"),this.handleBrowserNotificationEnabled()}),this.isSetup=!0}notifyTaskFinishedIfEnabled(){this.preferencesService.getAgentNotificationEnabled()&&(this.preferencesService.getNotificationSoundEnabled()&&this.playCompletionSound(),this.preferencesService.getBrowserNotificationEnabled()&&this.sendBrowserNotification())}playCompletionSound(){try{let e=new(window.AudioContext||window.webkitAudioContext),t=e.createOscillator(),i=e.createGain();t.connect(i),i.connect(e.destination),t.frequency.setValueAtTime(700,e.currentTime),i.gain.setValueAtTime(.1,e.currentTime),i.gain.exponentialRampToValueAtTime(.01,e.currentTime+.08),t.start(e.currentTime),t.stop(e.currentTime+.08);let n=e.createOscillator(),r=e.createGain();n.connect(r),r.connect(e.destination);let l=e.currentTime+.11;n.frequency.setValueAtTime(950,l),r.gain.setValueAtTime(.1,l),r.gain.exponentialRampToValueAtTime(.01,l+.09),n.start(l),n.stop(l+.09),console.log("[AGENT-NOTIFICATION] Completion sound played")}catch(e){console.error("[AGENT-NOTIFICATION] Failed to play completion sound:",e)}}handleBrowserNotificationEnabled(){return k(this,null,function*(){if(!("Notification"in window)){console.warn("[AGENT-NOTIFICATION] Browser does not support notifications"),this.preferencesService.setBrowserNotificationEnabled(!1);return}if(Notification.permission==="denied"){console.warn("[AGENT-NOTIFICATION] Permission denied, disabling browser notifications"),this.preferencesService.setBrowserNotificationEnabled(!1);return}if(Notification.permission==="granted"){console.log("[AGENT-NOTIFICATION] Permission already granted, showing confirmation"),this.createConfirmationNotification();return}try{(yield Notification.requestPermission())==="granted"?(console.log("[AGENT-NOTIFICATION] Permission granted, showing confirmation"),this.createConfirmationNotification()):(console.log("[AGENT-NOTIFICATION] Permission denied or dismissed"),this.preferencesService.setBrowserNotificationEnabled(!1))}catch(e){console.error("[AGENT-NOTIFICATION] Error requesting permission:",e),this.preferencesService.setBrowserNotificationEnabled(!1)}})}sendBrowserNotification(){if(!("Notification"in window)){console.warn("[AGENT-NOTIFICATION] Browser does not support notifications");return}if(document.hasFocus()){console.warn("[AGENT-NOTIFICATION] Document is focused, skipping browser notification");return}Notification.permission==="granted"?this.createTaskCompleteNotification():console.warn("[AGENT-NOTIFICATION] Permission not granted, cannot send notification")}createConfirmationNotification(){let e=new Notification("Coday - Notifications Enabled",{body:"You will be notified when the agent completes tasks",icon:"/favicon.ico",tag:"coday-notifications-enabled",requireInteraction:!1});setTimeout(()=>e.close(),4e3),e.onclick=()=>{window.focus(),e.close()},console.log("[AGENT-NOTIFICATION] Confirmation notification sent")}createTaskCompleteNotification(){let e=new Notification("Coday - Task Complete",{body:"The agent has finished and is waiting for your input",icon:"/favicon.ico",tag:"coday-task-complete",requireInteraction:!1});setTimeout(()=>e.close(),5e3),e.onclick=()=>{window.focus(),e.close()},console.log("[AGENT-NOTIFICATION] Task complete notification sent")}ngOnDestroy(){console.log("[AGENT-NOTIFICATION] Service destroyed"),this.destroy$.next(),this.destroy$.complete()}static \u0275fac=function(t){return new(t||o)};static \u0275prov=F({token:o,factory:o.\u0275fac,providedIn:"root"})};var Z=["inputSection"];function ee(o,e){if(o&1){let t=M();h(0,"app-thread",4),y("chatFocused",function(){c(t);let n=s();return d(n.onChatFocusedOnMobile())})("drawerStateChange",function(n){c(t);let r=s();return d(r.onDrawerStateChange(n))}),g()}if(o&2){let t=s();w("projectName",t.projectName)("threadId",t.threadId)}}function te(o,e){if(o&1){let t=M();h(0,"div",5),R(1,"app-welcome-message"),g(),h(2,"div",6,0)(4,"div",7)(5,"div",8)(6,"app-chat-textarea",9),y("messageSubmitted",function(n){c(t);let r=s();return d(r.onMessageSubmitted(n))})("voiceMessageReady",function(n){c(t);let r=s();return d(r.onVoiceMessageReady(n))})("voiceRecordingToggled",function(n){c(t);let r=s();return d(r.onVoiceToggled(n))})("heightChanged",function(n){c(t);let r=s();return d(r.onInputHeightChanged(n))})("textareaFocused",function(){c(t);let n=s();return d(n.onChatFocusedOnMobile())}),g()()()()}if(o&2){let t=s();m(6),w("isDisabled",t.isSessionInitializing)("isSessionInitializing",t.isSessionInitializing)("showWelcome",!0)("isThinking",!1)("isStarting",t.isStartingFirstMessage)}}var K=class o{destroy$=new f;inputSection;sidenav;projectName="";threadId=null;isSessionInitializing=!1;isStartingFirstMessage=!1;inputSectionHeight=80;codayService=a(I);titleService=a(U);preferencesService=a(b);route=a($);router=a(H);threadApiService=a(L);agentNotificationService=a(N);firstMessageState=a(Y);constructor(){console.log("[MAIN-APP] Using new thread-based architecture (no clientId needed)")}ngOnInit(){this.agentNotificationService.setup(),this.setupPrintHandlers(),this.route.params.pipe(p(this.destroy$)).subscribe(e=>{let t=e.projectName,i=e.threadId||null;console.log("[MAIN-APP] Route params updated:",{project:t,thread:i,previousProject:this.projectName,previousThread:this.threadId}),this.projectName=t,this.threadId=i,this.threadId?console.log("[MAIN-APP] Thread selected - ThreadComponent will display"):(console.log("[MAIN-APP] No thread selected - showing welcome view"),this.initializeWelcomeView())})}initializeWelcomeView(){this.codayService.setTabTitleService(this.titleService)}ngAfterViewInit(){setTimeout(()=>this.updateInputSectionHeight(),100)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete(),window.removeEventListener("beforeprint",this.handleBeforePrint),window.removeEventListener("afterprint",this.handleAfterPrint)}onMessageSubmitted(e){console.log("[MAIN-APP] First message submitted from welcome view:",e),this.isSessionInitializing=!0,this.isStartingFirstMessage=!0,this.threadApiService.createThread().subscribe({next:t=>{console.log("[MAIN-APP] Thread created:",t.thread.id),this.firstMessageState.setPendingFirstMessage(e),this.router.navigate(["project",this.projectName,"thread",t.thread.id])},error:t=>{console.error("[MAIN-APP] Failed to create thread:",t),this.isSessionInitializing=!1,this.isStartingFirstMessage=!1,alert("Failed to create conversation: "+(t.message||"Unknown error"))}})}onVoiceToggled(e){console.log("[VOICE] Recording in welcome view:",e)}onVoiceMessageReady(e){console.log("[MAIN-APP] Voice message ready from welcome view"),this.isSessionInitializing=!0,this.isStartingFirstMessage=!0,this.threadApiService.createThread().subscribe({next:t=>{console.log("[MAIN-APP] Thread created for voice message:",t.thread.id),this.firstMessageState.setPendingVoiceMessage(e),this.router.navigate(["project",this.projectName,"thread",t.thread.id])},error:t=>{console.error("[MAIN-APP] Failed to create thread for voice message:",t),this.isSessionInitializing=!1,this.isStartingFirstMessage=!1,alert("Failed to create conversation: "+(t.message||"Unknown error"))}})}isDrawerOpen=!1;onDrawerStateChange(e){this.isDrawerOpen=e}onChatFocusedOnMobile(){window.innerWidth<1024&&this.sidenav?.close()}onInputHeightChanged(e){console.log("[MAIN-APP] Input height changed:",e),this.inputSectionHeight=e}updateInputSectionHeight(){if(this.inputSection?.nativeElement){let e=this.inputSection.nativeElement.offsetHeight;e!==this.inputSectionHeight&&(console.log("[MAIN-APP] Input section height updated:",e),this.inputSectionHeight=e)}}setupPrintHandlers(){window.addEventListener("beforeprint",this.handleBeforePrint),window.addEventListener("afterprint",this.handleAfterPrint)}handleBeforePrint=()=>{console.log("[PRINT] Before print event triggered");let e=this.preferencesService.getPrintTechnicalMessages();console.log("[PRINT] Print technical messages:",e),e?document.body.classList.add("print-include-technical"):document.body.classList.remove("print-include-technical")};handleAfterPrint=()=>{console.log("[PRINT] After print event triggered"),document.body.classList.remove("print-include-technical")};static \u0275fac=function(t){return new(t||o)};static \u0275cmp=v({type:o,selectors:[["app-main"]],viewQuery:function(t,i){if(t&1&&W(Z,5)(E,5),t&2){let n;O(n=P())&&(i.inputSection=n.first),O(n=P())&&(i.sidenav=n.first)}},decls:4,vars:2,consts:[["inputSection",""],[3,"drawerOpen"],[1,"app",3,"mousedown","touchstart"],[3,"projectName","threadId"],[3,"chatFocused","drawerStateChange","projectName","threadId"],[1,"welcome-section"],[1,"input-section"],[1,"input-center"],[1,"input-glass"],[3,"messageSubmitted","voiceMessageReady","voiceRecordingToggled","heightChanged","textareaFocused","isDisabled","isSessionInitializing","showWelcome","isThinking","isStarting"]],template:function(t,i){t&1&&(h(0,"app-sidenav",1)(1,"div",2),y("mousedown",function(){return i.onChatFocusedOnMobile()})("touchstart",function(){return i.onChatFocusedOnMobile()}),V(2,ee,1,2,"app-thread",3)(3,te,7,5),g()()),t&2&&(w("drawerOpen",i.isDrawerOpen),m(2),j(i.threadId?2:3))},dependencies:[q,Q,T,E],styles:["[_nghost-%COMP%]{display:flex;height:100vh;width:100%;overflow:hidden;justify-content:center}.app[_ngcontent-%COMP%]{width:100%;max-width:100%;min-width:0;height:100%;display:flex;flex-direction:column;background:var(--color-bg);color:var(--color-text);transition:all .3s ease;position:relative;justify-content:center;overflow:hidden}.chat-wrapper[_ngcontent-%COMP%]{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;background:transparent;width:100%;padding:2.5rem 0 1.5rem;display:flex;justify-content:center}.chat-wrapper[_ngcontent-%COMP%] .chat-center[_ngcontent-%COMP%]{max-width:760px;width:100%;margin:0;padding:0 2rem}@media(max-width:768px){.chat-wrapper[_ngcontent-%COMP%] .chat-center[_ngcontent-%COMP%]{padding:0 1rem}}.welcome-section[_ngcontent-%COMP%]{flex-shrink:0;text-align:center;padding:2rem 1rem;animation:_ngcontent-%COMP%_fadeInUp .8s ease-out;display:flex;justify-content:center;align-items:center;width:100%;min-width:0;overflow:hidden}@keyframes _ngcontent-%COMP%_fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.input-section[_ngcontent-%COMP%]{flex-shrink:0;position:relative;border-top:none;background:transparent;box-shadow:none;padding:2.5rem 0 2rem;overflow-y:visible;max-height:none;width:100%;z-index:10;pointer-events:none;display:flex;justify-content:center}.input-center[_ngcontent-%COMP%]{max-width:760px;width:100%;margin:0;padding:0 2rem;display:flex;justify-content:center;align-items:end;position:relative;pointer-events:auto}@media(max-width:768px){.input-center[_ngcontent-%COMP%]{padding:0 1rem}}.input-glass[_ngcontent-%COMP%]{background:none;box-shadow:none;width:100%;min-height:64px;display:flex;align-items:stretch;gap:0;pointer-events:auto;position:relative;overflow:visible}.input-glass[_ngcontent-%COMP%] app-chat-textarea[_ngcontent-%COMP%]{width:100%;min-width:0;flex:1 1 auto;align-self:stretch;display:flex}body.dark[_nghost-%COMP%], body.dark [_nghost-%COMP%], [_ngcontent-%COMP%]:root[data-theme=dark] .input-glass[_ngcontent-%COMP%]{background:#24283073;border-color:#b4c8ff17;box-shadow:0 8px 32px #0000002b,0 1.5px 8px #00000012}.choice-overlay[_ngcontent-%COMP%]{z-index:10;width:100%;display:flex;justify-content:center;align-items:center}.upload-status[_ngcontent-%COMP%]{position:fixed;bottom:100px;left:50%;transform:translate(-50%);z-index:1000;display:flex;align-items:center;padding:12px 20px;background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);border-radius:16px;font-size:.9em;color:var(--color-text);box-shadow:var(--glass-shadow);max-width:300px;text-align:center}.upload-status.error[_ngcontent-%COMP%]{background:#ff3b3026;color:var(--color-error);border-color:#ff3b304d}@media(max-width:768px){.welcome-section[_ngcontent-%COMP%]{padding:1.5rem 1rem}.input-section[_ngcontent-%COMP%]{padding:1.5rem .75rem 1rem}.input-center[_ngcontent-%COMP%]{padding:0 .5rem}}@media print{[_nghost-%COMP%]{display:block!important;height:auto!important;overflow:visible!important}.app[_ngcontent-%COMP%]{height:auto!important;overflow:visible!important;display:block!important}.input-section[_ngcontent-%COMP%], .welcome-section[_ngcontent-%COMP%]{display:none!important}}"],data:{animation:[S("slideIn",[C(":enter",[u({transform:"translateY(100%)",opacity:0}),_("300ms ease-out",u({transform:"translateY(0)",opacity:1}))]),C(":leave",[_("200ms ease-in",u({transform:"translateY(100%)",opacity:0}))])])]}})};export{K as MainAppComponent};
|
|
1
|
+
import{a as E}from"./chunk-X7WD62KI.js";import{c as S,d as _,f as u,g as C}from"./chunk-QVW2GZXC.js";import{a as q,b as U,c as Y,d as Q}from"./chunk-PIVEZFIL.js";import"./chunk-S5XVTDPO.js";import{e as I}from"./chunk-L2CXQ5ZG.js";import"./chunk-VR3I4RKJ.js";import"./chunk-I2FVKUBH.js";import{a as L,d as b}from"./chunk-AEGHERYH.js";import"./chunk-Z43UATKA.js";import"./chunk-R7YB3V2E.js";import{a as $,c as H}from"./chunk-MZT6I3S3.js";import"./chunk-RX6XVTR7.js";import"./chunk-A7WS3RLV.js";import"./chunk-WUU4G5YQ.js";import"./chunk-DVUB4DDV.js";import"./chunk-F2SDHNCX.js";import"./chunk-MWPKXBXJ.js";import"./chunk-OX7PDXEA.js";import"./chunk-7EDSHFWH.js";import"./chunk-3ZLLFAXF.js";import"./chunk-Q2M4W42M.js";import"./chunk-DDWYQORF.js";import"./chunk-JF3TWRKD.js";import"./chunk-B46LXCLF.js";import{B as x,Bb as M,Db as y,Fb as s,Jb as W,Ka as m,Kb as O,Lb as P,N as A,T as p,Tb as G,Ub as z,Wa as v,Z as F,ca as a,d as k,ga as c,h as f,ha as d,lb as V,mb as j,rb as w,sb as h,tb as g,ub as R,vb as D,wb as B}from"./chunk-KJ5SIUGY.js";var T=class o{welcomeMessages=["Welcome to Coday","Bienvenue sur Coday","Bienvenido a Coday","Willkommen bei Coday","Benvenuto su Coday","Bem-vindo ao Coday","Welkom bij Coday","\u0414\u043E\u0431\u0440\u043E \u043F\u043E\u0436\u0430\u043B\u043E\u0432\u0430\u0442\u044C \u0432 Coday","Coday \u3078\u3088\u3046\u3053\u305D","\u6B22\u8FCE\u6765\u5230 Coday","Coday \uC5D0 \uC624\uC2E0 \uAC83\uC744 \uD658\uC601\uD569\uB2C8\uB2E4","\u0645\u0631\u062D\u0628\u064B\u0627 \u0628\u0643 \u0641\u064A Coday"];currentWelcomeIndex=0;currentWelcomeMessage=this.welcomeMessages[0];welcomeRotationInterval;ngOnInit(){this.startWelcomeRotation()}ngOnDestroy(){this.stopWelcomeRotation()}startWelcomeRotation(){this.welcomeRotationInterval=window.setInterval(()=>{this.currentWelcomeIndex=(this.currentWelcomeIndex+1)%this.welcomeMessages.length,this.currentWelcomeMessage=this.welcomeMessages[this.currentWelcomeIndex]},3e3)}stopWelcomeRotation(){this.welcomeRotationInterval&&(clearInterval(this.welcomeRotationInterval),this.welcomeRotationInterval=void 0)}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=v({type:o,selectors:[["app-welcome-message"]],decls:2,vars:1,consts:[[1,"welcome-title"]],template:function(t,i){t&1&&(D(0,"h1",0),G(1),B()),t&2&&(m(),z(i.currentWelcomeMessage))},styles:[".welcome-title[_ngcontent-%COMP%]{font-size:clamp(1.5rem,4vw,4rem);font-weight:700;background:linear-gradient(90deg,var(--color-primary, #3b82f6) 0%,var(--color-accent, #8b5cf6) 50%,var(--color-primary, #3b82f6) 100%);background-size:200% auto;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:_ngcontent-%COMP%_gradientShift 3s ease-in-out infinite;margin:0;padding:0;line-height:1.2;transition:opacity .5s ease-in-out;display:block;min-height:1.2em;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@keyframes _ngcontent-%COMP%_gradientShift{0%{background-position:0% center}50%{background-position:100% center}to{background-position:0% center}}"]})};var N=class o{destroy$=new f;isSetup=!1;codayService=a(I);preferencesService=a(b);setup(){if(this.isSetup){console.warn("[AGENT-NOTIFICATION] Service already set up");return}console.log("[AGENT-NOTIFICATION] Setting up agent notification service"),this.codayService.isThinking$.pipe(p(this.destroy$),A(),x(([e,t])=>e===!0&&t===!1)).subscribe(()=>{console.log("[AGENT-NOTIFICATION] Agent stopped thinking, notifying task finished"),this.notifyTaskFinishedIfEnabled()}),this.preferencesService.browserNotificationEnabled$.pipe(p(this.destroy$),A(),x(([e,t])=>e===!1&&t===!0)).subscribe(()=>{console.log("[AGENT-NOTIFICATION] Browser notifications enabled, checking permission"),this.handleBrowserNotificationEnabled()}),this.isSetup=!0}notifyTaskFinishedIfEnabled(){this.preferencesService.getAgentNotificationEnabled()&&(this.preferencesService.getNotificationSoundEnabled()&&this.playCompletionSound(),this.preferencesService.getBrowserNotificationEnabled()&&this.sendBrowserNotification())}playCompletionSound(){try{let e=new(window.AudioContext||window.webkitAudioContext),t=e.createOscillator(),i=e.createGain();t.connect(i),i.connect(e.destination),t.frequency.setValueAtTime(700,e.currentTime),i.gain.setValueAtTime(.1,e.currentTime),i.gain.exponentialRampToValueAtTime(.01,e.currentTime+.08),t.start(e.currentTime),t.stop(e.currentTime+.08);let n=e.createOscillator(),r=e.createGain();n.connect(r),r.connect(e.destination);let l=e.currentTime+.11;n.frequency.setValueAtTime(950,l),r.gain.setValueAtTime(.1,l),r.gain.exponentialRampToValueAtTime(.01,l+.09),n.start(l),n.stop(l+.09),console.log("[AGENT-NOTIFICATION] Completion sound played")}catch(e){console.error("[AGENT-NOTIFICATION] Failed to play completion sound:",e)}}handleBrowserNotificationEnabled(){return k(this,null,function*(){if(!("Notification"in window)){console.warn("[AGENT-NOTIFICATION] Browser does not support notifications"),this.preferencesService.setBrowserNotificationEnabled(!1);return}if(Notification.permission==="denied"){console.warn("[AGENT-NOTIFICATION] Permission denied, disabling browser notifications"),this.preferencesService.setBrowserNotificationEnabled(!1);return}if(Notification.permission==="granted"){console.log("[AGENT-NOTIFICATION] Permission already granted, showing confirmation"),this.createConfirmationNotification();return}try{(yield Notification.requestPermission())==="granted"?(console.log("[AGENT-NOTIFICATION] Permission granted, showing confirmation"),this.createConfirmationNotification()):(console.log("[AGENT-NOTIFICATION] Permission denied or dismissed"),this.preferencesService.setBrowserNotificationEnabled(!1))}catch(e){console.error("[AGENT-NOTIFICATION] Error requesting permission:",e),this.preferencesService.setBrowserNotificationEnabled(!1)}})}sendBrowserNotification(){if(!("Notification"in window)){console.warn("[AGENT-NOTIFICATION] Browser does not support notifications");return}if(document.hasFocus()){console.warn("[AGENT-NOTIFICATION] Document is focused, skipping browser notification");return}Notification.permission==="granted"?this.createTaskCompleteNotification():console.warn("[AGENT-NOTIFICATION] Permission not granted, cannot send notification")}createConfirmationNotification(){let e=new Notification("Coday - Notifications Enabled",{body:"You will be notified when the agent completes tasks",icon:"/favicon.ico",tag:"coday-notifications-enabled",requireInteraction:!1});setTimeout(()=>e.close(),4e3),e.onclick=()=>{window.focus(),e.close()},console.log("[AGENT-NOTIFICATION] Confirmation notification sent")}createTaskCompleteNotification(){let e=new Notification("Coday - Task Complete",{body:"The agent has finished and is waiting for your input",icon:"/favicon.ico",tag:"coday-task-complete",requireInteraction:!1});setTimeout(()=>e.close(),5e3),e.onclick=()=>{window.focus(),e.close()},console.log("[AGENT-NOTIFICATION] Task complete notification sent")}ngOnDestroy(){console.log("[AGENT-NOTIFICATION] Service destroyed"),this.destroy$.next(),this.destroy$.complete()}static \u0275fac=function(t){return new(t||o)};static \u0275prov=F({token:o,factory:o.\u0275fac,providedIn:"root"})};var Z=["inputSection"];function ee(o,e){if(o&1){let t=M();h(0,"app-thread",4),y("chatFocused",function(){c(t);let n=s();return d(n.onChatFocusedOnMobile())})("drawerStateChange",function(n){c(t);let r=s();return d(r.onDrawerStateChange(n))}),g()}if(o&2){let t=s();w("projectName",t.projectName)("threadId",t.threadId)}}function te(o,e){if(o&1){let t=M();h(0,"div",5),R(1,"app-welcome-message"),g(),h(2,"div",6,0)(4,"div",7)(5,"div",8)(6,"app-chat-textarea",9),y("messageSubmitted",function(n){c(t);let r=s();return d(r.onMessageSubmitted(n))})("voiceMessageReady",function(n){c(t);let r=s();return d(r.onVoiceMessageReady(n))})("voiceRecordingToggled",function(n){c(t);let r=s();return d(r.onVoiceToggled(n))})("heightChanged",function(n){c(t);let r=s();return d(r.onInputHeightChanged(n))})("textareaFocused",function(){c(t);let n=s();return d(n.onChatFocusedOnMobile())}),g()()()()}if(o&2){let t=s();m(6),w("isDisabled",t.isSessionInitializing)("isSessionInitializing",t.isSessionInitializing)("showWelcome",!0)("isThinking",!1)("isStarting",t.isStartingFirstMessage)}}var K=class o{destroy$=new f;inputSection;sidenav;projectName="";threadId=null;isSessionInitializing=!1;isStartingFirstMessage=!1;inputSectionHeight=80;codayService=a(I);titleService=a(U);preferencesService=a(b);route=a($);router=a(H);threadApiService=a(L);agentNotificationService=a(N);firstMessageState=a(Y);constructor(){console.log("[MAIN-APP] Using new thread-based architecture (no clientId needed)")}ngOnInit(){this.agentNotificationService.setup(),this.setupPrintHandlers(),this.route.params.pipe(p(this.destroy$)).subscribe(e=>{let t=e.projectName,i=e.threadId||null;console.log("[MAIN-APP] Route params updated:",{project:t,thread:i,previousProject:this.projectName,previousThread:this.threadId}),this.projectName=t,this.threadId=i,this.threadId?console.log("[MAIN-APP] Thread selected - ThreadComponent will display"):(console.log("[MAIN-APP] No thread selected - showing welcome view"),this.initializeWelcomeView())})}initializeWelcomeView(){this.codayService.setTabTitleService(this.titleService)}ngAfterViewInit(){setTimeout(()=>this.updateInputSectionHeight(),100)}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete(),window.removeEventListener("beforeprint",this.handleBeforePrint),window.removeEventListener("afterprint",this.handleAfterPrint)}onMessageSubmitted(e){console.log("[MAIN-APP] First message submitted from welcome view:",e),this.isSessionInitializing=!0,this.isStartingFirstMessage=!0,this.threadApiService.createThread().subscribe({next:t=>{console.log("[MAIN-APP] Thread created:",t.thread.id),this.firstMessageState.setPendingFirstMessage(e),this.router.navigate(["project",this.projectName,"thread",t.thread.id])},error:t=>{console.error("[MAIN-APP] Failed to create thread:",t),this.isSessionInitializing=!1,this.isStartingFirstMessage=!1,alert("Failed to create conversation: "+(t.message||"Unknown error"))}})}onVoiceToggled(e){console.log("[VOICE] Recording in welcome view:",e)}onVoiceMessageReady(e){console.log("[MAIN-APP] Voice message ready from welcome view"),this.isSessionInitializing=!0,this.isStartingFirstMessage=!0,this.threadApiService.createThread().subscribe({next:t=>{console.log("[MAIN-APP] Thread created for voice message:",t.thread.id),this.firstMessageState.setPendingVoiceMessage(e),this.router.navigate(["project",this.projectName,"thread",t.thread.id])},error:t=>{console.error("[MAIN-APP] Failed to create thread for voice message:",t),this.isSessionInitializing=!1,this.isStartingFirstMessage=!1,alert("Failed to create conversation: "+(t.message||"Unknown error"))}})}isDrawerOpen=!1;onDrawerStateChange(e){this.isDrawerOpen=e}onChatFocusedOnMobile(){window.innerWidth<1024&&this.sidenav?.close()}onInputHeightChanged(e){console.log("[MAIN-APP] Input height changed:",e),this.inputSectionHeight=e}updateInputSectionHeight(){if(this.inputSection?.nativeElement){let e=this.inputSection.nativeElement.offsetHeight;e!==this.inputSectionHeight&&(console.log("[MAIN-APP] Input section height updated:",e),this.inputSectionHeight=e)}}setupPrintHandlers(){window.addEventListener("beforeprint",this.handleBeforePrint),window.addEventListener("afterprint",this.handleAfterPrint)}handleBeforePrint=()=>{console.log("[PRINT] Before print event triggered");let e=this.preferencesService.getPrintTechnicalMessages();console.log("[PRINT] Print technical messages:",e),e?document.body.classList.add("print-include-technical"):document.body.classList.remove("print-include-technical")};handleAfterPrint=()=>{console.log("[PRINT] After print event triggered"),document.body.classList.remove("print-include-technical")};static \u0275fac=function(t){return new(t||o)};static \u0275cmp=v({type:o,selectors:[["app-main"]],viewQuery:function(t,i){if(t&1&&W(Z,5)(E,5),t&2){let n;O(n=P())&&(i.inputSection=n.first),O(n=P())&&(i.sidenav=n.first)}},decls:4,vars:2,consts:[["inputSection",""],[3,"drawerOpen"],[1,"app",3,"mousedown","touchstart"],[3,"projectName","threadId"],[3,"chatFocused","drawerStateChange","projectName","threadId"],[1,"welcome-section"],[1,"input-section"],[1,"input-center"],[1,"input-glass"],[3,"messageSubmitted","voiceMessageReady","voiceRecordingToggled","heightChanged","textareaFocused","isDisabled","isSessionInitializing","showWelcome","isThinking","isStarting"]],template:function(t,i){t&1&&(h(0,"app-sidenav",1)(1,"div",2),y("mousedown",function(){return i.onChatFocusedOnMobile()})("touchstart",function(){return i.onChatFocusedOnMobile()}),V(2,ee,1,2,"app-thread",3)(3,te,7,5),g()()),t&2&&(w("drawerOpen",i.isDrawerOpen),m(2),j(i.threadId?2:3))},dependencies:[q,Q,T,E],styles:["[_nghost-%COMP%]{display:flex;height:100vh;width:100%;overflow:hidden;justify-content:center}.app[_ngcontent-%COMP%]{width:100%;max-width:100%;min-width:0;height:100%;display:flex;flex-direction:column;background:var(--color-bg);color:var(--color-text);transition:all .3s ease;position:relative;justify-content:center;overflow:hidden}.chat-wrapper[_ngcontent-%COMP%]{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;background:transparent;width:100%;padding:2.5rem 0 1.5rem;display:flex;justify-content:center}.chat-wrapper[_ngcontent-%COMP%] .chat-center[_ngcontent-%COMP%]{max-width:760px;width:100%;margin:0;padding:0 2rem}@media(max-width:768px){.chat-wrapper[_ngcontent-%COMP%] .chat-center[_ngcontent-%COMP%]{padding:0 1rem}}.welcome-section[_ngcontent-%COMP%]{flex-shrink:0;text-align:center;padding:2rem 1rem;animation:_ngcontent-%COMP%_fadeInUp .8s ease-out;display:flex;justify-content:center;align-items:center;width:100%;min-width:0;overflow:hidden}@keyframes _ngcontent-%COMP%_fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.input-section[_ngcontent-%COMP%]{flex-shrink:0;position:relative;border-top:none;background:transparent;box-shadow:none;padding:2.5rem 0 2rem;overflow-y:visible;max-height:none;width:100%;z-index:10;pointer-events:none;display:flex;justify-content:center}.input-center[_ngcontent-%COMP%]{max-width:760px;width:100%;margin:0;padding:0 2rem;display:flex;justify-content:center;align-items:end;position:relative;pointer-events:auto}@media(max-width:768px){.input-center[_ngcontent-%COMP%]{padding:0 1rem}}.input-glass[_ngcontent-%COMP%]{background:none;box-shadow:none;width:100%;min-height:64px;display:flex;align-items:stretch;gap:0;pointer-events:auto;position:relative;overflow:visible}.input-glass[_ngcontent-%COMP%] app-chat-textarea[_ngcontent-%COMP%]{width:100%;min-width:0;flex:1 1 auto;align-self:stretch;display:flex}body.dark[_nghost-%COMP%], body.dark [_nghost-%COMP%], [_ngcontent-%COMP%]:root[data-theme=dark] .input-glass[_ngcontent-%COMP%]{background:#24283073;border-color:#b4c8ff17;box-shadow:0 8px 32px #0000002b,0 1.5px 8px #00000012}.choice-overlay[_ngcontent-%COMP%]{z-index:10;width:100%;display:flex;justify-content:center;align-items:center}.upload-status[_ngcontent-%COMP%]{position:fixed;bottom:100px;left:50%;transform:translate(-50%);z-index:1000;display:flex;align-items:center;padding:12px 20px;background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);border-radius:16px;font-size:.9em;color:var(--color-text);box-shadow:var(--glass-shadow);max-width:300px;text-align:center}.upload-status.error[_ngcontent-%COMP%]{background:#ff3b3026;color:var(--color-error);border-color:#ff3b304d}@media(max-width:768px){.welcome-section[_ngcontent-%COMP%]{padding:1.5rem 1rem}.input-section[_ngcontent-%COMP%]{padding:1.5rem .75rem 1rem}.input-center[_ngcontent-%COMP%]{padding:0 .5rem}}@media print{[_nghost-%COMP%]{display:block!important;height:auto!important;overflow:visible!important}.app[_ngcontent-%COMP%]{height:auto!important;overflow:visible!important;display:block!important}.input-section[_ngcontent-%COMP%], .welcome-section[_ngcontent-%COMP%]{display:none!important}}"],data:{animation:[S("slideIn",[C(":enter",[u({transform:"translateY(100%)",opacity:0}),_("300ms ease-out",u({transform:"translateY(0)",opacity:1}))]),C(":leave",[_("200ms ease-in",u({transform:"translateY(100%)",opacity:0}))])])]}})};export{K as MainAppComponent};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a}from"./chunk-73TUA3JE.js";import"./chunk-WIVM4HFF.js";import"./chunk-7WF5A3H7.js";import"./chunk-BCOH5IGB.js";import"./chunk-MZT6I3S3.js";import"./chunk-3ZLLFAXF.js";import"./chunk-DDWYQORF.js";import"./chunk-KJ5SIUGY.js";export{a as UserFormComponent};
|