@whoz-oss/coday-client 3.22.0 → 3.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/browser/{chunk-cyIUrL9y.js → chunk-7dyrHGkF.js} +1 -1
  2. package/browser/{chunk-MecHdK4O.js → chunk-B0USjT_j.js} +1 -1
  3. package/browser/{chunk-CHP4jN9Z.js → chunk-B2FRxZw1.js} +1 -1
  4. package/browser/{chunk-Dipwr8Xn.js → chunk-B3Yorxwd.js} +1 -1
  5. package/browser/{chunk-BLF3w_iN.js → chunk-B3kY-GQk.js} +1 -1
  6. package/browser/{chunk-D1v8TfDX.js → chunk-B4K0ULQ8.js} +1 -1
  7. package/browser/{chunk-CNz7zaTq.js → chunk-BCqtwdIe.js} +1 -1
  8. package/browser/{chunk-NNu6xUAE.js → chunk-BIOQZPFJ.js} +1 -1
  9. package/browser/chunk-BQFfxCd3.js +1 -0
  10. package/browser/{chunk-GG036UVD.js → chunk-BQwFVWSb.js} +1 -1
  11. package/browser/chunk-BSc7HTHd.js +1 -0
  12. package/browser/{chunk-CxnQWVA-.js → chunk-BT7IPqmu.js} +1 -1
  13. package/browser/{chunk-NBeBKSWy.js → chunk-BXGcSbBl.js} +1 -1
  14. package/browser/{chunk-DsnIWrL1.js → chunk-BZCIYJOL.js} +1 -1
  15. package/browser/{chunk-DUCSH1q7.js → chunk-Bc0TgO1-.js} +1 -1
  16. package/browser/{chunk-BKBTovXz.js → chunk-BdZ0xOqX.js} +1 -1
  17. package/browser/{chunk-gaa6JiT9.js → chunk-BfzDf8xE.js} +1 -1
  18. package/browser/{chunk-CxXOCgTg.js → chunk-BoiQFZ4H.js} +1 -1
  19. package/browser/{chunk-D4w4_Vsw.js → chunk-BpzIo3TO.js} +1 -1
  20. package/browser/{chunk-C1X5uZwT.js → chunk-BqC6QWDU.js} +1 -1
  21. package/browser/{chunk-A12eXtlW.js → chunk-BrNRhqhm.js} +1 -1
  22. package/browser/chunk-BujvNLrF.js +1 -0
  23. package/browser/{chunk-CU4qkq0J.js → chunk-C3MIs5_Y.js} +1 -1
  24. package/browser/chunk-C4IJySYO.js +2 -0
  25. package/browser/{chunk-3KjG4Ivh.js → chunk-C9T7UBD_.js} +1 -1
  26. package/browser/{chunk-CtVgyQBm.js → chunk-CJD8ErVH.js} +1 -1
  27. package/browser/{chunk-Dwp6OoVJ.js → chunk-CMHnK5hV.js} +1 -1
  28. package/browser/{chunk-afcQqtlz.js → chunk-COoOJuQT.js} +1 -1
  29. package/browser/{chunk-I_PMkbKO.js → chunk-CRyr4oOy.js} +1 -1
  30. package/browser/{chunk-CPlR5wjp.js → chunk-CT4atmse.js} +1 -1
  31. package/browser/{chunk-C5Sn2M5w.js → chunk-CWQR6xJk.js} +1 -1
  32. package/browser/chunk-CXhfjTCk.js +1 -0
  33. package/browser/{chunk-DNRaKymp.js → chunk-CXwHeDac.js} +1 -1
  34. package/browser/{chunk-BCGN7Bq-.js → chunk-CZ4gj_xn.js} +1 -1
  35. package/browser/{chunk-CYOKxOkd.js → chunk-CaL6ZXsO.js} +1 -1
  36. package/browser/{chunk-KoKdufNA.js → chunk-Cg68_3Ns.js} +1 -1
  37. package/browser/chunk-ChsKwSBf.js +1 -0
  38. package/browser/chunk-CjgyOse7.js +1 -0
  39. package/browser/{chunk-DAxRjiEx.js → chunk-CqZF9JZo.js} +1 -1
  40. package/browser/{chunk-CJKwH7Qd.js → chunk-CuOGglmC.js} +1 -1
  41. package/browser/{chunk-DXd3i3QM.js → chunk-CyJ_au6Y.js} +1 -1
  42. package/browser/chunk-CzL7jU35.js +1 -0
  43. package/browser/{chunk-B8IQI7aT.js → chunk-D7p9n5a9.js} +1 -1
  44. package/browser/{chunk-Bg-7wA2s.js → chunk-D89TfP1E.js} +1 -1
  45. package/browser/{chunk-CUv3B-19.js → chunk-D8dXXVY5.js} +4 -4
  46. package/browser/{chunk-DeRNr5E2.js → chunk-D9wXETZp.js} +1 -1
  47. package/browser/{chunk-OuaG8E_K.js → chunk-DF3Ha0Tb.js} +1 -1
  48. package/browser/{chunk-Duk6Ikve.js → chunk-DH3pQb49.js} +1 -1
  49. package/browser/{chunk-dNACuqx8.js → chunk-DHr7_ikE.js} +1 -1
  50. package/browser/{chunk-D2fwi0Hc.js → chunk-DL11Jf1L.js} +1 -1
  51. package/browser/chunk-DNlBxwgK.js +1 -0
  52. package/browser/{chunk-DBUR_gpS.js → chunk-DVGYZ6ty.js} +1 -1
  53. package/browser/{chunk-kUdwsgzt.js → chunk-DdUOdkVr.js} +1 -1
  54. package/browser/{chunk-DmbNv5OX.js → chunk-DkP2MwMu.js} +1 -1
  55. package/browser/{chunk-CPOlQJvd.js → chunk-DqfAYcrx.js} +1 -1
  56. package/browser/{chunk-B1VIKLB-.js → chunk-DrKKLE1-.js} +1 -1
  57. package/browser/{chunk-DkqPRNv1.js → chunk-KccQKSLr.js} +1 -1
  58. package/browser/{chunk-B69a5iLl.js → chunk-O1I9EEmj.js} +1 -1
  59. package/browser/chunk-SsHAmybq.js +1 -0
  60. package/browser/{chunk-BNNLW7hd.js → chunk-VyuxzGHt.js} +1 -1
  61. package/browser/{chunk-C_OF_Yht.js → chunk-YGA4ansj.js} +1 -1
  62. package/browser/{chunk-DH88xB_s.js → chunk-bHVjhtHf.js} +1 -1
  63. package/browser/{chunk-DCkYfo8J.js → chunk-bl1pitLA.js} +1 -1
  64. package/browser/{chunk-CFD2_xIF.js → chunk-lkvHsW8k.js} +1 -1
  65. package/browser/{chunk-32YJp-72.js → chunk-oIPYJtHA.js} +1 -1
  66. package/browser/{chunk-Bf3fjpOn.js → chunk-oqOgDyIj.js} +1 -1
  67. package/browser/{chunk-BD91wN51.js → chunk-sz0CVF1-.js} +1 -1
  68. package/browser/{chunk-DqDzCK-6.js → chunk-uY_BCJ93.js} +1 -1
  69. package/browser/{chunk-DzcV-nhe.js → chunk-yfVcVvz_.js} +1 -1
  70. package/browser/index.html +1 -1
  71. package/browser/{main-P72KGKGP.js → main-RXIVNUWK.js} +15 -15
  72. package/package.json +1 -1
  73. package/browser/chunk-BIeOmcVm.js +0 -2
  74. package/browser/chunk-BRwhmCei.js +0 -1
  75. package/browser/chunk-BWJO7VDR.js +0 -1
  76. package/browser/chunk-BgdV8OdP.js +0 -1
  77. package/browser/chunk-C9ckXqnn.js +0 -1
  78. package/browser/chunk-C9nbDemu.js +0 -1
  79. package/browser/chunk-CThn4VXH.js +0 -1
  80. package/browser/chunk-CoPepxeH.js +0 -1
  81. package/browser/chunk-DJaf3eTF.js +0 -1
  82. package/browser/chunk-Dpnh8sS8.js +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@whoz-oss/coday-client",
3
- "version": "3.22.0",
3
+ "version": "3.23.0",
4
4
  "repository": "https://github.com/whoz-oss/coday",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,2 +0,0 @@
1
- import {R}from'./chunk-C5Sn2M5w.js';import {g,ao as V,G,dq as k,C as Ce,W as Wi,T as TT,$ as $y,a7 as va,I as br,b as U,j as jw,k as Cs,n as kg,J as JC,m as hl,o as aC,t as sI,u as cC,a9 as vC,a3 as ZI,q as dC,ac as CC,_ as _g,a6 as QI,v as fC,a5 as Dl,a8 as Kg,w as zg,b0 as Xg,aa as Cf,ab as Tf}from'./main-P72KGKGP.js';import'./chunk-CUv3B-19.js';import {t as ti,Q as Qn,e as ei,Y as Ye,A as At,Z as Zn,c as cn}from'./chunk-BLF3w_iN.js';import'./chunk-Dpnh8sS8.js';import'./chunk-C_OF_Yht.js';import'./chunk-CYOKxOkd.js';import'./chunk-DAxRjiEx.js';var $=(i,e)=>e.id;function J(i,e){i&1&&(Cs(0,"p",5),JC(1,"Loading\u2026"),hl());}function q(i,e){if(i&1&&(Cs(0,"p",8),JC(1),hl()),i&2){let t=CC(2);sI(),Kg(t.errorMessage());}}function Q(i,e){if(i&1&&(Cs(0,"span",26),JC(1),hl()),i&2){let t=CC(3);sI(),Kg(t.association()?.checkoutFailureReason);}}function W(i,e){if(i&1&&(Cs(0,"p",25),JC(1),aC(2,Q,2,1,"span",26),hl()),i&2){let t=CC(2);zg("namespace-git__status--failed",t.checkoutStatus()==="FAILED")("namespace-git__status--ready",t.checkoutStatus()==="READY"),sI(),Dl(" Repository: ",t.checkoutStatus()," "),sI(),cC(t.association()?.checkoutFailureReason?2:-1);}}function X(i,e){if(i&1&&(Cs(0,"option",19),JC(1),hl()),i&2){let t=e.$implicit,l=CC(2);_g("value",t.id),sI(),Xg("",t.name," (",l.authTypeLabel(t.authType),")");}}function Z(i,e){i&1&&(Cs(0,"span",20),JC(1," No usable auth setting in this namespace. Create a BEARER_TOKEN one first. "),hl());}function ee(i,e){if(i&1){let t=vC();Cs(0,"button",27),kg("click",function(){Cf(t);let c=CC(2);return Tf(c.remove())}),JC(1," Remove association "),hl();}if(i&2){let t=CC(2);_g("disabled",t.isSaving());}}function te(i,e){if(i&1){let t=vC();Cs(0,"div",6)(1,"p",7),JC(2," Associate a repository with this namespace and prepare an internal clone. Namespace files remain shared documents outside Git. "),hl(),aC(3,q,2,1,"p",8),aC(4,W,3,6,"p",9),Cs(5,"fieldset",10)(6,"legend",11),JC(7,"Repository"),hl(),Cs(8,"label",12)(9,"span",13),JC(10,"Repository URL"),hl(),Cs(11,"input",14),kg("ngModelChange",function(c){Cf(t);let v=CC();return Tf(v.repositoryUrl.set(c))}),hl(),ZI(),Cs(12,"span",15),JC(13,"HTTPS only, without credentials in the URL."),hl()(),Cs(14,"label",12)(15,"span",13),JC(16,"Main branch"),hl(),Cs(17,"input",16),kg("ngModelChange",function(c){Cf(t);let v=CC();return Tf(v.mainBranch.set(c))}),hl(),ZI(),Cs(18,"span",15),JC(19,"The internal clone starts from this remote branch."),hl()(),Cs(20,"label",12)(21,"span",13),JC(22,"Service account"),hl(),Cs(23,"select",17),kg("ngModelChange",function(c){Cf(t);let v=CC();return Tf(v.serviceAuthSettingId.set(c))}),Cs(24,"option",18),JC(25,"Select an auth setting\u2026"),hl(),dC(26,X,2,3,"option",19,$),hl(),ZI(),Cs(28,"span",15),JC(29," Shared by the namespace. Every Git operation uses this identity, never the identity of whoever opened the case. "),hl(),aC(30,Z,2,0,"span",20),hl()(),Cs(31,"div",21)(32,"button",22),kg("click",function(){Cf(t);let c=CC();return Tf(c.save())}),JC(33),hl(),aC(34,ee,2,1,"button",23),Cs(35,"button",24),kg("click",function(){Cf(t);let c=CC();return Tf(c.cancel())}),JC(36,"Cancel"),hl()()();}if(i&2){let t=CC();sI(3),cC(t.errorMessage()?3:-1),sI(),cC(t.isAssociated()&&t.checkoutStatus()?4:-1),sI(7),_g("ngModel",t.repositoryUrl()),QI(),sI(6),_g("ngModel",t.mainBranch()),QI(),sI(6),_g("ngModel",t.serviceAuthSettingId()),QI(),sI(3),fC(t.eligibleAuthSettings()),sI(4),cC(t.eligibleAuthSettings().length===0?30:-1),sI(2),_g("disabled",!t.canSave()),sI(),Dl(" ",t.isSaving()?"Saving\u2026":t.isAssociated()?"Update":"Associate"," "),sI(),cC(t.isAssociated()?34:-1);}}var ne=["BearerTokenAuthSetting","BasicAuthAuthSetting","ApiKeyAuthSetting"],ie={BearerTokenAuthSetting:"token",BasicAuthAuthSetting:"basic auth",ApiKeyAuthSetting:"API key"},j=class i{route=g(V);router=g(G);gitApi=g(k);authSettingState=g(R);destroyRef=g(Ce);isLoading=Wi(true);isSaving=Wi(false);errorMessage=Wi(null);association=Wi(null);authSettings=Wi([]);repositoryUrl=Wi("");mainBranch=Wi("main");serviceAuthSettingId=Wi("");namespaceId="";isAssociated=TT(()=>this.association()?.associated===true);eligibleAuthSettings=TT(()=>this.authSettings().filter(e=>ne.includes(e.authType)));authTypeLabel(e){return ie[e??""]??e??"unknown"}canSave=TT(()=>this.repositoryUrl().trim().length>0&&this.serviceAuthSettingId().length>0&&!this.isSaving());checkoutStatus=TT(()=>this.association()?.checkoutStatus??null);ngOnInit(){this.namespaceId=this.route.snapshot.paramMap.get("namespaceId")??"",this.load();}load(){this.isLoading.set(true),$y({association:this.gitApi.getAssociationNamespaceGit(this.namespaceId).pipe(va(e=>(console.error("Failed to load the Git association",e),this.errorMessage.set(this.messageOf(e)),br(null)))),authSettings:this.authSettingState.loadNamespaceSettings(this.namespaceId).pipe(va(e=>(console.error("Failed to load namespace auth settings",e),br([]))))}).pipe(U(this.destroyRef)).subscribe(({association:e,authSettings:t})=>{this.authSettings.set(t??[]),e&&(this.association.set(e),this.applyToForm(e)),this.isLoading.set(false);});}applyToForm(e){this.repositoryUrl.set(e.repositoryUrl??""),this.mainBranch.set(e.mainBranch??"main"),this.serviceAuthSettingId.set(e.serviceAuthSettingId??"");}save(){this.canSave()&&(this.isSaving.set(true),this.errorMessage.set(null),this.gitApi.setAssociationNamespaceGit(this.namespaceId,{repositoryUrl:this.repositoryUrl().trim(),mainBranch:this.mainBranch().trim()||void 0,serviceAuthSettingId:this.serviceAuthSettingId()}).pipe(U(this.destroyRef),va(e=>(console.error("Failed to save the Git association",e),this.errorMessage.set(this.messageOf(e)),this.isSaving.set(false),br(null)))).subscribe(e=>{e&&(this.association.set(e),this.applyToForm(e)),this.isSaving.set(false);}));}remove(){confirm("Remove the repository association? The internal clone is preserved.")&&(this.isSaving.set(true),this.gitApi.removeAssociationNamespaceGit(this.namespaceId).pipe(U(this.destroyRef),va(e=>(console.error("Failed to remove the Git association",e),this.errorMessage.set(this.messageOf(e)),this.isSaving.set(false),br(null)))).subscribe(e=>{e&&(this.association.set(e),this.applyToForm(e)),this.isSaving.set(false);}));}cancel(){this.router.navigate(["/agentos/namespaces"]);}messageOf(e){return e.error?.message??e.message??"Unexpected error"}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=jw({type:i,selectors:[["agentos-namespace-git"]],decls:10,vars:1,consts:[[1,"namespace-git"],[1,"namespace-git__header"],["type","button","title","Back to namespaces",1,"namespace-git__back",3,"click"],[1,"namespace-git__back-icon"],[1,"namespace-git__title"],[1,"namespace-git__loading"],[1,"namespace-git__body"],[1,"namespace-git__hint"],["role","alert",1,"namespace-git__error"],[1,"namespace-git__status",3,"namespace-git__status--failed","namespace-git__status--ready"],[1,"namespace-git__section"],[1,"namespace-git__label"],[1,"namespace-git__field"],[1,"namespace-git__field-label"],["type","url","placeholder","https://forge.example/org/project.git","name","repositoryUrl",1,"namespace-git__input",3,"ngModelChange","ngModel"],[1,"namespace-git__field-hint"],["type","text","placeholder","main","name","mainBranch",1,"namespace-git__input",3,"ngModelChange","ngModel"],["name","serviceAuthSettingId",1,"namespace-git__input",3,"ngModelChange","ngModel"],["value",""],[3,"value"],[1,"namespace-git__field-hint","namespace-git__field-hint--warn"],[1,"namespace-git__actions"],["type","button",1,"namespace-git__save",3,"click","disabled"],["type","button",1,"namespace-git__remove",3,"disabled"],["type","button",1,"namespace-git__cancel",3,"click"],[1,"namespace-git__status"],[1,"namespace-git__status-reason"],["type","button",1,"namespace-git__remove",3,"click","disabled"]],template:function(t,l){t&1&&(Cs(0,"div",0)(1,"header",1)(2,"button",2),kg("click",function(){return l.cancel()}),Cs(3,"span",3),JC(4,"\u2190"),hl(),JC(5," Namespaces "),hl(),Cs(6,"h1",4),JC(7,"Git repository"),hl()(),aC(8,J,2,0,"p",5)(9,te,37,9,"div",6),hl()),t&2&&(sI(8),cC(l.isLoading()?8:9));},dependencies:[ti,Qn,ei,Ye,At,Zn,cn],styles:[".namespace-git[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.namespace-git__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.namespace-git__back[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.375rem;background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-primary, #007aff);font-family:inherit}.namespace-git__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.namespace-git__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem}.namespace-git__body[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.namespace-git__hint[_ngcontent-%COMP%]{margin:0;font-size:.875rem;color:var(--color-text-secondary, #6b7280)}.namespace-git__error[_ngcontent-%COMP%]{margin:0;padding:.75rem;border-radius:.375rem;background:var(--red-bg, #fef2f2);color:var(--color-error, #b91c1c);font-size:.875rem}.namespace-git__status[_ngcontent-%COMP%]{margin:0;padding:.5rem .75rem;border-radius:.375rem;background:var(--color-surface-secondary, #f3f4f6);font-size:.875rem;display:flex;flex-direction:column;gap:.25rem}.namespace-git__status--ready[_ngcontent-%COMP%]{background:var(--color-success-bg, #ecfdf5);color:var(--color-success, #047857)}.namespace-git__status--failed[_ngcontent-%COMP%]{background:var(--red-bg, #fef2f2);color:var(--color-error, #b91c1c)}.namespace-git__status-reason[_ngcontent-%COMP%]{font-size:.8125rem;opacity:.9}.namespace-git__section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem;border:1px solid var(--color-border, #e5e7eb);border-radius:.5rem;padding:1rem;margin:0}.namespace-git__label[_ngcontent-%COMP%]{font-weight:600;font-size:.9375rem;padding:0 .25rem}.namespace-git__field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.namespace-git__field-label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500}.namespace-git__field-hint[_ngcontent-%COMP%]{font-size:.8125rem;color:var(--color-text-secondary, #6b7280)}.namespace-git__field-hint--warn[_ngcontent-%COMP%]{color:var(--color-warning, #b45309)}.namespace-git__input[_ngcontent-%COMP%]{font-family:inherit;font-size:.875rem;padding:.5rem .625rem;border:1px solid var(--color-border, #e5e7eb);border-radius:.375rem;background:var(--color-surface, #fff);color:inherit}.namespace-git__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;align-items:center}.namespace-git__save[_ngcontent-%COMP%], .namespace-git__remove[_ngcontent-%COMP%], .namespace-git__cancel[_ngcontent-%COMP%]{font-family:inherit;font-size:.875rem;padding:.5rem 1rem;border-radius:.375rem;cursor:pointer;border:1px solid transparent}.namespace-git__save[_ngcontent-%COMP%]:disabled, .namespace-git__remove[_ngcontent-%COMP%]:disabled, .namespace-git__cancel[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed}.namespace-git__save[_ngcontent-%COMP%]{background:var(--color-primary, #007aff);color:var(--color-text-on-accent, #fff)}.namespace-git__remove[_ngcontent-%COMP%]{background:none;border-color:var(--color-error, #b91c1c);color:var(--color-error, #b91c1c)}.namespace-git__cancel[_ngcontent-%COMP%]{background:none;border-color:var(--color-border, #e5e7eb);color:inherit}"]})};
2
- export{j as NamespaceGitComponent};
@@ -1 +0,0 @@
1
- import {v}from'./chunk-DzcV-nhe.js';import {R}from'./chunk-C5Sn2M5w.js';import {N as N$1}from'./chunk-cyIUrL9y.js';import {g,ao as V,G,C as Ce,d8 as F,F as F$1,I as br,W as Wi,T as TT,cd as $f,b as U,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,q as dC,cH as iC,a3 as ZI,M as Mg,a4 as lC,ac as CC,_ as _g,v as fC,a6 as QI,a5 as Dl,aa as Cf,ab as Tf}from'./main-P72KGKGP.js';import'./chunk-CUv3B-19.js';import {n as nt}from'./chunk-CYOKxOkd.js';import'./chunk-DAxRjiEx.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,A as At,m as mn,Z as Zn,l as Xn,C as Cn,E as En}from'./chunk-BLF3w_iN.js';import'./chunk-Dpnh8sS8.js';import'./chunk-C_OF_Yht.js';function ae(r,t){r&1&&(Cs(0,"p",5),JC(1,"Loading\u2026"),hl());}function le(r,t){if(r&1&&(Cs(0,"label",10),Mg(1,"input",29),ZI(),Cs(2,"span"),JC(3),hl()()),r&2){let e=t.$implicit,n=CC(2);sI(),_g("value",e.value)("formControl",n.scopeControl)("disabled",e.value==="namespace"&&!n.isAdmin()),QI(),sI(2),Kg(e.label);}}function se(r,t){if(r&1&&(Cs(0,"option",16),JC(1),hl()),r&2){let e=t.$implicit;_g("value",e.type),sI(),Kg(e.displayName);}}function ce(r,t){if(r&1&&(Cs(0,"option",16),JC(1),hl()),r&2){let e=t.$implicit;_g("value",e),sI(),Kg(e);}}function me(r,t){if(r&1){let e=vC();Cs(0,"div",24)(1,"ds-json-schema-form",30),kg("valueChange",function(s){Cf(e);let m=CC(2);return Tf(m.onParamsChange(s))}),hl()();}if(r&2){let e=CC(2);sI(),_g("schema",t)("value",e.initialParams());}}function de(r,t){if(r&1){let e=vC();Cs(0,"button",31),kg("click",function(){Cf(e);let s=CC(2);return Tf(s.exportYaml())}),JC(1),hl();}if(r&2){let e=CC(2);_g("disabled",e.isExporting()),sI(),Dl(" ",e.isExporting()?"Exporting\u2026":"Export as YAML"," ");}}function pe(r,t){if(r&1){let e=vC();Cs(0,"form",7),kg("ngSubmit",function(){Cf(e);let s=CC();return Tf(s.submit())}),Cs(1,"fieldset",8)(2,"legend",9),JC(3,"Scope"),hl(),dC(4,le,4,4,"label",10,iC().trackByScope,true),hl(),Cs(6,"div",11)(7,"label",12),JC(8,"Type "),Cs(9,"span",13),JC(10,"*"),hl()(),Cs(11,"select",14)(12,"option",15),JC(13,"Select type"),hl(),dC(14,se,2,2,"option",16,iC().trackByType,true),hl(),ZI(),hl(),Cs(16,"div",11)(17,"label",17),JC(18,"Name "),Cs(19,"span",13),JC(20,"*"),hl()(),Mg(21,"input",18),ZI(),hl(),Cs(22,"div",11)(23,"label",19),JC(24,"Description"),hl(),Mg(25,"textarea",20),ZI(),hl(),Cs(26,"div",11)(27,"label",21),JC(28,"Auth Setting"),hl(),Cs(29,"select",22)(30,"option",23),JC(31,"None"),hl(),dC(32,ce,2,2,"option",16,lC),hl(),ZI(),hl(),aC(34,me,2,2,"div",24),Cs(35,"div",25)(36,"button",26),JC(37),hl(),aC(38,de,2,2,"button",27),Cs(39,"button",28),kg("click",function(){Cf(e);let s=CC();return Tf(s.cancel())}),JC(40,"Cancel"),hl()()();}if(r&2){let e,n=CC();_g("formGroup",n.form),sI(),_g("disabled",n.isEditMode()),sI(3),fC(n.scopeOptions),sI(7),_g("formControl",n.typeControl),QI(),sI(3),fC(n.integrationTypes()),sI(7),_g("formControl",n.nameControl),QI(),sI(4),_g("formControl",n.descriptionControl),QI(),sI(4),_g("formControl",n.authSettingNameControl),QI(),sI(),_g("ngValue",null),sI(2),fC(n.availableAuthSettings()),sI(2),cC((e=n.schema())?34:-1,e),sI(2),_g("disabled",n.nameControl.invalid||n.typeControl.invalid||n.isSubmitting()),sI(),Dl(" ",n.isEditMode()?"Save changes":"Create"," "),sI(),cC(n.isEditMode()?38:-1);}}var ge=new Set(["platform","namespace","userOnNs","userGlobal"]),N=Object.freeze({platform:"Configuration plateforme",namespace:"Configuration du namespace",userOnNs:"Pour moi sur ce namespace",userGlobal:"Pour moi globalement"}),ie=class r{route=g(V);router=g(G);destroyRef=g(Ce);state=g(N$1);integrationTypeController=g(F);authSettingState=g(R);namespaceRole=g(v);namespaceId=this.route.snapshot.params.namespaceId;isPlatformMode=!this.namespaceId;isAdmin=F$1(this.isPlatformMode?br(true):this.namespaceRole.isAdminOfNamespace$(this.namespaceId),{initialValue:this.isPlatformMode});form=new z({name:new _t("",{nonNullable:true,validators:[_e.required,_e.minLength(1)]}),description:new _t(null),type:new _t("",{nonNullable:true,validators:[_e.required]}),scope:new _t("namespace",{nonNullable:true})});get nameControl(){return this.form.controls.name}get descriptionControl(){return this.form.controls.description}get typeControl(){return this.form.controls.type}get scopeControl(){return this.form.controls.scope}isEditMode=Wi(false);isSubmitting=Wi(false);isLoading=Wi(false);isExporting=Wi(false);scopeOptions=[{value:"platform",label:N.platform},{value:"namespace",label:N.namespace},{value:"userOnNs",label:N.userOnNs},{value:"userGlobal",label:N.userGlobal}];authSettingNameControl=new _t(null);availableAuthSettings=Wi([]);paramsValue=Wi(null);initialParams=Wi(null);integrationTypes=F$1(this.integrationTypeController.listTypesIntegrationType(),{initialValue:[]});selectedType=F$1(this.form.controls.type.valueChanges,{initialValue:this.form.controls.type.value});schema=TT(()=>{let t=this.selectedType();return t?this.integrationTypes().find(n=>n.type===t)?.configSchema??null:null});existingConfig=null;constructor(){$f(()=>{if(this.isAdmin()||this.isEditMode())return;["platform","namespace"].includes(this.scopeControl.value)&&this.scopeControl.setValue("userOnNs");});}ngOnInit(){this.namespaceId&&this.state.setNamespace(this.namespaceId);let t=this.route.snapshot.paramMap,e=this.route.snapshot.queryParamMap,n=t.get("integrationId");if(n){this.isEditMode.set(true),this.scopeControl.disable(),this.loadConfig(n);return}if(this.isPlatformMode){this.scopeControl.setValue("platform"),this.scopeControl.disable(),this.loadAuthSettingsForScope("platform");return}let s=this.parseScope(e.get("scope"));this.scopeControl.setValue(s),this.loadAuthSettingsForScope(s),this.scopeControl.valueChanges.pipe(U(this.destroyRef)).subscribe(re=>{this.loadAuthSettingsForScope(re);});let m=e.get("template");m&&this.hydrateFromTemplate(m);}parseScope(t){return t&&ge.has(t)?t:"namespace"}deriveScopeFromConfig(t){return !t.userId&&!t.namespaceId?"platform":t.userId?t.namespaceId?"userOnNs":"userGlobal":"namespace"}loadConfig(t){this.isLoading.set(true),this.state.getById(t).pipe(U(this.destroyRef)).subscribe({next:e=>{this.existingConfig=e;let n=this.deriveScopeFromConfig(e);this.scopeControl.setValue(n),this.applyConfigToForm(e),this.loadAuthSettingsForScope(n),this.isLoading.set(false);},error:()=>{this.isLoading.set(false),console.warn(`[IntegrationForm] Could not load config '${t}' \u2014 navigating back`),this.navigateBack();}});}hydrateFromTemplate(t){this.isLoading.set(true),this.state.getById(t).pipe(U(this.destroyRef)).subscribe({next:e=>{this.applyConfigToForm(e),this.isLoading.set(false),this.router.navigate([],{relativeTo:this.route,queryParams:{template:null,templateScope:null},queryParamsHandling:"merge",replaceUrl:true});},error:e=>{console.warn(`[IntegrationForm] Could not hydrate from template ${t}:`,e),this.isLoading.set(false),this.router.navigate([],{relativeTo:this.route,queryParams:{template:null,templateScope:null},queryParamsHandling:"merge",replaceUrl:true});}});}applyConfigToForm(t){this.nameControl.setValue(t.name),this.descriptionControl.setValue(t.description??null),this.typeControl.setValue(t.integrationType),this.initialParams.set(t.parameters),this.paramsValue.set(t.parameters),this.authSettingNameControl.setValue(t.authSettingName??null);}loadAuthSettingsForScope(t){let e;switch(t){case "platform":e=this.authSettingState.loadPlatformSettings();break;case "namespace":e=this.authSettingState.loadNamespaceSettings(this.namespaceId);break;case "userOnNs":e=this.authSettingState.loadUserSettings(this.namespaceId);break;case "userGlobal":e=this.authSettingState.loadUserSettings("global");break}e.pipe(U(this.destroyRef)).subscribe({next:n=>{let s=n.map(m=>m.name).filter(Boolean);this.availableAuthSettings.set([...new Set(s)]);},error:()=>this.availableAuthSettings.set([])});}onParamsChange(t){this.paramsValue.set(t);}submit(){if(this.nameControl.invalid||this.typeControl.invalid||this.isSubmitting())return;if(this.isEditMode()&&!this.existingConfig?.id){this.navigateBack();return}this.isSubmitting.set(true);let t=this.descriptionControl.value?.trim(),e={name:this.nameControl.value.trim(),description:t||null,integrationType:this.typeControl.value,parameters:this.paramsValue(),authSettingName:this.authSettingNameControl.value||null},n=this.form.getRawValue().scope;(this.isEditMode()&&this.existingConfig?.id?this.state.update(this.existingConfig.id,e,n,this.existingConfig):this.state.create(e,n,this.namespaceId??null)).pipe(U(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:()=>this.isSubmitting.set(false)});}exportYaml(){let t=this.existingConfig?.id;!t||this.isExporting()||(this.isExporting.set(true),this.state.exportAsYaml(t).pipe(U(this.destroyRef)).subscribe({next:e=>{let n=new Blob([e],{type:"application/yaml"}),s=URL.createObjectURL(n),m=document.createElement("a");m.href=s,m.download=`${this.existingConfig?.name??"integration"}.yaml`,m.click(),URL.revokeObjectURL(s),this.isExporting.set(false);},error:()=>this.isExporting.set(false)}));}cancel(){this.navigateBack();}navigateBack(){this.isPlatformMode?this.router.navigate(["/agentos","admin","integration-configs"]):this.router.navigate(["/agentos",this.namespaceId,"integrations"]);}trackByType(t,e){return e.type}trackByScope(t,e){return e.value}static \u0275fac=function(e){return new(e||r)};static \u0275cmp=jw({type:r,selectors:[["agentos-integration-form"]],decls:10,vars:2,consts:[[1,"integration-form"],[1,"integration-form__header"],["type","button","title","Back to integrations",1,"integration-form__back",3,"click"],[1,"integration-form__back-icon"],[1,"integration-form__title"],[1,"integration-form__loading"],[1,"integration-form__form",3,"formGroup"],[1,"integration-form__form",3,"ngSubmit","formGroup"],[1,"integration-form__field","integration-form__scope",3,"disabled"],[1,"integration-form__label"],[1,"integration-form__scope-option"],[1,"integration-form__field"],["for","integration-type",1,"integration-form__label"],["aria-hidden","true"],["id","integration-type",1,"integration-form__select",3,"formControl"],["value","","disabled",""],[3,"value"],["for","integration-name",1,"integration-form__label"],["id","integration-name","type","text","placeholder","Integration name","autocomplete","off",1,"integration-form__input",3,"formControl"],["for","integration-description",1,"integration-form__label"],["id","integration-description","placeholder","Optional description","rows","3",1,"integration-form__textarea",3,"formControl"],["for","integration-auth-setting",1,"integration-form__label"],["id","integration-auth-setting",1,"integration-form__select",3,"formControl"],[3,"ngValue"],[1,"integration-form__schema-form"],[1,"integration-form__actions"],["type","submit",1,"integration-form__btn","integration-form__btn--primary",3,"disabled"],["type","button",1,"integration-form__btn","integration-form__btn--export",3,"disabled"],["type","button",1,"integration-form__btn",3,"click"],["type","radio",3,"value","formControl","disabled"],[3,"valueChange","schema","value"],["type","button",1,"integration-form__btn","integration-form__btn--export",3,"click","disabled"]],template:function(e,n){e&1&&(Cs(0,"div",0)(1,"header",1)(2,"button",2),kg("click",function(){return n.cancel()}),Cs(3,"span",3),JC(4,"\u2190"),hl(),JC(5," Integrations "),hl(),Cs(6,"h1",4),JC(7),hl()(),aC(8,ae,2,0,"p",5)(9,pe,41,11,"form",6),hl()),e&2&&(sI(7),Kg(n.isEditMode()?"Edit integration":"New integration"),sI(),cC(n.isLoading()?8:9));},dependencies:[ni,Jn,Qn,ei,Ye,At,mn,Zn,Xn,Cn,En,nt],styles:[".integration-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.integration-form__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.integration-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)}.integration-form__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.integration-form__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.integration-form__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:700;color:var(--color-text);letter-spacing:-.02em}.integration-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:.9rem;margin:0}.integration-form__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.25rem}.integration-form__scope[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.4rem;border:1px solid var(--color-divider);border-radius:0;padding:.75rem 1rem;background:transparent;margin:0}.integration-form__scope[disabled][_ngcontent-%COMP%]{opacity:.6}.integration-form__scope-option[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--color-text);cursor:pointer}.integration-form__scope-option[_ngcontent-%COMP%] input[type=radio][_ngcontent-%COMP%]{margin:0}.integration-form__field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.integration-form__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text)}.integration-form__input[_ngcontent-%COMP%], .integration-form__textarea[_ngcontent-%COMP%], .integration-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}.integration-form__input[_ngcontent-%COMP%]:focus, .integration-form__textarea[_ngcontent-%COMP%]:focus, .integration-form__select[_ngcontent-%COMP%]:focus{border-color:var(--color-accent)}.integration-form__input[_ngcontent-%COMP%]::placeholder, .integration-form__textarea[_ngcontent-%COMP%]::placeholder, .integration-form__select[_ngcontent-%COMP%]::placeholder{color:var(--color-neutral-500)}.integration-form__textarea[_ngcontent-%COMP%]{resize:vertical;min-height:4.5rem;line-height:1.5}.integration-form__select[_ngcontent-%COMP%]{cursor:pointer}.integration-form__select[_ngcontent-%COMP%] option[disabled][_ngcontent-%COMP%]{color:var(--color-text-secondary)}.integration-form__schema-form[_ngcontent-%COMP%]{padding:1rem;border-radius:0;border:1px solid var(--color-divider);background:var(--color-surface)}.integration-form__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.integration-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}.integration-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-neutral-500)}.integration-form__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.integration-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.integration-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-accent-700);border-color:var(--color-accent-700)}.integration-form__btn--export[_ngcontent-%COMP%]{border-color:var(--color-divider);color:var(--color-text-secondary)}.integration-form__btn--export[_ngcontent-%COMP%]:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}"]})};export{ie as IntegrationFormComponent};
@@ -1 +0,0 @@
1
- import {N}from'./chunk-cyIUrL9y.js';import {g,ao as V,G,C as Ce$1,da as M,dn as D,d8 as F,W as Wi,$ as $y,I as br,b as U,r as re,a7 as va,z as z$1,a as P,j as jw,s as si,k as Cs,n as kg,J as JC,m as hl,o as aC,t as sI,a8 as Kg,u as cC,ac as CC,_ as _g,a9 as vC,M as Mg,a3 as ZI,a6 as QI,a5 as Dl,q as dC,v as fC,bo as uC,aa as Cf,ab as Tf,S as Sg}from'./main-P72KGKGP.js';import'./chunk-CUv3B-19.js';import {o as z,k as _t,b as _e$1,n as ni,J as Jn,Q as Qn,e as ei,Y as Ye,a as wt,Z as Zn,l as Xn,C as Cn,E as En}from'./chunk-BLF3w_iN.js';import'./chunk-Dpnh8sS8.js';import'./chunk-C_OF_Yht.js';import'./chunk-CYOKxOkd.js';import'./chunk-DAxRjiEx.js';var le=(r,t)=>t.config.id,ce=(r,t)=>t.type;function ge(r,t){if(r&1&&(Cs(0,"a",5),JC(1,"View resolved definition \u2192"),hl()),r&2){let e=CC();_g("routerLink",e.inspectRoute());}}function se(r,t){r&1&&(Cs(0,"span",6),JC(1,"Platform level"),hl());}function de(r,t){r&1&&(Cs(0,"p",7),JC(1,"Loading\u2026"),hl());}function me(r,t){if(r&1&&(Cs(0,"span",41),JC(1),hl()),r&2){let e=CC().$implicit;sI(),Kg(e.config.integrationType);}}function fe(r,t){if(r&1&&(Mg(0,"input",42),ZI()),r&2){let e=CC().$implicit;_g("formControl",e.toolsControl),QI();}}function pe(r,t){if(r&1){let e=vC();Cs(0,"div",37)(1,"label",38)(2,"input",39),kg("change",function(){let l=Cf(e).$implicit,g=CC(3);return Tf(g.toggleIntegration(l))}),hl(),Cs(3,"span",40),JC(4),hl(),aC(5,me,2,1,"span",41),hl(),aC(6,fe,1,1,"input",42),hl();}if(r&2){let e=t.$implicit;sI(2),_g("checked",e.enabled()),sI(2),Kg(e.config.name),sI(),cC(e.config.integrationType?5:-1),sI(),cC(e.enabled()?6:-1);}}function _e(r,t){if(r&1&&(Cs(0,"p",48),JC(1),hl()),r&2){let e=CC().$implicit;sI(),Dl(" Restricted to: ",e.restrictedTools.join(", ")," (set outside this form, preserved on save) ");}}function ue(r,t){if(r&1){let e=vC();Cs(0,"div",37)(1,"label",38)(2,"span",40),JC(3),hl(),Cs(4,"span",41),JC(5,"built-in"),hl()(),Cs(6,"select",44),kg("change",function(l){let g=Cf(e).$implicit,m=CC(4);return Tf(m.setBuiltInState(g,l.target.value))}),Cs(7,"option",45),JC(8),hl(),Cs(9,"option",46),JC(10,"Enabled"),hl(),Cs(11,"option",47),JC(12,"Disabled"),hl()(),aC(13,_e,2,1,"p",48),Cs(14,"p",49),JC(15),hl()();}if(r&2){let e=t.$implicit,o=CC(4);sI(),Sg("for","built-in-"+e.type),sI(2),Kg(e.displayName),sI(3),_g("id","built-in-"+e.type)("value",e.state()),sI(2),Kg(o.builtInDefaultLabel(e)),sI(5),cC(e.state()==="on"&&e.restrictedTools?13:-1),sI(2),Kg(e.description);}}function be(r,t){if(r&1&&(Cs(0,"p",43),JC(1,"Built-in integrations"),hl(),dC(2,ue,16,7,"div",37,ce)),r&2){let e=CC(3);sI(2),fC(e.builtInRows());}}function Ce(r,t){if(r&1&&(Cs(0,"fieldset",20)(1,"legend",25),JC(2,"Integrations"),hl(),Cs(3,"p",36),JC(4," Select which integrations this agent can use. Leave tool names empty to allow all tools from an integration. "),hl(),dC(5,pe,7,4,"div",37,le),aC(7,be,4,0),hl()),r&2){let e=CC(2);sI(5),fC(e.integrationRows()),sI(2),cC(e.builtInRows().length>0?7:-1);}}function xe(r,t){if(r&1){let e=vC();Cs(0,"li",50),Mg(1,"input",51),ZI(),Cs(2,"button",52),kg("click",function(){let l=Cf(e).$implicit,g=CC(3);return Tf(g.removeSubAgent(l))}),JC(3," \u{1F5D1} "),hl()();}if(r&2){let e=t.$implicit;sI(),_g("formControl",e.control),QI();}}function ye(r,t){if(r&1&&(Cs(0,"ul",28),dC(1,xe,4,1,"li",50,uC),hl()),r&2){let e=CC(2);sI(),fC(e.subAgentRows());}}function he(r,t){if(r&1){let e=vC();Cs(0,"button",53),kg("click",function(){Cf(e);let l=CC(2);return Tf(l.exportYaml())}),JC(1),hl();}if(r&2){let e=CC(2);_g("disabled",e.isExporting()),sI(),Dl(" ",e.isExporting()?"Exporting\u2026":"Export as YAML"," ");}}function ve(r,t){if(r&1){let e=vC();Cs(0,"form",9),kg("ngSubmit",function(){Cf(e);let l=CC();return Tf(l.submit())}),Cs(1,"div",10)(2,"label",11),JC(3,"Name "),Cs(4,"span",12),JC(5,"*"),hl()(),Mg(6,"input",13),ZI(),hl(),Cs(7,"div",10)(8,"label",14),JC(9,"Description"),hl(),Mg(10,"input",15),ZI(),hl(),Cs(11,"div",10)(12,"label",16),JC(13,"Model name"),hl(),Mg(14,"input",17),ZI(),hl(),Cs(15,"div",10)(16,"label",18),JC(17,"Instructions"),hl(),Mg(18,"textarea",19),ZI(),hl(),aC(19,Ce,8,1,"fieldset",20),Cs(20,"div",10)(21,"label",21),Mg(22,"input",22),ZI(),Cs(23,"span",23),JC(24,"Advanced mode"),hl()(),Cs(25,"p",24),JC(26," When enabled, this agent uses a multi-step reasoning loop instead of a single LLM call. "),hl()(),Cs(27,"div",10)(28,"label",21),Mg(29,"input",22),ZI(),Cs(30,"span",23),JC(31,"Enabled"),hl()(),Cs(32,"p",24),JC(33,"Disabled agents are excluded from namespace resolution."),hl()(),Cs(34,"div",10)(35,"span",25),JC(36,"Sub-agents"),hl(),Cs(37,"p",26),JC(38," Glob patterns for agents this agent may delegate to. "),Cs(39,"code",27),JC(40,"*"),hl(),JC(41," matches any sequence of characters (e.g.\xA0"),Cs(42,"code",27),JC(43,"*Fixer"),hl(),JC(44,", "),Cs(45,"code",27),JC(46,"*"),hl(),JC(47," for all). Leave empty to disable delegation. "),hl(),aC(48,ye,3,0,"ul",28),Cs(49,"div",29)(50,"input",30),kg("keydown.enter",function(){Cf(e);let l=CC();return Tf(l.addSubAgent())}),hl(),ZI(),Cs(51,"button",31),kg("click",function(){Cf(e);let l=CC();return Tf(l.addSubAgent())}),JC(52," + "),hl()()(),Cs(53,"div",32)(54,"button",33),JC(55),hl(),aC(56,he,2,2,"button",34),Cs(57,"button",35),kg("click",function(){Cf(e);let l=CC();return Tf(l.cancel())}),JC(58,"Cancel"),hl()()();}if(r&2){let e=CC();_g("formGroup",e.form),sI(6),_g("formControl",e.nameControl),QI(),sI(4),_g("formControl",e.descriptionControl),QI(),sI(4),_g("formControl",e.modelNameControl),QI(),sI(4),_g("formControl",e.instructionsControl),QI(),sI(),cC(e.integrationRows().length>0||e.builtInRows().length>0?19:-1),sI(3),_g("formControl",e.advancedExecutionControl),QI(),sI(7),_g("formControl",e.enabledControl),QI(),sI(19),cC(e.subAgentRows().length>0?48:-1),sI(2),_g("formControl",e.newSubAgentControl),QI(),sI(),_g("disabled",!e.newSubAgentControl.value.trim()),sI(3),_g("disabled",e.form.invalid||e.isSubmitting()),sI(),Dl(" ",e.isEditMode()?"Save changes":"Create"," "),sI(),cC(e.isEditMode()?56:-1);}}var ae=class r{route=g(V);router=g(G);destroyRef=g(Ce$1);agentConfigController=g(M);exportService=g(D);integrationConfigState=g(N);integrationTypeController=g(F);namespaceId=this.route.snapshot.params.namespaceId;isPlatformMode=!this.namespaceId;form=new z({name:new _t("",{nonNullable:true,validators:[_e$1.required,_e$1.minLength(1)]}),description:new _t(null),modelName:new _t(null),instructions:new _t(null),advancedExecution:new _t(false,{nonNullable:true}),enabled:new _t(false,{nonNullable:true})});get nameControl(){return this.form.controls.name}get descriptionControl(){return this.form.controls.description}get modelNameControl(){return this.form.controls.modelName}get instructionsControl(){return this.form.controls.instructions}get advancedExecutionControl(){return this.form.controls.advancedExecution}get enabledControl(){return this.form.controls.enabled}subAgentRows=Wi([]);newSubAgentControl=new _t("",{nonNullable:true});isEditMode=Wi(false);isSubmitting=Wi(false);isLoading=Wi(false);isExporting=Wi(false);builtInRows=Wi([]);inspectRoute(){let t=this.route.snapshot.paramMap.get("agentConfigId")??"";return this.isPlatformMode?["/agentos","admin","agent-configs",t,"inspect"]:["/agentos",this.namespaceId,"agent-configs",t,"inspect"]}integrationRows=Wi([]);existingConfig=null;ngOnInit(){let t=this.route.snapshot.paramMap.get("agentConfigId");t?(this.isEditMode.set(true),this.loadConfigAndIntegrations(t)):this.loadIntegrations(void 0);}loadConfigAndIntegrations(t){this.isLoading.set(true),$y({config:this.agentConfigController.getByIdAgentConfig(t),namespaceIntegrations:this.namespaceId?this.integrationConfigState.loadNamespaceConfigs(this.namespaceId):br([]),platformIntegrations:this.integrationConfigState.loadPlatformConfigs(),builtInTypes:this.loadBuiltInTypes()}).pipe(U(this.destroyRef)).subscribe({next:({config:e,namespaceIntegrations:o,platformIntegrations:l,builtInTypes:g})=>{this.existingConfig=e,this.nameControl.setValue(e.name),this.descriptionControl.setValue(e.description??null),this.modelNameControl.setValue(e.modelName??null),this.instructionsControl.setValue(e.instructions??null),this.advancedExecutionControl.setValue(e.advancedExecution??false),this.enabledControl.setValue(e.enabled??true);let m=[...l,...o];this.integrationRows.set(this.buildIntegrationRows(m,e.integrations??void 0)),this.builtInRows.set(this.buildBuiltInRows(g,e.integrations??void 0)),this.subAgentRows.set((e.subAgents??[]).map(P=>({control:new _t(P,{nonNullable:true})}))),this.isLoading.set(false);},error:()=>{this.isLoading.set(false),this.navigateBack();}});}loadIntegrations(t){$y({namespaceIntegrations:this.namespaceId?this.integrationConfigState.loadNamespaceConfigs(this.namespaceId):br([]),platformIntegrations:this.integrationConfigState.loadPlatformConfigs(),builtInTypes:this.loadBuiltInTypes()}).pipe(U(this.destroyRef)).subscribe({next:({namespaceIntegrations:e,platformIntegrations:o,builtInTypes:l})=>{let g=[...o,...e];this.integrationRows.set(this.buildIntegrationRows(g,t??void 0)),this.builtInRows.set(this.buildBuiltInRows(l,t??void 0));}});}loadBuiltInTypes(){return this.integrationTypeController.listTypesIntegrationType().pipe(re(t=>t.filter(e=>!e.configSchema)),va(t=>(console.error("[agent-config-form] failed to load integration types",t),br([]))))}buildIntegrationRows(t,e){return t.map(o=>{let l=o.name??"",g=e?.[l],m=e!=null&&l in e,P=Array.isArray(g)?g.join(", "):"";return {config:o,enabled:Wi(m),toolsControl:new _t(P,{nonNullable:true})}})}buildBuiltInRows(t,e){return t.map(o=>{let l=e!=null&&o.type in e,g=e?.[o.type],m=l?Array.isArray(g)&&g.length===0?"off":"on":"default";return {type:o.type,displayName:o.displayName,description:o.description,enabledByDefault:o.enabledByDefault===true,state:Wi(m),restrictedTools:Array.isArray(g)&&g.length>0?g:null}})}toggleIntegration(t){t.enabled.update(e=>!e);}setBuiltInState(t,e){t.state.set(e);}builtInDefaultLabel(t){return t.enabledByDefault?"Platform default (enabled)":"Platform default (disabled)"}addSubAgent(){let t=this.newSubAgentControl.value.trim();t&&(this.subAgentRows.update(e=>[...e,{control:new _t(t,{nonNullable:true})}]),this.newSubAgentControl.reset(""));}removeSubAgent(t){this.subAgentRows.update(e=>e.filter(o=>o!==t));}buildSubAgentsPayload(){let t=this.subAgentRows().map(e=>e.control.value.trim()).filter(e=>e.length>0);return t.length>0?t:void 0}buildIntegrationsPayload(){let t={};for(let o of this.integrationRows().filter(l=>l.enabled())){let l=o.config.name??"",g=o.toolsControl.value.trim();t[l]=g===""?null:g.split(",").map(m=>m.trim()).filter(m=>m.length>0);}for(let o of this.builtInRows()){let l=o.state();l==="on"?t[o.type]=o.restrictedTools??null:l==="off"&&(t[o.type]=[]);}let e=new Set([...this.integrationRows().map(o=>o.config.name??""),...this.builtInRows().map(o=>o.type)]);for(let[o,l]of Object.entries(this.existingConfig?.integrations??{}))e.has(o)||(t[o]=l);return Object.keys(t).length>0?t:void 0}submit(){if(this.form.invalid||this.isSubmitting())return;this.addSubAgent(),this.isSubmitting.set(true);let t=z$1(P({},this.existingConfig??{}),{createdOn:this.existingConfig?.createdOn,updatedOn:this.existingConfig?.updatedOn,namespaceId:this.namespaceId,name:this.nameControl.value.trim(),description:this.descriptionControl.value?.trim()||void 0,modelName:this.modelNameControl.value?.trim()||void 0,instructions:this.instructionsControl.value?.trim()||void 0,integrations:this.buildIntegrationsPayload(),advancedExecution:this.advancedExecutionControl.value,enabled:this.enabledControl.value,subAgents:this.buildSubAgentsPayload()});(this.isEditMode()?this.agentConfigController.updateAgentConfig(this.existingConfig.id??"",t):this.agentConfigController.createAgentConfig(t)).pipe(U(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:()=>this.isSubmitting.set(false)});}exportYaml(){let t=this.existingConfig?.id;!t||this.isExporting()||(this.isExporting.set(true),this.exportService.exportAsYaml(t).pipe(U(this.destroyRef)).subscribe({next:e=>{let o=new Blob([e],{type:"application/yaml"}),l=URL.createObjectURL(o),g=document.createElement("a");g.href=l,g.download=`${this.existingConfig?.name??"agent"}.yaml`,g.click(),URL.revokeObjectURL(l),this.isExporting.set(false);},error:()=>this.isExporting.set(false)}));}cancel(){this.navigateBack();}navigateBack(){this.isPlatformMode?this.router.navigate(["/agentos","admin","agent-configs"]):this.router.navigate(["/agentos",this.namespaceId,"agent-configs"]);}static \u0275fac=function(e){return new(e||r)};static \u0275cmp=jw({type:r,selectors:[["agentos-agent-config-form"]],decls:12,vars:4,consts:[[1,"agent-config-form"],[1,"agent-config-form__header"],["type","button","title","Back to agent configs",1,"agent-config-form__back",3,"click"],[1,"agent-config-form__back-icon"],[1,"agent-config-form__title"],[1,"agent-config-form__sibling-link",3,"routerLink"],[1,"agent-config-form__platform-badge"],[1,"agent-config-form__loading"],[1,"agent-config-form__form",3,"formGroup"],[1,"agent-config-form__form",3,"ngSubmit","formGroup"],[1,"agent-config-form__field"],["for","agent-config-name",1,"agent-config-form__label"],["aria-hidden","true"],["id","agent-config-name","type","text","placeholder","e.g. Support agent","autocomplete","off",1,"agent-config-form__input",3,"formControl"],["for","agent-config-description",1,"agent-config-form__label"],["id","agent-config-description","type","text","placeholder","Optional \u2014 short description of this agent","autocomplete","off",1,"agent-config-form__input",3,"formControl"],["for","agent-config-model-name",1,"agent-config-form__label"],["id","agent-config-model-name","type","text","placeholder","Optional \u2014 model alias or name to use","autocomplete","off",1,"agent-config-form__input",3,"formControl"],["for","agent-config-instructions",1,"agent-config-form__label"],["id","agent-config-instructions","rows","6","placeholder","Optional \u2014 system instructions for this agent",1,"agent-config-form__textarea",3,"formControl"],[1,"agent-config-form__integrations"],[1,"agent-config-form__toggle-label"],["type","checkbox",1,"agent-config-form__toggle-checkbox",3,"formControl"],[1,"agent-config-form__toggle-text"],[1,"agent-config-form__toggle-hint"],[1,"agent-config-form__label"],[1,"agent-config-form__field-hint"],[1,"agent-config-form__code"],[1,"agent-config-form__sub-agent-list"],[1,"agent-config-form__sub-agent-add"],["type","text","placeholder","e.g. *Fixer or *","autocomplete","off",1,"agent-config-form__input","agent-config-form__sub-agent-input",3,"keydown.enter","formControl"],["type","button","title","Add pattern",1,"agent-config-form__sub-agent-btn","agent-config-form__sub-agent-btn--add",3,"click","disabled"],[1,"agent-config-form__actions"],["type","submit",1,"agent-config-form__btn","agent-config-form__btn--primary",3,"disabled"],["type","button",1,"agent-config-form__btn","agent-config-form__btn--export",3,"disabled"],["type","button",1,"agent-config-form__btn",3,"click"],[1,"agent-config-form__integrations-hint"],[1,"agent-config-form__integration-row"],[1,"agent-config-form__integration-toggle"],["type","checkbox",1,"agent-config-form__integration-checkbox",3,"change","checked"],[1,"agent-config-form__integration-name"],[1,"agent-config-form__integration-type"],["type","text","placeholder","Tool names, comma-separated (empty = all tools)","autocomplete","off",1,"agent-config-form__input","agent-config-form__integration-tools",3,"formControl"],[1,"agent-config-form__integrations-separator"],[1,"agent-config-form__integration-state",3,"change","id","value"],["value","default"],["value","on"],["value","off"],[1,"agent-config-form__integration-restriction"],[1,"agent-config-form__integration-builtin-desc"],[1,"agent-config-form__sub-agent-row"],["type","text","autocomplete","off",1,"agent-config-form__input","agent-config-form__sub-agent-input",3,"formControl"],["type","button","title","Remove",1,"agent-config-form__sub-agent-btn","agent-config-form__sub-agent-btn--danger",3,"click"],["type","button",1,"agent-config-form__btn","agent-config-form__btn--export",3,"click","disabled"]],template:function(e,o){e&1&&(Cs(0,"div",0)(1,"header",1)(2,"button",2),kg("click",function(){return o.cancel()}),Cs(3,"span",3),JC(4,"\u2190"),hl(),JC(5," Agent Configs "),hl(),Cs(6,"h1",4),JC(7),hl(),aC(8,ge,2,1,"a",5),aC(9,se,2,0,"span",6),hl(),aC(10,de,2,0,"p",7)(11,ve,59,14,"form",8),hl()),e&2&&(sI(7),Kg(o.isEditMode()?"Edit agent config":"New agent config"),sI(),cC(o.isEditMode()?8:-1),sI(),cC(o.isPlatformMode?9:-1),sI(),cC(o.isLoading()?10:11));},dependencies:[ni,Jn,Qn,ei,Ye,wt,Zn,Xn,Cn,En,si],styles:[".agent-config-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.agent-config-form__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.agent-config-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)}.agent-config-form__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.agent-config-form__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.agent-config-form__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:700;color:var(--color-text);letter-spacing:-.02em}.agent-config-form__sibling-link[_ngcontent-%COMP%]{font-size:.8125rem;color:var(--color-accent);text-decoration:none}.agent-config-form__sibling-link[_ngcontent-%COMP%]:hover{text-decoration:underline}.agent-config-form__platform-badge[_ngcontent-%COMP%]{display:inline-block;font-size:.75rem;font-weight:500;color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-divider);border-radius:0;padding:.125rem .5rem;letter-spacing:.02em;align-self:flex-start}.agent-config-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:.9rem;margin:0}.agent-config-form__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.25rem}.agent-config-form__field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.agent-config-form__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text)}.agent-config-form__input[_ngcontent-%COMP%], .agent-config-form__textarea[_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}.agent-config-form__input[_ngcontent-%COMP%]:focus, .agent-config-form__textarea[_ngcontent-%COMP%]:focus{border-color:var(--color-accent)}.agent-config-form__input[_ngcontent-%COMP%]::placeholder, .agent-config-form__textarea[_ngcontent-%COMP%]::placeholder{color:var(--color-neutral-500)}.agent-config-form__textarea[_ngcontent-%COMP%]{resize:vertical;min-height:120px;line-height:1.5}.agent-config-form__integrations[_ngcontent-%COMP%]{border:1px solid var(--color-divider);border-radius:0;padding:1rem;margin:0;display:flex;flex-direction:column;gap:.75rem}.agent-config-form__integrations-hint[_ngcontent-%COMP%]{margin:0;font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.agent-config-form__integration-row[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.agent-config-form__integration-toggle[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.agent-config-form__integration-checkbox[_ngcontent-%COMP%]{width:1rem;height:1rem;flex-shrink:0;accent-color:var(--color-accent);cursor:pointer}.agent-config-form__integration-name[_ngcontent-%COMP%]{font-size:.9rem;font-weight:500;color:var(--color-text)}.agent-config-form__integration-type[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary);font-family:monospace}.agent-config-form__integration-tools[_ngcontent-%COMP%]{margin-left:1.5rem;font-size:.875rem}.agent-config-form__integrations-separator[_ngcontent-%COMP%]{margin:.25rem 0 0;padding-top:.5rem;border-top:1px solid var(--color-divider);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--color-neutral-500);font-family:var(--font-heading)}.agent-config-form__integration-state[_ngcontent-%COMP%]{margin-left:1.5rem;padding:.375rem .625rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.875rem;font-family:inherit;outline:none;transition:border-color .15s ease}.agent-config-form__integration-state[_ngcontent-%COMP%]:focus{border-color:var(--color-primary, #007aff)}.agent-config-form__integration-restriction[_ngcontent-%COMP%]{margin:0 0 0 1.5rem;font-size:.8rem;font-style:italic;color:var(--color-text-secondary, #6e6e73);line-height:1.4}.agent-config-form__integration-builtin-desc[_ngcontent-%COMP%]{margin:0 0 0 1.5rem;font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.agent-config-form__field-hint[_ngcontent-%COMP%]{margin:.25rem 0 0;font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.agent-config-form__code[_ngcontent-%COMP%]{font-family:monospace;font-size:.85em;background:var(--color-surface-muted, rgba(0, 0, 0, .06));padding:.1em .3em;border-radius:0}.agent-config-form__sub-agent-list[_ngcontent-%COMP%]{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-direction:column;gap:.375rem}.agent-config-form__sub-agent-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem}.agent-config-form__sub-agent-input[_ngcontent-%COMP%]{flex:1;min-width:0}.agent-config-form__sub-agent-add[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;margin-top:.5rem}.agent-config-form__sub-agent-btn[_ngcontent-%COMP%]{flex-shrink:0;width:2rem;height:2rem;padding:0;border-radius:0;border:1px solid var(--color-divider);background:transparent;color:var(--color-text-secondary);font-size:.9rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease,border-color .15s ease,color .15s ease}.agent-config-form__sub-agent-btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-neutral-500);color:var(--color-text)}.agent-config-form__sub-agent-btn[_ngcontent-%COMP%]:disabled{opacity:.35;cursor:not-allowed}.agent-config-form__sub-agent-btn--add[_ngcontent-%COMP%]{width:2rem;height:2rem;font-size:1.25rem;font-weight:300;border-color:var(--color-accent);color:var(--color-accent)}.agent-config-form__sub-agent-btn--add[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-accent);color:#fff}.agent-config-form__sub-agent-btn--danger[_ngcontent-%COMP%]{border:1px solid transparent;color:var(--color-neutral-500)}.agent-config-form__sub-agent-btn--danger[_ngcontent-%COMP%]:hover:not(:disabled){border-color:var(--red);color:var(--red);background:color-mix(in srgb,var(--red) 10%,transparent)}.agent-config-form__toggle-label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.agent-config-form__toggle-checkbox[_ngcontent-%COMP%]{width:1rem;height:1rem;flex-shrink:0;accent-color:var(--color-accent);cursor:pointer}.agent-config-form__toggle-text[_ngcontent-%COMP%]{font-size:.9rem;font-weight:500;color:var(--color-text)}.agent-config-form__toggle-hint[_ngcontent-%COMP%]{margin:.25rem 0 0 1.5rem;font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.agent-config-form__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.agent-config-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}.agent-config-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-neutral-500)}.agent-config-form__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.agent-config-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.agent-config-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-accent-700);border-color:var(--color-accent-700)}"]})};export{ae as AgentConfigFormComponent};
@@ -1 +0,0 @@
1
- import {O}from'./chunk-OuaG8E_K.js';import {N as N$1}from'./chunk-cyIUrL9y.js';import {g,G,C as Ce,d9 as U,aJ as Tr,W as Wi,bS as Da,r as re,b as U$1,j as jw,aK as Lb,k as Cs,bf as gT,n as kg,m as hl,af as wg,A as AC,_ as _g,bg as yT,ah as dT,o as aC,ac as CC,u as cC,a9 as vC,aa as Cf,ab as Tf,ag as ET}from'./main-P72KGKGP.js';import'./chunk-CUv3B-19.js';import {W as Wn,S as Se}from'./chunk-CYOKxOkd.js';import'./chunk-DAxRjiEx.js';import'./chunk-BLF3w_iN.js';import'./chunk-Dpnh8sS8.js';import'./chunk-C_OF_Yht.js';var F=()=>[];function N(i,t){if(i&1){let e=vC();Cs(0,"agentos-integration-config-item",4),kg("editRequested",function(n){Cf(e);let f=CC(2);return Tf(f.onEdit(n))})("deleteRequested",function(n){Cf(e);let f=CC(2);return Tf(f.deleteConfig(n))}),hl();}i&2&&_g("config",t);}function j(i,t){if(i&1&&aC(0,N,1,1,"agentos-integration-config-item",3),i&2){let e,o=t.$implicit,n=CC();cC((e=n.resolveConfig(o.id))?0:-1,e);}}var V=class i{router=g(G);destroyRef=g(Ce);state=g(N$1);integrationConfigController=g(U);refresh$=new Tr(void 0);isLoading=Wi(true);configs$=this.refresh$.pipe(Da(()=>(this.isLoading.set(true),this.state.loadPlatformConfigs())));configItems$=this.configs$.pipe(re(t=>t.map(e=>({id:e.id??"",name:e.name,description:e.integrationType}))));configsById=new Map;constructor(){this.configs$.pipe(U$1(this.destroyRef)).subscribe({next:t=>{this.configsById=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","integration-configs","new"]);}deleteConfig(t){this.integrationConfigController.deleteIntegrationConfig(t.id??"").pipe(U$1(this.destroyRef)).subscribe(()=>this.refresh$.next());}onEdit(t){this.router.navigate(["/agentos","admin","integration-configs",t.id??"","edit"]);}resolveConfig(t){return this.configsById.get(t)??null}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=jw({type:i,selectors:[["agentos-platform-integration-configs"]],decls:5,vars:7,consts:[["integrationConfigItemTpl",""],["title","Platform Integration Configs","emptyMessage","No platform integration configs defined yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","loading","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],["scope","platform",3,"config"],["scope","platform",3,"editRequested","deleteRequested","config"]],template:function(e,o){if(e&1&&(Cs(0,"ds-entity-list",1),gT(1,"async"),kg("createRequested",function(){return o.openCreateForm()}),Cs(2,"ds-icon-button",2),kg("action",function(){return o.goBack()}),hl()(),wg(3,j,1,1,"ng-template",null,0,ET)),e&2){let n=AC(4);_g("items",yT(1,4,o.configItems$)??dT(6,F))("loading",o.isLoading())("showCreate",true)("itemTemplate",n);}},dependencies:[Wn,O,Se,Lb],styles:[".platform-integration-configs__back[_ngcontent-%COMP%]{background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-primary, #007aff);font-family:inherit}.platform-integration-configs__back[_ngcontent-%COMP%]:hover{text-decoration:underline}"]})};export{V as PlatformIntegrationConfigsComponent};
@@ -1 +0,0 @@
1
- import {I}from'./chunk-DCkYfo8J.js';import {g,ao as V$1,G as G$1,C as Ce,dm as B,df as $,aJ as Tr,W as Wi,bS as Da,$ as $y,a7 as va,I as br,r as re,b as U$1,j as jw,aK as Lb,k as Cs,bf as gT,n as kg,m as hl,af as wg,A as AC,_ as _g,bg as yT,ah as dT,o as aC,ac as CC,u as cC,a9 as vC,aa as Cf,ab as Tf,ag as ET}from'./main-P72KGKGP.js';import {W as Wn,S as Se}from'./chunk-CYOKxOkd.js';import'./chunk-DAxRjiEx.js';import'./chunk-BLF3w_iN.js';var K=()=>[];function U(n,o){if(n&1){let i=vC();Cs(0,"agentos-ai-model-item",4),kg("deleteRequested",function(a){Cf(i);let t=CC(2);return Tf(t.deleteModel(a))})("editRequested",function(a){Cf(i);let t=CC(2);return Tf(t.editModel(a))}),hl();}if(n&2){let i=CC().$implicit,e=CC();_g("model",o)("namespaceId",e.namespaceId)("readOnly",e.isPlatformModel(i.id));}}function j(n,o){if(n&1&&aC(0,U,1,3,"agentos-ai-model-item",3),n&2){let i,e=o.$implicit,a=CC();cC((i=a.resolveModel(e.id))?0:-1,i);}}var G="__platform__",J="Platform (read-only)",V=class n{route=g(V$1);router=g(G$1);destroyRef=g(Ce);aiModelController=g(B);aiProviderController=g($);namespaceId=this.route.snapshot.params.namespaceId;refresh$=new Tr(void 0);isLoading=Wi(true);data$=this.refresh$.pipe(Da(()=>(this.isLoading.set(true),$y({namespace:this.aiModelController.listByNamespaceIdAiModel(this.namespaceId),platform:this.aiModelController.listPlatformLevelAiModel().pipe(va(()=>br([]))),providers:this.aiProviderController.listAiProvider(this.namespaceId)}))));modelItems$=this.data$.pipe(re(({namespace:o,platform:i,providers:e})=>{let a=new Map(e.map(t=>[t.id??"",t.name]));return [...i.map(t=>({id:t.id??"",name:t.alias??t.apiModelName,description:t.apiModelName,groupKey:G,groupLabel:J})),...o.map(t=>({id:t.id??"",name:t.alias??t.apiModelName,description:t.apiModelName,groupKey:t.aiProviderId,groupLabel:a.get(t.aiProviderId)??t.aiProviderId}))]}));namespaceModelsById=new Map;platformModelsById=new Map;constructor(){this.data$.pipe(U$1(this.destroyRef)).subscribe({next:({namespace:o,platform:i})=>{this.namespaceModelsById=new Map(o.map(e=>[e.id??"",e])),this.platformModelsById=new Map(i.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,"ai-models","new"]);}editModel(o){this.router.navigate(["/agentos",this.namespaceId,"ai-models",o.id,"edit"]);}deleteModel(o){this.aiModelController.deleteAiModel(o.id??"").pipe(U$1(this.destroyRef)).subscribe(()=>this.refresh$.next());}resolveModel(o){return this.namespaceModelsById.get(o)??this.platformModelsById.get(o)??null}isPlatformModel(o){return this.platformModelsById.has(o)}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=jw({type:n,selectors:[["agentos-namespace-ai-models"]],decls:5,vars:7,consts:[["aiModelItemTpl",""],["title","AI models","emptyMessage","No AI models configured yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","loading","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[3,"model","namespaceId","readOnly"],[3,"deleteRequested","editRequested","model","namespaceId","readOnly"]],template:function(i,e){if(i&1&&(Cs(0,"ds-entity-list",1),gT(1,"async"),kg("createRequested",function(){return e.openCreateForm()}),Cs(2,"ds-icon-button",2),kg("action",function(){return e.goBack()}),hl()(),wg(3,j,1,1,"ng-template",null,0,ET)),i&2){let a=AC(4);_g("items",yT(1,4,e.modelItems$)??dT(6,K))("loading",e.isLoading())("showCreate",true)("itemTemplate",a);}},dependencies:[Wn,I,Se,Lb],encapsulation:2})};export{V as NamespaceAiModelsComponent};
@@ -1 +0,0 @@
1
- import {O}from'./chunk-BD91wN51.js';import {v}from'./chunk-DzcV-nhe.js';import {g,ao as V,G,C as Ce,W as Wi,F as F$1,de as xe,cd as $f,b as U,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,q as dC,a4 as lC,a3 as ZI,M as Mg,bo as uC,ac as CC,_ as _g,a6 as QI,v as fC,a5 as Dl,cH as iC,aa as Cf,ab as Tf}from'./main-P72KGKGP.js';import'./chunk-CUv3B-19.js';import {o as z,z as ze,k as _t,b as _e$1,n as ni,J as Jn,Q as Qn,e as ei,Y as Ye,A as At,m as mn,Z as Zn,l as Xn,C as Cn,E as En,p as An,q as Ct,V as Vt}from'./chunk-BLF3w_iN.js';import'./chunk-Dpnh8sS8.js';import'./chunk-C_OF_Yht.js';import'./chunk-CYOKxOkd.js';import'./chunk-DAxRjiEx.js';function ce(a,r){a&1&&(Cs(0,"p",5),JC(1,"Loading\u2026"),hl());}function me(a,r){if(a&1&&(Cs(0,"label",30),Mg(1,"input",31),ZI(),Cs(2,"span"),JC(3),hl()()),a&2){let e=r.$implicit,l=CC(3);sI(),_g("formControl",l.scopeControl)("value",e.value)("disabled",e.value==="namespace"&&!l.isAdmin()),QI(),sI(2),Kg(e.label);}}function ue(a,r){if(a&1&&(Cs(0,"fieldset",8)(1,"legend",24),JC(2,"Port\xE9e de la configuration"),hl(),dC(3,me,4,4,"label",30,iC().trackByScope,true),hl()),a&2){let e=CC(2);_g("disabled",e.isEditMode()),sI(3),fC(e.scopeOptions);}}function ve(a,r){if(a&1&&(Cs(0,"option",13),JC(1),hl()),a&2){let e=r.$implicit;_g("value",e),sI(),Kg(e);}}function fe(a,r){if(a&1){let e=vC();Cs(0,"div",26),Mg(1,"input",32),ZI(),Mg(2,"input",33),ZI(),Cs(3,"button",34),kg("click",function(){let s=Cf(e).$index,f=CC(2);return Tf(f.removeHeader(s))}),JC(4," \xD7 "),hl()();}if(a&2){let e=r.$index;_g("formGroupName",e),sI(),QI(),sI(),QI();}}function _e(a,r){if(a&1){let e=vC();Cs(0,"form",7),kg("ngSubmit",function(){Cf(e);let s=CC();return Tf(s.submit())}),aC(1,ue,5,1,"fieldset",8),Cs(2,"div",9)(3,"label",10),JC(4,"API type "),Cs(5,"span",11),JC(6,"*"),hl()(),Cs(7,"select",12),dC(8,ve,2,2,"option",13,lC),hl(),ZI(),hl(),Cs(10,"div",9)(11,"label",14),JC(12,"Name "),Cs(13,"span",11),JC(14,"*"),hl()(),Mg(15,"input",15),ZI(),hl(),Cs(16,"div",9)(17,"label",16),JC(18,"Description"),hl(),Mg(19,"input",17),ZI(),hl(),Cs(20,"div",9)(21,"label",18),JC(22,"Base URL"),hl(),Mg(23,"input",19),ZI(),hl(),Cs(24,"div",9)(25,"label",20),JC(26,"API key"),hl(),Mg(27,"input",21),ZI(),hl(),Cs(28,"div",22)(29,"div",23)(30,"span",24),JC(31,"Custom headers"),hl(),Cs(32,"button",25),kg("click",function(){Cf(e);let s=CC();return Tf(s.addHeader())}),JC(33,"+ Add header"),hl()(),dC(34,fe,5,1,"div",26,uC),hl(),Cs(36,"div",27)(37,"button",28),JC(38),hl(),Cs(39,"button",29),kg("click",function(){Cf(e);let s=CC();return Tf(s.cancel())}),JC(40,"Cancel"),hl()()();}if(a&2){let e=CC();_g("formGroup",e.form),sI(),cC(e.isPlatformMode?-1:1),sI(6),_g("formControl",e.apiTypeControl),QI(),sI(),fC(e.apiTypeOptions),sI(7),_g("formControl",e.nameControl),QI(),sI(4),_g("formControl",e.descriptionControl),QI(),sI(4),_g("formControl",e.baseUrlControl),QI(),sI(4),_g("formControl",e.apiKeyControl),QI(),sI(),_g("formArrayName","headers"),sI(6),fC(e.headersArray.controls),sI(3),_g("disabled",e.form.invalid||e.isSubmitting()),sI(),Dl(" ",e.isEditMode()?"Save changes":"Create"," ");}}var ge=new Set(["namespace","userOnNs","userGlobal"]),F=Object.freeze({platform:"Configuration de niveau plateforme",namespace:"Configuration du namespace",userOnNs:"Pour moi sur ce namespace",userGlobal:"Pour moi globalement"}),se=class a{route=g(V);router=g(G);destroyRef=g(Ce);state=g(O);namespaceRole=g(v);namespaceId=this.route.snapshot.params.namespaceId;isPlatformMode=this.namespaceId===void 0;isAdmin=this.isPlatformMode?Wi(true):F$1(this.namespaceRole.isAdminOfNamespace$(this.namespaceId),{initialValue:false});apiTypeOptions=Object.values(xe);scopeOptions=[{value:"namespace",label:F.namespace},{value:"userOnNs",label:F.userOnNs},{value:"userGlobal",label:F.userGlobal}];form=new z({name:new _t("",{nonNullable:true,validators:[_e$1.required,_e$1.minLength(1)]}),description:new _t(null),apiType:new _t("OpenAI",{nonNullable:true,validators:[_e$1.required]}),baseUrl:new _t("",{nonNullable:true}),apiKey:new _t("",{nonNullable:true}),scope:new _t("namespace",{nonNullable:true}),headers:new ze([],{validators:[]})});get nameControl(){return this.form.controls.name}get descriptionControl(){return this.form.controls.description}get apiTypeControl(){return this.form.controls.apiType}get baseUrlControl(){return this.form.controls.baseUrl}get apiKeyControl(){return this.form.controls.apiKey}get scopeControl(){return this.form.controls.scope}get headersArray(){return this.form.controls.headers}addHeader(){this.headersArray.push(new z({key:new _t("",{nonNullable:true,validators:[_e$1.required]}),value:new _t("",{nonNullable:true})}));}removeHeader(r){this.headersArray.removeAt(r);}isEditMode=Wi(false);isSubmitting=Wi(false);isLoading=Wi(false);existingConfig=null;initialApiKey="";constructor(){this.isPlatformMode||$f(()=>{this.isAdmin()||this.isEditMode()||this.scopeControl.value==="namespace"&&this.scopeControl.setValue("userOnNs");});}ngOnInit(){this.namespaceId&&this.state.setNamespace(this.namespaceId);let r=this.route.snapshot.paramMap,e=this.route.snapshot.queryParamMap,l=r.get("aiProviderId"),s=this.isPlatformMode?"namespace":this.parseScope(e.get("scope"));if(l){this.isEditMode.set(true),this.scopeControl.disable(),this.apiTypeControl.disable(),this.loadConfig(l);return}this.scopeControl.setValue(s);let f=e.get("template");f&&this.hydrateFromTemplate(f);}parseScope(r){return r&&ge.has(r)?r:"namespace"}deriveScopeFromConfig(r){return !r.userId?"namespace":r.namespaceId?"userOnNs":"userGlobal"}loadConfig(r){this.isLoading.set(true),this.state.getById(r).pipe(U(this.destroyRef)).subscribe({next:e=>{this.existingConfig=e,this.scopeControl.setValue(this.deriveScopeFromConfig(e)),this.applyConfigToForm(e),this.isLoading.set(false);},error:()=>{this.isLoading.set(false),console.warn(`[AiProviderForm] Could not load provider '${r}' \u2014 navigating back`),this.navigateBack();}});}hydrateFromTemplate(r){this.isLoading.set(true),this.state.getById(r).pipe(U(this.destroyRef)).subscribe({next:e=>{this.nameControl.setValue(e.name),this.descriptionControl.setValue(e.description??null),this.apiTypeControl.setValue(e.apiType),this.baseUrlControl.setValue(e.baseUrl??""),this.apiKeyControl.setValue(""),this.initialApiKey="",this.apiKeyControl.markAsTouched(),this.isLoading.set(false),this.router.navigate([],{relativeTo:this.route,queryParams:{template:null,templateScope:null},queryParamsHandling:"merge",replaceUrl:true});},error:e=>{console.warn(`[AiProviderForm] Could not hydrate from template ${r}:`,e),this.isLoading.set(false),this.router.navigate([],{relativeTo:this.route,queryParams:{template:null,templateScope:null},queryParamsHandling:"merge",replaceUrl:true});}});}applyConfigToForm(r){this.nameControl.setValue(r.name),this.descriptionControl.setValue(r.description??null),this.apiTypeControl.setValue(r.apiType),this.baseUrlControl.setValue(r.baseUrl??"");let e=r.apiKey??"";this.apiKeyControl.setValue(e),this.initialApiKey=e,this.headersArray.clear();for(let[l,s]of Object.entries(r.headers??{}))this.headersArray.push(new z({key:new _t(l,{nonNullable:true,validators:[_e$1.required]}),value:new _t(s,{nonNullable:true})}));}submit(){if(this.form.invalid||this.isSubmitting())return;if(this.isEditMode()&&!this.existingConfig?.id){this.navigateBack();return}this.isSubmitting.set(true);let r=this.descriptionControl.value?.trim(),e=this.baseUrlControl.value.trim(),l=this.apiKeyControl.value,s=this.isEditMode()&&l===this.initialApiKey?null:l,f=this.headersArray.controls.filter(x=>x.controls.key.value.trim()).map(x=>[x.controls.key.value.trim(),x.controls.value.value]),de=f.length>0?Object.fromEntries(f):null,N={name:this.nameControl.value.trim(),apiType:this.apiTypeControl.value,description:r||null,baseUrl:e||null,apiKey:s,headers:de},T=this.form.getRawValue().scope,pe=this.isPlatformMode?null:this.namespaceId??null;(this.isEditMode()&&this.existingConfig?.id?this.state.update(this.existingConfig.id,N,T,this.existingConfig):this.state.create(N,T,pe)).pipe(U(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:()=>this.isSubmitting.set(false)});}cancel(){this.navigateBack();}navigateBack(){this.isPlatformMode?this.router.navigate(["/agentos","admin","ai-providers"]):this.router.navigate(["/agentos",this.namespaceId,"ai-providers"]);}trackByScope(r,e){return e.value}static \u0275fac=function(e){return new(e||a)};static \u0275cmp=jw({type:a,selectors:[["agentos-ai-provider-form"]],decls:10,vars:2,consts:[[1,"ai-provider-form"],[1,"ai-provider-form__header"],["type","button","title","Back to AI providers",1,"ai-provider-form__back",3,"click"],[1,"ai-provider-form__back-icon"],[1,"ai-provider-form__title"],[1,"ai-provider-form__loading"],[1,"ai-provider-form__form",3,"formGroup"],[1,"ai-provider-form__form",3,"ngSubmit","formGroup"],[1,"ai-provider-form__scope",3,"disabled"],[1,"ai-provider-form__field"],["for","llm-api-type",1,"ai-provider-form__label"],["aria-hidden","true"],["id","llm-api-type",1,"ai-provider-form__select",3,"formControl"],[3,"value"],["for","llm-name",1,"ai-provider-form__label"],["id","llm-name","type","text","placeholder","e.g. OpenAI prod","autocomplete","off",1,"ai-provider-form__input",3,"formControl"],["for","llm-description",1,"ai-provider-form__label"],["id","llm-description","type","text","placeholder","Optional \u2014 short description of this provider","autocomplete","off",1,"ai-provider-form__input",3,"formControl"],["for","llm-base-url",1,"ai-provider-form__label"],["id","llm-base-url","type","url","placeholder","Optional \u2014 leave empty for default endpoint","autocomplete","off",1,"ai-provider-form__input",3,"formControl"],["for","llm-api-key",1,"ai-provider-form__label"],["id","llm-api-key","type","password","placeholder","sk-\u2026","autocomplete","new-password",1,"ai-provider-form__input","ai-provider-form__input--secret",3,"formControl"],[1,"ai-provider-form__headers",3,"formArrayName"],[1,"ai-provider-form__headers-title"],[1,"ai-provider-form__label"],["type","button",1,"ai-provider-form__headers-add",3,"click"],[1,"ai-provider-form__header-row",3,"formGroupName"],[1,"ai-provider-form__actions"],["type","submit",1,"ai-provider-form__btn","ai-provider-form__btn--primary",3,"disabled"],["type","button",1,"ai-provider-form__btn",3,"click"],[1,"ai-provider-form__scope-option"],["type","radio",3,"formControl","value","disabled"],["type","text","placeholder","Header name","formControlName","key","autocomplete","off",1,"ai-provider-form__input"],["type","text","placeholder","Value","formControlName","value","autocomplete","off",1,"ai-provider-form__input"],["type","button","title","Remove header","aria-label","Remove header",1,"ai-provider-form__header-remove",3,"click"]],template:function(e,l){e&1&&(Cs(0,"div",0)(1,"header",1)(2,"button",2),kg("click",function(){return l.cancel()}),Cs(3,"span",3),JC(4,"\u2190"),hl(),JC(5," AI Providers "),hl(),Cs(6,"h1",4),JC(7),hl()(),aC(8,ce,2,0,"p",5)(9,_e,41,10,"form",6),hl()),e&2&&(sI(7),Kg(l.isEditMode()?"Edit AI provider":"New AI provider"),sI(),cC(l.isLoading()?8:9));},dependencies:[ni,Jn,Qn,ei,Ye,At,mn,Zn,Xn,Cn,En,An,Ct,Vt],styles:[".ai-provider-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:480px;margin:0 auto;padding:2rem 1rem}.ai-provider-form__scope[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.4rem;border:1px solid var(--color-divider);border-radius:0;padding:.75rem 1rem;margin:0}.ai-provider-form__scope[disabled][_ngcontent-%COMP%]{opacity:.6}.ai-provider-form__scope-option[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--color-text);cursor:pointer}.ai-provider-form__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.ai-provider-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-provider-form__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.ai-provider-form__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.ai-provider-form__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:700;color:var(--color-text);letter-spacing:-.02em}.ai-provider-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:.9rem;margin:0}.ai-provider-form__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.25rem}.ai-provider-form__field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.ai-provider-form__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text)}.ai-provider-form__input[_ngcontent-%COMP%], .ai-provider-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-provider-form__input[_ngcontent-%COMP%]:focus, .ai-provider-form__select[_ngcontent-%COMP%]:focus{border-color:var(--color-accent)}.ai-provider-form__input[_ngcontent-%COMP%]::placeholder, .ai-provider-form__select[_ngcontent-%COMP%]::placeholder{color:var(--color-neutral-500)}.ai-provider-form__input--secret[_ngcontent-%COMP%]{font-family:monospace;letter-spacing:.05em}.ai-provider-form__headers[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.ai-provider-form__headers-title[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between}.ai-provider-form__headers-add[_ngcontent-%COMP%]{background:none;border:none;padding:0;cursor:pointer;font-size:.8125rem;color:var(--color-accent)}.ai-provider-form__headers-add[_ngcontent-%COMP%]:hover{text-decoration:underline}.ai-provider-form__header-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr auto;gap:.5rem;align-items:center}.ai-provider-form__header-remove[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;background:none;border:1px solid transparent;border-radius:0;cursor:pointer;font-size:1rem;color:var(--color-neutral-500);transition:background .15s ease,color .15s ease,border-color .15s ease;flex-shrink:0}.ai-provider-form__header-remove[_ngcontent-%COMP%]:hover{color:var(--red);background:color-mix(in srgb,var(--red) 10%,transparent);border-color:var(--red)}.ai-provider-form__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.ai-provider-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-provider-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-neutral-500)}.ai-provider-form__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.ai-provider-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.ai-provider-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-accent-700);border-color:var(--color-accent-700)}"]})};export{se as AiProviderFormComponent};
@@ -1 +0,0 @@
1
- import {S as S$1}from'./chunk-CJKwH7Qd.js';import {g,G,C as Ce,df as $,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 kg,m as hl,af as wg,A as AC,_ as _g,bg as yT,ah as dT,o as aC,ac as CC,u as cC,a9 as vC,aa as Cf,ab as Tf,ag as ET}from'./main-P72KGKGP.js';import {W as Wn,S as Se}from'./chunk-CYOKxOkd.js';import'./chunk-DAxRjiEx.js';import'./chunk-BLF3w_iN.js';var S=()=>[];function V(r,e){if(r&1){let t=vC();Cs(0,"agentos-ai-provider-item",4),kg("editRequested",function(i){Cf(t);let p=CC(2);return Tf(p.onEdit(i))})("deleteRequested",function(i){Cf(t);let p=CC(2);return Tf(p.onDelete(i))}),hl();}r&2&&_g("config",e)("showBadge",false);}function F(r,e){if(r&1&&aC(0,V,1,2,"agentos-ai-provider-item",3),r&2){let t,o=e.$implicit,i=CC();cC((t=i.resolveProvider(o.id))?0:-1,t);}}var E=class r{router=g(G);destroyRef=g(Ce);aiProviderController=g($);refresh$=new Tr(void 0);isLoading=Wi(true);providers$=this.refresh$.pipe(Da(()=>(this.isLoading.set(true),this.aiProviderController.listAiProvider("none"))));providerItems$=this.providers$.pipe(re(e=>e.map(t=>({id:t.id??"",name:t.name,description:t.apiType}))));providersById=new Map;constructor(){this.providers$.pipe(U(this.destroyRef)).subscribe({next:e=>{this.providersById=new Map(e.map(t=>[t.id??"",t])),this.isLoading.set(false);},error:()=>this.isLoading.set(false)});}goBack(){this.router.navigate(["/agentos","admin"]);}openCreateForm(){this.router.navigate(["/agentos","admin","ai-providers","new"]);}onEdit(e){e.id&&this.router.navigate(["/agentos","admin","ai-providers",e.id,"edit"]);}onDelete(e){e.id&&this.aiProviderController.deleteAiProvider(e.id).pipe(U(this.destroyRef)).subscribe(()=>this.refresh$.next());}resolveProvider(e){return this.providersById.get(e)??null}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=jw({type:r,selectors:[["agentos-platform-ai-providers"]],decls:5,vars:7,consts:[["aiProviderItemTpl",""],["title","Platform AI Providers","emptyMessage","No platform AI providers defined yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","loading","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],["scope","namespace",3,"config","showBadge"],["scope","namespace",3,"editRequested","deleteRequested","config","showBadge"]],template:function(t,o){if(t&1&&(Cs(0,"ds-entity-list",1),gT(1,"async"),kg("createRequested",function(){return o.openCreateForm()}),Cs(2,"ds-icon-button",2),kg("action",function(){return o.goBack()}),hl()(),wg(3,F,1,1,"ng-template",null,0,ET)),t&2){let i=AC(4);_g("items",yT(1,4,o.providerItems$)??dT(6,S))("loading",o.isLoading())("showCreate",true)("itemTemplate",i);}},dependencies:[Wn,S$1,Se,Lb],styles:[".platform-ai-providers__back[_ngcontent-%COMP%]{background:none;border:none;cursor:pointer;font-family:inherit;font-size:.875rem;color:var(--color-text-secondary, #6e6e73);padding:.25rem .5rem;border-radius:4px;transition:color .15s ease}.platform-ai-providers__back[_ngcontent-%COMP%]:hover{color:var(--color-primary, #007aff)}"]})};export{E as PlatformAiProvidersComponent};
@@ -1 +0,0 @@
1
- import {I}from'./chunk-DCkYfo8J.js';import {g,G,C as Ce,dm as B,df as $,aJ as Tr,W as Wi,bS as Da,aD as Hy,r as re,b as U,j as jw,aK as Lb,k as Cs,bf as gT,n as kg,m as hl,af as wg,A as AC,_ as _g,bg as yT,ah as dT,o as aC,ac as CC,u as cC,a9 as vC,aa as Cf,ab as Tf,ag as ET}from'./main-P72KGKGP.js';import {W as Wn,S as Se}from'./chunk-CYOKxOkd.js';import'./chunk-DAxRjiEx.js';import'./chunk-BLF3w_iN.js';var V=()=>[];function F(n,t){if(n&1){let o=vC();Cs(0,"agentos-ai-model-item",4),kg("editRequested",function(e){Cf(o);let s=CC(2);return Tf(s.onEdit(e))})("deleteRequested",function(e){Cf(o);let s=CC(2);return Tf(s.deleteModel(e))}),hl();}n&2&&_g("model",t);}function O(n,t){if(n&1&&aC(0,F,1,1,"agentos-ai-model-item",3),n&2){let o,i=t.$implicit,e=CC();cC((o=e.resolveModel(i.id))?0:-1,o);}}var S=class n{router=g(G);destroyRef=g(Ce);aiModelController=g(B);aiProviderController=g($);refresh$=new Tr(void 0);isLoading=Wi(true);data$=this.refresh$.pipe(Da(()=>(this.isLoading.set(true),Hy([this.aiModelController.listPlatformLevelAiModel(),this.aiProviderController.listAiProvider("none")]))));modelItems$=this.data$.pipe(re(([t,o])=>{let i=new Map(o.map(e=>[e.id??"",e.name]));return t.map(e=>({id:e.id??"",name:e.alias??e.apiModelName,description:e.apiModelName,groupKey:e.aiProviderId,groupLabel:i.get(e.aiProviderId)??e.aiProviderId}))}));modelsById=new Map;constructor(){this.data$.pipe(U(this.destroyRef)).subscribe({next:([t])=>{this.modelsById=new Map(t.map(o=>[o.id??"",o])),this.isLoading.set(false);},error:()=>this.isLoading.set(false)});}goBack(){this.router.navigate(["/agentos","admin"]);}openCreateForm(){this.router.navigate(["/agentos","admin","ai-models","new"]);}deleteModel(t){this.aiModelController.deleteAiModel(t.id??"").pipe(U(this.destroyRef)).subscribe(()=>this.refresh$.next());}onEdit(t){t.id&&this.router.navigate(["/agentos","admin","ai-models",t.id,"edit"]);}resolveModel(t){return this.modelsById.get(t)??null}static \u0275fac=function(o){return new(o||n)};static \u0275cmp=jw({type:n,selectors:[["agentos-platform-ai-models"]],decls:5,vars:7,consts:[["aiModelItemTpl",""],["title","Platform AI Models","emptyMessage","No platform AI models defined yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","loading","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[3,"model"],[3,"editRequested","deleteRequested","model"]],template:function(o,i){if(o&1&&(Cs(0,"ds-entity-list",1),gT(1,"async"),kg("createRequested",function(){return i.openCreateForm()}),Cs(2,"ds-icon-button",2),kg("action",function(){return i.goBack()}),hl()(),wg(3,O,1,1,"ng-template",null,0,ET)),o&2){let e=AC(4);_g("items",yT(1,4,i.modelItems$)??dT(6,V))("loading",i.isLoading())("showCreate",true)("itemTemplate",e);}},dependencies:[Wn,I,Se,Lb],styles:[".platform-ai-models__back[_ngcontent-%COMP%]{background:none;border:none;cursor:pointer;font-family:inherit;font-size:.875rem;color:var(--color-text-secondary, #6e6e73);padding:.25rem .5rem;border-radius:4px;transition:color .15s ease}.platform-ai-models__back[_ngcontent-%COMP%]:hover{color:var(--color-primary, #007aff)}"]})};export{S as PlatformAiModelsComponent};
@@ -1 +0,0 @@
1
- import {g,ao as V,G,C as Ce,dm as B,df as $,F,a7 as va,I as br,W as Wi,T as TT,b as U,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-P72KGKGP.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-BLF3w_iN.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(B);aiProviderController=g($);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(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(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 +0,0 @@
1
- import {bS as Da,a7 as va,I as br,cE as kd}from'./main-P72KGKGP.js';function i(t,o,p){return t.pipe(Da(()=>o().pipe(va(()=>br(p)))),kd({bufferSize:1,refCount:true}))}export{i};