daimon 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/CHANGELOG.md +83 -0
  2. package/dist/cli.js +98 -88
  3. package/dist/dashboard/browser/chunk-2LMH5KDX.js +5 -0
  4. package/dist/dashboard/browser/{chunk-6Z4FDREI.js → chunk-2QORICNU.js} +1 -1
  5. package/dist/dashboard/browser/{chunk-UUJWPV5O.js → chunk-36JZZZCV.js} +1 -1
  6. package/dist/dashboard/browser/{chunk-4KVYA2AQ.js → chunk-3S7OJ77P.js} +1 -1
  7. package/dist/dashboard/browser/{chunk-TGSV7ZHM.js → chunk-42QQHEGP.js} +1 -1
  8. package/dist/dashboard/browser/chunk-4L223A7A.js +1 -0
  9. package/dist/dashboard/browser/{chunk-EBGPIJ7S.js → chunk-532NB4ME.js} +1 -1
  10. package/dist/dashboard/browser/{chunk-X4RGWMLE.js → chunk-6CP6NCA6.js} +2 -2
  11. package/dist/dashboard/browser/chunk-6OMBXV4F.js +1 -0
  12. package/dist/dashboard/browser/chunk-6YXOOFGY.js +1 -0
  13. package/dist/dashboard/browser/{chunk-VMW35ZNT.js → chunk-AHO3BCLI.js} +1 -1
  14. package/dist/dashboard/browser/{chunk-CIQNXWDY.js → chunk-ASK7FG27.js} +1 -1
  15. package/dist/dashboard/browser/{chunk-AGN2F6JP.js → chunk-BCGQJHY3.js} +1 -1
  16. package/dist/dashboard/browser/{chunk-ACPSBF55.js → chunk-BDTAVYPH.js} +1 -1
  17. package/dist/dashboard/browser/{chunk-FZLMX6EY.js → chunk-BFBXHJEF.js} +1 -1
  18. package/dist/dashboard/browser/{chunk-B2DPS6BL.js → chunk-BKYXU3OY.js} +1 -1
  19. package/dist/dashboard/browser/{chunk-UC7AWK4C.js → chunk-BPUIUSAU.js} +1 -1
  20. package/dist/dashboard/browser/{chunk-6MTVWBQQ.js → chunk-C6SNIY22.js} +1 -1
  21. package/dist/dashboard/browser/{chunk-3ZFFKHPU.js → chunk-CCRYWDXZ.js} +1 -1
  22. package/dist/dashboard/browser/{chunk-JWXROQJJ.js → chunk-DNHNU64I.js} +1 -1
  23. package/dist/dashboard/browser/{chunk-FRKUCFVI.js → chunk-DRBVSI3B.js} +1 -1
  24. package/dist/dashboard/browser/{chunk-RNUJZTKS.js → chunk-EXOJOB6H.js} +2 -2
  25. package/dist/dashboard/browser/chunk-EYOED3X7.js +2 -0
  26. package/dist/dashboard/browser/{chunk-3EPFSBJ2.js → chunk-G3IBZZQH.js} +1 -1
  27. package/dist/dashboard/browser/chunk-H3HRZLHG.js +4 -0
  28. package/dist/dashboard/browser/chunk-H5GKWN4K.js +1 -0
  29. package/dist/dashboard/browser/{chunk-KRC72WWY.js → chunk-HVK4GEK7.js} +1 -1
  30. package/dist/dashboard/browser/{chunk-7LKM244H.js → chunk-HYIZY5FQ.js} +1 -1
  31. package/dist/dashboard/browser/chunk-ITSOVQEA.js +1 -0
  32. package/dist/dashboard/browser/{chunk-WOMCRDMJ.js → chunk-JODWQVMA.js} +1 -1
  33. package/dist/dashboard/browser/chunk-LAMOHX23.js +1 -0
  34. package/dist/dashboard/browser/chunk-NMKAKRON.js +1 -0
  35. package/dist/dashboard/browser/{chunk-F3FCHBFQ.js → chunk-NY5IR366.js} +1 -1
  36. package/dist/dashboard/browser/{chunk-NVL5HFLU.js → chunk-OOQPWG6B.js} +1 -1
  37. package/dist/dashboard/browser/{chunk-SR4HVFOB.js → chunk-P3Q7RWT5.js} +1 -1
  38. package/dist/dashboard/browser/{chunk-YHBNUNU3.js → chunk-PVPELZPO.js} +1 -1
  39. package/dist/dashboard/browser/{chunk-66VYPESU.js → chunk-QHXOUNPA.js} +1 -1
  40. package/dist/dashboard/browser/{chunk-VHALTUPL.js → chunk-RMV7CR6Y.js} +1 -1
  41. package/dist/dashboard/browser/chunk-RQSDQXNY.js +1 -0
  42. package/dist/dashboard/browser/chunk-RWX5JIT4.js +1 -0
  43. package/dist/dashboard/browser/{chunk-R7VSXL63.js → chunk-SXE7REUK.js} +1 -1
  44. package/dist/dashboard/browser/chunk-TLCLILNG.js +4 -0
  45. package/dist/dashboard/browser/chunk-UAIWZYHN.js +1 -0
  46. package/dist/dashboard/browser/chunk-UFTWVSEC.js +2 -0
  47. package/dist/dashboard/browser/{chunk-RWXAGDGT.js → chunk-UXLEE3F2.js} +1 -1
  48. package/dist/dashboard/browser/{chunk-K6PUQAFE.js → chunk-XPP3TYS2.js} +1 -1
  49. package/dist/dashboard/browser/{chunk-PRLUGTKR.js → chunk-YFYMS5EE.js} +1 -1
  50. package/dist/dashboard/browser/chunk-YPVVBWNF.js +1 -0
  51. package/dist/dashboard/browser/{chunk-BBTQXZIS.js → chunk-Z3XFJOYG.js} +1 -1
  52. package/dist/dashboard/browser/index.html +2 -2
  53. package/dist/dashboard/browser/main-EENULCI5.js +1 -0
  54. package/dist/main.js +55 -51
  55. package/dist/mcp.js +3 -3
  56. package/package.json +4 -2
  57. package/dist/dashboard/browser/chunk-55AO3FMG.js +0 -1
  58. package/dist/dashboard/browser/chunk-FD3BW2ZN.js +0 -1
  59. package/dist/dashboard/browser/chunk-GMEW64AS.js +0 -1
  60. package/dist/dashboard/browser/chunk-HXX2OUOE.js +0 -1
  61. package/dist/dashboard/browser/chunk-HZNVO3JE.js +0 -1
  62. package/dist/dashboard/browser/chunk-K2SFF47Z.js +0 -5
  63. package/dist/dashboard/browser/chunk-K5WKBG55.js +0 -1
  64. package/dist/dashboard/browser/chunk-LBWOIG7N.js +0 -5
  65. package/dist/dashboard/browser/chunk-O76B43BY.js +0 -4
  66. package/dist/dashboard/browser/chunk-QYIYT4YU.js +0 -1
  67. package/dist/dashboard/browser/chunk-RXOAYCKI.js +0 -2
  68. package/dist/dashboard/browser/chunk-WRX32YWH.js +0 -1
  69. package/dist/dashboard/browser/main-YAROJLJV.js +0 -1
@@ -1 +0,0 @@
1
- import{a as we,b as Se}from"./chunk-VHALTUPL.js";import"./chunk-YNQPX5G6.js";import"./chunk-6MTVWBQQ.js";import"./chunk-TGSV7ZHM.js";import"./chunk-VMW35ZNT.js";import"./chunk-FRKUCFVI.js";import"./chunk-B2DPS6BL.js";import{a as fe,b as ve,c as ye,d as xe,e as be,f as _e}from"./chunk-PRLUGTKR.js";import{a as ce,b as ue,d as Ce,e as Ee,f as ke}from"./chunk-UC7AWK4C.js";import{b as ge,c as he,d as N}from"./chunk-X4RGWMLE.js";import"./chunk-JWXROQJJ.js";import"./chunk-EBGPIJ7S.js";import{$ as D,Ab as ae,Bb as se,Ca as I,Db as S,Eb as x,Fb as b,Hb as B,Ia as ee,Ib as M,Jb as T,Kb as E,Lb as d,Mb as l,Nb as k,Ob as a,Pb as s,Sb as _,Ub as u,Vb as P,Wb as c,Y as W,Za as R,_a as m,ca as Y,cb as te,ea as g,eb as ne,fa as q,gc as A,ha as X,hb as oe,ia as Z,ic as i,ja as f,jc as h,ka as v,kb as ie,kc as de,na as G,oa as J,pb as C,ta as y,tc as le,ua as Q,vb as re,wc as me,yc as pe}from"./chunk-O76B43BY.js";var Ae="@",Ne=(()=>{class o{doc;delegate;zone;animationType;moduleImpl;_rendererFactoryPromise=null;scheduler=null;injector=g(G);loadingSchedulerFn=g(Fe,{optional:!0});_engine;constructor(e,n,r,p,w){this.doc=e,this.delegate=n,this.zone=r,this.animationType=p,this.moduleImpl=w}ngOnDestroy(){this._engine?.flush()}loadImpl(){let e=()=>this.moduleImpl??import("./chunk-R7VSXL63.js").then(r=>r),n;return this.loadingSchedulerFn?n=this.loadingSchedulerFn(e):n=e(),n.catch(r=>{throw new W(5300,!1)}).then(({\u0275createEngine:r,\u0275AnimationRendererFactory:p})=>{this._engine=r(this.animationType,this.doc);let w=new p(this.delegate,this._engine,this.zone);return this.delegate=w,w})}createRenderer(e,n){let r=this.delegate.createRenderer(e,n);if(r.\u0275type===0)return r;typeof r.throwOnSyntheticProps=="boolean"&&(r.throwOnSyntheticProps=!1);let p=new z(r);return n?.data?.animation&&!this._rendererFactoryPromise&&(this._rendererFactoryPromise=this.loadImpl()),this._rendererFactoryPromise?.then(w=>{let Re=w.createRenderer(e,n);p.use(Re),this.scheduler??=this.injector.get(Q,null,{optional:!0}),this.scheduler?.notify(10)}).catch(w=>{p.use(r)}),p}begin(){this.delegate.begin?.()}end(){this.delegate.end?.()}whenRenderingDone(){return this.delegate.whenRenderingDone?.()??Promise.resolve()}componentReplaced(e){this._engine?.flush(),this.delegate.componentReplaced?.(e)}static \u0275fac=function(n){ie()};static \u0275prov=D({token:o,factory:o.\u0275fac})}return o})(),z=class{delegate;replay=[];\u0275type=1;constructor(t){this.delegate=t}use(t){if(this.delegate=t,this.replay!==null){for(let e of this.replay)e(t);this.replay=null}}get data(){return this.delegate.data}destroy(){this.replay=null,this.delegate.destroy()}createElement(t,e){return this.delegate.createElement(t,e)}createComment(t){return this.delegate.createComment(t)}createText(t){return this.delegate.createText(t)}get destroyNode(){return this.delegate.destroyNode}appendChild(t,e){this.delegate.appendChild(t,e)}insertBefore(t,e,n,r){this.delegate.insertBefore(t,e,n,r)}removeChild(t,e,n,r){this.delegate.removeChild(t,e,n,r)}selectRootElement(t,e){return this.delegate.selectRootElement(t,e)}parentNode(t){return this.delegate.parentNode(t)}nextSibling(t){return this.delegate.nextSibling(t)}setAttribute(t,e,n,r){this.delegate.setAttribute(t,e,n,r)}removeAttribute(t,e,n){this.delegate.removeAttribute(t,e,n)}addClass(t,e){this.delegate.addClass(t,e)}removeClass(t,e){this.delegate.removeClass(t,e)}setStyle(t,e,n,r){this.delegate.setStyle(t,e,n,r)}removeStyle(t,e,n){this.delegate.removeStyle(t,e,n)}setProperty(t,e,n){this.shouldReplay(e)&&this.replay.push(r=>r.setProperty(t,e,n)),this.delegate.setProperty(t,e,n)}setValue(t,e){this.delegate.setValue(t,e)}listen(t,e,n,r){return this.shouldReplay(e)&&this.replay.push(p=>p.listen(t,e,n,r)),this.delegate.listen(t,e,n,r)}shouldReplay(t){return this.replay!==null&&t.startsWith(Ae)}},Fe=new Y("");function Me(o="animations"){return te("NgAsyncAnimations"),q([{provide:oe,useFactory:(t,e,n)=>new Ne(t,e,n,o),deps:[J,ce,ne]},{provide:ee,useValue:o==="noop"?"NoopAnimations":"BrowserAnimations"}])}var Le=o=>({exact:o}),Ve=(o,t)=>t.path;function He(o,t){o&1&&(d(0,"span"),i(1,"daimon"),l())}function Ke(o,t){if(o&1&&(d(0,"span",7),i(1),l()),o&2){let e=c().$implicit;m(),h(e.label)}}function je(o,t){if(o&1){let e=_();d(0,"a",6),u("click",function(r){f(e);let p=c();return v(p.dismissTooltip(r))}),d(1,"mat-icon",2),i(2),l(),x(3,Ke,2,1,"span",7),l()}if(o&2){let e=t.$implicit,n=c();E("routerLink",e.path)("routerLinkActiveOptions",le(7,Le,e.path==="/"))("matTooltip",n.expanded()?e.shortcut:e.label+" \xB7 "+e.shortcut)("matTooltipShowDelay",300)("matTooltipHideDelay",0),m(2),h(e.icon),m(),b(n.expanded()?3:-1)}}var Be=[{path:"/",icon:"apps",label:"Apps",shortcut:"g a"},{path:"/errors",icon:"error",label:"Errors",shortcut:"g e"},{path:"/logs",icon:"terminal",label:"Logs",shortcut:"g l"},{path:"/config",icon:"tune",label:"Settings",shortcut:"g s"},{path:"/doctor",icon:"medical_services",label:"Doctor",shortcut:"g d"},{path:"/events",icon:"timeline",label:"Events",shortcut:"g v"},{path:"/history",icon:"query_stats",label:"History",shortcut:"g h"},{path:"/timeline",icon:"view_timeline",label:"Timeline",shortcut:"g i"},{path:"/trends",icon:"show_chart",label:"Trends",shortcut:"g t"},{path:"/tests",icon:"science",label:"Tests",shortcut:"g x"},{path:"/sessions",icon:"radio_button_checked",label:"Sessions",shortcut:"g n"}],Te="daimon.nav.expanded",F=class o{entries=Be;expanded=y(!0);ngOnInit(){let t=localStorage.getItem(Te);t!==null&&this.expanded.set(t==="1")}toggle(){this.expanded.update(t=>!t),localStorage.setItem(Te,this.expanded()?"1":"0")}dismissTooltip(t){t.currentTarget?.blur()}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=C({type:o,selectors:[["dm-nav-rail"]],decls:11,vars:5,consts:[[1,"dm-rail"],[1,"dm-rail-toggle",3,"click"],["fontSet","material-symbols-outlined"],[1,"dm-rail-brand"],[1,"dm-rail-items"],["routerLinkActive","active","matTooltipPosition","right",1,"dm-rail-item",3,"routerLink","routerLinkActiveOptions","matTooltip","matTooltipShowDelay","matTooltipHideDelay"],["routerLinkActive","active","matTooltipPosition","right",1,"dm-rail-item",3,"click","routerLink","routerLinkActiveOptions","matTooltip","matTooltipShowDelay","matTooltipHideDelay"],[1,"dm-rail-label"]],template:function(e,n){e&1&&(d(0,"nav",0)(1,"button",1),u("click",function(){return n.toggle()}),d(2,"mat-icon",2),i(3),l()(),d(4,"div",3)(5,"mat-icon",2),i(6,"developer_board"),l(),x(7,He,2,0,"span"),l(),d(8,"div",4),M(9,je,4,9,"a",5,Ve),l()()),e&2&&(A("expanded",n.expanded()),m(),S("aria-label",n.expanded()?"Collapse":"Expand"),m(2),h(n.expanded()?"menu_open":"menu"),m(4),b(n.expanded()?7:-1),m(2),T(n.entries))},dependencies:[ye,xe,ke,Ee,Se,we],styles:["[_nghost-%COMP%]{display:contents}.dm-rail[_ngcontent-%COMP%]{grid-area:rail;display:flex;flex-direction:column;background:var(--mat-sys-surface-container);border-right:1px solid var(--mat-sys-outline-variant);width:64px;transition:width var(--dm-motion-medium) var(--dm-motion-easing-emphasized);overflow:hidden;-webkit-user-select:none;user-select:none}.dm-rail.expanded[_ngcontent-%COMP%]{width:240px}.dm-rail-toggle[_ngcontent-%COMP%]{border:none;background:transparent;color:var(--mat-sys-on-surface-variant);padding:12px;cursor:pointer;align-self:flex-end;display:flex;align-items:center;justify-content:center}.dm-rail-toggle[_ngcontent-%COMP%]:hover{color:var(--mat-sys-on-surface)}.dm-rail-brand[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:0 16px 12px 20px;color:var(--mat-sys-primary);font:500 1rem/1.5rem Roboto;letter-spacing:.009rem}.dm-rail-items[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2px;padding:8px}.dm-rail-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;padding:10px 12px;border-radius:12px;color:var(--mat-sys-on-surface-variant);text-decoration:none;font:500 .875rem/1.25rem Roboto;transition:background var(--dm-motion-short) var(--dm-motion-easing),color var(--dm-motion-short) var(--dm-motion-easing);white-space:nowrap}.dm-rail-item[_ngcontent-%COMP%]:hover{background:var(--mat-sys-surface-container-high);color:var(--mat-sys-on-surface)}.dm-rail-item.active[_ngcontent-%COMP%]{background:color-mix(in oklch,var(--mat-sys-primary) 14%,transparent);color:var(--mat-sys-primary)}.dm-rail-label[_ngcontent-%COMP%]{flex:1}"],changeDetection:0})};function ze(o,t){if(o&1){let e=_();a(0,"div",2)(1,"button",3),P("click",function(){f(e);let r=c();return v(r.set("auto"))}),i(2,"Auto"),s(),a(3,"button",3),P("click",function(){f(e);let r=c();return v(r.set("light"))}),i(4,"Light"),s(),a(5,"button",3),P("click",function(){f(e);let r=c();return v(r.set("dark"))}),i(6,"Dark"),s()()}}var Pe="daimon.theme",V=class o{theme=y("auto");host=g(I);open=y(!1);icon=()=>this.theme()==="dark"?"dark_mode":this.theme()==="light"?"light_mode":"contrast";ngOnInit(){let t=localStorage.getItem(Pe)||"auto";this.set(t,!1)}set(t,e=!0){this.theme.set(t),localStorage.setItem(Pe,t);let n=document.documentElement;t==="auto"?n.style.removeProperty("color-scheme"):n.style.setProperty("color-scheme",t),e&&this.open.set(!1)}onDocClick(t){this.open()&&(this.host.nativeElement.contains(t.target)||this.open.set(!1))}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=C({type:o,selectors:[["dm-theme-toggle"]],hostBindings:function(e,n){e&1&&u("click",function(p){return n.onDocClick(p)},R)},decls:4,vars:3,consts:[["type","button","aria-label","Theme","aria-haspopup","true",1,"tt-btn",3,"click"],[1,"material-symbols-outlined"],["role","menu",1,"tt-pop"],["type","button","role","menuitem",3,"click"]],template:function(e,n){e&1&&(a(0,"button",0),P("click",function(){return n.open.set(!n.open())}),a(1,"span",1),i(2),s()(),x(3,ze,7,0,"div",2)),e&2&&(S("aria-expanded",n.open()),m(2),h(n.icon()),m(),b(n.open()?3:-1))},styles:["[_nghost-%COMP%]{position:relative;display:inline-block}.tt-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:0;background:transparent;border-radius:999px;color:var(--mat-sys-on-surface-variant);cursor:pointer}.tt-btn[_ngcontent-%COMP%]:hover{background:var(--mat-sys-surface-container-high);color:var(--mat-sys-on-surface)}.tt-btn[_ngcontent-%COMP%] .material-symbols-outlined[_ngcontent-%COMP%]{font-size:20px}.tt-pop[_ngcontent-%COMP%]{position:absolute;right:0;top:calc(100% + 4px);min-width:140px;background:var(--mat-sys-surface-container-high);border:1px solid var(--mat-sys-outline-variant);border-radius:10px;padding:4px;box-shadow:var(--mat-sys-level2);z-index:50;display:flex;flex-direction:column;gap:1px}.tt-pop[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{display:flex;align-items:center;padding:8px 12px;background:transparent;border:0;border-radius:6px;text-align:left;color:var(--mat-sys-on-surface);font:500 .8125rem/1.25rem Roboto;cursor:pointer}.tt-pop[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover{background:var(--mat-sys-surface-container-highest)}"],changeDetection:0})};function Ue(o,t){if(o&1){let e=_();d(0,"button",14),u("click",function(){let r=f(e).$implicit,p=c(2);return v(p.setWorkspace(r))}),i(1),l()}if(o&2){let e=t.$implicit;m(),h(e)}}function $e(o,t){if(o&1){let e=_();d(0,"div",5)(1,"button",14),u("click",function(){f(e);let r=c();return v(r.setWorkspace(null))}),i(2,"All workspaces"),l(),M(3,Ue,2,1,"button",15,B),l()}if(o&2){let e=c();m(3),T(e.api.workspaces())}}function We(o,t){o&1&&(d(0,"div",16),i(1,"No profiles configured"),l())}function Ye(o,t){if(o&1){let e=_();d(0,"div",17)(1,"span",18),i(2),l(),d(3,"button",19),u("click",function(){let r=f(e).$implicit,p=c(2);return v(p.runProfile(r))}),d(4,"span",3),i(5,"rocket_launch"),l()()()}if(o&2){let e=t.$implicit;m(2),h(e)}}function qe(o,t){if(o&1&&(d(0,"div",5),x(1,We,2,0,"div",16),M(2,Ye,6,1,"div",17,B),l()),o&2){let e=c();m(),b(e.profiles().length?-1:1),m(),T(e.profiles())}}function Xe(o,t){if(o&1){let e=_();d(0,"span",6)(1,"span",3),i(2,"filter_alt"),l(),d(3,"span"),i(4,"scope: "),d(5,"strong"),i(6),l()(),d(7,"button",20),u("click",function(){f(e);let r=c();return v(r.setWorkspace(null))}),i(8,"\xD7"),l()()}if(o&2){let e=t,n=c();E("title","Scope: "+e+(n.api.cwdHint()?" (cwd "+n.api.cwdHint()+")":"")),m(6),h(e)}}var U="daimon.workspace",Oe="daimon.profile",H=class o{api=g(N);host=g(I);workspace=y(null);profile=y(null);profiles=y([]);openMenu=y(null);filteredCount=pe(()=>{let t=this.workspace();return t?this.api.apps().filter(e=>e.workspaceLabel===t).length:this.api.apps().length});ngOnInit(){this.workspace.set(localStorage.getItem(U)),this.profile.set(localStorage.getItem(Oe)),this.loadProfiles(),window.addEventListener("daimon:workspace",this.onWorkspaceChanged)}ngOnDestroy(){window.removeEventListener("daimon:workspace",this.onWorkspaceChanged)}onWorkspaceChanged=t=>{let e=t.detail;this.workspace.set(e??null)};toggle(t){this.openMenu.update(e=>e===t?null:t)}onDocClick(t){if(!this.openMenu())return;let e=t.target;this.host.nativeElement.contains(e)||this.openMenu.set(null)}async loadProfiles(){try{let t=await fetch("/api/config");if(!t.ok)return;let e=await t.json(),n=e?.config?.profiles?Object.keys(e.config.profiles):[];this.profiles.set(n)}catch{}}setWorkspace(t){this.workspace.set(t),t?localStorage.setItem(U,t):localStorage.removeItem(U),window.dispatchEvent(new CustomEvent("daimon:workspace",{detail:t})),this.openMenu.set(null)}toast(t,e=3e3){let n=document.getElementById("dm-toast-host");n||(n=document.createElement("div"),n.id="dm-toast-host",n.style.cssText="position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none",document.body.appendChild(n));let r=document.createElement("div");r.textContent=t,r.style.cssText="pointer-events:auto;padding:10px 16px;background:var(--mat-sys-inverse-surface,#322f35);color:var(--mat-sys-inverse-on-surface,#f5eff4);border-radius:8px;font:500 .8125rem/1.25rem Roboto;box-shadow:var(--mat-sys-level3,0 4px 12px rgba(0,0,0,.25))",n.appendChild(r),setTimeout(()=>{try{r.remove()}catch{}},e)}async runProfile(t){this.profile.set(t),localStorage.setItem(Oe,t),this.openMenu.set(null),this.toast(`Bringing up profile "${t}"\u2026`,2e3);try{let e=await this.api.ensureUp(t),n=Array.isArray(e?.apps)?`${e.apps.length} apps ready`:"done";this.toast(`Profile "${t}": ${n}`,3e3)}catch(e){this.toast(`Profile "${t}" failed: ${e?.message??"error"}`,5e3)}}onCmdK(){window.dispatchEvent(new CustomEvent("daimon:cmdk"))}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=C({type:o,selectors:[["dm-topbar"]],hostBindings:function(e,n){e&1&&u("click",function(p){return n.onDocClick(p)},R)},decls:33,vars:13,consts:[[1,"dm-topbar"],[1,"dm-popwrap"],["type","button","aria-haspopup","true",1,"dm-chip",3,"click","title"],[1,"material-symbols-outlined"],[1,"material-symbols-outlined","dm-chip-caret"],["role","menu",1,"dm-pop"],[1,"dm-scope",3,"title"],[1,"dm-topbar-spacer"],[1,"dm-conn",3,"title"],[1,"dm-conn-dot"],[1,"dm-conn-text"],["type","button","title","Command palette",1,"dm-cmdk",3,"click"],[2,"margin","0 .5rem"],[1,"dm-kbd"],["type","button","role","menuitem",3,"click"],["type","button","role","menuitem"],[1,"dm-pop-empty"],["role","menuitem",1,"dm-pop-row"],[1,"dm-pop-label"],["type","button","title","ensure-up",1,"dm-pop-go",3,"click"],["type","button","title","Clear scope",1,"dm-scope-x",3,"click"]],template:function(e,n){if(e&1&&(d(0,"header",0)(1,"div",1)(2,"button",2),u("click",function(){return n.toggle("ws")}),d(3,"span",3),i(4,"folder_open"),l(),d(5,"span"),i(6),l(),d(7,"span",4),i(8,"expand_more"),l()(),x(9,$e,5,0,"div",5),l(),d(10,"div",1)(11,"button",2),u("click",function(){return n.toggle("profile")}),d(12,"span",3),i(13,"play_circle"),l(),d(14,"span"),i(15),l(),d(16,"span",4),i(17,"expand_more"),l()(),x(18,qe,4,1,"div",5),l(),x(19,Xe,9,2,"span",6),k(20,"span",7),d(21,"span",8),k(22,"span",9),d(23,"span",10),i(24),l()(),d(25,"button",11),u("click",function(){return n.onCmdK()}),d(26,"span",3),i(27,"search"),l(),d(28,"span",12),i(29,"Jump to\u2026"),l(),d(30,"kbd",13),i(31,"\u2318K"),l()(),k(32,"dm-theme-toggle"),l()),e&2){let r;m(2),E("title","Filter by workspace"),S("aria-expanded",n.openMenu()==="ws"),m(4),h(n.workspace()||"All workspaces"),m(3),b(n.openMenu()==="ws"?9:-1),m(2),E("title","Run profile: ensure-up"),S("aria-expanded",n.openMenu()==="profile"),m(4),h(n.profile()||"No profile"),m(3),b(n.openMenu()==="profile"?18:-1),m(),b((r=n.workspace())?19:-1,r),m(2),A("up",n.api.connected()),E("title",n.api.connected()?"Live event stream connected":"Reconnecting\u2026"),m(3),h(n.api.connected()?"live":"offline")}},dependencies:[V],styles:["[_nghost-%COMP%]{display:contents}.dm-topbar[_ngcontent-%COMP%]{grid-area:topbar;display:flex;align-items:center;gap:.5rem;padding:10px 16px;background:var(--mat-sys-surface);border-bottom:1px solid var(--mat-sys-outline-variant);min-height:56px}.dm-topbar-spacer[_ngcontent-%COMP%]{flex:1}.dm-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.5rem;padding:6px 10px;border-radius:999px;background:var(--mat-sys-surface-container);border:1px solid var(--mat-sys-outline-variant);color:var(--mat-sys-on-surface);font:500 .8125rem/1.25rem Roboto;cursor:pointer;transition:background var(--dm-motion-short) var(--dm-motion-easing)}.dm-chip[_ngcontent-%COMP%]:hover{background:var(--mat-sys-surface-container-high)}.dm-chip[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px}.dm-chip-caret[_ngcontent-%COMP%]{opacity:.7}.dm-cmdk[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.25rem;border-radius:12px!important}.dm-cmdk[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px}.dm-kbd[_ngcontent-%COMP%]{font-family:Roboto Mono,ui-monospace,monospace;font-size:.6875rem;padding:2px 6px;border-radius:4px;background:var(--mat-sys-surface-container);border:1px solid var(--mat-sys-outline-variant);color:var(--mat-sys-on-surface-variant)}.dm-conn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.375rem;padding:4px 10px;border-radius:999px;font:500 .75rem/1rem Roboto;color:var(--mat-sys-on-surface-variant);background:var(--mat-sys-surface-container)}.dm-conn-dot[_ngcontent-%COMP%]{width:8px;height:8px;border-radius:999px;background:var(--mat-sys-outline)}.dm-conn.up[_ngcontent-%COMP%] .dm-conn-dot[_ngcontent-%COMP%]{background:var(--mat-sys-primary);box-shadow:0 0 0 4px color-mix(in oklch,var(--mat-sys-primary) 25%,transparent)}.dm-conn.up[_ngcontent-%COMP%] .dm-conn-text[_ngcontent-%COMP%]{color:var(--mat-sys-primary)}.dm-popwrap[_ngcontent-%COMP%]{position:relative;display:inline-block}.dm-pop[_ngcontent-%COMP%]{position:absolute;left:0;top:calc(100% + 4px);min-width:200px;max-height:60vh;overflow-y:auto;background:var(--mat-sys-surface-container-high);border:1px solid var(--mat-sys-outline-variant);border-radius:10px;padding:4px;box-shadow:var(--mat-sys-level2);z-index:50;display:flex;flex-direction:column;gap:1px}.dm-pop[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{display:flex;align-items:center;padding:8px 12px;background:transparent;border:0;border-radius:6px;text-align:left;color:var(--mat-sys-on-surface);font:500 .8125rem/1.25rem Roboto;cursor:pointer}.dm-pop[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover{background:var(--mat-sys-surface-container-highest)}.dm-pop-empty[_ngcontent-%COMP%]{padding:.5rem 1rem;color:var(--mat-sys-on-surface-variant)}.dm-pop-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:4px 8px}.dm-pop-label[_ngcontent-%COMP%]{flex:1;font:500 .8125rem/1.25rem Roboto;color:var(--mat-sys-on-surface)}.dm-pop-go[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:0;border-radius:999px;color:var(--mat-sys-primary);cursor:pointer}.dm-pop-go[_ngcontent-%COMP%]:hover{background:var(--mat-sys-surface-container-highest)}.dm-pop-go[_ngcontent-%COMP%] .material-symbols-outlined[_ngcontent-%COMP%]{font-size:18px}.dm-cmdk[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.25rem;padding:8px 14px;border-radius:12px;background:transparent;border:1px solid var(--mat-sys-outline);color:var(--mat-sys-on-surface);cursor:pointer}.dm-cmdk[_ngcontent-%COMP%]:hover{background:var(--mat-sys-surface-container)}.dm-cmdk[_ngcontent-%COMP%] .material-symbols-outlined[_ngcontent-%COMP%]{font-size:18px}.dm-scope[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.375rem;padding:4px 4px 4px 10px;border-radius:999px;background:color-mix(in oklch,var(--mat-sys-primary) 14%,var(--mat-sys-surface-container));border:1px solid color-mix(in oklch,var(--mat-sys-primary) 40%,transparent);color:var(--mat-sys-on-surface);font:500 .75rem/1rem Roboto}.dm-scope[_ngcontent-%COMP%] .material-symbols-outlined[_ngcontent-%COMP%]{font-size:16px;color:var(--mat-sys-primary)}.dm-scope[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{font-weight:600}.dm-scope-x[_ngcontent-%COMP%]{width:22px;height:22px;background:transparent;border:0;border-radius:999px;color:var(--mat-sys-on-surface-variant);cursor:pointer;font-size:1.125rem;line-height:1;padding:0}.dm-scope-x[_ngcontent-%COMP%]:hover{background:var(--mat-sys-surface-container-highest)}"],changeDetection:0})};var $=class o{static \u0275fac=function(e){return new(e||o)};static \u0275cmp=C({type:o,selectors:[["dm-shortcuts-help"]],decls:138,vars:0,consts:[["mat-dialog-title",""],["mat-dialog-content",""],[1,"dm-keys"]],template:function(e,n){e&1&&(a(0,"h2",0),i(1,"Keyboard shortcuts"),s(),a(2,"div",1)(3,"table",2)(4,"tr")(5,"td")(6,"kbd"),i(7,"\u2318K"),s(),i(8," / "),a(9,"kbd"),i(10,"Ctrl+K"),s()(),a(11,"td"),i(12,"Command palette"),s()(),a(13,"tr")(14,"td")(15,"kbd"),i(16,"?"),s()(),a(17,"td"),i(18,"This help"),s()(),a(19,"tr")(20,"td")(21,"kbd"),i(22,"/"),s()(),a(23,"td"),i(24,"Focus filter"),s()(),a(25,"tr")(26,"td")(27,"kbd"),i(28,"g"),s(),a(29,"kbd"),i(30,"a"),s()(),a(31,"td"),i(32,"Apps"),s()(),a(33,"tr")(34,"td")(35,"kbd"),i(36,"g"),s(),a(37,"kbd"),i(38,"e"),s()(),a(39,"td"),i(40,"Errors"),s()(),a(41,"tr")(42,"td")(43,"kbd"),i(44,"g"),s(),a(45,"kbd"),i(46,"l"),s()(),a(47,"td"),i(48,"Logs"),s()(),a(49,"tr")(50,"td")(51,"kbd"),i(52,"g"),s(),a(53,"kbd"),i(54,"s"),s()(),a(55,"td"),i(56,"Settings"),s()(),a(57,"tr")(58,"td")(59,"kbd"),i(60,"g"),s(),a(61,"kbd"),i(62,"d"),s()(),a(63,"td"),i(64,"Doctor"),s()(),a(65,"tr")(66,"td")(67,"kbd"),i(68,"g"),s(),a(69,"kbd"),i(70,"v"),s()(),a(71,"td"),i(72,"Events"),s()(),a(73,"tr")(74,"td")(75,"kbd"),i(76,"g"),s(),a(77,"kbd"),i(78,"h"),s()(),a(79,"td"),i(80,"History"),s()(),a(81,"tr")(82,"td")(83,"kbd"),i(84,"g"),s(),a(85,"kbd"),i(86,"t"),s()(),a(87,"td"),i(88,"Trends"),s()(),a(89,"tr")(90,"td")(91,"kbd"),i(92,"g"),s(),a(93,"kbd"),i(94,"x"),s()(),a(95,"td"),i(96,"Tests"),s()(),a(97,"tr")(98,"td")(99,"kbd"),i(100,"g"),s(),a(101,"kbd"),i(102,"n"),s()(),a(103,"td"),i(104,"Sessions"),s()(),a(105,"tr")(106,"td")(107,"kbd"),i(108,"j"),s(),i(109," / "),a(110,"kbd"),i(111,"k"),s()(),a(112,"td"),i(113,"Next / prev item"),s()(),a(114,"tr")(115,"td")(116,"kbd"),i(117,"s"),s()(),a(118,"td"),i(119,"Start focused app"),s()(),a(120,"tr")(121,"td")(122,"kbd"),i(123,"r"),s()(),a(124,"td"),i(125,"Restart focused app"),s()(),a(126,"tr")(127,"td")(128,"kbd"),i(129,"x"),s()(),a(130,"td"),i(131,"Stop focused app"),s()(),a(132,"tr")(133,"td")(134,"kbd"),i(135,"."),s()(),a(136,"td"),i(137,"Toggle list / cards"),s()()()())},styles:[".dm-keys[_ngcontent-%COMP%]{width:100%;border-collapse:collapse}.dm-keys[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:.375rem .5rem;vertical-align:middle}.dm-keys[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-child{width:9rem}kbd[_ngcontent-%COMP%]{font-family:Roboto Mono,ui-monospace,monospace;font-size:.75rem;padding:2px 6px;border-radius:4px;background:var(--mat-sys-surface-container);border:1px solid var(--mat-sys-outline-variant)}"],changeDetection:0})},K=class o{router=g(ve);envInjector=g(X);pending=null;pendingTimer;handler=t=>this.onKey(t);async openShortcutsDialog(){let{MatDialog:t}=await import("./chunk-RWXAGDGT.js");Z(this.envInjector,()=>{g(t).open($,{width:"420px"})})}install(){window.addEventListener("keydown",this.handler)}uninstall(){window.removeEventListener("keydown",this.handler)}onKey(t){let e=t.target;if(!(e&&(e.tagName==="INPUT"||e.tagName==="TEXTAREA"||e.isContentEditable))){if((t.metaKey||t.ctrlKey)&&t.key.toLowerCase()==="k"){t.preventDefault(),window.dispatchEvent(new CustomEvent("daimon:cmdk"));return}if(!(t.metaKey||t.ctrlKey||t.altKey)){if(this.pending==="g"){this.pending=null,this.pendingTimer&&clearTimeout(this.pendingTimer);let r={a:"/",e:"/errors",l:"/logs",s:"/config",d:"/doctor",v:"/events",h:"/history",t:"/trends",x:"/tests",n:"/sessions",r:"/errors",c:"/config"}[t.key.toLowerCase()];r&&(t.preventDefault(),this.router.navigateByUrl(r));return}if(t.key==="?"){t.preventDefault(),this.openShortcutsDialog();return}if(t.key==="/"){t.preventDefault(),window.dispatchEvent(new CustomEvent("daimon:focus-filter"));return}if(t.key==="g"){this.pending="g",this.pendingTimer=setTimeout(()=>this.pending=null,1200);return}if(t.key==="."){t.preventDefault(),window.dispatchEvent(new CustomEvent("daimon:toggle-density"));return}["j","k","s","r","x"].includes(t.key)&&window.dispatchEvent(new CustomEvent("daimon:key",{detail:t.key}))}}}static \u0275fac=function(e){return new(e||o)};static \u0275prov=D({token:o,factory:o.\u0275fac,providedIn:"root"})};var Ze=()=>[import("./chunk-CIQNXWDY.js").then(o=>o.CommandPaletteComponent)];function Ge(o,t){if(o&1){let e=_();d(0,"div",2)(1,"span",3),i(2,"help_outline"),l(),d(3,"span"),i(4,"cwd "),d(5,"code"),i(6),l(),i(7," isn't covered by any registered workspace."),l(),d(8,"button",4),u("click",function(){let r=f(e),p=c();return v(p.registerCwd(r))}),i(9),l(),d(10,"button",5),u("click",function(){f(e);let r=c();return v(r.dismissBanner())}),i(11,"\xD7"),l()()}if(o&2){let e=c();m(6),h(t),m(2),E("disabled",e.registering()),m(),de(" ",e.registering()?"Registering\u2026":"Register"," ")}}function Je(o,t){o&1&&k(0,"dm-command-palette")}var De="daimon.workspace",j=class o{api=g(N);keys=g(K);paletteActivated=y(!1);registering=y(!1);onCmdK=()=>{this.paletteActivated()||(this.paletteActivated.set(!0),setTimeout(()=>window.dispatchEvent(new CustomEvent("daimon:cmdk")),50))};ngOnInit(){this.api.start(),this.keys.install(),window.addEventListener("daimon:cmdk",this.onCmdK),this.detectCwd()}ngOnDestroy(){this.api.stop(),this.keys.uninstall(),window.removeEventListener("daimon:cmdk",this.onCmdK)}async detectCwd(){let e=new URLSearchParams(window.location.search).get("cwd");if(!e)return;this.api.cwdHint.set(e);let n=await this.api.resolveCwd(e);if(!n){this.api.cwdUnknown.set(!0);return}if(this.api.cwdResolved.set({path:n.path,label:n.label??null}),n.label){try{localStorage.setItem(De,n.label)}catch{}window.dispatchEvent(new CustomEvent("daimon:workspace",{detail:n.label}))}}async registerCwd(t){if(!this.registering()){this.registering.set(!0);try{await this.api.registerWorkspace(t);let e=await this.api.resolveCwd(t);if(e){if(this.api.cwdResolved.set({path:e.path,label:e.label??null}),this.api.cwdUnknown.set(!1),e.label){try{localStorage.setItem(De,e.label)}catch{}window.dispatchEvent(new CustomEvent("daimon:workspace",{detail:e.label}))}await this.api.refresh()}}catch{}finally{this.registering.set(!1)}}}dismissBanner(){this.api.cwdUnknown.set(!1)}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=C({type:o,selectors:[["dm-root"]],decls:9,vars:2,consts:[[1,"dm-shell"],[1,"dm-main"],["role","status",1,"dm-cwd-banner"],[1,"material-symbols-outlined"],["type","button",3,"click","disabled"],["type","button","title","Dismiss",1,"dm-cwd-dismiss",3,"click"]],template:function(e,n){if(e&1&&(d(0,"div",0),k(1,"dm-nav-rail")(2,"dm-topbar"),d(3,"main",1),x(4,Ge,12,3,"div",2),k(5,"router-outlet"),l()(),re(6,Je,1,0),ae(7,6,Ze)),e&2){let r;m(4),b((r=n.api.cwdUnknown()&&n.api.cwdHint())?4:-1,r),m(3),se(n.paletteActivated())}},dependencies:[fe,F,H],styles:['[_nghost-%COMP%]{display:block;height:100vh}.dm-shell[_ngcontent-%COMP%]{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto 1fr;grid-template-areas:"rail topbar" "rail main";height:100vh;min-height:100vh}.dm-main[_ngcontent-%COMP%]{grid-area:main;overflow-y:auto;padding:1.5rem;background:var(--mat-sys-surface)}.dm-cwd-banner[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;padding:10px 14px;margin-bottom:1rem;background:var(--mat-sys-surface-container);border:1px solid var(--mat-sys-outline-variant);border-radius:10px;color:var(--mat-sys-on-surface);font:500 .8125rem/1.25rem Roboto}.dm-cwd-banner[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{font-family:Roboto Mono,ui-monospace,monospace}.dm-cwd-banner[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{padding:4px 12px;background:var(--mat-sys-primary);color:var(--mat-sys-on-primary);border:0;border-radius:8px;cursor:pointer;font:500 .8125rem/1.25rem Roboto}.dm-cwd-banner[_ngcontent-%COMP%] button[disabled][_ngcontent-%COMP%]{opacity:.6;cursor:progress}.dm-cwd-banner[_ngcontent-%COMP%] button.dm-cwd-dismiss[_ngcontent-%COMP%]{background:transparent;color:var(--mat-sys-on-surface-variant);padding:4px 10px;font-size:1.125rem;line-height:1}'],changeDetection:0})};var Ie=[{path:"",loadComponent:()=>import("./chunk-QYIYT4YU.js").then(o=>o.AppsListComponent)},{path:"apps/:name",loadComponent:()=>import("./chunk-66VYPESU.js").then(o=>o.AppDetailComponent)},{path:"events",loadComponent:()=>import("./chunk-HXX2OUOE.js").then(o=>o.EventsFeedComponent)},{path:"logs",loadComponent:()=>import("./chunk-RXOAYCKI.js").then(o=>o.LogsPageComponent)},{path:"logs/:name",loadComponent:()=>import("./chunk-RXOAYCKI.js").then(o=>o.LogsPageComponent)},{path:"errors",loadComponent:()=>import("./chunk-ACPSBF55.js").then(o=>o.ErrorsPanelComponent)},{path:"doctor",loadComponent:()=>import("./chunk-GMEW64AS.js").then(o=>o.DoctorPageComponent)},{path:"config",loadComponent:()=>import("./chunk-4KVYA2AQ.js").then(o=>o.ConfigEditorComponent)},{path:"history",loadComponent:()=>import("./chunk-K5WKBG55.js").then(o=>o.HistoryPageComponent)},{path:"history/:name",loadComponent:()=>import("./chunk-K5WKBG55.js").then(o=>o.HistoryPageComponent)},{path:"trends",loadComponent:()=>import("./chunk-NVL5HFLU.js").then(o=>o.TrendsPageComponent)},{path:"timeline",loadComponent:()=>import("./chunk-FZLMX6EY.js").then(o=>o.TimelinePageComponent)},{path:"tests",loadComponent:()=>import("./chunk-55AO3FMG.js").then(o=>o.TestsPageComponent)},{path:"sessions",loadComponent:()=>import("./chunk-FD3BW2ZN.js").then(o=>o.SessionsPageComponent)},{path:"requests/:name",loadComponent:()=>import("./chunk-HZNVO3JE.js").then(o=>o.RequestsPageComponent)},{path:"**",redirectTo:""}];ue(j,{providers:[me(),Me(),ge(he()),be(Ie,_e()),{provide:Ce,useValue:{fontSet:"material-symbols-outlined"}}]}).catch(o=>console.error(o));