@whoz-oss/coday-client 0.244.0 → 0.245.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-LHKOA7FX.js → chunk-2BMHZNQA.js} +1 -1
- package/browser/{chunk-ADEIEQGJ.js → chunk-2IN2N6PV.js} +1 -1
- package/browser/{chunk-TRFKVZGV.js → chunk-2QDRHKK5.js} +1 -1
- package/browser/{chunk-AK746XRX.js → chunk-45MC2DTD.js} +1 -1
- package/browser/{chunk-WMHS3NSI.js → chunk-4QVEFNE3.js} +1 -1
- package/browser/{chunk-4CNY7Z64.js → chunk-4QXUUAXS.js} +1 -1
- package/browser/{chunk-6BMCL5TR.js → chunk-5PVR7BPQ.js} +1 -1
- package/browser/{chunk-VZOBZ3DD.js → chunk-6QJAB37Y.js} +1 -1
- package/browser/chunk-6UZOFA34.js +1 -0
- package/browser/{chunk-76HYDFUL.js → chunk-7QFIBIYY.js} +1 -1
- package/browser/{chunk-LUB22VNT.js → chunk-AGUXPJDD.js} +1 -1
- package/browser/{chunk-UO7SKQEC.js → chunk-AMWKKZG5.js} +1 -1
- package/browser/{chunk-X73LZ3QV.js → chunk-ARAXWPWU.js} +1 -1
- package/browser/{chunk-5OGZHNUE.js → chunk-BSYMLXS6.js} +1 -1
- package/browser/{chunk-UQTA3ACH.js → chunk-C2LUO2MP.js} +1 -1
- package/browser/{chunk-F4ZRQ6MH.js → chunk-CQANBPMP.js} +1 -1
- package/browser/{chunk-VLDPXI7G.js → chunk-CWVJWHAD.js} +1 -1
- package/browser/{chunk-U7ZJFIOR.js → chunk-D67AF7QL.js} +1 -1
- package/browser/{chunk-CSHG3PLJ.js → chunk-DGCILIN5.js} +1 -1
- package/browser/{chunk-U3AHBQTX.js → chunk-EG5EQQU3.js} +1 -1
- package/browser/{chunk-CU7SABOQ.js → chunk-EHQPUQEI.js} +1 -1
- package/browser/{chunk-QXBTTCPM.js → chunk-FCEVFEIX.js} +1 -1
- package/browser/{chunk-ONZVOEJQ.js → chunk-FCFKY56K.js} +1 -1
- package/browser/{chunk-X5ZRXGFA.js → chunk-FSUOGZGO.js} +1 -1
- package/browser/{chunk-QTXEWRHZ.js → chunk-GLZG7RKF.js} +1 -1
- package/browser/{chunk-YGBFW4ZS.js → chunk-GS2CQHR7.js} +1 -1
- package/browser/{chunk-W7A7CPWM.js → chunk-HD2F6BMJ.js} +1 -1
- package/browser/{chunk-NYUYHMIH.js → chunk-IMS7HQGJ.js} +1 -1
- package/browser/chunk-KCFDTF3A.js +1 -0
- package/browser/{chunk-GLFQ37PU.js → chunk-KYYI3JSI.js} +1 -1
- package/browser/{chunk-KWJJEVAI.js → chunk-LIBCKDBU.js} +1 -1
- package/browser/{chunk-5Y2Q6WKL.js → chunk-LRIDOWQT.js} +1 -1
- package/browser/{chunk-I4RHXOIC.js → chunk-M6HAWZVC.js} +1 -1
- package/browser/chunk-MBQHFE5U.js +1 -0
- package/browser/{chunk-BWBZLC7A.js → chunk-NT57GO6D.js} +1 -1
- package/browser/{chunk-N2NJQ7DJ.js → chunk-NYQXGX3Y.js} +1 -1
- package/browser/{chunk-XAEUGARN.js → chunk-OTZDQE5T.js} +1 -1
- package/browser/{chunk-ZXQEKBPA.js → chunk-PEPRUAAU.js} +1 -1
- package/browser/{chunk-7H4TBVB7.js → chunk-PKLY5FK2.js} +1 -1
- package/browser/{chunk-S5QSZK6N.js → chunk-Q3UQBBUS.js} +1 -1
- package/browser/{chunk-MIAKSSSF.js → chunk-QCLAOYIL.js} +1 -1
- package/browser/chunk-QKICZGWX.js +1 -0
- package/browser/{chunk-7O6TY5IW.js → chunk-QTGBG7IF.js} +1 -1
- package/browser/{chunk-SZM3NJVZ.js → chunk-SC7BP3G3.js} +1 -1
- package/browser/chunk-SFQE4GQ6.js +1 -0
- package/browser/{chunk-5N6DUZII.js → chunk-SI42WXFB.js} +1 -1
- package/browser/{chunk-TNSH3NBF.js → chunk-T4R5WSRE.js} +1 -1
- package/browser/chunk-UJ2IGPRI.js +1 -0
- package/browser/{chunk-R2NWLPS6.js → chunk-VVFVGWIQ.js} +1 -1
- package/browser/{chunk-RQKLSUW5.js → chunk-W34FCJM7.js} +1 -1
- package/browser/{chunk-H6NBS4JE.js → chunk-W7ONGRS7.js} +1 -1
- package/browser/{chunk-NNUJIQ6R.js → chunk-WJZ4NXIG.js} +1 -1
- package/browser/{chunk-GSUU7JSY.js → chunk-WTBQIOPQ.js} +1 -1
- package/browser/{chunk-FA2MVU23.js → chunk-XC5W65K7.js} +1 -1
- package/browser/{chunk-4FGWE3EW.js → chunk-XKHDPUML.js} +1 -1
- package/browser/{chunk-ECISS7V2.js → chunk-XS4CC6GG.js} +1 -1
- package/browser/{chunk-UWYJO2DN.js → chunk-YCZCEQQL.js} +1 -1
- package/browser/chunk-YFQUZF2M.js +1 -0
- package/browser/{chunk-ZQZHBROX.js → chunk-ZEN5PJJE.js} +1 -1
- package/browser/{chunk-KJJPVCIH.js → chunk-ZJLDJUUY.js} +1 -1
- package/browser/{chunk-MFSY4HYK.js → chunk-ZM4HUO26.js} +1 -1
- package/browser/index.html +1 -1
- package/browser/{main-VWHGBAF5.js → main-5JFQENOY.js} +1 -1
- package/package.json +1 -1
- package/browser/chunk-EAVXJ7QN.js +0 -1
- package/browser/chunk-ENRRDIUM.js +0 -1
- package/browser/chunk-P6WNH2KJ.js +0 -1
- package/browser/chunk-XJYEZL5J.js +0 -1
- package/browser/chunk-XZRVHU66.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as D}from"./chunk-6JMDCL65.js";import{a as k}from"./chunk-
|
|
1
|
+
import{a as D}from"./chunk-6JMDCL65.js";import{a as k}from"./chunk-LIBCKDBU.js";import"./chunk-C2LUO2MP.js";import{c as x}from"./chunk-6XX7GME4.js";import{s as B,z as $}from"./chunk-VNO76B3S.js";import"./chunk-E6T6QLQT.js";import"./chunk-SPV5SLNS.js";import{a as d}from"./chunk-VMYKE4ZC.js";import"./chunk-AS2L77JV.js";import"./chunk-7OGOI6WM.js";import"./chunk-G5RWG2GK.js";import{Bb as b,Db as m,Fb as l,Lc as T,Pb as w,S as _,Wa as g,ab as C,ca as i,cc as I,fc as M,ga as u,gc as R,ha as y,i as c,jc as S,lb as h,ma as P,mb as v,rb as a,sb as p,t as f,tb as s}from"./chunk-CHEXA6RY.js";var F=()=>[];function L(o,e){if(o&1){let t=b();p(0,"agentos-prompt-item",4),m("deleteRequested",function(r){u(t);let E=l(2);return y(E.deletePrompt(r))}),s()}o&2&&a("prompt",e)("platformMode",!0)}function N(o,e){if(o&1&&h(0,L,1,2,"agentos-prompt-item",3),o&2){let t,n=e.$implicit,r=l();v((t=r.resolvePrompt(n.id))?0:-1,t)}}var q=class o{router=i(x);destroyRef=i(P);promptState=i(k);refresh$=new c(void 0);prompts$=this.refresh$.pipe(_(()=>this.promptState.listPlatform()));promptItems$=this.prompts$.pipe(f(e=>e.map(t=>({id:t.id??"",name:t.name,description:t.description}))));promptsById=new Map;constructor(){this.prompts$.pipe(d(this.destroyRef)).subscribe(e=>{this.promptsById=new Map(e.map(t=>[t.id??"",t]))})}goBack(){this.router.navigate(["/agentos","admin"])}openCreateForm(){this.router.navigate(["/agentos","admin","prompts","new"])}deletePrompt(e){this.promptState.delete(e.id??"").pipe(d(this.destroyRef)).subscribe(()=>this.refresh$.next())}resolvePrompt(e){return this.promptsById.get(e)??null}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=g({type:o,selectors:[["agentos-platform-prompts"]],decls:5,vars:6,consts:[["promptItemTpl",""],["title","Platform Prompts","emptyMessage","No platform prompts defined yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[3,"prompt","platformMode"],[3,"deleteRequested","prompt","platformMode"]],template:function(t,n){if(t&1&&(p(0,"ds-entity-list",1),M(1,"async"),m("createRequested",function(){return n.openCreateForm()}),p(2,"ds-icon-button",2),m("action",function(){return n.goBack()}),s()(),C(3,N,1,1,"ng-template",null,0,S)),t&2){let r=w(4);a("items",R(1,3,n.promptItems$)??I(5,F))("showCreate",!0)("itemTemplate",r)}},dependencies:[$,D,B,T],styles:[".platform-prompts__back[_ngcontent-%COMP%]{background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-primary, #007aff);font-family:inherit}.platform-prompts__back[_ngcontent-%COMP%]:hover{text-decoration:underline}"],changeDetection:0})};export{q as PlatformPromptsComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as E}from"./chunk-TFW43ZTS.js";import{c as $}from"./chunk-
|
|
1
|
+
import{a as E}from"./chunk-TFW43ZTS.js";import{c as $}from"./chunk-4QVEFNE3.js";import"./chunk-NWFFZ2FW.js";import"./chunk-6QJAB37Y.js";import"./chunk-C2LUO2MP.js";import{c as B}from"./chunk-6XX7GME4.js";import{z as q}from"./chunk-VNO76B3S.js";import"./chunk-E6T6QLQT.js";import"./chunk-SPV5SLNS.js";import{a as g}from"./chunk-VMYKE4ZC.js";import"./chunk-AS2L77JV.js";import"./chunk-7OGOI6WM.js";import"./chunk-G5RWG2GK.js";import{Bb as b,Db as a,Fb as m,Lc as I,Pb as w,S as _,Tb as D,Wa as S,ab as C,ca as s,cc as R,fc as P,ga as l,gc as x,ha as u,i as f,jc as T,lb as v,ma as y,mb as A,rb as d,sb as r,t as h,tb as c}from"./chunk-CHEXA6RY.js";var M=()=>[];function V(i,t){if(i&1){let e=b();r(0,"agentos-auth-setting-item",4),a("editRequested",function(n){l(e);let p=m(2);return u(p.onEdit(n))})("deleteRequested",function(n){l(e);let p=m(2);return u(p.onDelete(n))}),c()}i&2&&d("config",t)("showBadge",!1)}function F(i,t){if(i&1&&v(0,V,1,2,"agentos-auth-setting-item",3),i&2){let e,o=t.$implicit,n=m();A((e=n.resolveSetting(o.id))?0:-1,e)}}var k=class i{router=s(B);destroyRef=s(y);state=s($);refresh$=new f(void 0);settings$=this.refresh$.pipe(_(()=>this.state.loadPlatformSettings()));settingItems$=this.settings$.pipe(h(t=>t.map(e=>({id:e.id??"",name:e.name,description:e.authType}))));settingsById=new Map;constructor(){this.settings$.pipe(g(this.destroyRef)).subscribe(t=>{this.settingsById=new Map(t.map(e=>[e.id??"",e]))})}goBack(){this.router.navigate(["/agentos","admin"])}openCreateForm(){this.router.navigate(["/agentos","admin","auth-settings","new"])}onEdit(t){t.id&&this.router.navigate(["/agentos","admin","auth-settings",t.id,"edit"])}onDelete(t){t.id&&this.state.delete(t.id,"platform").pipe(g(this.destroyRef)).subscribe(()=>this.refresh$.next())}resolveSetting(t){return this.settingsById.get(t)??null}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=S({type:i,selectors:[["agentos-platform-auth-settings"]],decls:6,vars:6,consts:[["authSettingItemTpl",""],["title","Platform Auth Settings","emptyMessage","No platform auth settings defined yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","type","button",1,"platform-auth-settings__back",3,"click"],["scope","namespace",3,"config","showBadge"],["scope","namespace",3,"editRequested","deleteRequested","config","showBadge"]],template:function(e,o){if(e&1&&(r(0,"ds-entity-list",1),P(1,"async"),a("createRequested",function(){return o.openCreateForm()}),r(2,"button",2),a("click",function(){return o.goBack()}),D(3,"\u2190 Admin"),c()(),C(4,F,1,1,"ng-template",null,0,T)),e&2){let n=w(5);d("items",x(1,3,o.settingItems$)??R(5,M))("showCreate",!0)("itemTemplate",n)}},dependencies:[q,E,I],encapsulation:2,changeDetection:0})};export{k as PlatformAuthSettingsComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"./chunk-
|
|
1
|
+
import{a}from"./chunk-QCLAOYIL.js";import"./chunk-SI42WXFB.js";import"./chunk-C2LUO2MP.js";import"./chunk-6XX7GME4.js";import"./chunk-VNO76B3S.js";import"./chunk-E6T6QLQT.js";import"./chunk-SPV5SLNS.js";import"./chunk-VMYKE4ZC.js";import"./chunk-AS2L77JV.js";import"./chunk-7OGOI6WM.js";import"./chunk-G5RWG2GK.js";import"./chunk-CHEXA6RY.js";export{a as UserGroupFormComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as L}from"./chunk-6JMDCL65.js";import{a as D}from"./chunk-
|
|
1
|
+
import{a as L}from"./chunk-6JMDCL65.js";import{a as D}from"./chunk-LIBCKDBU.js";import"./chunk-C2LUO2MP.js";import{a as E,c as $}from"./chunk-6XX7GME4.js";import{z as O}from"./chunk-VNO76B3S.js";import"./chunk-E6T6QLQT.js";import"./chunk-SPV5SLNS.js";import{a as l}from"./chunk-VMYKE4ZC.js";import"./chunk-AS2L77JV.js";import"./chunk-7OGOI6WM.js";import"./chunk-G5RWG2GK.js";import{Bb as x,D as y,Db as m,Fb as a,Lc as T,Pb as N,S as P,Tb as w,Wa as b,ab as v,ca as p,cc as M,fc as B,ga as g,gc as S,ha as h,i as d,jc as k,lb as I,m as u,ma as C,mb as R,rb as s,sb as i,t as f,tb as c,z as _}from"./chunk-CHEXA6RY.js";var F=()=>[];function U(r,t){if(r&1){let o=x();i(0,"agentos-prompt-item",4),m("deleteRequested",function(n){g(o);let A=a(2);return h(A.deletePrompt(n))}),c()}if(r&2){let o=a().$implicit,e=a();s("prompt",t)("namespaceId",e.namespaceId)("readOnly",e.isPlatformPrompt(o.id))}}function V(r,t){if(r&1&&I(0,U,1,3,"agentos-prompt-item",3),r&2){let o,e=t.$implicit,n=a();R((o=n.resolvePrompt(e.id))?0:-1,o)}}var j="platform",G="namespace",q=class r{route=p(E);router=p($);destroyRef=p(C);promptState=p(D);namespaceId=this.route.snapshot.params.namespaceId;refresh$=new d(void 0);allPrompts$=this.refresh$.pipe(P(()=>_({platform:this.promptState.listPlatform().pipe(y(()=>u([]))),namespace:this.promptState.listByNamespace(this.namespaceId)})));promptItems$=this.allPrompts$.pipe(f(({platform:t,namespace:o})=>[...t.map(e=>({id:e.id??"",name:e.name,description:e.description,groupKey:j,groupLabel:"Platform (read-only)"})),...o.map(e=>({id:e.id??"",name:e.name,description:e.description,groupKey:G,groupLabel:"Namespace"}))]));namespacePromptsById=new Map;platformPromptsById=new Map;constructor(){this.allPrompts$.pipe(l(this.destroyRef)).subscribe(({platform:t,namespace:o})=>{this.platformPromptsById=new Map(t.map(e=>[e.id??"",e])),this.namespacePromptsById=new Map(o.map(e=>[e.id??"",e]))})}goBack(){this.router.navigate(["/agentos","namespaces"])}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId,"prompts","new"])}deletePrompt(t){this.promptState.delete(t.id??"").pipe(l(this.destroyRef)).subscribe(()=>this.refresh$.next())}resolvePrompt(t){return this.platformPromptsById.get(t)??this.namespacePromptsById.get(t)??null}isPlatformPrompt(t){return this.platformPromptsById.has(t)}static \u0275fac=function(o){return new(o||r)};static \u0275cmp=b({type:r,selectors:[["agentos-namespace-prompts"]],decls:6,vars:6,consts:[["promptItemTpl",""],["title","Prompts","emptyMessage","No prompts defined yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","type","button",1,"namespace-prompts__back",3,"click"],[3,"prompt","namespaceId","readOnly"],[3,"deleteRequested","prompt","namespaceId","readOnly"]],template:function(o,e){if(o&1&&(i(0,"ds-entity-list",1),B(1,"async"),m("createRequested",function(){return e.openCreateForm()}),i(2,"button",2),m("click",function(){return e.goBack()}),w(3,"\u2190 Namespaces"),c()(),v(4,V,1,1,"ng-template",null,0,k)),o&2){let n=N(5);s("items",S(1,3,e.promptItems$)??M(5,F))("showCreate",!0)("itemTemplate",n)}},dependencies:[O,L,T],styles:[".namespace-prompts__back[_ngcontent-%COMP%]{background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-primary, #007aff);font-family:inherit}.namespace-prompts__back[_ngcontent-%COMP%]:hover{text-decoration:underline}"],changeDetection:0})};export{q as NamespacePromptsComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as I}from"./chunk-
|
|
1
|
+
import{a as I}from"./chunk-7QFIBIYY.js";import{a as T}from"./chunk-AMWKKZG5.js";import"./chunk-C2LUO2MP.js";import{c as w}from"./chunk-6XX7GME4.js";import{s as x,z as q}from"./chunk-VNO76B3S.js";import"./chunk-E6T6QLQT.js";import"./chunk-SPV5SLNS.js";import{a as p}from"./chunk-VMYKE4ZC.js";import"./chunk-AS2L77JV.js";import"./chunk-7OGOI6WM.js";import"./chunk-G5RWG2GK.js";import{Bb as C,Db as c,Fb as s,Pb as S,Wa as P,ab as b,ca as m,ga as d,ha as a,jc as v,lb as g,ma as f,mb as y,mc as R,rb as u,sb as l,ta as h,tb as _}from"./chunk-CHEXA6RY.js";function M(i,e){if(i&1){let t=C();l(0,"agentos-scheduled-prompt-item",4),c("enableRequested",function(n){d(t);let r=s(2);return a(r.enablePrompt(n))})("disableRequested",function(n){d(t);let r=s(2);return a(r.disablePrompt(n))})("deleteRequested",function(n){d(t);let r=s(2);return a(r.deletePrompt(n))}),_()}i&2&&u("definition",e)("platformMode",!0)}function E(i,e){if(i&1&&g(0,M,1,2,"agentos-scheduled-prompt-item",3),i&2){let t,o=e.$implicit,n=s();y((t=n.resolvePrompt(o.id))?0:-1,t)}}var D=class i{router=m(w);destroyRef=m(f);state=m(T);prompts=h([]);promptItems=R(()=>this.prompts().map(e=>({id:e.id??"",name:e.name,description:e.description,badges:[{label:e.enabled?"Enabled":"Disabled",variant:e.enabled?"success":"warning"}]})));constructor(){this.state.listPlatform().pipe(p(this.destroyRef)).subscribe(e=>this.prompts.set(e))}goBack(){this.router.navigate(["/agentos","admin"])}openCreateForm(){this.router.navigate(["/agentos","admin","scheduled-prompts","new"])}enablePrompt(e){this.state.enable(e.id??"").pipe(p(this.destroyRef)).subscribe(t=>this.patchPrompt(t))}disablePrompt(e){this.state.disable(e.id??"").pipe(p(this.destroyRef)).subscribe(t=>this.patchPrompt(t))}deletePrompt(e){let t=e.id??"";this.state.delete(t).pipe(p(this.destroyRef)).subscribe(()=>this.prompts.update(o=>o.filter(n=>n.id!==t)))}resolvePrompt(e){return this.prompts().find(t=>t.id===e)??null}patchPrompt(e){this.prompts.update(t=>t.map(o=>o.id===e.id?e:o))}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=P({type:i,selectors:[["agentos-platform-scheduled-prompts"]],decls:4,vars:3,consts:[["scheduledPromptItemTpl",""],["title","Platform Scheduled Prompts","emptyMessage","No platform scheduled prompts defined yet. Add one above.","cardMinWidth","420px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[3,"definition","platformMode"],[3,"enableRequested","disableRequested","deleteRequested","definition","platformMode"]],template:function(t,o){if(t&1&&(l(0,"ds-entity-list",1),c("createRequested",function(){return o.openCreateForm()}),l(1,"ds-icon-button",2),c("action",function(){return o.goBack()}),_()(),b(2,E,1,1,"ng-template",null,0,v)),t&2){let n=S(3);u("items",o.promptItems())("showCreate",!0)("itemTemplate",n)}},dependencies:[q,I,x],encapsulation:2,changeDetection:0})};export{D as PlatformScheduledPromptsComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as k}from"./chunk-WAGXU26A.js";import{d as D}from"./chunk-
|
|
1
|
+
import{a as k}from"./chunk-WAGXU26A.js";import{d as D}from"./chunk-C2LUO2MP.js";import{c as q}from"./chunk-6XX7GME4.js";import{s as M,z as $}from"./chunk-VNO76B3S.js";import"./chunk-E6T6QLQT.js";import"./chunk-SPV5SLNS.js";import{a as _}from"./chunk-VMYKE4ZC.js";import"./chunk-AS2L77JV.js";import"./chunk-7OGOI6WM.js";import"./chunk-G5RWG2GK.js";import{Bb as b,Db as s,Fb as d,Lc as T,Pb as w,S as P,Wa as y,ab as C,ca as n,cc as R,fc as I,ga as m,gc as x,ha as l,i as f,jc as B,lb as h,ma as g,mb as A,rb as c,sb as a,t as u,tb as v}from"./chunk-CHEXA6RY.js";var S=()=>[];function V(r,e){if(r&1){let t=b();a(0,"agentos-ai-provider-item",4),s("editRequested",function(i){m(t);let p=d(2);return l(p.onEdit(i))})("deleteRequested",function(i){m(t);let p=d(2);return l(p.onDelete(i))}),v()}r&2&&c("config",e)("showBadge",!1)}function F(r,e){if(r&1&&h(0,V,1,2,"agentos-ai-provider-item",3),r&2){let t,o=e.$implicit,i=d();A((t=i.resolveProvider(o.id))?0:-1,t)}}var E=class r{router=n(q);destroyRef=n(g);aiProviderController=n(D);refresh$=new f(void 0);providers$=this.refresh$.pipe(P(()=>this.aiProviderController.listAiProvider("none")));providerItems$=this.providers$.pipe(u(e=>e.map(t=>({id:t.id??"",name:t.name,description:t.apiType}))));providersById=new Map;constructor(){this.providers$.pipe(_(this.destroyRef)).subscribe(e=>{this.providersById=new Map(e.map(t=>[t.id??"",t]))})}goBack(){this.router.navigate(["/agentos","admin"])}openCreateForm(){this.router.navigate(["/agentos","admin","ai-providers","new"])}onEdit(e){e.id&&this.router.navigate(["/agentos","admin","ai-providers",e.id,"edit"])}onDelete(e){e.id&&this.aiProviderController.deleteAiProvider(e.id).pipe(_(this.destroyRef)).subscribe(()=>this.refresh$.next())}resolveProvider(e){return this.providersById.get(e)??null}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=y({type:r,selectors:[["agentos-platform-ai-providers"]],decls:5,vars:6,consts:[["aiProviderItemTpl",""],["title","Platform AI Providers","emptyMessage","No platform AI providers defined yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],["scope","namespace",3,"config","showBadge"],["scope","namespace",3,"editRequested","deleteRequested","config","showBadge"]],template:function(t,o){if(t&1&&(a(0,"ds-entity-list",1),I(1,"async"),s("createRequested",function(){return o.openCreateForm()}),a(2,"ds-icon-button",2),s("action",function(){return o.goBack()}),v()(),C(3,F,1,1,"ng-template",null,0,B)),t&2){let i=w(4);c("items",x(1,3,o.providerItems$)??R(5,S))("showCreate",!0)("itemTemplate",i)}},dependencies:[$,k,M,T],styles:[".platform-ai-providers__back[_ngcontent-%COMP%]{background:none;border:none;cursor:pointer;font-family:inherit;font-size:.875rem;color:var(--color-text-secondary, #6e6e73);padding:.25rem .5rem;border-radius:4px;transition:color .15s ease}.platform-ai-providers__back[_ngcontent-%COMP%]:hover{color:var(--color-primary, #007aff)}"],changeDetection:0})};export{E as PlatformAiProvidersComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as y}from"./chunk-NWFFZ2FW.js";import{a as f}from"./chunk-
|
|
1
|
+
import{a as y}from"./chunk-NWFFZ2FW.js";import{a as f}from"./chunk-6QJAB37Y.js";import{d as m}from"./chunk-C2LUO2MP.js";import{D as a,P as h,S as A,V as d,Z as b,a as P,ca as c,i as v,m as o,t as u,u as l}from"./chunk-CHEXA6RY.js";var g="none",N="me",O=class p{nsController=c(m);userState=c(f);refresh$=new v(void 0);namespaceId$=new v(null);vm$=l([this.namespaceId$,this.refresh$]).pipe(A(([e])=>{let r=this.loadPlatformProviders().pipe(a(()=>o([])));return e?l([r,this.loadNamespaceProviders(e).pipe(a(()=>o([]))),this.loadUserProviders(e).pipe(a(()=>o([]))),this.loadUserProviders("global").pipe(a(()=>o([])))]).pipe(u(([i,n,s,t])=>({platform:i,namespace:n,userOnNs:s,userGlobal:t}))):l([r,this.loadNamespaceProviders("").pipe(a(()=>o([]))),this.loadUserProviders("global").pipe(a(()=>o([])))]).pipe(u(([i,n,s])=>({platform:i,namespace:n,userOnNs:[],userGlobal:s})))}),h({bufferSize:1,refCount:!0}));setNamespace(e){this.namespaceId$.value!==e&&this.namespaceId$.next(e)}refresh(){this.refresh$.next()}loadUserProviders(e){let r=e==="global"?g:e;return this.nsController.listAiProvider(r,N)}userGlobal$=y(this.refresh$,()=>this.loadUserProviders("global"),[]);loadPlatformProviders(){return this.nsController.listAiProvider(g)}loadNamespaceProviders(e){return e?this.nsController.listAiProvider(e):o([])}getById(e,r){return this.nsController.getByIdAiProvider(e)}create(e,r,i){let s=this.userState.currentUser()?.id;if((r==="userOnNs"||r==="userGlobal")&&!s)throw new Error(`Cannot create ${r} provider before UserStateService.loadMe() resolves \u2014 call loadMe() at app init`);if(r==="namespace"){if(i===void 0||i==="")throw new Error("Cannot create namespace-scoped provider without a namespaceId");let S={name:e.name,apiType:e.apiType,description:e.description,baseUrl:e.baseUrl,apiKey:e.apiKey,headers:e.headers??void 0,namespaceId:i??void 0};return this.nsController.createAiProvider(S).pipe(d(()=>this.refresh()))}if(r==="userOnNs"&&!i)throw new Error("Cannot create userOnNs provider without a namespaceId");let t={name:e.name,apiType:e.apiType,description:e.description,baseUrl:e.baseUrl,apiKey:e.apiKey,headers:e.headers??void 0,userId:s,namespaceId:r==="userOnNs"?i:void 0};return this.nsController.createAiProvider(t).pipe(d(()=>this.refresh()))}update(e,r,i,n){let s=r.apiKey===null?{}:{apiKey:r.apiKey},t=P({name:r.name,apiType:r.apiType,description:r.description,baseUrl:r.baseUrl,headers:r.headers??void 0,namespaceId:n.namespaceId,userId:n.userId},s);return this.nsController.updateAiProvider(e,t).pipe(d(()=>this.refresh()))}delete(e,r){return this.nsController.deleteAiProvider(e).pipe(d(()=>this.refresh()))}static \u0275fac=function(r){return new(r||p)};static \u0275prov=b({token:p,factory:p.\u0275fac,providedIn:"root"})};export{O as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as ee}from"./chunk-QXBTTCPM.js";import{c as te}from"./chunk-WMHS3NSI.js";import{a as Z}from"./chunk-ADEIEQGJ.js";import"./chunk-NWFFZ2FW.js";import{c as X}from"./chunk-RB7N2NWN.js";import{a as W}from"./chunk-VZOBZ3DD.js";import{d as Q}from"./chunk-YFCRBVWD.js";import"./chunk-UQTA3ACH.js";import{c as N}from"./chunk-6XX7GME4.js";import{s as q}from"./chunk-VNO76B3S.js";import"./chunk-E6T6QLQT.js";import"./chunk-SPV5SLNS.js";import{a as k,c as K}from"./chunk-VMYKE4ZC.js";import"./chunk-AS2L77JV.js";import{F as J,c as B,g as R,h as A,i as L,l as O,n as j,v as Y,w as H}from"./chunk-7OGOI6WM.js";import"./chunk-G5RWG2GK.js";import{Bb as f,Db as c,Fb as l,Hc as $,Ka as _,Rb as E,Tb as r,Ub as u,Vb as S,Wa as z,ca as x,ga as p,ha as m,jb as P,kb as w,lb as g,ma as G,mb as v,mc as T,pb as b,qb as h,rb as U,sb as n,t as F,ta as y,tb as t,u as I,ub as M}from"./chunk-CHEXA6RY.js";var V=(o,i)=>i.value;function ie(o,i){o&1&&(n(0,"p",4),r(1,"Loading\u2026"),t())}function oe(o,i){if(o&1){let e=f();n(0,"button",18),c("click",function(){let s=p(e).$implicit,d=l(2);return m(d.setThemeVariant(s.value))}),n(1,"span",19),r(2),t(),n(3,"span",20),r(4),t()()}if(o&2){let e=i.$implicit,a=l(2);E("user-profile__theme-variant--active",a.themeVariant()===e.value),P("aria-pressed",a.themeVariant()===e.value),_(2),u(e.label),_(2),u(e.description)}}function re(o,i){if(o&1){let e=f();n(0,"button",21),c("click",function(){let s=p(e).$implicit,d=l(2);return m(d.setTheme(s.value))}),r(1),t()}if(o&2){let e=i.$implicit,a=l(2);E("user-profile__segmented-option--active",a.themeMode()===e.value),P("aria-pressed",a.themeMode()===e.value),_(),S(" ",e.label," ")}}function ae(o,i){if(o&1){let e=f();n(0,"button",21),c("click",function(){let s=p(e).$implicit,d=l(2);return m(d.setEnterKeyBehavior(s.value))}),r(1),t()}if(o&2){let e=i.$implicit,a=l(2);E("user-profile__segmented-option--active",a.enterKeyBehavior()===e.value),P("aria-pressed",a.enterKeyBehavior()===e.value),_(),S(" ",e.label," ")}}function le(o,i){if(o&1){let e=f();n(0,"form",22),c("ngSubmit",function(){p(e);let s=l(2);return m(s.save())}),n(1,"div",5)(2,"h2",6),r(3,"Identity"),t(),n(4,"div",7)(5,"span",8),r(6,"Email"),t(),n(7,"span",23),r(8),t()(),n(9,"div",7)(10,"span",8),r(11,"External ID"),t(),n(12,"span",23),r(13),t()()(),n(14,"div",5)(15,"h2",6),r(16,"Profile"),t(),n(17,"div",7)(18,"label",24),r(19,"First name"),t(),M(20,"input",25),t(),n(21,"div",7)(22,"label",26),r(23,"Last name"),t(),M(24,"input",27),t(),n(25,"div",7)(26,"label",28),r(27,"Bio"),t(),M(28,"textarea",29),t()(),n(29,"div",30)(30,"button",31),r(31),t(),n(32,"button",32),c("click",function(){p(e);let s=l(2);return m(s.cancelEditing())}),r(33,"Cancel"),t()()()}if(o&2){let e=l(),a=l();U("formGroup",a.form),_(8),u(e.email),_(5),u(e.externalId),_(17),U("disabled",a.isSaving()),_(),S(" ",a.isSaving()?"Saving\u2026":"Save changes"," ")}}function se(o,i){o&1&&(n(0,"p",40),r(1," No global configuration yet. Create one from the Integrations / AI Providers / Auth Settings pages of your namespaces. "),t())}function _e(o,i){if(o&1){let e=f();n(0,"span",47),r(1,"Delete?"),t(),n(2,"button",48),c("click",function(){p(e);let s=l().$implicit,d=l(6);return m(d.confirmDelete(s))}),r(3," Confirm "),t(),n(4,"button",49),c("click",function(){p(e);let s=l(7);return m(s.cancelDelete())}),r(5," Cancel "),t()}}function de(o,i){if(o&1){let e=f();n(0,"button",49),c("click",function(){p(e);let s=l().$implicit,d=l(6);return m(d.armDelete(s))}),r(1," Delete "),t()}}function ce(o,i){if(o&1&&(n(0,"li",43)(1,"span",44),r(2),t(),n(3,"span",45),r(4),t(),g(5,_e,6,0)(6,de,2,0,"button",46),t()),o&2){let e=i.$implicit,a=l(6);_(2),u(e.name),_(2),u(e.subtitle),_(),v(a.isPendingDelete(e)?5:6)}}function pe(o,i){if(o&1&&(n(0,"h3",41),r(1,"Integrations"),t(),n(2,"ul",42),b(3,ce,7,3,"li",43,w().trackEntry,!0),t()),o&2){let e=l(5);_(3),h(e.recap().integrations)}}function me(o,i){if(o&1){let e=f();n(0,"span",47),r(1,"Delete?"),t(),n(2,"button",48),c("click",function(){p(e);let s=l().$implicit,d=l(6);return m(d.confirmDelete(s))}),r(3," Confirm "),t(),n(4,"button",49),c("click",function(){p(e);let s=l(7);return m(s.cancelDelete())}),r(5," Cancel "),t()}}function ue(o,i){if(o&1){let e=f();n(0,"button",49),c("click",function(){p(e);let s=l().$implicit,d=l(6);return m(d.armDelete(s))}),r(1," Delete "),t()}}function fe(o,i){if(o&1&&(n(0,"li",43)(1,"span",44),r(2),t(),n(3,"span",45),r(4),t(),g(5,me,6,0)(6,ue,2,0,"button",46),t()),o&2){let e=i.$implicit,a=l(6);_(2),u(e.name),_(2),u(e.subtitle),_(),v(a.isPendingDelete(e)?5:6)}}function Ce(o,i){if(o&1&&(n(0,"h3",41),r(1,"AI Providers"),t(),n(2,"ul",42),b(3,fe,7,3,"li",43,w().trackEntry,!0),t()),o&2){let e=l(5);_(3),h(e.recap().aiProviders)}}function ge(o,i){if(o&1){let e=f();n(0,"span",47),r(1,"Delete?"),t(),n(2,"button",48),c("click",function(){p(e);let s=l().$implicit,d=l(6);return m(d.confirmDelete(s))}),r(3," Confirm "),t(),n(4,"button",49),c("click",function(){p(e);let s=l(7);return m(s.cancelDelete())}),r(5," Cancel "),t()}}function ve(o,i){if(o&1){let e=f();n(0,"button",49),c("click",function(){p(e);let s=l().$implicit,d=l(6);return m(d.armDelete(s))}),r(1," Delete "),t()}}function xe(o,i){if(o&1&&(n(0,"li",43)(1,"span",44),r(2),t(),n(3,"span",45),r(4),t(),g(5,ge,6,0)(6,ve,2,0,"button",46),t()),o&2){let e=i.$implicit,a=l(6);_(2),u(e.name),_(2),u(e.subtitle),_(),v(a.isPendingDelete(e)?5:6)}}function be(o,i){if(o&1&&(n(0,"h3",41),r(1,"My global auth settings"),t(),n(2,"ul",42),b(3,xe,7,3,"li",43,w().trackEntry,!0),t()),o&2){let e=l(5);_(3),h(e.recap().authSettings)}}function he(o,i){if(o&1&&(g(0,pe,5,0),g(1,Ce,5,0),g(2,be,5,0)),o&2){let e=l(4);v(e.recap().integrations.length>0?0:-1),_(),v(e.recap().aiProviders.length>0?1:-1),_(),v(e.recap().authSettings.length>0?2:-1)}}function ye(o,i){if(o&1&&g(0,se,2,0,"p",40)(1,he,3,3),o&2){let e=l(3);v(e.recap().total===0?0:1)}}function Pe(o,i){if(o&1){let e=f();n(0,"div",17)(1,"div",5)(2,"h2",6),r(3,"Identity"),t(),n(4,"div",7)(5,"span",8),r(6,"Email"),t(),n(7,"span",33),r(8),t()(),n(9,"div",7)(10,"span",8),r(11,"External ID"),t(),n(12,"span",33),r(13),t()()(),n(14,"div",5)(15,"h2",6),r(16,"Profile"),t(),n(17,"div",7)(18,"span",8),r(19,"First name"),t(),n(20,"span",33),r(21),t()(),n(22,"div",7)(23,"span",8),r(24,"Last name"),t(),n(25,"span",33),r(26),t()(),n(27,"div",34)(28,"span",8),r(29,"Bio"),t(),n(30,"span",33),r(31),t()()(),n(32,"div",30)(33,"button",35),c("click",function(){p(e);let s=l(2);return m(s.startEditing())}),r(34," Edit profile "),t()(),n(35,"div",36)(36,"button",37),c("click",function(){p(e);let s=l(2);return m(s.toggleOverrides())}),n(37,"span",38),r(38,"\u25B6"),t(),r(39," My global user configurations "),n(40,"span",39),r(41),t()(),g(42,ye,2,1),t()()}if(o&2){let e=l(),a=l();_(8),u(e.email),_(5),u(e.externalId),_(8),u(e.firstname||"\u2014"),_(5),u(e.lastname||"\u2014"),_(5),u(e.bio||"\u2014"),_(5),P("aria-expanded",a.isOverridesExpanded()),_(),E("user-profile__overrides-arrow--open",a.isOverridesExpanded()),_(4),S("(",a.recap().total,")"),_(),v(a.isOverridesExpanded()?42:-1)}}function Ee(o,i){if(o&1&&(n(0,"div",5)(1,"h2",6),r(2,"Appearance"),t(),n(3,"div",7)(4,"span",8),r(5,"Skin"),t(),n(6,"div",9),b(7,oe,5,5,"button",10,V),t()(),n(9,"div",7)(10,"span",8),r(11,"Mode"),t(),n(12,"div",11),b(13,re,2,4,"button",12,V),t()()(),n(15,"div",5)(16,"h2",6),r(17,"Composer"),t(),n(18,"div",7)(19,"span",8),r(20,"Enter key"),t(),n(21,"div",13)(22,"div",14),b(23,ae,2,4,"button",12,V),t(),n(25,"p",15),r(26,'In "New line" mode, press Ctrl or Cmd + Enter to send.'),t()()()(),g(27,le,34,5,"form",16)(28,Pe,43,10,"div",17)),o&2){let e=l();_(7),h(e.themeVariantOptions),_(6),h(e.themeOptions),_(10),h(e.enterKeyOptions),_(4),v(e.isEditing()?27:28)}}function Se(o,i){o&1&&(n(0,"p",4),r(1,"Unable to load profile."),t())}var ne=class o{userState=x(W);router=x(N);location=x($);destroyRef=x(G);integrationState=x(Z);providerState=x(ee);authSettingState=x(te);themePort=x(Q);preferencesPort=x(X);isEditing=y(!1);isLoading=y(!1);isSaving=y(!1);isOverridesExpanded=y(!1);currentUser=this.userState.currentUser;theme=this.themePort.theme;themeMode=T(()=>this.themePort.theme().mode);themeOptions=[{value:"light",label:"Light"},{value:"dark",label:"Dark"},{value:"system",label:"System"}];themeVariant=T(()=>this.themePort.theme().variant);themeVariantOptions=[{value:"industry",label:"Industry",description:"Bleu acier, Barlow"},{value:"terminal",label:"Terminal",description:"Ambre CRT, JetBrains Mono"}];enterKeyBehavior=this.preferencesPort.enterKeyBehavior;enterKeyOptions=[{value:"send",label:"Send"},{value:"newline",label:"New line"}];form=new L({firstname:new O("",{nonNullable:!0}),lastname:new O("",{nonNullable:!0}),bio:new O("",{nonNullable:!0})});recap=K(I([this.integrationState.userGlobal$,this.providerState.userGlobal$,this.authSettingState.userGlobal$]).pipe(F(([i,e,a])=>{let s=i.map(C=>({category:"integration",id:C.id??"",name:C.name,subtitle:C.integrationType})),d=e.map(C=>({category:"aiProvider",id:C.id??"",name:C.name,subtitle:C.apiType})),D=a.map(C=>({category:"authSetting",id:C.id??"",name:C.name,subtitle:C.authType}));return{integrations:s,aiProviders:d,authSettings:D,total:s.length+d.length+D.length}})),{initialValue:{integrations:[],aiProviders:[],authSettings:[],total:0}});ngOnInit(){if(this.currentUser()){this.syncFormFromState();return}this.isLoading.set(!0),this.userState.loadMe().pipe(k(this.destroyRef)).subscribe({next:()=>{this.syncFormFromState(),this.isLoading.set(!1)},error:()=>this.isLoading.set(!1)})}startEditing(){this.syncFormFromState(),this.isEditing.set(!0)}cancelEditing(){this.isEditing.set(!1)}setTheme(i){this.themePort.setTheme({variant:this.themePort.theme().variant,mode:i})}setThemeVariant(i){this.themePort.setTheme({variant:i,mode:this.themePort.theme().mode})}setEnterKeyBehavior(i){this.preferencesPort.setEnterKeyBehavior(i)}save(){this.isSaving()||(this.isSaving.set(!0),this.userState.updateMe({firstname:this.form.controls.firstname.value.trim()||void 0,lastname:this.form.controls.lastname.value.trim()||void 0,bio:this.form.controls.bio.value.trim()||void 0}).pipe(k(this.destroyRef)).subscribe({next:()=>{this.isSaving.set(!1),this.isEditing.set(!1)},error:()=>this.isSaving.set(!1)}))}toggleOverrides(){this.isOverridesExpanded.update(i=>!i),this.pendingDeleteKey.set(null)}pendingDeleteKey=y(null);isPendingDelete(i){return this.pendingDeleteKey()===this.entryKey(i)}armDelete(i){i.id&&this.pendingDeleteKey.set(this.entryKey(i))}cancelDelete(){this.pendingDeleteKey.set(null)}confirmDelete(i){if(!i.id)return;this.pendingDeleteKey.set(null),(i.category==="integration"?this.integrationState.delete(i.id,"userGlobal"):i.category==="authSetting"?this.authSettingState.delete(i.id,"userGlobal"):this.providerState.delete(i.id,"userGlobal")).pipe(k(this.destroyRef)).subscribe({error:a=>{console.error(`[UserProfile] Delete failed for ${i.category}:${i.id}:`,a)}})}entryKey(i){return`${i.category}:${i.id}`}goBack(){window.history.length>1?this.location.back():this.router.navigate(["/agentos"])}trackEntry(i,e){return this.entryKey(e)}syncFormFromState(){let i=this.currentUser();i&&this.form.setValue({firstname:i.firstname??"",lastname:i.lastname??"",bio:i.bio??""})}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=z({type:o,selectors:[["agentos-user-profile"]],decls:8,vars:1,consts:[[1,"user-profile"],[1,"user-profile__header"],["icon","arrow_back","title","Back",3,"action"],[1,"user-profile__title"],[1,"user-profile__loading"],[1,"user-profile__section"],[1,"user-profile__section-title"],[1,"user-profile__field"],[1,"user-profile__label"],[1,"user-profile__theme-variants"],["type","button",1,"user-profile__theme-variant",3,"user-profile__theme-variant--active"],["role","group","aria-label","Color mode",1,"user-profile__segmented"],["type","button",1,"user-profile__segmented-option",3,"user-profile__segmented-option--active"],[1,"user-profile__field-control"],["role","group","aria-label","Enter key behavior",1,"user-profile__segmented"],[1,"user-profile__hint"],[1,"user-profile__form",3,"formGroup"],[1,"user-profile__view"],["type","button",1,"user-profile__theme-variant",3,"click"],[1,"user-profile__theme-variant-name"],[1,"user-profile__theme-variant-desc"],["type","button",1,"user-profile__segmented-option",3,"click"],[1,"user-profile__form",3,"ngSubmit","formGroup"],[1,"user-profile__value","user-profile__value--readonly"],["for","up-firstname",1,"user-profile__label"],["id","up-firstname","type","text","placeholder","Your first name","formControlName","firstname","autocomplete","given-name",1,"user-profile__input"],["for","up-lastname",1,"user-profile__label"],["id","up-lastname","type","text","placeholder","Your last name","formControlName","lastname","autocomplete","family-name",1,"user-profile__input"],["for","up-bio",1,"user-profile__label"],["id","up-bio","placeholder","A short description about yourself","formControlName","bio","rows","4",1,"user-profile__input","user-profile__input--textarea"],[1,"user-profile__actions"],["type","submit",1,"user-profile__btn","user-profile__btn--primary",3,"disabled"],["type","button",1,"user-profile__btn",3,"click"],[1,"user-profile__value"],[1,"user-profile__field","user-profile__field--bio"],["type","button",1,"user-profile__btn","user-profile__btn--primary",3,"click"],[1,"user-profile__overrides"],["type","button",1,"user-profile__overrides-toggle",3,"click"],[1,"user-profile__overrides-arrow"],[1,"user-profile__overrides-count"],[1,"user-profile__overrides-empty"],[1,"user-profile__overrides-subtitle"],[1,"user-profile__overrides-list"],[1,"user-profile__overrides-row"],[1,"user-profile__overrides-name"],[1,"user-profile__overrides-subtitle-text"],["type","button",1,"user-profile__overrides-delete"],[1,"user-profile__overrides-confirm-label"],["type","button",1,"user-profile__overrides-delete","user-profile__overrides-delete--confirm",3,"click"],["type","button",1,"user-profile__overrides-delete",3,"click"]],template:function(e,a){if(e&1&&(n(0,"div",0)(1,"header",1)(2,"ds-icon-button",2),c("action",function(){return a.goBack()}),t(),n(3,"h1",3),r(4,"My profile"),t()(),g(5,ie,2,0,"p",4)(6,Ee,29,1)(7,Se,2,0,"p",4),t()),e&2){let s;_(5),v(a.isLoading()?5:(s=a.currentUser())?6:7,s)}},dependencies:[J,j,B,R,A,H,Y,q],styles:[".user-profile[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.user-profile__header[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center;gap:.5rem}.user-profile__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-accent)}.user-profile__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.user-profile__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.user-profile__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:700;color:var(--color-text);letter-spacing:-.02em}.user-profile__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:.9rem;margin:0}.user-profile__view[_ngcontent-%COMP%], .user-profile__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem}.user-profile__section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.user-profile__section-title[_ngcontent-%COMP%]{margin:0;font-family:var(--font-heading);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--color-neutral-500);border-bottom:1px solid var(--color-divider);padding-bottom:.5rem}.user-profile__field[_ngcontent-%COMP%]{display:grid;grid-template-columns:140px 1fr;align-items:baseline;gap:.75rem}.user-profile__field--bio[_ngcontent-%COMP%]{align-items:start}.user-profile__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text-secondary);white-space:nowrap}.user-profile__value[_ngcontent-%COMP%]{font-size:.9375rem;color:var(--color-text);word-break:break-word;white-space:pre-wrap}.user-profile__value--readonly[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:.875rem}.user-profile__segmented[_ngcontent-%COMP%]{display:inline-flex;justify-self:start;border:1px solid var(--color-divider);overflow:hidden}.user-profile__segmented-option[_ngcontent-%COMP%]{padding:.4rem .85rem;background:transparent;border:none;border-right:1px solid var(--color-divider);color:var(--color-text-secondary);font-size:.875rem;cursor:pointer;transition:background .15s ease,color .15s ease}.user-profile__segmented-option[_ngcontent-%COMP%]:last-child{border-right:none}.user-profile__segmented-option[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover)}.user-profile__segmented-option--active[_ngcontent-%COMP%]{background:var(--color-accent);color:#fff}.user-profile__segmented-option--active[_ngcontent-%COMP%]:hover{background:var(--color-accent-700)}.user-profile__field-control[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem}.user-profile__hint[_ngcontent-%COMP%]{margin:0;font-size:.8rem;color:var(--color-text-secondary)}.user-profile__input[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border:1px solid var(--color-divider);background:var(--color-surface);color:var(--color-text);font-size:.9375rem;font-family:inherit;outline:none;box-sizing:border-box;border-radius:0;transition:border-color .15s ease;resize:none}.user-profile__input[_ngcontent-%COMP%]:focus{border-color:var(--color-accent)}.user-profile__input[_ngcontent-%COMP%]::placeholder{color:var(--color-neutral-500)}.user-profile__input--textarea[_ngcontent-%COMP%]{line-height:1.5;resize:vertical}.user-profile__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.user-profile__btn[_ngcontent-%COMP%]{padding:.6rem 1.25rem;border:1px solid var(--color-divider);background:transparent;color:var(--color-text);font-size:13px;font-family:var(--font-heading);font-weight:600;cursor:pointer;border-radius:0;transition:background .15s ease,border-color .15s ease}.user-profile__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-neutral-500)}.user-profile__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.user-profile__btn--primary[_ngcontent-%COMP%]{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.user-profile__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-accent-700);border-color:var(--color-accent-700)}.user-profile__theme-variants[_ngcontent-%COMP%]{display:flex;gap:8px;justify-self:start}.user-profile__theme-variant[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:10px 16px;border:1px solid var(--color-divider);background:transparent;cursor:pointer;min-width:120px;transition:background .12s,border-color .12s}.user-profile__theme-variant[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover);border-color:var(--color-neutral-500)}.user-profile__theme-variant--active[_ngcontent-%COMP%]{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 8%,transparent)}.user-profile__theme-variant-name[_ngcontent-%COMP%]{font-family:var(--font-heading);font-size:13px;font-weight:600;color:var(--color-text)}.user-profile__theme-variant-desc[_ngcontent-%COMP%]{font-size:11px;color:var(--color-text-secondary);font-family:var(--font-body)}.user-profile__overrides[_ngcontent-%COMP%]{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-divider)}.user-profile__overrides-toggle[_ngcontent-%COMP%]{background:transparent;border:none;padding:.25rem 0;font-size:.85rem;color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;gap:.4rem}.user-profile__overrides-toggle[_ngcontent-%COMP%]:hover{color:var(--color-text)}.user-profile__overrides-arrow[_ngcontent-%COMP%]{display:inline-block;font-size:.65rem;transition:transform .15s ease}.user-profile__overrides-arrow--open[_ngcontent-%COMP%]{transform:rotate(90deg)}.user-profile__overrides-count[_ngcontent-%COMP%]{color:var(--color-text-tertiary)}.user-profile__overrides-empty[_ngcontent-%COMP%]{font-size:.8rem;color:var(--color-text-secondary);font-style:italic;padding:.5rem 0 0;margin:0}.user-profile__overrides-subtitle[_ngcontent-%COMP%]{font-family:var(--font-heading);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--color-neutral-500);margin:.75rem 0 .25rem}.user-profile__overrides-list[_ngcontent-%COMP%]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.25rem}.user-profile__overrides-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;font-size:.85rem;border-radius:0}.user-profile__overrides-row[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover)}.user-profile__overrides-name[_ngcontent-%COMP%]{flex:1;color:var(--color-text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-profile__overrides-subtitle-text[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary);font-family:var(--font-heading)}.user-profile__overrides-confirm-label[_ngcontent-%COMP%]{font-size:11px;font-family:var(--font-heading);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--red-deep);white-space:nowrap}.user-profile__overrides-delete[_ngcontent-%COMP%]{background:transparent;border:1px solid transparent;font-size:11px;font-family:var(--font-heading);font-weight:600;color:var(--color-neutral-500);cursor:pointer;padding:3px 8px;border-radius:0;transition:color .12s,background .12s,border-color .12s}.user-profile__overrides-delete[_ngcontent-%COMP%]:hover{color:var(--red);background:color-mix(in srgb,var(--red) 10%,transparent);border-color:var(--red)}.user-profile__overrides-delete--confirm[_ngcontent-%COMP%]{border-color:var(--red);background:var(--red);color:#fff}.user-profile__overrides-delete--confirm[_ngcontent-%COMP%]:hover{background:var(--red-deep);border-color:var(--red-deep)}"],changeDetection:0})};export{ne as UserProfileComponent};
|
|
1
|
+
import{a as ee}from"./chunk-FCEVFEIX.js";import{c as te}from"./chunk-4QVEFNE3.js";import{a as Z}from"./chunk-2IN2N6PV.js";import"./chunk-NWFFZ2FW.js";import{c as X}from"./chunk-RB7N2NWN.js";import{a as W}from"./chunk-6QJAB37Y.js";import{d as Q}from"./chunk-YFCRBVWD.js";import"./chunk-C2LUO2MP.js";import{c as N}from"./chunk-6XX7GME4.js";import{s as q}from"./chunk-VNO76B3S.js";import"./chunk-E6T6QLQT.js";import"./chunk-SPV5SLNS.js";import{a as k,c as K}from"./chunk-VMYKE4ZC.js";import"./chunk-AS2L77JV.js";import{F as J,c as B,g as R,h as A,i as L,l as O,n as j,v as Y,w as H}from"./chunk-7OGOI6WM.js";import"./chunk-G5RWG2GK.js";import{Bb as f,Db as c,Fb as l,Hc as $,Ka as _,Rb as E,Tb as r,Ub as u,Vb as S,Wa as z,ca as x,ga as p,ha as m,jb as P,kb as w,lb as g,ma as G,mb as v,mc as T,pb as b,qb as h,rb as U,sb as n,t as F,ta as y,tb as t,u as I,ub as M}from"./chunk-CHEXA6RY.js";var V=(o,i)=>i.value;function ie(o,i){o&1&&(n(0,"p",4),r(1,"Loading\u2026"),t())}function oe(o,i){if(o&1){let e=f();n(0,"button",18),c("click",function(){let s=p(e).$implicit,d=l(2);return m(d.setThemeVariant(s.value))}),n(1,"span",19),r(2),t(),n(3,"span",20),r(4),t()()}if(o&2){let e=i.$implicit,a=l(2);E("user-profile__theme-variant--active",a.themeVariant()===e.value),P("aria-pressed",a.themeVariant()===e.value),_(2),u(e.label),_(2),u(e.description)}}function re(o,i){if(o&1){let e=f();n(0,"button",21),c("click",function(){let s=p(e).$implicit,d=l(2);return m(d.setTheme(s.value))}),r(1),t()}if(o&2){let e=i.$implicit,a=l(2);E("user-profile__segmented-option--active",a.themeMode()===e.value),P("aria-pressed",a.themeMode()===e.value),_(),S(" ",e.label," ")}}function ae(o,i){if(o&1){let e=f();n(0,"button",21),c("click",function(){let s=p(e).$implicit,d=l(2);return m(d.setEnterKeyBehavior(s.value))}),r(1),t()}if(o&2){let e=i.$implicit,a=l(2);E("user-profile__segmented-option--active",a.enterKeyBehavior()===e.value),P("aria-pressed",a.enterKeyBehavior()===e.value),_(),S(" ",e.label," ")}}function le(o,i){if(o&1){let e=f();n(0,"form",22),c("ngSubmit",function(){p(e);let s=l(2);return m(s.save())}),n(1,"div",5)(2,"h2",6),r(3,"Identity"),t(),n(4,"div",7)(5,"span",8),r(6,"Email"),t(),n(7,"span",23),r(8),t()(),n(9,"div",7)(10,"span",8),r(11,"External ID"),t(),n(12,"span",23),r(13),t()()(),n(14,"div",5)(15,"h2",6),r(16,"Profile"),t(),n(17,"div",7)(18,"label",24),r(19,"First name"),t(),M(20,"input",25),t(),n(21,"div",7)(22,"label",26),r(23,"Last name"),t(),M(24,"input",27),t(),n(25,"div",7)(26,"label",28),r(27,"Bio"),t(),M(28,"textarea",29),t()(),n(29,"div",30)(30,"button",31),r(31),t(),n(32,"button",32),c("click",function(){p(e);let s=l(2);return m(s.cancelEditing())}),r(33,"Cancel"),t()()()}if(o&2){let e=l(),a=l();U("formGroup",a.form),_(8),u(e.email),_(5),u(e.externalId),_(17),U("disabled",a.isSaving()),_(),S(" ",a.isSaving()?"Saving\u2026":"Save changes"," ")}}function se(o,i){o&1&&(n(0,"p",40),r(1," No global configuration yet. Create one from the Integrations / AI Providers / Auth Settings pages of your namespaces. "),t())}function _e(o,i){if(o&1){let e=f();n(0,"span",47),r(1,"Delete?"),t(),n(2,"button",48),c("click",function(){p(e);let s=l().$implicit,d=l(6);return m(d.confirmDelete(s))}),r(3," Confirm "),t(),n(4,"button",49),c("click",function(){p(e);let s=l(7);return m(s.cancelDelete())}),r(5," Cancel "),t()}}function de(o,i){if(o&1){let e=f();n(0,"button",49),c("click",function(){p(e);let s=l().$implicit,d=l(6);return m(d.armDelete(s))}),r(1," Delete "),t()}}function ce(o,i){if(o&1&&(n(0,"li",43)(1,"span",44),r(2),t(),n(3,"span",45),r(4),t(),g(5,_e,6,0)(6,de,2,0,"button",46),t()),o&2){let e=i.$implicit,a=l(6);_(2),u(e.name),_(2),u(e.subtitle),_(),v(a.isPendingDelete(e)?5:6)}}function pe(o,i){if(o&1&&(n(0,"h3",41),r(1,"Integrations"),t(),n(2,"ul",42),b(3,ce,7,3,"li",43,w().trackEntry,!0),t()),o&2){let e=l(5);_(3),h(e.recap().integrations)}}function me(o,i){if(o&1){let e=f();n(0,"span",47),r(1,"Delete?"),t(),n(2,"button",48),c("click",function(){p(e);let s=l().$implicit,d=l(6);return m(d.confirmDelete(s))}),r(3," Confirm "),t(),n(4,"button",49),c("click",function(){p(e);let s=l(7);return m(s.cancelDelete())}),r(5," Cancel "),t()}}function ue(o,i){if(o&1){let e=f();n(0,"button",49),c("click",function(){p(e);let s=l().$implicit,d=l(6);return m(d.armDelete(s))}),r(1," Delete "),t()}}function fe(o,i){if(o&1&&(n(0,"li",43)(1,"span",44),r(2),t(),n(3,"span",45),r(4),t(),g(5,me,6,0)(6,ue,2,0,"button",46),t()),o&2){let e=i.$implicit,a=l(6);_(2),u(e.name),_(2),u(e.subtitle),_(),v(a.isPendingDelete(e)?5:6)}}function Ce(o,i){if(o&1&&(n(0,"h3",41),r(1,"AI Providers"),t(),n(2,"ul",42),b(3,fe,7,3,"li",43,w().trackEntry,!0),t()),o&2){let e=l(5);_(3),h(e.recap().aiProviders)}}function ge(o,i){if(o&1){let e=f();n(0,"span",47),r(1,"Delete?"),t(),n(2,"button",48),c("click",function(){p(e);let s=l().$implicit,d=l(6);return m(d.confirmDelete(s))}),r(3," Confirm "),t(),n(4,"button",49),c("click",function(){p(e);let s=l(7);return m(s.cancelDelete())}),r(5," Cancel "),t()}}function ve(o,i){if(o&1){let e=f();n(0,"button",49),c("click",function(){p(e);let s=l().$implicit,d=l(6);return m(d.armDelete(s))}),r(1," Delete "),t()}}function xe(o,i){if(o&1&&(n(0,"li",43)(1,"span",44),r(2),t(),n(3,"span",45),r(4),t(),g(5,ge,6,0)(6,ve,2,0,"button",46),t()),o&2){let e=i.$implicit,a=l(6);_(2),u(e.name),_(2),u(e.subtitle),_(),v(a.isPendingDelete(e)?5:6)}}function be(o,i){if(o&1&&(n(0,"h3",41),r(1,"My global auth settings"),t(),n(2,"ul",42),b(3,xe,7,3,"li",43,w().trackEntry,!0),t()),o&2){let e=l(5);_(3),h(e.recap().authSettings)}}function he(o,i){if(o&1&&(g(0,pe,5,0),g(1,Ce,5,0),g(2,be,5,0)),o&2){let e=l(4);v(e.recap().integrations.length>0?0:-1),_(),v(e.recap().aiProviders.length>0?1:-1),_(),v(e.recap().authSettings.length>0?2:-1)}}function ye(o,i){if(o&1&&g(0,se,2,0,"p",40)(1,he,3,3),o&2){let e=l(3);v(e.recap().total===0?0:1)}}function Pe(o,i){if(o&1){let e=f();n(0,"div",17)(1,"div",5)(2,"h2",6),r(3,"Identity"),t(),n(4,"div",7)(5,"span",8),r(6,"Email"),t(),n(7,"span",33),r(8),t()(),n(9,"div",7)(10,"span",8),r(11,"External ID"),t(),n(12,"span",33),r(13),t()()(),n(14,"div",5)(15,"h2",6),r(16,"Profile"),t(),n(17,"div",7)(18,"span",8),r(19,"First name"),t(),n(20,"span",33),r(21),t()(),n(22,"div",7)(23,"span",8),r(24,"Last name"),t(),n(25,"span",33),r(26),t()(),n(27,"div",34)(28,"span",8),r(29,"Bio"),t(),n(30,"span",33),r(31),t()()(),n(32,"div",30)(33,"button",35),c("click",function(){p(e);let s=l(2);return m(s.startEditing())}),r(34," Edit profile "),t()(),n(35,"div",36)(36,"button",37),c("click",function(){p(e);let s=l(2);return m(s.toggleOverrides())}),n(37,"span",38),r(38,"\u25B6"),t(),r(39," My global user configurations "),n(40,"span",39),r(41),t()(),g(42,ye,2,1),t()()}if(o&2){let e=l(),a=l();_(8),u(e.email),_(5),u(e.externalId),_(8),u(e.firstname||"\u2014"),_(5),u(e.lastname||"\u2014"),_(5),u(e.bio||"\u2014"),_(5),P("aria-expanded",a.isOverridesExpanded()),_(),E("user-profile__overrides-arrow--open",a.isOverridesExpanded()),_(4),S("(",a.recap().total,")"),_(),v(a.isOverridesExpanded()?42:-1)}}function Ee(o,i){if(o&1&&(n(0,"div",5)(1,"h2",6),r(2,"Appearance"),t(),n(3,"div",7)(4,"span",8),r(5,"Skin"),t(),n(6,"div",9),b(7,oe,5,5,"button",10,V),t()(),n(9,"div",7)(10,"span",8),r(11,"Mode"),t(),n(12,"div",11),b(13,re,2,4,"button",12,V),t()()(),n(15,"div",5)(16,"h2",6),r(17,"Composer"),t(),n(18,"div",7)(19,"span",8),r(20,"Enter key"),t(),n(21,"div",13)(22,"div",14),b(23,ae,2,4,"button",12,V),t(),n(25,"p",15),r(26,'In "New line" mode, press Ctrl or Cmd + Enter to send.'),t()()()(),g(27,le,34,5,"form",16)(28,Pe,43,10,"div",17)),o&2){let e=l();_(7),h(e.themeVariantOptions),_(6),h(e.themeOptions),_(10),h(e.enterKeyOptions),_(4),v(e.isEditing()?27:28)}}function Se(o,i){o&1&&(n(0,"p",4),r(1,"Unable to load profile."),t())}var ne=class o{userState=x(W);router=x(N);location=x($);destroyRef=x(G);integrationState=x(Z);providerState=x(ee);authSettingState=x(te);themePort=x(Q);preferencesPort=x(X);isEditing=y(!1);isLoading=y(!1);isSaving=y(!1);isOverridesExpanded=y(!1);currentUser=this.userState.currentUser;theme=this.themePort.theme;themeMode=T(()=>this.themePort.theme().mode);themeOptions=[{value:"light",label:"Light"},{value:"dark",label:"Dark"},{value:"system",label:"System"}];themeVariant=T(()=>this.themePort.theme().variant);themeVariantOptions=[{value:"industry",label:"Industry",description:"Bleu acier, Barlow"},{value:"terminal",label:"Terminal",description:"Ambre CRT, JetBrains Mono"}];enterKeyBehavior=this.preferencesPort.enterKeyBehavior;enterKeyOptions=[{value:"send",label:"Send"},{value:"newline",label:"New line"}];form=new L({firstname:new O("",{nonNullable:!0}),lastname:new O("",{nonNullable:!0}),bio:new O("",{nonNullable:!0})});recap=K(I([this.integrationState.userGlobal$,this.providerState.userGlobal$,this.authSettingState.userGlobal$]).pipe(F(([i,e,a])=>{let s=i.map(C=>({category:"integration",id:C.id??"",name:C.name,subtitle:C.integrationType})),d=e.map(C=>({category:"aiProvider",id:C.id??"",name:C.name,subtitle:C.apiType})),D=a.map(C=>({category:"authSetting",id:C.id??"",name:C.name,subtitle:C.authType}));return{integrations:s,aiProviders:d,authSettings:D,total:s.length+d.length+D.length}})),{initialValue:{integrations:[],aiProviders:[],authSettings:[],total:0}});ngOnInit(){if(this.currentUser()){this.syncFormFromState();return}this.isLoading.set(!0),this.userState.loadMe().pipe(k(this.destroyRef)).subscribe({next:()=>{this.syncFormFromState(),this.isLoading.set(!1)},error:()=>this.isLoading.set(!1)})}startEditing(){this.syncFormFromState(),this.isEditing.set(!0)}cancelEditing(){this.isEditing.set(!1)}setTheme(i){this.themePort.setTheme({variant:this.themePort.theme().variant,mode:i})}setThemeVariant(i){this.themePort.setTheme({variant:i,mode:this.themePort.theme().mode})}setEnterKeyBehavior(i){this.preferencesPort.setEnterKeyBehavior(i)}save(){this.isSaving()||(this.isSaving.set(!0),this.userState.updateMe({firstname:this.form.controls.firstname.value.trim()||void 0,lastname:this.form.controls.lastname.value.trim()||void 0,bio:this.form.controls.bio.value.trim()||void 0}).pipe(k(this.destroyRef)).subscribe({next:()=>{this.isSaving.set(!1),this.isEditing.set(!1)},error:()=>this.isSaving.set(!1)}))}toggleOverrides(){this.isOverridesExpanded.update(i=>!i),this.pendingDeleteKey.set(null)}pendingDeleteKey=y(null);isPendingDelete(i){return this.pendingDeleteKey()===this.entryKey(i)}armDelete(i){i.id&&this.pendingDeleteKey.set(this.entryKey(i))}cancelDelete(){this.pendingDeleteKey.set(null)}confirmDelete(i){if(!i.id)return;this.pendingDeleteKey.set(null),(i.category==="integration"?this.integrationState.delete(i.id,"userGlobal"):i.category==="authSetting"?this.authSettingState.delete(i.id,"userGlobal"):this.providerState.delete(i.id,"userGlobal")).pipe(k(this.destroyRef)).subscribe({error:a=>{console.error(`[UserProfile] Delete failed for ${i.category}:${i.id}:`,a)}})}entryKey(i){return`${i.category}:${i.id}`}goBack(){window.history.length>1?this.location.back():this.router.navigate(["/agentos"])}trackEntry(i,e){return this.entryKey(e)}syncFormFromState(){let i=this.currentUser();i&&this.form.setValue({firstname:i.firstname??"",lastname:i.lastname??"",bio:i.bio??""})}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=z({type:o,selectors:[["agentos-user-profile"]],decls:8,vars:1,consts:[[1,"user-profile"],[1,"user-profile__header"],["icon","arrow_back","title","Back",3,"action"],[1,"user-profile__title"],[1,"user-profile__loading"],[1,"user-profile__section"],[1,"user-profile__section-title"],[1,"user-profile__field"],[1,"user-profile__label"],[1,"user-profile__theme-variants"],["type","button",1,"user-profile__theme-variant",3,"user-profile__theme-variant--active"],["role","group","aria-label","Color mode",1,"user-profile__segmented"],["type","button",1,"user-profile__segmented-option",3,"user-profile__segmented-option--active"],[1,"user-profile__field-control"],["role","group","aria-label","Enter key behavior",1,"user-profile__segmented"],[1,"user-profile__hint"],[1,"user-profile__form",3,"formGroup"],[1,"user-profile__view"],["type","button",1,"user-profile__theme-variant",3,"click"],[1,"user-profile__theme-variant-name"],[1,"user-profile__theme-variant-desc"],["type","button",1,"user-profile__segmented-option",3,"click"],[1,"user-profile__form",3,"ngSubmit","formGroup"],[1,"user-profile__value","user-profile__value--readonly"],["for","up-firstname",1,"user-profile__label"],["id","up-firstname","type","text","placeholder","Your first name","formControlName","firstname","autocomplete","given-name",1,"user-profile__input"],["for","up-lastname",1,"user-profile__label"],["id","up-lastname","type","text","placeholder","Your last name","formControlName","lastname","autocomplete","family-name",1,"user-profile__input"],["for","up-bio",1,"user-profile__label"],["id","up-bio","placeholder","A short description about yourself","formControlName","bio","rows","4",1,"user-profile__input","user-profile__input--textarea"],[1,"user-profile__actions"],["type","submit",1,"user-profile__btn","user-profile__btn--primary",3,"disabled"],["type","button",1,"user-profile__btn",3,"click"],[1,"user-profile__value"],[1,"user-profile__field","user-profile__field--bio"],["type","button",1,"user-profile__btn","user-profile__btn--primary",3,"click"],[1,"user-profile__overrides"],["type","button",1,"user-profile__overrides-toggle",3,"click"],[1,"user-profile__overrides-arrow"],[1,"user-profile__overrides-count"],[1,"user-profile__overrides-empty"],[1,"user-profile__overrides-subtitle"],[1,"user-profile__overrides-list"],[1,"user-profile__overrides-row"],[1,"user-profile__overrides-name"],[1,"user-profile__overrides-subtitle-text"],["type","button",1,"user-profile__overrides-delete"],[1,"user-profile__overrides-confirm-label"],["type","button",1,"user-profile__overrides-delete","user-profile__overrides-delete--confirm",3,"click"],["type","button",1,"user-profile__overrides-delete",3,"click"]],template:function(e,a){if(e&1&&(n(0,"div",0)(1,"header",1)(2,"ds-icon-button",2),c("action",function(){return a.goBack()}),t(),n(3,"h1",3),r(4,"My profile"),t()(),g(5,ie,2,0,"p",4)(6,Ee,29,1)(7,Se,2,0,"p",4),t()),e&2){let s;_(5),v(a.isLoading()?5:(s=a.currentUser())?6:7,s)}},dependencies:[J,j,B,R,A,H,Y,q],styles:[".user-profile[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.user-profile__header[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center;gap:.5rem}.user-profile__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-accent)}.user-profile__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.user-profile__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.user-profile__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:700;color:var(--color-text);letter-spacing:-.02em}.user-profile__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:.9rem;margin:0}.user-profile__view[_ngcontent-%COMP%], .user-profile__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem}.user-profile__section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.user-profile__section-title[_ngcontent-%COMP%]{margin:0;font-family:var(--font-heading);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--color-neutral-500);border-bottom:1px solid var(--color-divider);padding-bottom:.5rem}.user-profile__field[_ngcontent-%COMP%]{display:grid;grid-template-columns:140px 1fr;align-items:baseline;gap:.75rem}.user-profile__field--bio[_ngcontent-%COMP%]{align-items:start}.user-profile__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text-secondary);white-space:nowrap}.user-profile__value[_ngcontent-%COMP%]{font-size:.9375rem;color:var(--color-text);word-break:break-word;white-space:pre-wrap}.user-profile__value--readonly[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:.875rem}.user-profile__segmented[_ngcontent-%COMP%]{display:inline-flex;justify-self:start;border:1px solid var(--color-divider);overflow:hidden}.user-profile__segmented-option[_ngcontent-%COMP%]{padding:.4rem .85rem;background:transparent;border:none;border-right:1px solid var(--color-divider);color:var(--color-text-secondary);font-size:.875rem;cursor:pointer;transition:background .15s ease,color .15s ease}.user-profile__segmented-option[_ngcontent-%COMP%]:last-child{border-right:none}.user-profile__segmented-option[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover)}.user-profile__segmented-option--active[_ngcontent-%COMP%]{background:var(--color-accent);color:#fff}.user-profile__segmented-option--active[_ngcontent-%COMP%]:hover{background:var(--color-accent-700)}.user-profile__field-control[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem}.user-profile__hint[_ngcontent-%COMP%]{margin:0;font-size:.8rem;color:var(--color-text-secondary)}.user-profile__input[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border:1px solid var(--color-divider);background:var(--color-surface);color:var(--color-text);font-size:.9375rem;font-family:inherit;outline:none;box-sizing:border-box;border-radius:0;transition:border-color .15s ease;resize:none}.user-profile__input[_ngcontent-%COMP%]:focus{border-color:var(--color-accent)}.user-profile__input[_ngcontent-%COMP%]::placeholder{color:var(--color-neutral-500)}.user-profile__input--textarea[_ngcontent-%COMP%]{line-height:1.5;resize:vertical}.user-profile__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.user-profile__btn[_ngcontent-%COMP%]{padding:.6rem 1.25rem;border:1px solid var(--color-divider);background:transparent;color:var(--color-text);font-size:13px;font-family:var(--font-heading);font-weight:600;cursor:pointer;border-radius:0;transition:background .15s ease,border-color .15s ease}.user-profile__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-neutral-500)}.user-profile__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.user-profile__btn--primary[_ngcontent-%COMP%]{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.user-profile__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-accent-700);border-color:var(--color-accent-700)}.user-profile__theme-variants[_ngcontent-%COMP%]{display:flex;gap:8px;justify-self:start}.user-profile__theme-variant[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:10px 16px;border:1px solid var(--color-divider);background:transparent;cursor:pointer;min-width:120px;transition:background .12s,border-color .12s}.user-profile__theme-variant[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover);border-color:var(--color-neutral-500)}.user-profile__theme-variant--active[_ngcontent-%COMP%]{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 8%,transparent)}.user-profile__theme-variant-name[_ngcontent-%COMP%]{font-family:var(--font-heading);font-size:13px;font-weight:600;color:var(--color-text)}.user-profile__theme-variant-desc[_ngcontent-%COMP%]{font-size:11px;color:var(--color-text-secondary);font-family:var(--font-body)}.user-profile__overrides[_ngcontent-%COMP%]{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-divider)}.user-profile__overrides-toggle[_ngcontent-%COMP%]{background:transparent;border:none;padding:.25rem 0;font-size:.85rem;color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;gap:.4rem}.user-profile__overrides-toggle[_ngcontent-%COMP%]:hover{color:var(--color-text)}.user-profile__overrides-arrow[_ngcontent-%COMP%]{display:inline-block;font-size:.65rem;transition:transform .15s ease}.user-profile__overrides-arrow--open[_ngcontent-%COMP%]{transform:rotate(90deg)}.user-profile__overrides-count[_ngcontent-%COMP%]{color:var(--color-text-tertiary)}.user-profile__overrides-empty[_ngcontent-%COMP%]{font-size:.8rem;color:var(--color-text-secondary);font-style:italic;padding:.5rem 0 0;margin:0}.user-profile__overrides-subtitle[_ngcontent-%COMP%]{font-family:var(--font-heading);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--color-neutral-500);margin:.75rem 0 .25rem}.user-profile__overrides-list[_ngcontent-%COMP%]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.25rem}.user-profile__overrides-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;font-size:.85rem;border-radius:0}.user-profile__overrides-row[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover)}.user-profile__overrides-name[_ngcontent-%COMP%]{flex:1;color:var(--color-text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-profile__overrides-subtitle-text[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary);font-family:var(--font-heading)}.user-profile__overrides-confirm-label[_ngcontent-%COMP%]{font-size:11px;font-family:var(--font-heading);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--red-deep);white-space:nowrap}.user-profile__overrides-delete[_ngcontent-%COMP%]{background:transparent;border:1px solid transparent;font-size:11px;font-family:var(--font-heading);font-weight:600;color:var(--color-neutral-500);cursor:pointer;padding:3px 8px;border-radius:0;transition:color .12s,background .12s,border-color .12s}.user-profile__overrides-delete[_ngcontent-%COMP%]:hover{color:var(--red);background:color-mix(in srgb,var(--red) 10%,transparent);border-color:var(--red)}.user-profile__overrides-delete--confirm[_ngcontent-%COMP%]{border-color:var(--red);background:var(--red);color:#fff}.user-profile__overrides-delete--confirm[_ngcontent-%COMP%]:hover{background:var(--red-deep);border-color:var(--red-deep)}"],changeDetection:0})};export{ne as UserProfileComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as N}from"./chunk-
|
|
1
|
+
import{a as N}from"./chunk-7QFIBIYY.js";import{a as D}from"./chunk-AMWKKZG5.js";import"./chunk-C2LUO2MP.js";import{a as w,c as E}from"./chunk-6XX7GME4.js";import{s as T,z as q}from"./chunk-VNO76B3S.js";import"./chunk-E6T6QLQT.js";import"./chunk-SPV5SLNS.js";import{a as p}from"./chunk-VMYKE4ZC.js";import"./chunk-AS2L77JV.js";import"./chunk-7OGOI6WM.js";import"./chunk-G5RWG2GK.js";import{Bb as R,D as b,Db as c,Fb as r,Pb as I,Wa as y,ab as C,ca as a,ga as m,ha as d,jc as x,lb as S,m as P,ma as g,mb as v,mc as L,rb as _,sb as l,ta as u,tb as h,z as f}from"./chunk-CHEXA6RY.js";function V(i,e){if(i&1){let t=R();l(0,"agentos-scheduled-prompt-item",4),c("enableRequested",function(n){m(t);let s=r(2);return d(s.enablePrompt(n))})("disableRequested",function(n){m(t);let s=r(2);return d(s.disablePrompt(n))})("deleteRequested",function(n){m(t);let s=r(2);return d(s.deletePrompt(n))}),h()}if(i&2){let t=r().$implicit,o=r();_("definition",e)("namespaceId",o.namespaceId)("readOnly",o.isPlatformPrompt(t.id))}}function k(i,e){if(i&1&&S(0,V,1,3,"agentos-scheduled-prompt-item",3),i&2){let t,o=e.$implicit,n=r();v((t=n.resolvePrompt(o.id))?0:-1,t)}}var O="platform",B="namespace",M=class i{route=a(w);router=a(E);destroyRef=a(g);state=a(D);namespaceId=this.route.snapshot.params.namespaceId;platformPrompts=u([]);namespacePrompts=u([]);promptItems=L(()=>[...this.platformPrompts().map(e=>({id:e.id??"",name:e.name,description:e.description,groupKey:O,groupLabel:"Platform (read-only)",badges:[{label:e.enabled?"Enabled":"Disabled",variant:e.enabled?"success":"warning"}]})),...this.namespacePrompts().map(e=>({id:e.id??"",name:e.name,description:e.description,groupKey:B,groupLabel:"Namespace",badges:[{label:e.enabled?"Enabled":"Disabled",variant:e.enabled?"success":"warning"}]}))]);constructor(){f({platform:this.state.listPlatform().pipe(b(()=>P([]))),namespace:this.state.listByNamespace(this.namespaceId)}).pipe(p(this.destroyRef)).subscribe(({platform:e,namespace:t})=>{this.platformPrompts.set(e),this.namespacePrompts.set(t)})}goBack(){this.router.navigate(["/agentos","namespaces"])}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId,"scheduled-prompts","new"])}enablePrompt(e){this.state.enable(e.id??"").pipe(p(this.destroyRef)).subscribe(t=>this.patchNamespacePrompt(t))}disablePrompt(e){this.state.disable(e.id??"").pipe(p(this.destroyRef)).subscribe(t=>this.patchNamespacePrompt(t))}deletePrompt(e){let t=e.id??"";this.state.delete(t).pipe(p(this.destroyRef)).subscribe(()=>this.namespacePrompts.update(o=>o.filter(n=>n.id!==t)))}resolvePrompt(e){return this.platformPrompts().find(t=>t.id===e)??this.namespacePrompts().find(t=>t.id===e)??null}isPlatformPrompt(e){return this.platformPrompts().some(t=>t.id===e)}patchNamespacePrompt(e){this.namespacePrompts.update(t=>t.map(o=>o.id===e.id?e:o))}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=y({type:i,selectors:[["agentos-scheduled-prompt-list"]],decls:4,vars:3,consts:[["scheduledPromptItemTpl",""],["title","Scheduled Prompts","emptyMessage","No scheduled prompts yet. Create one to get started.","cardMinWidth","420px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[3,"definition","namespaceId","readOnly"],[3,"enableRequested","disableRequested","deleteRequested","definition","namespaceId","readOnly"]],template:function(t,o){if(t&1&&(l(0,"ds-entity-list",1),c("createRequested",function(){return o.openCreateForm()}),l(1,"ds-icon-button",2),c("action",function(){return o.goBack()}),h()(),C(2,k,1,1,"ng-template",null,0,x)),t&2){let n=I(3);_("items",o.promptItems())("showCreate",!0)("itemTemplate",n)}},dependencies:[q,N,T],encapsulation:2,changeDetection:0})};export{M as ScheduledPromptListComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as a}from"./chunk-
|
|
1
|
+
import{c as a}from"./chunk-PKLY5FK2.js";import"./chunk-ARAXWPWU.js";import"./chunk-SI42WXFB.js";import"./chunk-W7ONGRS7.js";import"./chunk-C2LUO2MP.js";import"./chunk-6XX7GME4.js";import"./chunk-VNO76B3S.js";import"./chunk-E6T6QLQT.js";import"./chunk-SPV5SLNS.js";import"./chunk-VMYKE4ZC.js";import"./chunk-AS2L77JV.js";import"./chunk-7OGOI6WM.js";import"./chunk-G5RWG2GK.js";import"./chunk-CHEXA6RY.js";export{a as AdminUsersGroupsComponent};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{a as pt,b as vt,c as ye}from"./chunk-I2ONTIJI.js";import{a as _t}from"./chunk-NMKUE2VW.js";import{d as bt}from"./chunk-
|
|
1
|
+
import{a as pt,b as vt,c as ye}from"./chunk-I2ONTIJI.js";import{a as _t}from"./chunk-NMKUE2VW.js";import{d as bt}from"./chunk-VVFVGWIQ.js";import{a as he}from"./chunk-SFQE4GQ6.js";import{a as I,b as V,d as ft,g as xt}from"./chunk-UEGZX4MW.js";import"./chunk-TSYL5EEO.js";import"./chunk-DZ2M3NQD.js";import{a as ze,b as We,c as Qe,d as Ue,g as at,n as lt,q as st,s as ct,y as dt}from"./chunk-CRXIMHRG.js";import"./chunk-YJOXSEUO.js";import"./chunk-GIIRKWUO.js";import{c as Re,d as $e}from"./chunk-6XX7GME4.js";import"./chunk-2PWIGCN2.js";import{a as pe,b as me,c as ue,d as _e}from"./chunk-B4UTEYRE.js";import{a as ge,b as ee}from"./chunk-EZSEUOCV.js";import{a as mt,b as ut}from"./chunk-DFU2RM36.js";import"./chunk-SKBEA6VH.js";import{a as gt,b as ht,c as Ct}from"./chunk-J4UAEXFM.js";import{a as ce,c as et,d as H,g as X,h as J,i as Y,j as Z}from"./chunk-GTCP3EYX.js";import{a as He,c as Xe,d as Je,e as Ke,j as de}from"./chunk-VNO76B3S.js";import{a as le,b as se,c as Ye,d as Ze}from"./chunk-E6T6QLQT.js";import{a as $,b as qe,d as L,e as q,f as B,g as z,h as W}from"./chunk-BTOJ27OO.js";import"./chunk-SPV5SLNS.js";import{a as Be,c as Q}from"./chunk-VMYKE4ZC.js";import{a as N,b as A}from"./chunk-AS2L77JV.js";import{B as rt,E as K,c as tt,g as nt,m as it,o as ot}from"./chunk-7OGOI6WM.js";import{a as U,b as ae}from"./chunk-TASSC2XX.js";import{O as re,Q as O,S as E,n as Le}from"./chunk-G5RWG2GK.js";import{Bb as x,D as Ee,Db as m,Fb as d,Ja as xe,Jb as Ae,Ka as c,Kb as Ie,Lb as Ve,Pb as w,Qb as Fe,Rb as S,Tb as s,Ub as b,Vb as P,Wa as D,Xc as Ge,Z as oe,a as F,b as G,ca as f,ga as g,ha as h,jb as ke,lb as v,m as Pe,ma as Ne,mb as C,mc as k,ob as j,pb as y,qb as M,rb as _,s as De,sb as o,t as je,ta as u,tb as r,ub as T,z as Oe}from"./chunk-CHEXA6RY.js";var Dt=(a,t)=>t.name;function jt(a,t){if(a&1&&(o(0,"mat-option",11),s(1),r()),a&2){let e=t.$implicit;_("value",e),c(),b(e)}}function Ot(a,t){a&1&&T(0,"mat-spinner",13)}function Et(a,t){if(a&1&&(o(0,"span",20),s(1),r()),a&2){let e=d().$implicit;c(),b(e.description)}}function Nt(a,t){if(a&1&&(o(0,"mat-option",11)(1,"span",19),s(2),r(),v(3,Et,2,1,"span",20),r()),a&2){let e=t.$implicit;_("value",e.name),c(2),b(e.name),c(),C(e.description?3:-1)}}function At(a,t){if(a&1&&(o(0,"mat-option",11),s(1),r()),a&2){let e=t.$implicit;_("value",e),c(),b(e)}}function It(a,t){if(a&1){let e=x();o(0,"div",25)(1,"mat-form-field",8)(2,"mat-label"),s(3,"Name"),r(),o(4,"input",26),m("input",function(i){g(e);let l=d(2);return h(l.issueNumber.set(i.target.value))}),r()(),o(5,"mat-form-field",27)(6,"mat-label"),s(7,"Type"),r(),o(8,"mat-select",28),m("selectionChange",function(i){g(e);let l=d(2);return h(l.branchType.set(i.value))}),y(9,At,2,2,"mat-option",11,j),r()()()}if(a&2){let e=d(2);c(4),_("value",e.issueNumber()),c(4),_("value",e.branchType()),c(),M(e.branchTypes)}}function Vt(a,t){a&1&&T(0,"mat-spinner",13)}function Ft(a,t){if(a&1&&(o(0,"mat-option",11),s(1),r()),a&2){let e=t.$implicit;_("value",e),c(),b(e)}}function Gt(a,t){if(a&1){let e=x();o(0,"mat-form-field",8)(1,"mat-label"),s(2,"Source branch"),r(),o(3,"input",29,4),m("input",function(i){g(e);let l=d(2);return h(l.onBranchSearchInput(i.target.value))})("focus",function(){g(e);let i=w(4),l=d(2);return h(l.openPanel(i))}),r(),v(5,Vt,1,0,"mat-spinner",13),o(6,"mat-autocomplete",10,5),m("optionSelected",function(i){g(e);let l=d(2);return h(l.selectBranch(i.option.value))}),y(8,Ft,2,2,"mat-option",11,j),r()()}if(a&2){let e=w(7),n=d(2);c(3),_("value",n.branchSearch())("matAutocomplete",e)("disabled",n.isLoadingBranches()),c(2),C(n.isLoadingBranches()?5:-1),c(3),M(n.filteredBranches())}}function Rt(a,t){if(a&1){let e=x();o(0,"div",21)(1,"button",22),m("click",function(){g(e);let i=d();return h(i.onModeChange("local"))}),o(2,"mat-icon"),s(3,"folder_open"),r(),o(4,"span",23),s(5,"Local"),r(),o(6,"span",24),s(7,"Work directly on the current branch"),r()(),o(8,"button",22),m("click",function(){g(e);let i=d();return h(i.onModeChange("worktree"))}),o(9,"mat-icon"),s(10,"account_tree"),r(),o(11,"span",23),s(12,"Worktree"),r(),o(13,"span",24),s(14,"Create an isolated worktree from a branch"),r()()(),v(15,It,11,2,"div",25),v(16,Gt,10,4,"mat-form-field",8)}if(a&2){let e=d();c(),S("active",e.mode()==="local"),c(7),S("active",e.mode()==="worktree"),c(7),C(e.isWorktree()?15:-1),c(),C(e.isWorktree()?16:-1)}}function $t(a,t){a&1&&T(0,"mat-spinner",18)}function Lt(a,t){a&1&&(o(0,"mat-icon"),s(1,"rocket_launch"),r())}function qt(a,t){a&1&&(o(0,"mat-icon"),s(1,"open_in_new"),r())}var fe=class a{projectApi=f(U);agentApi=f(he);dialogRef=f($);projectState=f(ae);forcedProject=Q(this.projectState.forcedProject$,{initialValue:null});selectedProject=u("");projectSearch=u("");selectedAgent=u("");agentSearch=u("");mode=u("local");selectedBranch=u("");branchSearch=u("");issueNumber=u("");branchType=u("feature");task=u("");hasGit=u(!1);branchTypes=["feature","fix","refactor","chore","docs","build"];projects=u([]);agents=u([]);branches=u([]);filteredProjects=k(()=>{let t=this.projectSearch().toLowerCase();return t?this.projects().filter(e=>e.toLowerCase().includes(t)):this.projects()});filteredAgents=k(()=>{let t=this.agentSearch().toLowerCase();return t?this.agents().filter(e=>e.name.toLowerCase().includes(t)||e.description?.toLowerCase().includes(t)):this.agents()});filteredBranches=k(()=>{let t=this.branchSearch().toLowerCase();return t?this.branches().filter(e=>e.toLowerCase().includes(t)):this.branches()});isLoadingAgents=u(!1);isLoadingBranches=u(!1);isSubmitting=u(!1);isWorktree=k(()=>this.mode()==="worktree"&&this.hasGit());isValid=k(()=>{let t=this.projects().includes(this.selectedProject()),e=this.agents().some(i=>i.name===this.selectedAgent()),n=t&&e&&!!this.task().trim();return this.isWorktree()?n&&!!this.selectedBranch()&&!!this.issueNumber().trim()&&!!this.branchType():n});canNavigate=k(()=>this.projects().includes(this.selectedProject()));openPanel(t){t.openPanel()}onProjectSearchInput(t){this.projectSearch.set(t),this.selectedProject()&&t!==this.selectedProject()&&(this.selectedProject.set(""),this.selectedAgent.set(""),this.agentSearch.set(""),this.agents.set([]))}selectProject(t){this.selectedProject.set(t),this.projectSearch.set(t),this.selectedAgent.set(""),this.agentSearch.set(""),this.agents.set([]),this.branches.set([]),this.selectedBranch.set(""),this.branchSearch.set(""),this.hasGit.set(!1),this.mode.set("local"),this.isLoadingAgents.set(!0),this.agentApi.getAgents(t).subscribe({next:e=>{this.agents.set(e),this.isLoadingAgents.set(!1)},error:()=>{this.isLoadingAgents.set(!1)}}),this.projectApi.getGitBranches(t).subscribe({next:({branches:e})=>{this.hasGit.set(e.length>0)},error:()=>{this.hasGit.set(!1)}})}onAgentSearchInput(t){this.agentSearch.set(t),this.selectedAgent()&&t!==this.selectedAgent()&&this.selectedAgent.set("")}selectAgent(t){this.selectedAgent.set(t),this.agentSearch.set(t)}onBranchSearchInput(t){this.branchSearch.set(t),this.selectedBranch()&&t!==this.selectedBranch()&&this.selectedBranch.set("")}selectBranch(t){this.selectedBranch.set(t),this.branchSearch.set(t)}ngOnInit(){this.projectApi.listProjects().subscribe({next:({projects:t})=>{let e=t.map(n=>n.name);this.projects.set(e),e.length===1&&e[0]&&this.selectProject(e[0])}})}onProjectChange(t){this.selectProject(t)}onModeChange(t){this.mode.set(t),t==="worktree"&&this.selectedProject()&&this.branches().length===0&&this.loadBranches()}loadBranches(){this.isLoadingBranches.set(!0),this.projectApi.getGitBranches(this.selectedProject()).subscribe({next:({branches:t})=>{this.branches.set(t),this.isLoadingBranches.set(!1)},error:()=>{this.isLoadingBranches.set(!1)}})}submit(){if(!this.isSubmitting()){if(this.isValid()){this.isSubmitting.set(!0);let t=this.isWorktree()&&this.issueNumber().trim()?`${this.issueNumber().trim()} ${this.task().trim()}`:this.task().trim();this.projectApi.createTask(this.selectedProject(),this.selectedAgent(),t,this.isWorktree()?"worktree":"local",this.isWorktree()?this.selectedBranch():void 0,this.isWorktree()?this.issueNumber().trim():void 0,this.isWorktree()?this.branchType():void 0).subscribe({next:({threadId:e,projectId:n})=>{this.dialogRef.close({threadId:e,projectId:n})},error:()=>{this.isSubmitting.set(!1)}});return}if(this.canNavigate()){this.dialogRef.close({projectId:this.selectedProject(),navigate:!0});return}}}cancel(){this.dialogRef.close(null)}static \u0275fac=function(e){return new(e||a)};static \u0275cmp=D({type:a,selectors:[["app-new-task-dialog"]],decls:37,vars:12,consts:[["projectTrigger","matAutocompleteTrigger"],["projectAuto",""],["agentTrigger","matAutocompleteTrigger"],["agentAuto",""],["branchTrigger","matAutocompleteTrigger"],["branchAuto",""],["mat-dialog-title",""],[1,"ntd-content"],["appearance","outline",1,"ntd-field"],["matInput","","placeholder","Search project...",3,"input","focus","value","matAutocomplete"],[3,"optionSelected"],[3,"value"],["matInput","","placeholder","Search agent...",3,"input","focus","value","matAutocomplete","disabled"],["matSuffix","","diameter","16"],["matInput","","placeholder","Describe what the agent should accomplish...","rows","4",3,"input","value"],["align","end"],["mat-button","",3,"click","disabled"],["mat-flat-button","",1,"ntd-launch-btn",3,"click","disabled"],["diameter","16"],[1,"ntd-agent-name"],[1,"ntd-agent-desc"],[1,"ntd-radio-group"],["type","button",1,"ntd-mode-btn",3,"click"],[1,"ntd-radio-label"],[1,"ntd-radio-hint"],[1,"ntd-row"],["matInput","","type","text","placeholder","Name",3,"input","value"],["appearance","outline",1,"ntd-field","ntd-field--small"],[3,"selectionChange","value"],["matInput","","placeholder","Search branch...",3,"input","focus","value","matAutocomplete","disabled"]],template:function(e,n){if(e&1){let i=x();o(0,"h2",6)(1,"mat-icon"),s(2,"rocket_launch"),r(),s(3,` New Task
|
|
2
2
|
`),r(),o(4,"mat-dialog-content",7)(5,"mat-form-field",8)(6,"mat-label"),s(7,"Project"),r(),o(8,"input",9,0),m("input",function(p){return n.onProjectSearchInput(p.target.value)})("focus",function(){g(i);let p=w(9);return h(n.openPanel(p))}),r(),o(10,"mat-autocomplete",10,1),m("optionSelected",function(p){return n.selectProject(p.option.value)}),y(12,jt,2,2,"mat-option",11,j),r()(),o(14,"mat-form-field",8)(15,"mat-label"),s(16,"Agent"),r(),o(17,"input",12,2),m("input",function(p){return n.onAgentSearchInput(p.target.value)})("focus",function(){g(i);let p=w(18);return h(n.openPanel(p))}),r(),v(19,Ot,1,0,"mat-spinner",13),o(20,"mat-autocomplete",10,3),m("optionSelected",function(p){return n.selectAgent(p.option.value)}),y(22,Nt,4,3,"mat-option",11,Dt),r()(),v(24,Rt,17,6),o(25,"mat-form-field",8)(26,"mat-label"),s(27,"Task"),r(),o(28,"textarea",14),m("input",function(p){return n.task.set(p.target.value)}),r()()(),o(29,"mat-dialog-actions",15)(30,"button",16),m("click",function(){return n.cancel()}),s(31,"Cancel"),r(),o(32,"button",17),m("click",function(){return n.submit()}),v(33,$t,1,0,"mat-spinner",18)(34,Lt,2,0,"mat-icon")(35,qt,2,0,"mat-icon"),s(36),r()()}if(e&2){let i=w(11),l=w(21);c(8),_("value",n.projectSearch())("matAutocomplete",i),c(4),M(n.filteredProjects()),c(5),_("value",n.agentSearch())("matAutocomplete",l)("disabled",!n.selectedProject()||n.isLoadingAgents()),c(2),C(n.isLoadingAgents()?19:-1),c(3),M(n.filteredAgents()),c(2),C(n.hasGit()&&!n.forcedProject()?24:-1),c(4),_("value",n.task()),c(2),_("disabled",n.isSubmitting()),c(2),_("disabled",!n.canNavigate()||n.isSubmitting()),c(),C(n.isSubmitting()?33:n.isValid()?34:35),c(3),P(" ",n.isValid()?"Launch":"Open"," ")}},dependencies:[K,W,q,z,B,E,O,J,X,ce,H,Z,Y,ue,pe,de,me,ee,ge,V,I,A,N],styles:["h2[mat-dialog-title][_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;margin-bottom:0}.ntd-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem;padding-top:20px!important}.ntd-field[_ngcontent-%COMP%]{width:100%}.ntd-row[_ngcontent-%COMP%]{display:flex;gap:.75rem}.ntd-row[_ngcontent-%COMP%] .ntd-field--small[_ngcontent-%COMP%]{width:130px;flex-shrink:0}.ntd-radio-group[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding:.25rem 0 .75rem}.ntd-mode-btn[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;padding:.75rem;border:1px solid var(--color-border);border-radius:8px;background:transparent;color:var(--color-text);cursor:pointer;transition:border-color .15s,background .15s}.ntd-mode-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.1rem;width:1.1rem;height:1.1rem;margin-bottom:.1rem}.ntd-mode-btn.active[_ngcontent-%COMP%]{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent)}.ntd-mode-btn[_ngcontent-%COMP%]:hover:not(.active){border-color:var(--color-text-secondary)}.ntd-radio-label[_ngcontent-%COMP%]{font-weight:600;font-size:.9rem}.ntd-radio-hint[_ngcontent-%COMP%]{font-size:.72rem;color:var(--color-text-secondary);line-height:1.3;text-align:left}.ntd-agent-name[_ngcontent-%COMP%]{font-weight:500;display:block}.ntd-agent-desc[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:380px}.ntd-launch-btn[_ngcontent-%COMP%]{background:var(--color-primary);color:var(--color-text-inverse)}.ntd-launch-btn[_ngcontent-%COMP%]:disabled{background:var(--color-border);color:var(--color-text-secondary);opacity:.6;cursor:not-allowed}"]})};var Bt=(a,t)=>t.name,zt=(a,t)=>t.value;function Wt(a,t){if(a&1&&(o(0,"mat-option",8),s(1),r()),a&2){let e=t.$implicit;_("value",e),c(),b(e)}}function Qt(a,t){a&1&&T(0,"mat-spinner",9)}function Ut(a,t){if(a&1&&(o(0,"mat-option",8),s(1),r()),a&2){let e=t.$implicit;_("value",e.name),c(),b(e.name)}}function Ht(a,t){if(a&1){let e=x();o(0,"button",37),m("click",function(){let i=g(e).$implicit,l=d();return h(l.toggleDay(i.value))}),s(1),r()}if(a&2){let e=t.$implicit,n=d();S("selected",n.isDaySelected(e.value)),c(),P(" ",e.label," ")}}function Xt(a,t){if(a&1){let e=x();o(0,"mat-form-field",4)(1,"mat-label"),s(2,"Number of runs"),r(),o(3,"input",17),m("ngModelChange",function(i){g(e);let l=d();return h(l.endOccurrences.set(i))}),r()()}if(a&2){let e=d();c(3),_("ngModel",e.endOccurrences())}}function Jt(a,t){if(a&1){let e=x();o(0,"mat-form-field",4)(1,"mat-label"),s(2,"End date"),r(),o(3,"input",38),m("ngModelChange",function(i){g(e);let l=d();return h(l.endTimestamp.set(i))}),r()()}if(a&2){let e=d();c(3),_("ngModel",e.endTimestamp())("min",e.startTimestamp())}}function Kt(a,t){if(a&1&&(o(0,"div",32)(1,"mat-icon"),s(2,"error"),r(),o(3,"span"),s(4),r()()),a&2){let e=d();c(4),b(e.errorMessage())}}function Yt(a,t){a&1&&T(0,"mat-spinner",36)}function Zt(a,t){a&1&&(o(0,"mat-icon"),s(1,"schedule"),r())}var R=class a{projectApi=f(U);agentApi=f(he);schedulerApi=f(_e);dialogRef=f($);dialogData=f(qe,{optional:!0});isEditMode=this.dialogData?.mode==="edit";projects=u([]);agents=u([]);name=u("");selectedProject=u("");selectedAgent=u("");instruction=u("");intervalValue=u(1);intervalUnit=u("d");startTimestamp=u("");daysOfWeek=u([]);endConditionType=u("none");endOccurrences=u(10);endTimestamp=u("");enabled=u(!0);isLoadingAgents=u(!1);isSaving=u(!1);errorMessage=u("");daysOfWeekOptions=[{value:1,label:"Mon"},{value:2,label:"Tue"},{value:3,label:"Wed"},{value:4,label:"Thu"},{value:5,label:"Fri"},{value:6,label:"Sat"},{value:0,label:"Sun"}];filteredProjects=k(()=>{let t=this.selectedProject().toLowerCase();return this.projects().filter(e=>e.toLowerCase().includes(t))});filteredAgents=k(()=>{let t=this.selectedAgent().toLowerCase();return this.agents().filter(e=>e.name.toLowerCase().includes(t))});isValid=k(()=>{let t=this.projects().includes(this.selectedProject()),e=this.agents().some(l=>l.name===this.selectedAgent()),n=this.instruction().trim().length>0,i=this.intervalValue()>=1;return t&&e&&n&&i});ngOnInit(){if(this.isEditMode&&this.dialogData?.scheduler){let t=this.dialogData.scheduler;this.name.set(t.name),this.selectedAgent.set(t.agentName??""),this.instruction.set(t.instruction??""),this.enabled.set(t.enabled);let e=t.schedule.interval.match(/^(\d+)(min|h|d|M)$/);e&&e[1]&&e[2]&&(this.intervalValue.set(parseInt(e[1],10)),this.intervalUnit.set(e[2])),t.schedule.startTimestamp&&this.startTimestamp.set(this.toDatetimeLocal(new Date(t.schedule.startTimestamp))),this.daysOfWeek.set(t.schedule.daysOfWeek??[]),t.schedule.endCondition&&(this.endConditionType.set(t.schedule.endCondition.type),t.schedule.endCondition.type==="occurrences"?this.endOccurrences.set(t.schedule.endCondition.value):t.schedule.endCondition.type==="endTimestamp"&&this.endTimestamp.set(this.toDatetimeLocal(new Date(t.schedule.endCondition.value))))}else this.startTimestamp.set(this.toDatetimeLocal(new Date));this.projectApi.listProjects().subscribe({next:({projects:t})=>{let e=t.map(i=>i.name).filter(i=>!i.includes("__"));this.projects.set(e);let n=this.dialogData?.projectName;this.isEditMode&&n?this.onProjectSelected(n):e.length===1&&e[0]&&this.onProjectSelected(e[0])}})}onProjectSelected(t){this.selectedProject.set(t),this.isEditMode||(this.agents.set([]),this.selectedAgent.set("")),this.projects().includes(t)&&(this.isLoadingAgents.set(!0),this.agentApi.getAgents(t).subscribe({next:e=>{this.agents.set(e),this.isLoadingAgents.set(!1),!this.isEditMode&&e.length===1&&e[0]&&this.selectedAgent.set(e[0].name)},error:()=>this.isLoadingAgents.set(!1)}))}toggleDay(t){let e=this.daysOfWeek();e.indexOf(t)>-1?this.daysOfWeek.set(e.filter(i=>i!==t)):this.daysOfWeek.set([...e,t].sort())}isDaySelected(t){return this.daysOfWeek().includes(t)}toDatetimeLocal(t){let e=n=>String(n).padStart(2,"0");return`${t.getFullYear()}-${e(t.getMonth()+1)}-${e(t.getDate())}T${e(t.getHours())}:${e(t.getMinutes())}`}submit(){if(!this.isValid()||this.isSaving())return;this.errorMessage.set(""),this.isSaving.set(!0);let t=this.startTimestamp(),e={startTimestamp:t?new Date(t).toISOString():new Date().toISOString(),interval:`${this.intervalValue()}${this.intervalUnit()}`},n=this.daysOfWeek();n.length>0&&(e.daysOfWeek=n);let i=this.endConditionType();i==="occurrences"?e.endCondition={type:"occurrences",value:this.endOccurrences()}:i==="endTimestamp"&&this.endTimestamp()&&(e.endCondition={type:"endTimestamp",value:new Date(this.endTimestamp()).toISOString()});let l=this.instruction().trim(),p=l.length>40?l.slice(0,40)+"\u2026":l,ie=this.name().trim()||`${this.selectedAgent()} \u2014 ${p}`;this.isEditMode&&this.dialogData?.scheduler&&this.dialogData.projectName?this.schedulerApi.updateSchedulerForProject(this.dialogData.projectName,this.dialogData.scheduler.id,{name:ie,agentName:this.selectedAgent(),instruction:l,schedule:e,enabled:this.enabled()}).subscribe({next:()=>{this.isSaving.set(!1),this.dialogRef.close(!0)},error:te=>{this.errorMessage.set(te?.error?.error||"Failed to update scheduler"),this.isSaving.set(!1)}}):this.schedulerApi.createSchedulerForProject(this.selectedProject(),{name:ie,agentName:this.selectedAgent(),instruction:l,schedule:e,enabled:this.enabled()}).subscribe({next:()=>{this.isSaving.set(!1),this.dialogRef.close(!0)},error:te=>{this.errorMessage.set(te?.error?.error||"Failed to create scheduler"),this.isSaving.set(!1)}})}cancel(){this.dialogRef.close(!1)}static \u0275fac=function(e){return new(e||a)};static \u0275cmp=D({type:a,selectors:[["app-quick-scheduler-dialog"]],decls:84,vars:20,consts:[["projectAuto","matAutocomplete"],["agentAuto","matAutocomplete"],["mat-dialog-title",""],[1,"qsd-form"],["appearance","outline",1,"full-width"],["matInput","","placeholder","Optional \u2014 auto-generated if empty",3,"ngModelChange","ngModel"],["matInput","","placeholder","Select a project",3,"ngModelChange","focus","ngModel","matAutocomplete"],[3,"optionSelected"],[3,"value"],["matSuffix","","diameter","18"],["matInput","","placeholder","Select an agent",3,"ngModelChange","focus","ngModel","matAutocomplete","disabled"],["matInput","","placeholder","e.g. Review open PRs and summarize what needs attention","rows","3",3,"ngModelChange","ngModel"],[1,"qsd-divider"],["matInput","","type","datetime-local",3,"ngModelChange","ngModel"],[1,"qsd-interval"],[1,"qsd-label"],["appearance","outline",1,"interval-value"],["matInput","","type","number","min","1",3,"ngModelChange","ngModel"],["appearance","outline",1,"interval-unit"],[3,"ngModelChange","ngModel"],["value","min"],["value","h"],["value","d"],["value","M"],[1,"qsd-days"],[1,"qsd-day-chips"],["type","button",1,"day-chip",3,"selected"],[1,"qsd-hint"],[1,"qsd-end"],["value","none"],["value","occurrences"],["value","endTimestamp"],[1,"qsd-error"],["align","end"],["mat-button","",3,"click","disabled"],["mat-flat-button","",3,"click","disabled"],["diameter","18"],["type","button",1,"day-chip",3,"click"],["matInput","","type","datetime-local",3,"ngModelChange","ngModel","min"]],template:function(e,n){if(e&1&&(o(0,"h2",2)(1,"mat-icon"),s(2,"schedule"),r(),s(3),r(),o(4,"mat-dialog-content")(5,"div",3)(6,"mat-form-field",4)(7,"mat-label"),s(8,"Name"),r(),o(9,"input",5),m("ngModelChange",function(l){return n.name.set(l)}),r()(),o(10,"mat-form-field",4)(11,"mat-label"),s(12,"Project"),r(),o(13,"input",6),m("ngModelChange",function(l){return n.onProjectSelected(l)})("focus",function(){return n.selectedProject.set(n.selectedProject())}),r(),o(14,"mat-autocomplete",7,0),m("optionSelected",function(l){return n.onProjectSelected(l.option.value)}),y(16,Wt,2,2,"mat-option",8,j),r()(),o(18,"mat-form-field",4)(19,"mat-label"),s(20,"Agent"),r(),v(21,Qt,1,0,"mat-spinner",9),o(22,"input",10),m("ngModelChange",function(l){return n.selectedAgent.set(l)})("focus",function(){return n.selectedAgent.set(n.selectedAgent())}),r(),o(23,"mat-autocomplete",7,1),m("optionSelected",function(l){return n.selectedAgent.set(l.option.value)}),y(25,Ut,2,2,"mat-option",8,Bt),r()(),o(27,"mat-form-field",4)(28,"mat-label"),s(29,"What should the agent do?"),r(),o(30,"textarea",11),m("ngModelChange",function(l){return n.instruction.set(l)}),r()(),o(31,"div",12)(32,"span"),s(33,"Scheduling"),r()(),o(34,"mat-form-field",4)(35,"mat-label"),s(36,"Starts on"),r(),o(37,"input",13),m("ngModelChange",function(l){return n.startTimestamp.set(l)}),r()(),o(38,"div",14)(39,"span",15),s(40,"Every"),r(),o(41,"mat-form-field",16)(42,"input",17),m("ngModelChange",function(l){return n.intervalValue.set(l)}),r()(),o(43,"mat-form-field",18)(44,"mat-select",19),m("ngModelChange",function(l){return n.intervalUnit.set(l)}),o(45,"mat-option",20),s(46,"minutes"),r(),o(47,"mat-option",21),s(48,"hours"),r(),o(49,"mat-option",22),s(50,"days"),r(),o(51,"mat-option",23),s(52,"months"),r()()()(),o(53,"div",24)(54,"span",15),s(55,"Days"),r(),o(56,"div",25),y(57,Ht,2,3,"button",26,zt),r(),o(59,"span",27),s(60,"Leave empty for every day"),r()(),o(61,"div",28)(62,"mat-form-field",4)(63,"mat-label"),s(64,"Ends on"),r(),o(65,"mat-select",19),m("ngModelChange",function(l){return n.endConditionType.set(l)}),o(66,"mat-option",29),s(67,"Never"),r(),o(68,"mat-option",30),s(69,"After N runs"),r(),o(70,"mat-option",31),s(71,"On a date"),r()()(),v(72,Xt,4,1,"mat-form-field",4),v(73,Jt,4,2,"mat-form-field",4),r(),o(74,"mat-checkbox",19),m("ngModelChange",function(l){return n.enabled.set(l)}),s(75,"Enable immediately"),r(),v(76,Kt,5,1,"div",32),r()(),o(77,"mat-dialog-actions",33)(78,"button",34),m("click",function(){return n.cancel()}),s(79,"Cancel"),r(),o(80,"button",35),m("click",function(){return n.submit()}),v(81,Yt,1,0,"mat-spinner",36)(82,Zt,2,0,"mat-icon"),s(83," Schedule "),r()()),e&2){let i=w(15),l=w(24);c(3),P(" ",n.isEditMode?"Edit scheduled task":"New scheduled task",`
|
|
3
3
|
`),c(6),_("ngModel",n.name()),c(4),_("ngModel",n.selectedProject())("matAutocomplete",i),c(3),M(n.filteredProjects()),c(5),C(n.isLoadingAgents()?21:-1),c(),_("ngModel",n.selectedAgent())("matAutocomplete",l)("disabled",!n.projects().includes(n.selectedProject())),c(3),M(n.filteredAgents()),c(5),_("ngModel",n.instruction()),c(7),_("ngModel",n.startTimestamp()),c(5),_("ngModel",n.intervalValue()),c(2),_("ngModel",n.intervalUnit()),c(13),M(n.daysOfWeekOptions),c(8),_("ngModel",n.endConditionType()),c(7),C(n.endConditionType()==="occurrences"?72:-1),c(),C(n.endConditionType()==="endTimestamp"?73:-1),c(),_("ngModel",n.enabled()),c(2),C(n.errorMessage()?76:-1),c(2),_("disabled",n.isSaving()),c(2),_("disabled",!n.isValid()||n.isSaving()),c(),C(n.isSaving()?81:82)}},dependencies:[K,tt,ot,nt,rt,it,W,q,z,B,E,O,J,X,ce,H,Z,Y,ue,pe,de,me,ee,ge,ut,mt,V,I,A,N],styles:['[_nghost-%COMP%]{display:block}h2[mat-dialog-title][_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.qsd-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px;padding-top:4px}.full-width[_ngcontent-%COMP%]{width:100%}.qsd-interval[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.qsd-interval[_ngcontent-%COMP%] .qsd-label[_ngcontent-%COMP%]{font-size:14px;color:var(--mat-sys-on-surface-variant);white-space:nowrap}.qsd-interval[_ngcontent-%COMP%] .interval-value[_ngcontent-%COMP%]{width:80px}.qsd-interval[_ngcontent-%COMP%] .interval-unit[_ngcontent-%COMP%]{flex:1}.qsd-days[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.qsd-days[_ngcontent-%COMP%] .qsd-label[_ngcontent-%COMP%]{font-size:14px;color:var(--mat-sys-on-surface-variant);white-space:nowrap}.qsd-days[_ngcontent-%COMP%] .qsd-hint[_ngcontent-%COMP%]{font-size:12px;color:var(--mat-sys-on-surface-variant);opacity:.7;width:100%;margin-top:-4px;padding-left:36px}.qsd-day-chips[_ngcontent-%COMP%]{display:flex;gap:4px;flex-wrap:wrap}.day-chip[_ngcontent-%COMP%]{padding:4px 10px;border-radius:16px;border:1px solid var(--mat-sys-outline);background:transparent;color:var(--mat-sys-on-surface);font-size:12px;cursor:pointer;transition:background .15s,color .15s}.day-chip.selected[_ngcontent-%COMP%]{background:var(--mat-sys-primary);color:var(--mat-sys-on-primary);border-color:var(--mat-sys-primary)}.day-chip[_ngcontent-%COMP%]:hover:not(.selected){background:var(--mat-sys-surface-variant)}.qsd-divider[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;margin:4px 0}.qsd-divider[_ngcontent-%COMP%]:before, .qsd-divider[_ngcontent-%COMP%]:after{content:"";flex:1;height:1px;background:var(--mat-sys-outline-variant)}.qsd-divider[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:12px;color:var(--mat-sys-on-surface-variant);text-transform:uppercase;letter-spacing:.5px}.qsd-end[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px}.qsd-error[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;color:var(--mat-sys-error);font-size:14px}.qsd-error[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px}mat-dialog-actions[_ngcontent-%COMP%]{gap:8px}mat-dialog-actions[_ngcontent-%COMP%] button[mat-flat-button][_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px}'],changeDetection:0})};var tn=(a,t)=>t.id;function nn(a,t){if(a&1){let e=x();o(0,"button",9),m("click",function(){let i=g(e).$implicit,l=d(2);return h(l.setProject(i))}),s(1),r()}if(a&2){let e=t.$implicit,n=d(2);S("active",n.activeProject()===e),c(),P(" ",e," ")}}function on(a,t){if(a&1){let e=x();o(0,"nav",2)(1,"button",9),m("click",function(){g(e);let i=d();return h(i.setProject(null))}),s(2," All projects "),r(),y(3,nn,2,3,"button",10,j),r()}if(a&2){let e=d();c(),S("active",e.activeProject()===null),c(2),M(e.projects())}}function rn(a,t){a&1&&(o(0,"div",3),T(1,"mat-spinner",11),r())}function an(a,t){if(a&1&&(o(0,"div",4)(1,"mat-icon"),s(2,"error"),r(),s(3),r()),a&2){let e=d();c(3),P(" ",e.errorMessage()," ")}}function ln(a,t){if(a&1){let e=x();o(0,"div",5)(1,"mat-icon"),s(2,"schedule"),r(),o(3,"p"),s(4,"No scheduled tasks yet."),r(),o(5,"button",12),m("click",function(){g(e);let i=d();return h(i.openCreate())}),o(6,"mat-icon"),s(7,"add"),r(),s(8," Create one "),r()()}}function sn(a,t){if(a&1&&(o(0,"span",17),s(1),r()),a&2){let e=d().$implicit;c(),b(e.projectName)}}function cn(a,t){if(a&1){let e=x();o(0,"li",14)(1,"div",15)(2,"span",16),s(3),r(),v(4,sn,2,1,"span",17),o(5,"span",18),s(6),r()(),o(7,"div",19)(8,"span",20),s(9),r(),o(10,"span",21),s(11),r()(),o(12,"div",22)(13,"mat-slide-toggle",23),m("change",function(){let i=g(e).$implicit,l=d(2);return h(l.toggleEnabled(i))}),r(),o(14,"button",24),m("click",function(){let i=g(e).$implicit,l=d(2);return h(l.runNow(i))}),o(15,"mat-icon"),s(16,"play_arrow"),r()(),o(17,"button",25),m("click",function(){let i=g(e).$implicit,l=d(2);return h(l.edit(i))}),o(18,"mat-icon"),s(19,"edit"),r()(),o(20,"button",26),m("click",function(){let i=g(e).$implicit,l=d(2);return h(l.delete(i))}),o(21,"mat-icon"),s(22,"delete"),r()()()()}if(a&2){let e=t.$implicit,n=d(2);S("disabled",!e.enabled),c(3),b(e.name),c(),C(n.projects().length>1?4:-1),c(2),b(n.getSource(e)),c(3),b(n.formatInterval(e.schedule.interval)),c(),S("due",!e.nextRun),c(),b(n.formatNextRun(e.nextRun)),c(2),_("checked",e.enabled)}}function dn(a,t){if(a&1&&(o(0,"ul",6),y(1,cn,23,10,"li",13,tn),r()),a&2){let e=d();c(),M(e.filteredSchedulers())}}var be=class a{projectApi=f(U);schedulerApi=f(_e);dialog=f(L);dialogRef=f($);allSchedulers=u([]);isLoading=u(!0);errorMessage=u("");activeProject=u(null);projects=u([]);filteredSchedulers=k(()=>{let t=this.activeProject(),e=this.allSchedulers();return t?e.filter(n=>n.projectName===t):e});ngOnInit(){this.load()}load(){this.isLoading.set(!0),this.errorMessage.set(""),this.projectApi.listProjects().subscribe({next:({projects:t})=>{let e=t.map(i=>i.name).filter(i=>!i.includes("__"));if(this.projects.set(e),e.length===0){this.isLoading.set(!1);return}let n=e.map(i=>this.schedulerApi.listSchedulersForProject(i).pipe(Ee(()=>Pe([]))));Oe(n).subscribe({next:i=>{let l=[];i.forEach((p,ie)=>{p.forEach(te=>l.push(G(F({},te),{projectName:e[ie]})))}),this.allSchedulers.set(l),this.isLoading.set(!1)},error:()=>{this.errorMessage.set("Failed to load schedulers"),this.isLoading.set(!1)}})},error:()=>{this.errorMessage.set("Failed to load projects"),this.isLoading.set(!1)}})}setProject(t){this.activeProject.set(t)}formatInterval(t){let e=/^(\d+)(min|h|d|M)$/.exec(t);if(!e)return t;let[,n,i]=e;return`Every ${n}${{min:"min",h:"h",d:"d",M:"mo"}[i??""]??i}`}formatNextRun(t){if(!t)return"Expired";let e=new Date(t),n=new Date,i=e.getTime()-n.getTime();if(i<0)return"Due";let l=Math.floor(i/6e4);if(l<60)return`in ${l}m`;let p=Math.floor(l/60);return p<24?`in ${p}h`:`in ${Math.floor(p/24)}d`}getSource(t){if(t.agentName&&t.instruction){let e=t.instruction.length>35?t.instruction.slice(0,35)+"\u2026":t.instruction;return`${t.agentName}: ${e}`}return t.promptId??""}toggleEnabled(t){(t.enabled?this.schedulerApi.disableSchedulerForProject(t.projectName,t.id):this.schedulerApi.enableSchedulerForProject(t.projectName,t.id)).subscribe({next:()=>{this.allSchedulers.update(n=>n.map(i=>i.id===t.id?G(F({},i),{enabled:!i.enabled}):i))},error:()=>this.errorMessage.set("Failed to toggle scheduler")})}runNow(t){this.schedulerApi.runSchedulerNowForProject(t.projectName,t.id).subscribe({error:()=>this.errorMessage.set("Failed to run scheduler")})}edit(t){let e={mode:"edit",projectName:t.projectName,scheduler:{id:t.id,name:t.name,agentName:t.agentName,instruction:t.instruction,enabled:t.enabled,schedule:t.schedule}};this.dialog.open(R,{width:"480px",data:e}).afterClosed().subscribe(i=>{i&&this.load()})}delete(t){this.schedulerApi.deleteSchedulerForProject(t.projectName,t.id).subscribe({next:()=>{this.allSchedulers.update(e=>e.filter(n=>n.id!==t.id))},error:()=>this.errorMessage.set("Failed to delete scheduler")})}openCreate(){this.dialogRef.close(),this.dialog.open(R,{width:"480px"})}close(){this.dialogRef.close()}static \u0275fac=function(e){return new(e||a)};static \u0275cmp=D({type:a,selectors:[["app-global-schedulers-dialog"]],decls:19,vars:3,consts:[["mat-dialog-title",""],[1,"gsd-count"],[1,"gsd-project-filters"],[1,"gsd-loading"],[1,"gsd-error"],[1,"gsd-empty"],[1,"gsd-list"],["align","end"],["mat-button","",3,"click"],[1,"proj-chip",3,"click"],[1,"proj-chip",3,"active"],["diameter","32"],["mat-flat-button","",3,"click"],[1,"gsd-item",3,"disabled"],[1,"gsd-item"],[1,"gsd-item-main"],[1,"gsd-item-name"],[1,"gsd-item-project"],[1,"gsd-item-source"],[1,"gsd-item-meta"],[1,"gsd-interval"],[1,"gsd-next"],[1,"gsd-item-actions"],["matTooltip","Enable / Disable",3,"change","checked"],["mat-icon-button","","matTooltip","Run now",3,"click"],["mat-icon-button","","matTooltip","Edit",3,"click"],["mat-icon-button","","matTooltip","Delete",1,"delete-btn",3,"click"]],template:function(e,n){e&1&&(o(0,"h2",0)(1,"mat-icon"),s(2,"schedule"),r(),s(3," Scheduled tasks "),o(4,"span",1),s(5),r()(),o(6,"mat-dialog-content"),v(7,on,5,2,"nav",2),v(8,rn,2,0,"div",3)(9,an,4,1,"div",4)(10,ln,9,0,"div",5)(11,dn,3,0,"ul",6),r(),o(12,"mat-dialog-actions",7)(13,"button",8),m("click",function(){return n.openCreate()}),o(14,"mat-icon"),s(15,"add"),r(),s(16," New scheduler "),r(),o(17,"button",8),m("click",function(){return n.close()}),s(18,"Close"),r()()),e&2&&(c(5),b(n.filteredSchedulers().length),c(2),C(n.projects().length>1?7:-1),c(),C(n.isLoading()?8:n.errorMessage()?9:n.filteredSchedulers().length===0?10:11))},dependencies:[K,W,q,z,B,E,O,re,A,N,V,I,ee,se,le,ht,gt],styles:["[_nghost-%COMP%]{display:block}h2[mat-dialog-title][_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}h2[mat-dialog-title][_ngcontent-%COMP%] .gsd-count[_ngcontent-%COMP%]{font-size:13px;font-weight:400;color:var(--mat-sys-on-surface-variant);margin-left:2px}.gsd-project-filters[_ngcontent-%COMP%]{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.proj-chip[_ngcontent-%COMP%]{padding:4px 12px;border-radius:16px;border:1px solid var(--mat-sys-outline);background:transparent;color:var(--mat-sys-on-surface);font-size:13px;cursor:pointer;transition:background .15s,color .15s}.proj-chip.active[_ngcontent-%COMP%]{background:var(--mat-sys-primary);color:var(--mat-sys-on-primary);border-color:var(--mat-sys-primary)}.proj-chip[_ngcontent-%COMP%]:hover:not(.active){background:var(--mat-sys-surface-variant)}.gsd-loading[_ngcontent-%COMP%], .gsd-empty[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:32px 0;color:var(--mat-sys-on-surface-variant)}.gsd-loading[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%], .gsd-empty[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:40px;width:40px;height:40px;opacity:.4}.gsd-error[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;color:var(--mat-sys-error);padding:16px 0}.gsd-list[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.gsd-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;background:var(--mat-sys-surface-container);transition:opacity .2s}.gsd-item.disabled[_ngcontent-%COMP%]{opacity:.5}.gsd-item-main[_ngcontent-%COMP%]{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.gsd-item-name[_ngcontent-%COMP%]{font-weight:500;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gsd-item-project[_ngcontent-%COMP%]{font-size:11px;color:var(--mat-sys-primary);font-weight:500}.gsd-item-source[_ngcontent-%COMP%]{font-size:12px;color:var(--mat-sys-on-surface-variant);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gsd-item-meta[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-end;gap:2px;white-space:nowrap}.gsd-interval[_ngcontent-%COMP%]{font-size:12px;color:var(--mat-sys-on-surface-variant)}.gsd-next[_ngcontent-%COMP%]{font-size:11px;color:var(--mat-sys-on-surface-variant)}.gsd-next.due[_ngcontent-%COMP%]{color:var(--mat-sys-error)}.gsd-item-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:4px}.gsd-item-actions[_ngcontent-%COMP%] .delete-btn[_ngcontent-%COMP%]{color:var(--mat-sys-error);opacity:.7;transition:opacity .15s}.gsd-item-actions[_ngcontent-%COMP%] .delete-btn[_ngcontent-%COMP%]:hover{opacity:1}mat-dialog-actions[_ngcontent-%COMP%]{gap:8px}"],changeDetection:0})};var ve=class a{http=f(Ge);threadApi=f(ze);isLoading=u(!1);tasks=u([]);refresh(){this.isLoading.set(!0),this.threadApi.listAllThreads().pipe(De(15e3)).subscribe({next:t=>{let e=t.filter(n=>!n.parentThreadId).map(n=>({id:n.id,name:n.name,summary:n.summary,modifiedDate:n.modifiedDate,starring:n.starring??[],users:n.users??[],isActive:!1,status:this.deriveStatus(n),projectId:n.projectId,worktreeProject:n.worktreeProject}));this.tasks.set(this.sorted(e)),this.isLoading.set(!1)},error:()=>{this.isLoading.set(!1)}})}applyStatusEvent(t,e){let n=e==="invite"?"waiting-you":"in-progress";this.tasks.update(i=>this.sorted(i.map(l=>l.id===t?G(F({},l),{status:n}):l)))}closeTask(t,e){this.tasks.update(n=>n.filter(i=>i.id!==e)),this.http.delete(`/api/projects/${t}/missions/${e}`).subscribe({next:()=>this.refresh(),error:n=>{console.error("[GLOBAL-TC] Failed to close task:",n),this.refresh()}})}stopThread(t,e){this.http.post(`/api/projects/${t}/threads/${e}/stop`,{}).subscribe({error:n=>console.error("[GLOBAL-TC] Failed to stop thread:",n)})}deleteThread(t,e){this.tasks.update(n=>n.filter(i=>i.id!==e)),this.http.delete(`/api/projects/${t}/threads/${e}`).subscribe({next:()=>this.refresh(),error:n=>{console.error("[GLOBAL-TC] Failed to delete thread:",n),this.refresh()}})}toggleStar(t,e,n){let i=`/api/projects/${t}/threads/${e}/star`;(n?this.http.delete(i):this.http.post(i,{})).subscribe({next:()=>this.refresh(),error:p=>console.error("[GLOBAL-TC] Failed to toggle star:",p)})}markTaskDone(t,e){this.http.post(`/api/projects/${t}/threads/${e}/done`,{}).subscribe({next:()=>this.refresh(),error:n=>console.error("[GLOBAL-TC] Failed to mark task as done:",n)})}markTaskActive(t,e){this.http.delete(`/api/projects/${t}/threads/${e}/done`).subscribe({next:()=>this.refresh(),error:n=>console.error("[GLOBAL-TC] Failed to mark task as active:",n)})}deriveStatus(t){return t.closedByUser?"done":t.pendingInvite?"waiting-you":Date.now()-new Date(t.modifiedDate).getTime()<vt?"in-progress":"paused"}sorted(t){return[...t].sort((e,n)=>{let i=ye[e.status]-ye[n.status];return i!==0?i:e.modifiedDate>n.modifiedDate?-1:1})}static \u0275fac=function(e){return new(e||a)};static \u0275prov=oe({token:a,factory:a.\u0275fac,providedIn:"root"})};var Ce=class a{configApi=f(Ct);dialog=f(L);openUserConfigEditor(){this.configApi.getUserConfig().subscribe({next:t=>{this.dialog.open(xt,{data:{configType:"user",initialContent:JSON.stringify(t,null,2)}}).afterClosed().subscribe(n=>{n&&this.configApi.updateUserConfig(n).subscribe({error:i=>console.error("[CONFIG-STATE] Error saving user config:",i)})})},error:t=>console.error("[CONFIG-STATE] Error loading user config:",t)})}static \u0275fac=function(e){return new(e||a)};static \u0275prov=oe({token:a,factory:a.\u0275fac,providedIn:"root"})};var pn=["layoutContainer"],mn=(a,t)=>t.key,un=(a,t)=>t.name,gn=(a,t)=>t.status,Tt=(a,t)=>t.id;function hn(a,t){if(a&1){let e=x();o(0,"button",32),m("click",function(){g(e);let i=d();return h(i.clearSearch())}),o(1,"mat-icon"),s(2,"close"),r()()}}function _n(a,t){if(a&1){let e=x();o(0,"button",33),m("click",function(){let i=g(e).$implicit,l=d(2);return h(l.setProject(i.name))}),s(1),o(2,"span",34),s(3),r()()}if(a&2){let e=t.$implicit,n=d(2);S("active",n.activeProject()===e.name),c(),P(" ",e.name," "),c(2),b(e.count)}}function fn(a,t){if(a&1){let e=x();o(0,"nav",22)(1,"button",33),m("click",function(){g(e);let i=d();return h(i.setProject(null))}),s(2," All projects "),o(3,"span",34),s(4),r()(),y(5,_n,4,4,"button",35,un),r()}if(a&2){let e=d();c(),S("active",e.activeProject()===null),c(3),b(e.allTasks().length),c(),M(e.projectSummaries())}}function bn(a,t){if(a&1&&(o(0,"span",37),s(1),r()),a&2){let e=d().$implicit,n=d();c(),b(n.filterCounts()[e.key])}}function vn(a,t){if(a&1){let e=x();o(0,"button",36),m("click",function(){let i=g(e).$implicit,l=d();return h(l.setFilter(i.key))}),o(1,"mat-icon",26),s(2),r(),o(3,"span"),s(4),r(),v(5,bn,2,1,"span",37),r()}if(a&2){let e=t.$implicit,n=d();S("active",n.activeFilter()===e.key),ke("aria-selected",n.activeFilter()===e.key),c(2),b(e.icon),c(2),b(e.label),c(),C(n.filterCounts()[e.key]>0?5:-1)}}function Cn(a,t){a&1&&(o(0,"div",29),T(1,"mat-spinner",38),o(2,"p"),s(3,"Loading tasks from all projects\u2026"),r()())}function xn(a,t){a&1&&(o(0,"div",30)(1,"mat-icon",39),s(2,"hub"),r(),o(3,"p"),s(4,"No tasks found."),r()())}function kn(a,t){if(a&1){let e=x();o(0,"app-task-card",45),m("stopRequested",function(i){let l=g(e).$implicit,p=d(3);return h(p.onStopRequested(i,l.projectId))})("deleteRequested",function(i){let l=g(e).$implicit,p=d(3);return h(p.onDeleteRequested(i,l.projectId))})("starToggled",function(i){let l=g(e).$implicit,p=d(3);return h(p.onStarToggled(i,l.projectId))})("closeTaskRequested",function(i){let l=g(e).$implicit,p=d(3);return h(p.onCloseTaskRequested(i,l.projectId))})("markDoneRequested",function(i){let l=g(e).$implicit,p=d(3);return h(p.onMarkDoneRequested(i,l.projectId))})("markActiveRequested",function(i){let l=g(e).$implicit,p=d(3);return h(p.onMarkActiveRequested(i,l.projectId))})("previewRequested",function(i){let l=g(e).$implicit,p=d(3);return h(p.onPreviewRequested(i,l.projectId,l.name))}),r()}if(a&2){let e=t.$implicit,n=d(3);S("is-previewed",n.previewThreadId()===e.id),_("task",e)("projectNameOverride",e.projectId)("showProject",!0)("previewMode",n.previewActive())}}function yn(a,t){if(a&1&&(o(0,"section",40)(1,"h3",41)(2,"mat-icon",42),s(3),r(),s(4),o(5,"span",43),s(6),r()(),o(7,"div",31),y(8,kn,1,6,"app-task-card",44,Tt),r()()),a&2){let e=t.$implicit;c(3),b(e.icon),c(),P(" ",e.label," "),c(2),b(e.tasks.length),c(2),M(e.tasks)}}function Mn(a,t){if(a&1&&y(0,yn,10,3,"section",40,gn),a&2){let e=d();M(e.taskGroups())}}function Sn(a,t){if(a&1){let e=x();o(0,"app-task-card",45),m("stopRequested",function(i){let l=g(e).$implicit,p=d(2);return h(p.onStopRequested(i,l.projectId))})("deleteRequested",function(i){let l=g(e).$implicit,p=d(2);return h(p.onDeleteRequested(i,l.projectId))})("starToggled",function(i){let l=g(e).$implicit,p=d(2);return h(p.onStarToggled(i,l.projectId))})("closeTaskRequested",function(i){let l=g(e).$implicit,p=d(2);return h(p.onCloseTaskRequested(i,l.projectId))})("markDoneRequested",function(i){let l=g(e).$implicit,p=d(2);return h(p.onMarkDoneRequested(i,l.projectId))})("markActiveRequested",function(i){let l=g(e).$implicit,p=d(2);return h(p.onMarkActiveRequested(i,l.projectId))})("previewRequested",function(i){let l=g(e).$implicit,p=d(2);return h(p.onPreviewRequested(i,l.projectId,l.name))}),r()}if(a&2){let e=t.$implicit,n=d(2);S("is-previewed",n.previewThreadId()===e.id),_("task",e)("projectNameOverride",e.projectId)("showProject",!0)("previewMode",n.previewActive())}}function Tn(a,t){if(a&1&&(o(0,"div",31),y(1,Sn,1,6,"app-task-card",44,Tt),r()),a&2){let e=d();c(),M(e.displayedTasks())}}function wn(a,t){if(a&1){let e=x();o(0,"div",46),m("mousedown",function(i){g(e);let l=d();return h(l.onResizerMousedown(i))}),r(),o(1,"div",47)(2,"header",48)(3,"span",49),s(4),r(),o(5,"div",50)(6,"button",51),m("click",function(){g(e);let i=d();return h(i.navigateToThread())}),o(7,"mat-icon"),s(8,"open_in_new"),r()(),o(9,"button",52),m("click",function(){g(e);let i=d();return h(i.closePreview())}),o(10,"mat-icon"),s(11,"close"),r()()()(),o(12,"div",53),T(13,"app-thread",54),r()()}if(a&2){let e=d();c(),Fe("width",e.previewPanelWidthPercent(),"%"),c(3),b(e.previewTaskName()||"Task"),c(9),_("projectName",e.previewProjectId())("threadId",e.previewThreadId())}}var Pn=20,Dn=70,jn=[{status:"waiting-you",label:"Waiting for you",icon:"mark_unread_chat_alt"},{status:"in-progress",label:"In progress",icon:"pending"},{status:"paused",label:"Paused",icon:"pause_circle"},{status:"error",label:"Error",icon:"error"},{status:"done",label:"Done",icon:"check_circle"}],On=[{key:"all",label:"All",icon:"grid_view"},{key:"waiting-you",label:"Waiting for you",icon:"mark_unread_chat_alt"},{key:"in-progress",label:"In progress",icon:"pending"},{key:"paused",label:"Paused",icon:"pause_circle"},{key:"done",label:"Done",icon:"check_circle"}],St=class a{globalTaskService=f(ve);destroyRef=f(Ne);dialog=f(L);router=f(Re);configState=f(Ce);userService=f(Qe);preferences=f(Ue);projectState=f(ae);threadState=f(We);breakpointObserver=f(Le);username=Q(this.userService.username$,{initialValue:null});isDesktop=Q(this.breakpointObserver.observe("(min-width: 1280px)").pipe(je(t=>t.matches)),{initialValue:!1});previewEnabled=Q(this.preferences.missionPreviewEnabled$,{initialValue:!1});previewActive=k(()=>this.previewEnabled()&&this.isDesktop());previewThreadId=u(null);previewProjectId=u(null);previewTaskName=u(null);previewPanelWidthPercent=u(this.preferences.getMissionPreviewPanelWidth());isDraggingResizer=!1;dragStartX=0;dragStartWidth=0;containerWidth=0;layoutContainerRef;globalEventSource=null;filters=On;activeFilter=u("all");starredOnly=u(!1);activeProject=u(null);searchQuery=u("");isLoading=this.globalTaskService.isLoading;allTasks=this.globalTaskService.tasks;projectSummaries=k(()=>{let t=this.allTasks(),e=new Map;for(let n of t)e.set(n.projectId,(e.get(n.projectId)??0)+1);return[...e.entries()].map(([n,i])=>({name:n,count:i})).sort((n,i)=>n.name.localeCompare(i.name))});filteredTasks=k(()=>{let t=this.allTasks(),e=this.activeProject();e&&(t=t.filter(l=>l.projectId===e));let n=this.username();this.starredOnly()&&n&&(t=t.filter(l=>l.starring.includes(n)));let i=this.activeFilter();return i!=="all"&&(t=t.filter(l=>l.status===i)),t});filterCounts=k(()=>{let t=this.allTasks(),e=this.activeProject();e&&(t=t.filter(i=>i.projectId===e));let n=this.username();return this.starredOnly()&&n&&(t=t.filter(i=>i.starring.includes(n))),{all:t.length,"waiting-you":t.filter(i=>i.status==="waiting-you").length,"in-progress":t.filter(i=>i.status==="in-progress").length,done:t.filter(i=>i.status==="done").length,paused:t.filter(i=>i.status==="paused").length,error:t.filter(i=>i.status==="error").length}});displayedTasks=k(()=>{let t=this.searchQuery().toLowerCase().trim(),e=this.sortedFilteredTasks();return t?e.filter(n=>(n.name||"").toLowerCase().includes(t)||(n.summary||"").toLowerCase().includes(t)):e});taskGroups=k(()=>{let t=this.displayedTasks();return jn.map(e=>G(F({},e),{tasks:t.filter(n=>n.status===e.status)})).filter(e=>e.tasks.length>0)});sortedFilteredTasks=k(()=>{let t=this.filteredTasks(),e={"waiting-you":0,"in-progress":1,paused:2,error:3,done:4};return[...t].sort((n,i)=>(e[n.status]??99)-(e[i.status]??99))});constructor(){this.destroyRef.onDestroy(()=>this.disconnectGlobalSse())}ngOnInit(){this.globalTaskService.refresh(),this.connectGlobalSse(),this.userService.fetchCurrentUser().pipe(Be(this.destroyRef)).subscribe({error:t=>console.warn("[GTC] Could not fetch user:",t)})}setFilter(t){this.activeFilter.set(t)}toggleStarredFilter(){this.starredOnly.update(t=>!t)}setProject(t){this.activeProject.set(t),this.activeFilter.set("all")}onSearchInput(t){this.searchQuery.set(t.target.value)}clearSearch(){this.searchQuery.set("")}refresh(){this.globalTaskService.refresh()}openPreferences(){this.dialog.open(ft,{width:"400px"})}openTokenUsage(){this.router.navigate(["/token-usage"])}openUserConfig(){this.configState.openUserConfigEditor()}openQuickSchedulerDialog(){this.dialog.open(R,{width:"480px",disableClose:!1})}openGlobalSchedulersDialog(){this.dialog.open(be,{width:"600px",maxHeight:"80vh"})}openNewTaskDialog(){this.dialog.open(fe,{width:"500px",disableClose:!1}).afterClosed().subscribe(e=>{e&&(e.navigate?this.router.navigate(["project",e.projectId]):(setTimeout(()=>this.globalTaskService.refresh(),300),setTimeout(()=>this.globalTaskService.refresh(),1500)))})}onStopRequested(t,e){this.globalTaskService.stopThread(e,t)}onDeleteRequested(t,e){this.globalTaskService.deleteThread(e,t)}onStarToggled(t,e){let n=this.allTasks().find(p=>p.id===t);if(!n)return;let i=this.username(),l=!!i&&n.starring.includes(i);this.globalTaskService.toggleStar(e,t,l)}onCloseTaskRequested(t,e){let i=this.allTasks().find(p=>p.id===t)?.worktreeProject??e;this.dialog.open(_t,{width:"420px",data:{title:"Close task",message:`This will stop the agent, delete the thread and remove the worktree project "${i}" from disk. This cannot be undone.`,confirmLabel:"Close task",cancelLabel:"Cancel"}}).afterClosed().subscribe(p=>{p&&this.globalTaskService.closeTask(e,t)})}onMarkDoneRequested(t,e){this.globalTaskService.markTaskDone(e,t)}onMarkActiveRequested(t,e){this.globalTaskService.markTaskActive(e,t)}onPreviewRequested(t,e,n){this.previewThreadId()===t?(this.previewThreadId.set(null),this.previewProjectId.set(null),this.previewTaskName.set(null)):(this.projectState.selectProject(e),this.threadState.selectThread(t),this.previewProjectId.set(e),this.previewThreadId.set(t),this.previewTaskName.set(n))}closePreview(){this.previewThreadId.set(null),this.previewProjectId.set(null),this.previewTaskName.set(null)}navigateToThread(){let t=this.previewThreadId(),e=this.previewProjectId();!t||!e||this.router.navigate(["project",e,"thread",t])}onResizerMousedown(t){t.preventDefault(),this.isDraggingResizer=!0,this.dragStartX=t.clientX,this.dragStartWidth=this.previewPanelWidthPercent(),this.containerWidth=this.layoutContainerRef?.nativeElement.offsetWidth??window.innerWidth}onDocumentMousemove(t){if(!this.isDraggingResizer)return;let n=(this.dragStartX-t.clientX)/this.containerWidth*100,i=Math.min(Dn,Math.max(Pn,this.dragStartWidth+n));this.previewPanelWidthPercent.set(i)}onDocumentMouseup(){this.isDraggingResizer&&(this.isDraggingResizer=!1,this.preferences.setMissionPreviewPanelWidth(this.previewPanelWidthPercent()))}connectGlobalSse(t=5e3){this.disconnectGlobalSse();let e=new EventSource("/api/event-stream");this.globalEventSource=e,e.onmessage=n=>{try{let i=JSON.parse(n.data),l=dt(i);if(!l)return;let p=l.threadId;if(!p)return;l instanceof at||l instanceof lt?this.globalTaskService.applyStatusEvent(p,"invite"):l instanceof st?this.globalTaskService.applyStatusEvent(p,"thinking"):l instanceof ct&&this.globalTaskService.refresh()}catch(i){}},e.onerror=()=>{e.readyState===EventSource.CLOSED&&(this.globalEventSource=null,setTimeout(()=>{this.globalEventSource||this.connectGlobalSse(Math.min(t*2,6e4))},t))}}disconnectGlobalSse(){this.globalEventSource&&(this.globalEventSource.close(),this.globalEventSource=null)}static \u0275fac=function(e){return new(e||a)};static \u0275cmp=D({type:a,selectors:[["app-global-task-control"]],viewQuery:function(e,n){if(e&1&&Ae(pn,5),e&2){let i;Ie(i=Ve())&&(n.layoutContainerRef=i.first)}},hostBindings:function(e,n){e&1&&m("mousemove",function(l){return n.onDocumentMousemove(l)},xe)("mouseup",function(){return n.onDocumentMouseup()},xe)},decls:85,vars:11,consts:[["layoutContainer",""],["schedulerMenu","matMenu"],["controlCenterMenu","matMenu"],[1,"gtc"],[1,"gtc-toolbar"],[1,"gtc-toolbar-left"],[1,"gtc-logo-icon"],[1,"gtc-title"],["appearance","fill","subscriptSizing","dynamic",1,"gtc-search"],["matPrefix",""],["matInput","","type","search","placeholder","Filter tasks\u2026","autocomplete","off",3,"input","keydown.escape","value"],["matSuffix","","mat-icon-button","","aria-label","Clear"],[1,"gtc-toolbar-actions"],["mat-icon-button","","matTooltip","Schedulers","aria-label","Schedulers",3,"matMenuTriggerFor"],["mat-menu-item","",3,"click"],["mat-icon-button","","matTooltip","Control Center","aria-label","Control Center",3,"matMenuTriggerFor"],["mat-menu-item","","href","https://github.com/whoz-oss/coday","target","_blank","rel","noopener noreferrer"],["mat-icon-button","","matTooltip","Refresh all tasks","aria-label","Refresh tasks",3,"click","disabled"],["mat-stroked-button","","routerLink","/projects","aria-label","Manage projects","matTooltip","Manage projects"],[1,"btn-label"],["mat-flat-button","","aria-label","New task","matTooltip","New Task",1,"gtc-new-btn",3,"click"],[1,"gtc-filter-bar"],["aria-label","Filter by project",1,"gtc-project-filters"],["role","tablist","aria-label","Filter by status",1,"gtc-filters"],["role","tab",1,"filter-chip",3,"active"],["role","switch","aria-label","Show starred tasks only",1,"filter-chip","starred-filter",3,"click"],[1,"filter-icon"],[1,"gtc-body"],[1,"gtc-content"],[1,"gtc-loading"],[1,"gtc-empty"],[1,"gtc-grid"],["matSuffix","","mat-icon-button","","aria-label","Clear",3,"click"],[1,"project-chip",3,"click"],[1,"chip-count"],[1,"project-chip",3,"active"],["role","tab",1,"filter-chip",3,"click"],[1,"filter-badge"],["diameter","36"],[1,"empty-icon"],[1,"gtc-group"],[1,"gtc-group-title"],[1,"group-icon"],[1,"group-count"],[3,"task","projectNameOverride","showProject","previewMode","is-previewed"],[3,"stopRequested","deleteRequested","starToggled","closeTaskRequested","markDoneRequested","markActiveRequested","previewRequested","task","projectNameOverride","showProject","previewMode"],["matTooltip","Drag to resize","aria-hidden","true",1,"gtc-resizer",3,"mousedown"],[1,"gtc-preview-pane"],[1,"gtc-preview-header"],[1,"gtc-preview-title"],[1,"gtc-preview-actions"],["matTooltip","Open full view","aria-label","Open thread in full view","type","button",1,"preview-action-btn",3,"click"],["matTooltip","Close panel","aria-label","Close preview panel","type","button",1,"preview-action-btn",3,"click"],[1,"gtc-preview-body","thread-preview-host"],[3,"projectName","threadId"]],template:function(e,n){if(e&1&&(o(0,"div",3,0)(2,"header",4)(3,"div",5)(4,"mat-icon",6),s(5,"hub"),r(),o(6,"h1",7),s(7,"Global Task Control"),r()(),o(8,"mat-form-field",8)(9,"mat-icon",9),s(10,"search"),r(),o(11,"input",10),m("input",function(l){return n.onSearchInput(l)})("keydown.escape",function(){return n.clearSearch()}),r(),v(12,hn,3,0,"button",11),r(),o(13,"div",12)(14,"button",13)(15,"mat-icon"),s(16,"schedule"),r()(),o(17,"mat-menu",null,1)(19,"button",14),m("click",function(){return n.openGlobalSchedulersDialog()}),o(20,"mat-icon"),s(21,"list"),r(),o(22,"span"),s(23,"View schedulers"),r()(),o(24,"button",14),m("click",function(){return n.openQuickSchedulerDialog()}),o(25,"mat-icon"),s(26,"add"),r(),o(27,"span"),s(28,"New scheduler"),r()()(),o(29,"button",15)(30,"mat-icon"),s(31,"hub"),r()(),o(32,"mat-menu",null,2)(34,"button",14),m("click",function(){return n.openPreferences()}),o(35,"mat-icon"),s(36,"tune"),r(),o(37,"span"),s(38,"Preferences"),r()(),o(39,"button",14),m("click",function(){return n.openTokenUsage()}),o(40,"mat-icon"),s(41,"data_usage"),r(),o(42,"span"),s(43,"Token Usage"),r()(),o(44,"button",14),m("click",function(){return n.openUserConfig()}),o(45,"mat-icon"),s(46,"manage_accounts"),r(),o(47,"span"),s(48,"User Configuration"),r()(),T(49,"mat-divider"),o(50,"a",16)(51,"mat-icon"),s(52,"code"),r(),o(53,"span"),s(54,"Contribute on GitHub"),r()()(),o(55,"button",17),m("click",function(){return n.refresh()}),o(56,"mat-icon"),s(57,"refresh"),r()(),o(58,"button",18)(59,"mat-icon"),s(60,"settings"),r(),o(61,"span",19),s(62,"Manage projects"),r()(),o(63,"button",20),m("click",function(){return n.openNewTaskDialog()}),o(64,"mat-icon"),s(65,"rocket_launch"),r(),o(66,"span",19),s(67,"New Task"),r()()()(),o(68,"div",21),v(69,fn,7,3,"nav",22),o(70,"nav",23),y(71,vn,6,6,"button",24,mn),o(73,"button",25),m("click",function(){return n.toggleStarredFilter()}),o(74,"mat-icon",26),s(75,"star"),r(),o(76,"span"),s(77,"Starred"),r()()()(),o(78,"div",27)(79,"main",28),v(80,Cn,4,0,"div",29)(81,xn,5,0,"div",30)(82,Mn,2,0)(83,Tn,3,0,"div",31),r(),v(84,wn,14,5),r()()),e&2){let i=w(18),l=w(33);c(11),_("value",n.searchQuery()),c(),C(n.searchQuery()?12:-1),c(2),_("matMenuTriggerFor",i),c(15),_("matMenuTriggerFor",l),c(26),_("disabled",n.isLoading()),c(14),C(n.projectSummaries().length>1?69:-1),c(2),M(n.filters),c(2),S("active",n.starredOnly()),ke("aria-checked",n.starredOnly()),c(7),C(n.isLoading()?80:n.displayedTasks().length===0?81:n.activeFilter()==="all"&&!n.searchQuery()?82:83),c(4),C(n.previewActive()&&n.previewThreadId()&&n.previewProjectId()?84:-1)}},dependencies:[pt,bt,A,N,E,O,re,se,le,V,I,Ke,Xe,He,Je,Ze,Ye,J,X,et,H,Z,Y,$e],styles:[".glass-panel[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.glass-interactive[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-interactive[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-interactive[_ngcontent-%COMP%]:active{transform:translateY(0)}.glass-card[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:20px;padding:1.5rem}.glass-button[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-button[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-button[_ngcontent-%COMP%]:active{transform:translateY(0)}.glass-button[_ngcontent-%COMP%]{border-radius:12px;padding:.75rem 1.5rem;font-weight:600;cursor:pointer}.glass-button[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed;transform:none}.glass-button[_ngcontent-%COMP%]:disabled:hover{transform:none}.smooth-theme-transition[_ngcontent-%COMP%]{transition:background .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}[_nghost-%COMP%]{display:block;width:100%;height:100%;overflow:hidden}.gtc[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;overflow:hidden}.gtc-toolbar[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:0 .75rem;height:56px;flex-shrink:0;border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .1));box-sizing:border-box}.gtc-toolbar-left[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;flex-shrink:0}.gtc-logo-icon[_ngcontent-%COMP%]{font-size:1.25rem;width:1.25rem;height:1.25rem;color:var(--color-primary)}.gtc-title[_ngcontent-%COMP%]{margin:0;font-size:1rem;font-weight:600;color:var(--color-text);white-space:nowrap}.gtc-search[_ngcontent-%COMP%]{margin-left:auto;flex:0 1 240px;min-width:80px;--mat-form-field-container-height: 36px;--mat-form-field-container-vertical-padding: 6px;font-size:.875rem;--mdc-filled-text-field-container-color: transparent;--mdc-filled-text-field-hover-container-color: transparent;--mdc-filled-text-field-focus-container-color: transparent;--mdc-filled-text-field-active-indicator-color: transparent;--mdc-filled-text-field-hover-active-indicator-color: transparent;--mdc-filled-text-field-focus-active-indicator-color: transparent;--mdc-filled-text-field-active-indicator-height: 0}.gtc-toolbar-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;flex-shrink:0}.gtc-new-btn[_ngcontent-%COMP%]{background:var(--color-primary);color:var(--color-text-inverse);border-radius:12px;font-weight:600;height:36px;padding:0 1rem}.gtc-new-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.1rem;width:1.1rem;height:1.1rem}@media(max-width:600px){.gtc-toolbar[_ngcontent-%COMP%]{flex-wrap:wrap;height:auto;min-height:48px;padding:.5rem .75rem;gap:.375rem}.gtc-title[_ngcontent-%COMP%]{font-size:.875rem}.gtc-search[_ngcontent-%COMP%]{order:3;flex:1 1 100%;min-width:0;margin-left:0}.gtc-toolbar-actions[_ngcontent-%COMP%]{margin-left:auto}.btn-label[_ngcontent-%COMP%]{display:none}.gtc-toolbar-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:not(mat-icon-button):not([mat-icon-button]){--mdc-text-button-container-height: 36px;--mdc-filled-button-container-height: 36px;--mdc-outlined-button-container-height: 36px;min-width:36px;width:36px;height:36px;padding:0;border-radius:50%!important}.gtc-toolbar-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:not(mat-icon-button):not([mat-icon-button]) .mat-mdc-button-touch-target[_ngcontent-%COMP%]{width:36px;height:36px}.gtc-toolbar-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:not(mat-icon-button):not([mat-icon-button]) mat-icon[_ngcontent-%COMP%]{margin:0!important}}.gtc-filter-bar[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem;padding:.5rem .75rem;flex-shrink:0;border-bottom:1px solid var(--color-border, rgba(0, 0, 0, .08))}.gtc-project-filters[_ngcontent-%COMP%]{display:flex;gap:.375rem;flex-wrap:wrap}.project-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.375rem;padding:.2rem .65rem;border-radius:100px;font-size:.75rem;font-weight:500;color:var(--color-text-secondary);background:transparent;border:1px solid var(--color-border);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease;white-space:nowrap}.project-chip[_ngcontent-%COMP%] .chip-count[_ngcontent-%COMP%]{background:var(--color-bg-hover);border-radius:100px;padding:0 .3rem;font-size:.68rem;font-weight:700;min-width:16px;text-align:center;line-height:16px}.project-chip.active[_ngcontent-%COMP%]{background:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.project-chip.active[_ngcontent-%COMP%] .chip-count[_ngcontent-%COMP%]{background:#ffffff40;color:var(--color-text-inverse)}.project-chip[_ngcontent-%COMP%]:hover:not(.active){background:var(--color-bg-hover);color:var(--color-text)}.gtc-filters[_ngcontent-%COMP%]{display:flex;gap:.375rem;flex-wrap:wrap}.filter-chip[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);display:flex;align-items:center;gap:.375rem;padding:.3rem .75rem;border-radius:100px;font-size:.8rem;font-weight:500;color:var(--color-text-secondary);cursor:pointer;border:1px solid var(--color-border);transition:background .15s ease,color .15s ease,border-color .15s ease;white-space:nowrap}.filter-chip[_ngcontent-%COMP%] .filter-icon[_ngcontent-%COMP%]{font-size:.9rem;width:.9rem;height:.9rem}.filter-chip[_ngcontent-%COMP%] .filter-badge[_ngcontent-%COMP%]{background:var(--color-primary);color:var(--color-text-inverse);border-radius:100px;padding:0 .375rem;font-size:.7rem;font-weight:700;min-width:18px;text-align:center;line-height:18px}.filter-chip.active[_ngcontent-%COMP%]{background:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.filter-chip.active[_ngcontent-%COMP%] .filter-icon[_ngcontent-%COMP%]{color:var(--color-text-inverse)}.filter-chip.active[_ngcontent-%COMP%] .filter-badge[_ngcontent-%COMP%]{background:#ffffff40;color:var(--color-text-inverse)}.filter-chip[_ngcontent-%COMP%]:hover:not(.active){background:var(--color-bg-hover);color:var(--color-text)}.starred-filter.active[_ngcontent-%COMP%]{background:#f5a62326;border-color:#f5a623;color:#f5a623}.starred-filter.active[_ngcontent-%COMP%] .filter-icon[_ngcontent-%COMP%]{color:#f5a623}.gtc-body[_ngcontent-%COMP%]{display:flex;flex-direction:row;flex:1;overflow:hidden;min-height:0}.gtc-content[_ngcontent-%COMP%]{flex:1;overflow-y:auto;padding:1rem 1rem 2rem;min-width:0}.gtc-resizer[_ngcontent-%COMP%]{width:6px;flex-shrink:0;cursor:col-resize;background:transparent;border-left:1px solid var(--color-border);border-right:1px solid var(--color-border);transition:background .15s ease}.gtc-resizer[_ngcontent-%COMP%]:hover, .gtc-resizer[_ngcontent-%COMP%]:active{background:var(--color-primary);opacity:.4}.gtc-preview-pane[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;overflow:hidden;flex-shrink:0;min-width:280px;border-left:1px solid var(--color-border);background:var(--glass-bg)}.gtc-preview-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.625rem .75rem .625rem 1rem;border-bottom:1px solid var(--color-border);flex-shrink:0}.gtc-preview-title[_ngcontent-%COMP%]{font-size:.875rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.gtc-preview-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.125rem;flex-shrink:0}.preview-action-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:6px;background:transparent;cursor:pointer;transition:background .15s ease}.preview-action-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px;line-height:18px;vertical-align:middle;color:var(--color-text-secondary)}.preview-action-btn[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover)}.preview-action-btn[_ngcontent-%COMP%]:hover mat-icon[_ngcontent-%COMP%]{color:var(--color-text)}.gtc-preview-body[_ngcontent-%COMP%]{flex:1;overflow:hidden;display:flex;flex-direction:column;min-height:0}.gtc-preview-body[_ngcontent-%COMP%] app-thread[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0} app-task-card.is-previewed .task-card{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary)}.gtc-group[_ngcontent-%COMP%]{margin-bottom:1.25rem}.gtc-group[_ngcontent-%COMP%]:last-child{margin-bottom:0}.gtc-group-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;margin:0 0 .75rem;font-size:.8rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.gtc-group-title[_ngcontent-%COMP%] .group-icon[_ngcontent-%COMP%]{font-size:.95rem;width:.95rem;height:.95rem}.gtc-group-title[_ngcontent-%COMP%] .group-count[_ngcontent-%COMP%]{background:var(--color-bg-hover);border-radius:100px;padding:0 .375rem;font-size:.7rem;font-weight:700;min-width:16px;text-align:center;line-height:16px}.gtc-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}@media(max-width:600px){.gtc-grid[_ngcontent-%COMP%]{grid-template-columns:1fr}}.gtc-loading[_ngcontent-%COMP%], .gtc-empty[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:3rem;color:var(--color-text-secondary);text-align:center}.gtc-loading[_ngcontent-%COMP%] p[_ngcontent-%COMP%], .gtc-empty[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;font-size:.9rem}.empty-icon[_ngcontent-%COMP%]{font-size:2.5rem;width:2.5rem;height:2.5rem;opacity:.3}"],changeDetection:0})};export{St as GlobalTaskControlComponent};
|