@whoz-oss/coday-client 3.23.0 → 3.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/{chunk-KccQKSLr.js → chunk--j9cf9d6.js} +2 -2
- package/browser/chunk-2dXF6kxO.js +1 -0
- package/browser/{chunk-YGA4ansj.js → chunk-6ZQ87jQV.js} +1 -1
- package/browser/{chunk-BpzIo3TO.js → chunk-AfeufHde.js} +1 -1
- package/browser/{chunk-CqZF9JZo.js → chunk-B2UoGfZ3.js} +6 -6
- package/browser/{chunk-BfzDf8xE.js → chunk-B6pr9Now.js} +1 -1
- package/browser/{chunk-DNlBxwgK.js → chunk-BAyZlfDb.js} +1 -1
- package/browser/{chunk-VyuxzGHt.js → chunk-BH0AuKDN.js} +1 -1
- package/browser/{chunk-DVGYZ6ty.js → chunk-BP7WYYNR.js} +1 -1
- package/browser/{chunk-BIOQZPFJ.js → chunk-BRAKs_V4.js} +2 -2
- package/browser/{chunk-CMHnK5hV.js → chunk-BSmtz5y3.js} +2 -2
- package/browser/{chunk-BQFfxCd3.js → chunk-BUi4VbRk.js} +1 -1
- package/browser/{chunk-B3Yorxwd.js → chunk-BWE4takb.js} +1 -1
- package/browser/chunk-BZIfffSY.js +1 -0
- package/browser/chunk-BaAG5SRs.js +9 -0
- package/browser/{chunk-CWQR6xJk.js → chunk-BkZ4nMy0.js} +1 -1
- package/browser/{chunk-Cg68_3Ns.js → chunk-Bkl_Vpe1.js} +1 -1
- package/browser/{chunk-Bc0TgO1-.js → chunk-BorcVzNx.js} +1 -1
- package/browser/{chunk-COoOJuQT.js → chunk-Bsd6cfhc.js} +1 -1
- package/browser/{chunk-CXhfjTCk.js → chunk-Btjdv26a.js} +1 -1
- package/browser/{chunk-BrNRhqhm.js → chunk-Bv19t8Yr.js} +1 -1
- package/browser/{chunk-C3MIs5_Y.js → chunk-ByqToPFV.js} +1 -1
- package/browser/{chunk-BQwFVWSb.js → chunk-C0cIJD6B.js} +1 -1
- package/browser/{chunk-DHr7_ikE.js → chunk-C3uyXZ11.js} +1 -1
- package/browser/{chunk-BZCIYJOL.js → chunk-C4kiVp0I.js} +1 -1
- package/browser/{chunk-sz0CVF1-.js → chunk-CBsoAXBW.js} +1 -1
- package/browser/chunk-CCSxTkZ-.js +1 -0
- package/browser/{chunk-lkvHsW8k.js → chunk-CDteNbQE.js} +1 -1
- package/browser/{chunk-CuOGglmC.js → chunk-CIFgO2HT.js} +1 -1
- package/browser/{chunk-DH3pQb49.js → chunk-CKdscASQ.js} +1 -1
- package/browser/{chunk-B3kY-GQk.js → chunk-CPuMGlfm.js} +1 -1
- package/browser/{chunk-BCqtwdIe.js → chunk-CU9SkJlG.js} +1 -1
- package/browser/{chunk-CJD8ErVH.js → chunk-CWfLK-02.js} +1 -1
- package/browser/{chunk-CXwHeDac.js → chunk-CXFeBkf0.js} +1 -1
- package/browser/{chunk-D9wXETZp.js → chunk-Cc6av_kK.js} +2 -2
- package/browser/{chunk-D89TfP1E.js → chunk-Ccwn8U1w.js} +1 -1
- package/browser/chunk-Ce6h2FeE.js +1 -0
- package/browser/chunk-CfZ8rkw0.js +1 -0
- package/browser/{chunk-CT4atmse.js → chunk-CgtOp5dr.js} +3 -3
- package/browser/{chunk-CaL6ZXsO.js → chunk-CmWqV8dc.js} +6 -6
- package/browser/{chunk-CRyr4oOy.js → chunk-ComIIQUU.js} +1 -1
- package/browser/{chunk-D7p9n5a9.js → chunk-Cyh4DuAi.js} +1 -1
- package/browser/{chunk-DdUOdkVr.js → chunk-D26Rjl-2.js} +1 -1
- package/browser/{chunk-SsHAmybq.js → chunk-D62ekcvB.js} +1 -1
- package/browser/{chunk-bl1pitLA.js → chunk-DEUnwPWC.js} +1 -1
- package/browser/{chunk-DL11Jf1L.js → chunk-DIKc_N9D.js} +1 -1
- package/browser/{chunk-O1I9EEmj.js → chunk-DIY-0Lon.js} +1 -1
- package/browser/{chunk-DkP2MwMu.js → chunk-DT0j_Tak.js} +1 -1
- package/browser/{chunk-ChsKwSBf.js → chunk-DaphJW96.js} +1 -1
- package/browser/{chunk-BqC6QWDU.js → chunk-Dgr7xggj.js} +3 -3
- package/browser/chunk-DpWl8Hmh.js +2 -0
- package/browser/{chunk-BdZ0xOqX.js → chunk-DrcS-IIH.js} +5 -5
- package/browser/{chunk-DrKKLE1-.js → chunk-DuGczpUf.js} +2 -2
- package/browser/{chunk-BT7IPqmu.js → chunk-DwD-3Qe0.js} +1 -1
- package/browser/{chunk-CyJ_au6Y.js → chunk-Dx97073t.js} +5 -5
- package/browser/{chunk-BoiQFZ4H.js → chunk-DyyifT6r.js} +1 -1
- package/browser/chunk-GWd9G-Nj.js +1 -0
- package/browser/{chunk-B2FRxZw1.js → chunk-L0O9mlbO.js} +1 -1
- package/browser/{chunk-oqOgDyIj.js → chunk-OZvSiKvx.js} +1 -1
- package/browser/chunk-OpIcFxMt.js +1 -0
- package/browser/{chunk-B4K0ULQ8.js → chunk-OqElmTmR.js} +1 -1
- package/browser/{chunk-bHVjhtHf.js → chunk-RFOuzDB-.js} +1 -1
- package/browser/{chunk-B0USjT_j.js → chunk-bEyVnMri.js} +1 -1
- package/browser/{chunk-CZ4gj_xn.js → chunk-ehgi4mB8.js} +1 -1
- package/browser/{chunk-uY_BCJ93.js → chunk-iT-BBh_o.js} +1 -1
- package/browser/{chunk-C9T7UBD_.js → chunk-iiREShnX.js} +1 -1
- package/browser/{chunk-DF3Ha0Tb.js → chunk-pyvVjc-9.js} +1 -1
- package/browser/{chunk-BSc7HTHd.js → chunk-rWPj3GdK.js} +1 -1
- package/browser/{chunk-oIPYJtHA.js → chunk-sI2K91LE.js} +1 -1
- package/browser/index.html +1 -1
- package/browser/{main-RXIVNUWK.js → main-4LGWVPVH.js} +18 -18
- package/package.json +1 -1
- package/browser/chunk-7dyrHGkF.js +0 -1
- package/browser/chunk-BXGcSbBl.js +0 -1
- package/browser/chunk-BujvNLrF.js +0 -1
- package/browser/chunk-C4IJySYO.js +0 -2
- package/browser/chunk-CjgyOse7.js +0 -1
- package/browser/chunk-CzL7jU35.js +0 -1
- package/browser/chunk-D8dXXVY5.js +0 -9
- package/browser/chunk-DqfAYcrx.js +0 -1
- package/browser/chunk-yfVcVvz_.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import {I}from'./chunk-
|
|
1
|
+
import {I}from'./chunk-DEUnwPWC.js';import {g,G,C as Ce,dm as $,df as U,aJ as Tr,W as Wi,bS as Da,aD as zy,r as re,b as U$1,j as jw,aK as Lb,k as Cs,bf as gT,n as Lg,m as hl,af as bg,t as AC,x as xg,bg as yT,ah as dT,o as aC,ac as CC,v as cC,a9 as vC,aa as Sf,ab as _f,ag as ET}from'./main-4LGWVPVH.js';import {W as Wn,S as Se}from'./chunk-CmWqV8dc.js';import'./chunk-B2UoGfZ3.js';import'./chunk-CPuMGlfm.js';var V=()=>[];function F(n,t){if(n&1){let o=vC();Cs(0,"agentos-ai-model-item",4),Lg("editRequested",function(e){Sf(o);let s=CC(2);return _f(s.onEdit(e))})("deleteRequested",function(e){Sf(o);let s=CC(2);return _f(s.deleteModel(e))}),hl();}n&2&&xg("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($);aiProviderController=g(U);refresh$=new Tr(void 0);isLoading=Wi(true);data$=this.refresh$.pipe(Da(()=>(this.isLoading.set(true),zy([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$1(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$1(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"),Lg("createRequested",function(){return i.openCreateForm()}),Cs(2,"ds-icon-button",2),Lg("action",function(){return i.goBack()}),hl()(),bg(3,O,1,1,"ng-template",null,0,ET)),o&2){let e=AC(4);xg("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 +1 @@
|
|
|
1
|
-
import {K as Kn,Z as Zn,S as Se}from'./chunk-
|
|
1
|
+
import {K as Kn,Z as Zn,S as Se}from'./chunk-CmWqV8dc.js';import {cb as nV,cc as tV,W as Wi,j as jw,k as Cs,J as JC,m as hl,o as aC,u as sI,a8 as em,a5 as Dl,v as cC,a9 as vC,n as Lg,ac as CC,x as xg,aa as Sf,ab as _f}from'./main-4LGWVPVH.js';function A(o,a){if(o&1){let e=vC();Cs(0,"span",7),JC(1,"Delete?"),hl(),Cs(2,"ds-icon-button",8),Lg("action",function(){Sf(e);let l=CC();return _f(l.onDeleteConfirmed())}),hl(),Cs(3,"ds-icon-button",9),Lg("action",function(){Sf(e);let l=CC();return _f(l.onDeleteCancelled())}),hl();}}function P(o,a){if(o&1){let e=vC();Cs(0,"ds-kebab-menu",10),Lg("itemSelected",function(l){Sf(e);let O=CC();return _f(O.onMenuAction(l))}),hl();}if(o&2){let e=CC();xg("items",e.menuItems);}}var I=class o{model=nV.required();namespaceId=nV(void 0);readOnly=nV(false);deleteRequested=tV();editRequested=tV();pendingDelete=Wi(false);menuItems=[{key:"edit",label:"Edit model",icon:"edit"},{key:"delete",label:"Delete model",icon:"delete",variant:"danger"}];get displayTitle(){return this.model().alias??this.model().apiModelName}onMenuAction(a){switch(a){case "edit":this.editRequested.emit(this.model());break;case "delete":this.pendingDelete.set(true);break}}onDeleteConfirmed(){this.pendingDelete.set(false),this.deleteRequested.emit(this.model());}onDeleteCancelled(){this.pendingDelete.set(false);}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=jw({type:o,selectors:[["agentos-ai-model-item"]],inputs:{model:[1,"model"],namespaceId:[1,"namespaceId"],readOnly:[1,"readOnly"]},outputs:{deleteRequested:"deleteRequested",editRequested:"editRequested"},decls:12,vars:4,consts:[["role","listitem","dsBlueprint","",1,"ai-model-item"],[1,"ai-model-item__body"],[1,"ai-model-item__name"],[1,"ai-model-item__api-name"],[1,"ai-model-item__params"],[1,"ai-model-item__actions"],[3,"items"],[1,"ai-model-item__confirm-label"],["icon","check","variant","danger","title","Confirm deletion",3,"action"],["icon","close","title","Cancel deletion",3,"action"],[3,"itemSelected","items"]],template:function(e,i){e&1&&(Cs(0,"div",0)(1,"div",1)(2,"span",2),JC(3),hl(),Cs(4,"span",3),JC(5),hl(),Cs(6,"span",4)(7,"span"),JC(8),hl()()(),Cs(9,"div",5),aC(10,A,4,0)(11,P,1,1,"ds-kebab-menu",6),hl()()),e&2&&(sI(3),em(i.displayTitle),sI(2),em(i.model().apiModelName),sI(3),Dl("priority: ",i.model().priority),sI(2),cC(i.pendingDelete()?10:i.readOnly()?-1:11));},dependencies:[Kn,Zn,Se],styles:[".ai-model-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:14px 16px;position:relative;border-radius:0;border:1px solid var(--color-divider);background:var(--color-bg);box-shadow:var(--shadow-sm);overflow:visible;transition:border-color .15s ease}.ai-model-item[_ngcontent-%COMP%]:hover{border-color:var(--color-accent)}.ai-model-item__body[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.ai-model-item__name[_ngcontent-%COMP%]{font-size:15px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-model-item__api-name[_ngcontent-%COMP%]{font-size:13px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-model-item__params[_ngcontent-%COMP%]{display:flex;gap:.75rem;font-size:13px;color:var(--color-text-secondary)}.ai-model-item__actions[_ngcontent-%COMP%]{flex-shrink:0;display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.ai-model-item[_ngcontent-%COMP%]:hover .ai-model-item__actions[_ngcontent-%COMP%], .ai-model-item[_ngcontent-%COMP%]:focus-within .ai-model-item__actions[_ngcontent-%COMP%]{opacity:1}.ai-model-item__confirm-label[_ngcontent-%COMP%]{font-family:var(--font-heading);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--red-deep);margin-right:.25rem;white-space:nowrap}"]})};export{I};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {m}from'./chunk-D8dXXVY5.js';import {g,ao as V,G,C as Ce$1,da as M,W as Wi,b as U,a7 as va,I as br,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,a5 as Dl,a8 as Kg,u as cC,a9 as vC,M as Mg,a3 as ZI,q as dC,bo as uC,ac as CC,_ as _g,w as zg,a6 as QI,v as fC,aa as Cf,ab as Tf}from'./main-RXIVNUWK.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,Z as Zn,l as Xn,C as Cn,E as En,p as An,q as Ct,V as Vt}from'./chunk-B3kY-GQk.js';import'./chunk-YGA4ansj.js';import'./chunk-CaL6ZXsO.js';import'./chunk-CqZF9JZo.js';var ne=(i,t)=>t.id;function ie(i,t){i&1&&(Cs(0,"p",5),JC(1,"Loading\u2026"),hl());}function ae(i,t){i&1&&(Cs(0,"span",12),JC(1,"Name is required."),hl());}function le(i,t){if(i&1&&(Cs(0,"p",32),JC(1),hl(),Cs(2,"span",26),JC(3,"Agent Config cannot be changed after creation."),hl()),i&2){let e=CC(3);sI(),Kg(e.resolveAgentConfigName(e.agentConfigIdControl.value));}}function me(i,t){if(i&1&&(Cs(0,"option",34),JC(1),hl()),i&2){let e=t.$implicit;_g("ngValue",e.id),sI(),Kg(e.name);}}function pe(i,t){if(i&1&&(Cs(0,"select",33)(1,"option",34),JC(2,"\u2014 None \u2014"),hl(),dC(3,me,2,2,"option",34,ne),hl(),ZI(),Cs(5,"span",26),JC(6,"Optional. Links this prompt to an agent as a starter. Immutable after creation."),hl()),i&2){let e=CC(3);_g("formControl",e.agentConfigIdControl),QI(),sI(),_g("ngValue",null),sI(2),fC(e.availableAgentConfigs());}}function de(i,t){if(i&1&&(Cs(0,"div",8)(1,"label",31),JC(2,"Agent Config"),hl(),aC(3,le,4,1)(4,pe,7,2),hl()),i&2){let e=CC(2);sI(3),cC(e.isEditMode()&&e.agentConfigIdControl.value?3:e.isEditMode()?-1:4);}}function ce(i,t){i&1&&(Cs(0,"p",19),JC(1,"No parameters defined."),hl());}function se(i,t){i&1&&(Cs(0,"span",12),JC(1,"Parameter name is required."),hl());}function _e(i,t){if(i&1){let e=vC();Cs(0,"div",20)(1,"div",35)(2,"div",36)(3,"label",37),JC(4,"Name "),Cs(5,"span",10),JC(6,"*"),hl()(),Mg(7,"input",38),ZI(),aC(8,se,2,0,"span",12),hl(),Cs(9,"div",36)(10,"label",37),JC(11,"Description"),hl(),Mg(12,"input",39),ZI(),hl(),Cs(13,"div",36)(14,"label",37),JC(15,"Default value"),hl(),Mg(16,"input",40),ZI(),hl()(),Cs(17,"button",41),kg("click",function(){let m=Cf(e).$index,d=CC(2);return Tf(d.removeParameter(m))}),JC(18," \xD7 "),hl()();}if(i&2){let e=t.$implicit,l=t.$index;_g("formGroupName",l),sI(3),_g("for","param-name-"+l),sI(4),zg("prompt-form__input--invalid",e.controls.name.invalid&&e.controls.name.touched),_g("id","param-name-"+l),QI(),sI(),cC(e.controls.name.invalid&&e.controls.name.touched?8:-1),sI(2),_g("for","param-desc-"+l),sI(2),_g("id","param-desc-"+l),QI(),sI(2),_g("for","param-default-"+l),sI(2),_g("id","param-default-"+l),QI();}}function fe(i,t){i&1&&(Cs(0,"span",12),JC(1,"Content entry must not be blank."),hl());}function ue(i,t){if(i&1){let e=vC();Cs(0,"div",22)(1,"span",42),JC(2),hl(),Cs(3,"div",43),Mg(4,"textarea",44),ZI(),aC(5,fe,2,0,"span",12),hl(),Cs(6,"button",45),kg("click",function(){let m=Cf(e).$index,d=CC(2);return Tf(d.removeContentEntry(m))}),JC(7," \xD7 "),hl()();}if(i&2){let e=t.$implicit,l=t.$index,m=CC(2);sI(2),Kg(l+1),sI(2),zg("prompt-form__textarea--invalid",e.invalid&&e.touched),_g("formControlName",l),QI(),sI(),cC(e.invalid&&e.touched?5:-1),sI(),_g("disabled",m.contentArray.length===1);}}function ge(i,t){if(i&1&&(Cs(0,"p",23),JC(1),hl()),i&2){let e=CC(2);sI(),Kg(e.errorMessage());}}function Ce(i,t){i&1&&(Cs(0,"span",12),JC(1,"Invalid JSON."),hl());}function xe(i,t){if(i&1){let e=vC();Cs(0,"button",46),kg("click",function(){Cf(e);let m=CC(2);return Tf(m.exportYaml())}),JC(1),hl();}if(i&2){let e=CC(2);_g("disabled",e.isExporting()),sI(),Dl(" ",e.isExporting()?"Exporting\u2026":"Export as YAML"," ");}}function ve(i,t){if(i&1){let e=vC();Cs(0,"form",7),kg("ngSubmit",function(){Cf(e);let m=CC();return Tf(m.submit())}),Cs(1,"div",8)(2,"label",9),JC(3,"Name "),Cs(4,"span",10),JC(5,"*"),hl()(),Mg(6,"input",11),ZI(),aC(7,ae,2,0,"span",12),hl(),Cs(8,"div",8)(9,"label",13),JC(10,"Description"),hl(),Mg(11,"input",14),ZI(),hl(),aC(12,de,5,1,"div",8),Cs(13,"fieldset",15)(14,"legend",16),JC(15," Parameters "),Cs(16,"span",17),JC(17,"Named placeholders used in content"),hl()(),Cs(18,"p",18),JC(19," Each parameter must have a name and a default value. Use "),Cs(20,"code"),JC(21),hl(),JC(22," in content entries to reference them. "),hl(),aC(23,ce,2,0,"p",19),dC(24,_e,19,10,"div",20,uC),Cs(26,"button",21),kg("click",function(){Cf(e);let m=CC();return Tf(m.addParameter())}),JC(27,"+ Add parameter"),hl()(),Cs(28,"fieldset",15)(29,"legend",16),JC(30," Content "),Cs(31,"span",10),JC(32,"*"),hl(),Cs(33,"span",17),JC(34,"Ordered list of text commands"),hl()(),Cs(35,"p",18),JC(36," Each content entry is a command. Use "),Cs(37,"code"),JC(38,"@AgentName"),hl(),JC(39," to target an agent, "),Cs(40,"code"),JC(41,"/promptName param1 param2"),hl(),JC(42," to call another prompt, and "),Cs(43,"code"),JC(44),hl(),JC(45," for parameter placeholders. "),hl(),dC(46,ue,8,6,"div",22,uC),Cs(48,"button",21),kg("click",function(){Cf(e);let m=CC();return Tf(m.addContentEntry())}),JC(49,"+ Add content entry"),hl()(),aC(50,ge,2,1,"p",23),Cs(51,"div",8)(52,"label",24),JC(53,"External Metadata"),hl(),Mg(54,"textarea",25),ZI(),aC(55,Ce,2,0,"span",12),Cs(56,"span",26),JC(57,"Optional. Opaque JSON object stored as-is. Leave empty to clear."),hl()(),Cs(58,"div",27)(59,"button",28),JC(60),hl(),aC(61,xe,2,2,"button",29),Cs(62,"button",30),kg("click",function(){Cf(e);let m=CC();return Tf(m.cancel())}),JC(63,"Cancel"),hl()()();}if(i&2){let e=CC();_g("formGroup",e.form),sI(6),zg("prompt-form__input--invalid",e.nameControl.invalid&&e.nameControl.touched),_g("formControl",e.nameControl),QI(),sI(),cC(e.nameControl.invalid&&e.nameControl.touched?7:-1),sI(4),_g("formControl",e.descriptionControl),QI(),sI(),cC(e.availableAgentConfigs().length>0?12:-1),sI(),_g("formArrayName","parameters"),sI(8),Kg(e.paramPlaceholderSyntax),sI(2),cC(e.parametersArray.length===0?23:-1),sI(),fC(e.parametersArray.controls),sI(4),_g("formArrayName","content"),sI(16),Kg(e.paramPlaceholderSyntax),sI(2),fC(e.contentArray.controls),sI(4),cC(e.errorMessage()?50:-1),sI(4),_g("formControl",e.externalMetadataJsonControl),QI(),sI(),cC(e.externalMetadataJsonControl.invalid&&e.externalMetadataJsonControl.touched?55:-1),sI(4),_g("disabled",e.form.invalid||e.isSubmitting()),sI(),Dl(" ",e.isEditMode()?"Save changes":"Create"," "),sI(),cC(e.isEditMode()?61:-1);}}var re=class i{route=g(V);router=g(G);destroyRef=g(Ce$1);promptState=g(m);agentConfigController=g(M);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),agentConfigId:new _t(null),externalMetadataJson:new _t("",{nonNullable:true,validators:[be]}),content:new ze([this.createContentControl()],{validators:[_e$1.required]}),parameters:new ze([])});get nameControl(){return this.form.controls.name}get descriptionControl(){return this.form.controls.description}get agentConfigIdControl(){return this.form.controls.agentConfigId}get externalMetadataJsonControl(){return this.form.controls.externalMetadataJson}get contentArray(){return this.form.controls.content}get parametersArray(){return this.form.controls.parameters}isEditMode=Wi(false);isSubmitting=Wi(false);isLoading=Wi(false);isExporting=Wi(false);errorMessage=Wi(null);paramPlaceholderSyntax="{{paramName}}";agentConfigs=Wi([]);availableAgentConfigs=this.agentConfigs.asReadonly();existingPrompt=null;ngOnInit(){let t=this.route.snapshot.paramMap.get("promptId");t&&(this.isEditMode.set(true),this.loadPrompt(t)),this.isPlatformMode?this.loadPlatformAgentConfigs():this.namespaceId&&this.loadAgentConfigs(this.namespaceId);}loadPrompt(t){this.isLoading.set(true),this.promptState.getById(t).pipe(U(this.destroyRef)).subscribe({next:e=>{this.existingPrompt=e,this.hydrateForm(e),this.isLoading.set(false);},error:()=>{this.isLoading.set(false),this.navigateBack();}});}loadAgentConfigs(t){this.agentConfigController.listByParentAgentConfig(t).pipe(U(this.destroyRef),va(()=>br([]))).subscribe(e=>this.agentConfigs.set(e));}loadPlatformAgentConfigs(){this.agentConfigController.listPlatformAgentsAgentConfig().pipe(U(this.destroyRef),va(()=>br([]))).subscribe(t=>this.agentConfigs.set(t));}hydrateForm(t){this.nameControl.setValue(t.name),this.descriptionControl.setValue(t.description??null),this.agentConfigIdControl.setValue(t.agentConfigId??null),this.contentArray.clear(),(t.content.length>0?t.content:[""]).forEach(l=>this.contentArray.push(this.createContentControl(l))),this.parametersArray.clear(),(t.parameters??[]).forEach(l=>this.parametersArray.push(this.createParameterGroup(l))),this.externalMetadataJsonControl.setValue(t.externalMetadata?JSON.stringify(t.externalMetadata,null,2):"");}resolveAgentConfigName(t){return this.agentConfigs().find(e=>e.id===t)?.name??t}createContentControl(t=""){return new _t(t,{nonNullable:true,validators:[_e$1.required,_e$1.pattern(/\S/)]})}addContentEntry(){this.contentArray.push(this.createContentControl());}removeContentEntry(t){this.contentArray.length>1&&this.contentArray.removeAt(t);}createParameterGroup(t){return new z({name:new _t(t?.name??"",{nonNullable:true,validators:[_e$1.required,_e$1.minLength(1)]}),description:new _t(t?.description??null),defaultValue:new _t(t?.defaultValue??"",{nonNullable:true,validators:[_e$1.required]})})}addParameter(){this.parametersArray.push(this.createParameterGroup());}removeParameter(t){this.parametersArray.removeAt(t);}submit(){if(this.form.invalid||this.isSubmitting())return;this.isSubmitting.set(true);let t=this.isEditMode()&&!!this.existingPrompt?.id,e=z$1(P({},this.existingPrompt??{}),{namespaceId:this.namespaceId,sourceLanguage:this.existingPrompt?.sourceLanguage??"en",name:this.nameControl.value.trim(),description:this.descriptionControl.value?.trim()||void 0,content:this.contentArray.controls.map(d=>d.value.trim()),parameters:this.parametersArray.controls.map(d=>({name:d.controls.name.value.trim(),description:d.controls.description.value?.trim()||void 0,defaultValue:d.controls.defaultValue.value.trim()}))});t||(e.agentConfigId=this.agentConfigIdControl.value||null);let l=this.externalMetadataJsonControl.value.trim();e.externalMetadata=l?JSON.parse(l):null;let m=t?this.promptState.update(this.existingPrompt.id,e):this.promptState.create(e);this.errorMessage.set(null),m.pipe(U(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:d=>{this.isSubmitting.set(false),d.status===409?this.errorMessage.set(`A prompt named "${e.name}" already exists in this scope.`):d.status===400?this.errorMessage.set(d.error?.message??"Invalid prompt data."):this.errorMessage.set("An unexpected error occurred. Please try again.");}});}exportYaml(){let t=this.existingPrompt?.id;!t||this.isExporting()||(this.isExporting.set(true),this.promptState.exportAsYaml(t).pipe(U(this.destroyRef)).subscribe({next:e=>{let l=new Blob([e],{type:"application/yaml"}),m=URL.createObjectURL(l),d=document.createElement("a");d.href=m,d.download=`${this.existingPrompt?.name??"prompt"}.yaml`,d.click(),URL.revokeObjectURL(m),this.isExporting.set(false);},error:()=>this.isExporting.set(false)}));}cancel(){this.navigateBack();}navigateBack(){this.isPlatformMode?this.router.navigate(["/agentos","admin","prompts"]):this.router.navigate(["/agentos",this.namespaceId,"prompts"]);}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=jw({type:i,selectors:[["agentos-prompt-form"]],decls:10,vars:3,consts:[[1,"prompt-form"],[1,"prompt-form__header"],["type","button","title","Back to prompts",1,"prompt-form__back",3,"click"],[1,"prompt-form__back-icon"],[1,"prompt-form__title"],[1,"prompt-form__loading"],[1,"prompt-form__form",3,"formGroup"],[1,"prompt-form__form",3,"ngSubmit","formGroup"],[1,"prompt-form__field"],["for","prompt-name",1,"prompt-form__label"],["aria-hidden","true"],["id","prompt-name","type","text","placeholder","e.g. Summarise meeting notes","autocomplete","off",1,"prompt-form__input",3,"formControl"],[1,"prompt-form__field-error"],["for","prompt-description",1,"prompt-form__label"],["id","prompt-description","type","text","placeholder","Optional \u2014 short description of this prompt","autocomplete","off",1,"prompt-form__input",3,"formControl"],[1,"prompt-form__section",3,"formArrayName"],[1,"prompt-form__label"],[1,"prompt-form__label-hint"],[1,"prompt-form__section-hint"],[1,"prompt-form__empty-hint"],[1,"prompt-form__param-row",3,"formGroupName"],["type","button",1,"prompt-form__add-btn",3,"click"],[1,"prompt-form__content-row"],[1,"prompt-form__error"],["for","prompt-external-metadata",1,"prompt-form__label"],["id","prompt-external-metadata","rows","6","placeholder",'{ "key": "value" }',"spellcheck","false","autocomplete","off",1,"prompt-form__textarea","prompt-form__textarea--code",3,"formControl"],[1,"prompt-form__field-hint"],[1,"prompt-form__actions"],["type","submit",1,"prompt-form__btn","prompt-form__btn--primary",3,"disabled"],["type","button",1,"prompt-form__btn","prompt-form__btn--export",3,"disabled"],["type","button",1,"prompt-form__btn",3,"click"],["for","prompt-agent-config",1,"prompt-form__label"],[1,"prompt-form__readonly-value"],["id","prompt-agent-config",1,"prompt-form__select",3,"formControl"],[3,"ngValue"],[1,"prompt-form__param-fields"],[1,"prompt-form__field","prompt-form__field--inline"],[1,"prompt-form__label",3,"for"],["type","text","placeholder","e.g. language","formControlName","name","autocomplete","off",1,"prompt-form__input",3,"id"],["type","text","placeholder","Optional","formControlName","description","autocomplete","off",1,"prompt-form__input",3,"id"],["type","text","placeholder","e.g. English","formControlName","defaultValue","autocomplete","off",1,"prompt-form__input",3,"id"],["type","button","title","Remove this parameter",1,"prompt-form__remove-btn",3,"click"],[1,"prompt-form__content-index"],[1,"prompt-form__content-field"],["rows","4","placeholder","Enter a command\u2026",1,"prompt-form__textarea",3,"formControlName"],["type","button","title","Remove this entry",1,"prompt-form__remove-btn",3,"click","disabled"],["type","button",1,"prompt-form__btn","prompt-form__btn--export",3,"click","disabled"]],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),hl(),Cs(6,"h1",4),JC(7),hl()(),aC(8,ie,2,0,"p",5)(9,ve,64,18,"form",6),hl()),e&2&&(sI(5),Dl(" ",l.isPlatformMode?"Platform prompts":"Prompts"," "),sI(2),Kg(l.isEditMode()?"Edit prompt":"New prompt"),sI(),cC(l.isLoading()?8:9));},dependencies:[ni,Jn,Qn,ei,Ye,At,Zn,Xn,Cn,En,An,Ct,Vt],styles:[".prompt-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.prompt-form__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.prompt-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)}.prompt-form__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.prompt-form__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.prompt-form__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:700;color:var(--color-text);letter-spacing:-.02em}.prompt-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:.9rem;margin:0}.prompt-form__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.25rem}.prompt-form__field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.prompt-form__field--inline[_ngcontent-%COMP%]{flex:1}.prompt-form__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text)}.prompt-form__label-hint[_ngcontent-%COMP%]{font-weight:400;color:var(--color-text-secondary);margin-left:.375rem}.prompt-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;cursor:pointer;appearance:auto;transition:border-color .15s ease}.prompt-form__select[_ngcontent-%COMP%]:focus{border-color:var(--color-accent)}.prompt-form__field-hint[_ngcontent-%COMP%]{font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.prompt-form__readonly-value[_ngcontent-%COMP%]{margin:0;padding:.5rem .875rem;border-radius:0;background:var(--color-bg-hover);border:1px solid var(--color-divider);color:var(--color-text);font-size:.9375rem}.prompt-form__input[_ngcontent-%COMP%], .prompt-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}.prompt-form__input[_ngcontent-%COMP%]:focus, .prompt-form__textarea[_ngcontent-%COMP%]:focus{border-color:var(--color-accent)}.prompt-form__input[_ngcontent-%COMP%]::placeholder, .prompt-form__textarea[_ngcontent-%COMP%]::placeholder{color:var(--color-neutral-500)}.prompt-form__textarea[_ngcontent-%COMP%]{resize:vertical;min-height:100px;line-height:1.5}.prompt-form__textarea--code[_ngcontent-%COMP%]{font-family:monospace;font-size:.85rem;resize:vertical}.prompt-form__section[_ngcontent-%COMP%]{border:1px solid var(--color-divider);border-radius:0;padding:1rem;margin:0;display:flex;flex-direction:column;gap:.75rem}.prompt-form__section-hint[_ngcontent-%COMP%]{margin:0;font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.prompt-form__empty-hint[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--color-text-secondary);font-style:italic}.prompt-form__content-row[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:flex-start}.prompt-form__content-field[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.25rem}.prompt-form__content-index[_ngcontent-%COMP%]{flex-shrink:0;width:1.5rem;padding-top:.6rem;font-size:.8rem;font-weight:600;color:var(--color-text-secondary);text-align:right;-webkit-user-select:none;user-select:none}.prompt-form__param-row[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:flex-end;padding:.75rem;border-radius:0;background:var(--color-bg-hover)}.prompt-form__param-fields[_ngcontent-%COMP%]{flex:1;display:flex;gap:.75rem;flex-wrap:wrap}.prompt-form__add-btn[_ngcontent-%COMP%]{align-self:flex-start;padding:.4rem .875rem;border-radius:0;border:1px solid var(--color-divider);background:transparent;color:var(--color-accent);font-size:.875rem;font-family:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease}.prompt-form__add-btn[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover);border-color:var(--color-accent)}.prompt-form__remove-btn[_ngcontent-%COMP%]{flex-shrink:0;width:1.75rem;height:1.75rem;display:flex;align-items:center;justify-content:center;border-radius:0;border:1px solid transparent;background:transparent;color:var(--color-neutral-500);font-size:1rem;line-height:1;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.prompt-form__remove-btn[_ngcontent-%COMP%]:hover:not(:disabled){background:color-mix(in srgb,var(--red) 10%,transparent);color:var(--red);border-color:var(--red)}.prompt-form__remove-btn[_ngcontent-%COMP%]:disabled{opacity:.3;cursor:not-allowed}.prompt-form__error[_ngcontent-%COMP%]{margin:0;padding:.625rem .875rem;border-radius:0;background:color-mix(in srgb,var(--red) 10%,transparent);border:1px solid var(--red);color:var(--red);font-size:.875rem;line-height:1.4}.prompt-form__field-error[_ngcontent-%COMP%]{font-size:.8rem;color:var(--red);line-height:1.3}.prompt-form__input--invalid[_ngcontent-%COMP%], .prompt-form__textarea--invalid[_ngcontent-%COMP%]{border-color:var(--red)}.prompt-form__input--invalid[_ngcontent-%COMP%]:focus, .prompt-form__textarea--invalid[_ngcontent-%COMP%]:focus{border-color:var(--red)}.prompt-form__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.prompt-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}.prompt-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-neutral-500)}.prompt-form__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.prompt-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.prompt-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-accent-700);border-color:var(--color-accent-700)}.prompt-form__btn--export[_ngcontent-%COMP%]{border-color:var(--color-divider);color:var(--color-text-secondary)}.prompt-form__btn--export[_ngcontent-%COMP%]:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}"]})};function be(i){let t=i.value?.trim();if(!t)return null;try{return JSON.parse(t),null}catch(e){return {invalidJson:true}}}export{re as PromptFormComponent};
|
|
1
|
+
import {m}from'./chunk-BaAG5SRs.js';import {g,ao as V,G,C as Ce$1,da as M,W as Wi,b as U,a7 as va,X as br,z as z$1,a as P,j as jw,k as Cs,n as Lg,J as JC,m as hl,o as aC,u as sI,a5 as Dl,a8 as em,v as cC,a9 as vC,A as Ag,a3 as ZI,q as dC,bo as uC,ac as CC,x as xg,y as qg,a6 as QI,w as fC,aa as Sf,ab as _f}from'./main-4LGWVPVH.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,Z as Zn,l as Xn,C as Cn,E as En,p as An,q as Ct,V as Vt}from'./chunk-CPuMGlfm.js';import'./chunk-6ZQ87jQV.js';import'./chunk-CmWqV8dc.js';import'./chunk-B2UoGfZ3.js';var ne=(i,t)=>t.id;function ie(i,t){i&1&&(Cs(0,"p",5),JC(1,"Loading\u2026"),hl());}function ae(i,t){i&1&&(Cs(0,"span",12),JC(1,"Name is required."),hl());}function le(i,t){if(i&1&&(Cs(0,"p",32),JC(1),hl(),Cs(2,"span",26),JC(3,"Agent Config cannot be changed after creation."),hl()),i&2){let e=CC(3);sI(),em(e.resolveAgentConfigName(e.agentConfigIdControl.value));}}function me(i,t){if(i&1&&(Cs(0,"option",34),JC(1),hl()),i&2){let e=t.$implicit;xg("ngValue",e.id),sI(),em(e.name);}}function pe(i,t){if(i&1&&(Cs(0,"select",33)(1,"option",34),JC(2,"\u2014 None \u2014"),hl(),dC(3,me,2,2,"option",34,ne),hl(),ZI(),Cs(5,"span",26),JC(6,"Optional. Links this prompt to an agent as a starter. Immutable after creation."),hl()),i&2){let e=CC(3);xg("formControl",e.agentConfigIdControl),QI(),sI(),xg("ngValue",null),sI(2),fC(e.availableAgentConfigs());}}function de(i,t){if(i&1&&(Cs(0,"div",8)(1,"label",31),JC(2,"Agent Config"),hl(),aC(3,le,4,1)(4,pe,7,2),hl()),i&2){let e=CC(2);sI(3),cC(e.isEditMode()&&e.agentConfigIdControl.value?3:e.isEditMode()?-1:4);}}function ce(i,t){i&1&&(Cs(0,"p",19),JC(1,"No parameters defined."),hl());}function se(i,t){i&1&&(Cs(0,"span",12),JC(1,"Parameter name is required."),hl());}function _e(i,t){if(i&1){let e=vC();Cs(0,"div",20)(1,"div",35)(2,"div",36)(3,"label",37),JC(4,"Name "),Cs(5,"span",10),JC(6,"*"),hl()(),Ag(7,"input",38),ZI(),aC(8,se,2,0,"span",12),hl(),Cs(9,"div",36)(10,"label",37),JC(11,"Description"),hl(),Ag(12,"input",39),ZI(),hl(),Cs(13,"div",36)(14,"label",37),JC(15,"Default value"),hl(),Ag(16,"input",40),ZI(),hl()(),Cs(17,"button",41),Lg("click",function(){let m=Sf(e).$index,d=CC(2);return _f(d.removeParameter(m))}),JC(18," \xD7 "),hl()();}if(i&2){let e=t.$implicit,l=t.$index;xg("formGroupName",l),sI(3),xg("for","param-name-"+l),sI(4),qg("prompt-form__input--invalid",e.controls.name.invalid&&e.controls.name.touched),xg("id","param-name-"+l),QI(),sI(),cC(e.controls.name.invalid&&e.controls.name.touched?8:-1),sI(2),xg("for","param-desc-"+l),sI(2),xg("id","param-desc-"+l),QI(),sI(2),xg("for","param-default-"+l),sI(2),xg("id","param-default-"+l),QI();}}function fe(i,t){i&1&&(Cs(0,"span",12),JC(1,"Content entry must not be blank."),hl());}function ue(i,t){if(i&1){let e=vC();Cs(0,"div",22)(1,"span",42),JC(2),hl(),Cs(3,"div",43),Ag(4,"textarea",44),ZI(),aC(5,fe,2,0,"span",12),hl(),Cs(6,"button",45),Lg("click",function(){let m=Sf(e).$index,d=CC(2);return _f(d.removeContentEntry(m))}),JC(7," \xD7 "),hl()();}if(i&2){let e=t.$implicit,l=t.$index,m=CC(2);sI(2),em(l+1),sI(2),qg("prompt-form__textarea--invalid",e.invalid&&e.touched),xg("formControlName",l),QI(),sI(),cC(e.invalid&&e.touched?5:-1),sI(),xg("disabled",m.contentArray.length===1);}}function ge(i,t){if(i&1&&(Cs(0,"p",23),JC(1),hl()),i&2){let e=CC(2);sI(),em(e.errorMessage());}}function Ce(i,t){i&1&&(Cs(0,"span",12),JC(1,"Invalid JSON."),hl());}function xe(i,t){if(i&1){let e=vC();Cs(0,"button",46),Lg("click",function(){Sf(e);let m=CC(2);return _f(m.exportYaml())}),JC(1),hl();}if(i&2){let e=CC(2);xg("disabled",e.isExporting()),sI(),Dl(" ",e.isExporting()?"Exporting\u2026":"Export as YAML"," ");}}function ve(i,t){if(i&1){let e=vC();Cs(0,"form",7),Lg("ngSubmit",function(){Sf(e);let m=CC();return _f(m.submit())}),Cs(1,"div",8)(2,"label",9),JC(3,"Name "),Cs(4,"span",10),JC(5,"*"),hl()(),Ag(6,"input",11),ZI(),aC(7,ae,2,0,"span",12),hl(),Cs(8,"div",8)(9,"label",13),JC(10,"Description"),hl(),Ag(11,"input",14),ZI(),hl(),aC(12,de,5,1,"div",8),Cs(13,"fieldset",15)(14,"legend",16),JC(15," Parameters "),Cs(16,"span",17),JC(17,"Named placeholders used in content"),hl()(),Cs(18,"p",18),JC(19," Each parameter must have a name and a default value. Use "),Cs(20,"code"),JC(21),hl(),JC(22," in content entries to reference them. "),hl(),aC(23,ce,2,0,"p",19),dC(24,_e,19,10,"div",20,uC),Cs(26,"button",21),Lg("click",function(){Sf(e);let m=CC();return _f(m.addParameter())}),JC(27,"+ Add parameter"),hl()(),Cs(28,"fieldset",15)(29,"legend",16),JC(30," Content "),Cs(31,"span",10),JC(32,"*"),hl(),Cs(33,"span",17),JC(34,"Ordered list of text commands"),hl()(),Cs(35,"p",18),JC(36," Each content entry is a command. Use "),Cs(37,"code"),JC(38,"@AgentName"),hl(),JC(39," to target an agent, "),Cs(40,"code"),JC(41,"/promptName param1 param2"),hl(),JC(42," to call another prompt, and "),Cs(43,"code"),JC(44),hl(),JC(45," for parameter placeholders. "),hl(),dC(46,ue,8,6,"div",22,uC),Cs(48,"button",21),Lg("click",function(){Sf(e);let m=CC();return _f(m.addContentEntry())}),JC(49,"+ Add content entry"),hl()(),aC(50,ge,2,1,"p",23),Cs(51,"div",8)(52,"label",24),JC(53,"External Metadata"),hl(),Ag(54,"textarea",25),ZI(),aC(55,Ce,2,0,"span",12),Cs(56,"span",26),JC(57,"Optional. Opaque JSON object stored as-is. Leave empty to clear."),hl()(),Cs(58,"div",27)(59,"button",28),JC(60),hl(),aC(61,xe,2,2,"button",29),Cs(62,"button",30),Lg("click",function(){Sf(e);let m=CC();return _f(m.cancel())}),JC(63,"Cancel"),hl()()();}if(i&2){let e=CC();xg("formGroup",e.form),sI(6),qg("prompt-form__input--invalid",e.nameControl.invalid&&e.nameControl.touched),xg("formControl",e.nameControl),QI(),sI(),cC(e.nameControl.invalid&&e.nameControl.touched?7:-1),sI(4),xg("formControl",e.descriptionControl),QI(),sI(),cC(e.availableAgentConfigs().length>0?12:-1),sI(),xg("formArrayName","parameters"),sI(8),em(e.paramPlaceholderSyntax),sI(2),cC(e.parametersArray.length===0?23:-1),sI(),fC(e.parametersArray.controls),sI(4),xg("formArrayName","content"),sI(16),em(e.paramPlaceholderSyntax),sI(2),fC(e.contentArray.controls),sI(4),cC(e.errorMessage()?50:-1),sI(4),xg("formControl",e.externalMetadataJsonControl),QI(),sI(),cC(e.externalMetadataJsonControl.invalid&&e.externalMetadataJsonControl.touched?55:-1),sI(4),xg("disabled",e.form.invalid||e.isSubmitting()),sI(),Dl(" ",e.isEditMode()?"Save changes":"Create"," "),sI(),cC(e.isEditMode()?61:-1);}}var re=class i{route=g(V);router=g(G);destroyRef=g(Ce$1);promptState=g(m);agentConfigController=g(M);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),agentConfigId:new _t(null),externalMetadataJson:new _t("",{nonNullable:true,validators:[be]}),content:new ze([this.createContentControl()],{validators:[_e$1.required]}),parameters:new ze([])});get nameControl(){return this.form.controls.name}get descriptionControl(){return this.form.controls.description}get agentConfigIdControl(){return this.form.controls.agentConfigId}get externalMetadataJsonControl(){return this.form.controls.externalMetadataJson}get contentArray(){return this.form.controls.content}get parametersArray(){return this.form.controls.parameters}isEditMode=Wi(false);isSubmitting=Wi(false);isLoading=Wi(false);isExporting=Wi(false);errorMessage=Wi(null);paramPlaceholderSyntax="{{paramName}}";agentConfigs=Wi([]);availableAgentConfigs=this.agentConfigs.asReadonly();existingPrompt=null;ngOnInit(){let t=this.route.snapshot.paramMap.get("promptId");t&&(this.isEditMode.set(true),this.loadPrompt(t)),this.isPlatformMode?this.loadPlatformAgentConfigs():this.namespaceId&&this.loadAgentConfigs(this.namespaceId);}loadPrompt(t){this.isLoading.set(true),this.promptState.getById(t).pipe(U(this.destroyRef)).subscribe({next:e=>{this.existingPrompt=e,this.hydrateForm(e),this.isLoading.set(false);},error:()=>{this.isLoading.set(false),this.navigateBack();}});}loadAgentConfigs(t){this.agentConfigController.listByParentAgentConfig(t).pipe(U(this.destroyRef),va(()=>br([]))).subscribe(e=>this.agentConfigs.set(e));}loadPlatformAgentConfigs(){this.agentConfigController.listPlatformAgentsAgentConfig().pipe(U(this.destroyRef),va(()=>br([]))).subscribe(t=>this.agentConfigs.set(t));}hydrateForm(t){this.nameControl.setValue(t.name),this.descriptionControl.setValue(t.description??null),this.agentConfigIdControl.setValue(t.agentConfigId??null),this.contentArray.clear(),(t.content.length>0?t.content:[""]).forEach(l=>this.contentArray.push(this.createContentControl(l))),this.parametersArray.clear(),(t.parameters??[]).forEach(l=>this.parametersArray.push(this.createParameterGroup(l))),this.externalMetadataJsonControl.setValue(t.externalMetadata?JSON.stringify(t.externalMetadata,null,2):"");}resolveAgentConfigName(t){return this.agentConfigs().find(e=>e.id===t)?.name??t}createContentControl(t=""){return new _t(t,{nonNullable:true,validators:[_e$1.required,_e$1.pattern(/\S/)]})}addContentEntry(){this.contentArray.push(this.createContentControl());}removeContentEntry(t){this.contentArray.length>1&&this.contentArray.removeAt(t);}createParameterGroup(t){return new z({name:new _t(t?.name??"",{nonNullable:true,validators:[_e$1.required,_e$1.minLength(1)]}),description:new _t(t?.description??null),defaultValue:new _t(t?.defaultValue??"",{nonNullable:true,validators:[_e$1.required]})})}addParameter(){this.parametersArray.push(this.createParameterGroup());}removeParameter(t){this.parametersArray.removeAt(t);}submit(){if(this.form.invalid||this.isSubmitting())return;this.isSubmitting.set(true);let t=this.isEditMode()&&!!this.existingPrompt?.id,e=z$1(P({},this.existingPrompt??{}),{namespaceId:this.namespaceId,sourceLanguage:this.existingPrompt?.sourceLanguage??"en",name:this.nameControl.value.trim(),description:this.descriptionControl.value?.trim()||void 0,content:this.contentArray.controls.map(d=>d.value.trim()),parameters:this.parametersArray.controls.map(d=>({name:d.controls.name.value.trim(),description:d.controls.description.value?.trim()||void 0,defaultValue:d.controls.defaultValue.value.trim()}))});t||(e.agentConfigId=this.agentConfigIdControl.value||null);let l=this.externalMetadataJsonControl.value.trim();e.externalMetadata=l?JSON.parse(l):null;let m=t?this.promptState.update(this.existingPrompt.id,e):this.promptState.create(e);this.errorMessage.set(null),m.pipe(U(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:d=>{this.isSubmitting.set(false),d.status===409?this.errorMessage.set(`A prompt named "${e.name}" already exists in this scope.`):d.status===400?this.errorMessage.set(d.error?.message??"Invalid prompt data."):this.errorMessage.set("An unexpected error occurred. Please try again.");}});}exportYaml(){let t=this.existingPrompt?.id;!t||this.isExporting()||(this.isExporting.set(true),this.promptState.exportAsYaml(t).pipe(U(this.destroyRef)).subscribe({next:e=>{let l=new Blob([e],{type:"application/yaml"}),m=URL.createObjectURL(l),d=document.createElement("a");d.href=m,d.download=`${this.existingPrompt?.name??"prompt"}.yaml`,d.click(),URL.revokeObjectURL(m),this.isExporting.set(false);},error:()=>this.isExporting.set(false)}));}cancel(){this.navigateBack();}navigateBack(){this.isPlatformMode?this.router.navigate(["/agentos","admin","prompts"]):this.router.navigate(["/agentos",this.namespaceId,"prompts"]);}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=jw({type:i,selectors:[["agentos-prompt-form"]],decls:10,vars:3,consts:[[1,"prompt-form"],[1,"prompt-form__header"],["type","button","title","Back to prompts",1,"prompt-form__back",3,"click"],[1,"prompt-form__back-icon"],[1,"prompt-form__title"],[1,"prompt-form__loading"],[1,"prompt-form__form",3,"formGroup"],[1,"prompt-form__form",3,"ngSubmit","formGroup"],[1,"prompt-form__field"],["for","prompt-name",1,"prompt-form__label"],["aria-hidden","true"],["id","prompt-name","type","text","placeholder","e.g. Summarise meeting notes","autocomplete","off",1,"prompt-form__input",3,"formControl"],[1,"prompt-form__field-error"],["for","prompt-description",1,"prompt-form__label"],["id","prompt-description","type","text","placeholder","Optional \u2014 short description of this prompt","autocomplete","off",1,"prompt-form__input",3,"formControl"],[1,"prompt-form__section",3,"formArrayName"],[1,"prompt-form__label"],[1,"prompt-form__label-hint"],[1,"prompt-form__section-hint"],[1,"prompt-form__empty-hint"],[1,"prompt-form__param-row",3,"formGroupName"],["type","button",1,"prompt-form__add-btn",3,"click"],[1,"prompt-form__content-row"],[1,"prompt-form__error"],["for","prompt-external-metadata",1,"prompt-form__label"],["id","prompt-external-metadata","rows","6","placeholder",'{ "key": "value" }',"spellcheck","false","autocomplete","off",1,"prompt-form__textarea","prompt-form__textarea--code",3,"formControl"],[1,"prompt-form__field-hint"],[1,"prompt-form__actions"],["type","submit",1,"prompt-form__btn","prompt-form__btn--primary",3,"disabled"],["type","button",1,"prompt-form__btn","prompt-form__btn--export",3,"disabled"],["type","button",1,"prompt-form__btn",3,"click"],["for","prompt-agent-config",1,"prompt-form__label"],[1,"prompt-form__readonly-value"],["id","prompt-agent-config",1,"prompt-form__select",3,"formControl"],[3,"ngValue"],[1,"prompt-form__param-fields"],[1,"prompt-form__field","prompt-form__field--inline"],[1,"prompt-form__label",3,"for"],["type","text","placeholder","e.g. language","formControlName","name","autocomplete","off",1,"prompt-form__input",3,"id"],["type","text","placeholder","Optional","formControlName","description","autocomplete","off",1,"prompt-form__input",3,"id"],["type","text","placeholder","e.g. English","formControlName","defaultValue","autocomplete","off",1,"prompt-form__input",3,"id"],["type","button","title","Remove this parameter",1,"prompt-form__remove-btn",3,"click"],[1,"prompt-form__content-index"],[1,"prompt-form__content-field"],["rows","4","placeholder","Enter a command\u2026",1,"prompt-form__textarea",3,"formControlName"],["type","button","title","Remove this entry",1,"prompt-form__remove-btn",3,"click","disabled"],["type","button",1,"prompt-form__btn","prompt-form__btn--export",3,"click","disabled"]],template:function(e,l){e&1&&(Cs(0,"div",0)(1,"header",1)(2,"button",2),Lg("click",function(){return l.cancel()}),Cs(3,"span",3),JC(4,"\u2190"),hl(),JC(5),hl(),Cs(6,"h1",4),JC(7),hl()(),aC(8,ie,2,0,"p",5)(9,ve,64,18,"form",6),hl()),e&2&&(sI(5),Dl(" ",l.isPlatformMode?"Platform prompts":"Prompts"," "),sI(2),em(l.isEditMode()?"Edit prompt":"New prompt"),sI(),cC(l.isLoading()?8:9));},dependencies:[ni,Jn,Qn,ei,Ye,At,Zn,Xn,Cn,En,An,Ct,Vt],styles:[".prompt-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.prompt-form__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.prompt-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)}.prompt-form__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.prompt-form__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.prompt-form__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:700;color:var(--color-text);letter-spacing:-.02em}.prompt-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:.9rem;margin:0}.prompt-form__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.25rem}.prompt-form__field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.prompt-form__field--inline[_ngcontent-%COMP%]{flex:1}.prompt-form__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text)}.prompt-form__label-hint[_ngcontent-%COMP%]{font-weight:400;color:var(--color-text-secondary);margin-left:.375rem}.prompt-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;cursor:pointer;appearance:auto;transition:border-color .15s ease}.prompt-form__select[_ngcontent-%COMP%]:focus{border-color:var(--color-accent)}.prompt-form__field-hint[_ngcontent-%COMP%]{font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.prompt-form__readonly-value[_ngcontent-%COMP%]{margin:0;padding:.5rem .875rem;border-radius:0;background:var(--color-bg-hover);border:1px solid var(--color-divider);color:var(--color-text);font-size:.9375rem}.prompt-form__input[_ngcontent-%COMP%], .prompt-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}.prompt-form__input[_ngcontent-%COMP%]:focus, .prompt-form__textarea[_ngcontent-%COMP%]:focus{border-color:var(--color-accent)}.prompt-form__input[_ngcontent-%COMP%]::placeholder, .prompt-form__textarea[_ngcontent-%COMP%]::placeholder{color:var(--color-neutral-500)}.prompt-form__textarea[_ngcontent-%COMP%]{resize:vertical;min-height:100px;line-height:1.5}.prompt-form__textarea--code[_ngcontent-%COMP%]{font-family:monospace;font-size:.85rem;resize:vertical}.prompt-form__section[_ngcontent-%COMP%]{border:1px solid var(--color-divider);border-radius:0;padding:1rem;margin:0;display:flex;flex-direction:column;gap:.75rem}.prompt-form__section-hint[_ngcontent-%COMP%]{margin:0;font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.prompt-form__empty-hint[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--color-text-secondary);font-style:italic}.prompt-form__content-row[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:flex-start}.prompt-form__content-field[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.25rem}.prompt-form__content-index[_ngcontent-%COMP%]{flex-shrink:0;width:1.5rem;padding-top:.6rem;font-size:.8rem;font-weight:600;color:var(--color-text-secondary);text-align:right;-webkit-user-select:none;user-select:none}.prompt-form__param-row[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:flex-end;padding:.75rem;border-radius:0;background:var(--color-bg-hover)}.prompt-form__param-fields[_ngcontent-%COMP%]{flex:1;display:flex;gap:.75rem;flex-wrap:wrap}.prompt-form__add-btn[_ngcontent-%COMP%]{align-self:flex-start;padding:.4rem .875rem;border-radius:0;border:1px solid var(--color-divider);background:transparent;color:var(--color-accent);font-size:.875rem;font-family:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease}.prompt-form__add-btn[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover);border-color:var(--color-accent)}.prompt-form__remove-btn[_ngcontent-%COMP%]{flex-shrink:0;width:1.75rem;height:1.75rem;display:flex;align-items:center;justify-content:center;border-radius:0;border:1px solid transparent;background:transparent;color:var(--color-neutral-500);font-size:1rem;line-height:1;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.prompt-form__remove-btn[_ngcontent-%COMP%]:hover:not(:disabled){background:color-mix(in srgb,var(--red) 10%,transparent);color:var(--red);border-color:var(--red)}.prompt-form__remove-btn[_ngcontent-%COMP%]:disabled{opacity:.3;cursor:not-allowed}.prompt-form__error[_ngcontent-%COMP%]{margin:0;padding:.625rem .875rem;border-radius:0;background:color-mix(in srgb,var(--red) 10%,transparent);border:1px solid var(--red);color:var(--red);font-size:.875rem;line-height:1.4}.prompt-form__field-error[_ngcontent-%COMP%]{font-size:.8rem;color:var(--red);line-height:1.3}.prompt-form__input--invalid[_ngcontent-%COMP%], .prompt-form__textarea--invalid[_ngcontent-%COMP%]{border-color:var(--red)}.prompt-form__input--invalid[_ngcontent-%COMP%]:focus, .prompt-form__textarea--invalid[_ngcontent-%COMP%]:focus{border-color:var(--red)}.prompt-form__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.prompt-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}.prompt-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-neutral-500)}.prompt-form__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.prompt-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.prompt-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-accent-700);border-color:var(--color-accent-700)}.prompt-form__btn--export[_ngcontent-%COMP%]{border-color:var(--color-divider);color:var(--color-text-secondary)}.prompt-form__btn--export[_ngcontent-%COMP%]:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}"]})};function be(i){let t=i.value?.trim();if(!t)return null;try{return JSON.parse(t),null}catch(e){return {invalidJson:true}}}export{re as PromptFormComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {g,ao as V,G,d5 as k,C as Ce,W as Wi,b as U$1,z as z$1,a as P,j as jw,k as Cs,n as
|
|
1
|
+
import {g,ao as V,G,d5 as k,C as Ce,W as Wi,b as U$1,z as z$1,a as P,j as jw,k as Cs,n as Lg,J as JC,m as hl,o as aC,u as sI,a8 as em,v as cC,a9 as vC,A as Ag,a3 as ZI,ac as CC,x as xg,a6 as QI,a5 as Dl,aa as Sf,ab as _f}from'./main-4LGWVPVH.js';import {o as z,k as _t,b as _e,n as ni,J as Jn,Y as Ye,f as fn,Z as Zn,l as Xn,$ as $t,C as Cn,E as En}from'./chunk-CPuMGlfm.js';function U(l,r){l&1&&(Cs(0,"p",5),JC(1,"Loading\u2026"),hl());}function H(l,r){if(l&1){let e=vC();Cs(0,"form",7),Lg("ngSubmit",function(){Sf(e);let u=CC();return _f(u.submit())}),Cs(1,"div",8)(2,"label",9),JC(3,"Name "),Cs(4,"span",10),JC(5,"*"),hl()(),Ag(6,"input",11),ZI(),hl(),Cs(7,"div",8)(8,"label",12),JC(9,"Description"),hl(),Ag(10,"textarea",13),ZI(),hl(),Cs(11,"div",8)(12,"label",14),JC(13,"External ID"),hl(),Ag(14,"input",15),ZI(),hl(),Cs(15,"div",8)(16,"label",16),JC(17,"Default agent"),hl(),Ag(18,"input",17),ZI(),hl(),Cs(19,"div",8)(20,"label",18),JC(21,"Config path"),hl(),Ag(22,"input",19),ZI(),hl(),Cs(23,"div",8)(24,"label",20),JC(25,"Run cost threshold"),hl(),Ag(26,"input",21),ZI(),Cs(27,"span",22),JC(28,"Leave empty to inherit the platform default."),hl()(),Cs(29,"div",23)(30,"button",24),JC(31),hl(),Cs(32,"button",25),Lg("click",function(){Sf(e);let u=CC();return _f(u.cancel())}),JC(33,"Cancel"),hl()()();}if(l&2){let e=CC();xg("formGroup",e.form),sI(6),xg("formControl",e.nameControl),QI(),sI(4),xg("formControl",e.descriptionControl),QI(),sI(4),xg("formControl",e.externalIdControl),QI(),sI(4),xg("formControl",e.defaultAgentNameControl),QI(),sI(4),xg("formControl",e.configPathControl),QI(),sI(4),xg("formControl",e.runCostThresholdControl),QI(),sI(4),xg("disabled",e.nameControl.invalid||e.isSubmitting()),sI(),Dl(" ",e.isEditMode()?"Save changes":"Create"," ");}}var q=class l{route=g(V);router=g(G);namespaceController=g(k);destroyRef=g(Ce);form=new z({name:new _t("",{nonNullable:true,validators:[_e.required,_e.minLength(1)]}),description:new _t("",{nonNullable:true}),configPath:new _t("",{nonNullable:true}),externalId:new _t("",{nonNullable:true}),defaultAgentName:new _t("",{nonNullable:true}),runCostThreshold:new _t(null)});get nameControl(){return this.form.controls.name}get descriptionControl(){return this.form.controls.description}get configPathControl(){return this.form.controls.configPath}get externalIdControl(){return this.form.controls.externalId}get defaultAgentNameControl(){return this.form.controls.defaultAgentName}get runCostThresholdControl(){return this.form.controls.runCostThreshold}isEditMode=Wi(false);isSubmitting=Wi(false);isLoading=Wi(false);existingNamespace=null;ngOnInit(){let r=this.route.snapshot.paramMap.get("namespaceId");r&&(this.isEditMode.set(true),this.loadNamespace(r));}loadNamespace(r){this.isLoading.set(true),this.namespaceController.getByIdNamespace(r).pipe(U$1(this.destroyRef)).subscribe({next:e=>{this.existingNamespace=e,this.nameControl.setValue(e.name),this.descriptionControl.setValue(e.description??""),this.configPathControl.setValue(e.configPath??""),this.externalIdControl.setValue(e.externalId??""),this.defaultAgentNameControl.setValue(e.defaultAgentName??""),this.runCostThresholdControl.setValue(e.runCostThreshold??null),this.isLoading.set(false);},error:()=>{this.isLoading.set(false),this.navigateBack();}});}submit(){if(this.nameControl.invalid||this.isSubmitting())return;this.isSubmitting.set(true);let r=z$1(P({},this.existingNamespace),{name:this.nameControl.value.trim(),description:this.descriptionControl.value.trim()||void 0,configPath:this.configPathControl.value.trim()||void 0,externalId:this.externalIdControl.value.trim()||void 0,defaultAgentName:this.defaultAgentNameControl.value.trim()||void 0,runCostThreshold:this.runCostThresholdControl.value??void 0});(this.isEditMode()?this.namespaceController.updateNamespace(this.existingNamespace.id??"",r):this.namespaceController.createNamespace(r)).pipe(U$1(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:()=>this.isSubmitting.set(false)});}cancel(){this.navigateBack();}navigateBack(){this.router.navigate(["/agentos/namespaces"]);}static \u0275fac=function(e){return new(e||l)};static \u0275cmp=jw({type:l,selectors:[["agentos-namespace-form"]],decls:10,vars:2,consts:[[1,"namespace-form"],[1,"namespace-form__header"],["type","button","title","Back to namespaces",1,"namespace-form__back",3,"click"],[1,"namespace-form__back-icon"],[1,"namespace-form__title"],[1,"namespace-form__loading"],[1,"namespace-form__form",3,"formGroup"],[1,"namespace-form__form",3,"ngSubmit","formGroup"],[1,"namespace-form__field"],["for","ns-name",1,"namespace-form__label"],["aria-hidden","true"],["id","ns-name","type","text","placeholder","Namespace name","autocomplete","off",1,"namespace-form__input",3,"formControl"],["for","ns-description",1,"namespace-form__label"],["id","ns-description","rows","4","placeholder","Optional description",1,"namespace-form__textarea",3,"formControl"],["for","ns-external-id",1,"namespace-form__label"],["id","ns-external-id","type","text","placeholder","Optional federation ID from an external system","autocomplete","off",1,"namespace-form__input",3,"formControl"],["for","ns-default-agent",1,"namespace-form__label"],["id","ns-default-agent","type","text","placeholder","Logical name of the default agent (e.g. coday)","autocomplete","off",1,"namespace-form__input",3,"formControl"],["for","ns-config-path",1,"namespace-form__label"],["id","ns-config-path","type","text","placeholder","Optional path to base configuration directory","autocomplete","off",1,"namespace-form__input",3,"formControl"],["for","ns-run-cost-threshold",1,"namespace-form__label"],["id","ns-run-cost-threshold","type","number","min","0","step","0.01","placeholder","Optional maximum cost per run (e.g. 0.50)",1,"namespace-form__input",3,"formControl"],[1,"namespace-form__hint"],[1,"namespace-form__actions"],["type","submit",1,"namespace-form__btn","namespace-form__btn--primary",3,"disabled"],["type","button",1,"namespace-form__btn",3,"click"]],template:function(e,p){e&1&&(Cs(0,"div",0)(1,"header",1)(2,"button",2),Lg("click",function(){return p.cancel()}),Cs(3,"span",3),JC(4,"\u2190"),hl(),JC(5," Namespaces "),hl(),Cs(6,"h1",4),JC(7),hl()(),aC(8,U,2,0,"p",5)(9,H,34,9,"form",6),hl()),e&2&&(sI(7),em(p.isEditMode()?"Edit namespace":"New namespace"),sI(),cC(p.isLoading()?8:9));},dependencies:[ni,Jn,Ye,fn,Zn,Xn,$t,Cn,En],styles:[".namespace-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:480px;margin:0 auto;padding:2rem 1rem}.namespace-form__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.namespace-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)}.namespace-form__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.namespace-form__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.namespace-form__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:700;color:var(--color-text);letter-spacing:-.02em}.namespace-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:.9rem;margin:0}.namespace-form__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.25rem}.namespace-form__field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.namespace-form__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text)}.namespace-form__input[_ngcontent-%COMP%], .namespace-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}.namespace-form__input[_ngcontent-%COMP%]:focus, .namespace-form__textarea[_ngcontent-%COMP%]:focus{border-color:var(--color-accent)}.namespace-form__input[_ngcontent-%COMP%]::placeholder, .namespace-form__textarea[_ngcontent-%COMP%]::placeholder{color:var(--color-neutral-500)}.namespace-form__textarea[_ngcontent-%COMP%]{resize:vertical;min-height:96px;line-height:1.5}.namespace-form__hint[_ngcontent-%COMP%]{font-size:.8rem;color:var(--color-text-secondary)}.namespace-form__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.namespace-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}.namespace-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-neutral-500)}.namespace-form__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.namespace-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.namespace-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-accent-700);border-color:var(--color-accent-700)}"]})};export{q as NamespaceFormComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {d}from'./chunk-D8dXXVY5.js';import {g,ao as V,G as G$1,C as Ce,da as M,W as Wi,b as U$1,j as jw,s as si,k as Cs,n as kg,J as JC,m as hl,o as aC,t as sI,_ as _g,u as cC,a8 as Kg,w as zg,a5 as Dl,a9 as vC,ac as CC,S as Sg,q as dC,v as fC,M as Mg,bf as gT,bg as yT,aa as Cf,ab as Tf,bj as gE}from'./main-RXIVNUWK.js';import'./chunk-YGA4ansj.js';import'./chunk-CaL6ZXsO.js';import'./chunk-CqZF9JZo.js';import'./chunk-B3kY-GQk.js';var F=(n,o)=>o.name;function B(n,o){n&1&&(Cs(0,"p",6),JC(1,"Loading\u2026"),hl());}function $(n,o){n&1&&(Cs(0,"p",7),JC(1,"Failed to load agent definition."),hl());}function j(n,o){if(n&1&&(Cs(0,"dt",12),JC(1,"User context"),hl(),Cs(2,"dd",14),JC(3),hl()),n&2){let e=CC();sI(3),Kg(e.userId);}}function H(n,o){if(n&1&&(Cs(0,"pre",21),JC(1),hl()),n&2){let e=CC(2);sI(),Kg(e.systemPrompt);}}function J(n,o){if(n&1){let e=vC();Cs(0,"section",9)(1,"button",19),kg("click",function(){Cf(e);let g=CC(2);return Tf(g.toggleSystemPrompt())}),Cs(2,"h2",10),JC(3,"System Prompt"),hl(),Cs(4,"span",20),JC(5," \u25BC "),hl()(),aC(6,H,2,1,"pre",21),hl();}if(n&2){let e=CC(2);sI(),Sg("aria-expanded",!e.systemPromptCollapsed()),sI(3),zg("agent-config-inspect__chevron--open",!e.systemPromptCollapsed()),sI(2),cC(e.systemPromptCollapsed()?-1:6);}}function U(n,o){if(n&1&&(Cs(0,"pre",21),JC(1),hl()),n&2){let e=CC(2);sI(),Kg(e.instructions);}}function G(n,o){if(n&1){let e=vC();Cs(0,"section",9)(1,"button",19),kg("click",function(){Cf(e);let g=CC(2);return Tf(g.toggleInstructions())}),Cs(2,"h2",10),JC(3,"Instructions"),hl(),Cs(4,"span",20),JC(5," \u25BC "),hl()(),aC(6,U,2,1,"pre",21),hl();}if(n&2){let e=CC(2);sI(),Sg("aria-expanded",!e.instructionsCollapsed()),sI(3),zg("agent-config-inspect__chevron--open",!e.instructionsCollapsed()),sI(2),cC(e.instructionsCollapsed()?-1:6);}}function q(n,o){n&1&&(Cs(0,"p",17),JC(1,"No tools available for this agent."),hl());}function K(n,o){if(n&1&&(Mg(0,"div",26),gT(1,"agentosMarkdown")),n&2){let e=CC(2).$implicit;_g("innerHTML",yT(1,1,e.description),gE);}}function Q(n,o){if(n&1&&(Cs(0,"div",25),aC(1,K,2,3,"div",26),Cs(2,"pre",27),JC(3),hl()()),n&2){let e=CC().$implicit,c=CC(3);sI(),cC(e.description?1:-1),sI(2),Kg(c.formatSchema(e.inputSchema));}}function W(n,o){if(n&1){let e=vC();Cs(0,"li",22)(1,"button",23),kg("click",function(){let g=Cf(e).$implicit,V=CC(3);return Tf(V.toggleTool(g))}),Cs(2,"span",24),JC(3),hl(),Cs(4,"span",20),JC(5," \u25BC "),hl()(),aC(6,Q,4,2,"div",25),hl();}if(n&2){let e=o.$implicit,c=CC(3);sI(),Sg("aria-expanded",c.isToolExpanded(e)),sI(2),Kg(e.name),sI(),zg("agent-config-inspect__chevron--open",c.isToolExpanded(e)),sI(2),cC(c.isToolExpanded(e)?6:-1);}}function X(n,o){if(n&1&&(Cs(0,"ul",18),dC(1,W,7,5,"li",22,F),hl()),n&2){let e=CC();sI(),fC(e.tools);}}function Y(n,o){if(n&1&&(Cs(0,"div",8)(1,"section",9)(2,"h2",10),JC(3,"General"),hl(),Cs(4,"dl",11)(5,"dt",12),JC(6,"Name"),hl(),Cs(7,"dd",13),JC(8),hl(),Cs(9,"dt",12),JC(10,"Resolved model"),hl(),Cs(11,"dd",14),JC(12),hl(),Cs(13,"dt",12),JC(14,"Provider"),hl(),Cs(15,"dd",13),JC(16),hl(),Cs(17,"dt",12),JC(18,"Advanced execution"),hl(),Cs(19,"dd",13)(20,"span",15),JC(21),hl()(),aC(22,j,4,1),hl()(),aC(23,J,7,4,"section",9),aC(24,G,7,4,"section",9),Cs(25,"section",9)(26,"h2",10),JC(27," Tools "),Cs(28,"span",16),JC(29),hl()(),aC(30,q,2,0,"p",17)(31,X,3,0,"ul",18),hl()()),n&2){let e=o;sI(8),Kg(e.name),sI(4),Kg(e.resolvedModelApiName),sI(4),Kg(e.resolvedProviderName),sI(4),zg("agent-config-inspect__badge--active",e.advancedExecution),sI(),Dl(" ",e.advancedExecution?"Enabled":"Disabled"," "),sI(),cC(e.userId?22:-1),sI(),cC(e.systemPrompt?23:-1),sI(),cC(e.instructions?24:-1),sI(5),Dl("(",e.tools.length,")"),sI(),cC(e.tools.length===0?30:31);}}var R=class n{route=g(V);router=g(G$1);destroyRef=g(Ce);agentConfigController=g(M);namespaceId=this.route.snapshot.params.namespaceId;agentConfigId=this.route.snapshot.params.agentConfigId;isPlatformMode=!this.namespaceId;isLoading=Wi(true);hasError=Wi(false);definition=Wi(null);expandedTools=Wi(new Set);systemPromptCollapsed=Wi(true);instructionsCollapsed=Wi(true);ngOnInit(){this.agentConfigController.getDefinitionAgentConfig(this.agentConfigId).pipe(U$1(this.destroyRef)).subscribe({next:o=>{this.definition.set(o),this.isLoading.set(false);},error:()=>{this.hasError.set(true),this.isLoading.set(false);}});}toggleTool(o){this.expandedTools.update(e=>{let c=new Set(e);return c.has(o.name)?c.delete(o.name):c.add(o.name),c});}isToolExpanded(o){return this.expandedTools().has(o.name)}toggleSystemPrompt(){this.systemPromptCollapsed.update(o=>!o);}toggleInstructions(){this.instructionsCollapsed.update(o=>!o);}formatSchema(o){try{return JSON.stringify(JSON.parse(o),null,2)}catch(e){return o}}editRoute(){return this.isPlatformMode?["/agentos","admin","agent-configs",this.agentConfigId,"edit"]:["/agentos",this.namespaceId,"agent-configs",this.agentConfigId,"edit"]}back(){this.isPlatformMode?this.router.navigate(["/agentos","admin","agent-configs"]):this.router.navigate(["/agentos",this.namespaceId,"agent-configs"]);}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=jw({type:n,selectors:[["agentos-agent-config-inspect"]],decls:13,vars:2,consts:[[1,"agent-config-inspect"],[1,"agent-config-inspect__header"],["type","button","title","Back to agent configs",1,"agent-config-inspect__back",3,"click"],[1,"agent-config-inspect__back-icon"],[1,"agent-config-inspect__title"],[1,"agent-config-inspect__sibling-link",3,"routerLink"],[1,"agent-config-inspect__loading"],[1,"agent-config-inspect__error"],[1,"agent-config-inspect__content"],[1,"agent-config-inspect__section"],[1,"agent-config-inspect__section-title"],[1,"agent-config-inspect__dl"],[1,"agent-config-inspect__dt"],[1,"agent-config-inspect__dd"],[1,"agent-config-inspect__dd","agent-config-inspect__dd--mono"],[1,"agent-config-inspect__badge"],[1,"agent-config-inspect__count"],[1,"agent-config-inspect__empty"],[1,"agent-config-inspect__tools"],["type","button",1,"agent-config-inspect__collapsible",3,"click"],[1,"agent-config-inspect__chevron"],[1,"agent-config-inspect__instructions"],[1,"agent-config-inspect__tool"],["type","button",1,"agent-config-inspect__tool-header",3,"click"],[1,"agent-config-inspect__tool-name"],[1,"agent-config-inspect__tool-body"],[1,"agent-config-inspect__tool-description",3,"innerHTML"],[1,"agent-config-inspect__schema"]],template:function(e,c){if(e&1&&(Cs(0,"div",0)(1,"header",1)(2,"button",2),kg("click",function(){return c.back()}),Cs(3,"span",3),JC(4,"\u2190"),hl(),JC(5," Agent Configs "),hl(),Cs(6,"h1",4),JC(7,"Agent definition"),hl(),Cs(8,"a",5),JC(9,"Edit config \u2192"),hl()(),aC(10,B,2,0,"p",6)(11,$,2,0,"p",7)(12,Y,32,11,"div",8),hl()),e&2){let g;sI(8),_g("routerLink",c.editRoute()),sI(2),cC(c.isLoading()?10:c.hasError()?11:(g=c.definition())?12:-1,g);}},dependencies:[si,d],styles:[".agent-config-inspect[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:720px;margin:0 auto;padding:2rem 1rem}.agent-config-inspect__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.agent-config-inspect__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}.agent-config-inspect__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.agent-config-inspect__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.agent-config-inspect__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-text, #1d1d1f);letter-spacing:-.02em}.agent-config-inspect__sibling-link[_ngcontent-%COMP%]{font-size:.8125rem;color:var(--color-primary, #007aff);text-decoration:none}.agent-config-inspect__sibling-link[_ngcontent-%COMP%]:hover{text-decoration:underline}.agent-config-inspect__loading[_ngcontent-%COMP%], .agent-config-inspect__error[_ngcontent-%COMP%], .agent-config-inspect__empty[_ngcontent-%COMP%]{margin:0;font-size:.9rem;color:var(--color-text-secondary, #6e6e73)}.agent-config-inspect__error[_ngcontent-%COMP%]{color:var(--color-error, #ff3b30)}.agent-config-inspect__content[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.agent-config-inspect__section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.75rem;padding:1.25rem;border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:10px}.agent-config-inspect__section-title[_ngcontent-%COMP%]{margin:0;font-size:.9375rem;font-weight:600;color:var(--color-text, #1d1d1f)}.agent-config-inspect__count[_ngcontent-%COMP%]{font-weight:400;color:var(--color-text-secondary, #6e6e73);font-size:.875rem;margin-left:.25rem}.agent-config-inspect__dl[_ngcontent-%COMP%]{display:grid;grid-template-columns:max-content 1fr;gap:.5rem 1.25rem;margin:0}.agent-config-inspect__dt[_ngcontent-%COMP%]{font-size:.8125rem;font-weight:500;color:var(--color-text-secondary, #6e6e73);align-self:center}.agent-config-inspect__dd[_ngcontent-%COMP%]{margin:0;font-size:.9375rem;color:var(--color-text, #1d1d1f);align-self:center;word-break:break-word}.agent-config-inspect__dd--mono[_ngcontent-%COMP%]{font-family:monospace;font-size:.875rem}.agent-config-inspect__badge[_ngcontent-%COMP%]{display:inline-block;padding:.2em .6em;border-radius:4px;font-size:.75rem;font-weight:500;background:var(--color-surface-muted, rgba(0, 0, 0, .06));color:var(--color-text-secondary, #6e6e73)}.agent-config-inspect__badge--active[_ngcontent-%COMP%]{background:var(--color-success-bg, #e3f5e1);color:var(--color-success, #34c759)}.agent-config-inspect__collapsible[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;background:none;border:none;padding:0;cursor:pointer;font-family:inherit;text-align:left}.agent-config-inspect__chevron[_ngcontent-%COMP%]{font-size:.7rem;color:var(--color-text-secondary, #6e6e73);transition:transform .15s ease;flex-shrink:0}.agent-config-inspect__chevron--open[_ngcontent-%COMP%]{transform:rotate(180deg)}.agent-config-inspect__instructions[_ngcontent-%COMP%]{margin:0;padding:.875rem 1rem;border-radius:6px;background:var(--color-surface-muted, rgba(0, 0, 0, .04));font-size:.875rem;font-family:inherit;color:var(--color-text, #1d1d1f);white-space:pre-wrap;word-break:break-word;line-height:1.6;max-height:400px;overflow-y:auto}.agent-config-inspect__tools[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.agent-config-inspect__tool[_ngcontent-%COMP%]{border:1px solid var(--color-border, rgba(0, 0, 0, .08));border-radius:6px;overflow:hidden}.agent-config-inspect__tool-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;padding:.75rem 1rem;background:none;border:none;cursor:pointer;font-family:inherit;text-align:left;transition:background .1s ease}.agent-config-inspect__tool-header[_ngcontent-%COMP%]:hover{background:var(--color-surface-hover, rgba(0, 0, 0, .04))}.agent-config-inspect__tool-name[_ngcontent-%COMP%]{font-size:.875rem;font-weight:600;font-family:monospace;color:var(--color-text, #1d1d1f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-config-inspect__tool-body[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem;padding:0 1rem .75rem;border-top:1px solid var(--color-border, rgba(0, 0, 0, .08))}.agent-config-inspect__tool-description[_ngcontent-%COMP%]{margin:0;padding-top:.75rem;font-size:.8125rem;line-height:1.5;color:var(--color-text-secondary, #6e6e73)}.agent-config-inspect__tool-description[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0 0 .25rem}.agent-config-inspect__tool-description[_ngcontent-%COMP%] p[_ngcontent-%COMP%]:last-child{margin-bottom:0}.agent-config-inspect__tool-description[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{font-family:monospace;font-size:.8em;background:var(--color-surface-muted, rgba(0, 0, 0, .06));padding:.1em .3em;border-radius:3px}.agent-config-inspect__schema[_ngcontent-%COMP%]{margin:0;padding:.875rem 1rem;background:var(--color-surface-muted, rgba(0, 0, 0, .04));font-size:.8125rem;font-family:monospace;color:var(--color-text, #1d1d1f);white-space:pre;overflow-x:auto;line-height:1.5;max-height:360px;overflow-y:auto}"]})};export{R as AgentConfigInspectComponent};
|
|
1
|
+
import {d}from'./chunk-BaAG5SRs.js';import {g,ao as V,G as G$1,C as Ce,da as M,W as Wi,b as U$1,j as jw,s as si,k as Cs,n as Lg,J as JC,m as hl,o as aC,u as sI,x as xg,v as cC,a8 as em,y as qg,a5 as Dl,a9 as vC,ac as CC,N as Ng,q as dC,w as fC,A as Ag,bf as gT,bg as yT,aa as Sf,ab as _f,bj as gE}from'./main-4LGWVPVH.js';import'./chunk-6ZQ87jQV.js';import'./chunk-CmWqV8dc.js';import'./chunk-B2UoGfZ3.js';import'./chunk-CPuMGlfm.js';var F=(n,o)=>o.name;function B(n,o){n&1&&(Cs(0,"p",6),JC(1,"Loading\u2026"),hl());}function $(n,o){n&1&&(Cs(0,"p",7),JC(1,"Failed to load agent definition."),hl());}function j(n,o){if(n&1&&(Cs(0,"dt",12),JC(1,"User context"),hl(),Cs(2,"dd",14),JC(3),hl()),n&2){let e=CC();sI(3),em(e.userId);}}function H(n,o){if(n&1&&(Cs(0,"pre",21),JC(1),hl()),n&2){let e=CC(2);sI(),em(e.systemPrompt);}}function J(n,o){if(n&1){let e=vC();Cs(0,"section",9)(1,"button",19),Lg("click",function(){Sf(e);let g=CC(2);return _f(g.toggleSystemPrompt())}),Cs(2,"h2",10),JC(3,"System Prompt"),hl(),Cs(4,"span",20),JC(5," \u25BC "),hl()(),aC(6,H,2,1,"pre",21),hl();}if(n&2){let e=CC(2);sI(),Ng("aria-expanded",!e.systemPromptCollapsed()),sI(3),qg("agent-config-inspect__chevron--open",!e.systemPromptCollapsed()),sI(2),cC(e.systemPromptCollapsed()?-1:6);}}function U(n,o){if(n&1&&(Cs(0,"pre",21),JC(1),hl()),n&2){let e=CC(2);sI(),em(e.instructions);}}function G(n,o){if(n&1){let e=vC();Cs(0,"section",9)(1,"button",19),Lg("click",function(){Sf(e);let g=CC(2);return _f(g.toggleInstructions())}),Cs(2,"h2",10),JC(3,"Instructions"),hl(),Cs(4,"span",20),JC(5," \u25BC "),hl()(),aC(6,U,2,1,"pre",21),hl();}if(n&2){let e=CC(2);sI(),Ng("aria-expanded",!e.instructionsCollapsed()),sI(3),qg("agent-config-inspect__chevron--open",!e.instructionsCollapsed()),sI(2),cC(e.instructionsCollapsed()?-1:6);}}function q(n,o){n&1&&(Cs(0,"p",17),JC(1,"No tools available for this agent."),hl());}function K(n,o){if(n&1&&(Ag(0,"div",26),gT(1,"agentosMarkdown")),n&2){let e=CC(2).$implicit;xg("innerHTML",yT(1,1,e.description),gE);}}function Q(n,o){if(n&1&&(Cs(0,"div",25),aC(1,K,2,3,"div",26),Cs(2,"pre",27),JC(3),hl()()),n&2){let e=CC().$implicit,c=CC(3);sI(),cC(e.description?1:-1),sI(2),em(c.formatSchema(e.inputSchema));}}function W(n,o){if(n&1){let e=vC();Cs(0,"li",22)(1,"button",23),Lg("click",function(){let g=Sf(e).$implicit,V=CC(3);return _f(V.toggleTool(g))}),Cs(2,"span",24),JC(3),hl(),Cs(4,"span",20),JC(5," \u25BC "),hl()(),aC(6,Q,4,2,"div",25),hl();}if(n&2){let e=o.$implicit,c=CC(3);sI(),Ng("aria-expanded",c.isToolExpanded(e)),sI(2),em(e.name),sI(),qg("agent-config-inspect__chevron--open",c.isToolExpanded(e)),sI(2),cC(c.isToolExpanded(e)?6:-1);}}function X(n,o){if(n&1&&(Cs(0,"ul",18),dC(1,W,7,5,"li",22,F),hl()),n&2){let e=CC();sI(),fC(e.tools);}}function Y(n,o){if(n&1&&(Cs(0,"div",8)(1,"section",9)(2,"h2",10),JC(3,"General"),hl(),Cs(4,"dl",11)(5,"dt",12),JC(6,"Name"),hl(),Cs(7,"dd",13),JC(8),hl(),Cs(9,"dt",12),JC(10,"Resolved model"),hl(),Cs(11,"dd",14),JC(12),hl(),Cs(13,"dt",12),JC(14,"Provider"),hl(),Cs(15,"dd",13),JC(16),hl(),Cs(17,"dt",12),JC(18,"Advanced execution"),hl(),Cs(19,"dd",13)(20,"span",15),JC(21),hl()(),aC(22,j,4,1),hl()(),aC(23,J,7,4,"section",9),aC(24,G,7,4,"section",9),Cs(25,"section",9)(26,"h2",10),JC(27," Tools "),Cs(28,"span",16),JC(29),hl()(),aC(30,q,2,0,"p",17)(31,X,3,0,"ul",18),hl()()),n&2){let e=o;sI(8),em(e.name),sI(4),em(e.resolvedModelApiName),sI(4),em(e.resolvedProviderName),sI(4),qg("agent-config-inspect__badge--active",e.advancedExecution),sI(),Dl(" ",e.advancedExecution?"Enabled":"Disabled"," "),sI(),cC(e.userId?22:-1),sI(),cC(e.systemPrompt?23:-1),sI(),cC(e.instructions?24:-1),sI(5),Dl("(",e.tools.length,")"),sI(),cC(e.tools.length===0?30:31);}}var R=class n{route=g(V);router=g(G$1);destroyRef=g(Ce);agentConfigController=g(M);namespaceId=this.route.snapshot.params.namespaceId;agentConfigId=this.route.snapshot.params.agentConfigId;isPlatformMode=!this.namespaceId;isLoading=Wi(true);hasError=Wi(false);definition=Wi(null);expandedTools=Wi(new Set);systemPromptCollapsed=Wi(true);instructionsCollapsed=Wi(true);ngOnInit(){this.agentConfigController.getDefinitionAgentConfig(this.agentConfigId).pipe(U$1(this.destroyRef)).subscribe({next:o=>{this.definition.set(o),this.isLoading.set(false);},error:()=>{this.hasError.set(true),this.isLoading.set(false);}});}toggleTool(o){this.expandedTools.update(e=>{let c=new Set(e);return c.has(o.name)?c.delete(o.name):c.add(o.name),c});}isToolExpanded(o){return this.expandedTools().has(o.name)}toggleSystemPrompt(){this.systemPromptCollapsed.update(o=>!o);}toggleInstructions(){this.instructionsCollapsed.update(o=>!o);}formatSchema(o){try{return JSON.stringify(JSON.parse(o),null,2)}catch(e){return o}}editRoute(){return this.isPlatformMode?["/agentos","admin","agent-configs",this.agentConfigId,"edit"]:["/agentos",this.namespaceId,"agent-configs",this.agentConfigId,"edit"]}back(){this.isPlatformMode?this.router.navigate(["/agentos","admin","agent-configs"]):this.router.navigate(["/agentos",this.namespaceId,"agent-configs"]);}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=jw({type:n,selectors:[["agentos-agent-config-inspect"]],decls:13,vars:2,consts:[[1,"agent-config-inspect"],[1,"agent-config-inspect__header"],["type","button","title","Back to agent configs",1,"agent-config-inspect__back",3,"click"],[1,"agent-config-inspect__back-icon"],[1,"agent-config-inspect__title"],[1,"agent-config-inspect__sibling-link",3,"routerLink"],[1,"agent-config-inspect__loading"],[1,"agent-config-inspect__error"],[1,"agent-config-inspect__content"],[1,"agent-config-inspect__section"],[1,"agent-config-inspect__section-title"],[1,"agent-config-inspect__dl"],[1,"agent-config-inspect__dt"],[1,"agent-config-inspect__dd"],[1,"agent-config-inspect__dd","agent-config-inspect__dd--mono"],[1,"agent-config-inspect__badge"],[1,"agent-config-inspect__count"],[1,"agent-config-inspect__empty"],[1,"agent-config-inspect__tools"],["type","button",1,"agent-config-inspect__collapsible",3,"click"],[1,"agent-config-inspect__chevron"],[1,"agent-config-inspect__instructions"],[1,"agent-config-inspect__tool"],["type","button",1,"agent-config-inspect__tool-header",3,"click"],[1,"agent-config-inspect__tool-name"],[1,"agent-config-inspect__tool-body"],[1,"agent-config-inspect__tool-description",3,"innerHTML"],[1,"agent-config-inspect__schema"]],template:function(e,c){if(e&1&&(Cs(0,"div",0)(1,"header",1)(2,"button",2),Lg("click",function(){return c.back()}),Cs(3,"span",3),JC(4,"\u2190"),hl(),JC(5," Agent Configs "),hl(),Cs(6,"h1",4),JC(7,"Agent definition"),hl(),Cs(8,"a",5),JC(9,"Edit config \u2192"),hl()(),aC(10,B,2,0,"p",6)(11,$,2,0,"p",7)(12,Y,32,11,"div",8),hl()),e&2){let g;sI(8),xg("routerLink",c.editRoute()),sI(2),cC(c.isLoading()?10:c.hasError()?11:(g=c.definition())?12:-1,g);}},dependencies:[si,d],styles:[".agent-config-inspect[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:720px;margin:0 auto;padding:2rem 1rem}.agent-config-inspect__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.agent-config-inspect__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}.agent-config-inspect__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.agent-config-inspect__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.agent-config-inspect__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-text, #1d1d1f);letter-spacing:-.02em}.agent-config-inspect__sibling-link[_ngcontent-%COMP%]{font-size:.8125rem;color:var(--color-primary, #007aff);text-decoration:none}.agent-config-inspect__sibling-link[_ngcontent-%COMP%]:hover{text-decoration:underline}.agent-config-inspect__loading[_ngcontent-%COMP%], .agent-config-inspect__error[_ngcontent-%COMP%], .agent-config-inspect__empty[_ngcontent-%COMP%]{margin:0;font-size:.9rem;color:var(--color-text-secondary, #6e6e73)}.agent-config-inspect__error[_ngcontent-%COMP%]{color:var(--color-error, #ff3b30)}.agent-config-inspect__content[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.agent-config-inspect__section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.75rem;padding:1.25rem;border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:10px}.agent-config-inspect__section-title[_ngcontent-%COMP%]{margin:0;font-size:.9375rem;font-weight:600;color:var(--color-text, #1d1d1f)}.agent-config-inspect__count[_ngcontent-%COMP%]{font-weight:400;color:var(--color-text-secondary, #6e6e73);font-size:.875rem;margin-left:.25rem}.agent-config-inspect__dl[_ngcontent-%COMP%]{display:grid;grid-template-columns:max-content 1fr;gap:.5rem 1.25rem;margin:0}.agent-config-inspect__dt[_ngcontent-%COMP%]{font-size:.8125rem;font-weight:500;color:var(--color-text-secondary, #6e6e73);align-self:center}.agent-config-inspect__dd[_ngcontent-%COMP%]{margin:0;font-size:.9375rem;color:var(--color-text, #1d1d1f);align-self:center;word-break:break-word}.agent-config-inspect__dd--mono[_ngcontent-%COMP%]{font-family:monospace;font-size:.875rem}.agent-config-inspect__badge[_ngcontent-%COMP%]{display:inline-block;padding:.2em .6em;border-radius:4px;font-size:.75rem;font-weight:500;background:var(--color-surface-muted, rgba(0, 0, 0, .06));color:var(--color-text-secondary, #6e6e73)}.agent-config-inspect__badge--active[_ngcontent-%COMP%]{background:var(--color-success-bg, #e3f5e1);color:var(--color-success, #34c759)}.agent-config-inspect__collapsible[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;background:none;border:none;padding:0;cursor:pointer;font-family:inherit;text-align:left}.agent-config-inspect__chevron[_ngcontent-%COMP%]{font-size:.7rem;color:var(--color-text-secondary, #6e6e73);transition:transform .15s ease;flex-shrink:0}.agent-config-inspect__chevron--open[_ngcontent-%COMP%]{transform:rotate(180deg)}.agent-config-inspect__instructions[_ngcontent-%COMP%]{margin:0;padding:.875rem 1rem;border-radius:6px;background:var(--color-surface-muted, rgba(0, 0, 0, .04));font-size:.875rem;font-family:inherit;color:var(--color-text, #1d1d1f);white-space:pre-wrap;word-break:break-word;line-height:1.6;max-height:400px;overflow-y:auto}.agent-config-inspect__tools[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.agent-config-inspect__tool[_ngcontent-%COMP%]{border:1px solid var(--color-border, rgba(0, 0, 0, .08));border-radius:6px;overflow:hidden}.agent-config-inspect__tool-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;padding:.75rem 1rem;background:none;border:none;cursor:pointer;font-family:inherit;text-align:left;transition:background .1s ease}.agent-config-inspect__tool-header[_ngcontent-%COMP%]:hover{background:var(--color-surface-hover, rgba(0, 0, 0, .04))}.agent-config-inspect__tool-name[_ngcontent-%COMP%]{font-size:.875rem;font-weight:600;font-family:monospace;color:var(--color-text, #1d1d1f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-config-inspect__tool-body[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem;padding:0 1rem .75rem;border-top:1px solid var(--color-border, rgba(0, 0, 0, .08))}.agent-config-inspect__tool-description[_ngcontent-%COMP%]{margin:0;padding-top:.75rem;font-size:.8125rem;line-height:1.5;color:var(--color-text-secondary, #6e6e73)}.agent-config-inspect__tool-description[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0 0 .25rem}.agent-config-inspect__tool-description[_ngcontent-%COMP%] p[_ngcontent-%COMP%]:last-child{margin-bottom:0}.agent-config-inspect__tool-description[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{font-family:monospace;font-size:.8em;background:var(--color-surface-muted, rgba(0, 0, 0, .06));padding:.1em .3em;border-radius:3px}.agent-config-inspect__schema[_ngcontent-%COMP%]{margin:0;padding:.875rem 1rem;background:var(--color-surface-muted, rgba(0, 0, 0, .04));font-size:.8125rem;font-family:monospace;color:var(--color-text, #1d1d1f);white-space:pre;overflow-x:auto;line-height:1.5;max-height:360px;overflow-y:auto}"]})};export{R as AgentConfigInspectComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {N}from'./chunk-7dyrHGkF.js';import {g,ao as V,G,C as Ce$1,da as M,dn as B,W as Wi,dp as W,d8 as N$1,b as U,a7 as va,I as br,$ as $y,r as re,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,S as Sg,a5 as Dl,q as dC,v as fC,bo as uC,aa as Cf,ab as Tf,b0 as Xg}from'./main-RXIVNUWK.js';import'./chunk-D8dXXVY5.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,f as fn,a as wt,Z as Zn,l as Xn,$ as $t,W as Wt,C as Cn,E as En}from'./chunk-B3kY-GQk.js';import'./chunk-CzL7jU35.js';import'./chunk-YGA4ansj.js';import'./chunk-CaL6ZXsO.js';import'./chunk-CqZF9JZo.js';var me=(o,t)=>t.config.id,fe=(o,t)=>t.type;function ue(o,t){if(o&1&&(Cs(0,"a",5),JC(1,"View resolved definition \u2192"),hl()),o&2){let e=CC();_g("routerLink",e.inspectRoute());}}function pe(o,t){o&1&&(Cs(0,"span",6),JC(1,"Platform level"),hl());}function _e(o,t){o&1&&(Cs(0,"p",7),JC(1,"Loading\u2026"),hl());}function Ce(o,t){if(o&1&&(Cs(0,"span",46),JC(1),hl()),o&2){let e=CC().$implicit;sI(),Kg(e.config.integrationType);}}function be(o,t){if(o&1&&(Mg(0,"input",47),ZI()),o&2){let e=CC().$implicit;_g("formControl",e.toolsControl),QI();}}function xe(o,t){if(o&1){let e=vC();Cs(0,"div",42)(1,"label",43)(2,"input",44),kg("change",function(){let c=Cf(e).$implicit,g=CC(3);return Tf(g.toggleIntegration(c))}),hl(),Cs(3,"span",45),JC(4),hl(),aC(5,Ce,2,1,"span",46),hl(),aC(6,be,1,1,"input",47),hl();}if(o&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 he(o,t){if(o&1&&(Cs(0,"p",53),JC(1),hl()),o&2){let e=CC().$implicit;sI(),Dl(" Restricted to: ",e.restrictedTools.join(", ")," (set outside this form, preserved on save) ");}}function ye(o,t){if(o&1){let e=vC();Cs(0,"div",42)(1,"label",43)(2,"span",45),JC(3),hl(),Cs(4,"span",46),JC(5,"built-in"),hl()(),Cs(6,"select",49),kg("change",function(c){let g=Cf(e).$implicit,p=CC(4);return Tf(p.setBuiltInState(g,c.target.value))}),Cs(7,"option",50),JC(8),hl(),Cs(9,"option",51),JC(10,"Enabled"),hl(),Cs(11,"option",52),JC(12,"Disabled"),hl()(),aC(13,he,2,1,"p",53),Cs(14,"p",54),JC(15),hl()();}if(o&2){let e=t.$implicit,r=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(r.builtInDefaultLabel(e)),sI(5),cC(e.state()==="on"&&e.restrictedTools?13:-1),sI(2),Kg(e.description);}}function ve(o,t){if(o&1&&(Cs(0,"p",48),JC(1,"Built-in integrations"),hl(),dC(2,ye,16,7,"div",42,fe)),o&2){let e=CC(3);sI(2),fC(e.builtInRows());}}function we(o,t){if(o&1&&(Cs(0,"fieldset",20)(1,"legend",25),JC(2,"Integrations"),hl(),Cs(3,"p",41),JC(4," Select which integrations this agent can use. Leave tool names empty to allow all tools from an integration. "),hl(),dC(5,xe,7,4,"div",42,me),aC(7,ve,4,0),hl()),o&2){let e=CC(2);sI(5),fC(e.integrationRows()),sI(2),cC(e.builtInRows().length>0?7:-1);}}function Se(o,t){if(o&1){let e=vC();Cs(0,"li",55),Mg(1,"input",56),ZI(),Cs(2,"button",57),kg("click",function(){let c=Cf(e).$implicit,g=CC(3);return Tf(g.removeSubAgent(c))}),JC(3," \u{1F5D1} "),hl()();}if(o&2){let e=t.$implicit;sI(),_g("formControl",e.control),QI();}}function Ie(o,t){if(o&1&&(Cs(0,"ul",28),dC(1,Se,4,1,"li",55,uC),hl()),o&2){let e=CC(2);sI(),fC(e.subAgentRows());}}function Ae(o,t){if(o&1&&JC(0),o&2){let e=CC(2);Xg(" : ",e.defaultDelegationTimeoutSeconds()," s (",e.defaultDelegationTimeoutSeconds()/60," min) ");}}function Ee(o,t){o&1&&(Cs(0,"p",35),JC(1," Enter a valid positive whole number of seconds, or leave empty to inherit the server default. "),hl());}function Me(o,t){if(o&1){let e=vC();Cs(0,"button",58),kg("click",function(){Cf(e);let c=CC(2);return Tf(c.useDefaultDelegationTimeout())}),JC(1," Use server default "),hl();}}function ke(o,t){if(o&1){let e=vC();Cs(0,"button",59),kg("click",function(){Cf(e);let c=CC(2);return Tf(c.exportYaml())}),JC(1),hl();}if(o&2){let e=CC(2);_g("disabled",e.isExporting()),sI(),Dl(" ",e.isExporting()?"Exporting\u2026":"Export as YAML"," ");}}function Oe(o,t){if(o&1){let e=vC();Cs(0,"form",9),kg("ngSubmit",function(){Cf(e);let c=CC();return Tf(c.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,we,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,Ie,3,0,"ul",28),Cs(49,"div",29)(50,"input",30),kg("keydown.enter",function(){Cf(e);let c=CC();return Tf(c.addSubAgent())}),hl(),ZI(),Cs(51,"button",31),kg("click",function(){Cf(e);let c=CC();return Tf(c.addSubAgent())}),JC(52," + "),hl()()(),Cs(53,"div",10)(54,"label",32),JC(55,"Delegation timeout (seconds)"),hl(),Cs(56,"p",33),JC(57," Maximum time for each delegation launched by this agent, including nested delegations. On timeout, the sub-agent and its active descendants are stopped. Leave empty to use the server default "),aC(58,Ae,1,2),JC(59," . "),hl(),Mg(60,"input",34),ZI(),aC(61,Ee,2,0,"p",35),aC(62,Me,2,0,"button",36),hl(),Cs(63,"div",37)(64,"button",38),JC(65),hl(),aC(66,ke,2,2,"button",39),Cs(67,"button",40),kg("click",function(){Cf(e);let c=CC();return Tf(c.cancel())}),JC(68,"Cancel"),hl()()();}if(o&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(7),cC(e.defaultDelegationTimeoutSeconds()!==null?58:-1),sI(2),_g("formControl",e.delegationTimeoutControl),Sg("aria-invalid",e.delegationTimeoutControl.invalid),QI(),sI(),cC(e.delegationTimeoutControl.invalid?61:-1),sI(),cC(e.delegationTimeoutControl.value!==null?62:-1),sI(2),_g("disabled",e.form.invalid||e.isSubmitting()),sI(),Dl(" ",e.isEditMode()?"Save changes":"Create"," "),sI(),cC(e.isEditMode()?66:-1);}}var de=class o{route=g(V);router=g(G);destroyRef=g(Ce$1);agentConfigController=g(M);defaultsController=g(B);defaultDelegationTimeoutSeconds=Wi(null);exportService=g(W);integrationConfigState=g(N);integrationTypeController=g(N$1);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}),delegationTimeoutSeconds:new _t(null,{validators:[_e$1.min(1),_e$1.max(2147483647),_e$1.pattern(/^\d+$/)]}),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 delegationTimeoutControl(){return this.form.controls.delegationTimeoutSeconds}useDefaultDelegationTimeout(){this.delegationTimeoutControl.setValue(null),this.delegationTimeoutControl.markAsDirty();}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(){this.defaultsController.getAgentConfigDefaults().pipe(U(this.destroyRef),va(()=>br(null))).subscribe(e=>this.defaultDelegationTimeoutSeconds.set(e?.delegationTimeoutSeconds??null));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:r,platformIntegrations:c,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.delegationTimeoutControl.setValue(e.delegationTimeoutSeconds??null),this.enabledControl.setValue(e.enabled??true);let p=[...c,...r];this.integrationRows.set(this.buildIntegrationRows(p,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:r,builtInTypes:c})=>{let g=[...r,...e];this.integrationRows.set(this.buildIntegrationRows(g,t??void 0)),this.builtInRows.set(this.buildBuiltInRows(c,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(r=>{let c=r.name??"",g=e?.[c],p=e!=null&&c in e,P=Array.isArray(g)?g.join(", "):"";return {config:r,enabled:Wi(p),toolsControl:new _t(P,{nonNullable:true})}})}buildBuiltInRows(t,e){return t.map(r=>{let c=e!=null&&r.type in e,g=e?.[r.type],p=c?Array.isArray(g)&&g.length===0?"off":"on":"default";return {type:r.type,displayName:r.displayName,description:r.description,enabledByDefault:r.enabledByDefault===true,state:Wi(p),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(r=>r!==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 r of this.integrationRows().filter(c=>c.enabled())){let c=r.config.name??"",g=r.toolsControl.value.trim();t[c]=g===""?null:g.split(",").map(p=>p.trim()).filter(p=>p.length>0);}for(let r of this.builtInRows()){let c=r.state();c==="on"?t[r.type]=r.restrictedTools??null:c==="off"&&(t[r.type]=[]);}let e=new Set([...this.integrationRows().map(r=>r.config.name??""),...this.builtInRows().map(r=>r.type)]);for(let[r,c]of Object.entries(this.existingConfig?.integrations??{}))e.has(r)||(t[r]=c);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(),delegationTimeoutSeconds:this.delegationTimeoutControl.value});(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 r=new Blob([e],{type:"application/yaml"}),c=URL.createObjectURL(r),g=document.createElement("a");g.href=c,g.download=`${this.existingConfig?.name??"agent"}.yaml`,g.click(),URL.revokeObjectURL(c),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||o)};static \u0275cmp=jw({type:o,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"],["for","delegation-timeout",1,"agent-config-form__label"],["id","delegation-timeout-hint",1,"agent-config-form__field-hint"],["id","delegation-timeout","type","number","min","1","max","2147483647","step","1","placeholder","Server default","aria-describedby","delegation-timeout-hint delegation-timeout-error",1,"agent-config-form__input",3,"formControl"],["id","delegation-timeout-error","role","alert",1,"agent-config-form__field-hint"],["type","button",1,"agent-config-form__sub-agent-btn"],[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__sub-agent-btn",3,"click"],["type","button",1,"agent-config-form__btn","agent-config-form__btn--export",3,"click","disabled"]],template:function(e,r){e&1&&(Cs(0,"div",0)(1,"header",1)(2,"button",2),kg("click",function(){return r.cancel()}),Cs(3,"span",3),JC(4,"\u2190"),hl(),JC(5," Agent Configs "),hl(),Cs(6,"h1",4),JC(7),hl(),aC(8,ue,2,1,"a",5),aC(9,pe,2,0,"span",6),hl(),aC(10,_e,2,0,"p",7)(11,Oe,69,19,"form",8),hl()),e&2&&(sI(7),Kg(r.isEditMode()?"Edit agent config":"New agent config"),sI(),cC(r.isEditMode()?8:-1),sI(),cC(r.isPlatformMode?9:-1),sI(),cC(r.isLoading()?10:11));},dependencies:[ni,Jn,Qn,ei,Ye,fn,wt,Zn,Xn,$t,Wt,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{de as AgentConfigFormComponent};
|
|
1
|
+
import {N}from'./chunk-GWd9G-Nj.js';import {g,ao as V,G,C as Ce$1,da as M,dn as B,W as Wi,dp as G$1,d8 as F,b as U,a7 as va,X as br,S as Wy,r as re,z as z$1,a as P,j as jw,s as si,k as Cs,n as Lg,J as JC,m as hl,o as aC,u as sI,a8 as em,v as cC,ac as CC,x as xg,a9 as vC,A as Ag,a3 as ZI,a6 as QI,N as Ng,a5 as Dl,q as dC,w as fC,bo as uC,aa as Sf,ab as _f,b0 as tm}from'./main-4LGWVPVH.js';import'./chunk-BaAG5SRs.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,f as fn,a as wt,Z as Zn,l as Xn,$ as $t,W as Wt,C as Cn,E as En}from'./chunk-CPuMGlfm.js';import'./chunk-CCSxTkZ-.js';import'./chunk-6ZQ87jQV.js';import'./chunk-CmWqV8dc.js';import'./chunk-B2UoGfZ3.js';var me=(o,t)=>t.config.id,fe=(o,t)=>t.type;function ue(o,t){if(o&1&&(Cs(0,"a",5),JC(1,"View resolved definition \u2192"),hl()),o&2){let e=CC();xg("routerLink",e.inspectRoute());}}function pe(o,t){o&1&&(Cs(0,"span",6),JC(1,"Platform level"),hl());}function _e(o,t){o&1&&(Cs(0,"p",7),JC(1,"Loading\u2026"),hl());}function Ce(o,t){if(o&1&&(Cs(0,"span",46),JC(1),hl()),o&2){let e=CC().$implicit;sI(),em(e.config.integrationType);}}function be(o,t){if(o&1&&(Ag(0,"input",47),ZI()),o&2){let e=CC().$implicit;xg("formControl",e.toolsControl),QI();}}function xe(o,t){if(o&1){let e=vC();Cs(0,"div",42)(1,"label",43)(2,"input",44),Lg("change",function(){let c=Sf(e).$implicit,g=CC(3);return _f(g.toggleIntegration(c))}),hl(),Cs(3,"span",45),JC(4),hl(),aC(5,Ce,2,1,"span",46),hl(),aC(6,be,1,1,"input",47),hl();}if(o&2){let e=t.$implicit;sI(2),xg("checked",e.enabled()),sI(2),em(e.config.name),sI(),cC(e.config.integrationType?5:-1),sI(),cC(e.enabled()?6:-1);}}function he(o,t){if(o&1&&(Cs(0,"p",53),JC(1),hl()),o&2){let e=CC().$implicit;sI(),Dl(" Restricted to: ",e.restrictedTools.join(", ")," (set outside this form, preserved on save) ");}}function ye(o,t){if(o&1){let e=vC();Cs(0,"div",42)(1,"label",43)(2,"span",45),JC(3),hl(),Cs(4,"span",46),JC(5,"built-in"),hl()(),Cs(6,"select",49),Lg("change",function(c){let g=Sf(e).$implicit,p=CC(4);return _f(p.setBuiltInState(g,c.target.value))}),Cs(7,"option",50),JC(8),hl(),Cs(9,"option",51),JC(10,"Enabled"),hl(),Cs(11,"option",52),JC(12,"Disabled"),hl()(),aC(13,he,2,1,"p",53),Cs(14,"p",54),JC(15),hl()();}if(o&2){let e=t.$implicit,r=CC(4);sI(),Ng("for","built-in-"+e.type),sI(2),em(e.displayName),sI(3),xg("id","built-in-"+e.type)("value",e.state()),sI(2),em(r.builtInDefaultLabel(e)),sI(5),cC(e.state()==="on"&&e.restrictedTools?13:-1),sI(2),em(e.description);}}function ve(o,t){if(o&1&&(Cs(0,"p",48),JC(1,"Built-in integrations"),hl(),dC(2,ye,16,7,"div",42,fe)),o&2){let e=CC(3);sI(2),fC(e.builtInRows());}}function we(o,t){if(o&1&&(Cs(0,"fieldset",20)(1,"legend",25),JC(2,"Integrations"),hl(),Cs(3,"p",41),JC(4," Select which integrations this agent can use. Leave tool names empty to allow all tools from an integration. "),hl(),dC(5,xe,7,4,"div",42,me),aC(7,ve,4,0),hl()),o&2){let e=CC(2);sI(5),fC(e.integrationRows()),sI(2),cC(e.builtInRows().length>0?7:-1);}}function Se(o,t){if(o&1){let e=vC();Cs(0,"li",55),Ag(1,"input",56),ZI(),Cs(2,"button",57),Lg("click",function(){let c=Sf(e).$implicit,g=CC(3);return _f(g.removeSubAgent(c))}),JC(3," \u{1F5D1} "),hl()();}if(o&2){let e=t.$implicit;sI(),xg("formControl",e.control),QI();}}function Ie(o,t){if(o&1&&(Cs(0,"ul",28),dC(1,Se,4,1,"li",55,uC),hl()),o&2){let e=CC(2);sI(),fC(e.subAgentRows());}}function Ae(o,t){if(o&1&&JC(0),o&2){let e=CC(2);tm(" : ",e.defaultDelegationTimeoutSeconds()," s (",e.defaultDelegationTimeoutSeconds()/60," min) ");}}function Ee(o,t){o&1&&(Cs(0,"p",35),JC(1," Enter a valid positive whole number of seconds, or leave empty to inherit the server default. "),hl());}function Me(o,t){if(o&1){let e=vC();Cs(0,"button",58),Lg("click",function(){Sf(e);let c=CC(2);return _f(c.useDefaultDelegationTimeout())}),JC(1," Use server default "),hl();}}function ke(o,t){if(o&1){let e=vC();Cs(0,"button",59),Lg("click",function(){Sf(e);let c=CC(2);return _f(c.exportYaml())}),JC(1),hl();}if(o&2){let e=CC(2);xg("disabled",e.isExporting()),sI(),Dl(" ",e.isExporting()?"Exporting\u2026":"Export as YAML"," ");}}function Oe(o,t){if(o&1){let e=vC();Cs(0,"form",9),Lg("ngSubmit",function(){Sf(e);let c=CC();return _f(c.submit())}),Cs(1,"div",10)(2,"label",11),JC(3,"Name "),Cs(4,"span",12),JC(5,"*"),hl()(),Ag(6,"input",13),ZI(),hl(),Cs(7,"div",10)(8,"label",14),JC(9,"Description"),hl(),Ag(10,"input",15),ZI(),hl(),Cs(11,"div",10)(12,"label",16),JC(13,"Model name"),hl(),Ag(14,"input",17),ZI(),hl(),Cs(15,"div",10)(16,"label",18),JC(17,"Instructions"),hl(),Ag(18,"textarea",19),ZI(),hl(),aC(19,we,8,1,"fieldset",20),Cs(20,"div",10)(21,"label",21),Ag(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),Ag(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,Ie,3,0,"ul",28),Cs(49,"div",29)(50,"input",30),Lg("keydown.enter",function(){Sf(e);let c=CC();return _f(c.addSubAgent())}),hl(),ZI(),Cs(51,"button",31),Lg("click",function(){Sf(e);let c=CC();return _f(c.addSubAgent())}),JC(52," + "),hl()()(),Cs(53,"div",10)(54,"label",32),JC(55,"Delegation timeout (seconds)"),hl(),Cs(56,"p",33),JC(57," Maximum time for each delegation launched by this agent, including nested delegations. On timeout, the sub-agent and its active descendants are stopped. Leave empty to use the server default "),aC(58,Ae,1,2),JC(59," . "),hl(),Ag(60,"input",34),ZI(),aC(61,Ee,2,0,"p",35),aC(62,Me,2,0,"button",36),hl(),Cs(63,"div",37)(64,"button",38),JC(65),hl(),aC(66,ke,2,2,"button",39),Cs(67,"button",40),Lg("click",function(){Sf(e);let c=CC();return _f(c.cancel())}),JC(68,"Cancel"),hl()()();}if(o&2){let e=CC();xg("formGroup",e.form),sI(6),xg("formControl",e.nameControl),QI(),sI(4),xg("formControl",e.descriptionControl),QI(),sI(4),xg("formControl",e.modelNameControl),QI(),sI(4),xg("formControl",e.instructionsControl),QI(),sI(),cC(e.integrationRows().length>0||e.builtInRows().length>0?19:-1),sI(3),xg("formControl",e.advancedExecutionControl),QI(),sI(7),xg("formControl",e.enabledControl),QI(),sI(19),cC(e.subAgentRows().length>0?48:-1),sI(2),xg("formControl",e.newSubAgentControl),QI(),sI(),xg("disabled",!e.newSubAgentControl.value.trim()),sI(7),cC(e.defaultDelegationTimeoutSeconds()!==null?58:-1),sI(2),xg("formControl",e.delegationTimeoutControl),Ng("aria-invalid",e.delegationTimeoutControl.invalid),QI(),sI(),cC(e.delegationTimeoutControl.invalid?61:-1),sI(),cC(e.delegationTimeoutControl.value!==null?62:-1),sI(2),xg("disabled",e.form.invalid||e.isSubmitting()),sI(),Dl(" ",e.isEditMode()?"Save changes":"Create"," "),sI(),cC(e.isEditMode()?66:-1);}}var de=class o{route=g(V);router=g(G);destroyRef=g(Ce$1);agentConfigController=g(M);defaultsController=g(B);defaultDelegationTimeoutSeconds=Wi(null);exportService=g(G$1);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}),delegationTimeoutSeconds:new _t(null,{validators:[_e$1.min(1),_e$1.max(2147483647),_e$1.pattern(/^\d+$/)]}),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 delegationTimeoutControl(){return this.form.controls.delegationTimeoutSeconds}useDefaultDelegationTimeout(){this.delegationTimeoutControl.setValue(null),this.delegationTimeoutControl.markAsDirty();}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(){this.defaultsController.getAgentConfigDefaults().pipe(U(this.destroyRef),va(()=>br(null))).subscribe(e=>this.defaultDelegationTimeoutSeconds.set(e?.delegationTimeoutSeconds??null));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),Wy({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:r,platformIntegrations:c,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.delegationTimeoutControl.setValue(e.delegationTimeoutSeconds??null),this.enabledControl.setValue(e.enabled??true);let p=[...c,...r];this.integrationRows.set(this.buildIntegrationRows(p,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){Wy({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:r,builtInTypes:c})=>{let g=[...r,...e];this.integrationRows.set(this.buildIntegrationRows(g,t??void 0)),this.builtInRows.set(this.buildBuiltInRows(c,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(r=>{let c=r.name??"",g=e?.[c],p=e!=null&&c in e,P=Array.isArray(g)?g.join(", "):"";return {config:r,enabled:Wi(p),toolsControl:new _t(P,{nonNullable:true})}})}buildBuiltInRows(t,e){return t.map(r=>{let c=e!=null&&r.type in e,g=e?.[r.type],p=c?Array.isArray(g)&&g.length===0?"off":"on":"default";return {type:r.type,displayName:r.displayName,description:r.description,enabledByDefault:r.enabledByDefault===true,state:Wi(p),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(r=>r!==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 r of this.integrationRows().filter(c=>c.enabled())){let c=r.config.name??"",g=r.toolsControl.value.trim();t[c]=g===""?null:g.split(",").map(p=>p.trim()).filter(p=>p.length>0);}for(let r of this.builtInRows()){let c=r.state();c==="on"?t[r.type]=r.restrictedTools??null:c==="off"&&(t[r.type]=[]);}let e=new Set([...this.integrationRows().map(r=>r.config.name??""),...this.builtInRows().map(r=>r.type)]);for(let[r,c]of Object.entries(this.existingConfig?.integrations??{}))e.has(r)||(t[r]=c);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(),delegationTimeoutSeconds:this.delegationTimeoutControl.value});(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 r=new Blob([e],{type:"application/yaml"}),c=URL.createObjectURL(r),g=document.createElement("a");g.href=c,g.download=`${this.existingConfig?.name??"agent"}.yaml`,g.click(),URL.revokeObjectURL(c),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||o)};static \u0275cmp=jw({type:o,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"],["for","delegation-timeout",1,"agent-config-form__label"],["id","delegation-timeout-hint",1,"agent-config-form__field-hint"],["id","delegation-timeout","type","number","min","1","max","2147483647","step","1","placeholder","Server default","aria-describedby","delegation-timeout-hint delegation-timeout-error",1,"agent-config-form__input",3,"formControl"],["id","delegation-timeout-error","role","alert",1,"agent-config-form__field-hint"],["type","button",1,"agent-config-form__sub-agent-btn"],[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__sub-agent-btn",3,"click"],["type","button",1,"agent-config-form__btn","agent-config-form__btn--export",3,"click","disabled"]],template:function(e,r){e&1&&(Cs(0,"div",0)(1,"header",1)(2,"button",2),Lg("click",function(){return r.cancel()}),Cs(3,"span",3),JC(4,"\u2190"),hl(),JC(5," Agent Configs "),hl(),Cs(6,"h1",4),JC(7),hl(),aC(8,ue,2,1,"a",5),aC(9,pe,2,0,"span",6),hl(),aC(10,_e,2,0,"p",7)(11,Oe,69,19,"form",8),hl()),e&2&&(sI(7),em(r.isEditMode()?"Edit agent config":"New agent config"),sI(),cC(r.isEditMode()?8:-1),sI(),cC(r.isPlatformMode?9:-1),sI(),cC(r.isLoading()?10:11));},dependencies:[ni,Jn,Qn,ei,Ye,fn,wt,Zn,Xn,$t,Wt,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{de as AgentConfigFormComponent};
|