@whoz-oss/coday-client 0.199.0 → 0.200.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/browser/{chunk-JL4IPJT5.js → chunk-25QAYY2G.js} +1 -1
  2. package/browser/{chunk-GJ6TA25Y.js → chunk-32PCPEXE.js} +1 -1
  3. package/browser/{chunk-UXIUSXZT.js → chunk-3UZ346ET.js} +1 -1
  4. package/browser/{chunk-IEIHNRZE.js → chunk-5J75SWSV.js} +1 -1
  5. package/browser/chunk-5P2WWCFC.js +1 -0
  6. package/browser/{chunk-NKNHWFYH.js → chunk-5WWHTBZX.js} +1 -1
  7. package/browser/{chunk-V43NZ7XP.js → chunk-6NGGDRZW.js} +1 -1
  8. package/browser/{chunk-KFTYMWZ4.js → chunk-6PHQGWTQ.js} +1 -1
  9. package/browser/{chunk-I4DIX2BH.js → chunk-6QBZFOLP.js} +1 -1
  10. package/browser/chunk-AIJJNBNY.js +1 -0
  11. package/browser/{chunk-TFL7UOY7.js → chunk-APISHLX2.js} +1 -1
  12. package/browser/{chunk-HMYJY2DG.js → chunk-BBQBJKTG.js} +1 -1
  13. package/browser/{chunk-5AH4NMNL.js → chunk-C4YB46JQ.js} +1 -1
  14. package/browser/{chunk-P2XSTJQN.js → chunk-CHJWXPFL.js} +1 -1
  15. package/browser/chunk-CUZOUQER.js +1 -0
  16. package/browser/{chunk-J6KORXMO.js → chunk-DWM36GCL.js} +1 -1
  17. package/browser/chunk-EBPM4OO4.js +1 -0
  18. package/browser/{chunk-JYA4K7VB.js → chunk-EFU22KBF.js} +1 -1
  19. package/browser/{chunk-UNM7FXGM.js → chunk-EXGN47V2.js} +1 -1
  20. package/browser/{chunk-XAAHUCLS.js → chunk-FGH22HXQ.js} +1 -1
  21. package/browser/{chunk-OPMZ42FI.js → chunk-HB7BOQF2.js} +1 -1
  22. package/browser/chunk-INPPLYFX.js +1 -0
  23. package/browser/{chunk-DGE527NX.js → chunk-IQ7EL357.js} +1 -1
  24. package/browser/chunk-JFK2VH3B.js +1 -0
  25. package/browser/chunk-KGOCOJXX.js +1 -0
  26. package/browser/{chunk-LGN67WP4.js → chunk-MEMAC4FG.js} +1 -1
  27. package/browser/{chunk-GS2XHWWW.js → chunk-NBM4ZTYZ.js} +1 -1
  28. package/browser/{chunk-H5QMVJMP.js → chunk-NE7BOWVE.js} +1 -1
  29. package/browser/chunk-NQLFBBMS.js +1 -0
  30. package/browser/chunk-ODQ66F3E.js +1 -0
  31. package/browser/{chunk-K6BO32I7.js → chunk-OX3JLJE5.js} +1 -1
  32. package/browser/{chunk-MVZDT2QU.js → chunk-QKXRAKAR.js} +1 -1
  33. package/browser/{chunk-ASYQJGDW.js → chunk-RPBI6ZEF.js} +1 -1
  34. package/browser/{chunk-IMS2BEZA.js → chunk-SAT3CQDP.js} +1 -1
  35. package/browser/{chunk-MNRESS2L.js → chunk-TIF4AFYM.js} +1 -1
  36. package/browser/{chunk-72EDCCJQ.js → chunk-TWUUATLS.js} +1 -1
  37. package/browser/{chunk-CL3ICOAL.js → chunk-UXUHAYDM.js} +1 -1
  38. package/browser/{chunk-ESOYLXDB.js → chunk-XBQWHRJH.js} +1 -1
  39. package/browser/{chunk-XZRCNGKM.js → chunk-YG6SBV72.js} +1 -1
  40. package/browser/chunk-YKPIMVQC.js +1 -0
  41. package/browser/{chunk-IVKX5B6K.js → chunk-YPM4SWS3.js} +1 -1
  42. package/browser/{chunk-XLXMYPNG.js → chunk-YRI2TXXT.js} +1 -1
  43. package/browser/{chunk-J7ULM2BG.js → chunk-ZBXL6DSO.js} +1 -1
  44. package/browser/index.html +1 -1
  45. package/browser/{main-5JK54GWM.js → main-V5E64J66.js} +1 -1
  46. package/package.json +1 -1
  47. package/browser/chunk-BUWF3ZQM.js +0 -1
  48. package/browser/chunk-JMHTBAFK.js +0 -1
  49. package/browser/chunk-VGTKUVKV.js +0 -1
  50. package/browser/chunk-VOZI5GZY.js +0 -1
  51. package/browser/chunk-Y5A4URQQ.js +0 -1
@@ -1 +1 @@
1
- import{a as Q}from"./chunk-UXIUSXZT.js";import"./chunk-T3IUNA6F.js";import"./chunk-NKNHWFYH.js";import{b as $}from"./chunk-BUWF3ZQM.js";import{b as D,d as z,e as L}from"./chunk-4GVABYH4.js";import{a as M}from"./chunk-V363EHJE.js";import{F as K,b as B,c as G,e as E,g as j,h as W,i as q,l as m,n as J,s as U,w as H}from"./chunk-HZF57OLY.js";import{Bb as w,Db as u,Fb as s,Ka as a,Tb as i,Ub as S,Vb as T,Wa as N,a as I,b as R,ca as v,ga as b,ha as C,lb as _,m as A,ma as F,mb as p,nb as V,pb as P,qb as O,rb as c,sb as o,ta as h,tb as n,ub as f,z as k}from"./chunk-B4RKRLIY.js";var Y=(r,t)=>t.config.id;function Z(r,t){if(r&1&&(o(0,"a",5),i(1,"View resolved definition \u2192"),n()),r&2){let e=s();c("routerLink",e.inspectRoute())}}function ee(r,t){r&1&&(o(0,"span",6),i(1,"Platform level"),n())}function te(r,t){r&1&&(o(0,"p",7),i(1,"Loading\u2026"),n())}function ne(r,t){if(r&1&&(o(0,"span",40),i(1),n()),r&2){let e=s().$implicit;a(),S(e.config.integrationType)}}function oe(r,t){if(r&1&&f(0,"input",41),r&2){let e=s().$implicit;c("formControl",e.toolsControl)}}function ie(r,t){if(r&1){let e=w();o(0,"div",36)(1,"label",37)(2,"input",38),u("change",function(){let g=b(e).$implicit,d=s(3);return C(d.toggleIntegration(g))}),n(),o(3,"span",39),i(4),n(),_(5,ne,2,1,"span",40),n(),_(6,oe,1,1,"input",41),n()}if(r&2){let e=t.$implicit;a(2),c("checked",e.enabled()),a(2),S(e.config.name),a(),p(e.config.integrationType?5:-1),a(),p(e.enabled()?6:-1)}}function re(r,t){if(r&1&&(o(0,"fieldset",20)(1,"legend",25),i(2,"Integrations"),n(),o(3,"p",35),i(4," Select which integrations this agent can use. Leave tool names empty to allow all tools from an integration. "),n(),P(5,ie,7,4,"div",36,Y),n()),r&2){let e=s(2);a(5),O(e.integrationRows())}}function ae(r,t){if(r&1){let e=w();o(0,"li",42),f(1,"input",43),o(2,"button",44),u("click",function(){let g=b(e).$implicit,d=s(3);return C(d.removeSubAgent(g))}),i(3," \u{1F5D1} "),n()()}if(r&2){let e=t.$implicit;a(),c("formControl",e.control)}}function le(r,t){if(r&1&&(o(0,"ul",28),P(1,ae,4,1,"li",42,V),n()),r&2){let e=s(2);a(),O(e.subAgentRows())}}function ge(r,t){if(r&1){let e=w();o(0,"form",9),u("ngSubmit",function(){b(e);let g=s();return C(g.submit())}),o(1,"div",10)(2,"label",11),i(3,"Name "),o(4,"span",12),i(5,"*"),n()(),f(6,"input",13),n(),o(7,"div",10)(8,"label",14),i(9,"Description"),n(),f(10,"input",15),n(),o(11,"div",10)(12,"label",16),i(13,"Model name"),n(),f(14,"input",17),n(),o(15,"div",10)(16,"label",18),i(17,"Instructions"),n(),f(18,"textarea",19),n(),_(19,re,7,0,"fieldset",20),o(20,"div",10)(21,"label",21),f(22,"input",22),o(23,"span",23),i(24,"Advanced mode"),n()(),o(25,"p",24),i(26," When enabled, this agent uses a multi-step reasoning loop instead of a single LLM call. "),n()(),o(27,"div",10)(28,"label",21),f(29,"input",22),o(30,"span",23),i(31,"Enabled"),n()(),o(32,"p",24),i(33,"Disabled agents are excluded from namespace resolution."),n()(),o(34,"div",10)(35,"span",25),i(36,"Sub-agents"),n(),o(37,"p",26),i(38," Glob patterns for agents this agent may delegate to. "),o(39,"code",27),i(40,"*"),n(),i(41," matches any sequence of characters (e.g.\xA0"),o(42,"code",27),i(43,"*Fixer"),n(),i(44,", "),o(45,"code",27),i(46,"*"),n(),i(47," for all). Leave empty to disable delegation. "),n(),_(48,le,3,0,"ul",28),o(49,"div",29)(50,"input",30),u("keydown.enter",function(){b(e);let g=s();return C(g.addSubAgent())}),n(),o(51,"button",31),u("click",function(){b(e);let g=s();return C(g.addSubAgent())}),i(52," + "),n()()(),o(53,"div",32)(54,"button",33),i(55),n(),o(56,"button",34),u("click",function(){b(e);let g=s();return C(g.cancel())}),i(57,"Cancel"),n()()()}if(r&2){let e=s();c("formGroup",e.form),a(6),c("formControl",e.nameControl),a(4),c("formControl",e.descriptionControl),a(4),c("formControl",e.modelNameControl),a(4),c("formControl",e.instructionsControl),a(),p(e.integrationRows().length>0?19:-1),a(3),c("formControl",e.advancedExecutionControl),a(7),c("formControl",e.enabledControl),a(19),p(e.subAgentRows().length>0?48:-1),a(2),c("formControl",e.newSubAgentControl),a(),c("disabled",!e.newSubAgentControl.value.trim()),a(3),c("disabled",e.form.invalid||e.isSubmitting()),a(),T(" ",e.isEditMode()?"Save changes":"Create"," ")}}var X=class r{route=v(D);router=v(z);destroyRef=v(F);agentConfigController=v($);integrationConfigState=v(Q);namespaceId=this.route.snapshot.params.namespaceId;isPlatformMode=!this.namespaceId;form=new q({name:new m("",{nonNullable:!0,validators:[E.required,E.minLength(1)]}),description:new m(null),modelName:new m(null),instructions:new m(null),advancedExecution:new m(!1,{nonNullable:!0}),enabled:new m(!1,{nonNullable:!0})});get nameControl(){return this.form.controls.name}get descriptionControl(){return this.form.controls.description}get modelNameControl(){return this.form.controls.modelName}get instructionsControl(){return this.form.controls.instructions}get advancedExecutionControl(){return this.form.controls.advancedExecution}get enabledControl(){return this.form.controls.enabled}subAgentRows=h([]);newSubAgentControl=new m("",{nonNullable:!0});isEditMode=h(!1);isSubmitting=h(!1);isLoading=h(!1);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=h([]);existingConfig=null;ngOnInit(){let t=this.route.snapshot.paramMap.get("agentConfigId");t?(this.isEditMode.set(!0),this.loadConfigAndIntegrations(t)):this.loadIntegrations(void 0)}loadConfigAndIntegrations(t){this.isLoading.set(!0),k({config:this.agentConfigController.getByIdAgentConfig(t),namespaceIntegrations:this.namespaceId?this.integrationConfigState.loadNamespaceConfigs(this.namespaceId):A([]),platformIntegrations:this.integrationConfigState.loadPlatformConfigs()}).pipe(M(this.destroyRef)).subscribe({next:({config:e,namespaceIntegrations:l,platformIntegrations: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??!1),this.enabledControl.setValue(e.enabled??!0);let d=[...g,...l];this.integrationRows.set(this.buildIntegrationRows(d,e.integrations??void 0)),this.subAgentRows.set((e.subAgents??[]).map(x=>({control:new m(x,{nonNullable:!0})}))),this.isLoading.set(!1)},error:()=>{this.isLoading.set(!1),this.navigateBack()}})}loadIntegrations(t){k({namespaceIntegrations:this.namespaceId?this.integrationConfigState.loadNamespaceConfigs(this.namespaceId):A([]),platformIntegrations:this.integrationConfigState.loadPlatformConfigs()}).pipe(M(this.destroyRef)).subscribe({next:({namespaceIntegrations:e,platformIntegrations:l})=>{let g=[...l,...e];this.integrationRows.set(this.buildIntegrationRows(g,t??void 0))}})}buildIntegrationRows(t,e){return t.map(l=>{let g=l.name??"",d=e?.[g],x=e!=null&&g in e,y=Array.isArray(d)?d.join(", "):"";return{config:l,enabled:h(x),toolsControl:new m(y,{nonNullable:!0})}})}toggleIntegration(t){t.enabled.update(e=>!e)}addSubAgent(){let t=this.newSubAgentControl.value.trim();t&&(this.subAgentRows.update(e=>[...e,{control:new m(t,{nonNullable:!0})}]),this.newSubAgentControl.reset(""))}removeSubAgent(t){this.subAgentRows.update(e=>e.filter(l=>l!==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 e=this.integrationRows().filter(g=>g.enabled());if(e.length===0)return;let l={};for(let g of e){let d=g.config.name??"",x=g.toolsControl.value.trim();x===""?l[d]=null:l[d]=x.split(",").map(y=>y.trim()).filter(y=>y.length>0)}return l}submit(){if(this.form.invalid||this.isSubmitting())return;this.addSubAgent(),this.isSubmitting.set(!0);let t=R(I({},this.existingConfig??{}),{createdOn:this.existingConfig?.createdOn,updatedOn:this.existingConfig?.updatedOn,namespaceId:this.namespaceId,name:this.nameControl.value.trim(),description:this.descriptionControl.value?.trim()||void 0,modelName:this.modelNameControl.value?.trim()||void 0,instructions:this.instructionsControl.value?.trim()||void 0,integrations:this.buildIntegrationsPayload(),advancedExecution:this.advancedExecutionControl.value,enabled:this.enabledControl.value,subAgents:this.buildSubAgentsPayload()});(this.isEditMode()?this.agentConfigController.updateAgentConfig(this.existingConfig.id??"",t):this.agentConfigController.createAgentConfig(t)).pipe(M(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:()=>this.isSubmitting.set(!1)})}cancel(){this.navigateBack()}navigateBack(){this.isPlatformMode?this.router.navigate(["/agentos","admin","agent-configs"]):this.router.navigate(["/agentos",this.namespaceId,"agent-configs"])}static \u0275fac=function(e){return new(e||r)};static \u0275cmp=N({type:r,selectors:[["agentos-agent-config-form"]],decls:12,vars:4,consts:[[1,"agent-config-form"],[1,"agent-config-form__header"],["type","button","title","Back to agent configs",1,"agent-config-form__back",3,"click"],[1,"agent-config-form__back-icon"],[1,"agent-config-form__title"],[1,"agent-config-form__sibling-link",3,"routerLink"],[1,"agent-config-form__platform-badge"],[1,"agent-config-form__loading"],[1,"agent-config-form__form",3,"formGroup"],[1,"agent-config-form__form",3,"ngSubmit","formGroup"],[1,"agent-config-form__field"],["for","agent-config-name",1,"agent-config-form__label"],["aria-hidden","true"],["id","agent-config-name","type","text","placeholder","e.g. Support agent","autocomplete","off",1,"agent-config-form__input",3,"formControl"],["for","agent-config-description",1,"agent-config-form__label"],["id","agent-config-description","type","text","placeholder","Optional \u2014 short description of this agent","autocomplete","off",1,"agent-config-form__input",3,"formControl"],["for","agent-config-model-name",1,"agent-config-form__label"],["id","agent-config-model-name","type","text","placeholder","Optional \u2014 model alias or name to use","autocomplete","off",1,"agent-config-form__input",3,"formControl"],["for","agent-config-instructions",1,"agent-config-form__label"],["id","agent-config-instructions","rows","6","placeholder","Optional \u2014 system instructions for this agent",1,"agent-config-form__textarea",3,"formControl"],[1,"agent-config-form__integrations"],[1,"agent-config-form__toggle-label"],["type","checkbox",1,"agent-config-form__toggle-checkbox",3,"formControl"],[1,"agent-config-form__toggle-text"],[1,"agent-config-form__toggle-hint"],[1,"agent-config-form__label"],[1,"agent-config-form__field-hint"],[1,"agent-config-form__code"],[1,"agent-config-form__sub-agent-list"],[1,"agent-config-form__sub-agent-add"],["type","text","placeholder","e.g. *Fixer or *","autocomplete","off",1,"agent-config-form__input","agent-config-form__sub-agent-input",3,"keydown.enter","formControl"],["type","button","title","Add pattern",1,"agent-config-form__sub-agent-btn","agent-config-form__sub-agent-btn--add",3,"click","disabled"],[1,"agent-config-form__actions"],["type","submit",1,"agent-config-form__btn","agent-config-form__btn--primary",3,"disabled"],["type","button",1,"agent-config-form__btn",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__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"]],template:function(e,l){e&1&&(o(0,"div",0)(1,"header",1)(2,"button",2),u("click",function(){return l.cancel()}),o(3,"span",3),i(4,"\u2190"),n(),i(5," Agent Configs "),n(),o(6,"h1",4),i(7),n(),_(8,Z,2,1,"a",5),_(9,ee,2,0,"span",6),n(),_(10,te,2,0,"p",7)(11,ge,58,13,"form",8),n()),e&2&&(a(7),S(l.isEditMode()?"Edit agent config":"New agent config"),a(),p(l.isEditMode()?8:-1),a(),p(l.isPlatformMode?9:-1),a(),p(l.isLoading()?10:11))},dependencies:[K,J,G,B,j,W,U,H,L],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-primary, #007aff);font-family:inherit}.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:600;color:var(--color-text, #1d1d1f);letter-spacing:-.02em}.agent-config-form__sibling-link[_ngcontent-%COMP%]{font-size:.8125rem;color:var(--color-primary, #007aff);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, #6e6e73);background:var(--color-surface-hover, rgba(0, 0, 0, .04));border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:4px;padding:.125rem .5rem;letter-spacing:.02em;align-self:flex-start}.agent-config-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);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, #1d1d1f)}.agent-config-form__input[_ngcontent-%COMP%], .agent-config-form__textarea[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);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-primary, #007aff)}.agent-config-form__input[_ngcontent-%COMP%]::placeholder, .agent-config-form__textarea[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary, #6e6e73)}.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-border, rgba(0, 0, 0, .1));border-radius:8px;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, #6e6e73);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-primary, #007aff);cursor:pointer}.agent-config-form__integration-name[_ngcontent-%COMP%]{font-size:.9rem;font-weight:500;color:var(--color-text, #1d1d1f)}.agent-config-form__integration-type[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary, #6e6e73);font-family:monospace}.agent-config-form__integration-tools[_ngcontent-%COMP%]{margin-left:1.5rem;font-size:.875rem}.agent-config-form__field-hint[_ngcontent-%COMP%]{margin:.25rem 0 0;font-size:.8rem;color:var(--color-text-secondary, #6e6e73);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:3px}.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:6px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text-secondary, #6e6e73);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-surface-hover, rgba(0, 0, 0, .06));border-color:var(--color-border, rgba(0, 0, 0, .2));color:var(--color-text, #1d1d1f)}.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-primary, #007aff);color:var(--color-primary, #007aff)}.agent-config-form__sub-agent-btn--add[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-primary, #007aff);color:#fff}.agent-config-form__sub-agent-btn--danger[_ngcontent-%COMP%]:hover:not(:disabled){border-color:var(--color-error, #ff3b30);color:var(--color-error, #ff3b30);background: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-primary, #007aff);cursor:pointer}.agent-config-form__toggle-text[_ngcontent-%COMP%]{font-size:.9rem;font-weight:500;color:var(--color-text, #1d1d1f)}.agent-config-form__toggle-hint[_ngcontent-%COMP%]{margin:.25rem 0 0 1.5rem;font-size:.8rem;color:var(--color-text-secondary, #6e6e73);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:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.9375rem;font-family:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease}.agent-config-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-surface-hover, rgba(0, 0, 0, .04))}.agent-config-form__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.agent-config-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-primary, #007aff);border-color:var(--color-primary, #007aff);color:#fff}.agent-config-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-primary-hover, #0051d5);border-color:var(--color-primary-hover, #0051d5)}"],changeDetection:0})};export{X as AgentConfigFormComponent};
1
+ import{a as Q}from"./chunk-3UZ346ET.js";import"./chunk-T3IUNA6F.js";import"./chunk-5WWHTBZX.js";import{b as $}from"./chunk-5P2WWCFC.js";import{b as D,d as z,e as L}from"./chunk-4GVABYH4.js";import{a as M}from"./chunk-V363EHJE.js";import{F as K,b as B,c as G,e as E,g as j,h as W,i as q,l as m,n as J,s as U,w as H}from"./chunk-HZF57OLY.js";import{Bb as w,Db as u,Fb as s,Ka as a,Tb as i,Ub as S,Vb as T,Wa as N,a as I,b as R,ca as v,ga as b,ha as C,lb as _,m as A,ma as F,mb as p,nb as V,pb as P,qb as O,rb as c,sb as o,ta as h,tb as n,ub as f,z as k}from"./chunk-B4RKRLIY.js";var Y=(r,t)=>t.config.id;function Z(r,t){if(r&1&&(o(0,"a",5),i(1,"View resolved definition \u2192"),n()),r&2){let e=s();c("routerLink",e.inspectRoute())}}function ee(r,t){r&1&&(o(0,"span",6),i(1,"Platform level"),n())}function te(r,t){r&1&&(o(0,"p",7),i(1,"Loading\u2026"),n())}function ne(r,t){if(r&1&&(o(0,"span",40),i(1),n()),r&2){let e=s().$implicit;a(),S(e.config.integrationType)}}function oe(r,t){if(r&1&&f(0,"input",41),r&2){let e=s().$implicit;c("formControl",e.toolsControl)}}function ie(r,t){if(r&1){let e=w();o(0,"div",36)(1,"label",37)(2,"input",38),u("change",function(){let g=b(e).$implicit,d=s(3);return C(d.toggleIntegration(g))}),n(),o(3,"span",39),i(4),n(),_(5,ne,2,1,"span",40),n(),_(6,oe,1,1,"input",41),n()}if(r&2){let e=t.$implicit;a(2),c("checked",e.enabled()),a(2),S(e.config.name),a(),p(e.config.integrationType?5:-1),a(),p(e.enabled()?6:-1)}}function re(r,t){if(r&1&&(o(0,"fieldset",20)(1,"legend",25),i(2,"Integrations"),n(),o(3,"p",35),i(4," Select which integrations this agent can use. Leave tool names empty to allow all tools from an integration. "),n(),P(5,ie,7,4,"div",36,Y),n()),r&2){let e=s(2);a(5),O(e.integrationRows())}}function ae(r,t){if(r&1){let e=w();o(0,"li",42),f(1,"input",43),o(2,"button",44),u("click",function(){let g=b(e).$implicit,d=s(3);return C(d.removeSubAgent(g))}),i(3," \u{1F5D1} "),n()()}if(r&2){let e=t.$implicit;a(),c("formControl",e.control)}}function le(r,t){if(r&1&&(o(0,"ul",28),P(1,ae,4,1,"li",42,V),n()),r&2){let e=s(2);a(),O(e.subAgentRows())}}function ge(r,t){if(r&1){let e=w();o(0,"form",9),u("ngSubmit",function(){b(e);let g=s();return C(g.submit())}),o(1,"div",10)(2,"label",11),i(3,"Name "),o(4,"span",12),i(5,"*"),n()(),f(6,"input",13),n(),o(7,"div",10)(8,"label",14),i(9,"Description"),n(),f(10,"input",15),n(),o(11,"div",10)(12,"label",16),i(13,"Model name"),n(),f(14,"input",17),n(),o(15,"div",10)(16,"label",18),i(17,"Instructions"),n(),f(18,"textarea",19),n(),_(19,re,7,0,"fieldset",20),o(20,"div",10)(21,"label",21),f(22,"input",22),o(23,"span",23),i(24,"Advanced mode"),n()(),o(25,"p",24),i(26," When enabled, this agent uses a multi-step reasoning loop instead of a single LLM call. "),n()(),o(27,"div",10)(28,"label",21),f(29,"input",22),o(30,"span",23),i(31,"Enabled"),n()(),o(32,"p",24),i(33,"Disabled agents are excluded from namespace resolution."),n()(),o(34,"div",10)(35,"span",25),i(36,"Sub-agents"),n(),o(37,"p",26),i(38," Glob patterns for agents this agent may delegate to. "),o(39,"code",27),i(40,"*"),n(),i(41," matches any sequence of characters (e.g.\xA0"),o(42,"code",27),i(43,"*Fixer"),n(),i(44,", "),o(45,"code",27),i(46,"*"),n(),i(47," for all). Leave empty to disable delegation. "),n(),_(48,le,3,0,"ul",28),o(49,"div",29)(50,"input",30),u("keydown.enter",function(){b(e);let g=s();return C(g.addSubAgent())}),n(),o(51,"button",31),u("click",function(){b(e);let g=s();return C(g.addSubAgent())}),i(52," + "),n()()(),o(53,"div",32)(54,"button",33),i(55),n(),o(56,"button",34),u("click",function(){b(e);let g=s();return C(g.cancel())}),i(57,"Cancel"),n()()()}if(r&2){let e=s();c("formGroup",e.form),a(6),c("formControl",e.nameControl),a(4),c("formControl",e.descriptionControl),a(4),c("formControl",e.modelNameControl),a(4),c("formControl",e.instructionsControl),a(),p(e.integrationRows().length>0?19:-1),a(3),c("formControl",e.advancedExecutionControl),a(7),c("formControl",e.enabledControl),a(19),p(e.subAgentRows().length>0?48:-1),a(2),c("formControl",e.newSubAgentControl),a(),c("disabled",!e.newSubAgentControl.value.trim()),a(3),c("disabled",e.form.invalid||e.isSubmitting()),a(),T(" ",e.isEditMode()?"Save changes":"Create"," ")}}var X=class r{route=v(D);router=v(z);destroyRef=v(F);agentConfigController=v($);integrationConfigState=v(Q);namespaceId=this.route.snapshot.params.namespaceId;isPlatformMode=!this.namespaceId;form=new q({name:new m("",{nonNullable:!0,validators:[E.required,E.minLength(1)]}),description:new m(null),modelName:new m(null),instructions:new m(null),advancedExecution:new m(!1,{nonNullable:!0}),enabled:new m(!1,{nonNullable:!0})});get nameControl(){return this.form.controls.name}get descriptionControl(){return this.form.controls.description}get modelNameControl(){return this.form.controls.modelName}get instructionsControl(){return this.form.controls.instructions}get advancedExecutionControl(){return this.form.controls.advancedExecution}get enabledControl(){return this.form.controls.enabled}subAgentRows=h([]);newSubAgentControl=new m("",{nonNullable:!0});isEditMode=h(!1);isSubmitting=h(!1);isLoading=h(!1);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=h([]);existingConfig=null;ngOnInit(){let t=this.route.snapshot.paramMap.get("agentConfigId");t?(this.isEditMode.set(!0),this.loadConfigAndIntegrations(t)):this.loadIntegrations(void 0)}loadConfigAndIntegrations(t){this.isLoading.set(!0),k({config:this.agentConfigController.getByIdAgentConfig(t),namespaceIntegrations:this.namespaceId?this.integrationConfigState.loadNamespaceConfigs(this.namespaceId):A([]),platformIntegrations:this.integrationConfigState.loadPlatformConfigs()}).pipe(M(this.destroyRef)).subscribe({next:({config:e,namespaceIntegrations:l,platformIntegrations: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??!1),this.enabledControl.setValue(e.enabled??!0);let d=[...g,...l];this.integrationRows.set(this.buildIntegrationRows(d,e.integrations??void 0)),this.subAgentRows.set((e.subAgents??[]).map(x=>({control:new m(x,{nonNullable:!0})}))),this.isLoading.set(!1)},error:()=>{this.isLoading.set(!1),this.navigateBack()}})}loadIntegrations(t){k({namespaceIntegrations:this.namespaceId?this.integrationConfigState.loadNamespaceConfigs(this.namespaceId):A([]),platformIntegrations:this.integrationConfigState.loadPlatformConfigs()}).pipe(M(this.destroyRef)).subscribe({next:({namespaceIntegrations:e,platformIntegrations:l})=>{let g=[...l,...e];this.integrationRows.set(this.buildIntegrationRows(g,t??void 0))}})}buildIntegrationRows(t,e){return t.map(l=>{let g=l.name??"",d=e?.[g],x=e!=null&&g in e,y=Array.isArray(d)?d.join(", "):"";return{config:l,enabled:h(x),toolsControl:new m(y,{nonNullable:!0})}})}toggleIntegration(t){t.enabled.update(e=>!e)}addSubAgent(){let t=this.newSubAgentControl.value.trim();t&&(this.subAgentRows.update(e=>[...e,{control:new m(t,{nonNullable:!0})}]),this.newSubAgentControl.reset(""))}removeSubAgent(t){this.subAgentRows.update(e=>e.filter(l=>l!==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 e=this.integrationRows().filter(g=>g.enabled());if(e.length===0)return;let l={};for(let g of e){let d=g.config.name??"",x=g.toolsControl.value.trim();x===""?l[d]=null:l[d]=x.split(",").map(y=>y.trim()).filter(y=>y.length>0)}return l}submit(){if(this.form.invalid||this.isSubmitting())return;this.addSubAgent(),this.isSubmitting.set(!0);let t=R(I({},this.existingConfig??{}),{createdOn:this.existingConfig?.createdOn,updatedOn:this.existingConfig?.updatedOn,namespaceId:this.namespaceId,name:this.nameControl.value.trim(),description:this.descriptionControl.value?.trim()||void 0,modelName:this.modelNameControl.value?.trim()||void 0,instructions:this.instructionsControl.value?.trim()||void 0,integrations:this.buildIntegrationsPayload(),advancedExecution:this.advancedExecutionControl.value,enabled:this.enabledControl.value,subAgents:this.buildSubAgentsPayload()});(this.isEditMode()?this.agentConfigController.updateAgentConfig(this.existingConfig.id??"",t):this.agentConfigController.createAgentConfig(t)).pipe(M(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:()=>this.isSubmitting.set(!1)})}cancel(){this.navigateBack()}navigateBack(){this.isPlatformMode?this.router.navigate(["/agentos","admin","agent-configs"]):this.router.navigate(["/agentos",this.namespaceId,"agent-configs"])}static \u0275fac=function(e){return new(e||r)};static \u0275cmp=N({type:r,selectors:[["agentos-agent-config-form"]],decls:12,vars:4,consts:[[1,"agent-config-form"],[1,"agent-config-form__header"],["type","button","title","Back to agent configs",1,"agent-config-form__back",3,"click"],[1,"agent-config-form__back-icon"],[1,"agent-config-form__title"],[1,"agent-config-form__sibling-link",3,"routerLink"],[1,"agent-config-form__platform-badge"],[1,"agent-config-form__loading"],[1,"agent-config-form__form",3,"formGroup"],[1,"agent-config-form__form",3,"ngSubmit","formGroup"],[1,"agent-config-form__field"],["for","agent-config-name",1,"agent-config-form__label"],["aria-hidden","true"],["id","agent-config-name","type","text","placeholder","e.g. Support agent","autocomplete","off",1,"agent-config-form__input",3,"formControl"],["for","agent-config-description",1,"agent-config-form__label"],["id","agent-config-description","type","text","placeholder","Optional \u2014 short description of this agent","autocomplete","off",1,"agent-config-form__input",3,"formControl"],["for","agent-config-model-name",1,"agent-config-form__label"],["id","agent-config-model-name","type","text","placeholder","Optional \u2014 model alias or name to use","autocomplete","off",1,"agent-config-form__input",3,"formControl"],["for","agent-config-instructions",1,"agent-config-form__label"],["id","agent-config-instructions","rows","6","placeholder","Optional \u2014 system instructions for this agent",1,"agent-config-form__textarea",3,"formControl"],[1,"agent-config-form__integrations"],[1,"agent-config-form__toggle-label"],["type","checkbox",1,"agent-config-form__toggle-checkbox",3,"formControl"],[1,"agent-config-form__toggle-text"],[1,"agent-config-form__toggle-hint"],[1,"agent-config-form__label"],[1,"agent-config-form__field-hint"],[1,"agent-config-form__code"],[1,"agent-config-form__sub-agent-list"],[1,"agent-config-form__sub-agent-add"],["type","text","placeholder","e.g. *Fixer or *","autocomplete","off",1,"agent-config-form__input","agent-config-form__sub-agent-input",3,"keydown.enter","formControl"],["type","button","title","Add pattern",1,"agent-config-form__sub-agent-btn","agent-config-form__sub-agent-btn--add",3,"click","disabled"],[1,"agent-config-form__actions"],["type","submit",1,"agent-config-form__btn","agent-config-form__btn--primary",3,"disabled"],["type","button",1,"agent-config-form__btn",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__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"]],template:function(e,l){e&1&&(o(0,"div",0)(1,"header",1)(2,"button",2),u("click",function(){return l.cancel()}),o(3,"span",3),i(4,"\u2190"),n(),i(5," Agent Configs "),n(),o(6,"h1",4),i(7),n(),_(8,Z,2,1,"a",5),_(9,ee,2,0,"span",6),n(),_(10,te,2,0,"p",7)(11,ge,58,13,"form",8),n()),e&2&&(a(7),S(l.isEditMode()?"Edit agent config":"New agent config"),a(),p(l.isEditMode()?8:-1),a(),p(l.isPlatformMode?9:-1),a(),p(l.isLoading()?10:11))},dependencies:[K,J,G,B,j,W,U,H,L],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-primary, #007aff);font-family:inherit}.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:600;color:var(--color-text, #1d1d1f);letter-spacing:-.02em}.agent-config-form__sibling-link[_ngcontent-%COMP%]{font-size:.8125rem;color:var(--color-primary, #007aff);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, #6e6e73);background:var(--color-surface-hover, rgba(0, 0, 0, .04));border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:4px;padding:.125rem .5rem;letter-spacing:.02em;align-self:flex-start}.agent-config-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);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, #1d1d1f)}.agent-config-form__input[_ngcontent-%COMP%], .agent-config-form__textarea[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);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-primary, #007aff)}.agent-config-form__input[_ngcontent-%COMP%]::placeholder, .agent-config-form__textarea[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary, #6e6e73)}.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-border, rgba(0, 0, 0, .1));border-radius:8px;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, #6e6e73);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-primary, #007aff);cursor:pointer}.agent-config-form__integration-name[_ngcontent-%COMP%]{font-size:.9rem;font-weight:500;color:var(--color-text, #1d1d1f)}.agent-config-form__integration-type[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary, #6e6e73);font-family:monospace}.agent-config-form__integration-tools[_ngcontent-%COMP%]{margin-left:1.5rem;font-size:.875rem}.agent-config-form__field-hint[_ngcontent-%COMP%]{margin:.25rem 0 0;font-size:.8rem;color:var(--color-text-secondary, #6e6e73);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:3px}.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:6px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text-secondary, #6e6e73);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-surface-hover, rgba(0, 0, 0, .06));border-color:var(--color-border, rgba(0, 0, 0, .2));color:var(--color-text, #1d1d1f)}.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-primary, #007aff);color:var(--color-primary, #007aff)}.agent-config-form__sub-agent-btn--add[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-primary, #007aff);color:#fff}.agent-config-form__sub-agent-btn--danger[_ngcontent-%COMP%]:hover:not(:disabled){border-color:var(--color-error, #ff3b30);color:var(--color-error, #ff3b30);background: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-primary, #007aff);cursor:pointer}.agent-config-form__toggle-text[_ngcontent-%COMP%]{font-size:.9rem;font-weight:500;color:var(--color-text, #1d1d1f)}.agent-config-form__toggle-hint[_ngcontent-%COMP%]{margin:.25rem 0 0 1.5rem;font-size:.8rem;color:var(--color-text-secondary, #6e6e73);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:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.9375rem;font-family:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease}.agent-config-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-surface-hover, rgba(0, 0, 0, .04))}.agent-config-form__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.agent-config-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-primary, #007aff);border-color:var(--color-primary, #007aff);color:#fff}.agent-config-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-primary-hover, #0051d5);border-color:var(--color-primary-hover, #0051d5)}"],changeDetection:0})};export{X as AgentConfigFormComponent};
@@ -0,0 +1 @@
1
+ import{h as O}from"./chunk-5P2WWCFC.js";import{d as A}from"./chunk-4GVABYH4.js";import{p as $,u as B,v as z}from"./chunk-WV7ML4CJ.js";import{a as N}from"./chunk-V363EHJE.js";import{Bb as C,Db as l,Fb as o,Hc as L,Ka as _,Pb as T,Rb as P,S as q,Tb as y,Ub as x,Wa as v,ab as k,ac as V,ca as b,dc as D,ec as S,ga as r,ha as m,hc as E,i as w,lb as u,ma as M,mb as g,oa as d,rb as f,sb as c,t as R,ta as I,tb as p}from"./chunk-B4RKRLIY.js";function U(a,t){if(a&1&&(c(0,"span",3),y(1),p()),a&2){let e=o();_(),x(e.namespace.description)}}function W(a,t){if(a&1){let e=C();c(0,"span",6),y(1,"Delete?"),p(),c(2,"ds-icon-button",7),l("action",function(){r(e);let n=o();return m(n.onDeleteConfirmed())}),p(),c(3,"ds-icon-button",8),l("action",function(){r(e);let n=o();return m(n.onDeleteCancelled())}),p()}}function G(a,t){if(a&1){let e=C();c(0,"ds-kebab-menu",9),l("itemSelected",function(n){r(e);let s=o();return m(s.onMenuAction(n))}),p()}if(a&2){let e=o();f("items",e.menuItems)}}var h=class a{namespace;selected=new d;editRequested=new d;integrationsRequested=new d;aiProvidersRequested=new d;aiModelsRequested=new d;agentConfigsRequested=new d;promptsRequested=new d;deleteRequested=new d;pendingDelete=I(!1);menuItems=[{key:"edit",label:"Edit namespace",icon:"edit"},{key:"integrations",label:"Manage integrations",icon:"settings"},{key:"ai-providers",label:"AI Providers",icon:"smart_toy"},{key:"ai-models",label:"AI models",icon:"model_training"},{key:"agent-configs",label:"Agent Configs",icon:"support_agent"},{key:"prompts",label:"Prompts",icon:"description"},{key:"delete",label:"Delete namespace",icon:"delete",variant:"danger"}];onSelect(){this.selected.emit(this.namespace)}onMenuAction(t){switch(t){case"edit":this.editRequested.emit(this.namespace);break;case"integrations":this.integrationsRequested.emit(this.namespace);break;case"ai-providers":this.aiProvidersRequested.emit(this.namespace);break;case"ai-models":this.aiModelsRequested.emit(this.namespace);break;case"agent-configs":this.agentConfigsRequested.emit(this.namespace);break;case"prompts":this.promptsRequested.emit(this.namespace);break;case"delete":this.pendingDelete.set(!0);break}}onDeleteConfirmed(){this.pendingDelete.set(!1),this.deleteRequested.emit(this.namespace)}onDeleteCancelled(){this.pendingDelete.set(!1)}static \u0275fac=function(e){return new(e||a)};static \u0275cmp=v({type:a,selectors:[["agentos-namespace-item"]],inputs:{namespace:"namespace"},outputs:{selected:"selected",editRequested:"editRequested",integrationsRequested:"integrationsRequested",aiProvidersRequested:"aiProvidersRequested",aiModelsRequested:"aiModelsRequested",agentConfigsRequested:"agentConfigsRequested",promptsRequested:"promptsRequested",deleteRequested:"deleteRequested"},decls:8,vars:5,consts:[["role","listitem",1,"namespace-item"],["type","button",1,"namespace-item__body",3,"click"],[1,"namespace-item__name"],[1,"namespace-item__desc"],[1,"namespace-item__actions"],[3,"items"],[1,"namespace-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&&(c(0,"div",0)(1,"button",1),l("click",function(){return i.onSelect()}),c(2,"span",2),y(3),p(),u(4,U,2,1,"span",3),p(),c(5,"div",4),u(6,W,4,0)(7,G,1,1,"ds-kebab-menu",5),p()()),e&2&&(P("namespace-item--pending-delete",i.pendingDelete()),_(3),x(i.namespace.name),_(),g(i.namespace.description?4:-1),_(2),g(i.pendingDelete()?6:7))},dependencies:[z,$],styles:[".namespace-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.875rem 1.25rem;border-radius:10px;border:1px solid var(--color-border, rgba(0, 0, 0, .08));background:var(--glass-bg, rgba(255, 255, 255, .72));-webkit-backdrop-filter:var(--glass-backdrop-blur, blur(20px));backdrop-filter:var(--glass-backdrop-blur, blur(20px));transition:background .15s ease,border-color .15s ease}.namespace-item[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04));border-color:var(--color-primary, #007aff)}.namespace-item__body[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;background:none;border:none;padding:0;cursor:pointer;text-align:left;min-width:0}.namespace-item__name[_ngcontent-%COMP%]{font-size:.95rem;font-weight:500;color:var(--color-text, #1d1d1f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.namespace-item__desc[_ngcontent-%COMP%]{font-size:.8rem;color:var(--color-text-secondary, #6e6e73);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.namespace-item__actions[_ngcontent-%COMP%]{flex-shrink:0;display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.namespace-item[_ngcontent-%COMP%]:hover .namespace-item__actions[_ngcontent-%COMP%], .namespace-item[_ngcontent-%COMP%]:focus-within .namespace-item__actions[_ngcontent-%COMP%], .namespace-item--pending-delete[_ngcontent-%COMP%] .namespace-item__actions[_ngcontent-%COMP%]{opacity:1}.namespace-item__confirm-label[_ngcontent-%COMP%]{font-size:.8rem;font-weight:500;color:var(--color-error, #ff3b30);margin-right:.25rem;white-space:nowrap}"],changeDetection:0})};var H=()=>[];function J(a,t){if(a&1){let e=C();c(0,"agentos-namespace-item",3),l("selected",function(n){r(e);let s=o(2);return m(s.navigateToCases(n.id??""))})("editRequested",function(n){r(e);let s=o(2);return m(s.navigateToEdit(n))})("deleteRequested",function(n){r(e);let s=o(2);return m(s.deleteNamespace(n))})("integrationsRequested",function(n){r(e);let s=o(2);return m(s.openIntegrations(n))})("aiProvidersRequested",function(n){r(e);let s=o(2);return m(s.openAiProviders(n))})("aiModelsRequested",function(n){r(e);let s=o(2);return m(s.openAiModels(n))})("agentConfigsRequested",function(n){r(e);let s=o(2);return m(s.openAgentConfigs(n))})("promptsRequested",function(n){r(e);let s=o(2);return m(s.openPrompts(n))}),p()}a&2&&f("namespace",t)}function Q(a,t){if(a&1&&u(0,J,1,1,"agentos-namespace-item",2),a&2){let e,i=t.$implicit,n=o();g((e=n.resolveNamespace(i.id))?0:-1,e)}}var F=class a{router=b(A);namespaceController=b(O);destroyRef=b(M);refresh$=new w(void 0);namespaces$=this.refresh$.pipe(q(()=>this.namespaceController.listAllNamespace()));namespaceItems$=this.namespaces$.pipe(R(t=>t.map(e=>({id:e.id??"",name:e.name,description:e.description,badges:e.defaultAgentName?[{label:e.defaultAgentName,variant:"info"}]:void 0}))));namespacesById=new Map;constructor(){this.namespaces$.pipe(N(this.destroyRef)).subscribe(t=>{this.namespacesById=new Map(t.map(e=>[e.id??"",e]))})}navigateToCases(t){this.router.navigate(["/agentos",t,"cases"])}navigateToCreate(){this.router.navigate(["/agentos/namespaces/new"])}navigateToEdit(t){this.router.navigate(["/agentos/namespaces",t.id??"","edit"])}openIntegrations(t){this.router.navigate(["/agentos",t.id,"integrations"])}openAiProviders(t){this.router.navigate(["/agentos",t.id,"ai-providers"])}openAiModels(t){this.router.navigate(["/agentos",t.id,"ai-models"])}openAgentConfigs(t){this.router.navigate(["/agentos",t.id,"agent-configs"])}openPrompts(t){this.router.navigate(["/agentos",t.id,"prompts"])}deleteNamespace(t){this.namespaceController.deleteNamespace(t.id??"").pipe(N(this.destroyRef)).subscribe(()=>this.refresh$.next())}resolveNamespace(t){return this.namespacesById.get(t)??null}static \u0275fac=function(e){return new(e||a)};static \u0275cmp=v({type:a,selectors:[["agentos-namespace-list"]],decls:4,vars:6,consts:[["namespaceItemTpl",""],["title","Namespaces","emptyMessage","No namespaces yet. Create one to get started.","cardMinWidth","400px",3,"itemSelected","createRequested","items","showCreate","itemTemplate"],[3,"namespace"],[3,"selected","editRequested","deleteRequested","integrationsRequested","aiProvidersRequested","aiModelsRequested","agentConfigsRequested","promptsRequested","namespace"]],template:function(e,i){if(e&1&&(c(0,"ds-entity-list",1),D(1,"async"),l("itemSelected",function(s){return i.navigateToCases(s)})("createRequested",function(){return i.navigateToCreate()}),p(),k(2,Q,1,1,"ng-template",null,0,E)),e&2){let n=T(3);f("items",S(1,3,i.namespaceItems$)??V(5,H))("showCreate",!0)("itemTemplate",n)}},dependencies:[h,B,L],encapsulation:2})};export{h as a,F as b};
@@ -1 +1 @@
1
- import{a as L}from"./chunk-HMYJY2DG.js";import{d as T}from"./chunk-4GVABYH4.js";import{p as q,u as E,v as D}from"./chunk-WV7ML4CJ.js";import{a as U}from"./chunk-V363EHJE.js";import{Bb as w,Db as a,Fb as m,Ka as d,Pb as R,Tb as C,Ub as h,Wa as c,ab as I,ca as p,ga as y,ha as b,hc as M,kc as S,lb as _,ma as x,mb as f,oa as v,rb as u,sb as r,tb as o}from"./chunk-B4RKRLIY.js";function O(i,e){if(i&1&&(r(0,"span",3),C(1),o()),i&2){let t=m();d(),h(t.subtitle)}}var g=class i{user;editRequested=new v;deleteRequested=new v;menuItems=[{key:"edit",label:"Edit user",icon:"edit"},{key:"delete",label:"Delete user",icon:"delete",variant:"danger"}];get displayName(){let{firstname:e,lastname:t,email:n}=this.user;return[e,t].filter(Boolean).join(" ")||n||"\u2014"}get subtitle(){return this.user.email??this.user.externalId??""}onMenuAction(e){switch(e){case"edit":this.editRequested.emit(this.user);break;case"delete":confirm(`Delete user "${this.displayName}"?`)&&this.deleteRequested.emit(this.user);break}}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=c({type:i,selectors:[["agentos-user-item"]],inputs:{user:"user"},outputs:{editRequested:"editRequested",deleteRequested:"deleteRequested"},decls:7,vars:3,consts:[["role","listitem",1,"user-item"],[1,"user-item__body"],[1,"user-item__name"],[1,"user-item__subtitle"],[1,"user-item__actions"],[3,"itemSelected","items"]],template:function(t,n){t&1&&(r(0,"div",0)(1,"div",1)(2,"span",2),C(3),o(),_(4,O,2,1,"span",3),o(),r(5,"div",4)(6,"ds-kebab-menu",5),a("itemSelected",function(l){return n.onMenuAction(l)}),o()()()),t&2&&(d(3),h(n.displayName),d(),f(n.subtitle?4:-1),d(2),u("items",n.menuItems))},dependencies:[D],styles:[".user-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;width:100%;padding:1rem 1.25rem;background:var(--color-bg-secondary, rgba(255, 255, 255, .7));border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:12px;box-sizing:border-box;overflow:hidden;position:relative}.user-item__body[_ngcontent-%COMP%]{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.user-item__name[_ngcontent-%COMP%]{font-size:.9375rem;font-weight:600;color:var(--color-text, #1d1d1f);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-item__subtitle[_ngcontent-%COMP%]{font-size:.8125rem;color:var(--color-text-secondary, #6e6e73);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-item__actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem;flex-shrink:0}"],changeDetection:0})};function B(i,e){if(i&1){let t=w();r(0,"agentos-user-item",4),a("editRequested",function(s){y(t);let l=m(2);return b(l.navigateToEdit(s))})("deleteRequested",function(s){y(t);let l=m(2);return b(l.deleteUser(s))}),o()}i&2&&u("user",e)}function P(i,e){if(i&1&&_(0,B,1,1,"agentos-user-item",3),i&2){let t,n=e.$implicit,s=m();f((t=s.resolveUser(n.id))?0:-1,t)}}var k=class i{router=p(T);destroyRef=p(x);userAdminState=p(L);isLoading=this.userAdminState.isLoading;userItems=S(()=>this.userAdminState.users().map(e=>({id:e.id??"",name:[e.firstname,e.lastname].filter(Boolean).join(" ")||e.email||"\u2014",description:e.email})));get usersById(){return new Map(this.userAdminState.users().map(e=>[e.id??"",e]))}ngOnInit(){this.userAdminState.loadAll().pipe(U(this.destroyRef)).subscribe()}goBack(){this.router.navigate(["/agentos"])}navigateToCreate(){this.router.navigate(["/agentos/admin/users/new"])}navigateToEdit(e){this.router.navigate(["/agentos/admin/users",e.id??"","edit"])}deleteUser(e){this.userAdminState.deleteUser(e.id??"").pipe(U(this.destroyRef)).subscribe()}resolveUser(e){return this.usersById.get(e)??null}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=c({type:i,selectors:[["agentos-user-list"]],decls:4,vars:3,consts:[["userItemTpl",""],["title","Users","emptyMessage","No users found.","cardMinWidth","320px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[3,"user"],[3,"editRequested","deleteRequested","user"]],template:function(t,n){if(t&1&&(r(0,"ds-entity-list",1),a("createRequested",function(){return n.navigateToCreate()}),r(1,"ds-icon-button",2),a("action",function(){return n.goBack()}),o()(),I(2,P,1,1,"ng-template",null,0,M)),t&2){let s=R(3);u("items",n.userItems())("showCreate",!0)("itemTemplate",s)}},dependencies:[E,g,q],encapsulation:2,changeDetection:0})};export{g as a,k as b};
1
+ import{a as L}from"./chunk-BBQBJKTG.js";import{d as T}from"./chunk-4GVABYH4.js";import{p as q,u as E,v as D}from"./chunk-WV7ML4CJ.js";import{a as U}from"./chunk-V363EHJE.js";import{Bb as w,Db as a,Fb as m,Ka as d,Pb as R,Tb as C,Ub as h,Wa as c,ab as I,ca as p,ga as y,ha as b,hc as M,kc as S,lb as _,ma as x,mb as f,oa as v,rb as u,sb as r,tb as o}from"./chunk-B4RKRLIY.js";function O(i,e){if(i&1&&(r(0,"span",3),C(1),o()),i&2){let t=m();d(),h(t.subtitle)}}var g=class i{user;editRequested=new v;deleteRequested=new v;menuItems=[{key:"edit",label:"Edit user",icon:"edit"},{key:"delete",label:"Delete user",icon:"delete",variant:"danger"}];get displayName(){let{firstname:e,lastname:t,email:n}=this.user;return[e,t].filter(Boolean).join(" ")||n||"\u2014"}get subtitle(){return this.user.email??this.user.externalId??""}onMenuAction(e){switch(e){case"edit":this.editRequested.emit(this.user);break;case"delete":confirm(`Delete user "${this.displayName}"?`)&&this.deleteRequested.emit(this.user);break}}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=c({type:i,selectors:[["agentos-user-item"]],inputs:{user:"user"},outputs:{editRequested:"editRequested",deleteRequested:"deleteRequested"},decls:7,vars:3,consts:[["role","listitem",1,"user-item"],[1,"user-item__body"],[1,"user-item__name"],[1,"user-item__subtitle"],[1,"user-item__actions"],[3,"itemSelected","items"]],template:function(t,n){t&1&&(r(0,"div",0)(1,"div",1)(2,"span",2),C(3),o(),_(4,O,2,1,"span",3),o(),r(5,"div",4)(6,"ds-kebab-menu",5),a("itemSelected",function(l){return n.onMenuAction(l)}),o()()()),t&2&&(d(3),h(n.displayName),d(),f(n.subtitle?4:-1),d(2),u("items",n.menuItems))},dependencies:[D],styles:[".user-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;width:100%;padding:1rem 1.25rem;background:var(--color-bg-secondary, rgba(255, 255, 255, .7));border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:12px;box-sizing:border-box;overflow:hidden;position:relative}.user-item__body[_ngcontent-%COMP%]{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.user-item__name[_ngcontent-%COMP%]{font-size:.9375rem;font-weight:600;color:var(--color-text, #1d1d1f);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-item__subtitle[_ngcontent-%COMP%]{font-size:.8125rem;color:var(--color-text-secondary, #6e6e73);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-item__actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem;flex-shrink:0}"],changeDetection:0})};function B(i,e){if(i&1){let t=w();r(0,"agentos-user-item",4),a("editRequested",function(s){y(t);let l=m(2);return b(l.navigateToEdit(s))})("deleteRequested",function(s){y(t);let l=m(2);return b(l.deleteUser(s))}),o()}i&2&&u("user",e)}function P(i,e){if(i&1&&_(0,B,1,1,"agentos-user-item",3),i&2){let t,n=e.$implicit,s=m();f((t=s.resolveUser(n.id))?0:-1,t)}}var k=class i{router=p(T);destroyRef=p(x);userAdminState=p(L);isLoading=this.userAdminState.isLoading;userItems=S(()=>this.userAdminState.users().map(e=>({id:e.id??"",name:[e.firstname,e.lastname].filter(Boolean).join(" ")||e.email||"\u2014",description:e.email})));get usersById(){return new Map(this.userAdminState.users().map(e=>[e.id??"",e]))}ngOnInit(){this.userAdminState.loadAll().pipe(U(this.destroyRef)).subscribe()}goBack(){this.router.navigate(["/agentos"])}navigateToCreate(){this.router.navigate(["/agentos/admin/users/new"])}navigateToEdit(e){this.router.navigate(["/agentos/admin/users",e.id??"","edit"])}deleteUser(e){this.userAdminState.deleteUser(e.id??"").pipe(U(this.destroyRef)).subscribe()}resolveUser(e){return this.usersById.get(e)??null}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=c({type:i,selectors:[["agentos-user-list"]],decls:4,vars:3,consts:[["userItemTpl",""],["title","Users","emptyMessage","No users found.","cardMinWidth","320px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[3,"user"],[3,"editRequested","deleteRequested","user"]],template:function(t,n){if(t&1&&(r(0,"ds-entity-list",1),a("createRequested",function(){return n.navigateToCreate()}),r(1,"ds-icon-button",2),a("action",function(){return n.goBack()}),o()(),I(2,P,1,1,"ng-template",null,0,M)),t&2){let s=R(3);u("items",n.userItems())("showCreate",!0)("itemTemplate",s)}},dependencies:[E,g,q],encapsulation:2,changeDetection:0})};export{g as a,k as b};
@@ -1 +1 @@
1
- import{a as H}from"./chunk-NKNHWFYH.js";import{j as T}from"./chunk-BUWF3ZQM.js";import{d as E}from"./chunk-4GVABYH4.js";import{a as A}from"./chunk-V363EHJE.js";import{Bb as O,Db as g,Fb as f,Ka as i,Rb as M,Tb as m,Ub as S,Wa as p,ca as s,ga as h,ha as v,kc as w,lb as d,ma as C,mb as l,rb as k,sb as r,ta as y,tb as c,ub as b,vb as x,wb as P,xb as u}from"./chunk-B4RKRLIY.js";function B(e,n){e&1&&u(0,"span",1)}function j(e,n){e&1&&u(0,"span",2)}function z(e,n){e&1&&u(0,"span",3)}var _=class e{pluginService=s(T);online=y(null);ngOnInit(){this.pluginService.getAllPlugins().subscribe({next:()=>this.online.set(!0),error:()=>this.online.set(!1)})}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=p({type:e,selectors:[["agentos-backend-status"]],decls:4,vars:1,consts:[[1,"backend-status"],["title","AgentOS online",1,"dot","dot--online"],["title","AgentOS offline",1,"dot","dot--offline"],["title","Checking\u2026",1,"dot","dot--checking"]],template:function(t,o){if(t&1&&(x(0,"div",0),d(1,B,1,0,"span",1)(2,j,1,0,"span",2)(3,z,1,0,"span",3),P()),t&2){let a;i(),l((a=o.online())===!0?1:a===!1?2:3)}},styles:[".backend-status[_ngcontent-%COMP%]{display:flex;align-items:center}.dot[_ngcontent-%COMP%]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dot--online[_ngcontent-%COMP%]{background:var(--color-success, #34c759)}.dot--offline[_ngcontent-%COMP%]{background:var(--color-error, #ff3b30)}.dot--checking[_ngcontent-%COMP%]{background:var(--color-text-secondary, #6e6e73);opacity:.5;animation:_ngcontent-%COMP%_pulse 1.2s ease-in-out infinite}@keyframes _ngcontent-%COMP%_pulse{0%,to{opacity:.5}50%{opacity:1}}"]})};function N(e,n){if(e&1){let t=O();r(0,"button",9),g("click",function(){h(t);let a=f();return v(a.navigateToAdmin())}),r(1,"span",10),m(2,"\u2699\uFE0F"),c()()}}function F(e,n){if(e&1&&(r(0,"span",7),m(1),c()),e&2){let t=f();i(),S(t.userInitials)}}function R(e,n){e&1&&(r(0,"span",8),m(1,"\u25EF"),c())}var I=class e{router=s(E);userState=s(H);destroyRef=s(C);currentUser=this.userState.currentUser;navigateHome(){this.router.navigate(["/agentos"])}isAdmin=w(()=>this.userState.currentUser()?.isAdmin===!0);navigateToAdmin(){this.router.navigate(["/agentos/admin"])}ngOnInit(){this.currentUser()||this.userState.loadMe().pipe(A(this.destroyRef)).subscribe()}get userInitials(){let n=this.currentUser();if(!n)return"";let t=n.firstname?.[0]??"",o=n.lastname?.[0]??"";return(t+o).toUpperCase()||n.email?.[0]?.toUpperCase()||"?"}get isOnProfilePage(){return this.router.url.startsWith("/agentos/me")}toggleProfile(){this.isOnProfilePage?window.history.length>1?window.history.back():this.router.navigate(["/agentos"]):this.router.navigate(["/agentos/me"])}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=p({type:e,selectors:[["agentos-header"]],decls:11,vars:5,consts:[[1,"header"],["type","button","title","Home",1,"header__brand",3,"click"],["src","CODAY-Logo.png","alt","Coday",1,"header__logo-img"],[1,"header__logo-text"],[1,"header__nav"],["type","button","title","Admin",1,"header__admin-btn"],["type","button",1,"header__user-btn",3,"click","title"],[1,"header__user-initials"],[1,"header__user-icon"],["type","button","title","Admin",1,"header__admin-btn",3,"click"],[1,"header__admin-icon"]],template:function(t,o){t&1&&(r(0,"header",0)(1,"button",1),g("click",function(){return o.navigateHome()}),b(2,"img",2),r(3,"span",3),m(4,"Coday"),c()(),r(5,"nav",4),b(6,"agentos-backend-status"),d(7,N,3,0,"button",5),r(8,"button",6),g("click",function(){return o.toggleProfile()}),d(9,F,2,1,"span",7)(10,R,2,0,"span",8),c()()()),t&2&&(i(7),l(o.isAdmin()?7:-1),i(),M("header__user-btn--active",o.isOnProfilePage),k("title",o.isOnProfilePage?"Back":"My profile"),i(),l(o.userInitials?9:10))},dependencies:[_],styles:[".header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;height:56px;background:var(--glass-bg, rgba(255, 255, 255, .72));border-bottom:1px solid var(--glass-border, rgba(255, 255, 255, .18));backdrop-filter:var(--glass-backdrop-blur, blur(20px));-webkit-backdrop-filter:var(--glass-backdrop-blur, blur(20px));position:sticky;top:0;z-index:100}.header__brand[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;background:none;border:none;padding:0;cursor:pointer;border-radius:6px;transition:opacity .15s ease}.header__brand[_ngcontent-%COMP%]:hover{opacity:.7}.header__logo-img[_ngcontent-%COMP%]{width:24px;height:24px;object-fit:contain}.header__logo-text[_ngcontent-%COMP%]{font-size:1rem;font-weight:600;letter-spacing:-.02em;color:var(--color-text, #1d1d1f)}.header__nav[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem}.header__admin-btn[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:1.5px solid var(--color-border, rgba(0, 0, 0, .1));background:var(--color-bg-secondary, rgba(0, 0, 0, .04));cursor:pointer;transition:background .15s ease,border-color .15s ease;padding:0;font-family:inherit;font-size:1rem;line-height:1}.header__admin-btn[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .08));border-color:var(--color-primary, #007aff)}.header__admin-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.header__user-btn[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:1.5px solid var(--color-border, rgba(0, 0, 0, .1));background:var(--color-bg-secondary, rgba(0, 0, 0, .04));cursor:pointer;transition:background .15s ease,border-color .15s ease;padding:0;font-family:inherit}.header__user-btn[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .08));border-color:var(--color-primary, #007aff)}.header__user-btn--active[_ngcontent-%COMP%]{background:var(--color-primary, #007aff);border-color:var(--color-primary, #007aff)}.header__user-btn--active[_ngcontent-%COMP%] .header__user-initials[_ngcontent-%COMP%], .header__user-btn--active[_ngcontent-%COMP%] .header__user-icon[_ngcontent-%COMP%]{color:#fff}.header__user-initials[_ngcontent-%COMP%]{font-size:.75rem;font-weight:600;color:var(--color-text, #1d1d1f);line-height:1;letter-spacing:.02em}.header__user-icon[_ngcontent-%COMP%]{font-size:1rem;color:var(--color-text-secondary, #6e6e73);line-height:1}"]})};export{_ as a,I as b};
1
+ import{a as H}from"./chunk-5WWHTBZX.js";import{j as T}from"./chunk-5P2WWCFC.js";import{d as E}from"./chunk-4GVABYH4.js";import{a as A}from"./chunk-V363EHJE.js";import{Bb as O,Db as g,Fb as f,Ka as i,Rb as M,Tb as m,Ub as S,Wa as p,ca as s,ga as h,ha as v,kc as w,lb as d,ma as C,mb as l,rb as k,sb as r,ta as y,tb as c,ub as b,vb as x,wb as P,xb as u}from"./chunk-B4RKRLIY.js";function B(e,n){e&1&&u(0,"span",1)}function j(e,n){e&1&&u(0,"span",2)}function z(e,n){e&1&&u(0,"span",3)}var _=class e{pluginService=s(T);online=y(null);ngOnInit(){this.pluginService.getAllPlugins().subscribe({next:()=>this.online.set(!0),error:()=>this.online.set(!1)})}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=p({type:e,selectors:[["agentos-backend-status"]],decls:4,vars:1,consts:[[1,"backend-status"],["title","AgentOS online",1,"dot","dot--online"],["title","AgentOS offline",1,"dot","dot--offline"],["title","Checking\u2026",1,"dot","dot--checking"]],template:function(t,o){if(t&1&&(x(0,"div",0),d(1,B,1,0,"span",1)(2,j,1,0,"span",2)(3,z,1,0,"span",3),P()),t&2){let a;i(),l((a=o.online())===!0?1:a===!1?2:3)}},styles:[".backend-status[_ngcontent-%COMP%]{display:flex;align-items:center}.dot[_ngcontent-%COMP%]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dot--online[_ngcontent-%COMP%]{background:var(--color-success, #34c759)}.dot--offline[_ngcontent-%COMP%]{background:var(--color-error, #ff3b30)}.dot--checking[_ngcontent-%COMP%]{background:var(--color-text-secondary, #6e6e73);opacity:.5;animation:_ngcontent-%COMP%_pulse 1.2s ease-in-out infinite}@keyframes _ngcontent-%COMP%_pulse{0%,to{opacity:.5}50%{opacity:1}}"]})};function N(e,n){if(e&1){let t=O();r(0,"button",9),g("click",function(){h(t);let a=f();return v(a.navigateToAdmin())}),r(1,"span",10),m(2,"\u2699\uFE0F"),c()()}}function F(e,n){if(e&1&&(r(0,"span",7),m(1),c()),e&2){let t=f();i(),S(t.userInitials)}}function R(e,n){e&1&&(r(0,"span",8),m(1,"\u25EF"),c())}var I=class e{router=s(E);userState=s(H);destroyRef=s(C);currentUser=this.userState.currentUser;navigateHome(){this.router.navigate(["/agentos"])}isAdmin=w(()=>this.userState.currentUser()?.isAdmin===!0);navigateToAdmin(){this.router.navigate(["/agentos/admin"])}ngOnInit(){this.currentUser()||this.userState.loadMe().pipe(A(this.destroyRef)).subscribe()}get userInitials(){let n=this.currentUser();if(!n)return"";let t=n.firstname?.[0]??"",o=n.lastname?.[0]??"";return(t+o).toUpperCase()||n.email?.[0]?.toUpperCase()||"?"}get isOnProfilePage(){return this.router.url.startsWith("/agentos/me")}toggleProfile(){this.isOnProfilePage?window.history.length>1?window.history.back():this.router.navigate(["/agentos"]):this.router.navigate(["/agentos/me"])}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=p({type:e,selectors:[["agentos-header"]],decls:11,vars:5,consts:[[1,"header"],["type","button","title","Home",1,"header__brand",3,"click"],["src","CODAY-Logo.png","alt","Coday",1,"header__logo-img"],[1,"header__logo-text"],[1,"header__nav"],["type","button","title","Admin",1,"header__admin-btn"],["type","button",1,"header__user-btn",3,"click","title"],[1,"header__user-initials"],[1,"header__user-icon"],["type","button","title","Admin",1,"header__admin-btn",3,"click"],[1,"header__admin-icon"]],template:function(t,o){t&1&&(r(0,"header",0)(1,"button",1),g("click",function(){return o.navigateHome()}),b(2,"img",2),r(3,"span",3),m(4,"Coday"),c()(),r(5,"nav",4),b(6,"agentos-backend-status"),d(7,N,3,0,"button",5),r(8,"button",6),g("click",function(){return o.toggleProfile()}),d(9,F,2,1,"span",7)(10,R,2,0,"span",8),c()()()),t&2&&(i(7),l(o.isAdmin()?7:-1),i(),M("header__user-btn--active",o.isOnProfilePage),k("title",o.isOnProfilePage?"Back":"My profile"),i(),l(o.userInitials?9:10))},dependencies:[_],styles:[".header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;height:56px;background:var(--glass-bg, rgba(255, 255, 255, .72));border-bottom:1px solid var(--glass-border, rgba(255, 255, 255, .18));backdrop-filter:var(--glass-backdrop-blur, blur(20px));-webkit-backdrop-filter:var(--glass-backdrop-blur, blur(20px));position:sticky;top:0;z-index:100}.header__brand[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;background:none;border:none;padding:0;cursor:pointer;border-radius:6px;transition:opacity .15s ease}.header__brand[_ngcontent-%COMP%]:hover{opacity:.7}.header__logo-img[_ngcontent-%COMP%]{width:24px;height:24px;object-fit:contain}.header__logo-text[_ngcontent-%COMP%]{font-size:1rem;font-weight:600;letter-spacing:-.02em;color:var(--color-text, #1d1d1f)}.header__nav[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem}.header__admin-btn[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:1.5px solid var(--color-border, rgba(0, 0, 0, .1));background:var(--color-bg-secondary, rgba(0, 0, 0, .04));cursor:pointer;transition:background .15s ease,border-color .15s ease;padding:0;font-family:inherit;font-size:1rem;line-height:1}.header__admin-btn[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .08));border-color:var(--color-primary, #007aff)}.header__admin-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.header__user-btn[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:1.5px solid var(--color-border, rgba(0, 0, 0, .1));background:var(--color-bg-secondary, rgba(0, 0, 0, .04));cursor:pointer;transition:background .15s ease,border-color .15s ease;padding:0;font-family:inherit}.header__user-btn[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .08));border-color:var(--color-primary, #007aff)}.header__user-btn--active[_ngcontent-%COMP%]{background:var(--color-primary, #007aff);border-color:var(--color-primary, #007aff)}.header__user-btn--active[_ngcontent-%COMP%] .header__user-initials[_ngcontent-%COMP%], .header__user-btn--active[_ngcontent-%COMP%] .header__user-icon[_ngcontent-%COMP%]{color:#fff}.header__user-initials[_ngcontent-%COMP%]{font-size:.75rem;font-weight:600;color:var(--color-text, #1d1d1f);line-height:1;letter-spacing:.02em}.header__user-icon[_ngcontent-%COMP%]{font-size:1rem;color:var(--color-text-secondary, #6e6e73);line-height:1}"]})};export{_ as a,I as b};
@@ -1 +1 @@
1
- import{a as q}from"./chunk-UXIUSXZT.js";import{a as J}from"./chunk-CL3ICOAL.js";import"./chunk-T3IUNA6F.js";import{c as j}from"./chunk-QPBFAKWK.js";import{c as H}from"./chunk-SMT5YVCA.js";import{a as Y}from"./chunk-NKNHWFYH.js";import"./chunk-BUWF3ZQM.js";import{d as F}from"./chunk-4GVABYH4.js";import{a as w,c as G}from"./chunk-V363EHJE.js";import{F as A,c as K,g as z,h as N,i as $,l as k,n as R,v as B,w as L}from"./chunk-HZF57OLY.js";import{Bb as v,Db as c,Dc as I,Fb as s,Ka as d,Rb as S,Tb as i,Ub as u,Vb as h,Wa as V,ca as f,ga as p,ha as m,jb as E,kb as M,lb as g,ma as D,mb as C,pb as b,qb as y,rb as O,sb as n,t as U,ta as x,tb as t,u as T,ub as P}from"./chunk-B4RKRLIY.js";var Q=(o,r)=>r.value;function X(o,r){o&1&&(n(0,"p",5),i(1,"Loading\u2026"),t())}function Z(o,r){if(o&1){let e=v();n(0,"button",17),c("click",function(){let a=p(e).$implicit,_=s(2);return m(_.setTheme(a.value))}),i(1),t()}if(o&2){let e=r.$implicit,l=s(2);S("user-profile__segmented-option--active",l.theme()===e.value),E("aria-pressed",l.theme()===e.value),d(),h(" ",e.label," ")}}function ee(o,r){if(o&1){let e=v();n(0,"button",17),c("click",function(){let a=p(e).$implicit,_=s(2);return m(_.setEnterKeyBehavior(a.value))}),i(1),t()}if(o&2){let e=r.$implicit,l=s(2);S("user-profile__segmented-option--active",l.enterKeyBehavior()===e.value),E("aria-pressed",l.enterKeyBehavior()===e.value),d(),h(" ",e.label," ")}}function te(o,r){if(o&1){let e=v();n(0,"form",18),c("ngSubmit",function(){p(e);let a=s(2);return m(a.save())}),n(1,"div",6)(2,"h2",7),i(3,"Identity"),t(),n(4,"div",8)(5,"span",9),i(6,"Email"),t(),n(7,"span",19),i(8),t()(),n(9,"div",8)(10,"span",9),i(11,"External ID"),t(),n(12,"span",19),i(13),t()()(),n(14,"div",6)(15,"h2",7),i(16,"Profile"),t(),n(17,"div",8)(18,"label",20),i(19,"First name"),t(),P(20,"input",21),t(),n(21,"div",8)(22,"label",22),i(23,"Last name"),t(),P(24,"input",23),t(),n(25,"div",8)(26,"label",24),i(27,"Bio"),t(),P(28,"textarea",25),t()(),n(29,"div",26)(30,"button",27),i(31),t(),n(32,"button",28),c("click",function(){p(e);let a=s(2);return m(a.cancelEditing())}),i(33,"Cancel"),t()()()}if(o&2){let e=s(),l=s();O("formGroup",l.form),d(8),u(e.email),d(5),u(e.externalId),d(17),O("disabled",l.isSaving()),d(),h(" ",l.isSaving()?"Saving\u2026":"Save changes"," ")}}function ne(o,r){o&1&&(n(0,"p",36),i(1," No global configuration yet. Create one from the Integrations / AI Providers / AI Models pages of your namespaces. "),t())}function ie(o,r){if(o&1){let e=v();n(0,"span",43),i(1,"Delete?"),t(),n(2,"button",44),c("click",function(){p(e);let a=s().$implicit,_=s(6);return m(_.confirmDelete(a))}),i(3," Confirm "),t(),n(4,"button",45),c("click",function(){p(e);let a=s(7);return m(a.cancelDelete())}),i(5," Cancel "),t()}}function re(o,r){if(o&1){let e=v();n(0,"button",45),c("click",function(){p(e);let a=s().$implicit,_=s(6);return m(_.armDelete(a))}),i(1," Delete "),t()}}function oe(o,r){if(o&1&&(n(0,"li",39)(1,"span",40),i(2),t(),n(3,"span",41),i(4),t(),g(5,ie,6,0)(6,re,2,0,"button",42),t()),o&2){let e=r.$implicit,l=s(6);d(2),u(e.name),d(2),u(e.subtitle),d(),C(l.isPendingDelete(e)?5:6)}}function le(o,r){if(o&1&&(n(0,"h3",37),i(1,"Integrations"),t(),n(2,"ul",38),b(3,oe,7,3,"li",39,M().trackEntry,!0),t()),o&2){let e=s(5);d(3),y(e.recap().integrations)}}function ae(o,r){if(o&1){let e=v();n(0,"span",43),i(1,"Delete?"),t(),n(2,"button",44),c("click",function(){p(e);let a=s().$implicit,_=s(6);return m(_.confirmDelete(a))}),i(3," Confirm "),t(),n(4,"button",45),c("click",function(){p(e);let a=s(7);return m(a.cancelDelete())}),i(5," Cancel "),t()}}function se(o,r){if(o&1){let e=v();n(0,"button",45),c("click",function(){p(e);let a=s().$implicit,_=s(6);return m(_.armDelete(a))}),i(1," Delete "),t()}}function de(o,r){if(o&1&&(n(0,"li",39)(1,"span",40),i(2),t(),n(3,"span",41),i(4),t(),g(5,ae,6,0)(6,se,2,0,"button",42),t()),o&2){let e=r.$implicit,l=s(6);d(2),u(e.name),d(2),u(e.subtitle),d(),C(l.isPendingDelete(e)?5:6)}}function _e(o,r){if(o&1&&(n(0,"h3",37),i(1,"AI Providers"),t(),n(2,"ul",38),b(3,de,7,3,"li",39,M().trackEntry,!0),t()),o&2){let e=s(5);d(3),y(e.recap().aiProviders)}}function ce(o,r){if(o&1&&(g(0,le,5,0),g(1,_e,5,0)),o&2){let e=s(4);C(e.recap().integrations.length>0?0:-1),d(),C(e.recap().aiProviders.length>0?1:-1)}}function pe(o,r){if(o&1&&g(0,ne,2,0,"p",36)(1,ce,2,2),o&2){let e=s(3);C(e.recap().total===0?0:1)}}function me(o,r){if(o&1){let e=v();n(0,"div",16)(1,"div",6)(2,"h2",7),i(3,"Identity"),t(),n(4,"div",8)(5,"span",9),i(6,"Email"),t(),n(7,"span",29),i(8),t()(),n(9,"div",8)(10,"span",9),i(11,"External ID"),t(),n(12,"span",29),i(13),t()()(),n(14,"div",6)(15,"h2",7),i(16,"Profile"),t(),n(17,"div",8)(18,"span",9),i(19,"First name"),t(),n(20,"span",29),i(21),t()(),n(22,"div",8)(23,"span",9),i(24,"Last name"),t(),n(25,"span",29),i(26),t()(),n(27,"div",30)(28,"span",9),i(29,"Bio"),t(),n(30,"span",29),i(31),t()()(),n(32,"div",26)(33,"button",31),c("click",function(){p(e);let a=s(2);return m(a.startEditing())}),i(34," Edit profile "),t()(),n(35,"div",32)(36,"button",33),c("click",function(){p(e);let a=s(2);return m(a.toggleOverrides())}),n(37,"span",34),i(38,"\u25B6"),t(),i(39," My global user configurations "),n(40,"span",35),i(41),t()(),g(42,pe,2,1),t()()}if(o&2){let e=s(),l=s();d(8),u(e.email),d(5),u(e.externalId),d(8),u(e.firstname||"\u2014"),d(5),u(e.lastname||"\u2014"),d(5),u(e.bio||"\u2014"),d(5),E("aria-expanded",l.isOverridesExpanded()),d(),S("user-profile__overrides-arrow--open",l.isOverridesExpanded()),d(4),h("(",l.recap().total,")"),d(),C(l.isOverridesExpanded()?42:-1)}}function ue(o,r){if(o&1&&(n(0,"div",6)(1,"h2",7),i(2,"Appearance"),t(),n(3,"div",8)(4,"span",9),i(5,"Theme"),t(),n(6,"div",10),b(7,Z,2,4,"button",11,Q),t()()(),n(9,"div",6)(10,"h2",7),i(11,"Composer"),t(),n(12,"div",8)(13,"span",9),i(14,"Enter key"),t(),n(15,"div",12)(16,"div",13),b(17,ee,2,4,"button",11,Q),t(),n(19,"p",14),i(20,'In "New line" mode, press Ctrl or Cmd + Enter to send.'),t()()()(),g(21,te,34,5,"form",15)(22,me,43,10,"div",16)),o&2){let e=s();d(7),y(e.themeOptions),d(10),y(e.enterKeyOptions),d(4),C(e.isEditing()?21:22)}}function fe(o,r){o&1&&(n(0,"p",5),i(1,"Unable to load profile."),t())}var W=class o{userState=f(Y);router=f(F);location=f(I);destroyRef=f(D);integrationState=f(q);providerState=f(J);themePort=f(j);preferencesPort=f(H);isEditing=x(!1);isLoading=x(!1);isSaving=x(!1);isOverridesExpanded=x(!1);currentUser=this.userState.currentUser;theme=this.themePort.theme;themeOptions=[{value:"light",label:"Light"},{value:"dark",label:"Dark"},{value:"system",label:"System"}];enterKeyBehavior=this.preferencesPort.enterKeyBehavior;enterKeyOptions=[{value:"send",label:"Send"},{value:"newline",label:"New line"}];form=new $({firstname:new k("",{nonNullable:!0}),lastname:new k("",{nonNullable:!0}),bio:new k("",{nonNullable:!0})});recap=G(T([this.integrationState.userGlobal$,this.providerState.userGlobal$]).pipe(U(([r,e])=>{let l=r.map(_=>({category:"integration",id:_.id??"",name:_.name,subtitle:_.integrationType})),a=e.map(_=>({category:"aiProvider",id:_.id??"",name:_.name,subtitle:_.apiType}));return{integrations:l,aiProviders:a,total:l.length+a.length}})),{initialValue:{integrations:[],aiProviders:[],total:0}});ngOnInit(){if(this.currentUser()){this.syncFormFromState();return}this.isLoading.set(!0),this.userState.loadMe().pipe(w(this.destroyRef)).subscribe({next:()=>{this.syncFormFromState(),this.isLoading.set(!1)},error:()=>this.isLoading.set(!1)})}startEditing(){this.syncFormFromState(),this.isEditing.set(!0)}cancelEditing(){this.isEditing.set(!1)}setTheme(r){this.themePort.setTheme(r)}setEnterKeyBehavior(r){this.preferencesPort.setEnterKeyBehavior(r)}save(){this.isSaving()||(this.isSaving.set(!0),this.userState.updateMe({firstname:this.form.controls.firstname.value.trim()||void 0,lastname:this.form.controls.lastname.value.trim()||void 0,bio:this.form.controls.bio.value.trim()||void 0}).pipe(w(this.destroyRef)).subscribe({next:()=>{this.isSaving.set(!1),this.isEditing.set(!1)},error:()=>this.isSaving.set(!1)}))}toggleOverrides(){this.isOverridesExpanded.update(r=>!r),this.pendingDeleteKey.set(null)}pendingDeleteKey=x(null);isPendingDelete(r){return this.pendingDeleteKey()===this.entryKey(r)}armDelete(r){r.id&&this.pendingDeleteKey.set(this.entryKey(r))}cancelDelete(){this.pendingDeleteKey.set(null)}confirmDelete(r){if(!r.id)return;this.pendingDeleteKey.set(null),(r.category==="integration"?this.integrationState.delete(r.id,"userGlobal"):this.providerState.delete(r.id,"userGlobal")).pipe(w(this.destroyRef)).subscribe({error:l=>{console.error(`[UserProfile] Delete failed for ${r.category}:${r.id}:`,l)}})}entryKey(r){return`${r.category}:${r.id}`}goBack(){window.history.length>1?this.location.back():this.router.navigate(["/agentos"])}trackEntry(r,e){return this.entryKey(e)}syncFormFromState(){let r=this.currentUser();r&&this.form.setValue({firstname:r.firstname??"",lastname:r.lastname??"",bio:r.bio??""})}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=V({type:o,selectors:[["agentos-user-profile"]],decls:11,vars:1,consts:[[1,"user-profile"],[1,"user-profile__header"],["type","button","title","Go back",1,"user-profile__back",3,"click"],[1,"user-profile__back-icon"],[1,"user-profile__title"],[1,"user-profile__loading"],[1,"user-profile__section"],[1,"user-profile__section-title"],[1,"user-profile__field"],[1,"user-profile__label"],["role","group","aria-label","Theme",1,"user-profile__segmented"],["type","button",1,"user-profile__segmented-option",3,"user-profile__segmented-option--active"],[1,"user-profile__field-control"],["role","group","aria-label","Enter key behavior",1,"user-profile__segmented"],[1,"user-profile__hint"],[1,"user-profile__form",3,"formGroup"],[1,"user-profile__view"],["type","button",1,"user-profile__segmented-option",3,"click"],[1,"user-profile__form",3,"ngSubmit","formGroup"],[1,"user-profile__value","user-profile__value--readonly"],["for","up-firstname",1,"user-profile__label"],["id","up-firstname","type","text","placeholder","Your first name","formControlName","firstname","autocomplete","given-name",1,"user-profile__input"],["for","up-lastname",1,"user-profile__label"],["id","up-lastname","type","text","placeholder","Your last name","formControlName","lastname","autocomplete","family-name",1,"user-profile__input"],["for","up-bio",1,"user-profile__label"],["id","up-bio","placeholder","A short description about yourself","formControlName","bio","rows","4",1,"user-profile__input","user-profile__input--textarea"],[1,"user-profile__actions"],["type","submit",1,"user-profile__btn","user-profile__btn--primary",3,"disabled"],["type","button",1,"user-profile__btn",3,"click"],[1,"user-profile__value"],[1,"user-profile__field","user-profile__field--bio"],["type","button",1,"user-profile__btn","user-profile__btn--primary",3,"click"],[1,"user-profile__overrides"],["type","button",1,"user-profile__overrides-toggle",3,"click"],[1,"user-profile__overrides-arrow"],[1,"user-profile__overrides-count"],[1,"user-profile__overrides-empty"],[1,"user-profile__overrides-subtitle"],[1,"user-profile__overrides-list"],[1,"user-profile__overrides-row"],[1,"user-profile__overrides-name"],[1,"user-profile__overrides-subtitle-text"],["type","button",1,"user-profile__overrides-delete"],[1,"user-profile__overrides-confirm-label"],["type","button",1,"user-profile__overrides-delete","user-profile__overrides-delete--confirm",3,"click"],["type","button",1,"user-profile__overrides-delete",3,"click"]],template:function(e,l){if(e&1&&(n(0,"div",0)(1,"header",1)(2,"button",2),c("click",function(){return l.goBack()}),n(3,"span",3),i(4,"\u2190"),t(),i(5," Back "),t(),n(6,"h1",4),i(7,"My profile"),t()(),g(8,X,2,0,"p",5)(9,ue,23,1)(10,fe,2,0,"p",5),t()),e&2){let a;d(8),C(l.isLoading()?8:(a=l.currentUser())?9:10,a)}},dependencies:[A,R,K,z,N,L,B],styles:[".user-profile[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.user-profile__overrides[_ngcontent-%COMP%]{margin-top:1rem;padding-top:1rem;border-top:1px dashed var(--color-border)}.user-profile__overrides-toggle[_ngcontent-%COMP%]{background:transparent;border:none;padding:.25rem 0;font-size:.85rem;color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;gap:.4rem}.user-profile__overrides-toggle[_ngcontent-%COMP%]:hover{color:var(--color-text)}.user-profile__overrides-arrow[_ngcontent-%COMP%]{display:inline-block;font-size:.65rem;transition:transform .15s ease}.user-profile__overrides-arrow--open[_ngcontent-%COMP%]{transform:rotate(90deg)}.user-profile__overrides-count[_ngcontent-%COMP%]{color:var(--color-text-tertiary)}.user-profile__overrides-empty[_ngcontent-%COMP%]{font-size:.8rem;color:var(--color-text-secondary);font-style:italic;padding:.5rem 0 0;margin:0}.user-profile__overrides-subtitle[_ngcontent-%COMP%]{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-tertiary);margin:.75rem 0 .25rem}.user-profile__overrides-list[_ngcontent-%COMP%]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.25rem}.user-profile__overrides-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;font-size:.85rem;border-radius:6px}.user-profile__overrides-row[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover)}.user-profile__overrides-name[_ngcontent-%COMP%]{flex:1;color:var(--color-text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-profile__overrides-subtitle-text[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary);font-family:monospace}.user-profile__overrides-delete[_ngcontent-%COMP%]{background:transparent;border:none;font-size:.75rem;color:var(--color-error);cursor:pointer;padding:.2rem .4rem;border-radius:4px}.user-profile__overrides-delete[_ngcontent-%COMP%]:hover{background:color-mix(in srgb,var(--color-error) 12%,transparent)}.user-profile__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.user-profile__back[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.375rem;background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-primary, #007aff);font-family:inherit}.user-profile__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.user-profile__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.user-profile__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-text, #1d1d1f);letter-spacing:-.02em}.user-profile__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);font-size:.9rem;margin:0}.user-profile__view[_ngcontent-%COMP%], .user-profile__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem}.user-profile__section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.user-profile__section-title[_ngcontent-%COMP%]{margin:0;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary, #6e6e73);border-bottom:1px solid var(--color-border-light, rgba(0, 0, 0, .06));padding-bottom:.5rem}.user-profile__field[_ngcontent-%COMP%]{display:grid;grid-template-columns:140px 1fr;align-items:baseline;gap:.75rem}.user-profile__field--bio[_ngcontent-%COMP%]{align-items:start}.user-profile__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text-secondary, #6e6e73);white-space:nowrap}.user-profile__value[_ngcontent-%COMP%]{font-size:.9375rem;color:var(--color-text, #1d1d1f);word-break:break-word;white-space:pre-wrap}.user-profile__value--readonly[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);font-size:.875rem}.user-profile__segmented[_ngcontent-%COMP%]{display:inline-flex;justify-self:start;border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:8px;overflow:hidden}.user-profile__segmented-option[_ngcontent-%COMP%]{padding:.4rem .85rem;background:transparent;border:none;border-right:1px solid var(--color-border, rgba(0, 0, 0, .1));color:var(--color-text-secondary, #6e6e73);font-size:.875rem;font-family:inherit;cursor:pointer;transition:background .15s ease,color .15s ease}.user-profile__segmented-option[_ngcontent-%COMP%]:last-child{border-right:none}.user-profile__segmented-option[_ngcontent-%COMP%]:hover{background:var(--color-surface-hover, rgba(0, 0, 0, .04))}.user-profile__segmented-option--active[_ngcontent-%COMP%]{background:var(--color-primary, #007aff);color:#fff}.user-profile__segmented-option--active[_ngcontent-%COMP%]:hover{background:var(--color-primary-hover, #0051d5)}.user-profile__field-control[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem}.user-profile__hint[_ngcontent-%COMP%]{margin:0;font-size:.8rem;color:var(--color-text-secondary, #6e6e73)}.user-profile__input[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.9375rem;font-family:inherit;outline:none;box-sizing:border-box;transition:border-color .15s ease;resize:none}.user-profile__input[_ngcontent-%COMP%]:focus{border-color:var(--color-primary, #007aff)}.user-profile__input[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary, #6e6e73)}.user-profile__input--textarea[_ngcontent-%COMP%]{line-height:1.5;resize:vertical}.user-profile__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.user-profile__btn[_ngcontent-%COMP%]{padding:.6rem 1.25rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.9375rem;font-family:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease}.user-profile__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-surface-hover, rgba(0, 0, 0, .04))}.user-profile__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.user-profile__btn--primary[_ngcontent-%COMP%]{background:var(--color-primary, #007aff);border-color:var(--color-primary, #007aff);color:#fff}.user-profile__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-primary-hover, #0051d5);border-color:var(--color-primary-hover, #0051d5)}"],changeDetection:0})};export{W as UserProfileComponent};
1
+ import{a as J}from"./chunk-UXUHAYDM.js";import{a as q}from"./chunk-3UZ346ET.js";import"./chunk-T3IUNA6F.js";import{c as j}from"./chunk-QPBFAKWK.js";import{c as H}from"./chunk-SMT5YVCA.js";import{a as Y}from"./chunk-5WWHTBZX.js";import"./chunk-5P2WWCFC.js";import{d as F}from"./chunk-4GVABYH4.js";import{a as w,c as G}from"./chunk-V363EHJE.js";import{F as A,c as K,g as z,h as N,i as $,l as k,n as R,v as B,w as L}from"./chunk-HZF57OLY.js";import{Bb as v,Db as c,Dc as I,Fb as s,Ka as d,Rb as S,Tb as i,Ub as u,Vb as h,Wa as V,ca as f,ga as p,ha as m,jb as E,kb as M,lb as g,ma as D,mb as C,pb as b,qb as y,rb as O,sb as n,t as U,ta as x,tb as t,u as T,ub as P}from"./chunk-B4RKRLIY.js";var Q=(o,r)=>r.value;function X(o,r){o&1&&(n(0,"p",5),i(1,"Loading\u2026"),t())}function Z(o,r){if(o&1){let e=v();n(0,"button",17),c("click",function(){let a=p(e).$implicit,_=s(2);return m(_.setTheme(a.value))}),i(1),t()}if(o&2){let e=r.$implicit,l=s(2);S("user-profile__segmented-option--active",l.theme()===e.value),E("aria-pressed",l.theme()===e.value),d(),h(" ",e.label," ")}}function ee(o,r){if(o&1){let e=v();n(0,"button",17),c("click",function(){let a=p(e).$implicit,_=s(2);return m(_.setEnterKeyBehavior(a.value))}),i(1),t()}if(o&2){let e=r.$implicit,l=s(2);S("user-profile__segmented-option--active",l.enterKeyBehavior()===e.value),E("aria-pressed",l.enterKeyBehavior()===e.value),d(),h(" ",e.label," ")}}function te(o,r){if(o&1){let e=v();n(0,"form",18),c("ngSubmit",function(){p(e);let a=s(2);return m(a.save())}),n(1,"div",6)(2,"h2",7),i(3,"Identity"),t(),n(4,"div",8)(5,"span",9),i(6,"Email"),t(),n(7,"span",19),i(8),t()(),n(9,"div",8)(10,"span",9),i(11,"External ID"),t(),n(12,"span",19),i(13),t()()(),n(14,"div",6)(15,"h2",7),i(16,"Profile"),t(),n(17,"div",8)(18,"label",20),i(19,"First name"),t(),P(20,"input",21),t(),n(21,"div",8)(22,"label",22),i(23,"Last name"),t(),P(24,"input",23),t(),n(25,"div",8)(26,"label",24),i(27,"Bio"),t(),P(28,"textarea",25),t()(),n(29,"div",26)(30,"button",27),i(31),t(),n(32,"button",28),c("click",function(){p(e);let a=s(2);return m(a.cancelEditing())}),i(33,"Cancel"),t()()()}if(o&2){let e=s(),l=s();O("formGroup",l.form),d(8),u(e.email),d(5),u(e.externalId),d(17),O("disabled",l.isSaving()),d(),h(" ",l.isSaving()?"Saving\u2026":"Save changes"," ")}}function ne(o,r){o&1&&(n(0,"p",36),i(1," No global configuration yet. Create one from the Integrations / AI Providers / AI Models pages of your namespaces. "),t())}function ie(o,r){if(o&1){let e=v();n(0,"span",43),i(1,"Delete?"),t(),n(2,"button",44),c("click",function(){p(e);let a=s().$implicit,_=s(6);return m(_.confirmDelete(a))}),i(3," Confirm "),t(),n(4,"button",45),c("click",function(){p(e);let a=s(7);return m(a.cancelDelete())}),i(5," Cancel "),t()}}function re(o,r){if(o&1){let e=v();n(0,"button",45),c("click",function(){p(e);let a=s().$implicit,_=s(6);return m(_.armDelete(a))}),i(1," Delete "),t()}}function oe(o,r){if(o&1&&(n(0,"li",39)(1,"span",40),i(2),t(),n(3,"span",41),i(4),t(),g(5,ie,6,0)(6,re,2,0,"button",42),t()),o&2){let e=r.$implicit,l=s(6);d(2),u(e.name),d(2),u(e.subtitle),d(),C(l.isPendingDelete(e)?5:6)}}function le(o,r){if(o&1&&(n(0,"h3",37),i(1,"Integrations"),t(),n(2,"ul",38),b(3,oe,7,3,"li",39,M().trackEntry,!0),t()),o&2){let e=s(5);d(3),y(e.recap().integrations)}}function ae(o,r){if(o&1){let e=v();n(0,"span",43),i(1,"Delete?"),t(),n(2,"button",44),c("click",function(){p(e);let a=s().$implicit,_=s(6);return m(_.confirmDelete(a))}),i(3," Confirm "),t(),n(4,"button",45),c("click",function(){p(e);let a=s(7);return m(a.cancelDelete())}),i(5," Cancel "),t()}}function se(o,r){if(o&1){let e=v();n(0,"button",45),c("click",function(){p(e);let a=s().$implicit,_=s(6);return m(_.armDelete(a))}),i(1," Delete "),t()}}function de(o,r){if(o&1&&(n(0,"li",39)(1,"span",40),i(2),t(),n(3,"span",41),i(4),t(),g(5,ae,6,0)(6,se,2,0,"button",42),t()),o&2){let e=r.$implicit,l=s(6);d(2),u(e.name),d(2),u(e.subtitle),d(),C(l.isPendingDelete(e)?5:6)}}function _e(o,r){if(o&1&&(n(0,"h3",37),i(1,"AI Providers"),t(),n(2,"ul",38),b(3,de,7,3,"li",39,M().trackEntry,!0),t()),o&2){let e=s(5);d(3),y(e.recap().aiProviders)}}function ce(o,r){if(o&1&&(g(0,le,5,0),g(1,_e,5,0)),o&2){let e=s(4);C(e.recap().integrations.length>0?0:-1),d(),C(e.recap().aiProviders.length>0?1:-1)}}function pe(o,r){if(o&1&&g(0,ne,2,0,"p",36)(1,ce,2,2),o&2){let e=s(3);C(e.recap().total===0?0:1)}}function me(o,r){if(o&1){let e=v();n(0,"div",16)(1,"div",6)(2,"h2",7),i(3,"Identity"),t(),n(4,"div",8)(5,"span",9),i(6,"Email"),t(),n(7,"span",29),i(8),t()(),n(9,"div",8)(10,"span",9),i(11,"External ID"),t(),n(12,"span",29),i(13),t()()(),n(14,"div",6)(15,"h2",7),i(16,"Profile"),t(),n(17,"div",8)(18,"span",9),i(19,"First name"),t(),n(20,"span",29),i(21),t()(),n(22,"div",8)(23,"span",9),i(24,"Last name"),t(),n(25,"span",29),i(26),t()(),n(27,"div",30)(28,"span",9),i(29,"Bio"),t(),n(30,"span",29),i(31),t()()(),n(32,"div",26)(33,"button",31),c("click",function(){p(e);let a=s(2);return m(a.startEditing())}),i(34," Edit profile "),t()(),n(35,"div",32)(36,"button",33),c("click",function(){p(e);let a=s(2);return m(a.toggleOverrides())}),n(37,"span",34),i(38,"\u25B6"),t(),i(39," My global user configurations "),n(40,"span",35),i(41),t()(),g(42,pe,2,1),t()()}if(o&2){let e=s(),l=s();d(8),u(e.email),d(5),u(e.externalId),d(8),u(e.firstname||"\u2014"),d(5),u(e.lastname||"\u2014"),d(5),u(e.bio||"\u2014"),d(5),E("aria-expanded",l.isOverridesExpanded()),d(),S("user-profile__overrides-arrow--open",l.isOverridesExpanded()),d(4),h("(",l.recap().total,")"),d(),C(l.isOverridesExpanded()?42:-1)}}function ue(o,r){if(o&1&&(n(0,"div",6)(1,"h2",7),i(2,"Appearance"),t(),n(3,"div",8)(4,"span",9),i(5,"Theme"),t(),n(6,"div",10),b(7,Z,2,4,"button",11,Q),t()()(),n(9,"div",6)(10,"h2",7),i(11,"Composer"),t(),n(12,"div",8)(13,"span",9),i(14,"Enter key"),t(),n(15,"div",12)(16,"div",13),b(17,ee,2,4,"button",11,Q),t(),n(19,"p",14),i(20,'In "New line" mode, press Ctrl or Cmd + Enter to send.'),t()()()(),g(21,te,34,5,"form",15)(22,me,43,10,"div",16)),o&2){let e=s();d(7),y(e.themeOptions),d(10),y(e.enterKeyOptions),d(4),C(e.isEditing()?21:22)}}function fe(o,r){o&1&&(n(0,"p",5),i(1,"Unable to load profile."),t())}var W=class o{userState=f(Y);router=f(F);location=f(I);destroyRef=f(D);integrationState=f(q);providerState=f(J);themePort=f(j);preferencesPort=f(H);isEditing=x(!1);isLoading=x(!1);isSaving=x(!1);isOverridesExpanded=x(!1);currentUser=this.userState.currentUser;theme=this.themePort.theme;themeOptions=[{value:"light",label:"Light"},{value:"dark",label:"Dark"},{value:"system",label:"System"}];enterKeyBehavior=this.preferencesPort.enterKeyBehavior;enterKeyOptions=[{value:"send",label:"Send"},{value:"newline",label:"New line"}];form=new $({firstname:new k("",{nonNullable:!0}),lastname:new k("",{nonNullable:!0}),bio:new k("",{nonNullable:!0})});recap=G(T([this.integrationState.userGlobal$,this.providerState.userGlobal$]).pipe(U(([r,e])=>{let l=r.map(_=>({category:"integration",id:_.id??"",name:_.name,subtitle:_.integrationType})),a=e.map(_=>({category:"aiProvider",id:_.id??"",name:_.name,subtitle:_.apiType}));return{integrations:l,aiProviders:a,total:l.length+a.length}})),{initialValue:{integrations:[],aiProviders:[],total:0}});ngOnInit(){if(this.currentUser()){this.syncFormFromState();return}this.isLoading.set(!0),this.userState.loadMe().pipe(w(this.destroyRef)).subscribe({next:()=>{this.syncFormFromState(),this.isLoading.set(!1)},error:()=>this.isLoading.set(!1)})}startEditing(){this.syncFormFromState(),this.isEditing.set(!0)}cancelEditing(){this.isEditing.set(!1)}setTheme(r){this.themePort.setTheme(r)}setEnterKeyBehavior(r){this.preferencesPort.setEnterKeyBehavior(r)}save(){this.isSaving()||(this.isSaving.set(!0),this.userState.updateMe({firstname:this.form.controls.firstname.value.trim()||void 0,lastname:this.form.controls.lastname.value.trim()||void 0,bio:this.form.controls.bio.value.trim()||void 0}).pipe(w(this.destroyRef)).subscribe({next:()=>{this.isSaving.set(!1),this.isEditing.set(!1)},error:()=>this.isSaving.set(!1)}))}toggleOverrides(){this.isOverridesExpanded.update(r=>!r),this.pendingDeleteKey.set(null)}pendingDeleteKey=x(null);isPendingDelete(r){return this.pendingDeleteKey()===this.entryKey(r)}armDelete(r){r.id&&this.pendingDeleteKey.set(this.entryKey(r))}cancelDelete(){this.pendingDeleteKey.set(null)}confirmDelete(r){if(!r.id)return;this.pendingDeleteKey.set(null),(r.category==="integration"?this.integrationState.delete(r.id,"userGlobal"):this.providerState.delete(r.id,"userGlobal")).pipe(w(this.destroyRef)).subscribe({error:l=>{console.error(`[UserProfile] Delete failed for ${r.category}:${r.id}:`,l)}})}entryKey(r){return`${r.category}:${r.id}`}goBack(){window.history.length>1?this.location.back():this.router.navigate(["/agentos"])}trackEntry(r,e){return this.entryKey(e)}syncFormFromState(){let r=this.currentUser();r&&this.form.setValue({firstname:r.firstname??"",lastname:r.lastname??"",bio:r.bio??""})}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=V({type:o,selectors:[["agentos-user-profile"]],decls:11,vars:1,consts:[[1,"user-profile"],[1,"user-profile__header"],["type","button","title","Go back",1,"user-profile__back",3,"click"],[1,"user-profile__back-icon"],[1,"user-profile__title"],[1,"user-profile__loading"],[1,"user-profile__section"],[1,"user-profile__section-title"],[1,"user-profile__field"],[1,"user-profile__label"],["role","group","aria-label","Theme",1,"user-profile__segmented"],["type","button",1,"user-profile__segmented-option",3,"user-profile__segmented-option--active"],[1,"user-profile__field-control"],["role","group","aria-label","Enter key behavior",1,"user-profile__segmented"],[1,"user-profile__hint"],[1,"user-profile__form",3,"formGroup"],[1,"user-profile__view"],["type","button",1,"user-profile__segmented-option",3,"click"],[1,"user-profile__form",3,"ngSubmit","formGroup"],[1,"user-profile__value","user-profile__value--readonly"],["for","up-firstname",1,"user-profile__label"],["id","up-firstname","type","text","placeholder","Your first name","formControlName","firstname","autocomplete","given-name",1,"user-profile__input"],["for","up-lastname",1,"user-profile__label"],["id","up-lastname","type","text","placeholder","Your last name","formControlName","lastname","autocomplete","family-name",1,"user-profile__input"],["for","up-bio",1,"user-profile__label"],["id","up-bio","placeholder","A short description about yourself","formControlName","bio","rows","4",1,"user-profile__input","user-profile__input--textarea"],[1,"user-profile__actions"],["type","submit",1,"user-profile__btn","user-profile__btn--primary",3,"disabled"],["type","button",1,"user-profile__btn",3,"click"],[1,"user-profile__value"],[1,"user-profile__field","user-profile__field--bio"],["type","button",1,"user-profile__btn","user-profile__btn--primary",3,"click"],[1,"user-profile__overrides"],["type","button",1,"user-profile__overrides-toggle",3,"click"],[1,"user-profile__overrides-arrow"],[1,"user-profile__overrides-count"],[1,"user-profile__overrides-empty"],[1,"user-profile__overrides-subtitle"],[1,"user-profile__overrides-list"],[1,"user-profile__overrides-row"],[1,"user-profile__overrides-name"],[1,"user-profile__overrides-subtitle-text"],["type","button",1,"user-profile__overrides-delete"],[1,"user-profile__overrides-confirm-label"],["type","button",1,"user-profile__overrides-delete","user-profile__overrides-delete--confirm",3,"click"],["type","button",1,"user-profile__overrides-delete",3,"click"]],template:function(e,l){if(e&1&&(n(0,"div",0)(1,"header",1)(2,"button",2),c("click",function(){return l.goBack()}),n(3,"span",3),i(4,"\u2190"),t(),i(5," Back "),t(),n(6,"h1",4),i(7,"My profile"),t()(),g(8,X,2,0,"p",5)(9,ue,23,1)(10,fe,2,0,"p",5),t()),e&2){let a;d(8),C(l.isLoading()?8:(a=l.currentUser())?9:10,a)}},dependencies:[A,R,K,z,N,L,B],styles:[".user-profile[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.user-profile__overrides[_ngcontent-%COMP%]{margin-top:1rem;padding-top:1rem;border-top:1px dashed var(--color-border)}.user-profile__overrides-toggle[_ngcontent-%COMP%]{background:transparent;border:none;padding:.25rem 0;font-size:.85rem;color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;gap:.4rem}.user-profile__overrides-toggle[_ngcontent-%COMP%]:hover{color:var(--color-text)}.user-profile__overrides-arrow[_ngcontent-%COMP%]{display:inline-block;font-size:.65rem;transition:transform .15s ease}.user-profile__overrides-arrow--open[_ngcontent-%COMP%]{transform:rotate(90deg)}.user-profile__overrides-count[_ngcontent-%COMP%]{color:var(--color-text-tertiary)}.user-profile__overrides-empty[_ngcontent-%COMP%]{font-size:.8rem;color:var(--color-text-secondary);font-style:italic;padding:.5rem 0 0;margin:0}.user-profile__overrides-subtitle[_ngcontent-%COMP%]{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-tertiary);margin:.75rem 0 .25rem}.user-profile__overrides-list[_ngcontent-%COMP%]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.25rem}.user-profile__overrides-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;font-size:.85rem;border-radius:6px}.user-profile__overrides-row[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover)}.user-profile__overrides-name[_ngcontent-%COMP%]{flex:1;color:var(--color-text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-profile__overrides-subtitle-text[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary);font-family:monospace}.user-profile__overrides-delete[_ngcontent-%COMP%]{background:transparent;border:none;font-size:.75rem;color:var(--color-error);cursor:pointer;padding:.2rem .4rem;border-radius:4px}.user-profile__overrides-delete[_ngcontent-%COMP%]:hover{background:color-mix(in srgb,var(--color-error) 12%,transparent)}.user-profile__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.user-profile__back[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.375rem;background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-primary, #007aff);font-family:inherit}.user-profile__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.user-profile__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.user-profile__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-text, #1d1d1f);letter-spacing:-.02em}.user-profile__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);font-size:.9rem;margin:0}.user-profile__view[_ngcontent-%COMP%], .user-profile__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem}.user-profile__section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.user-profile__section-title[_ngcontent-%COMP%]{margin:0;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary, #6e6e73);border-bottom:1px solid var(--color-border-light, rgba(0, 0, 0, .06));padding-bottom:.5rem}.user-profile__field[_ngcontent-%COMP%]{display:grid;grid-template-columns:140px 1fr;align-items:baseline;gap:.75rem}.user-profile__field--bio[_ngcontent-%COMP%]{align-items:start}.user-profile__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text-secondary, #6e6e73);white-space:nowrap}.user-profile__value[_ngcontent-%COMP%]{font-size:.9375rem;color:var(--color-text, #1d1d1f);word-break:break-word;white-space:pre-wrap}.user-profile__value--readonly[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);font-size:.875rem}.user-profile__segmented[_ngcontent-%COMP%]{display:inline-flex;justify-self:start;border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:8px;overflow:hidden}.user-profile__segmented-option[_ngcontent-%COMP%]{padding:.4rem .85rem;background:transparent;border:none;border-right:1px solid var(--color-border, rgba(0, 0, 0, .1));color:var(--color-text-secondary, #6e6e73);font-size:.875rem;font-family:inherit;cursor:pointer;transition:background .15s ease,color .15s ease}.user-profile__segmented-option[_ngcontent-%COMP%]:last-child{border-right:none}.user-profile__segmented-option[_ngcontent-%COMP%]:hover{background:var(--color-surface-hover, rgba(0, 0, 0, .04))}.user-profile__segmented-option--active[_ngcontent-%COMP%]{background:var(--color-primary, #007aff);color:#fff}.user-profile__segmented-option--active[_ngcontent-%COMP%]:hover{background:var(--color-primary-hover, #0051d5)}.user-profile__field-control[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem}.user-profile__hint[_ngcontent-%COMP%]{margin:0;font-size:.8rem;color:var(--color-text-secondary, #6e6e73)}.user-profile__input[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.9375rem;font-family:inherit;outline:none;box-sizing:border-box;transition:border-color .15s ease;resize:none}.user-profile__input[_ngcontent-%COMP%]:focus{border-color:var(--color-primary, #007aff)}.user-profile__input[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary, #6e6e73)}.user-profile__input--textarea[_ngcontent-%COMP%]{line-height:1.5;resize:vertical}.user-profile__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.user-profile__btn[_ngcontent-%COMP%]{padding:.6rem 1.25rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.9375rem;font-family:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease}.user-profile__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-surface-hover, rgba(0, 0, 0, .04))}.user-profile__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.user-profile__btn--primary[_ngcontent-%COMP%]{background:var(--color-primary, #007aff);border-color:var(--color-primary, #007aff);color:#fff}.user-profile__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-primary-hover, #0051d5);border-color:var(--color-primary-hover, #0051d5)}"],changeDetection:0})};export{W as UserProfileComponent};
@@ -1 +1 @@
1
- import{a}from"./chunk-DGE527NX.js";import"./chunk-HMYJY2DG.js";import"./chunk-NKNHWFYH.js";import"./chunk-BUWF3ZQM.js";import"./chunk-4GVABYH4.js";import"./chunk-V363EHJE.js";import"./chunk-HZF57OLY.js";import"./chunk-B4RKRLIY.js";export{a as UserFormComponent};
1
+ import{a}from"./chunk-IQ7EL357.js";import"./chunk-BBQBJKTG.js";import"./chunk-5WWHTBZX.js";import"./chunk-5P2WWCFC.js";import"./chunk-4GVABYH4.js";import"./chunk-V363EHJE.js";import"./chunk-HZF57OLY.js";import"./chunk-B4RKRLIY.js";export{a as UserFormComponent};
@@ -0,0 +1 @@
1
+ import{d as P}from"./chunk-4GVABYH4.js";import{p as w,v as M}from"./chunk-WV7ML4CJ.js";import{Bb as u,Db as c,Fb as m,Ka as a,Rb as y,Tb as d,Ub as f,Wa as x,ca as b,ga as l,ha as s,lb as _,mb as g,oa as C,rb as h,sb as o,ta as v,tb as n}from"./chunk-B4RKRLIY.js";function k(t,r){if(t&1&&(o(0,"span",3),d(1),n()),t&2){let e=m();a(),f(e.prompt.description)}}function O(t,r){if(t&1){let e=u();o(0,"span",6),d(1,"Delete?"),n(),o(2,"ds-icon-button",7),c("action",function(){l(e);let p=m();return s(p.onDeleteConfirmed())}),n(),o(3,"ds-icon-button",8),c("action",function(){l(e);let p=m();return s(p.onDeleteCancelled())}),n()}}function E(t,r){if(t&1){let e=u();o(0,"ds-kebab-menu",9),c("itemSelected",function(p){l(e);let D=m();return s(D.onMenuAction(p))}),n()}if(t&2){let e=m();h("items",e.menuItems)}}var I=class t{router=b(P);prompt;namespaceId;platformMode=!1;deleteRequested=new C;pendingDelete=v(!1);menuItems=[{key:"edit",label:"Edit prompt",icon:"edit"},{key:"delete",label:"Delete prompt",icon:"delete",variant:"danger"}];onMenuAction(r){switch(r){case"edit":this.platformMode?this.router.navigate(["/agentos","admin","prompts",this.prompt.id,"edit"]):this.router.navigate(["/agentos",this.namespaceId,"prompts",this.prompt.id,"edit"]);break;case"delete":this.pendingDelete.set(!0);break}}onDeleteConfirmed(){this.pendingDelete.set(!1),this.deleteRequested.emit(this.prompt)}onDeleteCancelled(){this.pendingDelete.set(!1)}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=x({type:t,selectors:[["agentos-prompt-item"]],inputs:{prompt:"prompt",namespaceId:"namespaceId",platformMode:"platformMode"},outputs:{deleteRequested:"deleteRequested"},decls:8,vars:5,consts:[["role","listitem",1,"prompt-item"],[1,"prompt-item__body"],[1,"prompt-item__name"],[1,"prompt-item__description"],[1,"prompt-item__actions"],[3,"items"],[1,"prompt-item__confirm-label"],["icon","check","variant","danger","title","Confirm deletion",3,"action"],["icon","close","title","Cancel deletion",3,"action"],[3,"itemSelected","items"]],template:function(e,i){e&1&&(o(0,"div",0)(1,"div",1)(2,"span",2),d(3),n(),_(4,k,2,1,"span",3),n(),o(5,"div",4),_(6,O,4,0)(7,E,1,1,"ds-kebab-menu",5),n()()),e&2&&(y("prompt-item--pending-delete",i.pendingDelete()),a(3),f(i.prompt.name),a(),g(i.prompt.description?4:-1),a(2),g(i.pendingDelete()?6:7))},dependencies:[M,w],styles:[".prompt-item[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-radius:10px;border:1px solid var(--color-border, rgba(0, 0, 0, .08));background:var(--glass-bg, rgba(255, 255, 255, .72));-webkit-backdrop-filter:var(--glass-backdrop-blur, blur(20px));backdrop-filter:var(--glass-backdrop-blur, blur(20px));transition:background .15s ease,border-color .15s ease}.prompt-item[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover, rgba(0, 0, 0, .04));border-color:var(--color-primary, #007aff)}.prompt-item__body[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.prompt-item__name[_ngcontent-%COMP%]{font-size:.95rem;font-weight:500;color:var(--color-text, #1d1d1f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prompt-item__description[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary, #6e6e73);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prompt-item__actions[_ngcontent-%COMP%]{flex-shrink:0;display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.prompt-item[_ngcontent-%COMP%]:hover .prompt-item__actions[_ngcontent-%COMP%], .prompt-item[_ngcontent-%COMP%]:focus-within .prompt-item__actions[_ngcontent-%COMP%], .prompt-item--pending-delete[_ngcontent-%COMP%] .prompt-item__actions[_ngcontent-%COMP%]{opacity:1}.prompt-item__confirm-label[_ngcontent-%COMP%]{font-size:.8rem;font-weight:500;color:var(--color-error, #ff3b30);margin-right:.25rem;white-space:nowrap}"],changeDetection:0})};export{I as a};
@@ -1 +1 @@
1
- import{a as G}from"./chunk-HMYJY2DG.js";import{a as T}from"./chunk-NKNHWFYH.js";import{b as I,d as w}from"./chunk-4GVABYH4.js";import{a as _}from"./chunk-V363EHJE.js";import{F as R,b as A,c as N,e as C,g as F,h as U,i as z,l as d,n as D,v as V,w as L}from"./chunk-HZF57OLY.js";import{Bb as P,Db as f,Fb as c,Ka as l,Tb as n,Ub as y,Vb as k,Wa as O,ca as u,ga as p,ha as g,lb as x,ma as E,mb as v,rb as h,sb as r,ta as b,tb as e,ub as m}from"./chunk-B4RKRLIY.js";function q(a,i){a&1&&(r(0,"p",5),n(1,"Loading\u2026"),e())}function $(a,i){if(a&1&&(r(0,"span",13),n(1),e()),a&2){let t=c(2);l(),y(t.form.controls.email.value)}}function j(a,i){a&1&&m(0,"input",14)}function H(a,i){if(a&1){let t=P();r(0,"form",7),f("ngSubmit",function(){p(t);let s=c();return g(s.save())}),r(1,"div",8)(2,"h2",9),n(3,"Identity"),e(),r(4,"div",10)(5,"label",11),n(6,"Email "),r(7,"span",12),n(8,"*"),e()(),x(9,$,2,1,"span",13)(10,j,1,0,"input",14),e(),r(11,"div",10)(12,"label",15),n(13,"External ID"),e(),m(14,"input",16),e()(),r(15,"div",8)(16,"h2",9),n(17,"Profile"),e(),r(18,"div",10)(19,"label",17),n(20,"First name"),e(),m(21,"input",18),e(),r(22,"div",10)(23,"label",19),n(24,"Last name"),e(),m(25,"input",20),e(),r(26,"div",21)(27,"label",22),n(28,"Bio"),e(),m(29,"textarea",23),e()(),r(30,"div",8)(31,"h2",9),n(32,"Permissions"),e(),r(33,"div",24),m(34,"input",25),r(35,"label",26),n(36," Super admin (full access to AgentOS) "),e()()(),r(37,"div",27)(38,"button",28),n(39),e(),r(40,"button",29),f("click",function(){p(t);let s=c();return g(s.cancel())}),n(41,"Cancel"),e()()()}if(a&2){let t=c();h("formGroup",t.form),l(9),v(t.isEditMode?9:10),l(29),h("disabled",t.form.invalid||t.isSaving()),l(),k(" ",t.isSaving()?"Saving\u2026":t.isEditMode?"Save changes":"Create user"," ")}}var B=class a{route=u(I);router=u(w);destroyRef=u(E);userAdminState=u(G);userState=u(T);userId=this.route.snapshot.params.userId;isEditMode=!!this.userId;isSaving=b(!1);isLoading=b(!1);form=new z({email:new d("",{nonNullable:!0,validators:[C.required,C.email]}),externalId:new d("",{nonNullable:!0}),firstname:new d("",{nonNullable:!0}),lastname:new d("",{nonNullable:!0}),bio:new d("",{nonNullable:!0}),isAdmin:new d(!1,{nonNullable:!0})});ngOnInit(){if(!this.isEditMode)return;let i=()=>{this.userState.currentUser()?.id===this.userId&&this.form.controls.isAdmin.disable()};this.userState.currentUser()?i():this.userState.loadMe().pipe(_(this.destroyRef)).subscribe({next:()=>i(),error:()=>this.form.controls.isAdmin.disable()});let t=this.userAdminState.users().find(o=>o.id===this.userId);if(t){this.syncForm(t),this.form.controls.email.disable();return}this.isLoading.set(!0),this.userAdminState.loadAll().pipe(_(this.destroyRef)).subscribe({next:()=>{let o=this.userAdminState.users().find(s=>s.id===this.userId);o&&(this.syncForm(o),this.form.controls.email.disable()),this.isLoading.set(!1)},error:()=>this.isLoading.set(!1)})}get title(){return this.isEditMode?"Edit user":"New user"}save(){if(this.form.invalid||this.isSaving())return;this.isSaving.set(!0);let{email:i,externalId:t,firstname:o,lastname:s,bio:S,isAdmin:M}=this.form.getRawValue();(this.isEditMode?this.userAdminState.updateUser(this.userId,{externalId:t||void 0,firstname:o||void 0,lastname:s||void 0,bio:S||void 0,isAdmin:M}):this.userAdminState.createUser({email:i||void 0,externalId:t||void 0,firstname:o||void 0,lastname:s||void 0,bio:S||void 0,isAdmin:M})).pipe(_(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:()=>this.isSaving.set(!1)})}cancel(){this.navigateBack()}navigateBack(){this.router.navigate(["/agentos/admin/users"])}syncForm(i){this.form.setValue({email:i.email??"",externalId:i.externalId??"",firstname:i.firstname??"",lastname:i.lastname??"",bio:i.bio??"",isAdmin:i.isAdmin??!1})}static \u0275fac=function(t){return new(t||a)};static \u0275cmp=O({type:a,selectors:[["agentos-user-form"]],decls:10,vars:2,consts:[[1,"user-form"],[1,"user-form__header"],["type","button","title","Back to users",1,"user-form__back",3,"click"],[1,"user-form__back-icon"],[1,"user-form__title"],[1,"user-form__loading"],[1,"user-form__body",3,"formGroup"],[1,"user-form__body",3,"ngSubmit","formGroup"],[1,"user-form__section"],[1,"user-form__section-title"],[1,"user-form__field"],["for","uf-email",1,"user-form__label"],[1,"user-form__required"],[1,"user-form__value","user-form__value--readonly"],["id","uf-email","type","email","placeholder","user@example.com","formControlName","email","autocomplete","email",1,"user-form__input"],["for","uf-externalId",1,"user-form__label"],["id","uf-externalId","type","text","placeholder","External identifier","formControlName","externalId",1,"user-form__input"],["for","uf-firstname",1,"user-form__label"],["id","uf-firstname","type","text","placeholder","First name","formControlName","firstname","autocomplete","given-name",1,"user-form__input"],["for","uf-lastname",1,"user-form__label"],["id","uf-lastname","type","text","placeholder","Last name","formControlName","lastname","autocomplete","family-name",1,"user-form__input"],[1,"user-form__field","user-form__field--bio"],["for","uf-bio",1,"user-form__label"],["id","uf-bio","placeholder","A short description","formControlName","bio","rows","4",1,"user-form__input","user-form__input--textarea"],[1,"user-form__field","user-form__field--checkbox"],["id","uf-isAdmin","type","checkbox","formControlName","isAdmin",1,"user-form__checkbox"],["for","uf-isAdmin",1,"user-form__label","user-form__label--checkbox"],[1,"user-form__actions"],["type","submit",1,"user-form__btn","user-form__btn--primary",3,"disabled"],["type","button",1,"user-form__btn",3,"click"]],template:function(t,o){t&1&&(r(0,"div",0)(1,"header",1)(2,"button",2),f("click",function(){return o.cancel()}),r(3,"span",3),n(4,"\u2190"),e(),n(5," Users "),e(),r(6,"h1",4),n(7),e()(),x(8,q,2,0,"p",5)(9,H,42,4,"form",6),e()),t&2&&(l(7),y(o.title),l(),v(o.isLoading()?8:9))},dependencies:[R,D,N,A,F,U,L,V],styles:[".user-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.user-form__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.user-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-primary, #007aff);font-family:inherit}.user-form__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.user-form__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.user-form__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-text, #1d1d1f);letter-spacing:-.02em}.user-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);font-size:.9rem;margin:0}.user-form__body[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem}.user-form__section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.user-form__section-title[_ngcontent-%COMP%]{margin:0;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary, #6e6e73);border-bottom:1px solid var(--color-border-light, rgba(0, 0, 0, .06));padding-bottom:.5rem}.user-form__field[_ngcontent-%COMP%]{display:grid;grid-template-columns:140px 1fr;align-items:baseline;gap:.75rem}.user-form__field--bio[_ngcontent-%COMP%]{align-items:start}.user-form__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text-secondary, #6e6e73);white-space:nowrap}.user-form__required[_ngcontent-%COMP%]{color:var(--color-error, #ff3b30)}.user-form__value[_ngcontent-%COMP%]{font-size:.9375rem;color:var(--color-text, #1d1d1f)}.user-form__value--readonly[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);font-size:.875rem}.user-form__input[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.9375rem;font-family:inherit;outline:none;box-sizing:border-box;transition:border-color .15s ease;resize:none}.user-form__input[_ngcontent-%COMP%]:focus{border-color:var(--color-primary, #007aff)}.user-form__input[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary, #6e6e73)}.user-form__input--textarea[_ngcontent-%COMP%]{line-height:1.5;resize:vertical}.user-form__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.user-form__btn[_ngcontent-%COMP%]{padding:.6rem 1.25rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.9375rem;font-family:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease}.user-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-surface-hover, rgba(0, 0, 0, .04))}.user-form__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.user-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-primary, #007aff);border-color:var(--color-primary, #007aff);color:#fff}.user-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-primary-hover, #0051d5);border-color:var(--color-primary-hover, #0051d5)}"],changeDetection:0})};export{B as a};
1
+ import{a as G}from"./chunk-BBQBJKTG.js";import{a as T}from"./chunk-5WWHTBZX.js";import{b as I,d as w}from"./chunk-4GVABYH4.js";import{a as _}from"./chunk-V363EHJE.js";import{F as R,b as A,c as N,e as C,g as F,h as U,i as z,l as d,n as D,v as V,w as L}from"./chunk-HZF57OLY.js";import{Bb as P,Db as f,Fb as c,Ka as l,Tb as n,Ub as y,Vb as k,Wa as O,ca as u,ga as p,ha as g,lb as x,ma as E,mb as v,rb as h,sb as r,ta as b,tb as e,ub as m}from"./chunk-B4RKRLIY.js";function q(a,i){a&1&&(r(0,"p",5),n(1,"Loading\u2026"),e())}function $(a,i){if(a&1&&(r(0,"span",13),n(1),e()),a&2){let t=c(2);l(),y(t.form.controls.email.value)}}function j(a,i){a&1&&m(0,"input",14)}function H(a,i){if(a&1){let t=P();r(0,"form",7),f("ngSubmit",function(){p(t);let s=c();return g(s.save())}),r(1,"div",8)(2,"h2",9),n(3,"Identity"),e(),r(4,"div",10)(5,"label",11),n(6,"Email "),r(7,"span",12),n(8,"*"),e()(),x(9,$,2,1,"span",13)(10,j,1,0,"input",14),e(),r(11,"div",10)(12,"label",15),n(13,"External ID"),e(),m(14,"input",16),e()(),r(15,"div",8)(16,"h2",9),n(17,"Profile"),e(),r(18,"div",10)(19,"label",17),n(20,"First name"),e(),m(21,"input",18),e(),r(22,"div",10)(23,"label",19),n(24,"Last name"),e(),m(25,"input",20),e(),r(26,"div",21)(27,"label",22),n(28,"Bio"),e(),m(29,"textarea",23),e()(),r(30,"div",8)(31,"h2",9),n(32,"Permissions"),e(),r(33,"div",24),m(34,"input",25),r(35,"label",26),n(36," Super admin (full access to AgentOS) "),e()()(),r(37,"div",27)(38,"button",28),n(39),e(),r(40,"button",29),f("click",function(){p(t);let s=c();return g(s.cancel())}),n(41,"Cancel"),e()()()}if(a&2){let t=c();h("formGroup",t.form),l(9),v(t.isEditMode?9:10),l(29),h("disabled",t.form.invalid||t.isSaving()),l(),k(" ",t.isSaving()?"Saving\u2026":t.isEditMode?"Save changes":"Create user"," ")}}var B=class a{route=u(I);router=u(w);destroyRef=u(E);userAdminState=u(G);userState=u(T);userId=this.route.snapshot.params.userId;isEditMode=!!this.userId;isSaving=b(!1);isLoading=b(!1);form=new z({email:new d("",{nonNullable:!0,validators:[C.required,C.email]}),externalId:new d("",{nonNullable:!0}),firstname:new d("",{nonNullable:!0}),lastname:new d("",{nonNullable:!0}),bio:new d("",{nonNullable:!0}),isAdmin:new d(!1,{nonNullable:!0})});ngOnInit(){if(!this.isEditMode)return;let i=()=>{this.userState.currentUser()?.id===this.userId&&this.form.controls.isAdmin.disable()};this.userState.currentUser()?i():this.userState.loadMe().pipe(_(this.destroyRef)).subscribe({next:()=>i(),error:()=>this.form.controls.isAdmin.disable()});let t=this.userAdminState.users().find(o=>o.id===this.userId);if(t){this.syncForm(t),this.form.controls.email.disable();return}this.isLoading.set(!0),this.userAdminState.loadAll().pipe(_(this.destroyRef)).subscribe({next:()=>{let o=this.userAdminState.users().find(s=>s.id===this.userId);o&&(this.syncForm(o),this.form.controls.email.disable()),this.isLoading.set(!1)},error:()=>this.isLoading.set(!1)})}get title(){return this.isEditMode?"Edit user":"New user"}save(){if(this.form.invalid||this.isSaving())return;this.isSaving.set(!0);let{email:i,externalId:t,firstname:o,lastname:s,bio:S,isAdmin:M}=this.form.getRawValue();(this.isEditMode?this.userAdminState.updateUser(this.userId,{externalId:t||void 0,firstname:o||void 0,lastname:s||void 0,bio:S||void 0,isAdmin:M}):this.userAdminState.createUser({email:i||void 0,externalId:t||void 0,firstname:o||void 0,lastname:s||void 0,bio:S||void 0,isAdmin:M})).pipe(_(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:()=>this.isSaving.set(!1)})}cancel(){this.navigateBack()}navigateBack(){this.router.navigate(["/agentos/admin/users"])}syncForm(i){this.form.setValue({email:i.email??"",externalId:i.externalId??"",firstname:i.firstname??"",lastname:i.lastname??"",bio:i.bio??"",isAdmin:i.isAdmin??!1})}static \u0275fac=function(t){return new(t||a)};static \u0275cmp=O({type:a,selectors:[["agentos-user-form"]],decls:10,vars:2,consts:[[1,"user-form"],[1,"user-form__header"],["type","button","title","Back to users",1,"user-form__back",3,"click"],[1,"user-form__back-icon"],[1,"user-form__title"],[1,"user-form__loading"],[1,"user-form__body",3,"formGroup"],[1,"user-form__body",3,"ngSubmit","formGroup"],[1,"user-form__section"],[1,"user-form__section-title"],[1,"user-form__field"],["for","uf-email",1,"user-form__label"],[1,"user-form__required"],[1,"user-form__value","user-form__value--readonly"],["id","uf-email","type","email","placeholder","user@example.com","formControlName","email","autocomplete","email",1,"user-form__input"],["for","uf-externalId",1,"user-form__label"],["id","uf-externalId","type","text","placeholder","External identifier","formControlName","externalId",1,"user-form__input"],["for","uf-firstname",1,"user-form__label"],["id","uf-firstname","type","text","placeholder","First name","formControlName","firstname","autocomplete","given-name",1,"user-form__input"],["for","uf-lastname",1,"user-form__label"],["id","uf-lastname","type","text","placeholder","Last name","formControlName","lastname","autocomplete","family-name",1,"user-form__input"],[1,"user-form__field","user-form__field--bio"],["for","uf-bio",1,"user-form__label"],["id","uf-bio","placeholder","A short description","formControlName","bio","rows","4",1,"user-form__input","user-form__input--textarea"],[1,"user-form__field","user-form__field--checkbox"],["id","uf-isAdmin","type","checkbox","formControlName","isAdmin",1,"user-form__checkbox"],["for","uf-isAdmin",1,"user-form__label","user-form__label--checkbox"],[1,"user-form__actions"],["type","submit",1,"user-form__btn","user-form__btn--primary",3,"disabled"],["type","button",1,"user-form__btn",3,"click"]],template:function(t,o){t&1&&(r(0,"div",0)(1,"header",1)(2,"button",2),f("click",function(){return o.cancel()}),r(3,"span",3),n(4,"\u2190"),e(),n(5," Users "),e(),r(6,"h1",4),n(7),e()(),x(8,q,2,0,"p",5)(9,H,42,4,"form",6),e()),t&2&&(l(7),y(o.title),l(),v(o.isLoading()?8:9))},dependencies:[R,D,N,A,F,U,L,V],styles:[".user-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.user-form__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.user-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-primary, #007aff);font-family:inherit}.user-form__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.user-form__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.user-form__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-text, #1d1d1f);letter-spacing:-.02em}.user-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);font-size:.9rem;margin:0}.user-form__body[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem}.user-form__section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.user-form__section-title[_ngcontent-%COMP%]{margin:0;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary, #6e6e73);border-bottom:1px solid var(--color-border-light, rgba(0, 0, 0, .06));padding-bottom:.5rem}.user-form__field[_ngcontent-%COMP%]{display:grid;grid-template-columns:140px 1fr;align-items:baseline;gap:.75rem}.user-form__field--bio[_ngcontent-%COMP%]{align-items:start}.user-form__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text-secondary, #6e6e73);white-space:nowrap}.user-form__required[_ngcontent-%COMP%]{color:var(--color-error, #ff3b30)}.user-form__value[_ngcontent-%COMP%]{font-size:.9375rem;color:var(--color-text, #1d1d1f)}.user-form__value--readonly[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);font-size:.875rem}.user-form__input[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.9375rem;font-family:inherit;outline:none;box-sizing:border-box;transition:border-color .15s ease;resize:none}.user-form__input[_ngcontent-%COMP%]:focus{border-color:var(--color-primary, #007aff)}.user-form__input[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary, #6e6e73)}.user-form__input--textarea[_ngcontent-%COMP%]{line-height:1.5;resize:vertical}.user-form__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.user-form__btn[_ngcontent-%COMP%]{padding:.6rem 1.25rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.9375rem;font-family:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease}.user-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-surface-hover, rgba(0, 0, 0, .04))}.user-form__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.user-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-primary, #007aff);border-color:var(--color-primary, #007aff);color:#fff}.user-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-primary-hover, #0051d5);border-color:var(--color-primary-hover, #0051d5)}"],changeDetection:0})};export{B as a};
@@ -0,0 +1 @@
1
+ import{a as K}from"./chunk-YKPIMVQC.js";import"./chunk-5P2WWCFC.js";import{b as T,d as G}from"./chunk-4GVABYH4.js";import{a as w}from"./chunk-V363EHJE.js";import{F as J,c as z,e as c,g as $,h as R,i as F,l as v,n as L,r as N,s as B,t as q,u as U,v as j,w as H}from"./chunk-HZF57OLY.js";import{Bb as y,Db as s,Fb as d,Ka as a,Rb as P,Tb as r,Ub as b,Vb as k,Wa as D,a as A,b as V,ca as h,ga as f,ha as _,lb as u,ma as I,mb as g,nb as S,pb as E,qb as O,rb as p,sb as n,ta as C,tb as o,ub as x}from"./chunk-B4RKRLIY.js";function W(m,t){m&1&&(n(0,"p",5),r(1,"Loading\u2026"),o())}function X(m,t){m&1&&(n(0,"span",12),r(1,"Name is required."),o())}function Y(m,t){m&1&&(n(0,"p",19),r(1,"No parameters defined."),o())}function Z(m,t){m&1&&(n(0,"span",12),r(1,"Parameter name is required."),o())}function ee(m,t){if(m&1){let e=y();n(0,"div",20)(1,"div",27)(2,"div",28)(3,"label",29),r(4,"Name "),n(5,"span",10),r(6,"*"),o()(),x(7,"input",30),u(8,Z,2,0,"span",12),o(),n(9,"div",28)(10,"label",29),r(11,"Description"),o(),x(12,"input",31),o(),n(13,"div",28)(14,"label",29),r(15,"Default value"),o(),x(16,"input",32),o()(),n(17,"button",33),s("click",function(){let l=f(e).$index,M=d(2);return _(M.removeParameter(l))}),r(18," \xD7 "),o()()}if(m&2){let e=t.$implicit,i=t.$index;p("formGroupName",i),a(3),p("for","param-name-"+i),a(4),P("prompt-form__input--invalid",e.controls.name.invalid&&e.controls.name.touched),p("id","param-name-"+i),a(),g(e.controls.name.invalid&&e.controls.name.touched?8:-1),a(2),p("for","param-desc-"+i),a(2),p("id","param-desc-"+i),a(2),p("for","param-default-"+i),a(2),p("id","param-default-"+i)}}function te(m,t){m&1&&(n(0,"span",12),r(1,"Content entry must not be blank."),o())}function re(m,t){if(m&1){let e=y();n(0,"div",22)(1,"span",34),r(2),o(),n(3,"div",35),x(4,"textarea",36),u(5,te,2,0,"span",12),o(),n(6,"button",37),s("click",function(){let l=f(e).$index,M=d(2);return _(M.removeContentEntry(l))}),r(7," \xD7 "),o()()}if(m&2){let e=t.$implicit,i=t.$index,l=d(2);a(2),b(i+1),a(2),P("prompt-form__textarea--invalid",e.invalid&&e.touched),p("formControlName",i),a(),g(e.invalid&&e.touched?5:-1),a(),p("disabled",l.contentArray.length===1)}}function oe(m,t){if(m&1&&(n(0,"p",23),r(1),o()),m&2){let e=d(2);a(),b(e.errorMessage())}}function ne(m,t){if(m&1){let e=y();n(0,"form",7),s("ngSubmit",function(){f(e);let l=d();return _(l.submit())}),n(1,"div",8)(2,"label",9),r(3,"Name "),n(4,"span",10),r(5,"*"),o()(),x(6,"input",11),u(7,X,2,0,"span",12),o(),n(8,"div",8)(9,"label",13),r(10,"Description"),o(),x(11,"input",14),o(),n(12,"fieldset",15)(13,"legend",16),r(14," Parameters "),n(15,"span",17),r(16,"Named placeholders used in content"),o()(),n(17,"p",18),r(18," Each parameter must have a name and a default value. Use "),n(19,"code"),r(20),o(),r(21," in content entries to reference them. "),o(),u(22,Y,2,0,"p",19),E(23,ee,19,10,"div",20,S),n(25,"button",21),s("click",function(){f(e);let l=d();return _(l.addParameter())}),r(26,"+ Add parameter"),o()(),n(27,"fieldset",15)(28,"legend",16),r(29," Content "),n(30,"span",10),r(31,"*"),o(),n(32,"span",17),r(33,"Ordered list of text commands"),o()(),n(34,"p",18),r(35," Each content entry is a command. Use "),n(36,"code"),r(37,"@AgentName"),o(),r(38," to target an agent, "),n(39,"code"),r(40,"/promptName param1 param2"),o(),r(41," to call another prompt, and "),n(42,"code"),r(43),o(),r(44," for parameter placeholders. "),o(),E(45,re,8,6,"div",22,S),n(47,"button",21),s("click",function(){f(e);let l=d();return _(l.addContentEntry())}),r(48,"+ Add content entry"),o()(),u(49,oe,2,1,"p",23),n(50,"div",24)(51,"button",25),r(52),o(),n(53,"button",26),s("click",function(){f(e);let l=d();return _(l.cancel())}),r(54,"Cancel"),o()()()}if(m&2){let e=d();p("formGroup",e.form),a(6),P("prompt-form__input--invalid",e.nameControl.invalid&&e.nameControl.touched),p("formControl",e.nameControl),a(),g(e.nameControl.invalid&&e.nameControl.touched?7:-1),a(4),p("formControl",e.descriptionControl),a(),p("formArrayName","parameters"),a(8),b(e.paramPlaceholderSyntax),a(2),g(e.parametersArray.length===0?22:-1),a(),O(e.parametersArray.controls),a(4),p("formArrayName","content"),a(16),b(e.paramPlaceholderSyntax),a(2),O(e.contentArray.controls),a(4),g(e.errorMessage()?49:-1),a(2),p("disabled",e.form.invalid||e.isSubmitting()),a(),k(" ",e.isEditMode()?"Save changes":"Create"," ")}}var Q=class m{route=h(T);router=h(G);destroyRef=h(I);promptState=h(K);namespaceId=this.route.snapshot.params.namespaceId;isPlatformMode=!this.namespaceId;form=new F({name:new v("",{nonNullable:!0,validators:[c.required,c.minLength(1)]}),description:new v(null),content:new N([this.createContentControl()],{validators:[c.required]}),parameters:new N([])});get nameControl(){return this.form.controls.name}get descriptionControl(){return this.form.controls.description}get contentArray(){return this.form.controls.content}get parametersArray(){return this.form.controls.parameters}isEditMode=C(!1);isSubmitting=C(!1);isLoading=C(!1);errorMessage=C(null);paramPlaceholderSyntax="{{paramName}}";existingPrompt=null;ngOnInit(){let t=this.route.snapshot.paramMap.get("promptId");t&&(this.isEditMode.set(!0),this.loadPrompt(t))}loadPrompt(t){this.isLoading.set(!0),this.promptState.getById(t).pipe(w(this.destroyRef)).subscribe({next:e=>{this.existingPrompt=e,this.hydrateForm(e),this.isLoading.set(!1)},error:()=>{this.isLoading.set(!1),this.navigateBack()}})}hydrateForm(t){this.nameControl.setValue(t.name),this.descriptionControl.setValue(t.description??null),this.contentArray.clear(),(t.content.length>0?t.content:[""]).forEach(i=>this.contentArray.push(this.createContentControl(i))),this.parametersArray.clear(),(t.parameters??[]).forEach(i=>this.parametersArray.push(this.createParameterGroup(i)))}createContentControl(t=""){return new v(t,{nonNullable:!0,validators:[c.required,c.pattern(/\S/)]})}addContentEntry(){this.contentArray.push(this.createContentControl())}removeContentEntry(t){this.contentArray.length>1&&this.contentArray.removeAt(t)}createParameterGroup(t){return new F({name:new v(t?.name??"",{nonNullable:!0,validators:[c.required,c.minLength(1)]}),description:new v(t?.description??null),defaultValue:new v(t?.defaultValue??"",{nonNullable:!0,validators:[c.required]})})}addParameter(){this.parametersArray.push(this.createParameterGroup())}removeParameter(t){this.parametersArray.removeAt(t)}submit(){if(this.form.invalid||this.isSubmitting())return;this.isSubmitting.set(!0);let t=V(A({},this.existingPrompt??{}),{namespaceId:this.namespaceId,name:this.nameControl.value.trim(),description:this.descriptionControl.value?.trim()||void 0,content:this.contentArray.controls.map(i=>i.value.trim()),parameters:this.parametersArray.controls.map(i=>({name:i.controls.name.value.trim(),description:i.controls.description.value?.trim()||void 0,defaultValue:i.controls.defaultValue.value.trim()}))}),e=this.isEditMode()&&this.existingPrompt?.id?this.promptState.update(this.existingPrompt.id,t):this.promptState.create(t);this.errorMessage.set(null),e.pipe(w(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:i=>{this.isSubmitting.set(!1),i.status===409?this.errorMessage.set(`A prompt named "${t.name}" already exists in this scope.`):i.status===400?this.errorMessage.set(i.error?.message??"Invalid prompt data."):this.errorMessage.set("An unexpected error occurred. Please try again.")}})}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||m)};static \u0275cmp=D({type:m,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"],[1,"prompt-form__actions"],["type","submit",1,"prompt-form__btn","prompt-form__btn--primary",3,"disabled"],["type","button",1,"prompt-form__btn",3,"click"],[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"]],template:function(e,i){e&1&&(n(0,"div",0)(1,"header",1)(2,"button",2),s("click",function(){return i.cancel()}),n(3,"span",3),r(4,"\u2190"),o(),r(5),o(),n(6,"h1",4),r(7),o()(),u(8,W,2,0,"p",5)(9,ne,55,14,"form",6),o()),e&2&&(a(5),k(" ",i.isPlatformMode?"Platform prompts":"Prompts"," "),a(2),b(i.isEditMode()?"Edit prompt":"New prompt"),a(),g(i.isLoading()?8:9))},dependencies:[J,L,z,$,R,B,H,j,q,U],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-primary, #007aff);font-family:inherit}.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:600;color:var(--color-text, #1d1d1f);letter-spacing:-.02em}.prompt-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);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, #1d1d1f)}.prompt-form__label-hint[_ngcontent-%COMP%]{font-weight:400;color:var(--color-text-secondary, #6e6e73);margin-left:.375rem}.prompt-form__input[_ngcontent-%COMP%], .prompt-form__textarea[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);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-primary, #007aff)}.prompt-form__input[_ngcontent-%COMP%]::placeholder, .prompt-form__textarea[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary, #6e6e73)}.prompt-form__textarea[_ngcontent-%COMP%]{resize:vertical;min-height:100px;line-height:1.5}.prompt-form__section[_ngcontent-%COMP%]{border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:8px;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, #6e6e73);line-height:1.4}.prompt-form__empty-hint[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--color-text-secondary, #6e6e73);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, #6e6e73);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:6px;background:var(--color-surface-hover, rgba(0, 0, 0, .03))}.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:6px;border:1px dashed var(--color-border, rgba(0, 0, 0, .15));background:transparent;color:var(--color-primary, #007aff);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-surface-hover, rgba(0, 0, 0, .04));border-color:var(--color-primary, #007aff)}.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:50%;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text-secondary, #6e6e73);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:var(--color-error-light, rgba(255, 59, 48, .08));color:var(--color-error, #ff3b30);border-color:var(--color-error, #ff3b30)}.prompt-form__remove-btn[_ngcontent-%COMP%]:disabled{opacity:.3;cursor:not-allowed}.prompt-form__error[_ngcontent-%COMP%]{margin:0;padding:.625rem .875rem;border-radius:8px;background:var(--color-error-light, rgba(255, 59, 48, .08));border:1px solid var(--color-error, #ff3b30);color:var(--color-error, #ff3b30);font-size:.875rem;line-height:1.4}.prompt-form__field-error[_ngcontent-%COMP%]{font-size:.8rem;color:var(--color-error, #ff3b30);line-height:1.3}.prompt-form__input--invalid[_ngcontent-%COMP%], .prompt-form__textarea--invalid[_ngcontent-%COMP%]{border-color:var(--color-error, #ff3b30)}.prompt-form__input--invalid[_ngcontent-%COMP%]:focus, .prompt-form__textarea--invalid[_ngcontent-%COMP%]:focus{border-color:var(--color-error, #ff3b30)}.prompt-form__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.prompt-form__btn[_ngcontent-%COMP%]{padding:.6rem 1.25rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.9375rem;font-family:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease}.prompt-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-surface-hover, rgba(0, 0, 0, .04))}.prompt-form__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.prompt-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-primary, #007aff);border-color:var(--color-primary, #007aff);color:#fff}.prompt-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-primary-hover, #0051d5);border-color:var(--color-primary-hover, #0051d5)}"],changeDetection:0})};export{Q as PromptFormComponent};
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-32PCPEXE.js";import"./chunk-EXGN47V2.js";import"./chunk-5WWHTBZX.js";import"./chunk-5P2WWCFC.js";import"./chunk-4GVABYH4.js";import"./chunk-V363EHJE.js";import"./chunk-B4RKRLIY.js";export{a as LayoutComponent};
@@ -1 +1 @@
1
- import{a as $}from"./chunk-I7PMQXOL.js";import{d as D}from"./chunk-BUWF3ZQM.js";import{d as q}from"./chunk-4GVABYH4.js";import{u as M}from"./chunk-WV7ML4CJ.js";import"./chunk-BUA6GPP7.js";import"./chunk-Z7E7NSDY.js";import{a as f}from"./chunk-V363EHJE.js";import"./chunk-ZEMOOOQR.js";import"./chunk-HZF57OLY.js";import"./chunk-EF2BOSEH.js";import{Bb as b,Db as s,Fb as d,Hc as B,Pb as w,S as P,Tb as R,Wa as g,ab as C,ac as x,ca as n,dc as I,ec as T,ga as m,ha as l,hc as k,i as _,lb as h,ma as y,mb as A,rb as c,sb as a,t as u,tb as v}from"./chunk-B4RKRLIY.js";var S=()=>[];function V(r,e){if(r&1){let t=b();a(0,"agentos-ai-provider-item",4),s("editRequested",function(i){m(t);let p=d(2);return l(p.onEdit(i))})("deleteRequested",function(i){m(t);let p=d(2);return l(p.onDelete(i))}),v()}r&2&&c("config",e)("showBadge",!1)}function F(r,e){if(r&1&&h(0,V,1,2,"agentos-ai-provider-item",3),r&2){let t,o=e.$implicit,i=d();A((t=i.resolveProvider(o.id))?0:-1,t)}}var E=class r{router=n(q);destroyRef=n(y);aiProviderController=n(D);refresh$=new _(void 0);providers$=this.refresh$.pipe(P(()=>this.aiProviderController.listAiProvider("none")));providerItems$=this.providers$.pipe(u(e=>e.map(t=>({id:t.id??"",name:t.name,description:t.apiType}))));providersById=new Map;constructor(){this.providers$.pipe(f(this.destroyRef)).subscribe(e=>{this.providersById=new Map(e.map(t=>[t.id??"",t]))})}goBack(){this.router.navigate(["/agentos","admin"])}openCreateForm(){this.router.navigate(["/agentos","admin","ai-providers","new"])}onEdit(e){e.id&&this.router.navigate(["/agentos","admin","ai-providers",e.id,"edit"])}onDelete(e){e.id&&this.aiProviderController.deleteAiProvider(e.id).pipe(f(this.destroyRef)).subscribe(()=>this.refresh$.next())}resolveProvider(e){return this.providersById.get(e)??null}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=g({type:r,selectors:[["agentos-platform-ai-providers"]],decls:6,vars:6,consts:[["aiProviderItemTpl",""],["title","Platform AI Providers","emptyMessage","No platform AI providers defined yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","type","button",1,"platform-ai-providers__back",3,"click"],["scope","namespace",3,"config","showBadge"],["scope","namespace",3,"editRequested","deleteRequested","config","showBadge"]],template:function(t,o){if(t&1&&(a(0,"ds-entity-list",1),I(1,"async"),s("createRequested",function(){return o.openCreateForm()}),a(2,"button",2),s("click",function(){return o.goBack()}),R(3,"\u2190 Admin"),v()(),C(4,F,1,1,"ng-template",null,0,k)),t&2){let i=w(5);c("items",T(1,3,o.providerItems$)??x(5,S))("showCreate",!0)("itemTemplate",i)}},dependencies:[M,$,B],styles:[".platform-ai-providers__back[_ngcontent-%COMP%]{background:none;border:none;cursor:pointer;font-family:inherit;font-size:.875rem;color:var(--color-text-secondary, #6e6e73);padding:.25rem .5rem;border-radius:4px;transition:color .15s ease}.platform-ai-providers__back[_ngcontent-%COMP%]:hover{color:var(--color-primary, #007aff)}"],changeDetection:0})};export{E as PlatformAiProvidersComponent};
1
+ import{a as $}from"./chunk-I7PMQXOL.js";import{d as D}from"./chunk-5P2WWCFC.js";import{d as q}from"./chunk-4GVABYH4.js";import{u as M}from"./chunk-WV7ML4CJ.js";import"./chunk-BUA6GPP7.js";import"./chunk-Z7E7NSDY.js";import{a as f}from"./chunk-V363EHJE.js";import"./chunk-ZEMOOOQR.js";import"./chunk-HZF57OLY.js";import"./chunk-EF2BOSEH.js";import{Bb as b,Db as s,Fb as d,Hc as B,Pb as w,S as P,Tb as R,Wa as g,ab as C,ac as x,ca as n,dc as I,ec as T,ga as m,ha as l,hc as k,i as _,lb as h,ma as y,mb as A,rb as c,sb as a,t as u,tb as v}from"./chunk-B4RKRLIY.js";var S=()=>[];function V(r,e){if(r&1){let t=b();a(0,"agentos-ai-provider-item",4),s("editRequested",function(i){m(t);let p=d(2);return l(p.onEdit(i))})("deleteRequested",function(i){m(t);let p=d(2);return l(p.onDelete(i))}),v()}r&2&&c("config",e)("showBadge",!1)}function F(r,e){if(r&1&&h(0,V,1,2,"agentos-ai-provider-item",3),r&2){let t,o=e.$implicit,i=d();A((t=i.resolveProvider(o.id))?0:-1,t)}}var E=class r{router=n(q);destroyRef=n(y);aiProviderController=n(D);refresh$=new _(void 0);providers$=this.refresh$.pipe(P(()=>this.aiProviderController.listAiProvider("none")));providerItems$=this.providers$.pipe(u(e=>e.map(t=>({id:t.id??"",name:t.name,description:t.apiType}))));providersById=new Map;constructor(){this.providers$.pipe(f(this.destroyRef)).subscribe(e=>{this.providersById=new Map(e.map(t=>[t.id??"",t]))})}goBack(){this.router.navigate(["/agentos","admin"])}openCreateForm(){this.router.navigate(["/agentos","admin","ai-providers","new"])}onEdit(e){e.id&&this.router.navigate(["/agentos","admin","ai-providers",e.id,"edit"])}onDelete(e){e.id&&this.aiProviderController.deleteAiProvider(e.id).pipe(f(this.destroyRef)).subscribe(()=>this.refresh$.next())}resolveProvider(e){return this.providersById.get(e)??null}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=g({type:r,selectors:[["agentos-platform-ai-providers"]],decls:6,vars:6,consts:[["aiProviderItemTpl",""],["title","Platform AI Providers","emptyMessage","No platform AI providers defined yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","type","button",1,"platform-ai-providers__back",3,"click"],["scope","namespace",3,"config","showBadge"],["scope","namespace",3,"editRequested","deleteRequested","config","showBadge"]],template:function(t,o){if(t&1&&(a(0,"ds-entity-list",1),I(1,"async"),s("createRequested",function(){return o.openCreateForm()}),a(2,"button",2),s("click",function(){return o.goBack()}),R(3,"\u2190 Admin"),v()(),C(4,F,1,1,"ng-template",null,0,k)),t&2){let i=w(5);c("items",T(1,3,o.providerItems$)??x(5,S))("showCreate",!0)("itemTemplate",i)}},dependencies:[M,$,B],styles:[".platform-ai-providers__back[_ngcontent-%COMP%]{background:none;border:none;cursor:pointer;font-family:inherit;font-size:.875rem;color:var(--color-text-secondary, #6e6e73);padding:.25rem .5rem;border-radius:4px;transition:color .15s ease}.platform-ai-providers__back[_ngcontent-%COMP%]:hover{color:var(--color-primary, #007aff)}"],changeDetection:0})};export{E as PlatformAiProvidersComponent};
@@ -1 +1 @@
1
- import{a as G}from"./chunk-AIC4U2MU.js";import{a as V}from"./chunk-UXIUSXZT.js";import{a as B}from"./chunk-EVGEVSVW.js";import{a as K}from"./chunk-H5QMVJMP.js";import"./chunk-T3IUNA6F.js";import"./chunk-NKNHWFYH.js";import"./chunk-BUWF3ZQM.js";import{b as D,d as $}from"./chunk-4GVABYH4.js";import{p as P,u as L}from"./chunk-WV7ML4CJ.js";import"./chunk-BUA6GPP7.js";import"./chunk-Z7E7NSDY.js";import{a as c}from"./chunk-V363EHJE.js";import"./chunk-ZEMOOOQR.js";import"./chunk-HZF57OLY.js";import"./chunk-EF2BOSEH.js";import{Bb as A,Db as g,Fb as s,Hc as N,Ka as C,Pb as x,S as y,Tb as E,Ub as w,Wa as v,ab as R,ac as O,ca as r,dc as M,ec as T,ga as l,ha as m,hc as q,lb as b,m as _,ma as I,mb as S,rb as f,sb as p,t as u,ta as h,tb as d}from"./chunk-B4RKRLIY.js";var z=()=>[];function W(o,e){if(o&1&&(p(0,"p",3),E(1),d()),o&2){let t=s().$implicit;C(),w(t.name)}}function U(o,e){if(o&1){let t=A();p(0,"agentos-integration-config-item",5),g("editRequested",function(){let i=l(t),a=s(2);return m(a.onEdit(i))})("deleteRequested",function(){let i=l(t),a=s(2);return m(a.onDelete(i))})("duplicateRequested",function(){let i=l(t),a=s(2);return m(a.onDuplicate(i))}),d()}if(o&2){let t=e,n=s(2);f("config",t.config)("scope",t.scope)("readOnly",(t.scope==="namespace"||t.scope==="platform")&&!n.isAdmin())}}function X(o,e){if(o&1&&b(0,W,2,1,"p",3)(1,U,1,3,"agentos-integration-config-item",4),o&2){let t,n=e.$implicit,i=s();S(i.isEmptyPlaceholder(n.id)?0:(t=i.resolve(n.id))?1:-1,t)}}var k=Object.freeze({platform:"Configurations plateforme",namespace:"Configurations du namespace",userOnNs:"Mes overrides sur ce namespace",userGlobal:"Mes overrides globaux"}),F="__empty__",j=class o{route=r(D);router=r($);destroyRef=r(I);state=r(V);namespaceRole=r(K);namespaceId=this.route.snapshot.params.namespaceId;isAdmin=h(!1);listItems$=this.state.vm$.pipe(u(e=>this.toListItems(e)));resolved=new Map;ngOnInit(){this.route.paramMap.pipe(c(this.destroyRef)).subscribe(e=>{let t=e.get("namespaceId")??"";t&&t!==this.namespaceId&&(this.namespaceId=t),this.state.setNamespace(t)}),this.route.paramMap.pipe(u(e=>e.get("namespaceId")??""),y(e=>e?this.namespaceRole.isAdminOfNamespace$(e):_(!1)),c(this.destroyRef)).subscribe(e=>this.isAdmin.set(e)),this.state.vm$.pipe(c(this.destroyRef)).subscribe(e=>{let t=new Map;e.platform.forEach(n=>{n.id&&t.set(this.itemKey("platform",n.id),{config:n,scope:"platform"})}),e.namespace.forEach(n=>{n.id&&t.set(this.itemKey("namespace",n.id),{config:n,scope:"namespace"})}),e.userOnNs.forEach(n=>{n.id&&t.set(this.itemKey("userOnNs",n.id),{config:n,scope:"userOnNs"})}),e.userGlobal.forEach(n=>{n.id&&t.set(this.itemKey("userGlobal",n.id),{config:n,scope:"userGlobal"})}),this.resolved=t})}isEmptyPlaceholder(e){return e.startsWith(F)}resolve(e){return this.resolved.get(e)??null}itemKey(e,t){return`${e}:${t}`}goBack(){this.router.navigate(["/agentos","namespaces"])}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId,"integrations","new"],{queryParams:{scope:G(this.isAdmin())}})}onEdit(e){let t=e.config.id??"";this.router.navigate(["/agentos",this.namespaceId,"integrations",t,"edit"],{queryParams:{scope:e.scope}})}onDelete(e){let t=e.config.id;t&&this.state.delete(t,e.scope).pipe(c(this.destroyRef)).subscribe({error:n=>{console.error(`[IntegrationsAllScopes] Delete failed for ${e.scope}:${t}:`,n)}})}onDuplicate(e){if(!e.config.id)return;let n=(e.scope==="namespace"||e.scope==="platform")&&!this.isAdmin()?"userOnNs":e.scope;this.router.navigate(["/agentos",this.namespaceId,"integrations","new"],{queryParams:{scope:n,template:e.config.id,templateScope:e.scope}})}toListItems(e){let t=[];return t.push(...this.sectionItems("platform",e.platform)),t.push(...this.sectionItems("namespace",e.namespace)),t.push(...this.sectionItems("userOnNs",e.userOnNs)),t.push(...this.sectionItems("userGlobal",e.userGlobal)),t}sectionItems(e,t){return t.length===0?[{id:`${F}${e}`,name:"Aucune configuration",groupKey:e,groupLabel:k[e]}]:t.filter(n=>!!n.id).map(n=>({id:this.itemKey(e,n.id),name:n.name,description:n.integrationType,groupKey:e,groupLabel:k[e]}))}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=v({type:o,selectors:[["agentos-integrations-all-scopes"]],decls:5,vars:6,consts:[["integrationItemTpl",""],["title","Integrations","emptyMessage","No integrations available.","cardMinWidth","400px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[1,"integrations-all-scopes__empty"],[3,"config","scope","readOnly"],[3,"editRequested","deleteRequested","duplicateRequested","config","scope","readOnly"]],template:function(t,n){if(t&1&&(p(0,"ds-entity-list",1),M(1,"async"),g("createRequested",function(){return n.openCreateForm()}),p(2,"ds-icon-button",2),g("action",function(){return n.goBack()}),d()(),R(3,X,2,1,"ng-template",null,0,q)),t&2){let i=x(4);f("items",T(1,3,n.listItems$)??O(5,z))("showCreate",!0)("itemTemplate",i)}},dependencies:[L,B,P,N],styles:[".integrations-all-scopes__empty[_ngcontent-%COMP%]{margin:0;padding:.65rem 1rem;font-size:.85rem;font-style:italic;color:var(--color-text-secondary)}"],changeDetection:0})};export{j as IntegrationsAllScopesComponent};
1
+ import{a as G}from"./chunk-AIC4U2MU.js";import{a as K}from"./chunk-NE7BOWVE.js";import{a as V}from"./chunk-3UZ346ET.js";import"./chunk-T3IUNA6F.js";import{a as B}from"./chunk-EVGEVSVW.js";import"./chunk-5WWHTBZX.js";import"./chunk-5P2WWCFC.js";import{b as D,d as $}from"./chunk-4GVABYH4.js";import{p as P,u as L}from"./chunk-WV7ML4CJ.js";import"./chunk-BUA6GPP7.js";import"./chunk-Z7E7NSDY.js";import{a as c}from"./chunk-V363EHJE.js";import"./chunk-ZEMOOOQR.js";import"./chunk-HZF57OLY.js";import"./chunk-EF2BOSEH.js";import{Bb as A,Db as g,Fb as s,Hc as N,Ka as C,Pb as x,S as y,Tb as E,Ub as w,Wa as v,ab as R,ac as O,ca as r,dc as M,ec as T,ga as l,ha as m,hc as q,lb as b,m as _,ma as I,mb as S,rb as f,sb as p,t as u,ta as h,tb as d}from"./chunk-B4RKRLIY.js";var z=()=>[];function W(o,e){if(o&1&&(p(0,"p",3),E(1),d()),o&2){let t=s().$implicit;C(),w(t.name)}}function U(o,e){if(o&1){let t=A();p(0,"agentos-integration-config-item",5),g("editRequested",function(){let i=l(t),a=s(2);return m(a.onEdit(i))})("deleteRequested",function(){let i=l(t),a=s(2);return m(a.onDelete(i))})("duplicateRequested",function(){let i=l(t),a=s(2);return m(a.onDuplicate(i))}),d()}if(o&2){let t=e,n=s(2);f("config",t.config)("scope",t.scope)("readOnly",(t.scope==="namespace"||t.scope==="platform")&&!n.isAdmin())}}function X(o,e){if(o&1&&b(0,W,2,1,"p",3)(1,U,1,3,"agentos-integration-config-item",4),o&2){let t,n=e.$implicit,i=s();S(i.isEmptyPlaceholder(n.id)?0:(t=i.resolve(n.id))?1:-1,t)}}var k=Object.freeze({platform:"Configurations plateforme",namespace:"Configurations du namespace",userOnNs:"Mes overrides sur ce namespace",userGlobal:"Mes overrides globaux"}),F="__empty__",j=class o{route=r(D);router=r($);destroyRef=r(I);state=r(V);namespaceRole=r(K);namespaceId=this.route.snapshot.params.namespaceId;isAdmin=h(!1);listItems$=this.state.vm$.pipe(u(e=>this.toListItems(e)));resolved=new Map;ngOnInit(){this.route.paramMap.pipe(c(this.destroyRef)).subscribe(e=>{let t=e.get("namespaceId")??"";t&&t!==this.namespaceId&&(this.namespaceId=t),this.state.setNamespace(t)}),this.route.paramMap.pipe(u(e=>e.get("namespaceId")??""),y(e=>e?this.namespaceRole.isAdminOfNamespace$(e):_(!1)),c(this.destroyRef)).subscribe(e=>this.isAdmin.set(e)),this.state.vm$.pipe(c(this.destroyRef)).subscribe(e=>{let t=new Map;e.platform.forEach(n=>{n.id&&t.set(this.itemKey("platform",n.id),{config:n,scope:"platform"})}),e.namespace.forEach(n=>{n.id&&t.set(this.itemKey("namespace",n.id),{config:n,scope:"namespace"})}),e.userOnNs.forEach(n=>{n.id&&t.set(this.itemKey("userOnNs",n.id),{config:n,scope:"userOnNs"})}),e.userGlobal.forEach(n=>{n.id&&t.set(this.itemKey("userGlobal",n.id),{config:n,scope:"userGlobal"})}),this.resolved=t})}isEmptyPlaceholder(e){return e.startsWith(F)}resolve(e){return this.resolved.get(e)??null}itemKey(e,t){return`${e}:${t}`}goBack(){this.router.navigate(["/agentos","namespaces"])}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId,"integrations","new"],{queryParams:{scope:G(this.isAdmin())}})}onEdit(e){let t=e.config.id??"";this.router.navigate(["/agentos",this.namespaceId,"integrations",t,"edit"],{queryParams:{scope:e.scope}})}onDelete(e){let t=e.config.id;t&&this.state.delete(t,e.scope).pipe(c(this.destroyRef)).subscribe({error:n=>{console.error(`[IntegrationsAllScopes] Delete failed for ${e.scope}:${t}:`,n)}})}onDuplicate(e){if(!e.config.id)return;let n=(e.scope==="namespace"||e.scope==="platform")&&!this.isAdmin()?"userOnNs":e.scope;this.router.navigate(["/agentos",this.namespaceId,"integrations","new"],{queryParams:{scope:n,template:e.config.id,templateScope:e.scope}})}toListItems(e){let t=[];return t.push(...this.sectionItems("platform",e.platform)),t.push(...this.sectionItems("namespace",e.namespace)),t.push(...this.sectionItems("userOnNs",e.userOnNs)),t.push(...this.sectionItems("userGlobal",e.userGlobal)),t}sectionItems(e,t){return t.length===0?[{id:`${F}${e}`,name:"Aucune configuration",groupKey:e,groupLabel:k[e]}]:t.filter(n=>!!n.id).map(n=>({id:this.itemKey(e,n.id),name:n.name,description:n.integrationType,groupKey:e,groupLabel:k[e]}))}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=v({type:o,selectors:[["agentos-integrations-all-scopes"]],decls:5,vars:6,consts:[["integrationItemTpl",""],["title","Integrations","emptyMessage","No integrations available.","cardMinWidth","400px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[1,"integrations-all-scopes__empty"],[3,"config","scope","readOnly"],[3,"editRequested","deleteRequested","duplicateRequested","config","scope","readOnly"]],template:function(t,n){if(t&1&&(p(0,"ds-entity-list",1),M(1,"async"),g("createRequested",function(){return n.openCreateForm()}),p(2,"ds-icon-button",2),g("action",function(){return n.goBack()}),d()(),R(3,X,2,1,"ng-template",null,0,q)),t&2){let i=x(4);f("items",T(1,3,n.listItems$)??O(5,z))("showCreate",!0)("itemTemplate",i)}},dependencies:[L,B,P,N],styles:[".integrations-all-scopes__empty[_ngcontent-%COMP%]{margin:0;padding:.65rem 1rem;font-size:.85rem;font-style:italic;color:var(--color-text-secondary)}"],changeDetection:0})};export{j as IntegrationsAllScopesComponent};
@@ -1 +1 @@
1
- import{a as h}from"./chunk-NKNHWFYH.js";import{i as b}from"./chunk-BUWF3ZQM.js";import{b as u}from"./chunk-V363EHJE.js";import{D as p,P as f,S as m,Z as l,ca as a,m as r,t as c}from"./chunk-B4RKRLIY.js";var v=class i{userState=a(h);permissions=a(b);currentUser$=u(this.userState.currentUser);cache=new Map;isAdminOfNamespace$(e){if(!e)return r(!1);let t=this.cache.get(e);if(t)return t;let o=this.currentUser$.pipe(m(s=>s?s.isAdmin?r(!0):this.permissions.listNamespaceUsers(e).pipe(c(d=>d.some(n=>n.id===s.id&&n.role==="ADMIN")),p(()=>r(!1))):r(!1)),f({bufferSize:1,refCount:!1}));return this.cache.set(e,o),o}static \u0275fac=function(t){return new(t||i)};static \u0275prov=l({token:i,factory:i.\u0275fac,providedIn:"root"})};export{v as a};
1
+ import{a as h}from"./chunk-5WWHTBZX.js";import{i as b}from"./chunk-5P2WWCFC.js";import{b as u}from"./chunk-V363EHJE.js";import{D as p,P as f,S as m,Z as l,ca as a,m as r,t as c}from"./chunk-B4RKRLIY.js";var v=class i{userState=a(h);permissions=a(b);currentUser$=u(this.userState.currentUser);cache=new Map;isAdminOfNamespace$(e){if(!e)return r(!1);let t=this.cache.get(e);if(t)return t;let o=this.currentUser$.pipe(m(s=>s?s.isAdmin?r(!0):this.permissions.listNamespaceUsers(e).pipe(c(d=>d.some(n=>n.id===s.id&&n.role==="ADMIN")),p(()=>r(!1))):r(!1)),f({bufferSize:1,refCount:!1}));return this.cache.set(e,o),o}static \u0275fac=function(t){return new(t||i)};static \u0275prov=l({token:i,factory:i.\u0275fac,providedIn:"root"})};export{v as a};
@@ -0,0 +1 @@
1
+ import{a as D}from"./chunk-INPPLYFX.js";import{a as B}from"./chunk-YKPIMVQC.js";import"./chunk-5P2WWCFC.js";import{b as T,d as M}from"./chunk-4GVABYH4.js";import{u as $}from"./chunk-WV7ML4CJ.js";import"./chunk-BUA6GPP7.js";import"./chunk-Z7E7NSDY.js";import{a as d}from"./chunk-V363EHJE.js";import"./chunk-ZEMOOOQR.js";import"./chunk-HZF57OLY.js";import"./chunk-EF2BOSEH.js";import{Bb as b,Db as a,Fb as m,Hc as S,Pb as I,S as _,Tb as x,Wa as h,ab as C,ac as N,ca as p,dc as R,ec as w,ga as f,ha as y,hc as k,i as l,lb as P,ma as g,mb as v,rb as s,sb as i,t as u,tb as c}from"./chunk-B4RKRLIY.js";var F=()=>[];function A(o,t){if(o&1){let e=b();i(0,"agentos-prompt-item",4),a("deleteRequested",function(n){f(e);let E=m(2);return y(E.deletePrompt(n))}),c()}if(o&2){let e=m(2);s("prompt",t)("namespaceId",e.namespaceId)}}function L(o,t){if(o&1&&P(0,A,1,2,"agentos-prompt-item",3),o&2){let e,r=t.$implicit,n=m();v((e=n.resolvePrompt(r.id))?0:-1,e)}}var q=class o{route=p(T);router=p(M);destroyRef=p(g);promptState=p(B);namespaceId=this.route.snapshot.params.namespaceId;refresh$=new l(void 0);prompts$=this.refresh$.pipe(_(()=>this.promptState.listByNamespace(this.namespaceId)));promptItems$=this.prompts$.pipe(u(t=>t.map(e=>({id:e.id??"",name:e.name,description:e.description}))));promptsById=new Map;constructor(){this.prompts$.pipe(d(this.destroyRef)).subscribe(t=>{this.promptsById=new Map(t.map(e=>[e.id??"",e]))})}goBack(){this.router.navigate(["/agentos","namespaces"])}openCreateForm(){this.router.navigate(["/agentos",this.namespaceId,"prompts","new"])}deletePrompt(t){this.promptState.delete(t.id??"").pipe(d(this.destroyRef)).subscribe(()=>this.refresh$.next())}resolvePrompt(t){return this.promptsById.get(t)??null}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=h({type:o,selectors:[["agentos-namespace-prompts"]],decls:6,vars:6,consts:[["promptItemTpl",""],["title","Prompts","emptyMessage","No prompts defined yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","showCreate","itemTemplate"],["toolbar-start","","type","button",1,"namespace-prompts__back",3,"click"],[3,"prompt","namespaceId"],[3,"deleteRequested","prompt","namespaceId"]],template:function(e,r){if(e&1&&(i(0,"ds-entity-list",1),R(1,"async"),a("createRequested",function(){return r.openCreateForm()}),i(2,"button",2),a("click",function(){return r.goBack()}),x(3,"\u2190 Namespaces"),c()(),C(4,L,1,1,"ng-template",null,0,k)),e&2){let n=I(5);s("items",w(1,3,r.promptItems$)??N(5,F))("showCreate",!0)("itemTemplate",n)}},dependencies:[$,D,S],styles:[".namespace-prompts__back[_ngcontent-%COMP%]{background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-primary, #007aff);font-family:inherit}.namespace-prompts__back[_ngcontent-%COMP%]:hover{text-decoration:underline}"],changeDetection:0})};export{q as NamespacePromptsComponent};
@@ -0,0 +1 @@
1
+ import{a as ge}from"./chunk-KWZFKFOK.js";import{a as me,b as pe}from"./chunk-EBPM4OO4.js";import{a as ce}from"./chunk-IQ7EL357.js";import{a as de,b as le}from"./chunk-EFU22KBF.js";import{a as se}from"./chunk-BBQBJKTG.js";import{a as Y}from"./chunk-WQVPMMUH.js";import{a as Q,b as W,c as X}from"./chunk-QPBFAKWK.js";import{a as Z,b as te}from"./chunk-QKXRAKAR.js";import{a as ae}from"./chunk-5J75SWSV.js";import{a as ie}from"./chunk-TIF4AFYM.js";import{a as ne,b as oe,c as H}from"./chunk-SMT5YVCA.js";import{a as re}from"./chunk-32PCPEXE.js";import{a as D,b as ee}from"./chunk-EXGN47V2.js";import"./chunk-5WWHTBZX.js";import{a as L,e as N}from"./chunk-5P2WWCFC.js";import"./chunk-FPNEFWYN.js";import{b as k,d as T}from"./chunk-4GVABYH4.js";import{p as z}from"./chunk-WV7ML4CJ.js";import"./chunk-BUA6GPP7.js";import"./chunk-Z7E7NSDY.js";import"./chunk-V363EHJE.js";import"./chunk-ZEMOOOQR.js";import"./chunk-HZF57OLY.js";import"./chunk-EF2BOSEH.js";import{Cb as S,Db as u,Eb as E,Fb as _,Hc as w,Ka as p,Tb as a,Tc as F,Ub as C,Wa as g,ca as l,dc as M,ec as O,kb as x,lb as f,mb as h,pb as A,qb as y,rb as I,sb as i,ta as v,tb as r,ub as P,vb as c,wb as d}from"./chunk-B4RKRLIY.js";var t=()=>!0;var he=[{path:"",loadComponent:()=>import("./chunk-BWTU7I6I.js").then(e=>e.AgentosShellComponent),children:[{path:":namespaceId/cases",canActivate:[t],loadComponent:()=>import("./chunk-ZBXL6DSO.js").then(e=>e.CaseShellComponent),children:[{path:"",loadComponent:()=>import("./chunk-YRI2TXXT.js").then(e=>e.CaseHomeComponent)},{path:":caseId",loadComponent:()=>import("./chunk-APISHLX2.js").then(e=>e.CaseChatComponent)}]},{path:"",loadComponent:()=>import("./chunk-KGOCOJXX.js").then(e=>e.LayoutComponent),children:[{path:"namespaces/new",canActivate:[t],loadComponent:()=>import("./chunk-6NGGDRZW.js").then(e=>e.NamespaceFormComponent)},{path:"namespaces/:namespaceId/edit",canActivate:[t],loadComponent:()=>import("./chunk-6NGGDRZW.js").then(e=>e.NamespaceFormComponent)},{path:"namespaces",canActivate:[t],loadComponent:()=>import("./chunk-C4YB46JQ.js").then(e=>e.NamespaceListComponent)},{path:"admin",canActivate:[t],loadComponent:()=>import("./chunk-CUZOUQER.js").then(e=>e.AdminHomeComponent)},{path:"admin/users/new",canActivate:[t],loadComponent:()=>import("./chunk-HB7BOQF2.js").then(e=>e.UserFormComponent)},{path:"admin/users/:userId/edit",canActivate:[t],loadComponent:()=>import("./chunk-HB7BOQF2.js").then(e=>e.UserFormComponent)},{path:"admin/users",canActivate:[t],loadComponent:()=>import("./chunk-SAT3CQDP.js").then(e=>e.UserListComponent)},{path:"admin/integration-configs/new",canActivate:[t],loadComponent:()=>import("./chunk-6QBZFOLP.js").then(e=>e.IntegrationFormComponent)},{path:"admin/integration-configs/:integrationId/edit",canActivate:[t],loadComponent:()=>import("./chunk-6QBZFOLP.js").then(e=>e.IntegrationFormComponent)},{path:"admin/integration-configs",canActivate:[t],loadComponent:()=>import("./chunk-25QAYY2G.js").then(e=>e.PlatformIntegrationConfigsComponent)},{path:"admin/prompts/new",canActivate:[t],loadComponent:()=>import("./chunk-JFK2VH3B.js").then(e=>e.PromptFormComponent)},{path:"admin/prompts/:promptId/edit",canActivate:[t],loadComponent:()=>import("./chunk-JFK2VH3B.js").then(e=>e.PromptFormComponent)},{path:"admin/prompts",canActivate:[t],loadComponent:()=>import("./chunk-AIJJNBNY.js").then(e=>e.PlatformPromptsComponent)},{path:"admin/ai-providers/new",canActivate:[t],loadComponent:()=>import("./chunk-TWUUATLS.js").then(e=>e.AiProviderFormComponent)},{path:"admin/ai-providers/:aiProviderId/edit",canActivate:[t],loadComponent:()=>import("./chunk-TWUUATLS.js").then(e=>e.AiProviderFormComponent)},{path:"admin/ai-providers",canActivate:[t],loadComponent:()=>import("./chunk-MEMAC4FG.js").then(e=>e.PlatformAiProvidersComponent)},{path:"admin/ai-models/new",canActivate:[t],loadComponent:()=>import("./chunk-OX3JLJE5.js").then(e=>e.AiModelFormComponent)},{path:"admin/ai-models/:modelId/edit",canActivate:[t],loadComponent:()=>import("./chunk-OX3JLJE5.js").then(e=>e.AiModelFormComponent)},{path:"admin/ai-models",canActivate:[t],loadComponent:()=>import("./chunk-CHJWXPFL.js").then(e=>e.PlatformAiModelsComponent)},{path:"admin/agent-configs/new",canActivate:[t],loadComponent:()=>import("./chunk-DWM36GCL.js").then(e=>e.AgentConfigFormComponent)},{path:"admin/agent-configs/:agentConfigId/edit",canActivate:[t],loadComponent:()=>import("./chunk-DWM36GCL.js").then(e=>e.AgentConfigFormComponent)},{path:"admin/agent-configs/:agentConfigId/inspect",canActivate:[t],loadComponent:()=>import("./chunk-RPBI6ZEF.js").then(e=>e.AgentConfigInspectComponent)},{path:"admin/agent-configs",canActivate:[t],loadComponent:()=>import("./chunk-YG6SBV72.js").then(e=>e.PlatformAgentConfigsComponent)},{path:"me",canActivate:[t],loadComponent:()=>import("./chunk-FGH22HXQ.js").then(e=>e.UserProfileComponent)},{path:":namespaceId/integrations/new",canActivate:[t],loadComponent:()=>import("./chunk-6QBZFOLP.js").then(e=>e.IntegrationFormComponent)},{path:":namespaceId/integrations/:integrationId/edit",canActivate:[t],loadComponent:()=>import("./chunk-6QBZFOLP.js").then(e=>e.IntegrationFormComponent)},{path:":namespaceId/integrations",canActivate:[t],loadComponent:()=>import("./chunk-NBM4ZTYZ.js").then(e=>e.IntegrationsAllScopesComponent)},{path:":namespaceId/ai-providers/new",canActivate:[t],loadComponent:()=>import("./chunk-TWUUATLS.js").then(e=>e.AiProviderFormComponent)},{path:":namespaceId/ai-providers/:aiProviderId/edit",canActivate:[t],loadComponent:()=>import("./chunk-TWUUATLS.js").then(e=>e.AiProviderFormComponent)},{path:":namespaceId/ai-providers",canActivate:[t],loadComponent:()=>import("./chunk-XBQWHRJH.js").then(e=>e.AiProvidersAllScopesComponent)},{path:":namespaceId/ai-models/new",canActivate:[t],loadComponent:()=>import("./chunk-OX3JLJE5.js").then(e=>e.AiModelFormComponent)},{path:":namespaceId/ai-models/:modelId/edit",canActivate:[t],loadComponent:()=>import("./chunk-OX3JLJE5.js").then(e=>e.AiModelFormComponent)},{path:":namespaceId/ai-models",canActivate:[t],loadComponent:()=>import("./chunk-YPM4SWS3.js").then(e=>e.NamespaceAiModelsComponent)},{path:":namespaceId/prompts/new",canActivate:[t],loadComponent:()=>import("./chunk-JFK2VH3B.js").then(e=>e.PromptFormComponent)},{path:":namespaceId/prompts/:promptId/edit",canActivate:[t],loadComponent:()=>import("./chunk-JFK2VH3B.js").then(e=>e.PromptFormComponent)},{path:":namespaceId/prompts",canActivate:[t],loadComponent:()=>import("./chunk-NQLFBBMS.js").then(e=>e.NamespacePromptsComponent)},{path:":namespaceId/agent-configs/new",canActivate:[t],loadComponent:()=>import("./chunk-DWM36GCL.js").then(e=>e.AgentConfigFormComponent)},{path:":namespaceId/agent-configs/:agentConfigId/edit",canActivate:[t],loadComponent:()=>import("./chunk-DWM36GCL.js").then(e=>e.AgentConfigFormComponent)},{path:":namespaceId/agent-configs/:agentConfigId/inspect",canActivate:[t],loadComponent:()=>import("./chunk-RPBI6ZEF.js").then(e=>e.AgentConfigInspectComponent)},{path:":namespaceId/agent-configs",canActivate:[t],loadComponent:()=>import("./chunk-6PHQGWTQ.js").then(e=>e.NamespaceAgentConfigsComponent)},{path:"",redirectTo:"namespaces",pathMatch:"full"}]}]}];function j(e,o){e&1&&(c(0,"p",6),a(1,"No cases yet. Start one below."),d())}function G(e,o){if(e&1&&(c(0,"div",7)(1,"span",8),a(2),d(),c(3,"span",9),a(4),d()()),e&2){let n=o.$implicit;p(2),C(n.id),p(2),C(n.status)}}function K(e,o){if(e&1&&A(0,G,5,2,"div",7,x().trackById,!0),e&2){let n=_();y(n)}}function q(e,o){e&1&&f(0,j,2,0,"p",6)(1,K,2,0),e&2&&h(o.length===0?0:1)}var R=class e{http=l(F);router=l(T);route=l(k);config=l(L);caseController=l(N);preferences=l(H);namespaceId=this.route.snapshot.params.namespaceId;cases$=this.caseController.listByParentCase(this.namespaceId);inputValue=v("");onInput(o){this.inputValue.set(o.target.value)}onKeydown(o){this.preferences.shouldSend(o)&&(o.preventDefault(),this.submit())}submit(){this.inputValue().trim()&&this.http.post(`${this.config.basePath}/api/cases`,{namespaceId:this.namespaceId,metadata:{}}).subscribe(n=>{this.inputValue.set(""),this.router.navigate(["/agentos",this.namespaceId,"cases",n.id??""])})}trackById(o,n){return n.id??""}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=g({type:e,selectors:[["agentos-case-list"]],decls:11,vars:5,consts:[[1,"case-list"],[1,"case-list__header"],[1,"case-list__items"],[1,"case-list__composer"],["placeholder","Start a new case\u2026","rows","3",1,"case-list__input",3,"input","keydown","value"],[1,"case-list__hint"],[1,"case-list__empty"],[1,"case-list__item"],[1,"case-list__item-id"],[1,"case-list__item-status"]],template:function(n,m){if(n&1&&(c(0,"div",0)(1,"header",1)(2,"h2"),a(3,"Cases"),d()(),c(4,"div",2),f(5,q,2,1),M(6,"async"),d(),c(7,"div",3)(8,"textarea",4),E("input",function(b){return m.onInput(b)})("keydown",function(b){return m.onKeydown(b)}),d(),c(9,"p",5),a(10),d()()()),n&2){let s;p(5),h((s=O(6,3,m.cases$))?5:-1,s),p(3),S("value",m.inputValue()),p(2),C(m.preferences.composerHint())}},dependencies:[w],styles:[".case-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;max-width:720px;margin:0 auto;padding:2rem;gap:1.5rem}.case-list__header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-text, #1d1d1f);letter-spacing:-.02em}.case-list__items[_ngcontent-%COMP%]{flex:1;overflow-y:auto}.case-list__empty[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);font-size:.9rem;margin:0}.case-list__composer[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.case-list__input[_ngcontent-%COMP%]{width:100%;resize:none;padding:.75rem 1rem;border-radius:12px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:var(--glass-bg, rgba(255, 255, 255, .72));-webkit-backdrop-filter:var(--glass-backdrop-blur, blur(20px));backdrop-filter:var(--glass-backdrop-blur, blur(20px));color:var(--color-text, #1d1d1f);font-size:.95rem;font-family:inherit;line-height:1.5;outline:none;box-sizing:border-box;transition:border-color .15s ease}.case-list__input[_ngcontent-%COMP%]:focus{border-color:var(--color-primary, #007aff)}.case-list__input[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary, #6e6e73)}.case-list__hint[_ngcontent-%COMP%]{margin:0;font-size:.75rem;color:var(--color-text-secondary, #6e6e73);opacity:.7}"]})};var V=class e{case;static toListItem(o){return{id:o.id??"",name:o.id??"\u2014",description:void 0}}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=g({type:e,selectors:[["agentos-case-item"]],inputs:{case:"case"},decls:0,vars:0,template:function(n,m){},encapsulation:2,changeDetection:0})};function J(e,o){if(e&1&&(i(0,"p",11),a(1," Last action: "),i(2,"strong"),a(3),r()()),e&2){let n=_();p(3),C(n.lastAction())}}var $=class e{lastAction=v(null);onSend(){this.lastAction.set("send")}onStop(){this.lastAction.set("stop")}onAttach(){this.lastAction.set("attach")}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=g({type:e,selectors:[["agentos-hello"]],decls:35,vars:2,consts:[[1,"hello-agentos"],[1,"card"],[1,"badge"],[1,"principles"],[1,"demo"],[1,"demo-label"],[1,"demo-buttons"],["icon","send","variant","primary","title","Send",3,"action"],["icon","stop","variant","danger","title","Stop",3,"action"],["icon","attach_file","variant","default","title","Attach",3,"action"],["icon","mic","variant","default","title","Record",3,"action","disabled"],[1,"demo-feedback"]],template:function(n,m){n&1&&(i(0,"div",0)(1,"div",1)(2,"div",2),a(3,"AgentOS UI"),r(),i(4,"h1"),a(5,"Hello AgentOS"),r(),i(6,"p"),a(7," This component lives in "),i(8,"code"),a(9,"libs/agentos-ui"),r(),a(10," \u2014 isolated from Coday internals, ready to be published as "),i(11,"code"),a(12,"@whoz-oss/agentos-ui"),r(),a(13,". "),r(),P(14,"agentos-backend-status"),i(15,"ul",3)(16,"li"),a(17,"\u2726 No imports from Coday app"),r(),i(18,"li"),a(19,"\u2726 CSS custom properties as host contract"),r(),i(20,"li"),a(21,"\u2726 Standalone Angular components"),r(),i(22,"li"),a(23,"\u2726 Signals-first reactive state"),r()(),i(24,"div",4)(25,"p",5),a(26,"ds-icon-button from "),i(27,"code"),a(28,"@whoz-oss/design-system"),r()(),i(29,"div",6)(30,"ds-icon-button",7),u("action",function(){return m.onSend()}),r(),i(31,"ds-icon-button",8),u("action",function(){return m.onStop()}),r(),i(32,"ds-icon-button",9),u("action",function(){return m.onAttach()}),r(),i(33,"ds-icon-button",10),u("action",function(){return m.onAttach()}),r()(),f(34,J,4,1,"p",11),r()()()),n&2&&(p(33),I("disabled",!0),p(),h(m.lastAction()?34:-1))},dependencies:[z,D],styles:['@charset "UTF-8";.hello-agentos[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem}.card[_ngcontent-%COMP%]{background:var(--glass-bg, rgba(255, 255, 255, .72));border:1px solid var(--glass-border, rgba(255, 255, 255, .18));box-shadow:var(--glass-shadow, 0 8px 32px 0 rgba(31, 38, 135, .15));backdrop-filter:var(--glass-backdrop-blur, blur(20px));-webkit-backdrop-filter:var(--glass-backdrop-blur, blur(20px));border-radius:20px;padding:3rem;max-width:480px;width:100%;text-align:center}.badge[_ngcontent-%COMP%]{display:inline-block;background:var(--color-primary, #007aff);color:var(--color-text-inverse, #ffffff);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:.25rem .75rem;border-radius:100px;margin-bottom:1.5rem}h1[_ngcontent-%COMP%]{color:var(--color-text, #1d1d1f);font-size:2rem;font-weight:700;margin:0 0 1rem;letter-spacing:-.02em}p[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);line-height:1.6;margin:0 0 1.5rem}p[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:var(--color-code-bg, rgba(142, 142, 147, .12));color:var(--color-code-text, #ff375f);padding:.125rem .375rem;border-radius:6px;font-size:.875em;border:1px solid var(--color-border, rgba(0, 0, 0, .1))}.principles[_ngcontent-%COMP%]{list-style:none;margin:0 0 1.5rem;padding:0;text-align:left;display:flex;flex-direction:column;gap:.5rem}.principles[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);font-size:.9rem;padding:.5rem .75rem;background:var(--color-bg-hover, rgba(0, 0, 0, .04));border-radius:8px;border:1px solid var(--color-border-light, rgba(40, 40, 40, .08))}.demo[_ngcontent-%COMP%]{border-top:1px solid var(--color-border-light, rgba(40, 40, 40, .08));padding-top:1.25rem}.demo[_ngcontent-%COMP%] .demo-label[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);font-size:.8rem;margin:0 0 .75rem}.demo[_ngcontent-%COMP%] .demo-label[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:var(--color-code-bg, rgba(142, 142, 147, .12));color:var(--color-code-text, #ff375f);padding:.125rem .375rem;border-radius:6px;font-size:.875em;border:1px solid var(--color-border, rgba(0, 0, 0, .1))}.demo[_ngcontent-%COMP%] .demo-buttons[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:center;justify-content:center;padding:.75rem;background:var(--color-bg-hover, rgba(0, 0, 0, .04));border-radius:12px;border:1px solid var(--color-border-light, rgba(40, 40, 40, .08))}.demo[_ngcontent-%COMP%] .demo-feedback[_ngcontent-%COMP%]{margin:.75rem 0 0;font-size:.85rem;color:var(--color-text-secondary, #6e6e73)}.demo[_ngcontent-%COMP%] .demo-feedback[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--color-primary, #007aff)}']})};export{he as AGENTOS_ROUTES,Y as AgentosShellComponent,W as AgentosThemeService,oe as AgentosUserPreferencesService,D as BackendStatusComponent,ie as CaseChatComponent,Z as CaseDrawerComponent,ae as CaseHomeComponent,V as CaseItemComponent,R as CaseListComponent,te as CaseShellComponent,ne as ENTER_KEY_BEHAVIORS,ee as HeaderComponent,$ as HelloAgentosComponent,re as LayoutComponent,ge as MarkdownPipe,me as NamespaceItemComponent,pe as NamespaceListComponent,Q as THEME_MODES,X as THEME_PORT,H as USER_PREFERENCES_PORT,se as UserAdminStateService,ce as UserFormComponent,de as UserItemComponent,le as UserListComponent,t as agentosReadyGuard};