daimon 0.8.0 → 0.9.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 (77) hide show
  1. package/CHANGELOG.md +83 -0
  2. package/README.md +48 -1
  3. package/dist/cli.js +91 -86
  4. package/dist/dashboard/browser/chunk-3EPFSBJ2.js +2 -0
  5. package/dist/dashboard/browser/{chunk-PJPGLT4T.js → chunk-3ZFFKHPU.js} +1 -1
  6. package/dist/dashboard/browser/{chunk-QSBOKS53.js → chunk-4KVYA2AQ.js} +1 -1
  7. package/dist/dashboard/browser/chunk-55AO3FMG.js +1 -0
  8. package/dist/dashboard/browser/{chunk-V2KNRAE4.js → chunk-66VYPESU.js} +1 -1
  9. package/dist/dashboard/browser/chunk-6MTVWBQQ.js +2 -0
  10. package/dist/dashboard/browser/chunk-6Z4FDREI.js +1 -0
  11. package/dist/dashboard/browser/{chunk-7NPLP3QD.js → chunk-7LKM244H.js} +1 -1
  12. package/dist/dashboard/browser/chunk-ACPSBF55.js +1 -0
  13. package/dist/dashboard/browser/{chunk-OHX55ZU4.js → chunk-AGN2F6JP.js} +1 -1
  14. package/dist/dashboard/browser/chunk-B2DPS6BL.js +1 -0
  15. package/dist/dashboard/browser/{chunk-3WKRVGPT.js → chunk-BBTQXZIS.js} +1 -1
  16. package/dist/dashboard/browser/chunk-CIQNXWDY.js +1 -0
  17. package/dist/dashboard/browser/chunk-EBGPIJ7S.js +1 -0
  18. package/dist/dashboard/browser/{chunk-LBRCWYRN.js → chunk-F3FCHBFQ.js} +1 -1
  19. package/dist/dashboard/browser/chunk-FD3BW2ZN.js +1 -0
  20. package/dist/dashboard/browser/chunk-FRKUCFVI.js +1 -0
  21. package/dist/dashboard/browser/chunk-FZLMX6EY.js +1 -0
  22. package/dist/dashboard/browser/chunk-GMEW64AS.js +1 -0
  23. package/dist/dashboard/browser/chunk-HXX2OUOE.js +1 -0
  24. package/dist/dashboard/browser/chunk-HZNVO3JE.js +1 -0
  25. package/dist/dashboard/browser/chunk-JWXROQJJ.js +2 -0
  26. package/dist/dashboard/browser/chunk-K2SFF47Z.js +5 -0
  27. package/dist/dashboard/browser/chunk-K5WKBG55.js +1 -0
  28. package/dist/dashboard/browser/chunk-K6PUQAFE.js +2 -0
  29. package/dist/dashboard/browser/{chunk-NDSAQ2HK.js → chunk-KRC72WWY.js} +1 -1
  30. package/dist/dashboard/browser/{chunk-H3L4MTG4.js → chunk-LBWOIG7N.js} +1 -1
  31. package/dist/dashboard/browser/chunk-NVL5HFLU.js +1 -0
  32. package/dist/dashboard/browser/chunk-O76B43BY.js +4 -0
  33. package/dist/dashboard/browser/{chunk-EIWOTZT3.js → chunk-PRLUGTKR.js} +1 -1
  34. package/dist/dashboard/browser/chunk-QYIYT4YU.js +1 -0
  35. package/dist/dashboard/browser/{chunk-UC3XMN2Y.js → chunk-R7VSXL63.js} +1 -1
  36. package/dist/dashboard/browser/{chunk-7NRE3SNA.js → chunk-RNUJZTKS.js} +1 -1
  37. package/dist/dashboard/browser/{chunk-2BXIFQGQ.js → chunk-RWXAGDGT.js} +1 -1
  38. package/dist/dashboard/browser/chunk-RXOAYCKI.js +2 -0
  39. package/dist/dashboard/browser/chunk-SR4HVFOB.js +2 -0
  40. package/dist/dashboard/browser/chunk-TGSV7ZHM.js +2 -0
  41. package/dist/dashboard/browser/chunk-UC7AWK4C.js +2 -0
  42. package/dist/dashboard/browser/chunk-UUJWPV5O.js +3 -0
  43. package/dist/dashboard/browser/chunk-VHALTUPL.js +2 -0
  44. package/dist/dashboard/browser/{chunk-6WZJCF24.js → chunk-VMW35ZNT.js} +1 -1
  45. package/dist/dashboard/browser/{chunk-Q772THBA.js → chunk-WOMCRDMJ.js} +1 -2
  46. package/dist/dashboard/browser/chunk-WRX32YWH.js +1 -0
  47. package/dist/dashboard/browser/chunk-X4RGWMLE.js +4 -0
  48. package/dist/dashboard/browser/{chunk-P5IU57TV.js → chunk-YHBNUNU3.js} +1 -1
  49. package/dist/dashboard/browser/index.html +1 -1
  50. package/dist/dashboard/browser/main-YAROJLJV.js +1 -0
  51. package/dist/main.js +49 -48
  52. package/dist/mcp.js +3 -3
  53. package/package.json +6 -3
  54. package/dist/dashboard/browser/chunk-44JIQO3X.js +0 -1
  55. package/dist/dashboard/browser/chunk-4BAKWDAV.js +0 -1
  56. package/dist/dashboard/browser/chunk-4OCNYL7T.js +0 -1
  57. package/dist/dashboard/browser/chunk-7C772RJ3.js +0 -3
  58. package/dist/dashboard/browser/chunk-A4BNXJUT.js +0 -1
  59. package/dist/dashboard/browser/chunk-CILFSVSP.js +0 -2
  60. package/dist/dashboard/browser/chunk-CM4RQF3A.js +0 -5
  61. package/dist/dashboard/browser/chunk-CNSXWFDX.js +0 -1
  62. package/dist/dashboard/browser/chunk-CY5YRTQK.js +0 -1
  63. package/dist/dashboard/browser/chunk-GYWEXV2L.js +0 -3
  64. package/dist/dashboard/browser/chunk-H2N3RBHF.js +0 -1
  65. package/dist/dashboard/browser/chunk-I65I7J5Q.js +0 -2
  66. package/dist/dashboard/browser/chunk-K43KW4K2.js +0 -4
  67. package/dist/dashboard/browser/chunk-K7S4ITPJ.js +0 -2
  68. package/dist/dashboard/browser/chunk-KL6X73FV.js +0 -1
  69. package/dist/dashboard/browser/chunk-KLH6B22T.js +0 -1
  70. package/dist/dashboard/browser/chunk-LBL7Z5BE.js +0 -5
  71. package/dist/dashboard/browser/chunk-LHAMBNO6.js +0 -1
  72. package/dist/dashboard/browser/chunk-NX6DTO32.js +0 -1
  73. package/dist/dashboard/browser/chunk-P5IE6DI6.js +0 -2
  74. package/dist/dashboard/browser/chunk-VM2FOT77.js +0 -1
  75. package/dist/dashboard/browser/chunk-Y6B6X4Y6.js +0 -2
  76. package/dist/dashboard/browser/chunk-YYAZGY5M.js +0 -1
  77. package/dist/dashboard/browser/main-4CQTBXSB.js +0 -1
@@ -1 +0,0 @@
1
- import{a as ke,b as Se}from"./chunk-K7S4ITPJ.js";import"./chunk-YNQPX5G6.js";import"./chunk-7C772RJ3.js";import"./chunk-6WZJCF24.js";import"./chunk-KLH6B22T.js";import{a as he,b as fe,c as ve,d as ye,e as xe,f as be}from"./chunk-EIWOTZT3.js";import{a as pe,b as ce,d as ue,e as ge,g as Ee,h as Ce,i as _e,j as N}from"./chunk-LBL7Z5BE.js";import"./chunk-Y6B6X4Y6.js";import{$ as D,Ab as ae,Bb as de,Ca as I,Db as k,Eb as y,Fb as x,Hb as B,Ia as ee,Ib as T,Jb as w,Kb as S,Lb as s,Mb as l,Nb as C,Ob as r,Pb as a,Sb as M,Ub as h,Vb as P,Wb as u,Y as W,Za as R,_a as m,ca as Y,cb as te,ea as c,eb as ne,fa as q,gc as A,ha as X,hb as oe,ia as Z,ic as i,ja as b,jc as f,ka as E,kb as ie,na as G,oa as J,pb as v,sc as se,ta as g,ua as Q,vb as re,vc as le,xc as me}from"./chunk-K43KW4K2.js";var Ie="@",Re=(()=>{class n{doc;delegate;zone;animationType;moduleImpl;_rendererFactoryPromise=null;scheduler=null;injector=c(G);loadingSchedulerFn=c(Ae,{optional:!0});_engine;constructor(t,o,d,p,_){this.doc=t,this.delegate=o,this.zone=d,this.animationType=p,this.moduleImpl=_}ngOnDestroy(){this._engine?.flush()}loadImpl(){let t=()=>this.moduleImpl??import("./chunk-UC3XMN2Y.js").then(d=>d),o;return this.loadingSchedulerFn?o=this.loadingSchedulerFn(t):o=t(),o.catch(d=>{throw new W(5300,!1)}).then(({\u0275createEngine:d,\u0275AnimationRendererFactory:p})=>{this._engine=d(this.animationType,this.doc);let _=new p(this.delegate,this._engine,this.zone);return this.delegate=_,_})}createRenderer(t,o){let d=this.delegate.createRenderer(t,o);if(d.\u0275type===0)return d;typeof d.throwOnSyntheticProps=="boolean"&&(d.throwOnSyntheticProps=!1);let p=new z(d);return o?.data?.animation&&!this._rendererFactoryPromise&&(this._rendererFactoryPromise=this.loadImpl()),this._rendererFactoryPromise?.then(_=>{let De=_.createRenderer(t,o);p.use(De),this.scheduler??=this.injector.get(Q,null,{optional:!0}),this.scheduler?.notify(10)}).catch(_=>{p.use(d)}),p}begin(){this.delegate.begin?.()}end(){this.delegate.end?.()}whenRenderingDone(){return this.delegate.whenRenderingDone?.()??Promise.resolve()}componentReplaced(t){this._engine?.flush(),this.delegate.componentReplaced?.(t)}static \u0275fac=function(o){ie()};static \u0275prov=D({token:n,factory:n.\u0275fac})}return n})(),z=class{delegate;replay=[];\u0275type=1;constructor(e){this.delegate=e}use(e){if(this.delegate=e,this.replay!==null){for(let t of this.replay)t(e);this.replay=null}}get data(){return this.delegate.data}destroy(){this.replay=null,this.delegate.destroy()}createElement(e,t){return this.delegate.createElement(e,t)}createComment(e){return this.delegate.createComment(e)}createText(e){return this.delegate.createText(e)}get destroyNode(){return this.delegate.destroyNode}appendChild(e,t){this.delegate.appendChild(e,t)}insertBefore(e,t,o,d){this.delegate.insertBefore(e,t,o,d)}removeChild(e,t,o,d){this.delegate.removeChild(e,t,o,d)}selectRootElement(e,t){return this.delegate.selectRootElement(e,t)}parentNode(e){return this.delegate.parentNode(e)}nextSibling(e){return this.delegate.nextSibling(e)}setAttribute(e,t,o,d){this.delegate.setAttribute(e,t,o,d)}removeAttribute(e,t,o){this.delegate.removeAttribute(e,t,o)}addClass(e,t){this.delegate.addClass(e,t)}removeClass(e,t){this.delegate.removeClass(e,t)}setStyle(e,t,o,d){this.delegate.setStyle(e,t,o,d)}removeStyle(e,t,o){this.delegate.removeStyle(e,t,o)}setProperty(e,t,o){this.shouldReplay(t)&&this.replay.push(d=>d.setProperty(e,t,o)),this.delegate.setProperty(e,t,o)}setValue(e,t){this.delegate.setValue(e,t)}listen(e,t,o,d){return this.shouldReplay(t)&&this.replay.push(p=>p.listen(e,t,o,d)),this.delegate.listen(e,t,o,d)}shouldReplay(e){return this.replay!==null&&e.startsWith(Ie)}},Ae=new Y("");function Me(n="animations"){return te("NgAsyncAnimations"),q([{provide:oe,useFactory:(e,t,o)=>new Re(e,t,o,n),deps:[J,pe,ne]},{provide:ee,useValue:n==="noop"?"NoopAnimations":"BrowserAnimations"}])}var Ne=n=>({exact:n}),Fe=(n,e)=>e.path;function Le(n,e){n&1&&(s(0,"span"),i(1,"daimon"),l())}function Ke(n,e){if(n&1&&(s(0,"span",6),i(1),l()),n&2){let t=u().$implicit;m(),f(t.label)}}function je(n,e){if(n&1&&(s(0,"a",5)(1,"mat-icon",2),i(2),l(),y(3,Ke,2,1,"span",6),l()),n&2){let t=e.$implicit,o=u();S("routerLink",t.path)("routerLinkActiveOptions",se(5,Ne,t.path==="/"))("matTooltip",o.expanded()?t.shortcut:t.label+" \xB7 "+t.shortcut),m(2),f(t.icon),m(),x(o.expanded()?3:-1)}}var He=[{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:"/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 n{entries=He;expanded=g(!0);ngOnInit(){let e=localStorage.getItem(Te);e!==null&&this.expanded.set(e==="1")}toggle(){this.expanded.update(e=>!e),localStorage.setItem(Te,this.expanded()?"1":"0")}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=v({type:n,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"],[1,"dm-rail-label"]],template:function(t,o){t&1&&(s(0,"nav",0)(1,"button",1),h("click",function(){return o.toggle()}),s(2,"mat-icon",2),i(3),l()(),s(4,"div",3)(5,"mat-icon",2),i(6,"developer_board"),l(),y(7,Le,2,0,"span"),l(),s(8,"div",4),T(9,je,4,7,"a",5,Fe),l()()),t&2&&(A("expanded",o.expanded()),m(),k("aria-label",o.expanded()?"Collapse":"Expand"),m(2),f(o.expanded()?"menu_open":"menu"),m(4),x(o.expanded()?7:-1),m(2),w(o.entries))},dependencies:[ve,ye,_e,Ce,Se,ke],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 Ve(n,e){if(n&1){let t=M();r(0,"div",2)(1,"button",3),P("click",function(){b(t);let d=u();return E(d.set("auto"))}),i(2,"Auto"),a(),r(3,"button",3),P("click",function(){b(t);let d=u();return E(d.set("light"))}),i(4,"Light"),a(),r(5,"button",3),P("click",function(){b(t);let d=u();return E(d.set("dark"))}),i(6,"Dark"),a()()}}var we="daimon.theme",K=class n{theme=g("auto");host=c(I);open=g(!1);icon=()=>this.theme()==="dark"?"dark_mode":this.theme()==="light"?"light_mode":"contrast";ngOnInit(){let e=localStorage.getItem(we)||"auto";this.set(e,!1)}set(e,t=!0){this.theme.set(e),localStorage.setItem(we,e);let o=document.documentElement;e==="auto"?o.style.removeProperty("color-scheme"):o.style.setProperty("color-scheme",e),t&&this.open.set(!1)}onDocClick(e){this.open()&&(this.host.nativeElement.contains(e.target)||this.open.set(!1))}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=v({type:n,selectors:[["dm-theme-toggle"]],hostBindings:function(t,o){t&1&&h("click",function(p){return o.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(t,o){t&1&&(r(0,"button",0),P("click",function(){return o.open.set(!o.open())}),r(1,"span",1),i(2),a()(),y(3,Ve,7,0,"div",2)),t&2&&(k("aria-expanded",o.open()),m(2),f(o.icon()),m(),x(o.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 Be(n,e){if(n&1){let t=M();s(0,"button",13),h("click",function(){let d=b(t).$implicit,p=u(2);return E(p.setWorkspace(d))}),i(1),l()}if(n&2){let t=e.$implicit;m(),f(t)}}function ze(n,e){if(n&1){let t=M();s(0,"div",5)(1,"button",13),h("click",function(){b(t);let d=u();return E(d.setWorkspace(null))}),i(2,"All workspaces"),l(),T(3,Be,2,1,"button",14,B),l()}if(n&2){let t=u();m(3),w(t.api.workspaces())}}function $e(n,e){n&1&&(s(0,"div",15),i(1,"No profiles configured"),l())}function Ue(n,e){if(n&1){let t=M();s(0,"div",16)(1,"span",17),i(2),l(),s(3,"button",18),h("click",function(){let d=b(t).$implicit,p=u(2);return E(p.runProfile(d))}),s(4,"span",3),i(5,"rocket_launch"),l()()()}if(n&2){let t=e.$implicit;m(2),f(t)}}function We(n,e){if(n&1&&(s(0,"div",5),y(1,$e,2,0,"div",15),T(2,Ue,6,1,"div",16,B),l()),n&2){let t=u();m(),x(t.profiles().length?-1:1),m(),w(t.profiles())}}var $="daimon.workspace",Pe="daimon.profile",j=class n{api=c(N);host=c(I);workspace=g(null);profile=g(null);profiles=g([]);openMenu=g(null);filteredCount=me(()=>{let e=this.workspace();return e?this.api.apps().filter(t=>t.workspaceLabel===e).length:this.api.apps().length});ngOnInit(){this.workspace.set(localStorage.getItem($)),this.profile.set(localStorage.getItem(Pe)),this.loadProfiles()}toggle(e){this.openMenu.update(t=>t===e?null:e)}onDocClick(e){if(!this.openMenu())return;let t=e.target;this.host.nativeElement.contains(t)||this.openMenu.set(null)}async loadProfiles(){try{let e=await fetch("/api/config");if(!e.ok)return;let t=await e.json(),o=t?.config?.profiles?Object.keys(t.config.profiles):[];this.profiles.set(o)}catch{}}setWorkspace(e){this.workspace.set(e),e?localStorage.setItem($,e):localStorage.removeItem($),window.dispatchEvent(new CustomEvent("daimon:workspace",{detail:e})),this.openMenu.set(null)}toast(e,t=3e3){let o=document.getElementById("dm-toast-host");o||(o=document.createElement("div"),o.id="dm-toast-host",o.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(o));let d=document.createElement("div");d.textContent=e,d.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))",o.appendChild(d),setTimeout(()=>{try{d.remove()}catch{}},t)}async runProfile(e){this.profile.set(e),localStorage.setItem(Pe,e),this.openMenu.set(null),this.toast(`Bringing up profile "${e}"\u2026`,2e3);try{let t=await this.api.ensureUp(e),o=Array.isArray(t?.apps)?`${t.apps.length} apps ready`:"done";this.toast(`Profile "${e}": ${o}`,3e3)}catch(t){this.toast(`Profile "${e}" failed: ${t?.message??"error"}`,5e3)}}onCmdK(){window.dispatchEvent(new CustomEvent("daimon:cmdk"))}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=v({type:n,selectors:[["dm-topbar"]],hostBindings:function(t,o){t&1&&h("click",function(p){return o.onDocClick(p)},R)},decls:32,vars:12,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-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"]],template:function(t,o){t&1&&(s(0,"header",0)(1,"div",1)(2,"button",2),h("click",function(){return o.toggle("ws")}),s(3,"span",3),i(4,"folder_open"),l(),s(5,"span"),i(6),l(),s(7,"span",4),i(8,"expand_more"),l()(),y(9,ze,5,0,"div",5),l(),s(10,"div",1)(11,"button",2),h("click",function(){return o.toggle("profile")}),s(12,"span",3),i(13,"play_circle"),l(),s(14,"span"),i(15),l(),s(16,"span",4),i(17,"expand_more"),l()(),y(18,We,4,1,"div",5),l(),C(19,"span",6),s(20,"span",7),C(21,"span",8),s(22,"span",9),i(23),l()(),s(24,"button",10),h("click",function(){return o.onCmdK()}),s(25,"span",3),i(26,"search"),l(),s(27,"span",11),i(28,"Jump to\u2026"),l(),s(29,"kbd",12),i(30,"\u2318K"),l()(),C(31,"dm-theme-toggle"),l()),t&2&&(m(2),S("title","Filter by workspace"),k("aria-expanded",o.openMenu()==="ws"),m(4),f(o.workspace()||"All workspaces"),m(3),x(o.openMenu()==="ws"?9:-1),m(2),S("title","Run profile: ensure-up"),k("aria-expanded",o.openMenu()==="profile"),m(4),f(o.profile()||"No profile"),m(3),x(o.openMenu()==="profile"?18:-1),m(2),A("up",o.api.connected()),S("title",o.api.connected()?"Live event stream connected":"Reconnecting\u2026"),m(3),f(o.api.connected()?"live":"offline"))},dependencies:[K],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}"],changeDetection:0})};var U=class n{static \u0275fac=function(t){return new(t||n)};static \u0275cmp=v({type:n,selectors:[["dm-shortcuts-help"]],decls:138,vars:0,consts:[["mat-dialog-title",""],["mat-dialog-content",""],[1,"dm-keys"]],template:function(t,o){t&1&&(r(0,"h2",0),i(1,"Keyboard shortcuts"),a(),r(2,"div",1)(3,"table",2)(4,"tr")(5,"td")(6,"kbd"),i(7,"\u2318K"),a(),i(8," / "),r(9,"kbd"),i(10,"Ctrl+K"),a()(),r(11,"td"),i(12,"Command palette"),a()(),r(13,"tr")(14,"td")(15,"kbd"),i(16,"?"),a()(),r(17,"td"),i(18,"This help"),a()(),r(19,"tr")(20,"td")(21,"kbd"),i(22,"/"),a()(),r(23,"td"),i(24,"Focus filter"),a()(),r(25,"tr")(26,"td")(27,"kbd"),i(28,"g"),a(),r(29,"kbd"),i(30,"a"),a()(),r(31,"td"),i(32,"Apps"),a()(),r(33,"tr")(34,"td")(35,"kbd"),i(36,"g"),a(),r(37,"kbd"),i(38,"e"),a()(),r(39,"td"),i(40,"Errors"),a()(),r(41,"tr")(42,"td")(43,"kbd"),i(44,"g"),a(),r(45,"kbd"),i(46,"l"),a()(),r(47,"td"),i(48,"Logs"),a()(),r(49,"tr")(50,"td")(51,"kbd"),i(52,"g"),a(),r(53,"kbd"),i(54,"s"),a()(),r(55,"td"),i(56,"Settings"),a()(),r(57,"tr")(58,"td")(59,"kbd"),i(60,"g"),a(),r(61,"kbd"),i(62,"d"),a()(),r(63,"td"),i(64,"Doctor"),a()(),r(65,"tr")(66,"td")(67,"kbd"),i(68,"g"),a(),r(69,"kbd"),i(70,"v"),a()(),r(71,"td"),i(72,"Events"),a()(),r(73,"tr")(74,"td")(75,"kbd"),i(76,"g"),a(),r(77,"kbd"),i(78,"h"),a()(),r(79,"td"),i(80,"History"),a()(),r(81,"tr")(82,"td")(83,"kbd"),i(84,"g"),a(),r(85,"kbd"),i(86,"t"),a()(),r(87,"td"),i(88,"Trends"),a()(),r(89,"tr")(90,"td")(91,"kbd"),i(92,"g"),a(),r(93,"kbd"),i(94,"x"),a()(),r(95,"td"),i(96,"Tests"),a()(),r(97,"tr")(98,"td")(99,"kbd"),i(100,"g"),a(),r(101,"kbd"),i(102,"n"),a()(),r(103,"td"),i(104,"Sessions"),a()(),r(105,"tr")(106,"td")(107,"kbd"),i(108,"j"),a(),i(109," / "),r(110,"kbd"),i(111,"k"),a()(),r(112,"td"),i(113,"Next / prev item"),a()(),r(114,"tr")(115,"td")(116,"kbd"),i(117,"s"),a()(),r(118,"td"),i(119,"Start focused app"),a()(),r(120,"tr")(121,"td")(122,"kbd"),i(123,"r"),a()(),r(124,"td"),i(125,"Restart focused app"),a()(),r(126,"tr")(127,"td")(128,"kbd"),i(129,"x"),a()(),r(130,"td"),i(131,"Stop focused app"),a()(),r(132,"tr")(133,"td")(134,"kbd"),i(135,"."),a()(),r(136,"td"),i(137,"Toggle list / cards"),a()()()())},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})},H=class n{router=c(fe);envInjector=c(X);pending=null;pendingTimer;handler=e=>this.onKey(e);async openShortcutsDialog(){let{MatDialog:e}=await import("./chunk-2BXIFQGQ.js");Z(this.envInjector,()=>{c(e).open(U,{width:"420px"})})}install(){window.addEventListener("keydown",this.handler)}uninstall(){window.removeEventListener("keydown",this.handler)}onKey(e){let t=e.target;if(!(t&&(t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.isContentEditable))){if((e.metaKey||e.ctrlKey)&&e.key.toLowerCase()==="k"){e.preventDefault(),window.dispatchEvent(new CustomEvent("daimon:cmdk"));return}if(!(e.metaKey||e.ctrlKey||e.altKey)){if(this.pending==="g"){this.pending=null,this.pendingTimer&&clearTimeout(this.pendingTimer);let d={a:"/",e:"/errors",l:"/logs",s:"/config",d:"/doctor",v:"/events",h:"/history",t:"/trends",x:"/tests",n:"/sessions",r:"/errors",c:"/config"}[e.key.toLowerCase()];d&&(e.preventDefault(),this.router.navigateByUrl(d));return}if(e.key==="?"){e.preventDefault(),this.openShortcutsDialog();return}if(e.key==="/"){e.preventDefault(),window.dispatchEvent(new CustomEvent("daimon:focus-filter"));return}if(e.key==="g"){this.pending="g",this.pendingTimer=setTimeout(()=>this.pending=null,1200);return}if(e.key==="."){e.preventDefault(),window.dispatchEvent(new CustomEvent("daimon:toggle-density"));return}["j","k","s","r","x"].includes(e.key)&&window.dispatchEvent(new CustomEvent("daimon:key",{detail:e.key}))}}}static \u0275fac=function(t){return new(t||n)};static \u0275prov=D({token:n,factory:n.\u0275fac,providedIn:"root"})};var Ye=()=>[import("./chunk-VM2FOT77.js").then(n=>n.CommandPaletteComponent)];function qe(n,e){n&1&&C(0,"dm-command-palette")}var V=class n{api=c(N);keys=c(H);paletteActivated=g(!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)}ngOnDestroy(){this.api.stop(),this.keys.uninstall(),window.removeEventListener("daimon:cmdk",this.onCmdK)}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=v({type:n,selectors:[["dm-root"]],decls:8,vars:1,consts:[[1,"dm-shell"],[1,"dm-main"]],template:function(t,o){t&1&&(s(0,"div",0),C(1,"dm-nav-rail")(2,"dm-topbar"),s(3,"main",1),C(4,"router-outlet"),l()(),re(5,qe,1,0),ae(6,5,Ye)),t&2&&(m(6),de(o.paletteActivated()))},dependencies:[he,F,j],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)}'],changeDetection:0})};var Oe=[{path:"",loadComponent:()=>import("./chunk-LHAMBNO6.js").then(n=>n.AppsListComponent)},{path:"apps/:name",loadComponent:()=>import("./chunk-V2KNRAE4.js").then(n=>n.AppDetailComponent)},{path:"events",loadComponent:()=>import("./chunk-NX6DTO32.js").then(n=>n.EventsFeedComponent)},{path:"logs",loadComponent:()=>import("./chunk-P5IE6DI6.js").then(n=>n.LogsPageComponent)},{path:"logs/:name",loadComponent:()=>import("./chunk-P5IE6DI6.js").then(n=>n.LogsPageComponent)},{path:"errors",loadComponent:()=>import("./chunk-CNSXWFDX.js").then(n=>n.ErrorsPanelComponent)},{path:"doctor",loadComponent:()=>import("./chunk-4BAKWDAV.js").then(n=>n.DoctorPageComponent)},{path:"config",loadComponent:()=>import("./chunk-QSBOKS53.js").then(n=>n.ConfigEditorComponent)},{path:"history",loadComponent:()=>import("./chunk-4OCNYL7T.js").then(n=>n.HistoryPageComponent)},{path:"history/:name",loadComponent:()=>import("./chunk-4OCNYL7T.js").then(n=>n.HistoryPageComponent)},{path:"trends",loadComponent:()=>import("./chunk-H2N3RBHF.js").then(n=>n.TrendsPageComponent)},{path:"tests",loadComponent:()=>import("./chunk-44JIQO3X.js").then(n=>n.TestsPageComponent)},{path:"sessions",loadComponent:()=>import("./chunk-KL6X73FV.js").then(n=>n.SessionsPageComponent)},{path:"requests/:name",loadComponent:()=>import("./chunk-CY5YRTQK.js").then(n=>n.RequestsPageComponent)},{path:"**",redirectTo:""}];ce(V,{providers:[le(),Me(),ue(ge()),xe(Oe,be()),{provide:Ee,useValue:{fontSet:"material-symbols-outlined"}}]}).catch(n=>console.error(n));