@whoz-oss/coday-client 3.15.1 → 3.16.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 (78) hide show
  1. package/browser/{chunk-CysW_ro-.js → chunk-0OiZWE88.js} +1 -1
  2. package/browser/{chunk-BhfpLr7-.js → chunk-6gdeYlLc.js} +1 -1
  3. package/browser/{chunk-B5_o_qhk.js → chunk-7jUQT_3F.js} +1 -1
  4. package/browser/{chunk-K-fhwl_z.js → chunk-B0vRsgnD.js} +1 -1
  5. package/browser/{chunk-RxHlNJ_t.js → chunk-BEKR4Un_.js} +1 -1
  6. package/browser/chunk-BEUXx3TO.js +1 -0
  7. package/browser/{chunk-Bnic_hdt.js → chunk-BHZY3TvC.js} +5 -5
  8. package/browser/{chunk-C6RPhP4t.js → chunk-BJYyjaQ6.js} +1 -1
  9. package/browser/chunk-BJeLQooO.js +1 -0
  10. package/browser/{chunk-BIMT-HvS.js → chunk-BNS6Fgaw.js} +1 -1
  11. package/browser/{chunk-BVCQOGLR.js → chunk-BSSDDOqW.js} +2 -2
  12. package/browser/{chunk-Dd2dq7xg.js → chunk-BTS5TBK0.js} +1 -1
  13. package/browser/{chunk-B11WEBEl.js → chunk-BUJoEGsf.js} +1 -1
  14. package/browser/chunk-BY7uKZAo.js +9 -0
  15. package/browser/{chunk-5t7zJzqM.js → chunk-B_9LxHBv.js} +1 -1
  16. package/browser/{chunk-DTZ7N3wC.js → chunk-BdApeECy.js} +1 -1
  17. package/browser/{chunk-BhM0bmJW.js → chunk-BdpJ2ZCM.js} +1 -1
  18. package/browser/{chunk-CyUmCedx.js → chunk-Be1LOFvg.js} +1 -1
  19. package/browser/{chunk-CYMQSJz6.js → chunk-Bhq5earA.js} +1 -1
  20. package/browser/{chunk-C5wr-vqf.js → chunk-Bib1Seeu.js} +1 -1
  21. package/browser/{chunk-C7MXO6BQ.js → chunk-Bn3R3VC2.js} +5 -5
  22. package/browser/{chunk-DxxECdrg.js → chunk-C-aF2_1R.js} +2 -2
  23. package/browser/{chunk-Jv7RGmnK.js → chunk-CBNhmZDS.js} +1 -1
  24. package/browser/{chunk-DzicJow4.js → chunk-CFZbDe5T.js} +3 -3
  25. package/browser/{chunk-mHtuxvLs.js → chunk-CGMAzvSo.js} +1 -1
  26. package/browser/chunk-CPBcDx4G.js +1 -0
  27. package/browser/{chunk-DYUMiAN8.js → chunk-CTuHnJP4.js} +1 -1
  28. package/browser/{chunk-n1eKIk8H.js → chunk-CXLytVC3.js} +1 -1
  29. package/browser/{chunk-5LRyprMF.js → chunk-CYulIMKp.js} +1 -1
  30. package/browser/{chunk-CyxhAtE7.js → chunk-C_s4Z3Dk.js} +1 -1
  31. package/browser/{chunk-D_vvo2qx.js → chunk-CbK5Lcu9.js} +1 -1
  32. package/browser/{chunk-9CSRlx74.js → chunk-CgqDTJ5-.js} +1 -1
  33. package/browser/{chunk-Dg6QAZUw.js → chunk-Ci1jk71f.js} +2 -2
  34. package/browser/{chunk-Bh1p6jDj.js → chunk-CiWu4t_i.js} +1 -1
  35. package/browser/{chunk-CUmS2-ak.js → chunk-CjrWXBiR.js} +1 -1
  36. package/browser/{chunk-BqKdrvcS.js → chunk-Co81dkbz.js} +1 -1
  37. package/browser/{chunk-Ce03Ba0V.js → chunk-CtWMrBfw.js} +1 -1
  38. package/browser/{chunk-l0HLnBLv.js → chunk-CtkiOUdU.js} +6 -6
  39. package/browser/{chunk-BlWlE-Cq.js → chunk-CwaAd8kk.js} +1 -1
  40. package/browser/{chunk-Bgy3uCgK.js → chunk-DDnWPYAA.js} +1 -1
  41. package/browser/{chunk-CHrmSvQM.js → chunk-DOq0u21j.js} +1 -1
  42. package/browser/{chunk-DX2ZzvT5.js → chunk-DQLU3kYb.js} +1 -1
  43. package/browser/{chunk-fP29MqaN.js → chunk-Dcftf7UY.js} +1 -1
  44. package/browser/{chunk-BZMAEe_X.js → chunk-Dfujxxcr.js} +1 -1
  45. package/browser/chunk-DgrvmqY2.js +2 -0
  46. package/browser/{chunk-CebS4RAf.js → chunk-DoKoAMs6.js} +1 -1
  47. package/browser/{chunk-CNIfOUla.js → chunk-Dtu-PLbq.js} +1 -1
  48. package/browser/{chunk-C4U0w8cP.js → chunk-DzlrRiVM.js} +1 -1
  49. package/browser/{chunk-BfD1F12k.js → chunk-HjD5Rk4C.js} +3 -3
  50. package/browser/{chunk-CcLheUaL.js → chunk-IUvEtpfr.js} +1 -1
  51. package/browser/{chunk-DTIhOEG_.js → chunk-S8F5_Te_.js} +6 -6
  52. package/browser/{chunk-HSc9fwVS.js → chunk-SbH2L3h2.js} +1 -1
  53. package/browser/{chunk-BKlwFrFB.js → chunk-UzUd84Qf.js} +1 -1
  54. package/browser/chunk-YS-vAhPY.js +190 -0
  55. package/browser/{chunk-BUEM7g7F.js → chunk-YfG457Nc.js} +3 -3
  56. package/browser/{chunk-DG2FCeMu.js → chunk-axGY7UtD.js} +1 -1
  57. package/browser/chunk-fYErSEXN.js +1 -0
  58. package/browser/{chunk-BgHTiTG2.js → chunk-fhFxOLYS.js} +1 -1
  59. package/browser/{chunk-qARg6ese.js → chunk-gmPqDrDS.js} +1 -1
  60. package/browser/{chunk-DvzNS1Bs.js → chunk-iNIQR015.js} +1 -1
  61. package/browser/{chunk-Dj9y_5pr.js → chunk-izARvh_2.js} +1 -1
  62. package/browser/{chunk-Cf3l2UgA.js → chunk-jv0lz5Ah.js} +1 -1
  63. package/browser/{chunk-nWqZHM4o.js → chunk-kvCfAm7Z.js} +1 -1
  64. package/browser/{chunk-ZvcyZV3G.js → chunk-pH1k_bet.js} +1 -1
  65. package/browser/{chunk-DYE131qf.js → chunk-rwEyLSEP.js} +1 -1
  66. package/browser/{chunk-XgEfnfT0.js → chunk-swj7IkJA.js} +1 -1
  67. package/browser/chunk-tTmeIHGS.js +37 -0
  68. package/browser/index.html +1 -1
  69. package/browser/{main-6K2UFGD2.js → main-5PAOSHSM.js} +19 -19
  70. package/package.json +1 -1
  71. package/browser/chunk-BC0acSZF.js +0 -1
  72. package/browser/chunk-BLa2Gx7h.js +0 -190
  73. package/browser/chunk-B_2kLXvG.js +0 -1
  74. package/browser/chunk-C9tuHQmZ.js +0 -37
  75. package/browser/chunk-CnnGSYzi.js +0 -2
  76. package/browser/chunk-DEsz0fzs.js +0 -1
  77. package/browser/chunk-DXDohTwX.js +0 -1
  78. package/browser/chunk-uPxETzZs.js +0 -9
@@ -1 +1 @@
1
- import {c}from'./chunk-D_vvo2qx.js';import {g,ao as V,G,w as we$1,d8 as B,d9 as He,da as Ce$1,z as zi,db as xe$1,F,bR as Sd,y as yT,S as By,c as U,a7 as ya,X as br,a as z$1,b as P,h as Rw,I as Is,A as Ag,q as qC,m as pl,t as tC,J as JE,a5 as vl,v as nC,a9 as fC,n as bg,a3 as UI,o as iC,ac as yC,T as Tg,H as Hg,a6 as zI,x as sC,a8 as Zg,aa as If,ab as wf,bk as yh}from'./main-6K2UFGD2.js';import {o as z,k as _t,b as _e$1,n as ni,J as Jn,Q as Qn,e as ei,Y as Ye,f as fn,a as wt,A as At,Z as Zn,l as Xn,$ as $t,C as Cn,E as En}from'./chunk-C9tuHQmZ.js';var A=(n,t)=>t.value,se=(n,t)=>t.id;function pe(n,t){n&1&&(Is(0,"p",5),qC(1,"Loading\u2026"),pl());}function ue(n,t){n&1&&(Is(0,"span",12),qC(1," Name is required. "),pl());}function fe(n,t){if(n&1&&(Is(0,"p",40),qC(1),pl(),Is(2,"span",13),qC(3,"Agent Config cannot be changed after creation."),pl()),n&2){let e=yC(2);JE(),Zg(e.resolveAgentConfigName(e.agentConfigIdControl.value));}}function _e(n,t){if(n&1&&(Is(0,"a",41),qC(1,"Add an agent config"),pl(),qC(2," first. ")),n&2){let e=yC(3);Tg("href","/agentos/"+e.namespaceId+"/agent-configs/new",yh);}}function he(n,t){if(n&1&&(Is(0,"p",13),qC(1," No agent configs available in this scope yet. "),tC(2,_e,3,1),pl()),n&2){let e=yC(2);JE(2),nC(e.isPlatformMode?-1:2);}}function ge(n,t){if(n&1&&(Is(0,"option",23),qC(1),pl()),n&2){let e=t.$implicit;Tg("value",e.id),JE(),Zg(e.name);}}function Ce(n,t){n&1&&(Is(0,"span",12),qC(1,"Agent Config is required."),pl());}function ve(n,t){if(n&1&&(Is(0,"select",42)(1,"option",43),qC(2,"Select an agent config\u2026"),pl(),iC(3,ge,2,2,"option",23,se),pl(),UI(),tC(5,Ce,2,0,"span",12),Is(6,"span",13),qC(7,"Immutable after creation."),pl()),n&2){let e=yC(2);Tg("formControl",e.agentConfigIdControl),zI(),JE(3),sC(e.availableAgentConfigs()),JE(2),nC(e.agentConfigIdControl.invalid&&e.agentConfigIdControl.touched?5:-1);}}function ye(n,t){n&1&&(Is(0,"span",12),qC(1,"Opening message is required."),pl());}function be(n,t){if(n&1&&(Is(0,"option",23),qC(1),pl()),n&2){let e=t.$implicit;Tg("value",e.value),JE(),Zg(e.label);}}function xe(n,t){if(n&1){let e=fC();Is(0,"label",46)(1,"input",47),Ag("change",function(){let h=If(e).$implicit,P=yC(3);return wf(P.toggleDay(h.value))}),pl(),Is(2,"span",48),qC(3),pl()();}if(n&2){let e=t.$implicit,l=yC(3);JE(),Tg("checked",l.isDaySelected(e.value)),JE(2),Zg(e.label);}}function Se(n,t){if(n&1&&(Is(0,"div",8)(1,"span",44),qC(2,"Days of week"),pl(),Is(3,"div",45),iC(4,xe,4,2,"label",46,A),pl(),Is(6,"span",13),qC(7,"Leave empty to run every day of the week."),pl()()),n&2){let e=yC(2);JE(4),sC(e.dayOptions);}}function Pe(n,t){n&1&&(Is(0,"span",12),qC(1,"Valid time is required (HH:mm)."),pl());}function Ee(n,t){n&1&&(Is(0,"span",12),qC(1,"Start date is required."),pl());}function Me(n,t){if(n&1&&(Is(0,"option",23),qC(1),pl()),n&2){let e=t.$implicit;Tg("value",e.value),JE(),Zg(e.label);}}function Oe(n,t){n&1&&(Is(0,"span",12),qC(1,"End date is required."),pl());}function De(n,t){if(n&1&&(Is(0,"div",8)(1,"label",49),qC(2," End date "),Is(3,"span",10),qC(4,"*"),pl()(),bg(5,"input",50),UI(),tC(6,Oe,2,0,"span",12),pl()),n&2){let e=yC(2);JE(5),Hg("scheduled-prompt-form__input--invalid",e.form.hasError("endDateRequired")&&e.endDateControl.touched),Tg("formControl",e.endDateControl),zI(),JE(),nC(e.form.hasError("endDateRequired")&&e.endDateControl.touched?6:-1);}}function Te(n,t){n&1&&(Is(0,"span",12),qC(1,"Must be at least 1."),pl());}function we(n,t){if(n&1&&(Is(0,"div",8)(1,"label",51),qC(2," Number of occurrences "),Is(3,"span",10),qC(4,"*"),pl()(),bg(5,"input",52),UI(),tC(6,Te,2,0,"span",12),pl()),n&2){let e=yC(2);JE(5),Hg("scheduled-prompt-form__input--invalid",e.form.hasError("occurrenceCountRequired")&&e.occurrenceCountControl.touched),Tg("formControl",e.occurrenceCountControl),zI(),JE(),nC(e.form.hasError("occurrenceCountRequired")&&e.occurrenceCountControl.touched?6:-1);}}function ke(n,t){if(n&1&&(Is(0,"p",36),qC(1),pl()),n&2){let e=yC(2);JE(),Zg(e.errorMessage());}}function Fe(n,t){if(n&1){let e=fC();Is(0,"form",7),Ag("ngSubmit",function(){If(e);let h=yC();return wf(h.submit())}),Is(1,"div",8)(2,"label",9),qC(3," Name "),Is(4,"span",10),qC(5,"*"),pl()(),bg(6,"input",11),UI(),tC(7,ue,2,0,"span",12),Is(8,"span",13),qC(9,'Free-form name (e.g. "Weekly Report"). Cannot be changed after creation.'),pl()(),Is(10,"div",8)(11,"label",14),qC(12,"Description"),pl(),bg(13,"input",15),UI(),pl(),Is(14,"div",8)(15,"label",16),qC(16," Agent Config "),Is(17,"span",10),qC(18,"*"),pl()(),tC(19,fe,4,1)(20,he,3,1,"p",13)(21,ve,8,2),pl(),Is(22,"div",8)(23,"label",17),qC(24," Opening message "),Is(25,"span",10),qC(26,"*"),pl()(),bg(27,"textarea",18),UI(),tC(28,ye,2,0,"span",12),Is(29,"span",13),qC(30," The message sent to the agent when the scheduled prompt fires. "),pl()(),Is(31,"fieldset",19)(32,"legend",20),qC(33,"Recurrence"),pl(),Is(34,"div",8)(35,"label",21),qC(36," Unit "),Is(37,"span",10),qC(38,"*"),pl()(),Is(39,"select",22),iC(40,be,2,2,"option",23,A),pl(),UI(),pl(),tC(42,Se,8,0,"div",8),Is(43,"div",8)(44,"label",24),qC(45," Time (UTC) "),Is(46,"span",10),qC(47,"*"),pl()(),Is(48,"div",25),bg(49,"input",26),UI(),Is(50,"span",27),qC(51,"UTC"),pl()(),tC(52,Pe,2,0,"span",12),pl()(),Is(53,"fieldset",19)(54,"legend",20),qC(55,"Planning"),pl(),Is(56,"div",8)(57,"label",28),qC(58," Start date "),Is(59,"span",10),qC(60,"*"),pl()(),bg(61,"input",29),UI(),tC(62,Ee,2,0,"span",12),pl(),Is(63,"div",8)(64,"label",30),qC(65," Ends "),Is(66,"span",10),qC(67,"*"),pl()(),Is(68,"select",31),iC(69,Me,2,2,"option",23,A),pl(),UI(),pl(),tC(71,De,7,4,"div",8),tC(72,we,7,4,"div",8),pl(),Is(73,"div",8)(74,"label",32),bg(75,"input",33),UI(),Is(76,"span",34),qC(77,"Enabled"),pl()(),Is(78,"p",35),qC(79," When disabled, the scheduled prompt is saved but will not run on schedule. "),pl()(),tC(80,ke,2,1,"p",36),Is(81,"div",37)(82,"button",38),qC(83),pl(),Is(84,"button",39),Ag("click",function(){If(e);let h=yC();return wf(h.cancel())}),qC(85,"Cancel"),pl()()();}if(n&2){let e=yC();Tg("formGroup",e.form),JE(6),Hg("scheduled-prompt-form__input--invalid",e.nameControl.invalid&&e.nameControl.touched),Tg("formControl",e.nameControl),zI(),JE(),nC(e.nameControl.invalid&&e.nameControl.touched?7:-1),JE(6),Tg("formControl",e.descriptionControl),zI(),JE(6),nC(e.isEditMode()?19:e.availableAgentConfigs().length===0?20:21),JE(8),Hg("scheduled-prompt-form__textarea--invalid",e.promptContentControl.invalid&&e.promptContentControl.touched),Tg("formControl",e.promptContentControl),zI(),JE(),nC(e.promptContentControl.invalid&&e.promptContentControl.touched?28:-1),JE(11),Tg("formControl",e.unitControl),zI(),JE(),sC(e.schedulerUnits),JE(2),nC(e.showDayFilter()?42:-1),JE(7),Tg("formControl",e.timeUtcControl),zI(),JE(3),nC(e.timeUtcControl.invalid&&e.timeUtcControl.touched?52:-1),JE(9),Hg("scheduled-prompt-form__input--invalid",e.startDateControl.invalid&&e.startDateControl.touched),Tg("formControl",e.startDateControl),zI(),JE(),nC(e.startDateControl.invalid&&e.startDateControl.touched?62:-1),JE(6),Tg("formControl",e.endTypeControl),zI(),JE(),sC(e.endTypes),JE(2),nC(e.showEndDate()?71:-1),JE(),nC(e.showOccurrenceCount()?72:-1),JE(3),Tg("formControl",e.enabledControl),zI(),JE(5),nC(e.errorMessage()?80:-1),JE(2),Tg("disabled",e.form.invalid||e.isSubmitting()),JE(),vl(" ",e.isEditMode()?"Save changes":"Create scheduled prompt"," ");}}var me=class n{route=g(V);router=g(G);destroyRef=g(we$1);state=g(c);agentConfigController=g(B);namespaceId=this.route.snapshot.params.namespaceId;isPlatformMode=!this.namespaceId;form=new z({name:new _t("",{nonNullable:true,validators:[_e$1.required]}),description:new _t(null),agentConfigId:new _t("",{nonNullable:true,validators:[_e$1.required]}),promptContent:new _t("",{nonNullable:true,validators:[_e$1.required]}),unit:new _t(Ce$1.WEEK,{nonNullable:true,validators:[_e$1.required]}),days:new _t([],{nonNullable:true}),timeUtc:new _t("09:00",{nonNullable:true,validators:[_e$1.required,_e$1.pattern(/^([01]\d|2[0-3]):[0-5]\d$/)]}),startDate:new _t("",{nonNullable:true,validators:[_e$1.required]}),endType:new _t(He.NEVER,{nonNullable:true,validators:[_e$1.required]}),endDate:new _t(null),occurrenceCount:new _t(null),enabled:new _t(true,{nonNullable:true})},{validators:[Ne,Ie]});get nameControl(){return this.form.controls.name}get descriptionControl(){return this.form.controls.description}get agentConfigIdControl(){return this.form.controls.agentConfigId}get promptContentControl(){return this.form.controls.promptContent}get unitControl(){return this.form.controls.unit}get daysControl(){return this.form.controls.days}get timeUtcControl(){return this.form.controls.timeUtc}get startDateControl(){return this.form.controls.startDate}get endTypeControl(){return this.form.controls.endType}get endDateControl(){return this.form.controls.endDate}get occurrenceCountControl(){return this.form.controls.occurrenceCount}get enabledControl(){return this.form.controls.enabled}isEditMode=zi(false);isSubmitting=zi(false);isLoading=zi(false);errorMessage=zi(null);SchedulerUnit=Ce$1;SchedulerEndType=He;schedulerUnits=[{value:Ce$1.WEEK,label:"Week(s)"},{value:Ce$1.MONTH,label:"Month(s)"}];endTypes=[{value:He.NEVER,label:"Never"},{value:He.ON_DATE,label:"On date"},{value:He.OCCURRENCES,label:"After N occurrences"}];dayOptions=Object.entries(xe$1).map(([t,e])=>({value:t,label:e}));unitSignal=F(this.unitControl.valueChanges.pipe(Sd(this.unitControl.value)));endTypeSignal=F(this.endTypeControl.valueChanges.pipe(Sd(this.endTypeControl.value)));showDayFilter=yT(()=>this.unitSignal()===Ce$1.WEEK);showEndDate=yT(()=>this.endTypeSignal()===He.ON_DATE);showOccurrenceCount=yT(()=>this.endTypeSignal()===He.OCCURRENCES);agentConfigs=zi([]);availableAgentConfigs=this.agentConfigs.asReadonly();existingPrompt=null;ngOnInit(){this.startDateControl.setValue(Ve());let t=this.route.snapshot.paramMap.get("scheduledPromptId");t?(this.isEditMode.set(true),this.loadPromptAndResources(t)):this.loadResources();}loadPromptAndResources(t){this.isLoading.set(true),By({prompt:this.state.getById(t),agentConfigs:this.agentConfigs$()}).pipe(U(this.destroyRef)).subscribe({next:({prompt:e,agentConfigs:l})=>{this.existingPrompt=e,this.agentConfigs.set(l),this.hydrateForm(e),this.isLoading.set(false);},error:()=>{this.isLoading.set(false),this.navigateBack();}});}loadResources(){this.agentConfigs$().pipe(U(this.destroyRef)).subscribe(t=>this.agentConfigs.set(t));}agentConfigs$(){return (this.isPlatformMode?this.agentConfigController.listPlatformAgentsAgentConfig():this.agentConfigController.listByParentAgentConfig(this.namespaceId)).pipe(ya(()=>br([])))}hydrateForm(t){this.nameControl.setValue(t.name),this.descriptionControl.setValue(t.description??null),this.agentConfigIdControl.setValue(t.agentConfigId),this.promptContentControl.setValue(t.promptContent),this.unitControl.setValue(t.recurrence.unit),this.daysControl.setValue(t.recurrence.days??[]),this.timeUtcControl.setValue(t.recurrence.timeUtc),this.startDateControl.setValue(t.planning.startDate),this.endTypeControl.setValue(t.planning.endType),this.endDateControl.setValue(t.planning.endDate??null),this.occurrenceCountControl.setValue(t.planning.maxOccurrenceCount??null),this.enabledControl.setValue(t.enabled);}isDaySelected(t){return this.daysControl.value.includes(t)}toggleDay(t){let e=this.daysControl.value,l=e.includes(t)?e.filter(h=>h!==t):[...e,t];this.daysControl.setValue(l);}resolveAgentConfigName(t){return this.agentConfigs().find(e=>e.id===t)?.name??t}submit(){if(this.form.invalid||this.isSubmitting())return;this.isSubmitting.set(true),this.errorMessage.set(null);let t=this.isEditMode()&&!!this.existingPrompt?.id,e=this.endTypeControl.value,l=z$1(P({},this.existingPrompt??{}),{namespaceId:this.namespaceId??null,name:this.nameControl.value.trim(),description:this.descriptionControl.value?.trim()||void 0,agentConfigId:t?this.existingPrompt.agentConfigId:this.agentConfigIdControl.value,promptContent:this.promptContentControl.value.trim(),recurrence:{unit:this.unitControl.value,days:this.daysControl.value,timeUtc:this.timeUtcControl.value},planning:{startDate:this.startDateControl.value,endType:e,endDate:e===He.ON_DATE?this.endDateControl.value??void 0:void 0,maxOccurrenceCount:e===He.OCCURRENCES?this.occurrenceCountControl.value??void 0:void 0},enabled:this.enabledControl.value});(t?this.state.update(this.existingPrompt.id,l):this.state.create(l)).pipe(U(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:P=>{this.isSubmitting.set(false),P.status===409?this.errorMessage.set(`A scheduled prompt named "${l.name}" already exists in this scope.`):P.status===400?this.errorMessage.set(P.error?.message??"Invalid scheduled prompt data."):this.errorMessage.set("An unexpected error occurred. Please try again.");}});}cancel(){this.navigateBack();}navigateBack(){this.isPlatformMode?this.router.navigate(["/agentos","admin","scheduled-prompts"]):this.router.navigate(["/agentos",this.namespaceId,"scheduled-prompts"]);}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=Rw({type:n,selectors:[["agentos-scheduled-prompt-form"]],decls:10,vars:3,consts:[[1,"scheduled-prompt-form"],[1,"scheduled-prompt-form__header"],["type","button","title","Back to scheduled prompts",1,"scheduled-prompt-form__back",3,"click"],[1,"scheduled-prompt-form__back-icon"],[1,"scheduled-prompt-form__title"],[1,"scheduled-prompt-form__loading"],[1,"scheduled-prompt-form__form",3,"formGroup"],[1,"scheduled-prompt-form__form",3,"ngSubmit","formGroup"],[1,"scheduled-prompt-form__field"],["for","sp-name",1,"scheduled-prompt-form__label"],["aria-hidden","true"],["id","sp-name","type","text","placeholder","e.g. Weekly Report","autocomplete","off",1,"scheduled-prompt-form__input",3,"formControl"],[1,"scheduled-prompt-form__field-error"],[1,"scheduled-prompt-form__field-hint"],["for","sp-description",1,"scheduled-prompt-form__label"],["id","sp-description","type","text","placeholder","Optional \u2014 short description","autocomplete","off",1,"scheduled-prompt-form__input",3,"formControl"],["for","sp-agent-config",1,"scheduled-prompt-form__label"],["for","sp-prompt-content",1,"scheduled-prompt-form__label"],["id","sp-prompt-content","rows","6","placeholder","Enter the message sent to the agent when the scheduled prompt fires\u2026",1,"scheduled-prompt-form__textarea",3,"formControl"],[1,"scheduled-prompt-form__fieldset"],[1,"scheduled-prompt-form__legend"],["for","sp-unit",1,"scheduled-prompt-form__label"],["id","sp-unit",1,"scheduled-prompt-form__select",3,"formControl"],[3,"value"],["for","sp-time",1,"scheduled-prompt-form__label"],[1,"scheduled-prompt-form__time-wrapper"],["id","sp-time","type","time",1,"scheduled-prompt-form__input","scheduled-prompt-form__input--time",3,"formControl"],[1,"scheduled-prompt-form__utc-badge"],["for","sp-start-date",1,"scheduled-prompt-form__label"],["id","sp-start-date","type","date",1,"scheduled-prompt-form__input",3,"formControl"],["for","sp-end-type",1,"scheduled-prompt-form__label"],["id","sp-end-type",1,"scheduled-prompt-form__select",3,"formControl"],[1,"scheduled-prompt-form__toggle-label"],["type","checkbox",1,"scheduled-prompt-form__toggle-checkbox",3,"formControl"],[1,"scheduled-prompt-form__toggle-text"],[1,"scheduled-prompt-form__toggle-hint"],[1,"scheduled-prompt-form__error"],[1,"scheduled-prompt-form__actions"],["type","submit",1,"scheduled-prompt-form__btn","scheduled-prompt-form__btn--primary",3,"disabled"],["type","button",1,"scheduled-prompt-form__btn",3,"click"],[1,"scheduled-prompt-form__readonly-value"],[3,"href"],["id","sp-agent-config",1,"scheduled-prompt-form__select",3,"formControl"],["value","","disabled",""],[1,"scheduled-prompt-form__label"],[1,"scheduled-prompt-form__day-grid"],[1,"scheduled-prompt-form__day-label"],["type","checkbox",1,"scheduled-prompt-form__day-checkbox",3,"change","checked"],[1,"scheduled-prompt-form__day-text"],["for","sp-end-date",1,"scheduled-prompt-form__label"],["id","sp-end-date","type","date",1,"scheduled-prompt-form__input",3,"formControl"],["for","sp-occurrence-count",1,"scheduled-prompt-form__label"],["id","sp-occurrence-count","type","number","min","1",1,"scheduled-prompt-form__input","scheduled-prompt-form__input--number",3,"formControl"]],template:function(e,l){e&1&&(Is(0,"div",0)(1,"header",1)(2,"button",2),Ag("click",function(){return l.cancel()}),Is(3,"span",3),qC(4,"\u2190"),pl(),qC(5),pl(),Is(6,"h1",4),qC(7),pl()(),tC(8,pe,2,0,"p",5)(9,Fe,86,26,"form",6),pl()),e&2&&(JE(5),vl(" ",l.isPlatformMode?"Platform Scheduled Prompts":"Scheduled Prompts"," "),JE(2),vl(" ",l.isEditMode()?"Edit scheduled prompt":"New scheduled prompt"," "),JE(),nC(l.isLoading()?8:9));},dependencies:[ni,Jn,Qn,ei,Ye,fn,wt,At,Zn,Xn,$t,Cn,En],styles:[".scheduled-prompt-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.scheduled-prompt-form__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.scheduled-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}.scheduled-prompt-form__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.scheduled-prompt-form__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.scheduled-prompt-form__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-text, #1d1d1f);letter-spacing:-.02em}.scheduled-prompt-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);font-size:.9rem;margin:0}.scheduled-prompt-form__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.25rem}.scheduled-prompt-form__field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.scheduled-prompt-form__row[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.scheduled-prompt-form__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text, #1d1d1f)}.scheduled-prompt-form__input[_ngcontent-%COMP%], .scheduled-prompt-form__select[_ngcontent-%COMP%], .scheduled-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}.scheduled-prompt-form__input[_ngcontent-%COMP%]:focus, .scheduled-prompt-form__select[_ngcontent-%COMP%]:focus, .scheduled-prompt-form__textarea[_ngcontent-%COMP%]:focus{border-color:var(--color-primary, #007aff)}.scheduled-prompt-form__input[_ngcontent-%COMP%]::placeholder, .scheduled-prompt-form__select[_ngcontent-%COMP%]::placeholder, .scheduled-prompt-form__textarea[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary, #6e6e73)}.scheduled-prompt-form__select[_ngcontent-%COMP%]{cursor:pointer;appearance:auto}.scheduled-prompt-form__textarea[_ngcontent-%COMP%]{resize:vertical;min-height:100px;line-height:1.5}.scheduled-prompt-form__input--time[_ngcontent-%COMP%]{flex:1;min-width:0}.scheduled-prompt-form__input--number[_ngcontent-%COMP%]{max-width:120px}.scheduled-prompt-form__time-wrapper[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem}.scheduled-prompt-form__utc-badge[_ngcontent-%COMP%]{flex-shrink:0;font-size:.75rem;font-weight:600;font-family:monospace;color:var(--color-text-secondary, #6e6e73);background:var(--color-surface, rgba(0, 0, 0, .05));padding:.25rem .5rem;border-radius:4px;text-transform:uppercase;letter-spacing:.06em}.scheduled-prompt-form__fieldset[_ngcontent-%COMP%]{border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:8px;padding:1rem 1.25rem 1.25rem;margin:0;display:flex;flex-direction:column;gap:1.25rem}.scheduled-prompt-form__legend[_ngcontent-%COMP%]{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary, #6e6e73);padding:0 .375rem}.scheduled-prompt-form__day-grid[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.5rem}.scheduled-prompt-form__day-label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;cursor:pointer;-webkit-user-select:none;user-select:none}.scheduled-prompt-form__day-checkbox[_ngcontent-%COMP%]{width:1rem;height:1rem;flex-shrink:0;accent-color:var(--color-primary, #007aff);cursor:pointer}.scheduled-prompt-form__day-text[_ngcontent-%COMP%]{font-size:.875rem;color:var(--color-text, #1d1d1f)}.scheduled-prompt-form__hint[_ngcontent-%COMP%]{margin:0;font-size:.875rem;color:var(--color-text-secondary, #6e6e73)}.scheduled-prompt-form__hint[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:var(--color-primary, #007aff);text-decoration:none}.scheduled-prompt-form__hint[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{text-decoration:underline}.scheduled-prompt-form__error[_ngcontent-%COMP%]{font-size:.8rem;color:var(--color-error, #ff3b30);margin:0}.scheduled-prompt-form__field-error[_ngcontent-%COMP%]{font-size:.8rem;color:var(--color-error, #ff3b30)}.scheduled-prompt-form__field-hint[_ngcontent-%COMP%]{font-size:.8rem;color:var(--color-text-secondary, #6e6e73);line-height:1.4}.scheduled-prompt-form__field-hint[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:var(--color-primary, #007aff);text-decoration:none}.scheduled-prompt-form__field-hint[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{text-decoration:underline}.scheduled-prompt-form__readonly-value[_ngcontent-%COMP%]{margin:0;font-size:.9375rem;color:var(--color-text, #1d1d1f);padding:.625rem .875rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .08));background:var(--color-surface, rgba(0, 0, 0, .03))}.scheduled-prompt-form__input--invalid[_ngcontent-%COMP%], .scheduled-prompt-form__textarea--invalid[_ngcontent-%COMP%]{border-color:var(--color-error, #ff3b30)}.scheduled-prompt-form__toggle-label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.scheduled-prompt-form__toggle-checkbox[_ngcontent-%COMP%]{width:1rem;height:1rem;flex-shrink:0;accent-color:var(--color-primary, #007aff);cursor:pointer}.scheduled-prompt-form__toggle-text[_ngcontent-%COMP%]{font-size:.9rem;font-weight:500;color:var(--color-text, #1d1d1f)}.scheduled-prompt-form__toggle-hint[_ngcontent-%COMP%]{margin:.25rem 0 0 1.5rem;font-size:.8rem;color:var(--color-text-secondary, #6e6e73);line-height:1.4}.scheduled-prompt-form__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.scheduled-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}.scheduled-prompt-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-surface-hover, rgba(0, 0, 0, .04))}.scheduled-prompt-form__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.scheduled-prompt-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-primary, #007aff);border-color:var(--color-primary, #007aff);color:#fff}.scheduled-prompt-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-primary-hover, #0051d5);border-color:var(--color-primary-hover, #0051d5)}"]})};function Ne(n){let t=n.get("endType")?.value,e=n.get("endDate")?.value;return t===He.ON_DATE&&!e?{endDateRequired:true}:null}function Ie(n){let t=n.get("endType")?.value,e=n.get("occurrenceCount")?.value;return t===He.OCCURRENCES&&(e==null||e<1)?{occurrenceCountRequired:true}:null}function Ve(){let n=new Date,t=n.getFullYear(),e=String(n.getMonth()+1).padStart(2,"0"),l=String(n.getDate()).padStart(2,"0");return `${t}-${e}-${l}`}export{me as ScheduledPromptFormComponent};
1
+ import {c}from'./chunk-CbK5Lcu9.js';import {g,ao as V,G,w as we$1,d8 as B,d9 as He,da as Ce$1,a as Gi,db as xe$1,F,bR as Sd,E as ET,W as Vy,c as U,a7 as va,X as br,z as z$1,b as P,h as Fw,m as ws,o as Rg,Q as QC,n as hl,q as oC,t as nI,a5 as Dl,x as iC,a9 as gC,S as Sg,a3 as GI,r as cC,ac as EC,v as bg,A as Ug,a6 as qI,y as uC,a8 as Yg,aa as wf,ab as Cf,bk as vh}from'./main-5PAOSHSM.js';import {o as z,k as _t,b as _e$1,n as ni,J as Jn,Q as Qn,e as ei,Y as Ye,f as fn,a as wt,A as At,Z as Zn,l as Xn,$ as $t,C as Cn,E as En}from'./chunk-tTmeIHGS.js';var A=(n,t)=>t.value,se=(n,t)=>t.id;function pe(n,t){n&1&&(ws(0,"p",5),QC(1,"Loading\u2026"),hl());}function ue(n,t){n&1&&(ws(0,"span",12),QC(1," Name is required. "),hl());}function fe(n,t){if(n&1&&(ws(0,"p",40),QC(1),hl(),ws(2,"span",13),QC(3,"Agent Config cannot be changed after creation."),hl()),n&2){let e=EC(2);nI(),Yg(e.resolveAgentConfigName(e.agentConfigIdControl.value));}}function _e(n,t){if(n&1&&(ws(0,"a",41),QC(1,"Add an agent config"),hl(),QC(2," first. ")),n&2){let e=EC(3);bg("href","/agentos/"+e.namespaceId+"/agent-configs/new",vh);}}function he(n,t){if(n&1&&(ws(0,"p",13),QC(1," No agent configs available in this scope yet. "),oC(2,_e,3,1),hl()),n&2){let e=EC(2);nI(2),iC(e.isPlatformMode?-1:2);}}function ge(n,t){if(n&1&&(ws(0,"option",23),QC(1),hl()),n&2){let e=t.$implicit;bg("value",e.id),nI(),Yg(e.name);}}function Ce(n,t){n&1&&(ws(0,"span",12),QC(1,"Agent Config is required."),hl());}function ve(n,t){if(n&1&&(ws(0,"select",42)(1,"option",43),QC(2,"Select an agent config\u2026"),hl(),cC(3,ge,2,2,"option",23,se),hl(),GI(),oC(5,Ce,2,0,"span",12),ws(6,"span",13),QC(7,"Immutable after creation."),hl()),n&2){let e=EC(2);bg("formControl",e.agentConfigIdControl),qI(),nI(3),uC(e.availableAgentConfigs()),nI(2),iC(e.agentConfigIdControl.invalid&&e.agentConfigIdControl.touched?5:-1);}}function ye(n,t){n&1&&(ws(0,"span",12),QC(1,"Opening message is required."),hl());}function be(n,t){if(n&1&&(ws(0,"option",23),QC(1),hl()),n&2){let e=t.$implicit;bg("value",e.value),nI(),Yg(e.label);}}function xe(n,t){if(n&1){let e=gC();ws(0,"label",46)(1,"input",47),Rg("change",function(){let h=wf(e).$implicit,P=EC(3);return Cf(P.toggleDay(h.value))}),hl(),ws(2,"span",48),QC(3),hl()();}if(n&2){let e=t.$implicit,l=EC(3);nI(),bg("checked",l.isDaySelected(e.value)),nI(2),Yg(e.label);}}function Se(n,t){if(n&1&&(ws(0,"div",8)(1,"span",44),QC(2,"Days of week"),hl(),ws(3,"div",45),cC(4,xe,4,2,"label",46,A),hl(),ws(6,"span",13),QC(7,"Leave empty to run every day of the week."),hl()()),n&2){let e=EC(2);nI(4),uC(e.dayOptions);}}function Pe(n,t){n&1&&(ws(0,"span",12),QC(1,"Valid time is required (HH:mm)."),hl());}function Ee(n,t){n&1&&(ws(0,"span",12),QC(1,"Start date is required."),hl());}function Me(n,t){if(n&1&&(ws(0,"option",23),QC(1),hl()),n&2){let e=t.$implicit;bg("value",e.value),nI(),Yg(e.label);}}function Oe(n,t){n&1&&(ws(0,"span",12),QC(1,"End date is required."),hl());}function De(n,t){if(n&1&&(ws(0,"div",8)(1,"label",49),QC(2," End date "),ws(3,"span",10),QC(4,"*"),hl()(),Sg(5,"input",50),GI(),oC(6,Oe,2,0,"span",12),hl()),n&2){let e=EC(2);nI(5),Ug("scheduled-prompt-form__input--invalid",e.form.hasError("endDateRequired")&&e.endDateControl.touched),bg("formControl",e.endDateControl),qI(),nI(),iC(e.form.hasError("endDateRequired")&&e.endDateControl.touched?6:-1);}}function Te(n,t){n&1&&(ws(0,"span",12),QC(1,"Must be at least 1."),hl());}function we(n,t){if(n&1&&(ws(0,"div",8)(1,"label",51),QC(2," Number of occurrences "),ws(3,"span",10),QC(4,"*"),hl()(),Sg(5,"input",52),GI(),oC(6,Te,2,0,"span",12),hl()),n&2){let e=EC(2);nI(5),Ug("scheduled-prompt-form__input--invalid",e.form.hasError("occurrenceCountRequired")&&e.occurrenceCountControl.touched),bg("formControl",e.occurrenceCountControl),qI(),nI(),iC(e.form.hasError("occurrenceCountRequired")&&e.occurrenceCountControl.touched?6:-1);}}function ke(n,t){if(n&1&&(ws(0,"p",36),QC(1),hl()),n&2){let e=EC(2);nI(),Yg(e.errorMessage());}}function Fe(n,t){if(n&1){let e=gC();ws(0,"form",7),Rg("ngSubmit",function(){wf(e);let h=EC();return Cf(h.submit())}),ws(1,"div",8)(2,"label",9),QC(3," Name "),ws(4,"span",10),QC(5,"*"),hl()(),Sg(6,"input",11),GI(),oC(7,ue,2,0,"span",12),ws(8,"span",13),QC(9,'Free-form name (e.g. "Weekly Report"). Cannot be changed after creation.'),hl()(),ws(10,"div",8)(11,"label",14),QC(12,"Description"),hl(),Sg(13,"input",15),GI(),hl(),ws(14,"div",8)(15,"label",16),QC(16," Agent Config "),ws(17,"span",10),QC(18,"*"),hl()(),oC(19,fe,4,1)(20,he,3,1,"p",13)(21,ve,8,2),hl(),ws(22,"div",8)(23,"label",17),QC(24," Opening message "),ws(25,"span",10),QC(26,"*"),hl()(),Sg(27,"textarea",18),GI(),oC(28,ye,2,0,"span",12),ws(29,"span",13),QC(30," The message sent to the agent when the scheduled prompt fires. "),hl()(),ws(31,"fieldset",19)(32,"legend",20),QC(33,"Recurrence"),hl(),ws(34,"div",8)(35,"label",21),QC(36," Unit "),ws(37,"span",10),QC(38,"*"),hl()(),ws(39,"select",22),cC(40,be,2,2,"option",23,A),hl(),GI(),hl(),oC(42,Se,8,0,"div",8),ws(43,"div",8)(44,"label",24),QC(45," Time (UTC) "),ws(46,"span",10),QC(47,"*"),hl()(),ws(48,"div",25),Sg(49,"input",26),GI(),ws(50,"span",27),QC(51,"UTC"),hl()(),oC(52,Pe,2,0,"span",12),hl()(),ws(53,"fieldset",19)(54,"legend",20),QC(55,"Planning"),hl(),ws(56,"div",8)(57,"label",28),QC(58," Start date "),ws(59,"span",10),QC(60,"*"),hl()(),Sg(61,"input",29),GI(),oC(62,Ee,2,0,"span",12),hl(),ws(63,"div",8)(64,"label",30),QC(65," Ends "),ws(66,"span",10),QC(67,"*"),hl()(),ws(68,"select",31),cC(69,Me,2,2,"option",23,A),hl(),GI(),hl(),oC(71,De,7,4,"div",8),oC(72,we,7,4,"div",8),hl(),ws(73,"div",8)(74,"label",32),Sg(75,"input",33),GI(),ws(76,"span",34),QC(77,"Enabled"),hl()(),ws(78,"p",35),QC(79," When disabled, the scheduled prompt is saved but will not run on schedule. "),hl()(),oC(80,ke,2,1,"p",36),ws(81,"div",37)(82,"button",38),QC(83),hl(),ws(84,"button",39),Rg("click",function(){wf(e);let h=EC();return Cf(h.cancel())}),QC(85,"Cancel"),hl()()();}if(n&2){let e=EC();bg("formGroup",e.form),nI(6),Ug("scheduled-prompt-form__input--invalid",e.nameControl.invalid&&e.nameControl.touched),bg("formControl",e.nameControl),qI(),nI(),iC(e.nameControl.invalid&&e.nameControl.touched?7:-1),nI(6),bg("formControl",e.descriptionControl),qI(),nI(6),iC(e.isEditMode()?19:e.availableAgentConfigs().length===0?20:21),nI(8),Ug("scheduled-prompt-form__textarea--invalid",e.promptContentControl.invalid&&e.promptContentControl.touched),bg("formControl",e.promptContentControl),qI(),nI(),iC(e.promptContentControl.invalid&&e.promptContentControl.touched?28:-1),nI(11),bg("formControl",e.unitControl),qI(),nI(),uC(e.schedulerUnits),nI(2),iC(e.showDayFilter()?42:-1),nI(7),bg("formControl",e.timeUtcControl),qI(),nI(3),iC(e.timeUtcControl.invalid&&e.timeUtcControl.touched?52:-1),nI(9),Ug("scheduled-prompt-form__input--invalid",e.startDateControl.invalid&&e.startDateControl.touched),bg("formControl",e.startDateControl),qI(),nI(),iC(e.startDateControl.invalid&&e.startDateControl.touched?62:-1),nI(6),bg("formControl",e.endTypeControl),qI(),nI(),uC(e.endTypes),nI(2),iC(e.showEndDate()?71:-1),nI(),iC(e.showOccurrenceCount()?72:-1),nI(3),bg("formControl",e.enabledControl),qI(),nI(5),iC(e.errorMessage()?80:-1),nI(2),bg("disabled",e.form.invalid||e.isSubmitting()),nI(),Dl(" ",e.isEditMode()?"Save changes":"Create scheduled prompt"," ");}}var me=class n{route=g(V);router=g(G);destroyRef=g(we$1);state=g(c);agentConfigController=g(B);namespaceId=this.route.snapshot.params.namespaceId;isPlatformMode=!this.namespaceId;form=new z({name:new _t("",{nonNullable:true,validators:[_e$1.required]}),description:new _t(null),agentConfigId:new _t("",{nonNullable:true,validators:[_e$1.required]}),promptContent:new _t("",{nonNullable:true,validators:[_e$1.required]}),unit:new _t(Ce$1.WEEK,{nonNullable:true,validators:[_e$1.required]}),days:new _t([],{nonNullable:true}),timeUtc:new _t("09:00",{nonNullable:true,validators:[_e$1.required,_e$1.pattern(/^([01]\d|2[0-3]):[0-5]\d$/)]}),startDate:new _t("",{nonNullable:true,validators:[_e$1.required]}),endType:new _t(He.NEVER,{nonNullable:true,validators:[_e$1.required]}),endDate:new _t(null),occurrenceCount:new _t(null),enabled:new _t(true,{nonNullable:true})},{validators:[Ne,Ie]});get nameControl(){return this.form.controls.name}get descriptionControl(){return this.form.controls.description}get agentConfigIdControl(){return this.form.controls.agentConfigId}get promptContentControl(){return this.form.controls.promptContent}get unitControl(){return this.form.controls.unit}get daysControl(){return this.form.controls.days}get timeUtcControl(){return this.form.controls.timeUtc}get startDateControl(){return this.form.controls.startDate}get endTypeControl(){return this.form.controls.endType}get endDateControl(){return this.form.controls.endDate}get occurrenceCountControl(){return this.form.controls.occurrenceCount}get enabledControl(){return this.form.controls.enabled}isEditMode=Gi(false);isSubmitting=Gi(false);isLoading=Gi(false);errorMessage=Gi(null);SchedulerUnit=Ce$1;SchedulerEndType=He;schedulerUnits=[{value:Ce$1.WEEK,label:"Week(s)"},{value:Ce$1.MONTH,label:"Month(s)"}];endTypes=[{value:He.NEVER,label:"Never"},{value:He.ON_DATE,label:"On date"},{value:He.OCCURRENCES,label:"After N occurrences"}];dayOptions=Object.entries(xe$1).map(([t,e])=>({value:t,label:e}));unitSignal=F(this.unitControl.valueChanges.pipe(Sd(this.unitControl.value)));endTypeSignal=F(this.endTypeControl.valueChanges.pipe(Sd(this.endTypeControl.value)));showDayFilter=ET(()=>this.unitSignal()===Ce$1.WEEK);showEndDate=ET(()=>this.endTypeSignal()===He.ON_DATE);showOccurrenceCount=ET(()=>this.endTypeSignal()===He.OCCURRENCES);agentConfigs=Gi([]);availableAgentConfigs=this.agentConfigs.asReadonly();existingPrompt=null;ngOnInit(){this.startDateControl.setValue(Ve());let t=this.route.snapshot.paramMap.get("scheduledPromptId");t?(this.isEditMode.set(true),this.loadPromptAndResources(t)):this.loadResources();}loadPromptAndResources(t){this.isLoading.set(true),Vy({prompt:this.state.getById(t),agentConfigs:this.agentConfigs$()}).pipe(U(this.destroyRef)).subscribe({next:({prompt:e,agentConfigs:l})=>{this.existingPrompt=e,this.agentConfigs.set(l),this.hydrateForm(e),this.isLoading.set(false);},error:()=>{this.isLoading.set(false),this.navigateBack();}});}loadResources(){this.agentConfigs$().pipe(U(this.destroyRef)).subscribe(t=>this.agentConfigs.set(t));}agentConfigs$(){return (this.isPlatformMode?this.agentConfigController.listPlatformAgentsAgentConfig():this.agentConfigController.listByParentAgentConfig(this.namespaceId)).pipe(va(()=>br([])))}hydrateForm(t){this.nameControl.setValue(t.name),this.descriptionControl.setValue(t.description??null),this.agentConfigIdControl.setValue(t.agentConfigId),this.promptContentControl.setValue(t.promptContent),this.unitControl.setValue(t.recurrence.unit),this.daysControl.setValue(t.recurrence.days??[]),this.timeUtcControl.setValue(t.recurrence.timeUtc),this.startDateControl.setValue(t.planning.startDate),this.endTypeControl.setValue(t.planning.endType),this.endDateControl.setValue(t.planning.endDate??null),this.occurrenceCountControl.setValue(t.planning.maxOccurrenceCount??null),this.enabledControl.setValue(t.enabled);}isDaySelected(t){return this.daysControl.value.includes(t)}toggleDay(t){let e=this.daysControl.value,l=e.includes(t)?e.filter(h=>h!==t):[...e,t];this.daysControl.setValue(l);}resolveAgentConfigName(t){return this.agentConfigs().find(e=>e.id===t)?.name??t}submit(){if(this.form.invalid||this.isSubmitting())return;this.isSubmitting.set(true),this.errorMessage.set(null);let t=this.isEditMode()&&!!this.existingPrompt?.id,e=this.endTypeControl.value,l=z$1(P({},this.existingPrompt??{}),{namespaceId:this.namespaceId??null,name:this.nameControl.value.trim(),description:this.descriptionControl.value?.trim()||void 0,agentConfigId:t?this.existingPrompt.agentConfigId:this.agentConfigIdControl.value,promptContent:this.promptContentControl.value.trim(),recurrence:{unit:this.unitControl.value,days:this.daysControl.value,timeUtc:this.timeUtcControl.value},planning:{startDate:this.startDateControl.value,endType:e,endDate:e===He.ON_DATE?this.endDateControl.value??void 0:void 0,maxOccurrenceCount:e===He.OCCURRENCES?this.occurrenceCountControl.value??void 0:void 0},enabled:this.enabledControl.value});(t?this.state.update(this.existingPrompt.id,l):this.state.create(l)).pipe(U(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:P=>{this.isSubmitting.set(false),P.status===409?this.errorMessage.set(`A scheduled prompt named "${l.name}" already exists in this scope.`):P.status===400?this.errorMessage.set(P.error?.message??"Invalid scheduled prompt data."):this.errorMessage.set("An unexpected error occurred. Please try again.");}});}cancel(){this.navigateBack();}navigateBack(){this.isPlatformMode?this.router.navigate(["/agentos","admin","scheduled-prompts"]):this.router.navigate(["/agentos",this.namespaceId,"scheduled-prompts"]);}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=Fw({type:n,selectors:[["agentos-scheduled-prompt-form"]],decls:10,vars:3,consts:[[1,"scheduled-prompt-form"],[1,"scheduled-prompt-form__header"],["type","button","title","Back to scheduled prompts",1,"scheduled-prompt-form__back",3,"click"],[1,"scheduled-prompt-form__back-icon"],[1,"scheduled-prompt-form__title"],[1,"scheduled-prompt-form__loading"],[1,"scheduled-prompt-form__form",3,"formGroup"],[1,"scheduled-prompt-form__form",3,"ngSubmit","formGroup"],[1,"scheduled-prompt-form__field"],["for","sp-name",1,"scheduled-prompt-form__label"],["aria-hidden","true"],["id","sp-name","type","text","placeholder","e.g. Weekly Report","autocomplete","off",1,"scheduled-prompt-form__input",3,"formControl"],[1,"scheduled-prompt-form__field-error"],[1,"scheduled-prompt-form__field-hint"],["for","sp-description",1,"scheduled-prompt-form__label"],["id","sp-description","type","text","placeholder","Optional \u2014 short description","autocomplete","off",1,"scheduled-prompt-form__input",3,"formControl"],["for","sp-agent-config",1,"scheduled-prompt-form__label"],["for","sp-prompt-content",1,"scheduled-prompt-form__label"],["id","sp-prompt-content","rows","6","placeholder","Enter the message sent to the agent when the scheduled prompt fires\u2026",1,"scheduled-prompt-form__textarea",3,"formControl"],[1,"scheduled-prompt-form__fieldset"],[1,"scheduled-prompt-form__legend"],["for","sp-unit",1,"scheduled-prompt-form__label"],["id","sp-unit",1,"scheduled-prompt-form__select",3,"formControl"],[3,"value"],["for","sp-time",1,"scheduled-prompt-form__label"],[1,"scheduled-prompt-form__time-wrapper"],["id","sp-time","type","time",1,"scheduled-prompt-form__input","scheduled-prompt-form__input--time",3,"formControl"],[1,"scheduled-prompt-form__utc-badge"],["for","sp-start-date",1,"scheduled-prompt-form__label"],["id","sp-start-date","type","date",1,"scheduled-prompt-form__input",3,"formControl"],["for","sp-end-type",1,"scheduled-prompt-form__label"],["id","sp-end-type",1,"scheduled-prompt-form__select",3,"formControl"],[1,"scheduled-prompt-form__toggle-label"],["type","checkbox",1,"scheduled-prompt-form__toggle-checkbox",3,"formControl"],[1,"scheduled-prompt-form__toggle-text"],[1,"scheduled-prompt-form__toggle-hint"],[1,"scheduled-prompt-form__error"],[1,"scheduled-prompt-form__actions"],["type","submit",1,"scheduled-prompt-form__btn","scheduled-prompt-form__btn--primary",3,"disabled"],["type","button",1,"scheduled-prompt-form__btn",3,"click"],[1,"scheduled-prompt-form__readonly-value"],[3,"href"],["id","sp-agent-config",1,"scheduled-prompt-form__select",3,"formControl"],["value","","disabled",""],[1,"scheduled-prompt-form__label"],[1,"scheduled-prompt-form__day-grid"],[1,"scheduled-prompt-form__day-label"],["type","checkbox",1,"scheduled-prompt-form__day-checkbox",3,"change","checked"],[1,"scheduled-prompt-form__day-text"],["for","sp-end-date",1,"scheduled-prompt-form__label"],["id","sp-end-date","type","date",1,"scheduled-prompt-form__input",3,"formControl"],["for","sp-occurrence-count",1,"scheduled-prompt-form__label"],["id","sp-occurrence-count","type","number","min","1",1,"scheduled-prompt-form__input","scheduled-prompt-form__input--number",3,"formControl"]],template:function(e,l){e&1&&(ws(0,"div",0)(1,"header",1)(2,"button",2),Rg("click",function(){return l.cancel()}),ws(3,"span",3),QC(4,"\u2190"),hl(),QC(5),hl(),ws(6,"h1",4),QC(7),hl()(),oC(8,pe,2,0,"p",5)(9,Fe,86,26,"form",6),hl()),e&2&&(nI(5),Dl(" ",l.isPlatformMode?"Platform Scheduled Prompts":"Scheduled Prompts"," "),nI(2),Dl(" ",l.isEditMode()?"Edit scheduled prompt":"New scheduled prompt"," "),nI(),iC(l.isLoading()?8:9));},dependencies:[ni,Jn,Qn,ei,Ye,fn,wt,At,Zn,Xn,$t,Cn,En],styles:[".scheduled-prompt-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.scheduled-prompt-form__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.scheduled-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}.scheduled-prompt-form__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.scheduled-prompt-form__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.scheduled-prompt-form__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-text, #1d1d1f);letter-spacing:-.02em}.scheduled-prompt-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary, #6e6e73);font-size:.9rem;margin:0}.scheduled-prompt-form__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.25rem}.scheduled-prompt-form__field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.scheduled-prompt-form__row[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.scheduled-prompt-form__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text, #1d1d1f)}.scheduled-prompt-form__input[_ngcontent-%COMP%], .scheduled-prompt-form__select[_ngcontent-%COMP%], .scheduled-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}.scheduled-prompt-form__input[_ngcontent-%COMP%]:focus, .scheduled-prompt-form__select[_ngcontent-%COMP%]:focus, .scheduled-prompt-form__textarea[_ngcontent-%COMP%]:focus{border-color:var(--color-primary, #007aff)}.scheduled-prompt-form__input[_ngcontent-%COMP%]::placeholder, .scheduled-prompt-form__select[_ngcontent-%COMP%]::placeholder, .scheduled-prompt-form__textarea[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary, #6e6e73)}.scheduled-prompt-form__select[_ngcontent-%COMP%]{cursor:pointer;appearance:auto}.scheduled-prompt-form__textarea[_ngcontent-%COMP%]{resize:vertical;min-height:100px;line-height:1.5}.scheduled-prompt-form__input--time[_ngcontent-%COMP%]{flex:1;min-width:0}.scheduled-prompt-form__input--number[_ngcontent-%COMP%]{max-width:120px}.scheduled-prompt-form__time-wrapper[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem}.scheduled-prompt-form__utc-badge[_ngcontent-%COMP%]{flex-shrink:0;font-size:.75rem;font-weight:600;font-family:monospace;color:var(--color-text-secondary, #6e6e73);background:var(--color-surface, rgba(0, 0, 0, .05));padding:.25rem .5rem;border-radius:4px;text-transform:uppercase;letter-spacing:.06em}.scheduled-prompt-form__fieldset[_ngcontent-%COMP%]{border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:8px;padding:1rem 1.25rem 1.25rem;margin:0;display:flex;flex-direction:column;gap:1.25rem}.scheduled-prompt-form__legend[_ngcontent-%COMP%]{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary, #6e6e73);padding:0 .375rem}.scheduled-prompt-form__day-grid[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.5rem}.scheduled-prompt-form__day-label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;cursor:pointer;-webkit-user-select:none;user-select:none}.scheduled-prompt-form__day-checkbox[_ngcontent-%COMP%]{width:1rem;height:1rem;flex-shrink:0;accent-color:var(--color-primary, #007aff);cursor:pointer}.scheduled-prompt-form__day-text[_ngcontent-%COMP%]{font-size:.875rem;color:var(--color-text, #1d1d1f)}.scheduled-prompt-form__hint[_ngcontent-%COMP%]{margin:0;font-size:.875rem;color:var(--color-text-secondary, #6e6e73)}.scheduled-prompt-form__hint[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:var(--color-primary, #007aff);text-decoration:none}.scheduled-prompt-form__hint[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{text-decoration:underline}.scheduled-prompt-form__error[_ngcontent-%COMP%]{font-size:.8rem;color:var(--color-error, #ff3b30);margin:0}.scheduled-prompt-form__field-error[_ngcontent-%COMP%]{font-size:.8rem;color:var(--color-error, #ff3b30)}.scheduled-prompt-form__field-hint[_ngcontent-%COMP%]{font-size:.8rem;color:var(--color-text-secondary, #6e6e73);line-height:1.4}.scheduled-prompt-form__field-hint[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:var(--color-primary, #007aff);text-decoration:none}.scheduled-prompt-form__field-hint[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{text-decoration:underline}.scheduled-prompt-form__readonly-value[_ngcontent-%COMP%]{margin:0;font-size:.9375rem;color:var(--color-text, #1d1d1f);padding:.625rem .875rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .08));background:var(--color-surface, rgba(0, 0, 0, .03))}.scheduled-prompt-form__input--invalid[_ngcontent-%COMP%], .scheduled-prompt-form__textarea--invalid[_ngcontent-%COMP%]{border-color:var(--color-error, #ff3b30)}.scheduled-prompt-form__toggle-label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.scheduled-prompt-form__toggle-checkbox[_ngcontent-%COMP%]{width:1rem;height:1rem;flex-shrink:0;accent-color:var(--color-primary, #007aff);cursor:pointer}.scheduled-prompt-form__toggle-text[_ngcontent-%COMP%]{font-size:.9rem;font-weight:500;color:var(--color-text, #1d1d1f)}.scheduled-prompt-form__toggle-hint[_ngcontent-%COMP%]{margin:.25rem 0 0 1.5rem;font-size:.8rem;color:var(--color-text-secondary, #6e6e73);line-height:1.4}.scheduled-prompt-form__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.scheduled-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}.scheduled-prompt-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-surface-hover, rgba(0, 0, 0, .04))}.scheduled-prompt-form__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.scheduled-prompt-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-primary, #007aff);border-color:var(--color-primary, #007aff);color:#fff}.scheduled-prompt-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-primary-hover, #0051d5);border-color:var(--color-primary-hover, #0051d5)}"]})};function Ne(n){let t=n.get("endType")?.value,e=n.get("endDate")?.value;return t===He.ON_DATE&&!e?{endDateRequired:true}:null}function Ie(n){let t=n.get("endType")?.value,e=n.get("occurrenceCount")?.value;return t===He.OCCURRENCES&&(e==null||e<1)?{occurrenceCountRequired:true}:null}function Ve(){let n=new Date,t=n.getFullYear(),e=String(n.getMonth()+1).padStart(2,"0"),l=String(n.getDate()).padStart(2,"0");return `${t}-${e}-${l}`}export{me as ScheduledPromptFormComponent};
@@ -1 +1 @@
1
- import {N}from'./chunk-CyUmCedx.js';import {g,ao as V,G,w as we,d8 as B,dl as G$1,d6 as F,z as zi,S as By,X as br,c as U,u as ue$1,a7 as ya,a as z$1,b as P,h as Rw,s as si,I as Is,A as Ag,q as qC,m as pl,t as tC,J as JE,a8 as Zg,v as nC,ac as yC,T as Tg,a9 as fC,n as bg,a3 as UI,a6 as zI,a5 as vl,o as iC,x as sC,bo as rC,aa as If,ab as wf,C as Cg}from'./main-6K2UFGD2.js';import'./chunk-uPxETzZs.js';import {o as z,k as _t,b as _e$1,n as ni,J as Jn,Q as Qn,e as ei,Y as Ye,a as wt,Z as Zn,l as Xn,C as Cn,E as En}from'./chunk-C9tuHQmZ.js';import'./chunk-DXDohTwX.js';import'./chunk-nWqZHM4o.js';import'./chunk-l0HLnBLv.js';import'./chunk-DTIhOEG_.js';var le=(r,t)=>t.config.id,ce=(r,t)=>t.type;function ge(r,t){if(r&1&&(Is(0,"a",5),qC(1,"View resolved definition \u2192"),pl()),r&2){let e=yC();Tg("routerLink",e.inspectRoute());}}function se(r,t){r&1&&(Is(0,"span",6),qC(1,"Platform level"),pl());}function de(r,t){r&1&&(Is(0,"p",7),qC(1,"Loading\u2026"),pl());}function me(r,t){if(r&1&&(Is(0,"span",41),qC(1),pl()),r&2){let e=yC().$implicit;JE(),Zg(e.config.integrationType);}}function fe(r,t){if(r&1&&(bg(0,"input",42),UI()),r&2){let e=yC().$implicit;Tg("formControl",e.toolsControl),zI();}}function pe(r,t){if(r&1){let e=fC();Is(0,"div",37)(1,"label",38)(2,"input",39),Ag("change",function(){let l=If(e).$implicit,g=yC(3);return wf(g.toggleIntegration(l))}),pl(),Is(3,"span",40),qC(4),pl(),tC(5,me,2,1,"span",41),pl(),tC(6,fe,1,1,"input",42),pl();}if(r&2){let e=t.$implicit;JE(2),Tg("checked",e.enabled()),JE(2),Zg(e.config.name),JE(),nC(e.config.integrationType?5:-1),JE(),nC(e.enabled()?6:-1);}}function _e(r,t){if(r&1&&(Is(0,"p",48),qC(1),pl()),r&2){let e=yC().$implicit;JE(),vl(" Restricted to: ",e.restrictedTools.join(", ")," (set outside this form, preserved on save) ");}}function ue(r,t){if(r&1){let e=fC();Is(0,"div",37)(1,"label",38)(2,"span",40),qC(3),pl(),Is(4,"span",41),qC(5,"built-in"),pl()(),Is(6,"select",44),Ag("change",function(l){let g=If(e).$implicit,m=yC(4);return wf(m.setBuiltInState(g,l.target.value))}),Is(7,"option",45),qC(8),pl(),Is(9,"option",46),qC(10,"Enabled"),pl(),Is(11,"option",47),qC(12,"Disabled"),pl()(),tC(13,_e,2,1,"p",48),Is(14,"p",49),qC(15),pl()();}if(r&2){let e=t.$implicit,o=yC(4);JE(),Cg("for","built-in-"+e.type),JE(2),Zg(e.displayName),JE(3),Tg("id","built-in-"+e.type)("value",e.state()),JE(2),Zg(o.builtInDefaultLabel(e)),JE(5),nC(e.state()==="on"&&e.restrictedTools?13:-1),JE(2),Zg(e.description);}}function be(r,t){if(r&1&&(Is(0,"p",43),qC(1,"Built-in integrations"),pl(),iC(2,ue,16,7,"div",37,ce)),r&2){let e=yC(3);JE(2),sC(e.builtInRows());}}function Ce(r,t){if(r&1&&(Is(0,"fieldset",20)(1,"legend",25),qC(2,"Integrations"),pl(),Is(3,"p",36),qC(4," Select which integrations this agent can use. Leave tool names empty to allow all tools from an integration. "),pl(),iC(5,pe,7,4,"div",37,le),tC(7,be,4,0),pl()),r&2){let e=yC(2);JE(5),sC(e.integrationRows()),JE(2),nC(e.builtInRows().length>0?7:-1);}}function xe(r,t){if(r&1){let e=fC();Is(0,"li",50),bg(1,"input",51),UI(),Is(2,"button",52),Ag("click",function(){let l=If(e).$implicit,g=yC(3);return wf(g.removeSubAgent(l))}),qC(3," \u{1F5D1} "),pl()();}if(r&2){let e=t.$implicit;JE(),Tg("formControl",e.control),zI();}}function ye(r,t){if(r&1&&(Is(0,"ul",28),iC(1,xe,4,1,"li",50,rC),pl()),r&2){let e=yC(2);JE(),sC(e.subAgentRows());}}function he(r,t){if(r&1){let e=fC();Is(0,"button",53),Ag("click",function(){If(e);let l=yC(2);return wf(l.exportYaml())}),qC(1),pl();}if(r&2){let e=yC(2);Tg("disabled",e.isExporting()),JE(),vl(" ",e.isExporting()?"Exporting\u2026":"Export as YAML"," ");}}function ve(r,t){if(r&1){let e=fC();Is(0,"form",9),Ag("ngSubmit",function(){If(e);let l=yC();return wf(l.submit())}),Is(1,"div",10)(2,"label",11),qC(3,"Name "),Is(4,"span",12),qC(5,"*"),pl()(),bg(6,"input",13),UI(),pl(),Is(7,"div",10)(8,"label",14),qC(9,"Description"),pl(),bg(10,"input",15),UI(),pl(),Is(11,"div",10)(12,"label",16),qC(13,"Model name"),pl(),bg(14,"input",17),UI(),pl(),Is(15,"div",10)(16,"label",18),qC(17,"Instructions"),pl(),bg(18,"textarea",19),UI(),pl(),tC(19,Ce,8,1,"fieldset",20),Is(20,"div",10)(21,"label",21),bg(22,"input",22),UI(),Is(23,"span",23),qC(24,"Advanced mode"),pl()(),Is(25,"p",24),qC(26," When enabled, this agent uses a multi-step reasoning loop instead of a single LLM call. "),pl()(),Is(27,"div",10)(28,"label",21),bg(29,"input",22),UI(),Is(30,"span",23),qC(31,"Enabled"),pl()(),Is(32,"p",24),qC(33,"Disabled agents are excluded from namespace resolution."),pl()(),Is(34,"div",10)(35,"span",25),qC(36,"Sub-agents"),pl(),Is(37,"p",26),qC(38," Glob patterns for agents this agent may delegate to. "),Is(39,"code",27),qC(40,"*"),pl(),qC(41," matches any sequence of characters (e.g.\xA0"),Is(42,"code",27),qC(43,"*Fixer"),pl(),qC(44,", "),Is(45,"code",27),qC(46,"*"),pl(),qC(47," for all). Leave empty to disable delegation. "),pl(),tC(48,ye,3,0,"ul",28),Is(49,"div",29)(50,"input",30),Ag("keydown.enter",function(){If(e);let l=yC();return wf(l.addSubAgent())}),pl(),UI(),Is(51,"button",31),Ag("click",function(){If(e);let l=yC();return wf(l.addSubAgent())}),qC(52," + "),pl()()(),Is(53,"div",32)(54,"button",33),qC(55),pl(),tC(56,he,2,2,"button",34),Is(57,"button",35),Ag("click",function(){If(e);let l=yC();return wf(l.cancel())}),qC(58,"Cancel"),pl()()();}if(r&2){let e=yC();Tg("formGroup",e.form),JE(6),Tg("formControl",e.nameControl),zI(),JE(4),Tg("formControl",e.descriptionControl),zI(),JE(4),Tg("formControl",e.modelNameControl),zI(),JE(4),Tg("formControl",e.instructionsControl),zI(),JE(),nC(e.integrationRows().length>0||e.builtInRows().length>0?19:-1),JE(3),Tg("formControl",e.advancedExecutionControl),zI(),JE(7),Tg("formControl",e.enabledControl),zI(),JE(19),nC(e.subAgentRows().length>0?48:-1),JE(2),Tg("formControl",e.newSubAgentControl),zI(),JE(),Tg("disabled",!e.newSubAgentControl.value.trim()),JE(3),Tg("disabled",e.form.invalid||e.isSubmitting()),JE(),vl(" ",e.isEditMode()?"Save changes":"Create"," "),JE(),nC(e.isEditMode()?56:-1);}}var ae=class r{route=g(V);router=g(G);destroyRef=g(we);agentConfigController=g(B);exportService=g(G$1);integrationConfigState=g(N);integrationTypeController=g(F);namespaceId=this.route.snapshot.params.namespaceId;isPlatformMode=!this.namespaceId;form=new z({name:new _t("",{nonNullable:true,validators:[_e$1.required,_e$1.minLength(1)]}),description:new _t(null),modelName:new _t(null),instructions:new _t(null),advancedExecution:new _t(false,{nonNullable:true}),enabled:new _t(false,{nonNullable:true})});get nameControl(){return this.form.controls.name}get descriptionControl(){return this.form.controls.description}get modelNameControl(){return this.form.controls.modelName}get instructionsControl(){return this.form.controls.instructions}get advancedExecutionControl(){return this.form.controls.advancedExecution}get enabledControl(){return this.form.controls.enabled}subAgentRows=zi([]);newSubAgentControl=new _t("",{nonNullable:true});isEditMode=zi(false);isSubmitting=zi(false);isLoading=zi(false);isExporting=zi(false);builtInRows=zi([]);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=zi([]);existingConfig=null;ngOnInit(){let t=this.route.snapshot.paramMap.get("agentConfigId");t?(this.isEditMode.set(true),this.loadConfigAndIntegrations(t)):this.loadIntegrations(void 0);}loadConfigAndIntegrations(t){this.isLoading.set(true),By({config:this.agentConfigController.getByIdAgentConfig(t),namespaceIntegrations:this.namespaceId?this.integrationConfigState.loadNamespaceConfigs(this.namespaceId):br([]),platformIntegrations:this.integrationConfigState.loadPlatformConfigs(),builtInTypes:this.loadBuiltInTypes()}).pipe(U(this.destroyRef)).subscribe({next:({config:e,namespaceIntegrations:o,platformIntegrations:l,builtInTypes:g})=>{this.existingConfig=e,this.nameControl.setValue(e.name),this.descriptionControl.setValue(e.description??null),this.modelNameControl.setValue(e.modelName??null),this.instructionsControl.setValue(e.instructions??null),this.advancedExecutionControl.setValue(e.advancedExecution??false),this.enabledControl.setValue(e.enabled??true);let m=[...l,...o];this.integrationRows.set(this.buildIntegrationRows(m,e.integrations??void 0)),this.builtInRows.set(this.buildBuiltInRows(g,e.integrations??void 0)),this.subAgentRows.set((e.subAgents??[]).map(P=>({control:new _t(P,{nonNullable:true})}))),this.isLoading.set(false);},error:()=>{this.isLoading.set(false),this.navigateBack();}});}loadIntegrations(t){By({namespaceIntegrations:this.namespaceId?this.integrationConfigState.loadNamespaceConfigs(this.namespaceId):br([]),platformIntegrations:this.integrationConfigState.loadPlatformConfigs(),builtInTypes:this.loadBuiltInTypes()}).pipe(U(this.destroyRef)).subscribe({next:({namespaceIntegrations:e,platformIntegrations:o,builtInTypes:l})=>{let g=[...o,...e];this.integrationRows.set(this.buildIntegrationRows(g,t??void 0)),this.builtInRows.set(this.buildBuiltInRows(l,t??void 0));}});}loadBuiltInTypes(){return this.integrationTypeController.listTypesIntegrationType().pipe(ue$1(t=>t.filter(e=>!e.configSchema)),ya(t=>(console.error("[agent-config-form] failed to load integration types",t),br([]))))}buildIntegrationRows(t,e){return t.map(o=>{let l=o.name??"",g=e?.[l],m=e!=null&&l in e,P=Array.isArray(g)?g.join(", "):"";return {config:o,enabled:zi(m),toolsControl:new _t(P,{nonNullable:true})}})}buildBuiltInRows(t,e){return t.map(o=>{let l=e!=null&&o.type in e,g=e?.[o.type],m=l?Array.isArray(g)&&g.length===0?"off":"on":"default";return {type:o.type,displayName:o.displayName,description:o.description,enabledByDefault:o.enabledByDefault===true,state:zi(m),restrictedTools:Array.isArray(g)&&g.length>0?g:null}})}toggleIntegration(t){t.enabled.update(e=>!e);}setBuiltInState(t,e){t.state.set(e);}builtInDefaultLabel(t){return t.enabledByDefault?"Platform default (enabled)":"Platform default (disabled)"}addSubAgent(){let t=this.newSubAgentControl.value.trim();t&&(this.subAgentRows.update(e=>[...e,{control:new _t(t,{nonNullable:true})}]),this.newSubAgentControl.reset(""));}removeSubAgent(t){this.subAgentRows.update(e=>e.filter(o=>o!==t));}buildSubAgentsPayload(){let t=this.subAgentRows().map(e=>e.control.value.trim()).filter(e=>e.length>0);return t.length>0?t:void 0}buildIntegrationsPayload(){let t={};for(let o of this.integrationRows().filter(l=>l.enabled())){let l=o.config.name??"",g=o.toolsControl.value.trim();t[l]=g===""?null:g.split(",").map(m=>m.trim()).filter(m=>m.length>0);}for(let o of this.builtInRows()){let l=o.state();l==="on"?t[o.type]=o.restrictedTools??null:l==="off"&&(t[o.type]=[]);}let e=new Set([...this.integrationRows().map(o=>o.config.name??""),...this.builtInRows().map(o=>o.type)]);for(let[o,l]of Object.entries(this.existingConfig?.integrations??{}))e.has(o)||(t[o]=l);return Object.keys(t).length>0?t:void 0}submit(){if(this.form.invalid||this.isSubmitting())return;this.addSubAgent(),this.isSubmitting.set(true);let t=z$1(P({},this.existingConfig??{}),{createdOn:this.existingConfig?.createdOn,updatedOn:this.existingConfig?.updatedOn,namespaceId:this.namespaceId,name:this.nameControl.value.trim(),description:this.descriptionControl.value?.trim()||void 0,modelName:this.modelNameControl.value?.trim()||void 0,instructions:this.instructionsControl.value?.trim()||void 0,integrations:this.buildIntegrationsPayload(),advancedExecution:this.advancedExecutionControl.value,enabled:this.enabledControl.value,subAgents:this.buildSubAgentsPayload()});(this.isEditMode()?this.agentConfigController.updateAgentConfig(this.existingConfig.id??"",t):this.agentConfigController.createAgentConfig(t)).pipe(U(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:()=>this.isSubmitting.set(false)});}exportYaml(){let t=this.existingConfig?.id;!t||this.isExporting()||(this.isExporting.set(true),this.exportService.exportAsYaml(t).pipe(U(this.destroyRef)).subscribe({next:e=>{let o=new Blob([e],{type:"application/yaml"}),l=URL.createObjectURL(o),g=document.createElement("a");g.href=l,g.download=`${this.existingConfig?.name??"agent"}.yaml`,g.click(),URL.revokeObjectURL(l),this.isExporting.set(false);},error:()=>this.isExporting.set(false)}));}cancel(){this.navigateBack();}navigateBack(){this.isPlatformMode?this.router.navigate(["/agentos","admin","agent-configs"]):this.router.navigate(["/agentos",this.namespaceId,"agent-configs"]);}static \u0275fac=function(e){return new(e||r)};static \u0275cmp=Rw({type:r,selectors:[["agentos-agent-config-form"]],decls:12,vars:4,consts:[[1,"agent-config-form"],[1,"agent-config-form__header"],["type","button","title","Back to agent configs",1,"agent-config-form__back",3,"click"],[1,"agent-config-form__back-icon"],[1,"agent-config-form__title"],[1,"agent-config-form__sibling-link",3,"routerLink"],[1,"agent-config-form__platform-badge"],[1,"agent-config-form__loading"],[1,"agent-config-form__form",3,"formGroup"],[1,"agent-config-form__form",3,"ngSubmit","formGroup"],[1,"agent-config-form__field"],["for","agent-config-name",1,"agent-config-form__label"],["aria-hidden","true"],["id","agent-config-name","type","text","placeholder","e.g. Support agent","autocomplete","off",1,"agent-config-form__input",3,"formControl"],["for","agent-config-description",1,"agent-config-form__label"],["id","agent-config-description","type","text","placeholder","Optional \u2014 short description of this agent","autocomplete","off",1,"agent-config-form__input",3,"formControl"],["for","agent-config-model-name",1,"agent-config-form__label"],["id","agent-config-model-name","type","text","placeholder","Optional \u2014 model alias or name to use","autocomplete","off",1,"agent-config-form__input",3,"formControl"],["for","agent-config-instructions",1,"agent-config-form__label"],["id","agent-config-instructions","rows","6","placeholder","Optional \u2014 system instructions for this agent",1,"agent-config-form__textarea",3,"formControl"],[1,"agent-config-form__integrations"],[1,"agent-config-form__toggle-label"],["type","checkbox",1,"agent-config-form__toggle-checkbox",3,"formControl"],[1,"agent-config-form__toggle-text"],[1,"agent-config-form__toggle-hint"],[1,"agent-config-form__label"],[1,"agent-config-form__field-hint"],[1,"agent-config-form__code"],[1,"agent-config-form__sub-agent-list"],[1,"agent-config-form__sub-agent-add"],["type","text","placeholder","e.g. *Fixer or *","autocomplete","off",1,"agent-config-form__input","agent-config-form__sub-agent-input",3,"keydown.enter","formControl"],["type","button","title","Add pattern",1,"agent-config-form__sub-agent-btn","agent-config-form__sub-agent-btn--add",3,"click","disabled"],[1,"agent-config-form__actions"],["type","submit",1,"agent-config-form__btn","agent-config-form__btn--primary",3,"disabled"],["type","button",1,"agent-config-form__btn","agent-config-form__btn--export",3,"disabled"],["type","button",1,"agent-config-form__btn",3,"click"],[1,"agent-config-form__integrations-hint"],[1,"agent-config-form__integration-row"],[1,"agent-config-form__integration-toggle"],["type","checkbox",1,"agent-config-form__integration-checkbox",3,"change","checked"],[1,"agent-config-form__integration-name"],[1,"agent-config-form__integration-type"],["type","text","placeholder","Tool names, comma-separated (empty = all tools)","autocomplete","off",1,"agent-config-form__input","agent-config-form__integration-tools",3,"formControl"],[1,"agent-config-form__integrations-separator"],[1,"agent-config-form__integration-state",3,"change","id","value"],["value","default"],["value","on"],["value","off"],[1,"agent-config-form__integration-restriction"],[1,"agent-config-form__integration-builtin-desc"],[1,"agent-config-form__sub-agent-row"],["type","text","autocomplete","off",1,"agent-config-form__input","agent-config-form__sub-agent-input",3,"formControl"],["type","button","title","Remove",1,"agent-config-form__sub-agent-btn","agent-config-form__sub-agent-btn--danger",3,"click"],["type","button",1,"agent-config-form__btn","agent-config-form__btn--export",3,"click","disabled"]],template:function(e,o){e&1&&(Is(0,"div",0)(1,"header",1)(2,"button",2),Ag("click",function(){return o.cancel()}),Is(3,"span",3),qC(4,"\u2190"),pl(),qC(5," Agent Configs "),pl(),Is(6,"h1",4),qC(7),pl(),tC(8,ge,2,1,"a",5),tC(9,se,2,0,"span",6),pl(),tC(10,de,2,0,"p",7)(11,ve,59,14,"form",8),pl()),e&2&&(JE(7),Zg(o.isEditMode()?"Edit agent config":"New agent config"),JE(),nC(o.isEditMode()?8:-1),JE(),nC(o.isPlatformMode?9:-1),JE(),nC(o.isLoading()?10:11));},dependencies:[ni,Jn,Qn,ei,Ye,wt,Zn,Xn,Cn,En,si],styles:[".agent-config-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.agent-config-form__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.agent-config-form__back[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.375rem;background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-accent)}.agent-config-form__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.agent-config-form__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.agent-config-form__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:700;color:var(--color-text);letter-spacing:-.02em}.agent-config-form__sibling-link[_ngcontent-%COMP%]{font-size:.8125rem;color:var(--color-accent);text-decoration:none}.agent-config-form__sibling-link[_ngcontent-%COMP%]:hover{text-decoration:underline}.agent-config-form__platform-badge[_ngcontent-%COMP%]{display:inline-block;font-size:.75rem;font-weight:500;color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-divider);border-radius:0;padding:.125rem .5rem;letter-spacing:.02em;align-self:flex-start}.agent-config-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:.9rem;margin:0}.agent-config-form__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.25rem}.agent-config-form__field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.agent-config-form__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text)}.agent-config-form__input[_ngcontent-%COMP%], .agent-config-form__textarea[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border-radius:0;border:1px solid var(--color-divider);background:var(--color-surface);color:var(--color-text);font-size:.9375rem;font-family:inherit;outline:none;box-sizing:border-box;transition:border-color .15s ease}.agent-config-form__input[_ngcontent-%COMP%]:focus, .agent-config-form__textarea[_ngcontent-%COMP%]:focus{border-color:var(--color-accent)}.agent-config-form__input[_ngcontent-%COMP%]::placeholder, .agent-config-form__textarea[_ngcontent-%COMP%]::placeholder{color:var(--color-neutral-500)}.agent-config-form__textarea[_ngcontent-%COMP%]{resize:vertical;min-height:120px;line-height:1.5}.agent-config-form__integrations[_ngcontent-%COMP%]{border:1px solid var(--color-divider);border-radius:0;padding:1rem;margin:0;display:flex;flex-direction:column;gap:.75rem}.agent-config-form__integrations-hint[_ngcontent-%COMP%]{margin:0;font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.agent-config-form__integration-row[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.agent-config-form__integration-toggle[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.agent-config-form__integration-checkbox[_ngcontent-%COMP%]{width:1rem;height:1rem;flex-shrink:0;accent-color:var(--color-accent);cursor:pointer}.agent-config-form__integration-name[_ngcontent-%COMP%]{font-size:.9rem;font-weight:500;color:var(--color-text)}.agent-config-form__integration-type[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary);font-family:monospace}.agent-config-form__integration-tools[_ngcontent-%COMP%]{margin-left:1.5rem;font-size:.875rem}.agent-config-form__integrations-separator[_ngcontent-%COMP%]{margin:.25rem 0 0;padding-top:.5rem;border-top:1px solid var(--color-divider);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--color-neutral-500);font-family:var(--font-heading)}.agent-config-form__integration-state[_ngcontent-%COMP%]{margin-left:1.5rem;padding:.375rem .625rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.875rem;font-family:inherit;outline:none;transition:border-color .15s ease}.agent-config-form__integration-state[_ngcontent-%COMP%]:focus{border-color:var(--color-primary, #007aff)}.agent-config-form__integration-restriction[_ngcontent-%COMP%]{margin:0 0 0 1.5rem;font-size:.8rem;font-style:italic;color:var(--color-text-secondary, #6e6e73);line-height:1.4}.agent-config-form__integration-builtin-desc[_ngcontent-%COMP%]{margin:0 0 0 1.5rem;font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.agent-config-form__field-hint[_ngcontent-%COMP%]{margin:.25rem 0 0;font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.agent-config-form__code[_ngcontent-%COMP%]{font-family:monospace;font-size:.85em;background:var(--color-surface-muted, rgba(0, 0, 0, .06));padding:.1em .3em;border-radius:0}.agent-config-form__sub-agent-list[_ngcontent-%COMP%]{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-direction:column;gap:.375rem}.agent-config-form__sub-agent-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem}.agent-config-form__sub-agent-input[_ngcontent-%COMP%]{flex:1;min-width:0}.agent-config-form__sub-agent-add[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;margin-top:.5rem}.agent-config-form__sub-agent-btn[_ngcontent-%COMP%]{flex-shrink:0;width:2rem;height:2rem;padding:0;border-radius:0;border:1px solid var(--color-divider);background:transparent;color:var(--color-text-secondary);font-size:.9rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease,border-color .15s ease,color .15s ease}.agent-config-form__sub-agent-btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-neutral-500);color:var(--color-text)}.agent-config-form__sub-agent-btn[_ngcontent-%COMP%]:disabled{opacity:.35;cursor:not-allowed}.agent-config-form__sub-agent-btn--add[_ngcontent-%COMP%]{width:2rem;height:2rem;font-size:1.25rem;font-weight:300;border-color:var(--color-accent);color:var(--color-accent)}.agent-config-form__sub-agent-btn--add[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-accent);color:#fff}.agent-config-form__sub-agent-btn--danger[_ngcontent-%COMP%]{border:1px solid transparent;color:var(--color-neutral-500)}.agent-config-form__sub-agent-btn--danger[_ngcontent-%COMP%]:hover:not(:disabled){border-color:var(--red);color:var(--red);background:color-mix(in srgb,var(--red) 10%,transparent)}.agent-config-form__toggle-label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.agent-config-form__toggle-checkbox[_ngcontent-%COMP%]{width:1rem;height:1rem;flex-shrink:0;accent-color:var(--color-accent);cursor:pointer}.agent-config-form__toggle-text[_ngcontent-%COMP%]{font-size:.9rem;font-weight:500;color:var(--color-text)}.agent-config-form__toggle-hint[_ngcontent-%COMP%]{margin:.25rem 0 0 1.5rem;font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.agent-config-form__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.agent-config-form__btn[_ngcontent-%COMP%]{padding:.6rem 1.25rem;border-radius:0;border:1px solid var(--color-divider);background:transparent;color:var(--color-text);font-size:13px;font-family:var(--font-heading);font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease}.agent-config-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-neutral-500)}.agent-config-form__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.agent-config-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.agent-config-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-accent-700);border-color:var(--color-accent-700)}"]})};export{ae as AgentConfigFormComponent};
1
+ import {N}from'./chunk-Be1LOFvg.js';import {g,ao as V,G,w as we,d8 as B,dl as G$1,d6 as F,a as Gi,W as Vy,X as br,c as U,u as ue$1,a7 as va,z as z$1,b as P,h as Fw,s as si,m as ws,o as Rg,Q as QC,n as hl,q as oC,t as nI,a8 as Yg,x as iC,ac as EC,v as bg,a9 as gC,S as Sg,a3 as GI,a6 as qI,a5 as Dl,r as cC,y as uC,bo as sC,aa as wf,ab as Cf,T as Tg}from'./main-5PAOSHSM.js';import'./chunk-BY7uKZAo.js';import {o as z,k as _t,b as _e$1,n as ni,J as Jn,Q as Qn,e as ei,Y as Ye,a as wt,Z as Zn,l as Xn,C as Cn,E as En}from'./chunk-tTmeIHGS.js';import'./chunk-BEUXx3TO.js';import'./chunk-kvCfAm7Z.js';import'./chunk-CtkiOUdU.js';import'./chunk-S8F5_Te_.js';var le=(r,t)=>t.config.id,ce=(r,t)=>t.type;function ge(r,t){if(r&1&&(ws(0,"a",5),QC(1,"View resolved definition \u2192"),hl()),r&2){let e=EC();bg("routerLink",e.inspectRoute());}}function se(r,t){r&1&&(ws(0,"span",6),QC(1,"Platform level"),hl());}function de(r,t){r&1&&(ws(0,"p",7),QC(1,"Loading\u2026"),hl());}function me(r,t){if(r&1&&(ws(0,"span",41),QC(1),hl()),r&2){let e=EC().$implicit;nI(),Yg(e.config.integrationType);}}function fe(r,t){if(r&1&&(Sg(0,"input",42),GI()),r&2){let e=EC().$implicit;bg("formControl",e.toolsControl),qI();}}function pe(r,t){if(r&1){let e=gC();ws(0,"div",37)(1,"label",38)(2,"input",39),Rg("change",function(){let l=wf(e).$implicit,g=EC(3);return Cf(g.toggleIntegration(l))}),hl(),ws(3,"span",40),QC(4),hl(),oC(5,me,2,1,"span",41),hl(),oC(6,fe,1,1,"input",42),hl();}if(r&2){let e=t.$implicit;nI(2),bg("checked",e.enabled()),nI(2),Yg(e.config.name),nI(),iC(e.config.integrationType?5:-1),nI(),iC(e.enabled()?6:-1);}}function _e(r,t){if(r&1&&(ws(0,"p",48),QC(1),hl()),r&2){let e=EC().$implicit;nI(),Dl(" Restricted to: ",e.restrictedTools.join(", ")," (set outside this form, preserved on save) ");}}function ue(r,t){if(r&1){let e=gC();ws(0,"div",37)(1,"label",38)(2,"span",40),QC(3),hl(),ws(4,"span",41),QC(5,"built-in"),hl()(),ws(6,"select",44),Rg("change",function(l){let g=wf(e).$implicit,m=EC(4);return Cf(m.setBuiltInState(g,l.target.value))}),ws(7,"option",45),QC(8),hl(),ws(9,"option",46),QC(10,"Enabled"),hl(),ws(11,"option",47),QC(12,"Disabled"),hl()(),oC(13,_e,2,1,"p",48),ws(14,"p",49),QC(15),hl()();}if(r&2){let e=t.$implicit,o=EC(4);nI(),Tg("for","built-in-"+e.type),nI(2),Yg(e.displayName),nI(3),bg("id","built-in-"+e.type)("value",e.state()),nI(2),Yg(o.builtInDefaultLabel(e)),nI(5),iC(e.state()==="on"&&e.restrictedTools?13:-1),nI(2),Yg(e.description);}}function be(r,t){if(r&1&&(ws(0,"p",43),QC(1,"Built-in integrations"),hl(),cC(2,ue,16,7,"div",37,ce)),r&2){let e=EC(3);nI(2),uC(e.builtInRows());}}function Ce(r,t){if(r&1&&(ws(0,"fieldset",20)(1,"legend",25),QC(2,"Integrations"),hl(),ws(3,"p",36),QC(4," Select which integrations this agent can use. Leave tool names empty to allow all tools from an integration. "),hl(),cC(5,pe,7,4,"div",37,le),oC(7,be,4,0),hl()),r&2){let e=EC(2);nI(5),uC(e.integrationRows()),nI(2),iC(e.builtInRows().length>0?7:-1);}}function xe(r,t){if(r&1){let e=gC();ws(0,"li",50),Sg(1,"input",51),GI(),ws(2,"button",52),Rg("click",function(){let l=wf(e).$implicit,g=EC(3);return Cf(g.removeSubAgent(l))}),QC(3," \u{1F5D1} "),hl()();}if(r&2){let e=t.$implicit;nI(),bg("formControl",e.control),qI();}}function ye(r,t){if(r&1&&(ws(0,"ul",28),cC(1,xe,4,1,"li",50,sC),hl()),r&2){let e=EC(2);nI(),uC(e.subAgentRows());}}function he(r,t){if(r&1){let e=gC();ws(0,"button",53),Rg("click",function(){wf(e);let l=EC(2);return Cf(l.exportYaml())}),QC(1),hl();}if(r&2){let e=EC(2);bg("disabled",e.isExporting()),nI(),Dl(" ",e.isExporting()?"Exporting\u2026":"Export as YAML"," ");}}function ve(r,t){if(r&1){let e=gC();ws(0,"form",9),Rg("ngSubmit",function(){wf(e);let l=EC();return Cf(l.submit())}),ws(1,"div",10)(2,"label",11),QC(3,"Name "),ws(4,"span",12),QC(5,"*"),hl()(),Sg(6,"input",13),GI(),hl(),ws(7,"div",10)(8,"label",14),QC(9,"Description"),hl(),Sg(10,"input",15),GI(),hl(),ws(11,"div",10)(12,"label",16),QC(13,"Model name"),hl(),Sg(14,"input",17),GI(),hl(),ws(15,"div",10)(16,"label",18),QC(17,"Instructions"),hl(),Sg(18,"textarea",19),GI(),hl(),oC(19,Ce,8,1,"fieldset",20),ws(20,"div",10)(21,"label",21),Sg(22,"input",22),GI(),ws(23,"span",23),QC(24,"Advanced mode"),hl()(),ws(25,"p",24),QC(26," When enabled, this agent uses a multi-step reasoning loop instead of a single LLM call. "),hl()(),ws(27,"div",10)(28,"label",21),Sg(29,"input",22),GI(),ws(30,"span",23),QC(31,"Enabled"),hl()(),ws(32,"p",24),QC(33,"Disabled agents are excluded from namespace resolution."),hl()(),ws(34,"div",10)(35,"span",25),QC(36,"Sub-agents"),hl(),ws(37,"p",26),QC(38," Glob patterns for agents this agent may delegate to. "),ws(39,"code",27),QC(40,"*"),hl(),QC(41," matches any sequence of characters (e.g.\xA0"),ws(42,"code",27),QC(43,"*Fixer"),hl(),QC(44,", "),ws(45,"code",27),QC(46,"*"),hl(),QC(47," for all). Leave empty to disable delegation. "),hl(),oC(48,ye,3,0,"ul",28),ws(49,"div",29)(50,"input",30),Rg("keydown.enter",function(){wf(e);let l=EC();return Cf(l.addSubAgent())}),hl(),GI(),ws(51,"button",31),Rg("click",function(){wf(e);let l=EC();return Cf(l.addSubAgent())}),QC(52," + "),hl()()(),ws(53,"div",32)(54,"button",33),QC(55),hl(),oC(56,he,2,2,"button",34),ws(57,"button",35),Rg("click",function(){wf(e);let l=EC();return Cf(l.cancel())}),QC(58,"Cancel"),hl()()();}if(r&2){let e=EC();bg("formGroup",e.form),nI(6),bg("formControl",e.nameControl),qI(),nI(4),bg("formControl",e.descriptionControl),qI(),nI(4),bg("formControl",e.modelNameControl),qI(),nI(4),bg("formControl",e.instructionsControl),qI(),nI(),iC(e.integrationRows().length>0||e.builtInRows().length>0?19:-1),nI(3),bg("formControl",e.advancedExecutionControl),qI(),nI(7),bg("formControl",e.enabledControl),qI(),nI(19),iC(e.subAgentRows().length>0?48:-1),nI(2),bg("formControl",e.newSubAgentControl),qI(),nI(),bg("disabled",!e.newSubAgentControl.value.trim()),nI(3),bg("disabled",e.form.invalid||e.isSubmitting()),nI(),Dl(" ",e.isEditMode()?"Save changes":"Create"," "),nI(),iC(e.isEditMode()?56:-1);}}var ae=class r{route=g(V);router=g(G);destroyRef=g(we);agentConfigController=g(B);exportService=g(G$1);integrationConfigState=g(N);integrationTypeController=g(F);namespaceId=this.route.snapshot.params.namespaceId;isPlatformMode=!this.namespaceId;form=new z({name:new _t("",{nonNullable:true,validators:[_e$1.required,_e$1.minLength(1)]}),description:new _t(null),modelName:new _t(null),instructions:new _t(null),advancedExecution:new _t(false,{nonNullable:true}),enabled:new _t(false,{nonNullable:true})});get nameControl(){return this.form.controls.name}get descriptionControl(){return this.form.controls.description}get modelNameControl(){return this.form.controls.modelName}get instructionsControl(){return this.form.controls.instructions}get advancedExecutionControl(){return this.form.controls.advancedExecution}get enabledControl(){return this.form.controls.enabled}subAgentRows=Gi([]);newSubAgentControl=new _t("",{nonNullable:true});isEditMode=Gi(false);isSubmitting=Gi(false);isLoading=Gi(false);isExporting=Gi(false);builtInRows=Gi([]);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=Gi([]);existingConfig=null;ngOnInit(){let t=this.route.snapshot.paramMap.get("agentConfigId");t?(this.isEditMode.set(true),this.loadConfigAndIntegrations(t)):this.loadIntegrations(void 0);}loadConfigAndIntegrations(t){this.isLoading.set(true),Vy({config:this.agentConfigController.getByIdAgentConfig(t),namespaceIntegrations:this.namespaceId?this.integrationConfigState.loadNamespaceConfigs(this.namespaceId):br([]),platformIntegrations:this.integrationConfigState.loadPlatformConfigs(),builtInTypes:this.loadBuiltInTypes()}).pipe(U(this.destroyRef)).subscribe({next:({config:e,namespaceIntegrations:o,platformIntegrations:l,builtInTypes:g})=>{this.existingConfig=e,this.nameControl.setValue(e.name),this.descriptionControl.setValue(e.description??null),this.modelNameControl.setValue(e.modelName??null),this.instructionsControl.setValue(e.instructions??null),this.advancedExecutionControl.setValue(e.advancedExecution??false),this.enabledControl.setValue(e.enabled??true);let m=[...l,...o];this.integrationRows.set(this.buildIntegrationRows(m,e.integrations??void 0)),this.builtInRows.set(this.buildBuiltInRows(g,e.integrations??void 0)),this.subAgentRows.set((e.subAgents??[]).map(P=>({control:new _t(P,{nonNullable:true})}))),this.isLoading.set(false);},error:()=>{this.isLoading.set(false),this.navigateBack();}});}loadIntegrations(t){Vy({namespaceIntegrations:this.namespaceId?this.integrationConfigState.loadNamespaceConfigs(this.namespaceId):br([]),platformIntegrations:this.integrationConfigState.loadPlatformConfigs(),builtInTypes:this.loadBuiltInTypes()}).pipe(U(this.destroyRef)).subscribe({next:({namespaceIntegrations:e,platformIntegrations:o,builtInTypes:l})=>{let g=[...o,...e];this.integrationRows.set(this.buildIntegrationRows(g,t??void 0)),this.builtInRows.set(this.buildBuiltInRows(l,t??void 0));}});}loadBuiltInTypes(){return this.integrationTypeController.listTypesIntegrationType().pipe(ue$1(t=>t.filter(e=>!e.configSchema)),va(t=>(console.error("[agent-config-form] failed to load integration types",t),br([]))))}buildIntegrationRows(t,e){return t.map(o=>{let l=o.name??"",g=e?.[l],m=e!=null&&l in e,P=Array.isArray(g)?g.join(", "):"";return {config:o,enabled:Gi(m),toolsControl:new _t(P,{nonNullable:true})}})}buildBuiltInRows(t,e){return t.map(o=>{let l=e!=null&&o.type in e,g=e?.[o.type],m=l?Array.isArray(g)&&g.length===0?"off":"on":"default";return {type:o.type,displayName:o.displayName,description:o.description,enabledByDefault:o.enabledByDefault===true,state:Gi(m),restrictedTools:Array.isArray(g)&&g.length>0?g:null}})}toggleIntegration(t){t.enabled.update(e=>!e);}setBuiltInState(t,e){t.state.set(e);}builtInDefaultLabel(t){return t.enabledByDefault?"Platform default (enabled)":"Platform default (disabled)"}addSubAgent(){let t=this.newSubAgentControl.value.trim();t&&(this.subAgentRows.update(e=>[...e,{control:new _t(t,{nonNullable:true})}]),this.newSubAgentControl.reset(""));}removeSubAgent(t){this.subAgentRows.update(e=>e.filter(o=>o!==t));}buildSubAgentsPayload(){let t=this.subAgentRows().map(e=>e.control.value.trim()).filter(e=>e.length>0);return t.length>0?t:void 0}buildIntegrationsPayload(){let t={};for(let o of this.integrationRows().filter(l=>l.enabled())){let l=o.config.name??"",g=o.toolsControl.value.trim();t[l]=g===""?null:g.split(",").map(m=>m.trim()).filter(m=>m.length>0);}for(let o of this.builtInRows()){let l=o.state();l==="on"?t[o.type]=o.restrictedTools??null:l==="off"&&(t[o.type]=[]);}let e=new Set([...this.integrationRows().map(o=>o.config.name??""),...this.builtInRows().map(o=>o.type)]);for(let[o,l]of Object.entries(this.existingConfig?.integrations??{}))e.has(o)||(t[o]=l);return Object.keys(t).length>0?t:void 0}submit(){if(this.form.invalid||this.isSubmitting())return;this.addSubAgent(),this.isSubmitting.set(true);let t=z$1(P({},this.existingConfig??{}),{createdOn:this.existingConfig?.createdOn,updatedOn:this.existingConfig?.updatedOn,namespaceId:this.namespaceId,name:this.nameControl.value.trim(),description:this.descriptionControl.value?.trim()||void 0,modelName:this.modelNameControl.value?.trim()||void 0,instructions:this.instructionsControl.value?.trim()||void 0,integrations:this.buildIntegrationsPayload(),advancedExecution:this.advancedExecutionControl.value,enabled:this.enabledControl.value,subAgents:this.buildSubAgentsPayload()});(this.isEditMode()?this.agentConfigController.updateAgentConfig(this.existingConfig.id??"",t):this.agentConfigController.createAgentConfig(t)).pipe(U(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:()=>this.isSubmitting.set(false)});}exportYaml(){let t=this.existingConfig?.id;!t||this.isExporting()||(this.isExporting.set(true),this.exportService.exportAsYaml(t).pipe(U(this.destroyRef)).subscribe({next:e=>{let o=new Blob([e],{type:"application/yaml"}),l=URL.createObjectURL(o),g=document.createElement("a");g.href=l,g.download=`${this.existingConfig?.name??"agent"}.yaml`,g.click(),URL.revokeObjectURL(l),this.isExporting.set(false);},error:()=>this.isExporting.set(false)}));}cancel(){this.navigateBack();}navigateBack(){this.isPlatformMode?this.router.navigate(["/agentos","admin","agent-configs"]):this.router.navigate(["/agentos",this.namespaceId,"agent-configs"]);}static \u0275fac=function(e){return new(e||r)};static \u0275cmp=Fw({type:r,selectors:[["agentos-agent-config-form"]],decls:12,vars:4,consts:[[1,"agent-config-form"],[1,"agent-config-form__header"],["type","button","title","Back to agent configs",1,"agent-config-form__back",3,"click"],[1,"agent-config-form__back-icon"],[1,"agent-config-form__title"],[1,"agent-config-form__sibling-link",3,"routerLink"],[1,"agent-config-form__platform-badge"],[1,"agent-config-form__loading"],[1,"agent-config-form__form",3,"formGroup"],[1,"agent-config-form__form",3,"ngSubmit","formGroup"],[1,"agent-config-form__field"],["for","agent-config-name",1,"agent-config-form__label"],["aria-hidden","true"],["id","agent-config-name","type","text","placeholder","e.g. Support agent","autocomplete","off",1,"agent-config-form__input",3,"formControl"],["for","agent-config-description",1,"agent-config-form__label"],["id","agent-config-description","type","text","placeholder","Optional \u2014 short description of this agent","autocomplete","off",1,"agent-config-form__input",3,"formControl"],["for","agent-config-model-name",1,"agent-config-form__label"],["id","agent-config-model-name","type","text","placeholder","Optional \u2014 model alias or name to use","autocomplete","off",1,"agent-config-form__input",3,"formControl"],["for","agent-config-instructions",1,"agent-config-form__label"],["id","agent-config-instructions","rows","6","placeholder","Optional \u2014 system instructions for this agent",1,"agent-config-form__textarea",3,"formControl"],[1,"agent-config-form__integrations"],[1,"agent-config-form__toggle-label"],["type","checkbox",1,"agent-config-form__toggle-checkbox",3,"formControl"],[1,"agent-config-form__toggle-text"],[1,"agent-config-form__toggle-hint"],[1,"agent-config-form__label"],[1,"agent-config-form__field-hint"],[1,"agent-config-form__code"],[1,"agent-config-form__sub-agent-list"],[1,"agent-config-form__sub-agent-add"],["type","text","placeholder","e.g. *Fixer or *","autocomplete","off",1,"agent-config-form__input","agent-config-form__sub-agent-input",3,"keydown.enter","formControl"],["type","button","title","Add pattern",1,"agent-config-form__sub-agent-btn","agent-config-form__sub-agent-btn--add",3,"click","disabled"],[1,"agent-config-form__actions"],["type","submit",1,"agent-config-form__btn","agent-config-form__btn--primary",3,"disabled"],["type","button",1,"agent-config-form__btn","agent-config-form__btn--export",3,"disabled"],["type","button",1,"agent-config-form__btn",3,"click"],[1,"agent-config-form__integrations-hint"],[1,"agent-config-form__integration-row"],[1,"agent-config-form__integration-toggle"],["type","checkbox",1,"agent-config-form__integration-checkbox",3,"change","checked"],[1,"agent-config-form__integration-name"],[1,"agent-config-form__integration-type"],["type","text","placeholder","Tool names, comma-separated (empty = all tools)","autocomplete","off",1,"agent-config-form__input","agent-config-form__integration-tools",3,"formControl"],[1,"agent-config-form__integrations-separator"],[1,"agent-config-form__integration-state",3,"change","id","value"],["value","default"],["value","on"],["value","off"],[1,"agent-config-form__integration-restriction"],[1,"agent-config-form__integration-builtin-desc"],[1,"agent-config-form__sub-agent-row"],["type","text","autocomplete","off",1,"agent-config-form__input","agent-config-form__sub-agent-input",3,"formControl"],["type","button","title","Remove",1,"agent-config-form__sub-agent-btn","agent-config-form__sub-agent-btn--danger",3,"click"],["type","button",1,"agent-config-form__btn","agent-config-form__btn--export",3,"click","disabled"]],template:function(e,o){e&1&&(ws(0,"div",0)(1,"header",1)(2,"button",2),Rg("click",function(){return o.cancel()}),ws(3,"span",3),QC(4,"\u2190"),hl(),QC(5," Agent Configs "),hl(),ws(6,"h1",4),QC(7),hl(),oC(8,ge,2,1,"a",5),oC(9,se,2,0,"span",6),hl(),oC(10,de,2,0,"p",7)(11,ve,59,14,"form",8),hl()),e&2&&(nI(7),Yg(o.isEditMode()?"Edit agent config":"New agent config"),nI(),iC(o.isEditMode()?8:-1),nI(),iC(o.isPlatformMode?9:-1),nI(),iC(o.isLoading()?10:11));},dependencies:[ni,Jn,Qn,ei,Ye,wt,Zn,Xn,Cn,En,si],styles:[".agent-config-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.agent-config-form__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.agent-config-form__back[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.375rem;background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-accent)}.agent-config-form__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.agent-config-form__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.agent-config-form__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:700;color:var(--color-text);letter-spacing:-.02em}.agent-config-form__sibling-link[_ngcontent-%COMP%]{font-size:.8125rem;color:var(--color-accent);text-decoration:none}.agent-config-form__sibling-link[_ngcontent-%COMP%]:hover{text-decoration:underline}.agent-config-form__platform-badge[_ngcontent-%COMP%]{display:inline-block;font-size:.75rem;font-weight:500;color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-divider);border-radius:0;padding:.125rem .5rem;letter-spacing:.02em;align-self:flex-start}.agent-config-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:.9rem;margin:0}.agent-config-form__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.25rem}.agent-config-form__field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.agent-config-form__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text)}.agent-config-form__input[_ngcontent-%COMP%], .agent-config-form__textarea[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border-radius:0;border:1px solid var(--color-divider);background:var(--color-surface);color:var(--color-text);font-size:.9375rem;font-family:inherit;outline:none;box-sizing:border-box;transition:border-color .15s ease}.agent-config-form__input[_ngcontent-%COMP%]:focus, .agent-config-form__textarea[_ngcontent-%COMP%]:focus{border-color:var(--color-accent)}.agent-config-form__input[_ngcontent-%COMP%]::placeholder, .agent-config-form__textarea[_ngcontent-%COMP%]::placeholder{color:var(--color-neutral-500)}.agent-config-form__textarea[_ngcontent-%COMP%]{resize:vertical;min-height:120px;line-height:1.5}.agent-config-form__integrations[_ngcontent-%COMP%]{border:1px solid var(--color-divider);border-radius:0;padding:1rem;margin:0;display:flex;flex-direction:column;gap:.75rem}.agent-config-form__integrations-hint[_ngcontent-%COMP%]{margin:0;font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.agent-config-form__integration-row[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.agent-config-form__integration-toggle[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.agent-config-form__integration-checkbox[_ngcontent-%COMP%]{width:1rem;height:1rem;flex-shrink:0;accent-color:var(--color-accent);cursor:pointer}.agent-config-form__integration-name[_ngcontent-%COMP%]{font-size:.9rem;font-weight:500;color:var(--color-text)}.agent-config-form__integration-type[_ngcontent-%COMP%]{font-size:.75rem;color:var(--color-text-secondary);font-family:monospace}.agent-config-form__integration-tools[_ngcontent-%COMP%]{margin-left:1.5rem;font-size:.875rem}.agent-config-form__integrations-separator[_ngcontent-%COMP%]{margin:.25rem 0 0;padding-top:.5rem;border-top:1px solid var(--color-divider);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--color-neutral-500);font-family:var(--font-heading)}.agent-config-form__integration-state[_ngcontent-%COMP%]{margin-left:1.5rem;padding:.375rem .625rem;border-radius:8px;border:1px solid var(--color-border, rgba(0, 0, 0, .1));background:transparent;color:var(--color-text, #1d1d1f);font-size:.875rem;font-family:inherit;outline:none;transition:border-color .15s ease}.agent-config-form__integration-state[_ngcontent-%COMP%]:focus{border-color:var(--color-primary, #007aff)}.agent-config-form__integration-restriction[_ngcontent-%COMP%]{margin:0 0 0 1.5rem;font-size:.8rem;font-style:italic;color:var(--color-text-secondary, #6e6e73);line-height:1.4}.agent-config-form__integration-builtin-desc[_ngcontent-%COMP%]{margin:0 0 0 1.5rem;font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.agent-config-form__field-hint[_ngcontent-%COMP%]{margin:.25rem 0 0;font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.agent-config-form__code[_ngcontent-%COMP%]{font-family:monospace;font-size:.85em;background:var(--color-surface-muted, rgba(0, 0, 0, .06));padding:.1em .3em;border-radius:0}.agent-config-form__sub-agent-list[_ngcontent-%COMP%]{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-direction:column;gap:.375rem}.agent-config-form__sub-agent-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem}.agent-config-form__sub-agent-input[_ngcontent-%COMP%]{flex:1;min-width:0}.agent-config-form__sub-agent-add[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;margin-top:.5rem}.agent-config-form__sub-agent-btn[_ngcontent-%COMP%]{flex-shrink:0;width:2rem;height:2rem;padding:0;border-radius:0;border:1px solid var(--color-divider);background:transparent;color:var(--color-text-secondary);font-size:.9rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease,border-color .15s ease,color .15s ease}.agent-config-form__sub-agent-btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-neutral-500);color:var(--color-text)}.agent-config-form__sub-agent-btn[_ngcontent-%COMP%]:disabled{opacity:.35;cursor:not-allowed}.agent-config-form__sub-agent-btn--add[_ngcontent-%COMP%]{width:2rem;height:2rem;font-size:1.25rem;font-weight:300;border-color:var(--color-accent);color:var(--color-accent)}.agent-config-form__sub-agent-btn--add[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-accent);color:#fff}.agent-config-form__sub-agent-btn--danger[_ngcontent-%COMP%]{border:1px solid transparent;color:var(--color-neutral-500)}.agent-config-form__sub-agent-btn--danger[_ngcontent-%COMP%]:hover:not(:disabled){border-color:var(--red);color:var(--red);background:color-mix(in srgb,var(--red) 10%,transparent)}.agent-config-form__toggle-label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.agent-config-form__toggle-checkbox[_ngcontent-%COMP%]{width:1rem;height:1rem;flex-shrink:0;accent-color:var(--color-accent);cursor:pointer}.agent-config-form__toggle-text[_ngcontent-%COMP%]{font-size:.9rem;font-weight:500;color:var(--color-text)}.agent-config-form__toggle-hint[_ngcontent-%COMP%]{margin:.25rem 0 0 1.5rem;font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.agent-config-form__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.agent-config-form__btn[_ngcontent-%COMP%]{padding:.6rem 1.25rem;border-radius:0;border:1px solid var(--color-divider);background:transparent;color:var(--color-text);font-size:13px;font-family:var(--font-heading);font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease}.agent-config-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-neutral-500)}.agent-config-form__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.agent-config-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.agent-config-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-accent-700);border-color:var(--color-accent-700)}"]})};export{ae as AgentConfigFormComponent};
@@ -1 +1 @@
1
- import {cb as TB,cc as CB,g,G as G$1,P,y as yT,h as Rw,i as hr,k as Gn,I as Is,A as Ag,t as tC,q as qC,m as pl,b$ as PC,H as Hg,C as Cg,J as JE,v as nC,a8 as Zg,a5 as vl,T as Tg,a9 as fC,aa as If,ac as yC,ab as wf,n as bg}from'./main-6K2UFGD2.js';import {v as ve,n as ne}from'./chunk-fP29MqaN.js';import {V as Ve,n as ne$1}from'./chunk-DTIhOEG_.js';import {y as yt,w as wt}from'./chunk-C9tuHQmZ.js';function L(a,e){if(a&1){let n=fC();Is(0,"div",1)(1,"mat-checkbox",21),Ag("click",function(r){return r.stopPropagation()})("change",function(r){If(n);let i=yC();return wf(i.selectionChanged.emit({id:i.task().id,selected:r.checked}))}),pl()();}if(a&2){let n=yC();JE(),Tg("checked",n.selected()),Cg("aria-label","Select task: "+n.task().name);}}function Y(a,e){a&1&&(Is(0,"mat-icon",2),qC(1,"star"),pl());}function W(a,e){a&1&&bg(0,"span",6);}function U(a,e){if(a&1&&(Is(0,"div",7)(1,"mat-icon",22),qC(2,"folder"),pl(),Is(3,"span"),qC(4),pl()()),a&2){let n=yC();JE(4),Zg(n.projectName());}}function B(a,e){if(a&1&&(Is(0,"p",9),qC(1),pl()),a&2){let n=yC();JE(),Zg(n.task().summary);}}function $(a,e){a&1&&(Is(0,"p",10),qC(1,"No summary yet"),pl());}function H(a,e){if(a&1){let n=fC();Is(0,"button",23),Ag("click",function(r){If(n);let i=yC();return wf(i.onOpenDirect(r))}),Is(1,"mat-icon"),qC(2,"open_in_new"),pl()();}}function F(a,e){if(a&1){let n=fC();Is(0,"button",24),Ag("click",function(r){If(n);let i=yC();return wf(i.onStop(r))}),Is(1,"mat-icon"),qC(2,"stop_circle"),pl()();}}function G(a,e){if(a&1){let n=fC();Is(0,"button",25),Ag("click",function(r){If(n);let i=yC();return wf(i.onMarkDone(r))}),Is(1,"mat-icon"),qC(2,"check_circle_outline"),pl()();}}function K(a,e){if(a&1){let n=fC();Is(0,"button",26),Ag("click",function(r){If(n);let i=yC();return wf(i.onMarkActive(r))}),Is(1,"mat-icon"),qC(2,"replay"),pl()();}}function J(a,e){if(a&1){let n=fC();Is(0,"button",27),Ag("click",function(r){If(n);let i=yC();return wf(i.onCloseTask(r))}),Is(1,"mat-icon"),qC(2,"close_fullscreen"),pl()();}}var A=class a{task=TB.required();projectNameOverride=TB(null);showProject=TB(false);previewMode=TB(false);selectable=TB(false);selected=TB(false);stopRequested=CB();deleteRequested=CB();starToggled=CB();closeTaskRequested=CB();markDoneRequested=CB();markActiveRequested=CB();previewRequested=CB();selectionChanged=CB();router=g(G$1);projectState=g(P);projectName=yT(()=>this.projectNameOverride()??this.projectState.getSelectedProjectId());statusLabel=yT(()=>Q[this.task().status]);statusIcon=yT(()=>X[this.task().status]);isWorktree=yT(()=>!!this.task().worktreeProject);navigate(){if(this.previewMode()){this.previewRequested.emit(this.task().id);return}let e=this.projectName();e&&(this.projectState.selectProject(e),this.router.navigate(["project",e,"thread",this.task().id]));}onStop(e){e.stopPropagation(),this.stopRequested.emit(this.task().id);}onDelete(e){e.stopPropagation(),this.deleteRequested.emit(this.task().id);}onStarToggle(e){e.stopPropagation(),this.starToggled.emit(this.task().id);}onCloseTask(e){e.stopPropagation(),this.closeTaskRequested.emit(this.task().id);}onMarkDone(e){e.stopPropagation(),this.markDoneRequested.emit(this.task().id);}onMarkActive(e){e.stopPropagation(),this.markActiveRequested.emit(this.task().id);}onOpenDirect(e){e.stopPropagation();let n=this.projectName();n&&(this.projectState.selectProject(n),this.router.navigate(["project",n,"thread",this.task().id]));}formatRelativeTime(e){let n=Date.now()-new Date(e).getTime(),t=Math.floor(n/6e4);if(t<1)return "just now";if(t<60)return `${t} min ago`;let r=Math.floor(t/60);if(r<24)return `${r}h ago`;let i=Math.floor(r/24);return i===1?"yesterday":i<7?`${i} days ago`:new Date(e).toLocaleDateString("en",{day:"numeric",month:"short"})}static \u0275fac=function(n){return new(n||a)};static \u0275cmp=Rw({type:a,selectors:[["app-task-card"]],inputs:{task:[1,"task"],projectNameOverride:[1,"projectNameOverride"],showProject:[1,"showProject"],previewMode:[1,"previewMode"],selectable:[1,"selectable"],selected:[1,"selected"]},outputs:{stopRequested:"stopRequested",deleteRequested:"deleteRequested",starToggled:"starToggled",closeTaskRequested:"closeTaskRequested",markDoneRequested:"markDoneRequested",markActiveRequested:"markActiveRequested",previewRequested:"previewRequested",selectionChanged:"selectionChanged"},decls:29,vars:25,consts:[["role","button","tabindex","0",1,"task-card",3,"click","keydown.enter","keydown.space"],[1,"selection-checkbox"],["aria-label","Starred",1,"starred-indicator"],[1,"status-badge"],[1,"status-icon"],[1,"status-label"],["aria-hidden","true",1,"pulse-ring"],[1,"task-project"],[1,"task-name"],[1,"task-summary"],[1,"task-summary","empty"],[1,"task-footer"],[1,"task-time"],[1,"task-actions"],["mat-icon-button","","matTooltip","Open full view","aria-label","Open task in full view",1,"action-btn","open-btn"],["mat-icon-button","","matTooltip","Stop agent","aria-label","Stop agent",1,"action-btn","stop-btn"],["mat-icon-button","","matTooltip","Mark as done","aria-label","Mark as done",1,"action-btn","mark-done-btn"],["mat-icon-button","","matTooltip","Mark as active","aria-label","Mark as active",1,"action-btn","mark-active-btn"],["mat-icon-button","",1,"action-btn","star-btn",3,"click","matTooltip"],["mat-icon-button","","matTooltip","Close task (removes worktree)","aria-label","Close task",1,"action-btn","close-task-btn"],["mat-icon-button","","matTooltip","Delete task","aria-label","Delete task",1,"action-btn","delete-btn",3,"click"],[3,"click","change","checked"],[1,"project-icon"],["mat-icon-button","","matTooltip","Open full view","aria-label","Open task in full view",1,"action-btn","open-btn",3,"click"],["mat-icon-button","","matTooltip","Stop agent","aria-label","Stop agent",1,"action-btn","stop-btn",3,"click"],["mat-icon-button","","matTooltip","Mark as done","aria-label","Mark as done",1,"action-btn","mark-done-btn",3,"click"],["mat-icon-button","","matTooltip","Mark as active","aria-label","Mark as active",1,"action-btn","mark-active-btn",3,"click"],["mat-icon-button","","matTooltip","Close task (removes worktree)","aria-label","Close task",1,"action-btn","close-task-btn",3,"click"]],template:function(n,t){n&1&&(Is(0,"article",0),Ag("click",function(){return t.navigate()})("keydown.enter",function(){return t.navigate()})("keydown.space",function(i){return t.navigate(),i.preventDefault()}),tC(1,L,2,2,"div",1),tC(2,Y,2,0,"mat-icon",2),Is(3,"div",3)(4,"mat-icon",4),qC(5),pl(),Is(6,"span",5),qC(7),pl(),tC(8,W,1,0,"span",6),pl(),tC(9,U,5,1,"div",7),Is(10,"h3",8),qC(11),pl(),tC(12,B,2,1,"p",9)(13,$,2,0,"p",10),Is(14,"footer",11)(15,"span",12),qC(16),pl(),Is(17,"div",13),tC(18,H,3,0,"button",14),tC(19,F,3,0,"button",15),tC(20,G,3,0,"button",16)(21,K,3,0,"button",17),Is(22,"button",18),Ag("click",function(i){return t.onStarToggle(i)}),Is(23,"mat-icon"),qC(24),pl()(),tC(25,J,3,0,"button",19),Is(26,"button",20),Ag("click",function(i){return t.onDelete(i)}),Is(27,"mat-icon"),qC(28,"delete_outline"),pl()()()()()),n&2&&(PC("status-"+t.task().status),Hg("is-active",t.task().isActive)("is-selected",t.selected()),Cg("aria-label","Open task: "+t.task().name),JE(),nC(t.selectable()?1:-1),JE(),nC(t.task().starring.length>0?2:-1),JE(3),Zg(t.statusIcon()),JE(2),Zg(t.statusLabel()),JE(),nC(t.task().status==="waiting-you"?8:-1),JE(),nC(t.showProject()&&t.projectName()?9:-1),JE(2),vl(" ",t.task().name||"Unnamed task"," "),JE(),nC(t.task().summary?12:13),JE(4),Zg(t.formatRelativeTime(t.task().modifiedDate)),JE(2),nC(t.previewMode()?18:-1),JE(),nC(t.task().status==="in-progress"?19:-1),JE(),nC(t.task().status!=="done"?20:21),JE(2),Hg("starred",t.task().starring.length>0),Tg("matTooltip",t.task().starring.length>0?"Unstar":"Star"),Cg("aria-label",t.task().starring.length>0?"Unstar task":"Star task"),JE(2),Zg(t.task().starring.length>0?"star":"star_border"),JE(),nC(t.isWorktree()?25:-1));},dependencies:[ve,ne,yt,wt,hr,Gn,Ve,ne$1],styles:['.glass-panel[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.glass-interactive[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-interactive[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-interactive[_ngcontent-%COMP%]:active{transform:translateY(0)}.glass-card[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:20px;padding:1.5rem}.glass-button[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-button[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-button[_ngcontent-%COMP%]:active{transform:translateY(0)}.glass-button[_ngcontent-%COMP%]{border-radius:12px;padding:.75rem 1.5rem;font-weight:600;cursor:pointer}.glass-button[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed;transform:none}.glass-button[_ngcontent-%COMP%]:disabled:hover{transform:none}.smooth-theme-transition[_ngcontent-%COMP%]{transition:background .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}[_nghost-%COMP%]{display:block}.task-card[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:16px;padding:1.25rem;cursor:pointer;position:relative;overflow:hidden;transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,.2,1),border-color .2s ease;outline:none;display:flex;flex-direction:column;gap:.5rem;min-height:160px}.task-card[_ngcontent-%COMP%]:hover, .task-card[_ngcontent-%COMP%]:focus-visible{transform:translateY(-3px);box-shadow:0 16px 48px #00000026}.task-card[_ngcontent-%COMP%]:active{transform:translateY(-1px)}.task-card[_ngcontent-%COMP%]:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:16px 0 0 16px;background:var(--status-color, var(--color-text-secondary))}.task-card.status-waiting-you[_ngcontent-%COMP%]{--status-color: var(--color-error);border-color:#ff3b3040}.task-card.status-in-progress[_ngcontent-%COMP%]{--status-color: var(--color-warning);border-color:#ff950033}.task-card.status-done[_ngcontent-%COMP%]{--status-color: var(--color-success)}.task-card.status-paused[_ngcontent-%COMP%]{--status-color: var(--color-text-secondary)}.task-card.status-error[_ngcontent-%COMP%]{--status-color: var(--color-error)}.task-card.is-active[_ngcontent-%COMP%]{box-shadow:var(--glass-shadow),0 0 0 2px rgba(var(--color-primary),.3)}.selection-checkbox[_ngcontent-%COMP%]{position:absolute;right:.875rem;top:1.125rem;z-index:2}.task-card.is-selected[_ngcontent-%COMP%]{border-color:var(--color-primary);box-shadow:var(--glass-shadow),0 0 0 2px var(--color-primary)}.task-card.is-selected[_ngcontent-%COMP%]:before{background:var(--color-primary)}.starred-indicator[_ngcontent-%COMP%]{position:absolute;top:.75rem;right:.75rem;font-size:1rem;width:1rem;height:1rem;color:#f5a623;pointer-events:none}.status-badge[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;position:relative}.status-badge[_ngcontent-%COMP%] .status-icon[_ngcontent-%COMP%]{font-size:1rem;width:1rem;height:1rem;color:var(--status-color, var(--color-text-secondary))}.status-in-progress[_ngcontent-%COMP%] .status-badge[_ngcontent-%COMP%] .status-icon[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_spin 2s linear infinite}.status-badge[_ngcontent-%COMP%] .status-label[_ngcontent-%COMP%]{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--status-color, var(--color-text-secondary))}.status-badge[_ngcontent-%COMP%] .pulse-ring[_ngcontent-%COMP%]{position:absolute;left:-2px;top:-2px;width:20px;height:20px;border-radius:50%;border:2px solid var(--color-error);animation:_ngcontent-%COMP%_pulse 1.5s ease-out infinite;pointer-events:none}.task-project[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem;font-size:.72rem;font-weight:600;color:var(--color-primary);opacity:.8;text-transform:uppercase;letter-spacing:.04em}.task-project[_ngcontent-%COMP%] .project-icon[_ngcontent-%COMP%]{font-size:.75rem;width:.75rem;height:.75rem}.task-name[_ngcontent-%COMP%]{margin:0;font-size:.95rem;font-weight:600;color:var(--color-text);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.task-summary[_ngcontent-%COMP%]{margin:0;font-size:.8rem;color:var(--color-text-secondary);line-height:1.4;flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.task-summary.empty[_ngcontent-%COMP%]{font-style:italic;opacity:.6}.task-footer[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:.25rem}.task-time[_ngcontent-%COMP%]{font-size:.72rem;color:var(--color-text-secondary);opacity:.8}.task-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.task-card[_ngcontent-%COMP%]:hover .task-actions[_ngcontent-%COMP%], .task-card[_ngcontent-%COMP%]:focus-within .task-actions[_ngcontent-%COMP%]{opacity:1}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%]{width:28px;height:28px;display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1rem;width:1rem;height:1rem;display:flex;align-items:center;justify-content:center}.task-actions[_ngcontent-%COMP%] .stop-btn[_ngcontent-%COMP%]{color:var(--color-error)}.task-actions[_ngcontent-%COMP%] .mark-done-btn[_ngcontent-%COMP%]{color:var(--color-success)}.task-actions[_ngcontent-%COMP%] .star-btn[_ngcontent-%COMP%]{color:var(--color-text-secondary)}.task-actions[_ngcontent-%COMP%] .star-btn.starred[_ngcontent-%COMP%]{color:#f5a623}.task-actions[_ngcontent-%COMP%] .delete-btn[_ngcontent-%COMP%]{color:var(--color-text-secondary)}.task-actions[_ngcontent-%COMP%] .delete-btn[_ngcontent-%COMP%]:hover{color:var(--color-error)}.task-actions[_ngcontent-%COMP%] .open-btn[_ngcontent-%COMP%]{color:var(--color-primary)}.task-actions[_ngcontent-%COMP%] .open-btn[_ngcontent-%COMP%]:hover{color:var(--color-primary-hover)}@media(max-width:600px){.task-actions[_ngcontent-%COMP%]{opacity:1}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%]{width:36px;height:36px}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.25rem;width:1.25rem;height:1.25rem}}@keyframes _ngcontent-%COMP%_spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes _ngcontent-%COMP%_pulse{0%{transform:scale(.8);opacity:1}to{transform:scale(2.2);opacity:0}}']})},Q={"waiting-you":"Waiting for you","in-progress":"In progress\u2026",done:"Done",paused:"Paused",error:"Error"},X={"waiting-you":"mark_unread_chat_alt","in-progress":"pending",done:"check_circle",paused:"pause_circle",error:"error"};var bt=300*1e3,kt={"waiting-you":0,"in-progress":1,done:2,paused:3,error:4};export{A,bt as b,kt as k};
1
+ import {cb as LB,cc as PB,g,G as G$1,P,E as ET,h as Fw,i as hr,k as Gn,m as ws,o as Rg,q as oC,Q as QC,n as hl,b$ as BC,A as Ug,T as Tg,t as nI,x as iC,a8 as Yg,a5 as Dl,v as bg,a9 as gC,aa as wf,ac as EC,ab as Cf,S as Sg}from'./main-5PAOSHSM.js';import {v as ve,n as ne}from'./chunk-Dcftf7UY.js';import {V as Ve,n as ne$1}from'./chunk-S8F5_Te_.js';import {y as yt,w as wt}from'./chunk-tTmeIHGS.js';function L(a,e){if(a&1){let n=gC();ws(0,"div",1)(1,"mat-checkbox",21),Rg("click",function(r){return r.stopPropagation()})("change",function(r){wf(n);let i=EC();return Cf(i.selectionChanged.emit({id:i.task().id,selected:r.checked}))}),hl()();}if(a&2){let n=EC();nI(),bg("checked",n.selected()),Tg("aria-label","Select task: "+n.task().name);}}function Y(a,e){a&1&&(ws(0,"mat-icon",2),QC(1,"star"),hl());}function W(a,e){a&1&&Sg(0,"span",6);}function U(a,e){if(a&1&&(ws(0,"div",7)(1,"mat-icon",22),QC(2,"folder"),hl(),ws(3,"span"),QC(4),hl()()),a&2){let n=EC();nI(4),Yg(n.projectName());}}function B(a,e){if(a&1&&(ws(0,"p",9),QC(1),hl()),a&2){let n=EC();nI(),Yg(n.task().summary);}}function $(a,e){a&1&&(ws(0,"p",10),QC(1,"No summary yet"),hl());}function H(a,e){if(a&1){let n=gC();ws(0,"button",23),Rg("click",function(r){wf(n);let i=EC();return Cf(i.onOpenDirect(r))}),ws(1,"mat-icon"),QC(2,"open_in_new"),hl()();}}function F(a,e){if(a&1){let n=gC();ws(0,"button",24),Rg("click",function(r){wf(n);let i=EC();return Cf(i.onStop(r))}),ws(1,"mat-icon"),QC(2,"stop_circle"),hl()();}}function G(a,e){if(a&1){let n=gC();ws(0,"button",25),Rg("click",function(r){wf(n);let i=EC();return Cf(i.onMarkDone(r))}),ws(1,"mat-icon"),QC(2,"check_circle_outline"),hl()();}}function K(a,e){if(a&1){let n=gC();ws(0,"button",26),Rg("click",function(r){wf(n);let i=EC();return Cf(i.onMarkActive(r))}),ws(1,"mat-icon"),QC(2,"replay"),hl()();}}function J(a,e){if(a&1){let n=gC();ws(0,"button",27),Rg("click",function(r){wf(n);let i=EC();return Cf(i.onCloseTask(r))}),ws(1,"mat-icon"),QC(2,"close_fullscreen"),hl()();}}var A=class a{task=LB.required();projectNameOverride=LB(null);showProject=LB(false);previewMode=LB(false);selectable=LB(false);selected=LB(false);stopRequested=PB();deleteRequested=PB();starToggled=PB();closeTaskRequested=PB();markDoneRequested=PB();markActiveRequested=PB();previewRequested=PB();selectionChanged=PB();router=g(G$1);projectState=g(P);projectName=ET(()=>this.projectNameOverride()??this.projectState.getSelectedProjectId());statusLabel=ET(()=>Q[this.task().status]);statusIcon=ET(()=>X[this.task().status]);isWorktree=ET(()=>!!this.task().worktreeProject);navigate(){if(this.previewMode()){this.previewRequested.emit(this.task().id);return}let e=this.projectName();e&&(this.projectState.selectProject(e),this.router.navigate(["project",e,"thread",this.task().id]));}onStop(e){e.stopPropagation(),this.stopRequested.emit(this.task().id);}onDelete(e){e.stopPropagation(),this.deleteRequested.emit(this.task().id);}onStarToggle(e){e.stopPropagation(),this.starToggled.emit(this.task().id);}onCloseTask(e){e.stopPropagation(),this.closeTaskRequested.emit(this.task().id);}onMarkDone(e){e.stopPropagation(),this.markDoneRequested.emit(this.task().id);}onMarkActive(e){e.stopPropagation(),this.markActiveRequested.emit(this.task().id);}onOpenDirect(e){e.stopPropagation();let n=this.projectName();n&&(this.projectState.selectProject(n),this.router.navigate(["project",n,"thread",this.task().id]));}formatRelativeTime(e){let n=Date.now()-new Date(e).getTime(),t=Math.floor(n/6e4);if(t<1)return "just now";if(t<60)return `${t} min ago`;let r=Math.floor(t/60);if(r<24)return `${r}h ago`;let i=Math.floor(r/24);return i===1?"yesterday":i<7?`${i} days ago`:new Date(e).toLocaleDateString("en",{day:"numeric",month:"short"})}static \u0275fac=function(n){return new(n||a)};static \u0275cmp=Fw({type:a,selectors:[["app-task-card"]],inputs:{task:[1,"task"],projectNameOverride:[1,"projectNameOverride"],showProject:[1,"showProject"],previewMode:[1,"previewMode"],selectable:[1,"selectable"],selected:[1,"selected"]},outputs:{stopRequested:"stopRequested",deleteRequested:"deleteRequested",starToggled:"starToggled",closeTaskRequested:"closeTaskRequested",markDoneRequested:"markDoneRequested",markActiveRequested:"markActiveRequested",previewRequested:"previewRequested",selectionChanged:"selectionChanged"},decls:29,vars:25,consts:[["role","button","tabindex","0",1,"task-card",3,"click","keydown.enter","keydown.space"],[1,"selection-checkbox"],["aria-label","Starred",1,"starred-indicator"],[1,"status-badge"],[1,"status-icon"],[1,"status-label"],["aria-hidden","true",1,"pulse-ring"],[1,"task-project"],[1,"task-name"],[1,"task-summary"],[1,"task-summary","empty"],[1,"task-footer"],[1,"task-time"],[1,"task-actions"],["mat-icon-button","","matTooltip","Open full view","aria-label","Open task in full view",1,"action-btn","open-btn"],["mat-icon-button","","matTooltip","Stop agent","aria-label","Stop agent",1,"action-btn","stop-btn"],["mat-icon-button","","matTooltip","Mark as done","aria-label","Mark as done",1,"action-btn","mark-done-btn"],["mat-icon-button","","matTooltip","Mark as active","aria-label","Mark as active",1,"action-btn","mark-active-btn"],["mat-icon-button","",1,"action-btn","star-btn",3,"click","matTooltip"],["mat-icon-button","","matTooltip","Close task (removes worktree)","aria-label","Close task",1,"action-btn","close-task-btn"],["mat-icon-button","","matTooltip","Delete task","aria-label","Delete task",1,"action-btn","delete-btn",3,"click"],[3,"click","change","checked"],[1,"project-icon"],["mat-icon-button","","matTooltip","Open full view","aria-label","Open task in full view",1,"action-btn","open-btn",3,"click"],["mat-icon-button","","matTooltip","Stop agent","aria-label","Stop agent",1,"action-btn","stop-btn",3,"click"],["mat-icon-button","","matTooltip","Mark as done","aria-label","Mark as done",1,"action-btn","mark-done-btn",3,"click"],["mat-icon-button","","matTooltip","Mark as active","aria-label","Mark as active",1,"action-btn","mark-active-btn",3,"click"],["mat-icon-button","","matTooltip","Close task (removes worktree)","aria-label","Close task",1,"action-btn","close-task-btn",3,"click"]],template:function(n,t){n&1&&(ws(0,"article",0),Rg("click",function(){return t.navigate()})("keydown.enter",function(){return t.navigate()})("keydown.space",function(i){return t.navigate(),i.preventDefault()}),oC(1,L,2,2,"div",1),oC(2,Y,2,0,"mat-icon",2),ws(3,"div",3)(4,"mat-icon",4),QC(5),hl(),ws(6,"span",5),QC(7),hl(),oC(8,W,1,0,"span",6),hl(),oC(9,U,5,1,"div",7),ws(10,"h3",8),QC(11),hl(),oC(12,B,2,1,"p",9)(13,$,2,0,"p",10),ws(14,"footer",11)(15,"span",12),QC(16),hl(),ws(17,"div",13),oC(18,H,3,0,"button",14),oC(19,F,3,0,"button",15),oC(20,G,3,0,"button",16)(21,K,3,0,"button",17),ws(22,"button",18),Rg("click",function(i){return t.onStarToggle(i)}),ws(23,"mat-icon"),QC(24),hl()(),oC(25,J,3,0,"button",19),ws(26,"button",20),Rg("click",function(i){return t.onDelete(i)}),ws(27,"mat-icon"),QC(28,"delete_outline"),hl()()()()()),n&2&&(BC("status-"+t.task().status),Ug("is-active",t.task().isActive)("is-selected",t.selected()),Tg("aria-label","Open task: "+t.task().name),nI(),iC(t.selectable()?1:-1),nI(),iC(t.task().starring.length>0?2:-1),nI(3),Yg(t.statusIcon()),nI(2),Yg(t.statusLabel()),nI(),iC(t.task().status==="waiting-you"?8:-1),nI(),iC(t.showProject()&&t.projectName()?9:-1),nI(2),Dl(" ",t.task().name||"Unnamed task"," "),nI(),iC(t.task().summary?12:13),nI(4),Yg(t.formatRelativeTime(t.task().modifiedDate)),nI(2),iC(t.previewMode()?18:-1),nI(),iC(t.task().status==="in-progress"?19:-1),nI(),iC(t.task().status!=="done"?20:21),nI(2),Ug("starred",t.task().starring.length>0),bg("matTooltip",t.task().starring.length>0?"Unstar":"Star"),Tg("aria-label",t.task().starring.length>0?"Unstar task":"Star task"),nI(2),Yg(t.task().starring.length>0?"star":"star_border"),nI(),iC(t.isWorktree()?25:-1));},dependencies:[ve,ne,yt,wt,hr,Gn,Ve,ne$1],styles:['.glass-panel[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.glass-interactive[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-interactive[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-interactive[_ngcontent-%COMP%]:active{transform:translateY(0)}.glass-card[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:20px;padding:1.5rem}.glass-button[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-button[_ngcontent-%COMP%]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.glass-button[_ngcontent-%COMP%]:active{transform:translateY(0)}.glass-button[_ngcontent-%COMP%]{border-radius:12px;padding:.75rem 1.5rem;font-weight:600;cursor:pointer}.glass-button[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed;transform:none}.glass-button[_ngcontent-%COMP%]:disabled:hover{transform:none}.smooth-theme-transition[_ngcontent-%COMP%]{transition:background .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}[_nghost-%COMP%]{display:block}.task-card[_ngcontent-%COMP%]{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop-blur);-webkit-backdrop-filter:var(--glass-backdrop-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:16px;padding:1.25rem;cursor:pointer;position:relative;overflow:hidden;transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,.2,1),border-color .2s ease;outline:none;display:flex;flex-direction:column;gap:.5rem;min-height:160px}.task-card[_ngcontent-%COMP%]:hover, .task-card[_ngcontent-%COMP%]:focus-visible{transform:translateY(-3px);box-shadow:0 16px 48px #00000026}.task-card[_ngcontent-%COMP%]:active{transform:translateY(-1px)}.task-card[_ngcontent-%COMP%]:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:16px 0 0 16px;background:var(--status-color, var(--color-text-secondary))}.task-card.status-waiting-you[_ngcontent-%COMP%]{--status-color: var(--color-error);border-color:#ff3b3040}.task-card.status-in-progress[_ngcontent-%COMP%]{--status-color: var(--color-warning);border-color:#ff950033}.task-card.status-done[_ngcontent-%COMP%]{--status-color: var(--color-success)}.task-card.status-paused[_ngcontent-%COMP%]{--status-color: var(--color-text-secondary)}.task-card.status-error[_ngcontent-%COMP%]{--status-color: var(--color-error)}.task-card.is-active[_ngcontent-%COMP%]{box-shadow:var(--glass-shadow),0 0 0 2px rgba(var(--color-primary),.3)}.selection-checkbox[_ngcontent-%COMP%]{position:absolute;right:.875rem;top:1.125rem;z-index:2}.task-card.is-selected[_ngcontent-%COMP%]{border-color:var(--color-primary);box-shadow:var(--glass-shadow),0 0 0 2px var(--color-primary)}.task-card.is-selected[_ngcontent-%COMP%]:before{background:var(--color-primary)}.starred-indicator[_ngcontent-%COMP%]{position:absolute;top:.75rem;right:.75rem;font-size:1rem;width:1rem;height:1rem;color:#f5a623;pointer-events:none}.status-badge[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.375rem;position:relative}.status-badge[_ngcontent-%COMP%] .status-icon[_ngcontent-%COMP%]{font-size:1rem;width:1rem;height:1rem;color:var(--status-color, var(--color-text-secondary))}.status-in-progress[_ngcontent-%COMP%] .status-badge[_ngcontent-%COMP%] .status-icon[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_spin 2s linear infinite}.status-badge[_ngcontent-%COMP%] .status-label[_ngcontent-%COMP%]{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--status-color, var(--color-text-secondary))}.status-badge[_ngcontent-%COMP%] .pulse-ring[_ngcontent-%COMP%]{position:absolute;left:-2px;top:-2px;width:20px;height:20px;border-radius:50%;border:2px solid var(--color-error);animation:_ngcontent-%COMP%_pulse 1.5s ease-out infinite;pointer-events:none}.task-project[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem;font-size:.72rem;font-weight:600;color:var(--color-primary);opacity:.8;text-transform:uppercase;letter-spacing:.04em}.task-project[_ngcontent-%COMP%] .project-icon[_ngcontent-%COMP%]{font-size:.75rem;width:.75rem;height:.75rem}.task-name[_ngcontent-%COMP%]{margin:0;font-size:.95rem;font-weight:600;color:var(--color-text);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.task-summary[_ngcontent-%COMP%]{margin:0;font-size:.8rem;color:var(--color-text-secondary);line-height:1.4;flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.task-summary.empty[_ngcontent-%COMP%]{font-style:italic;opacity:.6}.task-footer[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:.25rem}.task-time[_ngcontent-%COMP%]{font-size:.72rem;color:var(--color-text-secondary);opacity:.8}.task-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.125rem;opacity:0;transition:opacity .15s ease}.task-card[_ngcontent-%COMP%]:hover .task-actions[_ngcontent-%COMP%], .task-card[_ngcontent-%COMP%]:focus-within .task-actions[_ngcontent-%COMP%]{opacity:1}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%]{width:28px;height:28px;display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1rem;width:1rem;height:1rem;display:flex;align-items:center;justify-content:center}.task-actions[_ngcontent-%COMP%] .stop-btn[_ngcontent-%COMP%]{color:var(--color-error)}.task-actions[_ngcontent-%COMP%] .mark-done-btn[_ngcontent-%COMP%]{color:var(--color-success)}.task-actions[_ngcontent-%COMP%] .star-btn[_ngcontent-%COMP%]{color:var(--color-text-secondary)}.task-actions[_ngcontent-%COMP%] .star-btn.starred[_ngcontent-%COMP%]{color:#f5a623}.task-actions[_ngcontent-%COMP%] .delete-btn[_ngcontent-%COMP%]{color:var(--color-text-secondary)}.task-actions[_ngcontent-%COMP%] .delete-btn[_ngcontent-%COMP%]:hover{color:var(--color-error)}.task-actions[_ngcontent-%COMP%] .open-btn[_ngcontent-%COMP%]{color:var(--color-primary)}.task-actions[_ngcontent-%COMP%] .open-btn[_ngcontent-%COMP%]:hover{color:var(--color-primary-hover)}@media(max-width:600px){.task-actions[_ngcontent-%COMP%]{opacity:1}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%]{width:36px;height:36px}.task-actions[_ngcontent-%COMP%] .action-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.25rem;width:1.25rem;height:1.25rem}}@keyframes _ngcontent-%COMP%_spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes _ngcontent-%COMP%_pulse{0%{transform:scale(.8);opacity:1}to{transform:scale(2.2);opacity:0}}']})},Q={"waiting-you":"Waiting for you","in-progress":"In progress\u2026",done:"Done",paused:"Paused",error:"Error"},X={"waiting-you":"mark_unread_chat_alt","in-progress":"pending",done:"check_circle",paused:"pause_circle",error:"error"};var bt=300*1e3,kt={"waiting-you":0,"in-progress":1,done:2,paused:3,error:4};export{A,bt as b,kt as k};