@whoz-oss/coday-client 3.23.0 → 3.25.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-KccQKSLr.js → chunk--j9cf9d6.js} +2 -2
- package/browser/chunk-2dXF6kxO.js +1 -0
- package/browser/{chunk-YGA4ansj.js → chunk-6ZQ87jQV.js} +1 -1
- package/browser/{chunk-BpzIo3TO.js → chunk-AfeufHde.js} +1 -1
- package/browser/{chunk-CqZF9JZo.js → chunk-B2UoGfZ3.js} +6 -6
- package/browser/{chunk-BfzDf8xE.js → chunk-B6pr9Now.js} +1 -1
- package/browser/{chunk-DNlBxwgK.js → chunk-BAyZlfDb.js} +1 -1
- package/browser/{chunk-VyuxzGHt.js → chunk-BH0AuKDN.js} +1 -1
- package/browser/{chunk-DVGYZ6ty.js → chunk-BP7WYYNR.js} +1 -1
- package/browser/{chunk-BIOQZPFJ.js → chunk-BRAKs_V4.js} +2 -2
- package/browser/{chunk-CMHnK5hV.js → chunk-BSmtz5y3.js} +2 -2
- package/browser/{chunk-BQFfxCd3.js → chunk-BUi4VbRk.js} +1 -1
- package/browser/{chunk-B3Yorxwd.js → chunk-BWE4takb.js} +1 -1
- package/browser/chunk-BZIfffSY.js +1 -0
- package/browser/chunk-BaAG5SRs.js +9 -0
- package/browser/{chunk-CWQR6xJk.js → chunk-BkZ4nMy0.js} +1 -1
- package/browser/{chunk-Cg68_3Ns.js → chunk-Bkl_Vpe1.js} +1 -1
- package/browser/{chunk-Bc0TgO1-.js → chunk-BorcVzNx.js} +1 -1
- package/browser/{chunk-COoOJuQT.js → chunk-Bsd6cfhc.js} +1 -1
- package/browser/{chunk-CXhfjTCk.js → chunk-Btjdv26a.js} +1 -1
- package/browser/{chunk-BrNRhqhm.js → chunk-Bv19t8Yr.js} +1 -1
- package/browser/{chunk-C3MIs5_Y.js → chunk-ByqToPFV.js} +1 -1
- package/browser/{chunk-BQwFVWSb.js → chunk-C0cIJD6B.js} +1 -1
- package/browser/{chunk-DHr7_ikE.js → chunk-C3uyXZ11.js} +1 -1
- package/browser/{chunk-BZCIYJOL.js → chunk-C4kiVp0I.js} +1 -1
- package/browser/{chunk-sz0CVF1-.js → chunk-CBsoAXBW.js} +1 -1
- package/browser/chunk-CCSxTkZ-.js +1 -0
- package/browser/{chunk-lkvHsW8k.js → chunk-CDteNbQE.js} +1 -1
- package/browser/{chunk-CuOGglmC.js → chunk-CIFgO2HT.js} +1 -1
- package/browser/{chunk-DH3pQb49.js → chunk-CKdscASQ.js} +1 -1
- package/browser/{chunk-B3kY-GQk.js → chunk-CPuMGlfm.js} +1 -1
- package/browser/{chunk-BCqtwdIe.js → chunk-CU9SkJlG.js} +1 -1
- package/browser/{chunk-CJD8ErVH.js → chunk-CWfLK-02.js} +1 -1
- package/browser/{chunk-CXwHeDac.js → chunk-CXFeBkf0.js} +1 -1
- package/browser/{chunk-D9wXETZp.js → chunk-Cc6av_kK.js} +2 -2
- package/browser/{chunk-D89TfP1E.js → chunk-Ccwn8U1w.js} +1 -1
- package/browser/chunk-Ce6h2FeE.js +1 -0
- package/browser/chunk-CfZ8rkw0.js +1 -0
- package/browser/{chunk-CT4atmse.js → chunk-CgtOp5dr.js} +3 -3
- package/browser/{chunk-CaL6ZXsO.js → chunk-CmWqV8dc.js} +6 -6
- package/browser/{chunk-CRyr4oOy.js → chunk-ComIIQUU.js} +1 -1
- package/browser/{chunk-D7p9n5a9.js → chunk-Cyh4DuAi.js} +1 -1
- package/browser/{chunk-DdUOdkVr.js → chunk-D26Rjl-2.js} +1 -1
- package/browser/{chunk-SsHAmybq.js → chunk-D62ekcvB.js} +1 -1
- package/browser/{chunk-bl1pitLA.js → chunk-DEUnwPWC.js} +1 -1
- package/browser/{chunk-DL11Jf1L.js → chunk-DIKc_N9D.js} +1 -1
- package/browser/{chunk-O1I9EEmj.js → chunk-DIY-0Lon.js} +1 -1
- package/browser/{chunk-DkP2MwMu.js → chunk-DT0j_Tak.js} +1 -1
- package/browser/{chunk-ChsKwSBf.js → chunk-DaphJW96.js} +1 -1
- package/browser/{chunk-BqC6QWDU.js → chunk-Dgr7xggj.js} +3 -3
- package/browser/chunk-DpWl8Hmh.js +2 -0
- package/browser/{chunk-BdZ0xOqX.js → chunk-DrcS-IIH.js} +5 -5
- package/browser/{chunk-DrKKLE1-.js → chunk-DuGczpUf.js} +2 -2
- package/browser/{chunk-BT7IPqmu.js → chunk-DwD-3Qe0.js} +1 -1
- package/browser/{chunk-CyJ_au6Y.js → chunk-Dx97073t.js} +5 -5
- package/browser/{chunk-BoiQFZ4H.js → chunk-DyyifT6r.js} +1 -1
- package/browser/chunk-GWd9G-Nj.js +1 -0
- package/browser/{chunk-B2FRxZw1.js → chunk-L0O9mlbO.js} +1 -1
- package/browser/{chunk-oqOgDyIj.js → chunk-OZvSiKvx.js} +1 -1
- package/browser/chunk-OpIcFxMt.js +1 -0
- package/browser/{chunk-B4K0ULQ8.js → chunk-OqElmTmR.js} +1 -1
- package/browser/{chunk-bHVjhtHf.js → chunk-RFOuzDB-.js} +1 -1
- package/browser/{chunk-B0USjT_j.js → chunk-bEyVnMri.js} +1 -1
- package/browser/{chunk-CZ4gj_xn.js → chunk-ehgi4mB8.js} +1 -1
- package/browser/{chunk-uY_BCJ93.js → chunk-iT-BBh_o.js} +1 -1
- package/browser/{chunk-C9T7UBD_.js → chunk-iiREShnX.js} +1 -1
- package/browser/{chunk-DF3Ha0Tb.js → chunk-pyvVjc-9.js} +1 -1
- package/browser/{chunk-BSc7HTHd.js → chunk-rWPj3GdK.js} +1 -1
- package/browser/{chunk-oIPYJtHA.js → chunk-sI2K91LE.js} +1 -1
- package/browser/index.html +1 -1
- package/browser/{main-RXIVNUWK.js → main-4LGWVPVH.js} +18 -18
- package/package.json +1 -1
- package/browser/chunk-7dyrHGkF.js +0 -1
- package/browser/chunk-BXGcSbBl.js +0 -1
- package/browser/chunk-BujvNLrF.js +0 -1
- package/browser/chunk-C4IJySYO.js +0 -2
- package/browser/chunk-CjgyOse7.js +0 -1
- package/browser/chunk-CzL7jU35.js +0 -1
- package/browser/chunk-D8dXXVY5.js +0 -9
- package/browser/chunk-DqfAYcrx.js +0 -1
- package/browser/chunk-yfVcVvz_.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import {i}from'./chunk-
|
|
1
|
+
import {i}from'./chunk-CCSxTkZ-.js';import {l}from'./chunk-BaAG5SRs.js';import {g,di as L,aJ as Tr,aD as zy,bS as Da,a7 as va,X as br,r as re,cE as Pd,z as z$1,a as P,bU as jd,Y as x}from'./main-4LGWVPVH.js';var q=["ApiKeyAuthSetting","BasicAuthAuthSetting","BearerTokenAuthSetting","OAuthDiscoverableAuthSetting","OAuthMcpDiscoverableAuthSetting","OAuthCustomAuthSetting","OAuthRegisteredAuthSetting"],J={ApiKeyAuthSetting:"API Key",BasicAuthAuthSetting:"Basic Auth (username / password)",BearerTokenAuthSetting:"Bearer Token",OAuthDiscoverableAuthSetting:"OAuth \u2014 Discovery URL",OAuthMcpDiscoverableAuthSetting:"OAuth \u2014 MCP Discoverable",OAuthCustomAuthSetting:"OAuth \u2014 Custom endpoints",OAuthRegisteredAuthSetting:"OAuth \u2014 Registered app"},E="none",C="me",I={ApiKeyAuthSetting:"API_KEY",BasicAuthAuthSetting:"BASIC_AUTH",BearerTokenAuthSetting:"BEARER_TOKEN",OAuthDiscoverableAuthSetting:"OAUTH_DISCOVERABLE",OAuthMcpDiscoverableAuthSetting:"OAUTH_MCP_DISCOVERABLE",OAuthCustomAuthSetting:"OAUTH_CUSTOM",OAuthRegisteredAuthSetting:"OAUTH_REGISTERED"},U={API_KEY:"ApiKeyAuthSetting",BASIC_AUTH:"BasicAuthAuthSetting",BEARER_TOKEN:"BearerTokenAuthSetting",OAUTH_DISCOVERABLE:"OAuthDiscoverableAuthSetting",OAUTH_MCP_DISCOVERABLE:"OAuthMcpDiscoverableAuthSetting",OAUTH_CUSTOM:"OAuthCustomAuthSetting",OAUTH_REGISTERED:"OAuthRegisteredAuthSetting"};function v(n){let t=I[n.authType];return t?z$1(P({},n),{authType:t}):n}function d(n){return B(n)}function O(n){return n.map(B)}function B(n){let t=n;if(typeof t.authType=="string"){let e=U[t.authType];if(e)return z$1(P({},t),{authType:e})}return n}var R=class n{controller=g(L);userState=g(l);refresh$=new Tr(void 0);namespaceId$=new Tr(null);vm$=zy([this.namespaceId$,this.refresh$]).pipe(Da(([t])=>{let e=this.loadPlatformSettings().pipe(va(()=>br([])));return t?zy([e,this.loadNamespaceSettings(t).pipe(va(()=>br([]))),this.loadUserSettings(t).pipe(va(()=>br([]))),this.loadUserSettings("global").pipe(va(()=>br([])))]).pipe(re(([i,s,u,p])=>({platform:i,namespace:s,userOnNs:u,userGlobal:p}))):zy([e,this.loadNamespaceSettings("").pipe(va(()=>br([]))),this.loadUserSettings("global").pipe(va(()=>br([])))]).pipe(re(([i,s,u])=>({platform:i,namespace:s,userOnNs:[],userGlobal:u})))}),Pd({bufferSize:1,refCount:true}));setNamespace(t){this.namespaceId$.value!==t&&this.namespaceId$.next(t);}refresh(){this.refresh$.next();}loadUserSettings(t){let e=t==="global"?E:t;return this.controller.listAuthSetting(e,C).pipe(re(i=>O(i)))}userGlobal$=i(this.refresh$,()=>this.loadUserSettings("global"),[]);loadPlatformSettings(){return this.controller.listAuthSetting(E).pipe(re(t=>O(t)))}loadNamespaceSettings(t){return t?this.controller.listAuthSetting(t).pipe(re(e=>O(e))):br([])}getById(t,e){return this.controller.getByIdAuthSetting(t).pipe(re(i=>d(i)))}create(t,e,i){let u=this.userState.currentUser()?.id;if((e==="userOnNs"||e==="userGlobal")&&!u)throw new Error(`Cannot create ${e} auth setting before UserStateService.loadMe() resolves \u2014 call loadMe() at app init`);if(e==="namespace"&&(i===void 0||i===""))throw new Error("Cannot create namespace-scoped auth setting without a namespaceId");if(e==="userOnNs"&&!i)throw new Error("Cannot create userOnNs auth setting without a namespaceId");let p=v(z$1(P({},t),{namespaceId:e==="namespace"||e==="userOnNs"?i??void 0:void 0,userId:e==="userOnNs"||e==="userGlobal"?u:void 0}));return this.controller.createAuthSetting(p).pipe(re(_=>d(_)),jd(()=>this.refresh()))}update(t,e,i){let s=v(z$1(P({},e),{namespaceId:i.namespaceId,userId:i.userId,authType:i.authType}));return this.controller.updateAuthSetting(t,s).pipe(re(u=>d(u)),jd(()=>this.refresh()))}delete(t,e){return this.controller.deleteAuthSetting(t).pipe(jd(()=>this.refresh()))}static \u0275fac=function(e){return new(e||n)};static \u0275prov=x({token:n,factory:n.\u0275fac,providedIn:"root"})};export{J,R,q};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {A,k as kt,b as bt}from'./chunk-B4K0ULQ8.js';import {S as St}from'./chunk-CT4atmse.js';import {E as Et,y as yt$1,G as Ge}from'./chunk-BdZ0xOqX.js';import {g,G,P,U,E as N,p as pe$1,H as c,C as Ce$1,W as Wi,F as F$1,T as TT,b as U$1,j as jw,h as hr,e as pr,k as Cs,J as JC,m as hl,n as kg,o as aC,q as dC,t as sI,_ as _g,u as cC,v as fC,w as zg,S as Sg,r as re,ca as _e$1,K as x,an as ue$1,ap as zy,l as le$1,V,M as Mg,a9 as vC,aa as Cf,ac as CC,ab as Tf,a8 as Kg,a5 as Dl}from'./main-RXIVNUWK.js';import'./chunk-CJD8ErVH.js';import'./chunk-DrKKLE1-.js';import'./chunk-BIOQZPFJ.js';import'./chunk-CqZF9JZo.js';import {y as yt,w as wt}from'./chunk-B3kY-GQk.js';var R=class n{threadState=g(U);codayService=g(Ge);threadList=F$1(this.threadState.threadList$,{initialValue:[]});selectedThread=F$1(this.threadState.selectedThread$,{initialValue:null});isThinking=F$1(this.codayService.isThinking$,{initialValue:false});inviteEvent=F$1(this.codayService.currentInviteEvent$.pipe(re(t=>t?.invite===_e$1?null:t)),{initialValue:null});tasks=TT(()=>{let t=this.threadList(),e=this.selectedThread(),r=this.isThinking(),o=this.inviteEvent();return t.filter(i=>!i.parentThreadId).map(i=>{let m=!!e&&i.id===e.id;return {id:i.id,name:i.name,summary:i.summary,modifiedDate:i.modifiedDate,starring:i.starring??[],users:i.users??[],status:this.deriveStatus(i,m,r,!!o),isActive:m,worktreeProject:i.worktreeProject}}).sort((i,m)=>{let q=kt[i.status]-kt[m.status];return q!==0?q:i.modifiedDate>m.modifiedDate?-1:1})});deriveStatus(t,e,r,o){let i=Date.now()-new Date(t.modifiedDate).getTime();return t.closedByUser?"done":t.pendingInvite?"waiting-you":e?r?"in-progress":"paused":i<bt?"in-progress":"paused"}static \u0275fac=function(e){return new(e||n)};static \u0275prov=x({token:n,factory:n.\u0275fac,providedIn:"root"})};var F=class n{projectState=g(P);threadState=g(U);destroy$=new ue$1;eventSource=null;currentProject=null;constructor(){this.projectState.selectedProject$.pipe(zy(this.destroy$)).subscribe(t=>{let e=t?.name??null;e!==this.currentProject&&(this.disconnect(),e&&this.connect(e));});}connect(t,e=5e3){this.currentProject=t;let r=`/api/projects/${encodeURIComponent(t)}/event-stream`;console.log(`[PROJECT_SSE] Connecting to ${r}`),this.eventSource=new EventSource(r),this.eventSource.onmessage=o=>{try{let i=JSON.parse(o.data),m=le$1(i);if(!m)return;m instanceof V&&(console.log("[PROJECT_SSE] ThreadUpdateEvent \u2014 refreshing thread list"),this.threadState.refreshThreadList());}catch(i){console.warn("[PROJECT_SSE] Failed to parse event:",i);}},this.eventSource.onerror=()=>{this.eventSource?.readyState===EventSource.CLOSED&&(console.warn(`[PROJECT_SSE] Connection closed for ${t}, reconnecting in ${e}ms`),this.eventSource=null,setTimeout(()=>{this.currentProject===t&&this.connect(t,Math.min(e*2,6e4));},e));};}disconnect(){this.eventSource&&(this.eventSource.close(),this.eventSource=null,console.log(`[PROJECT_SSE] Disconnected from project ${this.currentProject}`)),this.currentProject=null;}ngOnDestroy(){this.disconnect(),this.destroy$.next(),this.destroy$.complete();}static \u0275fac=function(e){return new(e||n)};static \u0275prov=x({token:n,factory:n.\u0275fac,providedIn:"root"})};var ce=(n,t)=>t.key,de=(n,t)=>t.status,le=(n,t)=>t.id;function pe(n,t){n&1&&Mg(0,"mat-spinner",6);}function me(n,t){n&1&&(Cs(0,"mat-icon"),JC(1,"add"),hl());}function ue(n,t){if(n&1&&(Cs(0,"span",16),JC(1),hl()),n&2){let e=CC().$implicit,r=CC();sI(),Kg(r.filterCounts()[e.key]);}}function ge(n,t){if(n&1){let e=vC();Cs(0,"button",15),kg("click",function(){let o=Cf(e).$implicit,i=CC();return Tf(i.setFilter(o.key))}),Cs(1,"mat-icon",10),JC(2),hl(),Cs(3,"span"),JC(4),hl(),aC(5,ue,2,1,"span",16),hl();}if(n&2){let e=t.$implicit,r=CC();zg("active",r.activeFilter()===e.key),Sg("aria-selected",r.activeFilter()===e.key),sI(2),Kg(e.icon),sI(2),Kg(e.label),sI(),cC(r.filterCounts()[e.key]>0?5:-1);}}function _e(n,t){n&1&&(Cs(0,"div",12),Mg(1,"mat-spinner",17),Cs(2,"p"),JC(3,"Loading tasks\u2026"),hl()());}function fe(n,t){if(n&1){let e=vC();Cs(0,"p"),JC(1,"No tasks yet. Start your first one!"),hl(),Cs(2,"button",19),kg("click",function(){Cf(e);let o=CC(2);return Tf(o.createTask())}),Cs(3,"mat-icon"),JC(4,"add"),hl(),JC(5," New Task "),hl();}}function he(n,t){n&1&&(Cs(0,"p"),JC(1,"No tasks in this category."),hl());}function ke(n,t){if(n&1&&(Cs(0,"div",13)(1,"mat-icon",18),JC(2,"rocket_launch"),hl(),aC(3,fe,6,0)(4,he,2,0,"p"),hl()),n&2){let e=CC();sI(3),cC(e.activeFilter()==="all"?3:4);}}function ve(n,t){if(n&1){let e=vC();Cs(0,"app-task-card",25),kg("stopRequested",function(o){Cf(e);let i=CC(3);return Tf(i.onStopRequested(o))})("deleteRequested",function(o){Cf(e);let i=CC(3);return Tf(i.onDeleteRequested(o))})("starToggled",function(o){Cf(e);let i=CC(3);return Tf(i.onStarToggled(o))})("markDoneRequested",function(o){Cf(e);let i=CC(3);return Tf(i.onMarkDoneRequested(o))})("markActiveRequested",function(o){Cf(e);let i=CC(3);return Tf(i.onMarkActiveRequested(o))}),hl();}if(n&2){let e=t.$implicit;_g("task",e);}}function Ce(n,t){if(n&1&&(Cs(0,"section",20)(1,"h2",21)(2,"mat-icon",22),JC(3),hl(),JC(4),Cs(5,"span",23),JC(6),hl()(),Cs(7,"div",14),dC(8,ve,1,1,"app-task-card",24,le),hl()()),n&2){let e=t.$implicit;sI(3),Kg(e.icon),sI(),Dl(" ",e.label," "),sI(2),Kg(e.tasks.length),sI(2),fC(e.tasks);}}function be(n,t){if(n&1&&dC(0,Ce,10,3,"section",20,de),n&2){let e=CC();fC(e.taskGroups());}}function ye(n,t){if(n&1){let e=vC();Cs(0,"app-task-card",25),kg("stopRequested",function(o){Cf(e);let i=CC(2);return Tf(i.onStopRequested(o))})("deleteRequested",function(o){Cf(e);let i=CC(2);return Tf(i.onDeleteRequested(o))})("starToggled",function(o){Cf(e);let i=CC(2);return Tf(i.onStarToggled(o))})("markDoneRequested",function(o){Cf(e);let i=CC(2);return Tf(i.onMarkDoneRequested(o))})("markActiveRequested",function(o){Cf(e);let i=CC(2);return Tf(i.onMarkActiveRequested(o))}),hl();}if(n&2){let e=t.$implicit;_g("task",e);}}function xe(n,t){if(n&1&&(Cs(0,"div",14),dC(1,ye,1,1,"app-task-card",24,le),hl()),n&2){let e=CC();sI(),fC(e.filteredTasks());}}var Te=[{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"}],se=class n{router=g(G);projectState=g(P);threadState=g(U);threadApi=g(N);taskStatus=g(R);userService=g(pe$1);projectApi=g(c);destroyRef=g(Ce$1);_projectEventStream=g(F);filters=Te;activeFilter=Wi("all");starredOnly=Wi(false);isCreating=Wi(false);isLoadingList=F$1(this.threadState.isLoadingThreadList$,{initialValue:false});username=F$1(this.userService.username$,{initialValue:null});allTasks=this.taskStatus.tasks;filteredTasks=TT(()=>{let t=this.activeFilter(),e=this.username(),r=this.allTasks();return this.starredOnly()&&e&&(r=r.filter(o=>o.starring.includes(e))),t==="all"?r:r.filter(o=>o.status===t)});filterCounts=TT(()=>{let t=this.username(),e=this.allTasks();return this.starredOnly()&&t&&(e=e.filter(r=>r.starring.includes(t))),{all:e.length,"waiting-you":e.filter(r=>r.status==="waiting-you").length,"in-progress":e.filter(r=>r.status==="in-progress").length,paused:e.filter(r=>r.status==="paused").length,done:e.filter(r=>r.status==="done").length}});taskGroups=TT(()=>{let t=this.username(),e=this.allTasks();this.starredOnly()&&t&&(e=e.filter(o=>o.starring.includes(t)));let r=[{status:"waiting-you",label:"Waiting for you",icon:"mark_unread_chat_alt",tasks:[]},{status:"in-progress",label:"In progress",icon:"pending",tasks:[]},{status:"done",label:"Done",icon:"check_circle",tasks:[]},{status:"paused",label:"Paused",icon:"pause_circle",tasks:[]},{status:"error",label:"Error",icon:"error",tasks:[]}];for(let o of e){let i=r.find(m=>m.status===o.status);i&&i.tasks.push(o);}return r.filter(o=>o.tasks.length>0)});ngOnInit(){this.userService.fetchCurrentUser().pipe(U$1(this.destroyRef)).subscribe({error:t=>console.warn("[TASK-CONTROL] Could not fetch user:",t)});}setFilter(t){this.activeFilter.set(t);}toggleStarredFilter(){this.starredOnly.update(t=>!t);}createTask(){let t=this.projectState.getSelectedProjectId();!t||this.isCreating()||(this.isCreating.set(true),this.threadApi.createThread().pipe(U$1(this.destroyRef)).subscribe({next:e=>{this.isCreating.set(false),this.router.navigate(["project",t,"thread",e.thread.id]);},error:e=>{console.error("[TASK-CONTROL] Failed to create thread:",e),this.isCreating.set(false);}}));}onStopRequested(t){this.threadApi.stopThread(t).pipe(U$1(this.destroyRef)).subscribe({error:e=>console.error("[TASK-CONTROL] Failed to stop thread:",e)});}onDeleteRequested(t){this.threadApi.deleteThread(t).pipe(U$1(this.destroyRef)).subscribe({next:()=>this.threadState.refreshThreadList(),error:e=>console.error("[TASK-CONTROL] Failed to delete thread:",e)});}onStarToggled(t){let e=this.username();if(!e)return;let r=this.allTasks().find(m=>m.id===t);if(!r)return;let o=r.starring.includes(e),i=o?this.threadApi.unstarThread(t):this.threadApi.starThread(t);this.threadState.updateStarLocal(t,!o,e),i.pipe(U$1(this.destroyRef)).subscribe({error:m=>{console.error("[TASK-CONTROL] Failed to toggle star:",m),this.threadState.refreshThreadList();}});}onMarkDoneRequested(t){let e=this.projectState.getSelectedProjectId();e&&this.projectApi.markThreadDone(e,t).pipe(U$1(this.destroyRef)).subscribe({next:()=>this.threadState.refreshThreadList(),error:r=>console.error("[TASK-CONTROL] Failed to mark task as done:",r)});}onMarkActiveRequested(t){let e=this.projectState.getSelectedProjectId();e&&this.projectApi.markThreadActive(e,t).pipe(U$1(this.destroyRef)).subscribe({next:()=>this.threadState.refreshThreadList(),error:r=>console.error("[TASK-CONTROL] Failed to mark task as active:",r)});}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=jw({type:n,selectors:[["app-task-control"]],decls:25,vars:6,consts:[[1,"task-control"],[1,"tc-header"],[1,"tc-title-row"],[1,"tc-title"],[1,"title-icon"],["mat-flat-button","","aria-label","Start a new task",1,"new-task-btn",3,"click","disabled"],["diameter","16"],["role","tablist","aria-label","Filter tasks",1,"tc-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,"tc-grid-wrapper"],[1,"tc-loading"],[1,"tc-empty"],[1,"tc-grid"],["role","tab",1,"filter-chip",3,"click"],[1,"filter-badge"],["diameter","40"],[1,"empty-icon"],["mat-flat-button","",1,"new-task-btn",3,"click"],[1,"tc-group"],[1,"tc-group-title"],[1,"group-icon"],[1,"group-count"],[3,"task"],[3,"stopRequested","deleteRequested","starToggled","markDoneRequested","markActiveRequested","task"]],template:function(e,r){e&1&&(Cs(0,"app-sidenav")(1,"div",0)(2,"header",1)(3,"div",2)(4,"h1",3)(5,"mat-icon",4),JC(6,"rocket_launch"),hl(),JC(7," Task Control "),hl(),Cs(8,"button",5),kg("click",function(){return r.createTask()}),aC(9,pe,1,0,"mat-spinner",6)(10,me,2,0,"mat-icon"),JC(11," New Task "),hl()(),Cs(12,"nav",7),dC(13,ge,6,6,"button",8,ce),Cs(15,"button",9),kg("click",function(){return r.toggleStarredFilter()}),Cs(16,"mat-icon",10),JC(17,"star"),hl(),Cs(18,"span"),JC(19,"Starred"),hl()()()(),Cs(20,"main",11),aC(21,_e,4,0,"div",12)(22,ke,5,1,"div",13)(23,be,2,0)(24,xe,3,0,"div",14),hl()()()),e&2&&(sI(8),_g("disabled",r.isCreating()),sI(),cC(r.isCreating()?9:10),sI(4),fC(r.filters),sI(2),zg("active",r.starredOnly()),Sg("aria-checked",r.starredOnly()),sI(6),cC(r.isLoadingList()?21:r.filteredTasks().length===0?22:r.activeFilter()==="all"?23:24));},dependencies:[A,St,yt,wt,hr,pr,Et,yt$1],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:flex;height:100vh;width:100%;overflow:hidden}.task-control[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:1.5rem;gap:1.25rem;box-sizing:border-box}.tc-header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem;flex-shrink:0}.tc-title-row[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:1rem}.tc-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;margin:0;font-size:1.5rem;font-weight:700;color:var(--color-text)}.tc-title[_ngcontent-%COMP%] .title-icon[_ngcontent-%COMP%]{font-size:1.5rem;width:1.5rem;height:1.5rem;color:var(--color-primary)}.new-task-btn[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;background:var(--color-primary);color:var(--color-text-inverse);border-radius:12px;font-weight:600;padding:0 1rem;height:36px;flex-shrink:0}.new-task-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.1rem;width:1.1rem;height:1.1rem}.new-task-btn[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%]{display:inline-block}.tc-filters[_ngcontent-%COMP%]{display:flex;gap:.5rem;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:.375rem .875rem;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:#ffffff4d;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}.tc-group[_ngcontent-%COMP%]{margin-bottom:1.5rem}.tc-group[_ngcontent-%COMP%]:last-child{margin-bottom:0}.tc-group-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;margin:0 0 .75rem;font-size:.85rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.tc-group-title[_ngcontent-%COMP%] .group-icon[_ngcontent-%COMP%]{font-size:1rem;width:1rem;height:1rem}.tc-group-title[_ngcontent-%COMP%] .group-count[_ngcontent-%COMP%]{background:var(--color-bg-hover);border-radius:100px;padding:0 .375rem;font-size:.75rem;font-weight:700;min-width:18px;text-align:center;line-height:18px}.tc-grid-wrapper[_ngcontent-%COMP%]{flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.tc-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;padding-bottom:1rem}@media(max-width:600px){.tc-grid[_ngcontent-%COMP%]{grid-template-columns:1fr}}.tc-loading[_ngcontent-%COMP%], .tc-empty[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;height:100%;min-height:240px;color:var(--color-text-secondary);text-align:center}.tc-loading[_ngcontent-%COMP%] p[_ngcontent-%COMP%], .tc-empty[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;font-size:.95rem}.empty-icon[_ngcontent-%COMP%]{font-size:3rem;width:3rem;height:3rem;opacity:.3}"]})};export{se as TaskControlComponent};
|
|
1
|
+
import {A,k as kt,b as bt}from'./chunk-OqElmTmR.js';import {S as St}from'./chunk-CgtOp5dr.js';import {E as Et,y as yt$1,G as Ge}from'./chunk-DrcS-IIH.js';import {g,G,P,U,I as N,p as pe$1,K as c,C as Ce$1,W as Wi,F as F$1,T as TT,b as U$1,j as jw,h as hr,e as pr,k as Cs,J as JC,m as hl,n as Lg,o as aC,q as dC,u as sI,x as xg,v as cC,w as fC,y as qg,N as Ng,r as re,ca as _e$1,Y as x,an as ue$1,ap as _d,l as le$1,V,A as Ag,a9 as vC,aa as Sf,ac as CC,ab as _f,a8 as em,a5 as Dl}from'./main-4LGWVPVH.js';import'./chunk-CWfLK-02.js';import'./chunk-DuGczpUf.js';import'./chunk-BRAKs_V4.js';import'./chunk-B2UoGfZ3.js';import {y as yt,w as wt}from'./chunk-CPuMGlfm.js';var R=class n{threadState=g(U);codayService=g(Ge);threadList=F$1(this.threadState.threadList$,{initialValue:[]});selectedThread=F$1(this.threadState.selectedThread$,{initialValue:null});isThinking=F$1(this.codayService.isThinking$,{initialValue:false});inviteEvent=F$1(this.codayService.currentInviteEvent$.pipe(re(t=>t?.invite===_e$1?null:t)),{initialValue:null});tasks=TT(()=>{let t=this.threadList(),e=this.selectedThread(),r=this.isThinking(),o=this.inviteEvent();return t.filter(i=>!i.parentThreadId).map(i=>{let m=!!e&&i.id===e.id;return {id:i.id,name:i.name,summary:i.summary,modifiedDate:i.modifiedDate,starring:i.starring??[],users:i.users??[],status:this.deriveStatus(i,m,r,!!o),isActive:m,worktreeProject:i.worktreeProject}}).sort((i,m)=>{let q=kt[i.status]-kt[m.status];return q!==0?q:i.modifiedDate>m.modifiedDate?-1:1})});deriveStatus(t,e,r,o){let i=Date.now()-new Date(t.modifiedDate).getTime();return t.closedByUser?"done":t.pendingInvite?"waiting-you":e?r?"in-progress":"paused":i<bt?"in-progress":"paused"}static \u0275fac=function(e){return new(e||n)};static \u0275prov=x({token:n,factory:n.\u0275fac,providedIn:"root"})};var F=class n{projectState=g(P);threadState=g(U);destroy$=new ue$1;eventSource=null;currentProject=null;constructor(){this.projectState.selectedProject$.pipe(_d(this.destroy$)).subscribe(t=>{let e=t?.name??null;e!==this.currentProject&&(this.disconnect(),e&&this.connect(e));});}connect(t,e=5e3){this.currentProject=t;let r=`/api/projects/${encodeURIComponent(t)}/event-stream`;console.log(`[PROJECT_SSE] Connecting to ${r}`),this.eventSource=new EventSource(r),this.eventSource.onmessage=o=>{try{let i=JSON.parse(o.data),m=le$1(i);if(!m)return;m instanceof V&&(console.log("[PROJECT_SSE] ThreadUpdateEvent \u2014 refreshing thread list"),this.threadState.refreshThreadList());}catch(i){console.warn("[PROJECT_SSE] Failed to parse event:",i);}},this.eventSource.onerror=()=>{this.eventSource?.readyState===EventSource.CLOSED&&(console.warn(`[PROJECT_SSE] Connection closed for ${t}, reconnecting in ${e}ms`),this.eventSource=null,setTimeout(()=>{this.currentProject===t&&this.connect(t,Math.min(e*2,6e4));},e));};}disconnect(){this.eventSource&&(this.eventSource.close(),this.eventSource=null,console.log(`[PROJECT_SSE] Disconnected from project ${this.currentProject}`)),this.currentProject=null;}ngOnDestroy(){this.disconnect(),this.destroy$.next(),this.destroy$.complete();}static \u0275fac=function(e){return new(e||n)};static \u0275prov=x({token:n,factory:n.\u0275fac,providedIn:"root"})};var ce=(n,t)=>t.key,de=(n,t)=>t.status,le=(n,t)=>t.id;function pe(n,t){n&1&&Ag(0,"mat-spinner",6);}function me(n,t){n&1&&(Cs(0,"mat-icon"),JC(1,"add"),hl());}function ue(n,t){if(n&1&&(Cs(0,"span",16),JC(1),hl()),n&2){let e=CC().$implicit,r=CC();sI(),em(r.filterCounts()[e.key]);}}function ge(n,t){if(n&1){let e=vC();Cs(0,"button",15),Lg("click",function(){let o=Sf(e).$implicit,i=CC();return _f(i.setFilter(o.key))}),Cs(1,"mat-icon",10),JC(2),hl(),Cs(3,"span"),JC(4),hl(),aC(5,ue,2,1,"span",16),hl();}if(n&2){let e=t.$implicit,r=CC();qg("active",r.activeFilter()===e.key),Ng("aria-selected",r.activeFilter()===e.key),sI(2),em(e.icon),sI(2),em(e.label),sI(),cC(r.filterCounts()[e.key]>0?5:-1);}}function _e(n,t){n&1&&(Cs(0,"div",12),Ag(1,"mat-spinner",17),Cs(2,"p"),JC(3,"Loading tasks\u2026"),hl()());}function fe(n,t){if(n&1){let e=vC();Cs(0,"p"),JC(1,"No tasks yet. Start your first one!"),hl(),Cs(2,"button",19),Lg("click",function(){Sf(e);let o=CC(2);return _f(o.createTask())}),Cs(3,"mat-icon"),JC(4,"add"),hl(),JC(5," New Task "),hl();}}function he(n,t){n&1&&(Cs(0,"p"),JC(1,"No tasks in this category."),hl());}function ke(n,t){if(n&1&&(Cs(0,"div",13)(1,"mat-icon",18),JC(2,"rocket_launch"),hl(),aC(3,fe,6,0)(4,he,2,0,"p"),hl()),n&2){let e=CC();sI(3),cC(e.activeFilter()==="all"?3:4);}}function ve(n,t){if(n&1){let e=vC();Cs(0,"app-task-card",25),Lg("stopRequested",function(o){Sf(e);let i=CC(3);return _f(i.onStopRequested(o))})("deleteRequested",function(o){Sf(e);let i=CC(3);return _f(i.onDeleteRequested(o))})("starToggled",function(o){Sf(e);let i=CC(3);return _f(i.onStarToggled(o))})("markDoneRequested",function(o){Sf(e);let i=CC(3);return _f(i.onMarkDoneRequested(o))})("markActiveRequested",function(o){Sf(e);let i=CC(3);return _f(i.onMarkActiveRequested(o))}),hl();}if(n&2){let e=t.$implicit;xg("task",e);}}function Ce(n,t){if(n&1&&(Cs(0,"section",20)(1,"h2",21)(2,"mat-icon",22),JC(3),hl(),JC(4),Cs(5,"span",23),JC(6),hl()(),Cs(7,"div",14),dC(8,ve,1,1,"app-task-card",24,le),hl()()),n&2){let e=t.$implicit;sI(3),em(e.icon),sI(),Dl(" ",e.label," "),sI(2),em(e.tasks.length),sI(2),fC(e.tasks);}}function be(n,t){if(n&1&&dC(0,Ce,10,3,"section",20,de),n&2){let e=CC();fC(e.taskGroups());}}function ye(n,t){if(n&1){let e=vC();Cs(0,"app-task-card",25),Lg("stopRequested",function(o){Sf(e);let i=CC(2);return _f(i.onStopRequested(o))})("deleteRequested",function(o){Sf(e);let i=CC(2);return _f(i.onDeleteRequested(o))})("starToggled",function(o){Sf(e);let i=CC(2);return _f(i.onStarToggled(o))})("markDoneRequested",function(o){Sf(e);let i=CC(2);return _f(i.onMarkDoneRequested(o))})("markActiveRequested",function(o){Sf(e);let i=CC(2);return _f(i.onMarkActiveRequested(o))}),hl();}if(n&2){let e=t.$implicit;xg("task",e);}}function xe(n,t){if(n&1&&(Cs(0,"div",14),dC(1,ye,1,1,"app-task-card",24,le),hl()),n&2){let e=CC();sI(),fC(e.filteredTasks());}}var Te=[{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"}],se=class n{router=g(G);projectState=g(P);threadState=g(U);threadApi=g(N);taskStatus=g(R);userService=g(pe$1);projectApi=g(c);destroyRef=g(Ce$1);_projectEventStream=g(F);filters=Te;activeFilter=Wi("all");starredOnly=Wi(false);isCreating=Wi(false);isLoadingList=F$1(this.threadState.isLoadingThreadList$,{initialValue:false});username=F$1(this.userService.username$,{initialValue:null});allTasks=this.taskStatus.tasks;filteredTasks=TT(()=>{let t=this.activeFilter(),e=this.username(),r=this.allTasks();return this.starredOnly()&&e&&(r=r.filter(o=>o.starring.includes(e))),t==="all"?r:r.filter(o=>o.status===t)});filterCounts=TT(()=>{let t=this.username(),e=this.allTasks();return this.starredOnly()&&t&&(e=e.filter(r=>r.starring.includes(t))),{all:e.length,"waiting-you":e.filter(r=>r.status==="waiting-you").length,"in-progress":e.filter(r=>r.status==="in-progress").length,paused:e.filter(r=>r.status==="paused").length,done:e.filter(r=>r.status==="done").length}});taskGroups=TT(()=>{let t=this.username(),e=this.allTasks();this.starredOnly()&&t&&(e=e.filter(o=>o.starring.includes(t)));let r=[{status:"waiting-you",label:"Waiting for you",icon:"mark_unread_chat_alt",tasks:[]},{status:"in-progress",label:"In progress",icon:"pending",tasks:[]},{status:"done",label:"Done",icon:"check_circle",tasks:[]},{status:"paused",label:"Paused",icon:"pause_circle",tasks:[]},{status:"error",label:"Error",icon:"error",tasks:[]}];for(let o of e){let i=r.find(m=>m.status===o.status);i&&i.tasks.push(o);}return r.filter(o=>o.tasks.length>0)});ngOnInit(){this.userService.fetchCurrentUser().pipe(U$1(this.destroyRef)).subscribe({error:t=>console.warn("[TASK-CONTROL] Could not fetch user:",t)});}setFilter(t){this.activeFilter.set(t);}toggleStarredFilter(){this.starredOnly.update(t=>!t);}createTask(){let t=this.projectState.getSelectedProjectId();!t||this.isCreating()||(this.isCreating.set(true),this.threadApi.createThread().pipe(U$1(this.destroyRef)).subscribe({next:e=>{this.isCreating.set(false),this.router.navigate(["project",t,"thread",e.thread.id]);},error:e=>{console.error("[TASK-CONTROL] Failed to create thread:",e),this.isCreating.set(false);}}));}onStopRequested(t){this.threadApi.stopThread(t).pipe(U$1(this.destroyRef)).subscribe({error:e=>console.error("[TASK-CONTROL] Failed to stop thread:",e)});}onDeleteRequested(t){this.threadApi.deleteThread(t).pipe(U$1(this.destroyRef)).subscribe({next:()=>this.threadState.refreshThreadList(),error:e=>console.error("[TASK-CONTROL] Failed to delete thread:",e)});}onStarToggled(t){let e=this.username();if(!e)return;let r=this.allTasks().find(m=>m.id===t);if(!r)return;let o=r.starring.includes(e),i=o?this.threadApi.unstarThread(t):this.threadApi.starThread(t);this.threadState.updateStarLocal(t,!o,e),i.pipe(U$1(this.destroyRef)).subscribe({error:m=>{console.error("[TASK-CONTROL] Failed to toggle star:",m),this.threadState.refreshThreadList();}});}onMarkDoneRequested(t){let e=this.projectState.getSelectedProjectId();e&&this.projectApi.markThreadDone(e,t).pipe(U$1(this.destroyRef)).subscribe({next:()=>this.threadState.refreshThreadList(),error:r=>console.error("[TASK-CONTROL] Failed to mark task as done:",r)});}onMarkActiveRequested(t){let e=this.projectState.getSelectedProjectId();e&&this.projectApi.markThreadActive(e,t).pipe(U$1(this.destroyRef)).subscribe({next:()=>this.threadState.refreshThreadList(),error:r=>console.error("[TASK-CONTROL] Failed to mark task as active:",r)});}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=jw({type:n,selectors:[["app-task-control"]],decls:25,vars:6,consts:[[1,"task-control"],[1,"tc-header"],[1,"tc-title-row"],[1,"tc-title"],[1,"title-icon"],["mat-flat-button","","aria-label","Start a new task",1,"new-task-btn",3,"click","disabled"],["diameter","16"],["role","tablist","aria-label","Filter tasks",1,"tc-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,"tc-grid-wrapper"],[1,"tc-loading"],[1,"tc-empty"],[1,"tc-grid"],["role","tab",1,"filter-chip",3,"click"],[1,"filter-badge"],["diameter","40"],[1,"empty-icon"],["mat-flat-button","",1,"new-task-btn",3,"click"],[1,"tc-group"],[1,"tc-group-title"],[1,"group-icon"],[1,"group-count"],[3,"task"],[3,"stopRequested","deleteRequested","starToggled","markDoneRequested","markActiveRequested","task"]],template:function(e,r){e&1&&(Cs(0,"app-sidenav")(1,"div",0)(2,"header",1)(3,"div",2)(4,"h1",3)(5,"mat-icon",4),JC(6,"rocket_launch"),hl(),JC(7," Task Control "),hl(),Cs(8,"button",5),Lg("click",function(){return r.createTask()}),aC(9,pe,1,0,"mat-spinner",6)(10,me,2,0,"mat-icon"),JC(11," New Task "),hl()(),Cs(12,"nav",7),dC(13,ge,6,6,"button",8,ce),Cs(15,"button",9),Lg("click",function(){return r.toggleStarredFilter()}),Cs(16,"mat-icon",10),JC(17,"star"),hl(),Cs(18,"span"),JC(19,"Starred"),hl()()()(),Cs(20,"main",11),aC(21,_e,4,0,"div",12)(22,ke,5,1,"div",13)(23,be,2,0)(24,xe,3,0,"div",14),hl()()()),e&2&&(sI(8),xg("disabled",r.isCreating()),sI(),cC(r.isCreating()?9:10),sI(4),fC(r.filters),sI(2),qg("active",r.starredOnly()),Ng("aria-checked",r.starredOnly()),sI(6),cC(r.isLoadingList()?21:r.filteredTasks().length===0?22:r.activeFilter()==="all"?23:24));},dependencies:[A,St,yt,wt,hr,pr,Et,yt$1],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:flex;height:100vh;width:100%;overflow:hidden}.task-control[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:1.5rem;gap:1.25rem;box-sizing:border-box}.tc-header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem;flex-shrink:0}.tc-title-row[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:1rem}.tc-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;margin:0;font-size:1.5rem;font-weight:700;color:var(--color-text)}.tc-title[_ngcontent-%COMP%] .title-icon[_ngcontent-%COMP%]{font-size:1.5rem;width:1.5rem;height:1.5rem;color:var(--color-primary)}.new-task-btn[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;background:var(--color-primary);color:var(--color-text-inverse);border-radius:12px;font-weight:600;padding:0 1rem;height:36px;flex-shrink:0}.new-task-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.1rem;width:1.1rem;height:1.1rem}.new-task-btn[_ngcontent-%COMP%] mat-spinner[_ngcontent-%COMP%]{display:inline-block}.tc-filters[_ngcontent-%COMP%]{display:flex;gap:.5rem;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:.375rem .875rem;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:#ffffff4d;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}.tc-group[_ngcontent-%COMP%]{margin-bottom:1.5rem}.tc-group[_ngcontent-%COMP%]:last-child{margin-bottom:0}.tc-group-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;margin:0 0 .75rem;font-size:.85rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.tc-group-title[_ngcontent-%COMP%] .group-icon[_ngcontent-%COMP%]{font-size:1rem;width:1rem;height:1rem}.tc-group-title[_ngcontent-%COMP%] .group-count[_ngcontent-%COMP%]{background:var(--color-bg-hover);border-radius:100px;padding:0 .375rem;font-size:.75rem;font-weight:700;min-width:18px;text-align:center;line-height:18px}.tc-grid-wrapper[_ngcontent-%COMP%]{flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.tc-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;padding-bottom:1rem}@media(max-width:600px){.tc-grid[_ngcontent-%COMP%]{grid-template-columns:1fr}}.tc-loading[_ngcontent-%COMP%], .tc-empty[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;height:100%;min-height:240px;color:var(--color-text-secondary);text-align:center}.tc-loading[_ngcontent-%COMP%] p[_ngcontent-%COMP%], .tc-empty[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;font-size:.95rem}.empty-icon[_ngcontent-%COMP%]{font-size:3rem;width:3rem;height:3rem;opacity:.3}"]})};export{se as TaskControlComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {g,G,cb as
|
|
1
|
+
import {g,G,cb as nV,cc as tV,W as Wi,j as jw,k as Cs,J as JC,m as hl,o as aC,u as sI,a8 as em,v as cC,ac as CC,a9 as vC,n as Lg,x as xg,aa as Sf,ab as _f}from'./main-4LGWVPVH.js';import {K as Kn,Z as Zn,S as Se}from'./chunk-CmWqV8dc.js';function P(n,o){if(n&1&&(Cs(0,"span",3),JC(1),hl()),n&2){let e=CC();sI(),em(e.config().modelName);}}function k(n,o){if(n&1&&(Cs(0,"span",4),JC(1),hl()),n&2){let e=CC();sI(),em(e.config().description);}}function S(n,o){if(n&1){let e=vC();Cs(0,"span",7),JC(1,"Delete?"),hl(),Cs(2,"ds-icon-button",8),Lg("action",function(){Sf(e);let l=CC();return _f(l.onDeleteConfirmed())}),hl(),Cs(3,"ds-icon-button",9),Lg("action",function(){Sf(e);let l=CC();return _f(l.onDeleteCancelled())}),hl();}}function E(n,o){if(n&1){let e=vC();Cs(0,"ds-kebab-menu",10),Lg("itemSelected",function(l){Sf(e);let A=CC();return _f(A.onMenuAction(l))}),hl();}if(n&2){let e=CC();xg("items",e.readOnly()?e.readOnlyMenuItems:e.menuItems);}}var O=class n{router=g(G);config=nV.required();namespaceId=nV(void 0);platformMode=nV(false);readOnly=nV(false);deleteRequested=tV();pendingDelete=Wi(false);menuItems=[{key:"edit",label:"Edit agent config",icon:"edit"},{key:"inspect",label:"Inspect definition",icon:"search"},{key:"delete",label:"Delete agent config",icon:"delete",variant:"danger"}];readOnlyMenuItems=[{key:"inspect",label:"Inspect definition",icon:"search"}];onMenuAction(o){switch(o){case "edit":this.platformMode()?this.router.navigate(["/agentos","admin","agent-configs",this.config().id,"edit"]):this.router.navigate(["/agentos",this.namespaceId(),"agent-configs",this.config().id,"edit"]);break;case "inspect":this.platformMode()?this.router.navigate(["/agentos","admin","agent-configs",this.config().id,"inspect"]):this.router.navigate(["/agentos",this.namespaceId(),"agent-configs",this.config().id,"inspect"]);break;case "delete":this.pendingDelete.set(true);break}}onDeleteConfirmed(){this.pendingDelete.set(false),this.deleteRequested.emit(this.config());}onDeleteCancelled(){this.pendingDelete.set(false);}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=jw({type:n,selectors:[["agentos-agent-config-item"]],inputs:{config:[1,"config"],namespaceId:[1,"namespaceId"],platformMode:[1,"platformMode"],readOnly:[1,"readOnly"]},outputs:{deleteRequested:"deleteRequested"},decls:9,vars:4,consts:[["role","listitem","dsBlueprint","",1,"agent-config-item"],[1,"agent-config-item__body"],[1,"agent-config-item__name"],[1,"agent-config-item__model"],[1,"agent-config-item__description"],[1,"agent-config-item__actions"],[3,"items"],[1,"agent-config-item__confirm-label"],["icon","check","variant","danger","title","Confirm deletion",3,"action"],["icon","close","title","Cancel deletion",3,"action"],[3,"itemSelected","items"]],template:function(e,a){e&1&&(Cs(0,"div",0)(1,"div",1)(2,"span",2),JC(3),hl(),aC(4,P,2,1,"span",3),aC(5,k,2,1,"span",4),hl(),Cs(6,"div",5),aC(7,S,4,0)(8,E,1,1,"ds-kebab-menu",6),hl()()),e&2&&(sI(3),em(a.config().name),sI(),cC(a.config().modelName?4:-1),sI(),cC(a.config().description?5:-1),sI(2),cC(a.pendingDelete()?7:8));},dependencies:[Kn,Zn,Se],styles:[".agent-config-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:14px 16px;position:relative;border-radius:0;border:1px solid var(--color-divider);background:var(--color-bg);box-shadow:var(--shadow-sm);overflow:visible;transition:border-color .15s ease}.agent-config-item[_ngcontent-%COMP%]:hover{border-color:var(--color-accent)}.agent-config-item__body[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.agent-config-item__name[_ngcontent-%COMP%]{font-size:15px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-config-item__model[_ngcontent-%COMP%], .agent-config-item__description[_ngcontent-%COMP%]{font-size:13px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-config-item__actions[_ngcontent-%COMP%]{flex-shrink:0;display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.agent-config-item[_ngcontent-%COMP%]:hover .agent-config-item__actions[_ngcontent-%COMP%], .agent-config-item[_ngcontent-%COMP%]:focus-within .agent-config-item__actions[_ngcontent-%COMP%]{opacity:1}.agent-config-item[_ngcontent-%COMP%]:has(.agent-config-item__confirm-label) .agent-config-item__actions[_ngcontent-%COMP%]{opacity:1}.agent-config-item__confirm-label[_ngcontent-%COMP%]{font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--red-deep);margin-right:.25rem;white-space:nowrap}"]})};export{O};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {g,bl as Mt,
|
|
1
|
+
import {g,bl as Mt,Y as x}from'./main-4LGWVPVH.js';var s=class n{snackBar=g(Mt);success(t,o=2e3){this.snackBar.open(t,"",{duration:o,horizontalPosition:"center",verticalPosition:"bottom",panelClass:["snackbar-success"]});}error(t,o=3e3){this.snackBar.open(t,"",{duration:o,horizontalPosition:"center",verticalPosition:"bottom",panelClass:["snackbar-error"]});}info(t,o=2e3){this.snackBar.open(t,"",{duration:o,horizontalPosition:"center",verticalPosition:"bottom",panelClass:["snackbar-info"]});}static \u0275fac=function(o){return new(o||n)};static \u0275prov=x({token:n,factory:n.\u0275fac,providedIn:"root"})};export{s};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {g,ao as V,G,C as Ce,dm as $,df as U,F,a7 as va,I as br,W as Wi,T as TT,b as U$1,z as z$1,a as P,j as jw,k as Cs,n as kg,J as JC,m as hl,o as aC,t as sI,a8 as Kg,u as cC,a9 as vC,M as Mg,a3 as ZI,ac as CC,_ as _g,a6 as QI,a5 as Dl,q as dC,cH as iC,v as fC,b0 as Xg,aa as Cf,ab as Tf}from'./main-RXIVNUWK.js';import {o as z,k as _t,b as _e,n as ni,J as Jn,Q as Qn,e as ei,Y as Ye,f as fn,A as At,Z as Zn,l as Xn,$ as $t,W as Wt,C as Cn,E as En,p as An}from'./chunk-B3kY-GQk.js';function le(l,t){l&1&&(Cs(0,"p",5),JC(1,"Loading\u2026"),hl());}function ae(l,t){if(l&1&&Mg(0,"input",11),l&2){let e=CC(2);_g("value",e.selectedProviderLabel());}}function de(l,t){if(l&1&&(Cs(0,"option",43),JC(1),hl()),l&2){let e=t.$implicit;_g("value",e.id),sI(),Xg("",e.name," (",e.apiType,")");}}function me(l,t){if(l&1&&(Cs(0,"select",12)(1,"option",42),JC(2,"Select provider"),hl(),dC(3,de,2,3,"option",43,iC().trackByProvider,true),hl(),ZI()),l&2){let e=CC(2);_g("formControl",e.aiProviderIdControl),QI(),sI(3),fC(e.providers());}}function ce(l,t){if(l&1){let e=vC();Cs(0,"form",7),kg("ngSubmit",function(){Cf(e);let u=CC();return Tf(u.submit())}),Cs(1,"div",8)(2,"label",9),JC(3," Provider "),Cs(4,"span",10),JC(5,"*"),hl()(),aC(6,ae,1,1,"input",11)(7,me,5,1,"select",12),hl(),Cs(8,"div",8)(9,"label",13),JC(10," API name "),Cs(11,"span",10),JC(12,"*"),hl()(),Mg(13,"input",14),ZI(),hl(),Cs(14,"div",8)(15,"label",15),JC(16,"Description"),hl(),Mg(17,"input",16),ZI(),hl(),Cs(18,"div",8)(19,"label",17),JC(20,"Alias"),hl(),Mg(21,"input",18),ZI(),hl(),Cs(22,"div",8)(23,"label",19),JC(24,"Priority"),hl(),Mg(25,"input",20),ZI(),hl(),Cs(26,"div",21)(27,"div",8)(28,"label",22),JC(29,"Temperature"),hl(),Mg(30,"input",23),ZI(),hl(),Cs(31,"div",8)(32,"label",24),JC(33,"Context window"),hl(),Mg(34,"input",25),ZI(),hl()(),Cs(35,"div",8)(36,"label",26),JC(37,"Max completion tokens"),hl(),Mg(38,"input",27),ZI(),hl(),Cs(39,"fieldset",28)(40,"legend",29),JC(41," Pricing "),Cs(42,"span",30),JC(43,"(per million tokens \u2014 leave blank to skip cost monitoring)"),hl()(),Cs(44,"div",21)(45,"div",8)(46,"label",31),JC(47,"Input"),hl(),Mg(48,"input",32),ZI(),hl(),Cs(49,"div",8)(50,"label",33),JC(51,"Output"),hl(),Mg(52,"input",34),ZI(),hl()(),Cs(53,"div",21)(54,"div",8)(55,"label",35),JC(56,"Cache write"),hl(),Mg(57,"input",36),ZI(),hl(),Cs(58,"div",8)(59,"label",37),JC(60,"Cache read"),hl(),Mg(61,"input",38),ZI(),hl()()(),Cs(62,"div",39)(63,"button",40),JC(64),hl(),Cs(65,"button",41),kg("click",function(){Cf(e);let u=CC();return Tf(u.cancel())}),JC(66,"Cancel"),hl()()();}if(l&2){let e=CC();_g("formGroup",e.form),sI(6),cC(e.isEditMode()?6:7),sI(7),_g("formControl",e.apiModelNameControl),QI(),sI(4),_g("formControl",e.descriptionControl),QI(),sI(4),_g("formControl",e.aliasControl),QI(),sI(4),_g("formControl",e.priorityControl),QI(),sI(5),_g("formControl",e.temperatureControl),QI(),sI(4),_g("formControl",e.contextWindowControl),QI(),sI(4),_g("formControl",e.maxCompletionTokensControl),QI(),sI(),_g("formGroup",e.pricingGroup),sI(9),QI(),sI(4),QI(),sI(5),QI(),sI(4),QI(),sI(2),_g("disabled",e.form.invalid||e.isSubmitting()),sI(),Dl(" ",e.isEditMode()?"Save changes":"Create"," ");}}var re=class l{route=g(V);router=g(G);destroyRef=g(Ce);aiModelController=g($);aiProviderController=g(U);namespaceId=this.route.snapshot.params.namespaceId;isPlatformMode=this.namespaceId===void 0;providers=F(this.aiProviderController.listAiProvider(this.isPlatformMode?"none":this.namespaceId).pipe(va(()=>br([]))),{initialValue:[]});form=new z({aiProviderId:new _t("",{nonNullable:true,validators:[_e.required]}),apiModelName:new _t("",{nonNullable:true,validators:[_e.required,_e.minLength(1)]}),description:new _t(null),alias:new _t("",{nonNullable:true}),priority:new _t(0,{nonNullable:true}),temperature:new _t(null),contextWindow:new _t(null),maxCompletionTokens:new _t(null),pricing:new z({inputMTokens:new _t(null),outputMTokens:new _t(null),cacheWrite:new _t(null),cacheRead:new _t(null)})});get aiProviderIdControl(){return this.form.controls.aiProviderId}get apiModelNameControl(){return this.form.controls.apiModelName}get descriptionControl(){return this.form.controls.description}get aliasControl(){return this.form.controls.alias}get priorityControl(){return this.form.controls.priority}get temperatureControl(){return this.form.controls.temperature}get contextWindowControl(){return this.form.controls.contextWindow}get maxCompletionTokensControl(){return this.form.controls.maxCompletionTokens}get pricingGroup(){return this.form.controls.pricing}isEditMode=Wi(false);isSubmitting=Wi(false);isLoading=Wi(false);selectedProviderLabel=TT(()=>{let t=this.aiProviderIdControl.value,e=this.providers().find(p=>p.id===t);return e?`${e.name} (${e.apiType})`:t});existingModel=null;ngOnInit(){let t=this.route.snapshot.paramMap.get("modelId");t&&(this.isEditMode.set(true),this.loadModel(t));}loadModel(t){this.isLoading.set(true),this.aiModelController.getByIdAiModel(t).pipe(U$1(this.destroyRef)).subscribe({next:e=>{this.existingModel=e,this.aiProviderIdControl.setValue(e.aiProviderId),this.aiProviderIdControl.disable(),this.apiModelNameControl.setValue(e.apiModelName),this.descriptionControl.setValue(e.description??null),this.aliasControl.setValue(e.alias??""),this.priorityControl.setValue(e.priority??0),this.temperatureControl.setValue(e.temperature??null),this.contextWindowControl.setValue(e.contextWindow??null),this.maxCompletionTokensControl.setValue(e.maxCompletionTokens??null),this.pricingGroup.setValue({inputMTokens:e.pricing?.inputMTokens??null,outputMTokens:e.pricing?.outputMTokens??null,cacheWrite:e.pricing?.cacheWrite??null,cacheRead:e.pricing?.cacheRead??null}),this.isLoading.set(false);},error:()=>{this.isLoading.set(false),this.navigateBack();}});}submit(){if(this.form.invalid||this.isSubmitting())return;this.isSubmitting.set(true);let t=this.form.getRawValue(),e=t.pricing,u=e.inputMTokens!=null||e.outputMTokens!=null||e.cacheWrite!=null||e.cacheRead!=null?{isEmpty:false,inputMTokens:e.inputMTokens??void 0,outputMTokens:e.outputMTokens??void 0,cacheWrite:e.cacheWrite??void 0,cacheRead:e.cacheRead??void 0}:void 0,k=z$1(P({},this.existingModel??{}),{aiProviderId:t.aiProviderId,namespaceId:this.isPlatformMode?void 0:this.existingModel?.namespaceId??this.namespaceId,apiModelName:t.apiModelName.trim(),description:t.description?.trim()||void 0,alias:t.alias.trim()||void 0,priority:t.priority,temperature:t.temperature??void 0,contextWindow:t.contextWindow??void 0,maxCompletionTokens:t.maxCompletionTokens??void 0,pricing:u});(this.isEditMode()?this.aiModelController.updateAiModel(this.existingModel.id??"",k):this.aiModelController.createAiModel(k)).pipe(U$1(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:()=>this.isSubmitting.set(false)});}cancel(){this.navigateBack();}navigateBack(){this.isPlatformMode?this.router.navigate(["/agentos","admin","ai-models"]):this.router.navigate(["/agentos",this.namespaceId,"ai-models"]);}trackByProvider(t,e){return e.id??""}static \u0275fac=function(e){return new(e||l)};static \u0275cmp=jw({type:l,selectors:[["agentos-ai-model-form"]],decls:10,vars:2,consts:[[1,"ai-model-form"],[1,"ai-model-form__header"],["type","button","title","Back to AI models",1,"ai-model-form__back",3,"click"],[1,"ai-model-form__back-icon"],[1,"ai-model-form__title"],[1,"ai-model-form__loading"],[1,"ai-model-form__form",3,"formGroup"],[1,"ai-model-form__form",3,"ngSubmit","formGroup"],[1,"ai-model-form__field"],["for","model-provider",1,"ai-model-form__label"],["aria-hidden","true"],["id","model-provider","type","text","readonly","","tabindex","-1",1,"ai-model-form__input","ai-model-form__input--readonly",3,"value"],["id","model-provider",1,"ai-model-form__select",3,"formControl"],["for","model-api-name",1,"ai-model-form__label"],["id","model-api-name","type","text","placeholder","e.g. gpt-4o, claude-3-5-sonnet-20241022","autocomplete","off",1,"ai-model-form__input","ai-model-form__input--mono",3,"formControl"],["for","model-description",1,"ai-model-form__label"],["id","model-description","type","text","placeholder","Optional \u2014 short description of this model config","autocomplete","off",1,"ai-model-form__input",3,"formControl"],["for","model-alias",1,"ai-model-form__label"],["id","model-alias","type","text","placeholder","e.g. fast, smart \u2014 short identifier used internally","autocomplete","off",1,"ai-model-form__input",3,"formControl"],["for","model-priority",1,"ai-model-form__label"],["id","model-priority","type","number","placeholder","0 \u2014 higher wins when multiple configs share the same alias","min","0","step","1",1,"ai-model-form__input",3,"formControl"],[1,"ai-model-form__row"],["for","model-temperature",1,"ai-model-form__label"],["id","model-temperature","type","number","placeholder","0 \u2013 2","min","0","max","2","step","0.1",1,"ai-model-form__input",3,"formControl"],["for","model-context-window",1,"ai-model-form__label"],["id","model-context-window","type","number","placeholder","e.g. 128000","min","1","step","1",1,"ai-model-form__input",3,"formControl"],["for","model-max-completion-tokens",1,"ai-model-form__label"],["id","model-max-completion-tokens","type","number","placeholder","e.g. 4096","min","1","step","1",1,"ai-model-form__input",3,"formControl"],[1,"ai-model-form__section",3,"formGroup"],[1,"ai-model-form__section-title"],[1,"ai-model-form__section-hint"],["for","pricing-input",1,"ai-model-form__label"],["id","pricing-input","type","number","placeholder","e.g. 2.50","min","0","step","0.01","formControlName","inputMTokens",1,"ai-model-form__input"],["for","pricing-output",1,"ai-model-form__label"],["id","pricing-output","type","number","placeholder","e.g. 10.00","min","0","step","0.01","formControlName","outputMTokens",1,"ai-model-form__input"],["for","pricing-cache-write",1,"ai-model-form__label"],["id","pricing-cache-write","type","number","placeholder","e.g. 3.75","min","0","step","0.01","formControlName","cacheWrite",1,"ai-model-form__input"],["for","pricing-cache-read",1,"ai-model-form__label"],["id","pricing-cache-read","type","number","placeholder","e.g. 0.30","min","0","step","0.01","formControlName","cacheRead",1,"ai-model-form__input"],[1,"ai-model-form__actions"],["type","submit",1,"ai-model-form__btn","ai-model-form__btn--primary",3,"disabled"],["type","button",1,"ai-model-form__btn",3,"click"],["value","","disabled",""],[3,"value"]],template:function(e,p){e&1&&(Cs(0,"div",0)(1,"header",1)(2,"button",2),kg("click",function(){return p.cancel()}),Cs(3,"span",3),JC(4,"\u2190"),hl(),JC(5," AI models "),hl(),Cs(6,"h1",4),JC(7),hl()(),aC(8,le,2,0,"p",5)(9,ce,67,12,"form",6),hl()),e&2&&(sI(7),Kg(p.isEditMode()?"Edit AI model":"New AI model"),sI(),cC(p.isLoading()?8:9));},dependencies:[ni,Jn,Qn,ei,Ye,fn,At,Zn,Xn,$t,Wt,Cn,En,An],styles:[".ai-model-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:480px;margin:0 auto;padding:2rem 1rem}.ai-model-form__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.ai-model-form__back[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.375rem;background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-accent)}.ai-model-form__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.ai-model-form__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.ai-model-form__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:700;color:var(--color-text);letter-spacing:-.02em}.ai-model-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:.9rem;margin:0}.ai-model-form__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.25rem}.ai-model-form__row[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.ai-model-form__field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.ai-model-form__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text)}.ai-model-form__input[_ngcontent-%COMP%], .ai-model-form__select[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border-radius:0;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;transition:border-color .15s ease}.ai-model-form__input[_ngcontent-%COMP%]:focus, .ai-model-form__select[_ngcontent-%COMP%]:focus{border-color:var(--color-accent)}.ai-model-form__input[_ngcontent-%COMP%]::placeholder, .ai-model-form__select[_ngcontent-%COMP%]::placeholder{color:var(--color-neutral-500)}.ai-model-form__input--mono[_ngcontent-%COMP%]{font-family:monospace}.ai-model-form__section[_ngcontent-%COMP%]{border:1px solid var(--color-divider);border-radius:0;padding:1rem;margin:0;display:flex;flex-direction:column;gap:1rem}.ai-model-form__section-title[_ngcontent-%COMP%]{font-size:.875rem;font-weight:600;color:var(--color-text);padding:0 .25rem}.ai-model-form__section-hint[_ngcontent-%COMP%]{font-weight:400;color:var(--color-text-secondary);font-size:.8125rem}.ai-model-form__input--readonly[_ngcontent-%COMP%]{color:var(--color-text-secondary);cursor:default;background:var(--color-surface-muted, rgba(0, 0, 0, .03))}.ai-model-form__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.ai-model-form__btn[_ngcontent-%COMP%]{padding:.6rem 1.25rem;border-radius:0;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;transition:background .15s ease,border-color .15s ease}.ai-model-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-neutral-500)}.ai-model-form__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.ai-model-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.ai-model-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-accent-700);border-color:var(--color-accent-700)}"]})};export{re as AiModelFormComponent};
|
|
1
|
+
import {g,ao as V,G,C as Ce,dm as $,df as U,F,a7 as va,X as br,W as Wi,T as TT,b as U$1,z as z$1,a as P,j as jw,k as Cs,n as Lg,J as JC,m as hl,o as aC,u as sI,a8 as em,v as cC,a9 as vC,A as Ag,a3 as ZI,ac as CC,x as xg,a6 as QI,a5 as Dl,q as dC,cH as iC,w as fC,b0 as tm,aa as Sf,ab as _f}from'./main-4LGWVPVH.js';import {o as z,k as _t,b as _e,n as ni,J as Jn,Q as Qn,e as ei,Y as Ye,f as fn,A as At,Z as Zn,l as Xn,$ as $t,W as Wt,C as Cn,E as En,p as An}from'./chunk-CPuMGlfm.js';function le(l,t){l&1&&(Cs(0,"p",5),JC(1,"Loading\u2026"),hl());}function ae(l,t){if(l&1&&Ag(0,"input",11),l&2){let e=CC(2);xg("value",e.selectedProviderLabel());}}function de(l,t){if(l&1&&(Cs(0,"option",43),JC(1),hl()),l&2){let e=t.$implicit;xg("value",e.id),sI(),tm("",e.name," (",e.apiType,")");}}function me(l,t){if(l&1&&(Cs(0,"select",12)(1,"option",42),JC(2,"Select provider"),hl(),dC(3,de,2,3,"option",43,iC().trackByProvider,true),hl(),ZI()),l&2){let e=CC(2);xg("formControl",e.aiProviderIdControl),QI(),sI(3),fC(e.providers());}}function ce(l,t){if(l&1){let e=vC();Cs(0,"form",7),Lg("ngSubmit",function(){Sf(e);let u=CC();return _f(u.submit())}),Cs(1,"div",8)(2,"label",9),JC(3," Provider "),Cs(4,"span",10),JC(5,"*"),hl()(),aC(6,ae,1,1,"input",11)(7,me,5,1,"select",12),hl(),Cs(8,"div",8)(9,"label",13),JC(10," API name "),Cs(11,"span",10),JC(12,"*"),hl()(),Ag(13,"input",14),ZI(),hl(),Cs(14,"div",8)(15,"label",15),JC(16,"Description"),hl(),Ag(17,"input",16),ZI(),hl(),Cs(18,"div",8)(19,"label",17),JC(20,"Alias"),hl(),Ag(21,"input",18),ZI(),hl(),Cs(22,"div",8)(23,"label",19),JC(24,"Priority"),hl(),Ag(25,"input",20),ZI(),hl(),Cs(26,"div",21)(27,"div",8)(28,"label",22),JC(29,"Temperature"),hl(),Ag(30,"input",23),ZI(),hl(),Cs(31,"div",8)(32,"label",24),JC(33,"Context window"),hl(),Ag(34,"input",25),ZI(),hl()(),Cs(35,"div",8)(36,"label",26),JC(37,"Max completion tokens"),hl(),Ag(38,"input",27),ZI(),hl(),Cs(39,"fieldset",28)(40,"legend",29),JC(41," Pricing "),Cs(42,"span",30),JC(43,"(per million tokens \u2014 leave blank to skip cost monitoring)"),hl()(),Cs(44,"div",21)(45,"div",8)(46,"label",31),JC(47,"Input"),hl(),Ag(48,"input",32),ZI(),hl(),Cs(49,"div",8)(50,"label",33),JC(51,"Output"),hl(),Ag(52,"input",34),ZI(),hl()(),Cs(53,"div",21)(54,"div",8)(55,"label",35),JC(56,"Cache write"),hl(),Ag(57,"input",36),ZI(),hl(),Cs(58,"div",8)(59,"label",37),JC(60,"Cache read"),hl(),Ag(61,"input",38),ZI(),hl()()(),Cs(62,"div",39)(63,"button",40),JC(64),hl(),Cs(65,"button",41),Lg("click",function(){Sf(e);let u=CC();return _f(u.cancel())}),JC(66,"Cancel"),hl()()();}if(l&2){let e=CC();xg("formGroup",e.form),sI(6),cC(e.isEditMode()?6:7),sI(7),xg("formControl",e.apiModelNameControl),QI(),sI(4),xg("formControl",e.descriptionControl),QI(),sI(4),xg("formControl",e.aliasControl),QI(),sI(4),xg("formControl",e.priorityControl),QI(),sI(5),xg("formControl",e.temperatureControl),QI(),sI(4),xg("formControl",e.contextWindowControl),QI(),sI(4),xg("formControl",e.maxCompletionTokensControl),QI(),sI(),xg("formGroup",e.pricingGroup),sI(9),QI(),sI(4),QI(),sI(5),QI(),sI(4),QI(),sI(2),xg("disabled",e.form.invalid||e.isSubmitting()),sI(),Dl(" ",e.isEditMode()?"Save changes":"Create"," ");}}var re=class l{route=g(V);router=g(G);destroyRef=g(Ce);aiModelController=g($);aiProviderController=g(U);namespaceId=this.route.snapshot.params.namespaceId;isPlatformMode=this.namespaceId===void 0;providers=F(this.aiProviderController.listAiProvider(this.isPlatformMode?"none":this.namespaceId).pipe(va(()=>br([]))),{initialValue:[]});form=new z({aiProviderId:new _t("",{nonNullable:true,validators:[_e.required]}),apiModelName:new _t("",{nonNullable:true,validators:[_e.required,_e.minLength(1)]}),description:new _t(null),alias:new _t("",{nonNullable:true}),priority:new _t(0,{nonNullable:true}),temperature:new _t(null),contextWindow:new _t(null),maxCompletionTokens:new _t(null),pricing:new z({inputMTokens:new _t(null),outputMTokens:new _t(null),cacheWrite:new _t(null),cacheRead:new _t(null)})});get aiProviderIdControl(){return this.form.controls.aiProviderId}get apiModelNameControl(){return this.form.controls.apiModelName}get descriptionControl(){return this.form.controls.description}get aliasControl(){return this.form.controls.alias}get priorityControl(){return this.form.controls.priority}get temperatureControl(){return this.form.controls.temperature}get contextWindowControl(){return this.form.controls.contextWindow}get maxCompletionTokensControl(){return this.form.controls.maxCompletionTokens}get pricingGroup(){return this.form.controls.pricing}isEditMode=Wi(false);isSubmitting=Wi(false);isLoading=Wi(false);selectedProviderLabel=TT(()=>{let t=this.aiProviderIdControl.value,e=this.providers().find(p=>p.id===t);return e?`${e.name} (${e.apiType})`:t});existingModel=null;ngOnInit(){let t=this.route.snapshot.paramMap.get("modelId");t&&(this.isEditMode.set(true),this.loadModel(t));}loadModel(t){this.isLoading.set(true),this.aiModelController.getByIdAiModel(t).pipe(U$1(this.destroyRef)).subscribe({next:e=>{this.existingModel=e,this.aiProviderIdControl.setValue(e.aiProviderId),this.aiProviderIdControl.disable(),this.apiModelNameControl.setValue(e.apiModelName),this.descriptionControl.setValue(e.description??null),this.aliasControl.setValue(e.alias??""),this.priorityControl.setValue(e.priority??0),this.temperatureControl.setValue(e.temperature??null),this.contextWindowControl.setValue(e.contextWindow??null),this.maxCompletionTokensControl.setValue(e.maxCompletionTokens??null),this.pricingGroup.setValue({inputMTokens:e.pricing?.inputMTokens??null,outputMTokens:e.pricing?.outputMTokens??null,cacheWrite:e.pricing?.cacheWrite??null,cacheRead:e.pricing?.cacheRead??null}),this.isLoading.set(false);},error:()=>{this.isLoading.set(false),this.navigateBack();}});}submit(){if(this.form.invalid||this.isSubmitting())return;this.isSubmitting.set(true);let t=this.form.getRawValue(),e=t.pricing,u=e.inputMTokens!=null||e.outputMTokens!=null||e.cacheWrite!=null||e.cacheRead!=null?{isEmpty:false,inputMTokens:e.inputMTokens??void 0,outputMTokens:e.outputMTokens??void 0,cacheWrite:e.cacheWrite??void 0,cacheRead:e.cacheRead??void 0}:void 0,k=z$1(P({},this.existingModel??{}),{aiProviderId:t.aiProviderId,namespaceId:this.isPlatformMode?void 0:this.existingModel?.namespaceId??this.namespaceId,apiModelName:t.apiModelName.trim(),description:t.description?.trim()||void 0,alias:t.alias.trim()||void 0,priority:t.priority,temperature:t.temperature??void 0,contextWindow:t.contextWindow??void 0,maxCompletionTokens:t.maxCompletionTokens??void 0,pricing:u});(this.isEditMode()?this.aiModelController.updateAiModel(this.existingModel.id??"",k):this.aiModelController.createAiModel(k)).pipe(U$1(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:()=>this.isSubmitting.set(false)});}cancel(){this.navigateBack();}navigateBack(){this.isPlatformMode?this.router.navigate(["/agentos","admin","ai-models"]):this.router.navigate(["/agentos",this.namespaceId,"ai-models"]);}trackByProvider(t,e){return e.id??""}static \u0275fac=function(e){return new(e||l)};static \u0275cmp=jw({type:l,selectors:[["agentos-ai-model-form"]],decls:10,vars:2,consts:[[1,"ai-model-form"],[1,"ai-model-form__header"],["type","button","title","Back to AI models",1,"ai-model-form__back",3,"click"],[1,"ai-model-form__back-icon"],[1,"ai-model-form__title"],[1,"ai-model-form__loading"],[1,"ai-model-form__form",3,"formGroup"],[1,"ai-model-form__form",3,"ngSubmit","formGroup"],[1,"ai-model-form__field"],["for","model-provider",1,"ai-model-form__label"],["aria-hidden","true"],["id","model-provider","type","text","readonly","","tabindex","-1",1,"ai-model-form__input","ai-model-form__input--readonly",3,"value"],["id","model-provider",1,"ai-model-form__select",3,"formControl"],["for","model-api-name",1,"ai-model-form__label"],["id","model-api-name","type","text","placeholder","e.g. gpt-4o, claude-3-5-sonnet-20241022","autocomplete","off",1,"ai-model-form__input","ai-model-form__input--mono",3,"formControl"],["for","model-description",1,"ai-model-form__label"],["id","model-description","type","text","placeholder","Optional \u2014 short description of this model config","autocomplete","off",1,"ai-model-form__input",3,"formControl"],["for","model-alias",1,"ai-model-form__label"],["id","model-alias","type","text","placeholder","e.g. fast, smart \u2014 short identifier used internally","autocomplete","off",1,"ai-model-form__input",3,"formControl"],["for","model-priority",1,"ai-model-form__label"],["id","model-priority","type","number","placeholder","0 \u2014 higher wins when multiple configs share the same alias","min","0","step","1",1,"ai-model-form__input",3,"formControl"],[1,"ai-model-form__row"],["for","model-temperature",1,"ai-model-form__label"],["id","model-temperature","type","number","placeholder","0 \u2013 2","min","0","max","2","step","0.1",1,"ai-model-form__input",3,"formControl"],["for","model-context-window",1,"ai-model-form__label"],["id","model-context-window","type","number","placeholder","e.g. 128000","min","1","step","1",1,"ai-model-form__input",3,"formControl"],["for","model-max-completion-tokens",1,"ai-model-form__label"],["id","model-max-completion-tokens","type","number","placeholder","e.g. 4096","min","1","step","1",1,"ai-model-form__input",3,"formControl"],[1,"ai-model-form__section",3,"formGroup"],[1,"ai-model-form__section-title"],[1,"ai-model-form__section-hint"],["for","pricing-input",1,"ai-model-form__label"],["id","pricing-input","type","number","placeholder","e.g. 2.50","min","0","step","0.01","formControlName","inputMTokens",1,"ai-model-form__input"],["for","pricing-output",1,"ai-model-form__label"],["id","pricing-output","type","number","placeholder","e.g. 10.00","min","0","step","0.01","formControlName","outputMTokens",1,"ai-model-form__input"],["for","pricing-cache-write",1,"ai-model-form__label"],["id","pricing-cache-write","type","number","placeholder","e.g. 3.75","min","0","step","0.01","formControlName","cacheWrite",1,"ai-model-form__input"],["for","pricing-cache-read",1,"ai-model-form__label"],["id","pricing-cache-read","type","number","placeholder","e.g. 0.30","min","0","step","0.01","formControlName","cacheRead",1,"ai-model-form__input"],[1,"ai-model-form__actions"],["type","submit",1,"ai-model-form__btn","ai-model-form__btn--primary",3,"disabled"],["type","button",1,"ai-model-form__btn",3,"click"],["value","","disabled",""],[3,"value"]],template:function(e,p){e&1&&(Cs(0,"div",0)(1,"header",1)(2,"button",2),Lg("click",function(){return p.cancel()}),Cs(3,"span",3),JC(4,"\u2190"),hl(),JC(5," AI models "),hl(),Cs(6,"h1",4),JC(7),hl()(),aC(8,le,2,0,"p",5)(9,ce,67,12,"form",6),hl()),e&2&&(sI(7),em(p.isEditMode()?"Edit AI model":"New AI model"),sI(),cC(p.isLoading()?8:9));},dependencies:[ni,Jn,Qn,ei,Ye,fn,At,Zn,Xn,$t,Wt,Cn,En,An],styles:[".ai-model-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:480px;margin:0 auto;padding:2rem 1rem}.ai-model-form__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.ai-model-form__back[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.375rem;background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-accent)}.ai-model-form__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.ai-model-form__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.ai-model-form__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:700;color:var(--color-text);letter-spacing:-.02em}.ai-model-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:.9rem;margin:0}.ai-model-form__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.25rem}.ai-model-form__row[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.ai-model-form__field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.ai-model-form__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text)}.ai-model-form__input[_ngcontent-%COMP%], .ai-model-form__select[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border-radius:0;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;transition:border-color .15s ease}.ai-model-form__input[_ngcontent-%COMP%]:focus, .ai-model-form__select[_ngcontent-%COMP%]:focus{border-color:var(--color-accent)}.ai-model-form__input[_ngcontent-%COMP%]::placeholder, .ai-model-form__select[_ngcontent-%COMP%]::placeholder{color:var(--color-neutral-500)}.ai-model-form__input--mono[_ngcontent-%COMP%]{font-family:monospace}.ai-model-form__section[_ngcontent-%COMP%]{border:1px solid var(--color-divider);border-radius:0;padding:1rem;margin:0;display:flex;flex-direction:column;gap:1rem}.ai-model-form__section-title[_ngcontent-%COMP%]{font-size:.875rem;font-weight:600;color:var(--color-text);padding:0 .25rem}.ai-model-form__section-hint[_ngcontent-%COMP%]{font-weight:400;color:var(--color-text-secondary);font-size:.8125rem}.ai-model-form__input--readonly[_ngcontent-%COMP%]{color:var(--color-text-secondary);cursor:default;background:var(--color-surface-muted, rgba(0, 0, 0, .03))}.ai-model-form__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.ai-model-form__btn[_ngcontent-%COMP%]{padding:.6rem 1.25rem;border-radius:0;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;transition:background .15s ease,border-color .15s ease}.ai-model-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-neutral-500)}.ai-model-form__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.ai-model-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.ai-model-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-accent-700);border-color:var(--color-accent-700)}"]})};export{re as AiModelFormComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {Z as Zn,S as Se}from'./chunk-
|
|
1
|
+
import {Z as Zn,S as Se}from'./chunk-CmWqV8dc.js';import {cb as nV,cc as tV,W as Wi,T as TT,j as jw,k as Cs,J as JC,m as hl,o as aC,u as sI,a8 as em,v as cC,ac as CC,N as Ng,a5 as Dl,a9 as vC,n as Lg,x as xg,aa as Sf,ab as _f}from'./main-4LGWVPVH.js';function k(t,r){if(t&1&&(Cs(0,"span",4),JC(1),hl()),t&2){let e=CC();Ng("data-variant",e.badge().variant)("aria-label",e.badge().ariaLabel),sI(),Dl(" ",e.badge().label," ");}}function I(t,r){if(t&1){let e=vC();Cs(0,"span",7),JC(1,"Delete?"),hl(),Cs(2,"ds-icon-button",8),Lg("action",function(){Sf(e);let l=CC();return _f(l.onDeleteConfirmed())}),hl(),Cs(3,"ds-icon-button",9),Lg("action",function(){Sf(e);let l=CC();return _f(l.onDeleteCancelled())}),hl();}}function P(t,r){if(t&1){let e=vC();Cs(0,"ds-kebab-menu",12),Lg("itemSelected",function(l){Sf(e);let A=CC(2);return _f(A.onMenuAction(l))}),hl();}if(t&2){let e=CC(2);xg("items",e.menuItems());}}function R(t,r){if(t&1){let e=vC();Cs(0,"ds-icon-button",10),Lg("action",function(){Sf(e);let l=CC();return _f(l.onDuplicate())}),hl(),aC(1,P,1,1,"ds-kebab-menu",11);}if(t&2){let e=CC();sI(),cC(e.readOnly()?-1:1);}}var E=Object.freeze({platform:{label:"PLATFORM",ariaLabel:"Configuration plateforme (lecture seule)",variant:"neutral"},namespace:{label:"NS",ariaLabel:"Configuration partag\xE9e du namespace",variant:"neutral"},userOnNs:{label:"USER \xD7 NS",ariaLabel:"Configuration utilisateur sur ce namespace",variant:"info"},userGlobal:{label:"USER GLOBAL",ariaLabel:"Configuration utilisateur globale",variant:"warning"}}),O=class t{config=nV.required();scope=nV.required();readOnly=nV(false);showBadge=nV(true);editRequested=tV();deleteRequested=tV();duplicateRequested=tV();pendingDelete=Wi(false);badge=TT(()=>E[this.scope()]);menuItems=TT(()=>[{key:"edit",label:"Edit auth setting",icon:"edit"},{key:"delete",label:"Delete auth setting",icon:"delete",variant:"danger"}]);onMenuAction(r){switch(r){case "edit":this.editRequested.emit(this.config());break;case "delete":this.pendingDelete.set(true);break}}onDuplicate(){this.duplicateRequested.emit(this.config());}onDeleteConfirmed(){this.pendingDelete.set(false),this.deleteRequested.emit(this.config());}onDeleteCancelled(){this.pendingDelete.set(false);}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=jw({type:t,selectors:[["agentos-auth-setting-item"]],inputs:{config:[1,"config"],scope:[1,"scope"],readOnly:[1,"readOnly"],showBadge:[1,"showBadge"]},outputs:{editRequested:"editRequested",deleteRequested:"deleteRequested",duplicateRequested:"duplicateRequested"},decls:11,vars:4,consts:[["role","listitem",1,"auth-setting-item"],[1,"auth-setting-item__body"],[1,"auth-setting-item__heading"],[1,"auth-setting-item__name"],[1,"auth-setting-item__badge"],[1,"auth-setting-item__type"],[1,"auth-setting-item__actions"],[1,"auth-setting-item__confirm-label"],["icon","check","variant","danger","title","Confirm deletion",3,"action"],["icon","close","title","Cancel deletion",3,"action"],["icon","content_copy","title","Duplicate this auth setting",3,"action"],[3,"items"],[3,"itemSelected","items"]],template:function(e,o){e&1&&(Cs(0,"div",0)(1,"div",1)(2,"div",2)(3,"span",3),JC(4),hl(),aC(5,k,2,3,"span",4),hl(),Cs(6,"span",5),JC(7),hl()(),Cs(8,"div",6),aC(9,I,4,0)(10,R,2,1),hl()()),e&2&&(sI(4),em(o.config().name),sI(),cC(o.showBadge()?5:-1),sI(2),em(o.config().authType),sI(2),cC(o.pendingDelete()?9:10));},dependencies:[Zn,Se],styles:[".auth-setting-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-radius:10px;border:1px solid var(--color-border);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-backdrop-blur);backdrop-filter:var(--glass-backdrop-blur);transition:background .15s ease,border-color .15s ease}.auth-setting-item[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover);border-color:var(--color-primary)}.auth-setting-item__body[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.auth-setting-item__heading[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;min-width:0}.auth-setting-item__name[_ngcontent-%COMP%]{font-size:.95rem;font-weight:500;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.auth-setting-item__badge[_ngcontent-%COMP%]{flex-shrink:0;font-size:.65rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:.1rem .4rem;border-radius:4px;line-height:1.2}.auth-setting-item__badge[data-variant=neutral][_ngcontent-%COMP%]{background:var(--color-bg-secondary);color:var(--color-text-secondary)}.auth-setting-item__badge[data-variant=info][_ngcontent-%COMP%]{background:color-mix(in srgb,var(--color-info) 15%,transparent);color:var(--color-info)}.auth-setting-item__badge[data-variant=warning][_ngcontent-%COMP%]{background:color-mix(in srgb,var(--color-warning) 15%,transparent);color:var(--color-warning)}.auth-setting-item__type[_ngcontent-%COMP%]{font-size:.78rem;color:var(--color-text-secondary);font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.auth-setting-item__actions[_ngcontent-%COMP%]{flex-shrink:0;display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.auth-setting-item[_ngcontent-%COMP%]:hover .auth-setting-item__actions[_ngcontent-%COMP%], .auth-setting-item[_ngcontent-%COMP%]:focus-within .auth-setting-item__actions[_ngcontent-%COMP%]{opacity:1}.auth-setting-item__confirm-label[_ngcontent-%COMP%]{font-size:.8rem;font-weight:500;color:var(--color-error);margin-right:.25rem;white-space:nowrap}"]})};export{O};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {n}from'./chunk-CfgXrte_.js';import {v}from'./chunk-
|
|
1
|
+
import {n}from'./chunk-CfgXrte_.js';import {v}from'./chunk-OpIcFxMt.js';import {O}from'./chunk-pyvVjc-9.js';import {N}from'./chunk-GWd9G-Nj.js';import {g,ao as V,G,C as Ce,W as Wi,r as re,b as U$1,bS as Da,X as br,j as jw,aK as Lb,k as Cs,bf as gT,n as Lg,m as hl,af as bg,t as AC,x as xg,bg as yT,ah as dT,o as aC,ac as CC,v as cC,J as JC,u as sI,a8 as em,a9 as vC,aa as Sf,ab as _f,ag as ET}from'./main-4LGWVPVH.js';import'./chunk-BaAG5SRs.js';import {W as Wn,S as Se}from'./chunk-CmWqV8dc.js';import'./chunk-B2UoGfZ3.js';import'./chunk-CPuMGlfm.js';import'./chunk-CCSxTkZ-.js';import'./chunk-6ZQ87jQV.js';var z=()=>[];function W(o,e){if(o&1&&(Cs(0,"p",3),JC(1),hl()),o&2){let t=CC().$implicit;sI(),em(t.name);}}function U(o,e){if(o&1){let t=vC();Cs(0,"agentos-integration-config-item",5),Lg("editRequested",function(){let i=Sf(t),r=CC(2);return _f(r.onEdit(i))})("deleteRequested",function(){let i=Sf(t),r=CC(2);return _f(r.onDelete(i))})("duplicateRequested",function(){let i=Sf(t),r=CC(2);return _f(r.onDuplicate(i))}),hl();}if(o&2){let t=e,n=CC(2);xg("config",t.config)("scope",t.scope)("readOnly",t.scope==="platform"||t.scope==="namespace"&&!n.isAdmin());}}function X(o,e){if(o&1&&aC(0,W,2,1,"p",3)(1,U,1,3,"agentos-integration-config-item",4),o&2){let t,n=e.$implicit,i=CC();cC(i.isEmptyPlaceholder(n.id)?0:(t=i.resolve(n.id))?1:-1,t);}}var k=Object.freeze({platform:"Configurations plateforme",namespace:"Configurations du namespace",userOnNs:"Mes overrides sur ce namespace",userGlobal:"Mes overrides globaux"}),F="__empty__",j=class o{route=g(V);router=g(G);destroyRef=g(Ce);state=g(N);namespaceRole=g(v);namespaceId=this.route.snapshot.params.namespaceId;isAdmin=Wi(false);listItems$=this.state.vm$.pipe(re(e=>this.toListItems(e)));isLoading=Wi(true);resolved=new Map;ngOnInit(){this.route.paramMap.pipe(U$1(this.destroyRef)).subscribe(e=>{let t=e.get("namespaceId")??"";t&&t!==this.namespaceId&&(this.namespaceId=t),this.state.setNamespace(t);}),this.route.paramMap.pipe(re(e=>e.get("namespaceId")??""),Da(e=>e?this.namespaceRole.isAdminOfNamespace$(e):br(false)),U$1(this.destroyRef)).subscribe(e=>this.isAdmin.set(e)),this.state.vm$.pipe(U$1(this.destroyRef)).subscribe(e=>{this.isLoading.set(false);let t=new Map;e.platform.forEach(n=>{n.id&&t.set(this.itemKey("platform",n.id),{config:n,scope:"platform"});}),e.namespace.forEach(n=>{n.id&&t.set(this.itemKey("namespace",n.id),{config:n,scope:"namespace"});}),e.userOnNs.forEach(n=>{n.id&&t.set(this.itemKey("userOnNs",n.id),{config:n,scope:"userOnNs"});}),e.userGlobal.forEach(n=>{n.id&&t.set(this.itemKey("userGlobal",n.id),{config:n,scope:"userGlobal"});}),this.resolved=t;});}isEmptyPlaceholder(e){return e.startsWith(F)}resolve(e){return this.resolved.get(e)??null}itemKey(e,t){return `${e}:${t}`}goBack(){this.router.navigate(["/agentos","namespaces"]);}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId,"integrations","new"],{queryParams:{scope:n(this.isAdmin())}});}onEdit(e){let t=e.config.id??"";this.router.navigate(["/agentos",this.namespaceId,"integrations",t,"edit"],{queryParams:{scope:e.scope}});}onDelete(e){let t=e.config.id;t&&this.state.delete(t,e.scope).pipe(U$1(this.destroyRef)).subscribe({error:n=>{console.error(`[IntegrationsAllScopes] Delete failed for ${e.scope}:${t}:`,n);}});}onDuplicate(e){if(!e.config.id)return;let n=(e.scope==="namespace"||e.scope==="platform")&&!this.isAdmin()?"userOnNs":e.scope;this.router.navigate(["/agentos",this.namespaceId,"integrations","new"],{queryParams:{scope:n,template:e.config.id,templateScope:e.scope}});}toListItems(e){let t=[];return t.push(...this.sectionItems("platform",e.platform)),t.push(...this.sectionItems("namespace",e.namespace)),t.push(...this.sectionItems("userOnNs",e.userOnNs)),t.push(...this.sectionItems("userGlobal",e.userGlobal)),t}sectionItems(e,t){return t.length===0?[{id:`${F}${e}`,name:"Aucune configuration",groupKey:e,groupLabel:k[e]}]:t.filter(n=>!!n.id).map(n=>({id:this.itemKey(e,n.id),name:n.name,description:n.integrationType,groupKey:e,groupLabel:k[e]}))}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=jw({type:o,selectors:[["agentos-integrations-all-scopes"]],decls:5,vars:7,consts:[["integrationItemTpl",""],["title","Integrations","emptyMessage","No integrations available.","cardMinWidth","400px",3,"createRequested","items","loading","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[1,"integrations-all-scopes__empty"],[3,"config","scope","readOnly"],[3,"editRequested","deleteRequested","duplicateRequested","config","scope","readOnly"]],template:function(t,n){if(t&1&&(Cs(0,"ds-entity-list",1),gT(1,"async"),Lg("createRequested",function(){return n.openCreateForm()}),Cs(2,"ds-icon-button",2),Lg("action",function(){return n.goBack()}),hl()(),bg(3,X,2,1,"ng-template",null,0,ET)),t&2){let i=AC(4);xg("items",yT(1,4,n.listItems$)??dT(6,z))("loading",n.isLoading())("showCreate",true)("itemTemplate",i);}},dependencies:[Wn,O,Se,Lb],styles:[".integrations-all-scopes__empty[_ngcontent-%COMP%]{margin:0;padding:.65rem 1rem;font-size:.85rem;font-style:italic;color:var(--color-text-secondary)}"]})};export{j as IntegrationsAllScopesComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {I}from'./chunk-
|
|
1
|
+
import {I}from'./chunk-C3uyXZ11.js';import {m}from'./chunk-BaAG5SRs.js';import {g,ao as V$1,G as G$1,C as Ce,aJ as Tr,W as Wi,bS as Da,S as Wy,a7 as va,X as br,r as re,b as U$1,j as jw,aK as Lb,k as Cs,bf as gT,n as Lg,J as JC,m as hl,af as bg,t as AC,x as xg,bg as yT,ah as dT,o as aC,ac as CC,v as cC,a9 as vC,aa as Sf,ab as _f,ag as ET}from'./main-4LGWVPVH.js';import {W as Wn}from'./chunk-CmWqV8dc.js';import'./chunk-B2UoGfZ3.js';import'./chunk-CPuMGlfm.js';import'./chunk-6ZQ87jQV.js';var U=()=>[];function V(r,t){if(r&1){let o=vC();Cs(0,"agentos-prompt-item",4),Lg("deleteRequested",function(n){Sf(o);let F=CC(2);return _f(F.deletePrompt(n))}),hl();}if(r&2){let o=CC().$implicit,e=CC();xg("prompt",t)("namespaceId",e.namespaceId)("readOnly",e.isPlatformPrompt(o.id));}}function j(r,t){if(r&1&&aC(0,V,1,3,"agentos-prompt-item",3),r&2){let o,e=t.$implicit,n=CC();cC((o=n.resolvePrompt(e.id))?0:-1,o);}}var G="platform",K="namespace",A=class r{route=g(V$1);router=g(G$1);destroyRef=g(Ce);promptState=g(m);namespaceId=this.route.snapshot.params.namespaceId;refresh$=new Tr(void 0);isLoading=Wi(true);allPrompts$=this.refresh$.pipe(Da(()=>(this.isLoading.set(true),Wy({platform:this.promptState.listPlatform().pipe(va(()=>br([]))),namespace:this.promptState.listByNamespace(this.namespaceId)}))));promptItems$=this.allPrompts$.pipe(re(({platform:t,namespace:o})=>[...t.map(e=>({id:e.id??"",name:e.name,description:e.description,groupKey:G,groupLabel:"Platform (read-only)"})),...o.map(e=>({id:e.id??"",name:e.name,description:e.description,groupKey:K,groupLabel:"Namespace"}))]));namespacePromptsById=new Map;platformPromptsById=new Map;constructor(){this.allPrompts$.pipe(U$1(this.destroyRef)).subscribe({next:({platform:t,namespace:o})=>{this.platformPromptsById=new Map(t.map(e=>[e.id??"",e])),this.namespacePromptsById=new Map(o.map(e=>[e.id??"",e])),this.isLoading.set(false);},error:()=>this.isLoading.set(false)});}goBack(){this.router.navigate(["/agentos","namespaces"]);}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId,"prompts","new"]);}deletePrompt(t){this.promptState.delete(t.id??"").pipe(U$1(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=jw({type:r,selectors:[["agentos-namespace-prompts"]],decls:6,vars:7,consts:[["promptItemTpl",""],["title","Prompts","emptyMessage","No prompts defined yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","loading","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&&(Cs(0,"ds-entity-list",1),gT(1,"async"),Lg("createRequested",function(){return e.openCreateForm()}),Cs(2,"button",2),Lg("click",function(){return e.goBack()}),JC(3,"\u2190 Namespaces"),hl()(),bg(4,j,1,1,"ng-template",null,0,ET)),o&2){let n=AC(5);xg("items",yT(1,4,e.promptItems$)??dT(6,U))("loading",e.isLoading())("showCreate",true)("itemTemplate",n);}},dependencies:[Wn,I,Lb],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}"]})};export{A as NamespacePromptsComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {g,G,cb as
|
|
1
|
+
import {g,G,cb as nV,cc as tV,W as Wi,j as jw,k as Cs,J as JC,m as hl,o as aC,y as qg,u as sI,a8 as em,v as cC,ac as CC,a9 as vC,n as Lg,x as xg,aa as Sf,ab as _f}from'./main-4LGWVPVH.js';import {Z as Zn,S as Se}from'./chunk-CmWqV8dc.js';function k(t,r){if(t&1&&(Cs(0,"span",3),JC(1),hl()),t&2){let e=CC();sI(),em(e.prompt().description);}}function S(t,r){if(t&1){let e=vC();Cs(0,"span",6),JC(1,"Delete?"),hl(),Cs(2,"ds-icon-button",7),Lg("action",function(){Sf(e);let m=CC();return _f(m.onDeleteConfirmed())}),hl(),Cs(3,"ds-icon-button",8),Lg("action",function(){Sf(e);let m=CC();return _f(m.onDeleteCancelled())}),hl();}}function E(t,r){if(t&1){let e=vC();Cs(0,"ds-kebab-menu",9),Lg("itemSelected",function(m){Sf(e);let O=CC();return _f(O.onMenuAction(m))}),hl();}if(t&2){let e=CC();xg("items",e.menuItems);}}var I=class t{router=g(G);prompt=nV.required();namespaceId=nV(void 0);platformMode=nV(false);readOnly=nV(false);deleteRequested=tV();pendingDelete=Wi(false);menuItems=[{key:"edit",label:"Edit prompt",icon:"edit"},{key:"delete",label:"Delete prompt",icon:"delete",variant:"danger"}];onMenuAction(r){switch(r){case "edit":this.platformMode()?this.router.navigate(["/agentos","admin","prompts",this.prompt().id,"edit"]):this.router.navigate(["/agentos",this.namespaceId(),"prompts",this.prompt().id,"edit"]);break;case "delete":this.pendingDelete.set(true);break}}onDeleteConfirmed(){this.pendingDelete.set(false),this.deleteRequested.emit(this.prompt());}onDeleteCancelled(){this.pendingDelete.set(false);}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=jw({type:t,selectors:[["agentos-prompt-item"]],inputs:{prompt:[1,"prompt"],namespaceId:[1,"namespaceId"],platformMode:[1,"platformMode"],readOnly:[1,"readOnly"]},outputs:{deleteRequested:"deleteRequested"},decls:8,vars:5,consts:[["role","listitem",1,"prompt-item"],[1,"prompt-item__body"],[1,"prompt-item__name"],[1,"prompt-item__description"],[1,"prompt-item__actions"],[3,"items"],[1,"prompt-item__confirm-label"],["icon","check","variant","danger","title","Confirm deletion",3,"action"],["icon","close","title","Cancel deletion",3,"action"],[3,"itemSelected","items"]],template:function(e,o){e&1&&(Cs(0,"div",0)(1,"div",1)(2,"span",2),JC(3),hl(),aC(4,k,2,1,"span",3),hl(),Cs(5,"div",4),aC(6,S,4,0)(7,E,1,1,"ds-kebab-menu",5),hl()()),e&2&&(qg("prompt-item--pending-delete",o.pendingDelete()),sI(3),em(o.prompt().name),sI(),cC(o.prompt().description?4:-1),sI(2),cC(o.pendingDelete()?6:o.readOnly()?-1:7));},dependencies:[Zn,Se],styles:[".prompt-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-radius:10px;border:1px solid var(--color-border, rgba(0, 0, 0, .08));background:var(--glass-bg, rgba(255, 255, 255, .72));-webkit-backdrop-filter:var(--glass-backdrop-blur, blur(20px));backdrop-filter:var(--glass-backdrop-blur, blur(20px));transition:background .15s ease,border-color .15s ease}.prompt-item[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04));border-color:var(--color-primary, #007aff)}.prompt-item__body[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.prompt-item__name[_ngcontent-%COMP%]{font-size:.95rem;font-weight:500;color:var(--color-text, #1d1d1f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prompt-item__description[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary, #6e6e73);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prompt-item__actions[_ngcontent-%COMP%]{flex-shrink:0;display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.prompt-item[_ngcontent-%COMP%]:hover .prompt-item__actions[_ngcontent-%COMP%], .prompt-item[_ngcontent-%COMP%]:focus-within .prompt-item__actions[_ngcontent-%COMP%], .prompt-item--pending-delete[_ngcontent-%COMP%] .prompt-item__actions[_ngcontent-%COMP%]{opacity:1}.prompt-item__confirm-label[_ngcontent-%COMP%]{font-size:.8rem;font-weight:500;color:var(--color-error, #ff3b30);margin-right:.25rem;white-space:nowrap}"]})};export{I};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {z}from'./chunk-
|
|
1
|
+
import {z}from'./chunk-BSmtz5y3.js';import {s}from'./chunk-Bsd6cfhc.js';import {g as g$1,G,P,R as Re,C as Ce,F,T as TT,z as z$1,a as P$1,ae as kt,b as U,j as jw,i as Gn,s as si,k as Cs,n as Lg,A as Ag,m as hl,af as bg,ag as ET,t as AC,u as sI,x as xg,a9 as vC,aa as Sf,ac as CC,ab as _f,J as JC,ah as dT}from'./main-4LGWVPVH.js';import'./chunk-CWfLK-02.js';import {W as Wn,o as ot}from'./chunk-CmWqV8dc.js';import'./chunk-B2UoGfZ3.js';import {y as yt,w as wt}from'./chunk-CPuMGlfm.js';var ee=()=>[];function te(u,t){if(u&1){let o=vC();Cs(0,"div",5)(1,"ds-entity-card",6),Lg("selected",function(r){Sf(o);let i=CC();return _f(i.onItemSelected(r))}),hl(),Cs(2,"button",7),Lg("click",function(r){let i=Sf(o).$implicit,f=CC();return r.stopPropagation(),_f(f.onDeleteRequested(i.id))}),Cs(3,"mat-icon"),JC(4,"close"),hl()()();}if(u&2){let o=t.$implicit;sI(),xg("id",o.id)("name",o.name)("description",o.description)("badges",o.badges??dT(4,ee));}}var g="__",Y=class u{router=g$1(G);projectStateService=g$1(P);dialog=g$1(Re);destroyRef=g$1(Ce);notification=g$1(s);projects=F(this.projectStateService.projectList$);forcedProject=F(this.projectStateService.forcedProject$,{initialValue:null});isLoading=F(this.projectStateService.isLoading$,{initialValue:false});projectItems=TT(()=>{let t=this.projects();if(!t)return [];let o=t.filter(e=>!e.name.includes(g)),n=t.filter(e=>e.name.includes(g)),r=new Set(o.map(e=>e.name)),i=e=>e.split(g)[0]??null,f=new Set(n.map(e=>i(e.name)).filter(e=>e!==null&&r.has(e))),l=[],G=[...f].sort((e,a)=>e.localeCompare(a));for(let e of G){let a=o.find(s=>s.name===e);l.push(z$1(P$1({},this.toEntityListItem(a)),{groupKey:e,groupLabel:e}));let Z=n.filter(s=>i(s.name)===e).sort((s,C)=>s.name.localeCompare(C.name));for(let s of Z){let C=s.name.slice(e.length+g.length);l.push(z$1(P$1({},this.toEntityListItem(s)),{name:C,description:s.name,groupKey:e,groupLabel:e}));}}let H=[...o].filter(e=>!f.has(e.name)&&!e.volatile).sort((e,a)=>e.name.localeCompare(a.name));for(let e of H)l.push(z$1(P$1({},this.toEntityListItem(e)),{groupKey:"__standalone__",groupLabel:"Projects"}));let Q=[...o].filter(e=>!f.has(e.name)&&e.volatile).sort((e,a)=>e.name.localeCompare(a.name));for(let e of Q)l.push(z$1(P$1({},this.toEntityListItem(e)),{groupKey:"__volatile__",groupLabel:"Temporary"}));let X=n.filter(e=>{let a=i(e.name);return a!==null&&!r.has(a)}).sort((e,a)=>e.name.localeCompare(a.name));for(let e of X)l.push(z$1(P$1({},this.toEntityListItem(e)),{groupKey:"__orphaned__",groupLabel:"Orphaned worktrees"}));return l});showCreateButton=TT(()=>!this.forcedProject());constructor(){}onItemSelected(t){this.projectStateService.selectProject(t),this.router.navigate(["project",t]);}onCreateRequested(){this.router.navigate(["project","new"]);}onDeleteRequested(t){let o=t.includes(g);this.dialog.open(z,{width:"400px",panelClass:"confirm-dialog-panel",data:P$1({title:"Delete project",message:`This will remove the project "${t}" from Coday and archive its configuration. The project source code on disk is not affected.`,confirmLabel:"Delete",cancelLabel:"Cancel",isDestructive:true},o?{checkboxLabel:"Also remove git worktree from disk"}:{})}).afterClosed().pipe(kt(r=>r?.confirmed===true),U(this.destroyRef)).subscribe(r=>{this.notification.info("Deleting project\u2026"),this.projectStateService.deleteProject(t,r.checkboxChecked).pipe(U(this.destroyRef)).subscribe({next:()=>{this.notification.success(`Project "${t}" deleted`),this.router.url.includes(`/project/${encodeURIComponent(t)}`)&&this.router.navigate(["/"]);},error:i=>{console.error("[PROJECT-LIST] Failed to delete project:",i),this.notification.error(i?.error?.error??"Failed to delete project");}});});}toEntityListItem(t){return {id:t.name,name:t.name,badges:t.volatile?[{label:"temp",variant:"warning"}]:[]}}static \u0275fac=function(o){return new(o||u)};static \u0275cmp=jw({type:u,selectors:[["app-project-selection"]],decls:6,vars:5,consts:[["projectCard",""],[1,"project-page-layout"],["title","Projects","contentMaxWidth","1400px","searchPlaceholder","Filter projects\u2026","emptyMessage","No projects found.",3,"itemSelected","createRequested","items","loading","itemTemplate","showCreate","autoFocusSearch"],["toolbar-start","","routerLink","/","title","Back to tasks",1,"project-list__logo"],["src","CODAY-Logo.png","alt","Coday"],[1,"project-card-wrapper"],[3,"selected","id","name","description","badges"],["mat-icon-button","","title","Delete project",1,"project-card-wrapper__delete",3,"click"]],template:function(o,n){if(o&1&&(Cs(0,"div",1)(1,"ds-entity-list",2),Lg("itemSelected",function(i){return n.onItemSelected(i)})("createRequested",function(){return n.onCreateRequested()}),Cs(2,"a",3),Ag(3,"img",4),hl()()(),bg(4,te,5,5,"ng-template",null,0,ET)),o&2){let r=AC(5);sI(),xg("items",n.projectItems())("loading",n.isLoading())("itemTemplate",r)("showCreate",n.showCreateButton())("autoFocusSearch",true);}},dependencies:[Wn,ot,yt,wt,Gn,si],styles:["[_nghost-%COMP%]{display:block;width:100%;min-height:100vh;background:var(--color-bg);overflow-y:auto}.project-page-layout[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%}.project-list__logo[_ngcontent-%COMP%]{display:flex;align-items:center;flex-shrink:0;border-radius:4px;opacity:.85;transition:opacity .15s ease;cursor:pointer}.project-list__logo[_ngcontent-%COMP%]:hover{opacity:1}.project-list__logo[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:40px;height:40px;object-fit:contain;border-radius:4px}.project-card-wrapper[_ngcontent-%COMP%]{position:relative}.project-card-wrapper__delete[_ngcontent-%COMP%]{position:absolute;top:4px;right:4px;width:28px;height:28px;line-height:28px;padding:0;opacity:0;transition:opacity .15s ease;color:var(--color-text-secondary, #6e6e73)}.project-card-wrapper__delete[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{font-size:16px;width:16px;height:16px}.project-card-wrapper__delete[_ngcontent-%COMP%]:hover{color:var(--color-error, #ff3b30)}.project-card-wrapper[_ngcontent-%COMP%]:hover .project-card-wrapper__delete[_ngcontent-%COMP%]{opacity:1}"],changeDetection:1})};export{Y as ProjectListComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {i}from'./chunk-
|
|
1
|
+
import {i}from'./chunk-CCSxTkZ-.js';import {l}from'./chunk-BaAG5SRs.js';import {g as g$1,df as U,aJ as Tr,aD as zy,bS as Da,a7 as va,X as br,r as re,cE as Pd,bU as jd,a as P,Y as x}from'./main-4LGWVPVH.js';var g="none",N="me",O=class p{nsController=g$1(U);userState=g$1(l);refresh$=new Tr(void 0);namespaceId$=new Tr(null);vm$=zy([this.namespaceId$,this.refresh$]).pipe(Da(([e])=>{let r=this.loadPlatformProviders().pipe(va(()=>br([])));return e?zy([r,this.loadNamespaceProviders(e).pipe(va(()=>br([]))),this.loadUserProviders(e).pipe(va(()=>br([]))),this.loadUserProviders("global").pipe(va(()=>br([])))]).pipe(re(([i,n,s,t])=>({platform:i,namespace:n,userOnNs:s,userGlobal:t}))):zy([r,this.loadNamespaceProviders("").pipe(va(()=>br([]))),this.loadUserProviders("global").pipe(va(()=>br([])))]).pipe(re(([i,n,s])=>({platform:i,namespace:n,userOnNs:[],userGlobal:s})))}),Pd({bufferSize:1,refCount:true}));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$=i(this.refresh$,()=>this.loadUserProviders("global"),[]);loadPlatformProviders(){return this.nsController.listAiProvider(g)}loadNamespaceProviders(e){return e?this.nsController.listAiProvider(e):br([])}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(jd(()=>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(jd(()=>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(jd(()=>this.refresh()))}delete(e,r){return this.nsController.deleteAiProvider(e).pipe(jd(()=>this.refresh()))}static \u0275fac=function(r){return new(r||p)};static \u0275prov=x({token:p,factory:p.\u0275fac,providedIn:"root"})};export{O};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {bS as Da,a7 as va,X as br,cE as Pd}from'./main-4LGWVPVH.js';function i(t,o,p){return t.pipe(Da(()=>o().pipe(va(()=>br(p)))),Pd({bufferSize:1,refCount:true}))}export{i};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {n}from'./chunk-CfgXrte_.js';import {O}from'./chunk-
|
|
1
|
+
import {n}from'./chunk-CfgXrte_.js';import {O}from'./chunk-Bv19t8Yr.js';import {v}from'./chunk-OpIcFxMt.js';import {R}from'./chunk-BkZ4nMy0.js';import {g,ao as V,G,C as Ce,W as Wi,r as re,b as U$1,bS as Da,X as br,j as jw,aK as Lb,k as Cs,bf as gT,n as Lg,m as hl,af as bg,t as AC,x as xg,bg as yT,ah as dT,o as aC,ac as CC,v as cC,J as JC,u as sI,a8 as em,a9 as vC,aa as Sf,ab as _f,ag as ET}from'./main-4LGWVPVH.js';import'./chunk-BaAG5SRs.js';import {W as Wn,S as Se}from'./chunk-CmWqV8dc.js';import'./chunk-B2UoGfZ3.js';import'./chunk-CPuMGlfm.js';import'./chunk-CCSxTkZ-.js';import'./chunk-6ZQ87jQV.js';var W=()=>[];function z(s,e){if(s&1&&(Cs(0,"p",3),JC(1),hl()),s&2){let t=CC().$implicit;sI(),em(t.name);}}function U(s,e){if(s&1){let t=vC();Cs(0,"agentos-auth-setting-item",5),Lg("editRequested",function(){let i=Sf(t),r=CC(2);return _f(r.onEdit(i))})("deleteRequested",function(){let i=Sf(t),r=CC(2);return _f(r.onDelete(i))})("duplicateRequested",function(){let i=Sf(t),r=CC(2);return _f(r.onDuplicate(i))}),hl();}if(s&2){let t=e,n=CC(2);xg("config",t.config)("scope",t.scope)("readOnly",t.scope==="platform"||t.scope==="namespace"&&!n.isAdmin());}}function X(s,e){if(s&1&&aC(0,z,2,1,"p",3)(1,U,1,3,"agentos-auth-setting-item",4),s&2){let t,n=e.$implicit,i=CC();cC(i.isEmptyPlaceholder(n.id)?0:(t=i.resolve(n.id))?1:-1,t);}}var k=Object.freeze({platform:"Platform (read-only)",namespace:"Auth Settings du namespace",userOnNs:"Mes overrides sur ce namespace",userGlobal:"Mes overrides globaux"}),F="__empty__",j=class s{route=g(V);router=g(G);destroyRef=g(Ce);state=g(R);namespaceRole=g(v);namespaceId=this.route.snapshot.params.namespaceId;isAdmin=Wi(false);listItems$=this.state.vm$.pipe(re(e=>this.toListItems(e)));isLoading=Wi(true);resolved=new Map;ngOnInit(){this.route.paramMap.pipe(U$1(this.destroyRef)).subscribe(e=>{let t=e.get("namespaceId")??"";t&&t!==this.namespaceId&&(this.namespaceId=t),this.state.setNamespace(t);}),this.route.paramMap.pipe(re(e=>e.get("namespaceId")??""),Da(e=>e?this.namespaceRole.isAdminOfNamespace$(e):br(false)),U$1(this.destroyRef)).subscribe(e=>this.isAdmin.set(e)),this.state.vm$.pipe(U$1(this.destroyRef)).subscribe(e=>{this.isLoading.set(false);let t=new Map;e.platform.forEach(n=>{n.id&&t.set(this.itemKey("platform",n.id),{config:n,scope:"platform"});}),e.namespace.forEach(n=>{n.id&&t.set(this.itemKey("namespace",n.id),{config:n,scope:"namespace"});}),e.userOnNs.forEach(n=>{n.id&&t.set(this.itemKey("userOnNs",n.id),{config:n,scope:"userOnNs"});}),e.userGlobal.forEach(n=>{n.id&&t.set(this.itemKey("userGlobal",n.id),{config:n,scope:"userGlobal"});}),this.resolved=t;});}isEmptyPlaceholder(e){return e.startsWith(F)}resolve(e){return this.resolved.get(e)??null}itemKey(e,t){return `${e}:${t}`}goBack(){this.router.navigate(["/agentos","namespaces"]);}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId,"auth-settings","new"],{queryParams:{scope:n(this.isAdmin())}});}onEdit(e){let t=e.config.id;t&&this.router.navigate(["/agentos",this.namespaceId,"auth-settings",t,"edit"],{queryParams:{scope:e.scope}});}onDelete(e){let t=e.config.id;t&&this.state.delete(t,e.scope).pipe(U$1(this.destroyRef)).subscribe({error:n=>{console.error(`[AuthSettingsAllScopes] Delete failed for ${e.scope}:${t}:`,n);}});}onDuplicate(e){if(!e.config.id)return;let t=e.scope==="platform"||e.scope==="namespace"&&!this.isAdmin()?"userOnNs":e.scope;this.router.navigate(["/agentos",this.namespaceId,"auth-settings","new"],{queryParams:{scope:t,template:e.config.id,templateScope:e.scope}});}toListItems(e){let t=[];return t.push(...this.sectionItems("platform",e.platform)),t.push(...this.sectionItems("namespace",e.namespace)),t.push(...this.sectionItems("userOnNs",e.userOnNs)),t.push(...this.sectionItems("userGlobal",e.userGlobal)),t}sectionItems(e,t){return t.length===0?[{id:`${F}${e}`,name:"Aucun Auth Setting",groupKey:e,groupLabel:k[e]}]:t.filter(n=>!!n.id).map(n=>({id:this.itemKey(e,n.id),name:n.name,description:n.authType,groupKey:e,groupLabel:k[e]}))}static \u0275fac=function(t){return new(t||s)};static \u0275cmp=jw({type:s,selectors:[["agentos-auth-settings-all-scopes"]],decls:5,vars:7,consts:[["authSettingItemTpl",""],["title","Auth Settings","emptyMessage","No auth settings available.","cardMinWidth","400px",3,"createRequested","items","loading","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[1,"auth-settings-all-scopes__empty"],[3,"config","scope","readOnly"],[3,"editRequested","deleteRequested","duplicateRequested","config","scope","readOnly"]],template:function(t,n){if(t&1&&(Cs(0,"ds-entity-list",1),gT(1,"async"),Lg("createRequested",function(){return n.openCreateForm()}),Cs(2,"ds-icon-button",2),Lg("action",function(){return n.goBack()}),hl()(),bg(3,X,2,1,"ng-template",null,0,ET)),t&2){let i=AC(4);xg("items",yT(1,4,n.listItems$)??dT(6,W))("loading",n.isLoading())("showCreate",true)("itemTemplate",i);}},dependencies:[Wn,O,Se,Lb],encapsulation:2})};export{j as AuthSettingsAllScopesComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {K as Kn,Z as Zn,S as Se}from'./chunk-
|
|
1
|
+
import {K as Kn,Z as Zn,S as Se}from'./chunk-CmWqV8dc.js';import {cb as nV,cc as tV,W as Wi,T as TT,j as jw,k as Cs,J as JC,m as hl,o as aC,u as sI,a8 as em,v as cC,ac as CC,N as Ng,a5 as Dl,a9 as vC,n as Lg,x as xg,aa as Sf,ab as _f}from'./main-4LGWVPVH.js';function I(t,d){if(t&1&&(Cs(0,"span",4),JC(1),hl()),t&2){let e=CC();Ng("data-variant",e.badge().variant)("aria-label",e.badge().ariaLabel),sI(),Dl(" ",e.badge().label," ");}}function E(t,d){if(t&1&&(Cs(0,"span",6),JC(1),hl()),t&2){let e=CC();sI(),em(e.config().baseUrl);}}function R(t,d){if(t&1){let e=vC();Cs(0,"span",8),JC(1,"Delete?"),hl(),Cs(2,"ds-icon-button",9),Lg("action",function(){Sf(e);let l=CC();return _f(l.onDeleteConfirmed())}),hl(),Cs(3,"ds-icon-button",10),Lg("action",function(){Sf(e);let l=CC();return _f(l.onDeleteCancelled())}),hl();}}function k(t,d){if(t&1){let e=vC();Cs(0,"ds-kebab-menu",13),Lg("itemSelected",function(l){Sf(e);let A=CC(2);return _f(A.onMenuAction(l))}),hl();}if(t&2){let e=CC(2);xg("items",e.menuItems());}}function q(t,d){if(t&1){let e=vC();Cs(0,"ds-icon-button",11),Lg("action",function(){Sf(e);let l=CC();return _f(l.onDuplicate())}),hl(),aC(1,k,1,1,"ds-kebab-menu",12);}if(t&2){let e=CC();sI(),cC(e.readOnly()?-1:1);}}var B=Object.freeze({platform:{label:"PLATFORM",ariaLabel:"Configuration de niveau plateforme (lecture seule)",variant:"neutral"},namespace:{label:"NS",ariaLabel:"Configuration partag\xE9e du namespace",variant:"neutral"},userOnNs:{label:"USER \xD7 NS",ariaLabel:"Configuration utilisateur sur ce namespace",variant:"info"},userGlobal:{label:"USER GLOBAL",ariaLabel:"Configuration utilisateur globale",variant:"warning"}}),S=class t{config=nV.required();scope=nV.required();readOnly=nV(false);showBadge=nV(true);editRequested=tV();deleteRequested=tV();duplicateRequested=tV();pendingDelete=Wi(false);badge=TT(()=>B[this.scope()]);menuItems=TT(()=>[{key:"edit",label:"Edit provider",icon:"edit"},{key:"delete",label:"Delete provider",icon:"delete",variant:"danger"}]);onMenuAction(d){switch(d){case "edit":this.editRequested.emit(this.config());break;case "delete":this.pendingDelete.set(true);break}}onDuplicate(){this.duplicateRequested.emit(this.config());}onDeleteConfirmed(){this.pendingDelete.set(false),this.deleteRequested.emit(this.config());}onDeleteCancelled(){this.pendingDelete.set(false);}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=jw({type:t,selectors:[["agentos-ai-provider-item"]],inputs:{config:[1,"config"],scope:[1,"scope"],readOnly:[1,"readOnly"],showBadge:[1,"showBadge"]},outputs:{editRequested:"editRequested",deleteRequested:"deleteRequested",duplicateRequested:"duplicateRequested"},decls:12,vars:5,consts:[["role","listitem","dsBlueprint","",1,"ai-provider-item"],[1,"ai-provider-item__body"],[1,"ai-provider-item__heading"],[1,"ai-provider-item__name"],[1,"ai-provider-item__badge"],[1,"ai-provider-item__type"],[1,"ai-provider-item__url"],[1,"ai-provider-item__actions"],[1,"ai-provider-item__confirm-label"],["icon","check","variant","danger","title","Confirm deletion",3,"action"],["icon","close","title","Cancel deletion",3,"action"],["icon","content_copy","title","Duplicate this provider",3,"action"],[3,"items"],[3,"itemSelected","items"]],template:function(e,o){e&1&&(Cs(0,"div",0)(1,"div",1)(2,"div",2)(3,"span",3),JC(4),hl(),aC(5,I,2,3,"span",4),hl(),Cs(6,"span",5),JC(7),hl(),aC(8,E,2,1,"span",6),hl(),Cs(9,"div",7),aC(10,R,4,0)(11,q,2,1),hl()()),e&2&&(sI(4),em(o.config().name),sI(),cC(o.showBadge()?5:-1),sI(2),em(o.config().apiType),sI(),cC(o.config().baseUrl?8:-1),sI(2),cC(o.pendingDelete()?10:11));},dependencies:[Kn,Zn,Se],styles:[".ai-provider-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:14px 16px;position:relative;border-radius:0;border:1px solid var(--color-divider);background:var(--color-bg);box-shadow:var(--shadow-sm);overflow:visible;transition:border-color .15s ease}.ai-provider-item[_ngcontent-%COMP%]:hover{border-color:var(--color-accent)}.ai-provider-item__body[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.ai-provider-item__heading[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;min-width:0}.ai-provider-item__name[_ngcontent-%COMP%]{font-size:15px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.ai-provider-item__badge[_ngcontent-%COMP%]{flex-shrink:0;font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;border-radius:0;padding:.1rem .4rem;line-height:1.2;white-space:nowrap}.ai-provider-item__badge[data-variant=neutral][_ngcontent-%COMP%]{border:1px solid var(--color-divider);color:var(--color-neutral-600);background:transparent}.ai-provider-item__badge[data-variant=info][_ngcontent-%COMP%]{border:1px solid color-mix(in srgb,var(--color-info) 40%,transparent);color:var(--color-info);background:color-mix(in srgb,var(--color-info) 10%,transparent)}.ai-provider-item__badge[data-variant=warning][_ngcontent-%COMP%]{border:1px solid color-mix(in srgb,var(--color-warning) 40%,transparent);color:var(--color-warning);background:color-mix(in srgb,var(--color-warning) 10%,transparent)}.ai-provider-item__type[_ngcontent-%COMP%], .ai-provider-item__url[_ngcontent-%COMP%]{font-size:13px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-provider-item__actions[_ngcontent-%COMP%]{flex-shrink:0;display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.ai-provider-item[_ngcontent-%COMP%]:hover .ai-provider-item__actions[_ngcontent-%COMP%], .ai-provider-item[_ngcontent-%COMP%]:focus-within .ai-provider-item__actions[_ngcontent-%COMP%]{opacity:1}.ai-provider-item__confirm-label[_ngcontent-%COMP%]{font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--red-deep);margin-right:.25rem;white-space:nowrap}"]})};export{S};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {O}from'./chunk-
|
|
1
|
+
import {O}from'./chunk-Bv19t8Yr.js';import {R}from'./chunk-BkZ4nMy0.js';import {g,G,C as Ce,aJ as Tr,W as Wi,bS as Da,r as re,b as U,j as jw,aK as Lb,k as Cs,bf as gT,n as Lg,J as JC,m as hl,af as bg,t as AC,x as xg,bg as yT,ah as dT,o as aC,ac as CC,v as cC,a9 as vC,aa as Sf,ab as _f,ag as ET}from'./main-4LGWVPVH.js';import'./chunk-BaAG5SRs.js';import {W as Wn}from'./chunk-CmWqV8dc.js';import'./chunk-B2UoGfZ3.js';import'./chunk-CPuMGlfm.js';import'./chunk-CCSxTkZ-.js';import'./chunk-6ZQ87jQV.js';var k=()=>[];function V(i,t){if(i&1){let e=vC();Cs(0,"agentos-auth-setting-item",4),Lg("editRequested",function(n){Sf(e);let p=CC(2);return _f(p.onEdit(n))})("deleteRequested",function(n){Sf(e);let p=CC(2);return _f(p.onDelete(n))}),hl();}i&2&&xg("config",t)("showBadge",false);}function F(i,t){if(i&1&&aC(0,V,1,2,"agentos-auth-setting-item",3),i&2){let e,o=t.$implicit,n=CC();cC((e=n.resolveSetting(o.id))?0:-1,e);}}var M=class i{router=g(G);destroyRef=g(Ce);state=g(R);refresh$=new Tr(void 0);isLoading=Wi(true);settings$=this.refresh$.pipe(Da(()=>(this.isLoading.set(true),this.state.loadPlatformSettings())));settingItems$=this.settings$.pipe(re(t=>t.map(e=>({id:e.id??"",name:e.name,description:e.authType}))));settingsById=new Map;constructor(){this.settings$.pipe(U(this.destroyRef)).subscribe({next:t=>{this.settingsById=new Map(t.map(e=>[e.id??"",e])),this.isLoading.set(false);},error:()=>this.isLoading.set(false)});}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(U(this.destroyRef)).subscribe(()=>this.refresh$.next());}resolveSetting(t){return this.settingsById.get(t)??null}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=jw({type:i,selectors:[["agentos-platform-auth-settings"]],decls:6,vars:7,consts:[["authSettingItemTpl",""],["title","Platform Auth Settings","emptyMessage","No platform auth settings defined yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","loading","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&&(Cs(0,"ds-entity-list",1),gT(1,"async"),Lg("createRequested",function(){return o.openCreateForm()}),Cs(2,"button",2),Lg("click",function(){return o.goBack()}),JC(3,"\u2190 Admin"),hl()(),bg(4,F,1,1,"ng-template",null,0,ET)),e&2){let n=AC(5);xg("items",yT(1,4,o.settingItems$)??dT(6,k))("loading",o.isLoading())("showCreate",true)("itemTemplate",n);}},dependencies:[Wn,O,Lb],encapsulation:2})};export{M as PlatformAuthSettingsComponent};
|