@whoz-oss/coday-client 3.33.0 → 3.33.1

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 (80) hide show
  1. package/browser/{chunk-DsFEZkSl.js → chunk--u1fh-bE.js} +1 -1
  2. package/browser/chunk-2e1XJLC3.js +1 -0
  3. package/browser/{chunk-D6BBuWSd.js → chunk-6LX0m2KK.js} +1 -1
  4. package/browser/{chunk--r2IPkvN.js → chunk-7OibMkdV.js} +1 -1
  5. package/browser/{chunk-Mxaxers6.js → chunk-97Ur9CVM.js} +1 -1
  6. package/browser/{chunk-4NMdLPHF.js → chunk-BA-NscEe.js} +1 -1
  7. package/browser/{chunk-P6Fi8ohd.js → chunk-BAW4T6Di.js} +1 -1
  8. package/browser/{chunk-B_-1xOxe.js → chunk-BJy7Ev8t.js} +1 -1
  9. package/browser/{chunk-BhXLqAug.js → chunk-BMMVal6G.js} +1 -1
  10. package/browser/{chunk-DFLL0Odh.js → chunk-BR2UGTBA.js} +1 -1
  11. package/browser/{chunk-D3gurhpR.js → chunk-BVHP3O1y.js} +1 -1
  12. package/browser/{chunk-C_J2R_PK.js → chunk-BYRF4k2F.js} +1 -1
  13. package/browser/{chunk-CZmNdEYy.js → chunk-Bb0cfZpR.js} +1 -1
  14. package/browser/{chunk-O4nbXJCv.js → chunk-Bdo-PzpO.js} +1 -1
  15. package/browser/{chunk-DWSvE7KY.js → chunk-BfgOvSfj.js} +1 -1
  16. package/browser/{chunk-D3fatnCm.js → chunk-BgHBODRL.js} +1 -1
  17. package/browser/{chunk-CJIgE5YB.js → chunk-Bp6uMEC4.js} +1 -1
  18. package/browser/{chunk-COD2O4SF.js → chunk-BrwKLScI.js} +1 -1
  19. package/browser/{chunk-B-Ejl4sU.js → chunk-BuwCQJib.js} +1 -1
  20. package/browser/chunk-BvidtKG2.js +10 -0
  21. package/browser/{chunk-C2Inb2UP.js → chunk-BwA9KDbo.js} +1 -1
  22. package/browser/{chunk-F5WjZgr6.js → chunk-ByHd8LOC.js} +1 -1
  23. package/browser/chunk-CCjiYUwJ.js +1 -0
  24. package/browser/{chunk-KIJUJ9nq.js → chunk-CDVp9M5o.js} +1 -1
  25. package/browser/{chunk-DZUhjamf.js → chunk-CWhMBwZt.js} +1 -1
  26. package/browser/{chunk-S9BROQKc.js → chunk-CY4cIdrD.js} +1 -1
  27. package/browser/{chunk-BPkyqr-f.js → chunk-CaZu6-ik.js} +1 -1
  28. package/browser/{chunk-C0KRHI6e.js → chunk-CfLw6giw.js} +1 -1
  29. package/browser/{chunk-CtHF-uul.js → chunk-CgZso3Sn.js} +1 -1
  30. package/browser/{chunk-CGn0orvL.js → chunk-Cjnbx8x8.js} +1 -1
  31. package/browser/{chunk-AB2V4DzP.js → chunk-CrDpiJQ_.js} +1 -1
  32. package/browser/{chunk-B3KKH9dW.js → chunk-CrtwjGyv.js} +1 -1
  33. package/browser/{chunk-CEQ5C5Tx.js → chunk-CvSL9m7J.js} +1 -1
  34. package/browser/{chunk-1mA1C1Ia.js → chunk-D0hAJFb0.js} +1 -1
  35. package/browser/{chunk-Bx_FH6m3.js → chunk-D1wn67qT.js} +1 -1
  36. package/browser/{chunk-VE530Qd2.js → chunk-D2JaJwBk.js} +1 -1
  37. package/browser/{chunk-4QqbIPaR.js → chunk-DFN1Pyx5.js} +1 -1
  38. package/browser/{chunk-DzWQQKpk.js → chunk-DHVomWlH.js} +1 -1
  39. package/browser/{chunk-BjFLkaZE.js → chunk-DKZE1MMp.js} +1 -1
  40. package/browser/{chunk-B4hQ_D8H.js → chunk-DMb_O3oJ.js} +1 -1
  41. package/browser/{chunk-Bk2EXxig.js → chunk-DQhceK5b.js} +1 -1
  42. package/browser/chunk-DRINXf1H.js +1 -0
  43. package/browser/{chunk-DZuvl0-q.js → chunk-DRl5lKc8.js} +1 -1
  44. package/browser/{chunk-CJGzYd_S.js → chunk-DSWc3xOX.js} +1 -1
  45. package/browser/{chunk-CNmZmLwF.js → chunk-DTO-7qsb.js} +1 -1
  46. package/browser/{chunk-CJxkwaxD.js → chunk-DYl74_xV.js} +1 -1
  47. package/browser/{chunk-DR5zNU0n.js → chunk-Dg2L56ka.js} +1 -1
  48. package/browser/{chunk-CG3MF0H4.js → chunk-DkYkMN4g.js} +1 -1
  49. package/browser/{chunk-bgvmHk7z.js → chunk-Dl_uhmYA.js} +1 -1
  50. package/browser/{chunk-CK18gZ63.js → chunk-DmspnNZU.js} +1 -1
  51. package/browser/{chunk-Cq3KqN1m.js → chunk-DngrH8va.js} +1 -1
  52. package/browser/{chunk-BpSHA6TV.js → chunk-DoBiZHJP.js} +1 -1
  53. package/browser/{chunk-D8sYWCcr.js → chunk-Dq_iutg_.js} +1 -1
  54. package/browser/{chunk-DVrM3JI8.js → chunk-DrktTXS1.js} +1 -1
  55. package/browser/{chunk-BrUYkz33.js → chunk-DzIeB2JV.js} +1 -1
  56. package/browser/{chunk-CnEa9fH2.js → chunk-Fswp1zS2.js} +1 -1
  57. package/browser/chunk-I798FyiF.js +1 -0
  58. package/browser/chunk-JXiqGD2F.js +1 -0
  59. package/browser/{chunk-DqzTsn7a.js → chunk-KJgXoqSt.js} +1 -1
  60. package/browser/{chunk-BopMYlkE.js → chunk-WJVIVGQ_.js} +1 -1
  61. package/browser/{chunk-DAk8SIkq.js → chunk-XRvc0QGl.js} +1 -1
  62. package/browser/{chunk-BFY0pXEf.js → chunk-Xqo-i29q.js} +1 -1
  63. package/browser/{chunk-CkBh9-Fw.js → chunk-ZI_RF6mJ.js} +1 -1
  64. package/browser/{chunk-DstI03OT.js → chunk-amKg4vsy.js} +1 -1
  65. package/browser/{chunk-QcmfFN_C.js → chunk-gfpawxnm.js} +1 -1
  66. package/browser/{chunk-CniyJRG1.js → chunk-nyQxv1ai.js} +1 -1
  67. package/browser/{chunk-B_gHVcU6.js → chunk-qnkDdlfN.js} +1 -1
  68. package/browser/{chunk-DmNKvrHl.js → chunk-s2nIreh9.js} +1 -1
  69. package/browser/{chunk-CglVp4ZH.js → chunk-tpkg6uRN.js} +1 -1
  70. package/browser/{chunk-BXZoje_o.js → chunk-vuYNru7F.js} +1 -1
  71. package/browser/{chunk-D-l2ORqm.js → chunk-zoDBYyjf.js} +1 -1
  72. package/browser/index.html +1 -1
  73. package/browser/{main-2EYBZUJC.js → main-COD2LZKB.js} +13 -13
  74. package/package.json +1 -1
  75. package/browser/chunk-BWcVMw4T.js +0 -1
  76. package/browser/chunk-D-QPhn7p.js +0 -1
  77. package/browser/chunk-D3BAOO_0.js +0 -1
  78. package/browser/chunk-DnMJl9Ao.js +0 -1
  79. package/browser/chunk-kFOHrPbJ.js +0 -10
  80. package/browser/chunk-lU3996br.js +0 -1
@@ -1 +1 @@
1
- import {m}from'./chunk-kFOHrPbJ.js';import {g,ao as V,G,C as Ce$1,da as M,a as Gi,b as U,a7 as ya,W as br,x,w,e as xw,k as ws,q as Rg,n as GC,o as pl,J as Jw,X as XE,a5 as vl,a8 as Yg,y as eC,a9 as lC,S as Sg,a3 as VI,t as rC,bo as tC,ac as gC,v as bg,A as Ug,a6 as UI,z as oC,aa as If,ab as wf}from'./main-2EYBZUJC.js';import {o as z,z as ze,k as _t,b as _e$1,n as ni,J as Jn,Q as Qn,e as ei,Y as Ye,A as At,Z as Zn,l as Xn,C as Cn,E as En,p as An,q as Ct,V as Vt}from'./chunk-CZmNdEYy.js';import'./chunk-DqzTsn7a.js';import'./chunk-Bx_FH6m3.js';import'./chunk-BPkyqr-f.js';var ne=(i,t)=>t.id;function ie(i,t){i&1&&(ws(0,"p",5),GC(1,"Loading\u2026"),pl());}function ae(i,t){i&1&&(ws(0,"span",12),GC(1,"Name is required."),pl());}function le(i,t){if(i&1&&(ws(0,"p",32),GC(1),pl(),ws(2,"span",26),GC(3,"Agent Config cannot be changed after creation."),pl()),i&2){let e=gC(3);XE(),Yg(e.resolveAgentConfigName(e.agentConfigIdControl.value));}}function me(i,t){if(i&1&&(ws(0,"option",34),GC(1),pl()),i&2){let e=t.$implicit;bg("ngValue",e.id),XE(),Yg(e.name);}}function pe(i,t){if(i&1&&(ws(0,"select",33)(1,"option",34),GC(2,"\u2014 None \u2014"),pl(),rC(3,me,2,2,"option",34,ne),pl(),VI(),ws(5,"span",26),GC(6,"Optional. Links this prompt to an agent as a starter. Immutable after creation."),pl()),i&2){let e=gC(3);bg("formControl",e.agentConfigIdControl),UI(),XE(),bg("ngValue",null),XE(2),oC(e.availableAgentConfigs());}}function de(i,t){if(i&1&&(ws(0,"div",8)(1,"label",31),GC(2,"Agent Config"),pl(),Jw(3,le,4,1)(4,pe,7,2),pl()),i&2){let e=gC(2);XE(3),eC(e.isEditMode()&&e.agentConfigIdControl.value?3:e.isEditMode()?-1:4);}}function ce(i,t){i&1&&(ws(0,"p",19),GC(1,"No parameters defined."),pl());}function se(i,t){i&1&&(ws(0,"span",12),GC(1,"Parameter name is required."),pl());}function _e(i,t){if(i&1){let e=lC();ws(0,"div",20)(1,"div",35)(2,"div",36)(3,"label",37),GC(4,"Name "),ws(5,"span",10),GC(6,"*"),pl()(),Sg(7,"input",38),VI(),Jw(8,se,2,0,"span",12),pl(),ws(9,"div",36)(10,"label",37),GC(11,"Description"),pl(),Sg(12,"input",39),VI(),pl(),ws(13,"div",36)(14,"label",37),GC(15,"Default value"),pl(),Sg(16,"input",40),VI(),pl()(),ws(17,"button",41),Rg("click",function(){let m=If(e).$index,d=gC(2);return wf(d.removeParameter(m))}),GC(18," \xD7 "),pl()();}if(i&2){let e=t.$implicit,l=t.$index;bg("formGroupName",l),XE(3),bg("for","param-name-"+l),XE(4),Ug("prompt-form__input--invalid",e.controls.name.invalid&&e.controls.name.touched),bg("id","param-name-"+l),UI(),XE(),eC(e.controls.name.invalid&&e.controls.name.touched?8:-1),XE(2),bg("for","param-desc-"+l),XE(2),bg("id","param-desc-"+l),UI(),XE(2),bg("for","param-default-"+l),XE(2),bg("id","param-default-"+l),UI();}}function fe(i,t){i&1&&(ws(0,"span",12),GC(1,"Content entry must not be blank."),pl());}function ue(i,t){if(i&1){let e=lC();ws(0,"div",22)(1,"span",42),GC(2),pl(),ws(3,"div",43),Sg(4,"textarea",44),VI(),Jw(5,fe,2,0,"span",12),pl(),ws(6,"button",45),Rg("click",function(){let m=If(e).$index,d=gC(2);return wf(d.removeContentEntry(m))}),GC(7," \xD7 "),pl()();}if(i&2){let e=t.$implicit,l=t.$index,m=gC(2);XE(2),Yg(l+1),XE(2),Ug("prompt-form__textarea--invalid",e.invalid&&e.touched),bg("formControlName",l),UI(),XE(),eC(e.invalid&&e.touched?5:-1),XE(),bg("disabled",m.contentArray.length===1);}}function ge(i,t){if(i&1&&(ws(0,"p",23),GC(1),pl()),i&2){let e=gC(2);XE(),Yg(e.errorMessage());}}function Ce(i,t){i&1&&(ws(0,"span",12),GC(1,"Invalid JSON."),pl());}function xe(i,t){if(i&1){let e=lC();ws(0,"button",46),Rg("click",function(){If(e);let m=gC(2);return wf(m.exportYaml())}),GC(1),pl();}if(i&2){let e=gC(2);bg("disabled",e.isExporting()),XE(),vl(" ",e.isExporting()?"Exporting\u2026":"Export as YAML"," ");}}function ve(i,t){if(i&1){let e=lC();ws(0,"form",7),Rg("ngSubmit",function(){If(e);let m=gC();return wf(m.submit())}),ws(1,"div",8)(2,"label",9),GC(3,"Name "),ws(4,"span",10),GC(5,"*"),pl()(),Sg(6,"input",11),VI(),Jw(7,ae,2,0,"span",12),pl(),ws(8,"div",8)(9,"label",13),GC(10,"Description"),pl(),Sg(11,"input",14),VI(),pl(),Jw(12,de,5,1,"div",8),ws(13,"fieldset",15)(14,"legend",16),GC(15," Parameters "),ws(16,"span",17),GC(17,"Named placeholders used in content"),pl()(),ws(18,"p",18),GC(19," Each parameter must have a name and a default value. Use "),ws(20,"code"),GC(21),pl(),GC(22," in content entries to reference them. "),pl(),Jw(23,ce,2,0,"p",19),rC(24,_e,19,10,"div",20,tC),ws(26,"button",21),Rg("click",function(){If(e);let m=gC();return wf(m.addParameter())}),GC(27,"+ Add parameter"),pl()(),ws(28,"fieldset",15)(29,"legend",16),GC(30," Content "),ws(31,"span",10),GC(32,"*"),pl(),ws(33,"span",17),GC(34,"Ordered list of text commands"),pl()(),ws(35,"p",18),GC(36," Each content entry is a command. Use "),ws(37,"code"),GC(38,"@AgentName"),pl(),GC(39," to target an agent, "),ws(40,"code"),GC(41,"/promptName param1 param2"),pl(),GC(42," to call another prompt, and "),ws(43,"code"),GC(44),pl(),GC(45," for parameter placeholders. "),pl(),rC(46,ue,8,6,"div",22,tC),ws(48,"button",21),Rg("click",function(){If(e);let m=gC();return wf(m.addContentEntry())}),GC(49,"+ Add content entry"),pl()(),Jw(50,ge,2,1,"p",23),ws(51,"div",8)(52,"label",24),GC(53,"External Metadata"),pl(),Sg(54,"textarea",25),VI(),Jw(55,Ce,2,0,"span",12),ws(56,"span",26),GC(57,"Optional. Opaque JSON object stored as-is. Leave empty to clear."),pl()(),ws(58,"div",27)(59,"button",28),GC(60),pl(),Jw(61,xe,2,2,"button",29),ws(62,"button",30),Rg("click",function(){If(e);let m=gC();return wf(m.cancel())}),GC(63,"Cancel"),pl()()();}if(i&2){let e=gC();bg("formGroup",e.form),XE(6),Ug("prompt-form__input--invalid",e.nameControl.invalid&&e.nameControl.touched),bg("formControl",e.nameControl),UI(),XE(),eC(e.nameControl.invalid&&e.nameControl.touched?7:-1),XE(4),bg("formControl",e.descriptionControl),UI(),XE(),eC(e.availableAgentConfigs().length>0?12:-1),XE(),bg("formArrayName","parameters"),XE(8),Yg(e.paramPlaceholderSyntax),XE(2),eC(e.parametersArray.length===0?23:-1),XE(),oC(e.parametersArray.controls),XE(4),bg("formArrayName","content"),XE(16),Yg(e.paramPlaceholderSyntax),XE(2),oC(e.contentArray.controls),XE(4),eC(e.errorMessage()?50:-1),XE(4),bg("formControl",e.externalMetadataJsonControl),UI(),XE(),eC(e.externalMetadataJsonControl.invalid&&e.externalMetadataJsonControl.touched?55:-1),XE(4),bg("disabled",e.form.invalid||e.isSubmitting()),XE(),vl(" ",e.isEditMode()?"Save changes":"Create"," "),XE(),eC(e.isEditMode()?61:-1);}}var re=class i{route=g(V);router=g(G);destroyRef=g(Ce$1);promptState=g(m);agentConfigController=g(M);namespaceId=this.route.snapshot.params.namespaceId;isPlatformMode=!this.namespaceId;form=new z({name:new _t("",{nonNullable:true,validators:[_e$1.required,_e$1.minLength(1)]}),description:new _t(null),agentConfigId:new _t(null),externalMetadataJson:new _t("",{nonNullable:true,validators:[be]}),content:new ze([this.createContentControl()],{validators:[_e$1.required]}),parameters:new ze([])});get nameControl(){return this.form.controls.name}get descriptionControl(){return this.form.controls.description}get agentConfigIdControl(){return this.form.controls.agentConfigId}get externalMetadataJsonControl(){return this.form.controls.externalMetadataJson}get contentArray(){return this.form.controls.content}get parametersArray(){return this.form.controls.parameters}isEditMode=Gi(false);isSubmitting=Gi(false);isLoading=Gi(false);isExporting=Gi(false);errorMessage=Gi(null);paramPlaceholderSyntax="{{paramName}}";agentConfigs=Gi([]);availableAgentConfigs=this.agentConfigs.asReadonly();existingPrompt=null;ngOnInit(){let t=this.route.snapshot.paramMap.get("promptId");t&&(this.isEditMode.set(true),this.loadPrompt(t)),this.isPlatformMode?this.loadPlatformAgentConfigs():this.namespaceId&&this.loadAgentConfigs(this.namespaceId);}loadPrompt(t){this.isLoading.set(true),this.promptState.getById(t).pipe(U(this.destroyRef)).subscribe({next:e=>{this.existingPrompt=e,this.hydrateForm(e),this.isLoading.set(false);},error:()=>{this.isLoading.set(false),this.navigateBack();}});}loadAgentConfigs(t){this.agentConfigController.listByParentAgentConfig(t).pipe(U(this.destroyRef),ya(()=>br([]))).subscribe(e=>this.agentConfigs.set(e));}loadPlatformAgentConfigs(){this.agentConfigController.listPlatformAgentsAgentConfig().pipe(U(this.destroyRef),ya(()=>br([]))).subscribe(t=>this.agentConfigs.set(t));}hydrateForm(t){this.nameControl.setValue(t.name),this.descriptionControl.setValue(t.description??null),this.agentConfigIdControl.setValue(t.agentConfigId??null),this.contentArray.clear(),(t.content.length>0?t.content:[""]).forEach(l=>this.contentArray.push(this.createContentControl(l))),this.parametersArray.clear(),(t.parameters??[]).forEach(l=>this.parametersArray.push(this.createParameterGroup(l))),this.externalMetadataJsonControl.setValue(t.externalMetadata?JSON.stringify(t.externalMetadata,null,2):"");}resolveAgentConfigName(t){return this.agentConfigs().find(e=>e.id===t)?.name??t}createContentControl(t=""){return new _t(t,{nonNullable:true,validators:[_e$1.required,_e$1.pattern(/\S/)]})}addContentEntry(){this.contentArray.push(this.createContentControl());}removeContentEntry(t){this.contentArray.length>1&&this.contentArray.removeAt(t);}createParameterGroup(t){return new z({name:new _t(t?.name??"",{nonNullable:true,validators:[_e$1.required,_e$1.minLength(1)]}),description:new _t(t?.description??null),defaultValue:new _t(t?.defaultValue??"",{nonNullable:true,validators:[_e$1.required]})})}addParameter(){this.parametersArray.push(this.createParameterGroup());}removeParameter(t){this.parametersArray.removeAt(t);}submit(){if(this.form.invalid||this.isSubmitting())return;this.isSubmitting.set(true);let t=this.isEditMode()&&!!this.existingPrompt?.id,e=x(w({},this.existingPrompt??{}),{namespaceId:this.namespaceId,sourceLanguage:this.existingPrompt?.sourceLanguage??"en",name:this.nameControl.value.trim(),description:this.descriptionControl.value?.trim()||void 0,content:this.contentArray.controls.map(d=>d.value.trim()),parameters:this.parametersArray.controls.map(d=>({name:d.controls.name.value.trim(),description:d.controls.description.value?.trim()||void 0,defaultValue:d.controls.defaultValue.value.trim()}))});t||(e.agentConfigId=this.agentConfigIdControl.value||null);let l=this.externalMetadataJsonControl.value.trim();e.externalMetadata=l?JSON.parse(l):null;let m=t?this.promptState.update(this.existingPrompt.id,e):this.promptState.create(e);this.errorMessage.set(null),m.pipe(U(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:d=>{this.isSubmitting.set(false),d.status===409?this.errorMessage.set(`A prompt named "${e.name}" already exists in this scope.`):d.status===400?this.errorMessage.set(d.error?.message??"Invalid prompt data."):this.errorMessage.set("An unexpected error occurred. Please try again.");}});}exportYaml(){let t=this.existingPrompt?.id;!t||this.isExporting()||(this.isExporting.set(true),this.promptState.exportAsYaml(t).pipe(U(this.destroyRef)).subscribe({next:e=>{let l=new Blob([e],{type:"application/yaml"}),m=URL.createObjectURL(l),d=document.createElement("a");d.href=m,d.download=`${this.existingPrompt?.name??"prompt"}.yaml`,d.click(),URL.revokeObjectURL(m),this.isExporting.set(false);},error:()=>this.isExporting.set(false)}));}cancel(){this.navigateBack();}navigateBack(){this.isPlatformMode?this.router.navigate(["/agentos","admin","prompts"]):this.router.navigate(["/agentos",this.namespaceId,"prompts"]);}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=xw({type:i,selectors:[["agentos-prompt-form"]],decls:10,vars:3,consts:[[1,"prompt-form"],[1,"prompt-form__header"],["type","button","title","Back to prompts",1,"prompt-form__back",3,"click"],[1,"prompt-form__back-icon"],[1,"prompt-form__title"],[1,"prompt-form__loading"],[1,"prompt-form__form",3,"formGroup"],[1,"prompt-form__form",3,"ngSubmit","formGroup"],[1,"prompt-form__field"],["for","prompt-name",1,"prompt-form__label"],["aria-hidden","true"],["id","prompt-name","type","text","placeholder","e.g. Summarise meeting notes","autocomplete","off",1,"prompt-form__input",3,"formControl"],[1,"prompt-form__field-error"],["for","prompt-description",1,"prompt-form__label"],["id","prompt-description","type","text","placeholder","Optional \u2014 short description of this prompt","autocomplete","off",1,"prompt-form__input",3,"formControl"],[1,"prompt-form__section",3,"formArrayName"],[1,"prompt-form__label"],[1,"prompt-form__label-hint"],[1,"prompt-form__section-hint"],[1,"prompt-form__empty-hint"],[1,"prompt-form__param-row",3,"formGroupName"],["type","button",1,"prompt-form__add-btn",3,"click"],[1,"prompt-form__content-row"],[1,"prompt-form__error"],["for","prompt-external-metadata",1,"prompt-form__label"],["id","prompt-external-metadata","rows","6","placeholder",'{ "key": "value" }',"spellcheck","false","autocomplete","off",1,"prompt-form__textarea","prompt-form__textarea--code",3,"formControl"],[1,"prompt-form__field-hint"],[1,"prompt-form__actions"],["type","submit",1,"prompt-form__btn","prompt-form__btn--primary",3,"disabled"],["type","button",1,"prompt-form__btn","prompt-form__btn--export",3,"disabled"],["type","button",1,"prompt-form__btn",3,"click"],["for","prompt-agent-config",1,"prompt-form__label"],[1,"prompt-form__readonly-value"],["id","prompt-agent-config",1,"prompt-form__select",3,"formControl"],[3,"ngValue"],[1,"prompt-form__param-fields"],[1,"prompt-form__field","prompt-form__field--inline"],[1,"prompt-form__label",3,"for"],["type","text","placeholder","e.g. language","formControlName","name","autocomplete","off",1,"prompt-form__input",3,"id"],["type","text","placeholder","Optional","formControlName","description","autocomplete","off",1,"prompt-form__input",3,"id"],["type","text","placeholder","e.g. English","formControlName","defaultValue","autocomplete","off",1,"prompt-form__input",3,"id"],["type","button","title","Remove this parameter",1,"prompt-form__remove-btn",3,"click"],[1,"prompt-form__content-index"],[1,"prompt-form__content-field"],["rows","4","placeholder","Enter a command\u2026",1,"prompt-form__textarea",3,"formControlName"],["type","button","title","Remove this entry",1,"prompt-form__remove-btn",3,"click","disabled"],["type","button",1,"prompt-form__btn","prompt-form__btn--export",3,"click","disabled"]],template:function(e,l){e&1&&(ws(0,"div",0)(1,"header",1)(2,"button",2),Rg("click",function(){return l.cancel()}),ws(3,"span",3),GC(4,"\u2190"),pl(),GC(5),pl(),ws(6,"h1",4),GC(7),pl()(),Jw(8,ie,2,0,"p",5)(9,ve,64,18,"form",6),pl()),e&2&&(XE(5),vl(" ",l.isPlatformMode?"Platform prompts":"Prompts"," "),XE(2),Yg(l.isEditMode()?"Edit prompt":"New prompt"),XE(),eC(l.isLoading()?8:9));},dependencies:[ni,Jn,Qn,ei,Ye,At,Zn,Xn,Cn,En,An,Ct,Vt],styles:[".prompt-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.prompt-form__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.prompt-form__back[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.375rem;background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-accent)}.prompt-form__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.prompt-form__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.prompt-form__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:700;color:var(--color-text);letter-spacing:-.02em}.prompt-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:.9rem;margin:0}.prompt-form__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.25rem}.prompt-form__field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.prompt-form__field--inline[_ngcontent-%COMP%]{flex:1}.prompt-form__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text)}.prompt-form__label-hint[_ngcontent-%COMP%]{font-weight:400;color:var(--color-text-secondary);margin-left:.375rem}.prompt-form__select[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border-radius:0;border:1px solid var(--color-divider);background:var(--color-surface);color:var(--color-text);font-size:.9375rem;font-family:inherit;outline:none;box-sizing:border-box;cursor:pointer;appearance:auto;transition:border-color .15s ease}.prompt-form__select[_ngcontent-%COMP%]:focus{border-color:var(--color-accent)}.prompt-form__field-hint[_ngcontent-%COMP%]{font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.prompt-form__readonly-value[_ngcontent-%COMP%]{margin:0;padding:.5rem .875rem;border-radius:0;background:var(--color-bg-hover);border:1px solid var(--color-divider);color:var(--color-text);font-size:.9375rem}.prompt-form__input[_ngcontent-%COMP%], .prompt-form__textarea[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border-radius:0;border:1px solid var(--color-divider);background:var(--color-surface);color:var(--color-text);font-size:.9375rem;font-family:inherit;outline:none;box-sizing:border-box;transition:border-color .15s ease}.prompt-form__input[_ngcontent-%COMP%]:focus, .prompt-form__textarea[_ngcontent-%COMP%]:focus{border-color:var(--color-accent)}.prompt-form__input[_ngcontent-%COMP%]::placeholder, .prompt-form__textarea[_ngcontent-%COMP%]::placeholder{color:var(--color-neutral-500)}.prompt-form__textarea[_ngcontent-%COMP%]{resize:vertical;min-height:100px;line-height:1.5}.prompt-form__textarea--code[_ngcontent-%COMP%]{font-family:monospace;font-size:.85rem;resize:vertical}.prompt-form__section[_ngcontent-%COMP%]{border:1px solid var(--color-divider);border-radius:0;padding:1rem;margin:0;display:flex;flex-direction:column;gap:.75rem}.prompt-form__section-hint[_ngcontent-%COMP%]{margin:0;font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.prompt-form__empty-hint[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--color-text-secondary);font-style:italic}.prompt-form__content-row[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:flex-start}.prompt-form__content-field[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.25rem}.prompt-form__content-index[_ngcontent-%COMP%]{flex-shrink:0;width:1.5rem;padding-top:.6rem;font-size:.8rem;font-weight:600;color:var(--color-text-secondary);text-align:right;-webkit-user-select:none;user-select:none}.prompt-form__param-row[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:flex-end;padding:.75rem;border-radius:0;background:var(--color-bg-hover)}.prompt-form__param-fields[_ngcontent-%COMP%]{flex:1;display:flex;gap:.75rem;flex-wrap:wrap}.prompt-form__add-btn[_ngcontent-%COMP%]{align-self:flex-start;padding:.4rem .875rem;border-radius:0;border:1px solid var(--color-divider);background:transparent;color:var(--color-accent);font-size:.875rem;font-family:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease}.prompt-form__add-btn[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover);border-color:var(--color-accent)}.prompt-form__remove-btn[_ngcontent-%COMP%]{flex-shrink:0;width:1.75rem;height:1.75rem;display:flex;align-items:center;justify-content:center;border-radius:0;border:1px solid transparent;background:transparent;color:var(--color-neutral-500);font-size:1rem;line-height:1;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.prompt-form__remove-btn[_ngcontent-%COMP%]:hover:not(:disabled){background:color-mix(in srgb,var(--red) 10%,transparent);color:var(--red);border-color:var(--red)}.prompt-form__remove-btn[_ngcontent-%COMP%]:disabled{opacity:.3;cursor:not-allowed}.prompt-form__error[_ngcontent-%COMP%]{margin:0;padding:.625rem .875rem;border-radius:0;background:color-mix(in srgb,var(--red) 10%,transparent);border:1px solid var(--red);color:var(--red);font-size:.875rem;line-height:1.4}.prompt-form__field-error[_ngcontent-%COMP%]{font-size:.8rem;color:var(--red);line-height:1.3}.prompt-form__input--invalid[_ngcontent-%COMP%], .prompt-form__textarea--invalid[_ngcontent-%COMP%]{border-color:var(--red)}.prompt-form__input--invalid[_ngcontent-%COMP%]:focus, .prompt-form__textarea--invalid[_ngcontent-%COMP%]:focus{border-color:var(--red)}.prompt-form__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.prompt-form__btn[_ngcontent-%COMP%]{padding:.6rem 1.25rem;border-radius:0;border:1px solid var(--color-divider);background:transparent;color:var(--color-text);font-size:13px;font-family:var(--font-heading);font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease}.prompt-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-neutral-500)}.prompt-form__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.prompt-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.prompt-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-accent-700);border-color:var(--color-accent-700)}.prompt-form__btn--export[_ngcontent-%COMP%]{border-color:var(--color-divider);color:var(--color-text-secondary)}.prompt-form__btn--export[_ngcontent-%COMP%]:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}"]})};function be(i){let t=i.value?.trim();if(!t)return null;try{return JSON.parse(t),null}catch(e){return {invalidJson:true}}}export{re as PromptFormComponent};
1
+ import {m}from'./chunk-BvidtKG2.js';import {g,ao as V,G,C as Ce$1,da as M,a as Gi,b as U,a7 as ya,W as br,x,w,e as xw,k as ws,q as Rg,n as GC,o as pl,J as Jw,X as XE,a5 as vl,a8 as Yg,y as eC,a9 as lC,S as Sg,a3 as VI,t as rC,bo as tC,ac as gC,v as bg,A as Ug,a6 as UI,z as oC,aa as If,ab as wf}from'./main-COD2LZKB.js';import {o as z,z as ze,k as _t,b as _e$1,n as ni,J as Jn,Q as Qn,e as ei,Y as Ye,A as At,Z as Zn,l as Xn,C as Cn,E as En,p as An,q as Ct,V as Vt}from'./chunk-Bb0cfZpR.js';import'./chunk-KJgXoqSt.js';import'./chunk-D1wn67qT.js';import'./chunk-CaZu6-ik.js';var ne=(i,t)=>t.id;function ie(i,t){i&1&&(ws(0,"p",5),GC(1,"Loading\u2026"),pl());}function ae(i,t){i&1&&(ws(0,"span",12),GC(1,"Name is required."),pl());}function le(i,t){if(i&1&&(ws(0,"p",32),GC(1),pl(),ws(2,"span",26),GC(3,"Agent Config cannot be changed after creation."),pl()),i&2){let e=gC(3);XE(),Yg(e.resolveAgentConfigName(e.agentConfigIdControl.value));}}function me(i,t){if(i&1&&(ws(0,"option",34),GC(1),pl()),i&2){let e=t.$implicit;bg("ngValue",e.id),XE(),Yg(e.name);}}function pe(i,t){if(i&1&&(ws(0,"select",33)(1,"option",34),GC(2,"\u2014 None \u2014"),pl(),rC(3,me,2,2,"option",34,ne),pl(),VI(),ws(5,"span",26),GC(6,"Optional. Links this prompt to an agent as a starter. Immutable after creation."),pl()),i&2){let e=gC(3);bg("formControl",e.agentConfigIdControl),UI(),XE(),bg("ngValue",null),XE(2),oC(e.availableAgentConfigs());}}function de(i,t){if(i&1&&(ws(0,"div",8)(1,"label",31),GC(2,"Agent Config"),pl(),Jw(3,le,4,1)(4,pe,7,2),pl()),i&2){let e=gC(2);XE(3),eC(e.isEditMode()&&e.agentConfigIdControl.value?3:e.isEditMode()?-1:4);}}function ce(i,t){i&1&&(ws(0,"p",19),GC(1,"No parameters defined."),pl());}function se(i,t){i&1&&(ws(0,"span",12),GC(1,"Parameter name is required."),pl());}function _e(i,t){if(i&1){let e=lC();ws(0,"div",20)(1,"div",35)(2,"div",36)(3,"label",37),GC(4,"Name "),ws(5,"span",10),GC(6,"*"),pl()(),Sg(7,"input",38),VI(),Jw(8,se,2,0,"span",12),pl(),ws(9,"div",36)(10,"label",37),GC(11,"Description"),pl(),Sg(12,"input",39),VI(),pl(),ws(13,"div",36)(14,"label",37),GC(15,"Default value"),pl(),Sg(16,"input",40),VI(),pl()(),ws(17,"button",41),Rg("click",function(){let m=If(e).$index,d=gC(2);return wf(d.removeParameter(m))}),GC(18," \xD7 "),pl()();}if(i&2){let e=t.$implicit,l=t.$index;bg("formGroupName",l),XE(3),bg("for","param-name-"+l),XE(4),Ug("prompt-form__input--invalid",e.controls.name.invalid&&e.controls.name.touched),bg("id","param-name-"+l),UI(),XE(),eC(e.controls.name.invalid&&e.controls.name.touched?8:-1),XE(2),bg("for","param-desc-"+l),XE(2),bg("id","param-desc-"+l),UI(),XE(2),bg("for","param-default-"+l),XE(2),bg("id","param-default-"+l),UI();}}function fe(i,t){i&1&&(ws(0,"span",12),GC(1,"Content entry must not be blank."),pl());}function ue(i,t){if(i&1){let e=lC();ws(0,"div",22)(1,"span",42),GC(2),pl(),ws(3,"div",43),Sg(4,"textarea",44),VI(),Jw(5,fe,2,0,"span",12),pl(),ws(6,"button",45),Rg("click",function(){let m=If(e).$index,d=gC(2);return wf(d.removeContentEntry(m))}),GC(7," \xD7 "),pl()();}if(i&2){let e=t.$implicit,l=t.$index,m=gC(2);XE(2),Yg(l+1),XE(2),Ug("prompt-form__textarea--invalid",e.invalid&&e.touched),bg("formControlName",l),UI(),XE(),eC(e.invalid&&e.touched?5:-1),XE(),bg("disabled",m.contentArray.length===1);}}function ge(i,t){if(i&1&&(ws(0,"p",23),GC(1),pl()),i&2){let e=gC(2);XE(),Yg(e.errorMessage());}}function Ce(i,t){i&1&&(ws(0,"span",12),GC(1,"Invalid JSON."),pl());}function xe(i,t){if(i&1){let e=lC();ws(0,"button",46),Rg("click",function(){If(e);let m=gC(2);return wf(m.exportYaml())}),GC(1),pl();}if(i&2){let e=gC(2);bg("disabled",e.isExporting()),XE(),vl(" ",e.isExporting()?"Exporting\u2026":"Export as YAML"," ");}}function ve(i,t){if(i&1){let e=lC();ws(0,"form",7),Rg("ngSubmit",function(){If(e);let m=gC();return wf(m.submit())}),ws(1,"div",8)(2,"label",9),GC(3,"Name "),ws(4,"span",10),GC(5,"*"),pl()(),Sg(6,"input",11),VI(),Jw(7,ae,2,0,"span",12),pl(),ws(8,"div",8)(9,"label",13),GC(10,"Description"),pl(),Sg(11,"input",14),VI(),pl(),Jw(12,de,5,1,"div",8),ws(13,"fieldset",15)(14,"legend",16),GC(15," Parameters "),ws(16,"span",17),GC(17,"Named placeholders used in content"),pl()(),ws(18,"p",18),GC(19," Each parameter must have a name and a default value. Use "),ws(20,"code"),GC(21),pl(),GC(22," in content entries to reference them. "),pl(),Jw(23,ce,2,0,"p",19),rC(24,_e,19,10,"div",20,tC),ws(26,"button",21),Rg("click",function(){If(e);let m=gC();return wf(m.addParameter())}),GC(27,"+ Add parameter"),pl()(),ws(28,"fieldset",15)(29,"legend",16),GC(30," Content "),ws(31,"span",10),GC(32,"*"),pl(),ws(33,"span",17),GC(34,"Ordered list of text commands"),pl()(),ws(35,"p",18),GC(36," Each content entry is a command. Use "),ws(37,"code"),GC(38,"@AgentName"),pl(),GC(39," to target an agent, "),ws(40,"code"),GC(41,"/promptName param1 param2"),pl(),GC(42," to call another prompt, and "),ws(43,"code"),GC(44),pl(),GC(45," for parameter placeholders. "),pl(),rC(46,ue,8,6,"div",22,tC),ws(48,"button",21),Rg("click",function(){If(e);let m=gC();return wf(m.addContentEntry())}),GC(49,"+ Add content entry"),pl()(),Jw(50,ge,2,1,"p",23),ws(51,"div",8)(52,"label",24),GC(53,"External Metadata"),pl(),Sg(54,"textarea",25),VI(),Jw(55,Ce,2,0,"span",12),ws(56,"span",26),GC(57,"Optional. Opaque JSON object stored as-is. Leave empty to clear."),pl()(),ws(58,"div",27)(59,"button",28),GC(60),pl(),Jw(61,xe,2,2,"button",29),ws(62,"button",30),Rg("click",function(){If(e);let m=gC();return wf(m.cancel())}),GC(63,"Cancel"),pl()()();}if(i&2){let e=gC();bg("formGroup",e.form),XE(6),Ug("prompt-form__input--invalid",e.nameControl.invalid&&e.nameControl.touched),bg("formControl",e.nameControl),UI(),XE(),eC(e.nameControl.invalid&&e.nameControl.touched?7:-1),XE(4),bg("formControl",e.descriptionControl),UI(),XE(),eC(e.availableAgentConfigs().length>0?12:-1),XE(),bg("formArrayName","parameters"),XE(8),Yg(e.paramPlaceholderSyntax),XE(2),eC(e.parametersArray.length===0?23:-1),XE(),oC(e.parametersArray.controls),XE(4),bg("formArrayName","content"),XE(16),Yg(e.paramPlaceholderSyntax),XE(2),oC(e.contentArray.controls),XE(4),eC(e.errorMessage()?50:-1),XE(4),bg("formControl",e.externalMetadataJsonControl),UI(),XE(),eC(e.externalMetadataJsonControl.invalid&&e.externalMetadataJsonControl.touched?55:-1),XE(4),bg("disabled",e.form.invalid||e.isSubmitting()),XE(),vl(" ",e.isEditMode()?"Save changes":"Create"," "),XE(),eC(e.isEditMode()?61:-1);}}var re=class i{route=g(V);router=g(G);destroyRef=g(Ce$1);promptState=g(m);agentConfigController=g(M);namespaceId=this.route.snapshot.params.namespaceId;isPlatformMode=!this.namespaceId;form=new z({name:new _t("",{nonNullable:true,validators:[_e$1.required,_e$1.minLength(1)]}),description:new _t(null),agentConfigId:new _t(null),externalMetadataJson:new _t("",{nonNullable:true,validators:[be]}),content:new ze([this.createContentControl()],{validators:[_e$1.required]}),parameters:new ze([])});get nameControl(){return this.form.controls.name}get descriptionControl(){return this.form.controls.description}get agentConfigIdControl(){return this.form.controls.agentConfigId}get externalMetadataJsonControl(){return this.form.controls.externalMetadataJson}get contentArray(){return this.form.controls.content}get parametersArray(){return this.form.controls.parameters}isEditMode=Gi(false);isSubmitting=Gi(false);isLoading=Gi(false);isExporting=Gi(false);errorMessage=Gi(null);paramPlaceholderSyntax="{{paramName}}";agentConfigs=Gi([]);availableAgentConfigs=this.agentConfigs.asReadonly();existingPrompt=null;ngOnInit(){let t=this.route.snapshot.paramMap.get("promptId");t&&(this.isEditMode.set(true),this.loadPrompt(t)),this.isPlatformMode?this.loadPlatformAgentConfigs():this.namespaceId&&this.loadAgentConfigs(this.namespaceId);}loadPrompt(t){this.isLoading.set(true),this.promptState.getById(t).pipe(U(this.destroyRef)).subscribe({next:e=>{this.existingPrompt=e,this.hydrateForm(e),this.isLoading.set(false);},error:()=>{this.isLoading.set(false),this.navigateBack();}});}loadAgentConfigs(t){this.agentConfigController.listByParentAgentConfig(t).pipe(U(this.destroyRef),ya(()=>br([]))).subscribe(e=>this.agentConfigs.set(e));}loadPlatformAgentConfigs(){this.agentConfigController.listPlatformAgentsAgentConfig().pipe(U(this.destroyRef),ya(()=>br([]))).subscribe(t=>this.agentConfigs.set(t));}hydrateForm(t){this.nameControl.setValue(t.name),this.descriptionControl.setValue(t.description??null),this.agentConfigIdControl.setValue(t.agentConfigId??null),this.contentArray.clear(),(t.content.length>0?t.content:[""]).forEach(l=>this.contentArray.push(this.createContentControl(l))),this.parametersArray.clear(),(t.parameters??[]).forEach(l=>this.parametersArray.push(this.createParameterGroup(l))),this.externalMetadataJsonControl.setValue(t.externalMetadata?JSON.stringify(t.externalMetadata,null,2):"");}resolveAgentConfigName(t){return this.agentConfigs().find(e=>e.id===t)?.name??t}createContentControl(t=""){return new _t(t,{nonNullable:true,validators:[_e$1.required,_e$1.pattern(/\S/)]})}addContentEntry(){this.contentArray.push(this.createContentControl());}removeContentEntry(t){this.contentArray.length>1&&this.contentArray.removeAt(t);}createParameterGroup(t){return new z({name:new _t(t?.name??"",{nonNullable:true,validators:[_e$1.required,_e$1.minLength(1)]}),description:new _t(t?.description??null),defaultValue:new _t(t?.defaultValue??"",{nonNullable:true,validators:[_e$1.required]})})}addParameter(){this.parametersArray.push(this.createParameterGroup());}removeParameter(t){this.parametersArray.removeAt(t);}submit(){if(this.form.invalid||this.isSubmitting())return;this.isSubmitting.set(true);let t=this.isEditMode()&&!!this.existingPrompt?.id,e=x(w({},this.existingPrompt??{}),{namespaceId:this.namespaceId,sourceLanguage:this.existingPrompt?.sourceLanguage??"en",name:this.nameControl.value.trim(),description:this.descriptionControl.value?.trim()||void 0,content:this.contentArray.controls.map(d=>d.value.trim()),parameters:this.parametersArray.controls.map(d=>({name:d.controls.name.value.trim(),description:d.controls.description.value?.trim()||void 0,defaultValue:d.controls.defaultValue.value.trim()}))});t||(e.agentConfigId=this.agentConfigIdControl.value||null);let l=this.externalMetadataJsonControl.value.trim();e.externalMetadata=l?JSON.parse(l):null;let m=t?this.promptState.update(this.existingPrompt.id,e):this.promptState.create(e);this.errorMessage.set(null),m.pipe(U(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:d=>{this.isSubmitting.set(false),d.status===409?this.errorMessage.set(`A prompt named "${e.name}" already exists in this scope.`):d.status===400?this.errorMessage.set(d.error?.message??"Invalid prompt data."):this.errorMessage.set("An unexpected error occurred. Please try again.");}});}exportYaml(){let t=this.existingPrompt?.id;!t||this.isExporting()||(this.isExporting.set(true),this.promptState.exportAsYaml(t).pipe(U(this.destroyRef)).subscribe({next:e=>{let l=new Blob([e],{type:"application/yaml"}),m=URL.createObjectURL(l),d=document.createElement("a");d.href=m,d.download=`${this.existingPrompt?.name??"prompt"}.yaml`,d.click(),URL.revokeObjectURL(m),this.isExporting.set(false);},error:()=>this.isExporting.set(false)}));}cancel(){this.navigateBack();}navigateBack(){this.isPlatformMode?this.router.navigate(["/agentos","admin","prompts"]):this.router.navigate(["/agentos",this.namespaceId,"prompts"]);}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=xw({type:i,selectors:[["agentos-prompt-form"]],decls:10,vars:3,consts:[[1,"prompt-form"],[1,"prompt-form__header"],["type","button","title","Back to prompts",1,"prompt-form__back",3,"click"],[1,"prompt-form__back-icon"],[1,"prompt-form__title"],[1,"prompt-form__loading"],[1,"prompt-form__form",3,"formGroup"],[1,"prompt-form__form",3,"ngSubmit","formGroup"],[1,"prompt-form__field"],["for","prompt-name",1,"prompt-form__label"],["aria-hidden","true"],["id","prompt-name","type","text","placeholder","e.g. Summarise meeting notes","autocomplete","off",1,"prompt-form__input",3,"formControl"],[1,"prompt-form__field-error"],["for","prompt-description",1,"prompt-form__label"],["id","prompt-description","type","text","placeholder","Optional \u2014 short description of this prompt","autocomplete","off",1,"prompt-form__input",3,"formControl"],[1,"prompt-form__section",3,"formArrayName"],[1,"prompt-form__label"],[1,"prompt-form__label-hint"],[1,"prompt-form__section-hint"],[1,"prompt-form__empty-hint"],[1,"prompt-form__param-row",3,"formGroupName"],["type","button",1,"prompt-form__add-btn",3,"click"],[1,"prompt-form__content-row"],[1,"prompt-form__error"],["for","prompt-external-metadata",1,"prompt-form__label"],["id","prompt-external-metadata","rows","6","placeholder",'{ "key": "value" }',"spellcheck","false","autocomplete","off",1,"prompt-form__textarea","prompt-form__textarea--code",3,"formControl"],[1,"prompt-form__field-hint"],[1,"prompt-form__actions"],["type","submit",1,"prompt-form__btn","prompt-form__btn--primary",3,"disabled"],["type","button",1,"prompt-form__btn","prompt-form__btn--export",3,"disabled"],["type","button",1,"prompt-form__btn",3,"click"],["for","prompt-agent-config",1,"prompt-form__label"],[1,"prompt-form__readonly-value"],["id","prompt-agent-config",1,"prompt-form__select",3,"formControl"],[3,"ngValue"],[1,"prompt-form__param-fields"],[1,"prompt-form__field","prompt-form__field--inline"],[1,"prompt-form__label",3,"for"],["type","text","placeholder","e.g. language","formControlName","name","autocomplete","off",1,"prompt-form__input",3,"id"],["type","text","placeholder","Optional","formControlName","description","autocomplete","off",1,"prompt-form__input",3,"id"],["type","text","placeholder","e.g. English","formControlName","defaultValue","autocomplete","off",1,"prompt-form__input",3,"id"],["type","button","title","Remove this parameter",1,"prompt-form__remove-btn",3,"click"],[1,"prompt-form__content-index"],[1,"prompt-form__content-field"],["rows","4","placeholder","Enter a command\u2026",1,"prompt-form__textarea",3,"formControlName"],["type","button","title","Remove this entry",1,"prompt-form__remove-btn",3,"click","disabled"],["type","button",1,"prompt-form__btn","prompt-form__btn--export",3,"click","disabled"]],template:function(e,l){e&1&&(ws(0,"div",0)(1,"header",1)(2,"button",2),Rg("click",function(){return l.cancel()}),ws(3,"span",3),GC(4,"\u2190"),pl(),GC(5),pl(),ws(6,"h1",4),GC(7),pl()(),Jw(8,ie,2,0,"p",5)(9,ve,64,18,"form",6),pl()),e&2&&(XE(5),vl(" ",l.isPlatformMode?"Platform prompts":"Prompts"," "),XE(2),Yg(l.isEditMode()?"Edit prompt":"New prompt"),XE(),eC(l.isLoading()?8:9));},dependencies:[ni,Jn,Qn,ei,Ye,At,Zn,Xn,Cn,En,An,Ct,Vt],styles:[".prompt-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.prompt-form__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.prompt-form__back[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.375rem;background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-accent)}.prompt-form__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.prompt-form__back-icon[_ngcontent-%COMP%]{font-size:1rem;line-height:1}.prompt-form__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:700;color:var(--color-text);letter-spacing:-.02em}.prompt-form__loading[_ngcontent-%COMP%]{color:var(--color-text-secondary);font-size:.9rem;margin:0}.prompt-form__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.25rem}.prompt-form__field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.prompt-form__field--inline[_ngcontent-%COMP%]{flex:1}.prompt-form__label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500;color:var(--color-text)}.prompt-form__label-hint[_ngcontent-%COMP%]{font-weight:400;color:var(--color-text-secondary);margin-left:.375rem}.prompt-form__select[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border-radius:0;border:1px solid var(--color-divider);background:var(--color-surface);color:var(--color-text);font-size:.9375rem;font-family:inherit;outline:none;box-sizing:border-box;cursor:pointer;appearance:auto;transition:border-color .15s ease}.prompt-form__select[_ngcontent-%COMP%]:focus{border-color:var(--color-accent)}.prompt-form__field-hint[_ngcontent-%COMP%]{font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.prompt-form__readonly-value[_ngcontent-%COMP%]{margin:0;padding:.5rem .875rem;border-radius:0;background:var(--color-bg-hover);border:1px solid var(--color-divider);color:var(--color-text);font-size:.9375rem}.prompt-form__input[_ngcontent-%COMP%], .prompt-form__textarea[_ngcontent-%COMP%]{width:100%;padding:.625rem .875rem;border-radius:0;border:1px solid var(--color-divider);background:var(--color-surface);color:var(--color-text);font-size:.9375rem;font-family:inherit;outline:none;box-sizing:border-box;transition:border-color .15s ease}.prompt-form__input[_ngcontent-%COMP%]:focus, .prompt-form__textarea[_ngcontent-%COMP%]:focus{border-color:var(--color-accent)}.prompt-form__input[_ngcontent-%COMP%]::placeholder, .prompt-form__textarea[_ngcontent-%COMP%]::placeholder{color:var(--color-neutral-500)}.prompt-form__textarea[_ngcontent-%COMP%]{resize:vertical;min-height:100px;line-height:1.5}.prompt-form__textarea--code[_ngcontent-%COMP%]{font-family:monospace;font-size:.85rem;resize:vertical}.prompt-form__section[_ngcontent-%COMP%]{border:1px solid var(--color-divider);border-radius:0;padding:1rem;margin:0;display:flex;flex-direction:column;gap:.75rem}.prompt-form__section-hint[_ngcontent-%COMP%]{margin:0;font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.prompt-form__empty-hint[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--color-text-secondary);font-style:italic}.prompt-form__content-row[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:flex-start}.prompt-form__content-field[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:.25rem}.prompt-form__content-index[_ngcontent-%COMP%]{flex-shrink:0;width:1.5rem;padding-top:.6rem;font-size:.8rem;font-weight:600;color:var(--color-text-secondary);text-align:right;-webkit-user-select:none;user-select:none}.prompt-form__param-row[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:flex-end;padding:.75rem;border-radius:0;background:var(--color-bg-hover)}.prompt-form__param-fields[_ngcontent-%COMP%]{flex:1;display:flex;gap:.75rem;flex-wrap:wrap}.prompt-form__add-btn[_ngcontent-%COMP%]{align-self:flex-start;padding:.4rem .875rem;border-radius:0;border:1px solid var(--color-divider);background:transparent;color:var(--color-accent);font-size:.875rem;font-family:inherit;cursor:pointer;transition:background .15s ease,border-color .15s ease}.prompt-form__add-btn[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover);border-color:var(--color-accent)}.prompt-form__remove-btn[_ngcontent-%COMP%]{flex-shrink:0;width:1.75rem;height:1.75rem;display:flex;align-items:center;justify-content:center;border-radius:0;border:1px solid transparent;background:transparent;color:var(--color-neutral-500);font-size:1rem;line-height:1;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.prompt-form__remove-btn[_ngcontent-%COMP%]:hover:not(:disabled){background:color-mix(in srgb,var(--red) 10%,transparent);color:var(--red);border-color:var(--red)}.prompt-form__remove-btn[_ngcontent-%COMP%]:disabled{opacity:.3;cursor:not-allowed}.prompt-form__error[_ngcontent-%COMP%]{margin:0;padding:.625rem .875rem;border-radius:0;background:color-mix(in srgb,var(--red) 10%,transparent);border:1px solid var(--red);color:var(--red);font-size:.875rem;line-height:1.4}.prompt-form__field-error[_ngcontent-%COMP%]{font-size:.8rem;color:var(--red);line-height:1.3}.prompt-form__input--invalid[_ngcontent-%COMP%], .prompt-form__textarea--invalid[_ngcontent-%COMP%]{border-color:var(--red)}.prompt-form__input--invalid[_ngcontent-%COMP%]:focus, .prompt-form__textarea--invalid[_ngcontent-%COMP%]:focus{border-color:var(--red)}.prompt-form__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;padding-top:.5rem}.prompt-form__btn[_ngcontent-%COMP%]{padding:.6rem 1.25rem;border-radius:0;border:1px solid var(--color-divider);background:transparent;color:var(--color-text);font-size:13px;font-family:var(--font-heading);font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease}.prompt-form__btn[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-neutral-500)}.prompt-form__btn[_ngcontent-%COMP%]:disabled{opacity:.45;cursor:not-allowed}.prompt-form__btn--primary[_ngcontent-%COMP%]{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.prompt-form__btn--primary[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--color-accent-700);border-color:var(--color-accent-700)}.prompt-form__btn--export[_ngcontent-%COMP%]{border-color:var(--color-divider);color:var(--color-text-secondary)}.prompt-form__btn--export[_ngcontent-%COMP%]:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}"]})};function be(i){let t=i.value?.trim();if(!t)return null;try{return JSON.parse(t),null}catch(e){return {invalidJson:true}}}export{re as PromptFormComponent};
@@ -1 +1 @@
1
- import {R}from'./chunk-4NMdLPHF.js';import {c}from'./chunk-CkBh9-Fw.js';import {g,G,C as Ce,a as Gi,m as mT,b as U,e as xw,k as ws,q as Rg,o as pl,af as Eg,u as CC,v as bg,J as Jw,ac as gC,y as eC,a9 as lC,aa as If,ab as wf,ag as fT}from'./main-2EYBZUJC.js';import {W as Wn,S as Se}from'./chunk-Bx_FH6m3.js';import'./chunk-BPkyqr-f.js';import'./chunk-CZmNdEYy.js';function M(i,e){if(i&1){let t=lC();ws(0,"agentos-scheduled-prompt-item",4),Rg("enableRequested",function(n){If(t);let r=gC(2);return wf(r.enablePrompt(n))})("disableRequested",function(n){If(t);let r=gC(2);return wf(r.disablePrompt(n))})("deleteRequested",function(n){If(t);let r=gC(2);return wf(r.deletePrompt(n))}),pl();}i&2&&bg("definition",e)("platformMode",true);}function L(i,e){if(i&1&&Jw(0,M,1,2,"agentos-scheduled-prompt-item",3),i&2){let t,o=e.$implicit,n=gC();eC((t=n.resolvePrompt(o.id))?0:-1,t);}}var D=class i{router=g(G);destroyRef=g(Ce);state=g(c);prompts=Gi([]);isLoading=Gi(true);promptItems=mT(()=>this.prompts().map(e=>({id:e.id??"",name:e.name,description:e.description,badges:[{label:e.enabled?"Enabled":"Disabled",variant:e.enabled?"success":"warning"}]})));constructor(){this.state.listPlatform().pipe(U(this.destroyRef)).subscribe({next:e=>{this.prompts.set(e),this.isLoading.set(false);},error:()=>this.isLoading.set(false)});}goBack(){this.router.navigate(["/agentos","admin"]);}openCreateForm(){this.router.navigate(["/agentos","admin","scheduled-prompts","new"]);}enablePrompt(e){this.state.enable(e.id??"").pipe(U(this.destroyRef)).subscribe(t=>this.patchPrompt(t));}disablePrompt(e){this.state.disable(e.id??"").pipe(U(this.destroyRef)).subscribe(t=>this.patchPrompt(t));}deletePrompt(e){let t=e.id??"";this.state.delete(t).pipe(U(this.destroyRef)).subscribe(()=>this.prompts.update(o=>o.filter(n=>n.id!==t)));}resolvePrompt(e){return this.prompts().find(t=>t.id===e)??null}patchPrompt(e){this.prompts.update(t=>t.map(o=>o.id===e.id?e:o));}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=xw({type:i,selectors:[["agentos-platform-scheduled-prompts"]],decls:4,vars:4,consts:[["scheduledPromptItemTpl",""],["title","Platform Scheduled Prompts","emptyMessage","No platform scheduled prompts defined yet. Add one above.","cardMinWidth","420px",3,"createRequested","items","loading","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[3,"definition","platformMode"],[3,"enableRequested","disableRequested","deleteRequested","definition","platformMode"]],template:function(t,o){if(t&1&&(ws(0,"ds-entity-list",1),Rg("createRequested",function(){return o.openCreateForm()}),ws(1,"ds-icon-button",2),Rg("action",function(){return o.goBack()}),pl()(),Eg(2,L,1,1,"ng-template",null,0,fT)),t&2){let n=CC(3);bg("items",o.promptItems())("loading",o.isLoading())("showCreate",true)("itemTemplate",n);}},dependencies:[Wn,R,Se],encapsulation:2})};export{D as PlatformScheduledPromptsComponent};
1
+ import {R}from'./chunk-BA-NscEe.js';import {c}from'./chunk-ZI_RF6mJ.js';import {g,G,C as Ce,a as Gi,m as mT,b as U,e as xw,k as ws,q as Rg,o as pl,af as Eg,u as CC,v as bg,J as Jw,ac as gC,y as eC,a9 as lC,aa as If,ab as wf,ag as fT}from'./main-COD2LZKB.js';import {W as Wn,S as Se}from'./chunk-D1wn67qT.js';import'./chunk-CaZu6-ik.js';import'./chunk-Bb0cfZpR.js';function M(i,e){if(i&1){let t=lC();ws(0,"agentos-scheduled-prompt-item",4),Rg("enableRequested",function(n){If(t);let r=gC(2);return wf(r.enablePrompt(n))})("disableRequested",function(n){If(t);let r=gC(2);return wf(r.disablePrompt(n))})("deleteRequested",function(n){If(t);let r=gC(2);return wf(r.deletePrompt(n))}),pl();}i&2&&bg("definition",e)("platformMode",true);}function L(i,e){if(i&1&&Jw(0,M,1,2,"agentos-scheduled-prompt-item",3),i&2){let t,o=e.$implicit,n=gC();eC((t=n.resolvePrompt(o.id))?0:-1,t);}}var D=class i{router=g(G);destroyRef=g(Ce);state=g(c);prompts=Gi([]);isLoading=Gi(true);promptItems=mT(()=>this.prompts().map(e=>({id:e.id??"",name:e.name,description:e.description,badges:[{label:e.enabled?"Enabled":"Disabled",variant:e.enabled?"success":"warning"}]})));constructor(){this.state.listPlatform().pipe(U(this.destroyRef)).subscribe({next:e=>{this.prompts.set(e),this.isLoading.set(false);},error:()=>this.isLoading.set(false)});}goBack(){this.router.navigate(["/agentos","admin"]);}openCreateForm(){this.router.navigate(["/agentos","admin","scheduled-prompts","new"]);}enablePrompt(e){this.state.enable(e.id??"").pipe(U(this.destroyRef)).subscribe(t=>this.patchPrompt(t));}disablePrompt(e){this.state.disable(e.id??"").pipe(U(this.destroyRef)).subscribe(t=>this.patchPrompt(t));}deletePrompt(e){let t=e.id??"";this.state.delete(t).pipe(U(this.destroyRef)).subscribe(()=>this.prompts.update(o=>o.filter(n=>n.id!==t)));}resolvePrompt(e){return this.prompts().find(t=>t.id===e)??null}patchPrompt(e){this.prompts.update(t=>t.map(o=>o.id===e.id?e:o));}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=xw({type:i,selectors:[["agentos-platform-scheduled-prompts"]],decls:4,vars:4,consts:[["scheduledPromptItemTpl",""],["title","Platform Scheduled Prompts","emptyMessage","No platform scheduled prompts defined yet. Add one above.","cardMinWidth","420px",3,"createRequested","items","loading","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[3,"definition","platformMode"],[3,"enableRequested","disableRequested","deleteRequested","definition","platformMode"]],template:function(t,o){if(t&1&&(ws(0,"ds-entity-list",1),Rg("createRequested",function(){return o.openCreateForm()}),ws(1,"ds-icon-button",2),Rg("action",function(){return o.goBack()}),pl()(),Eg(2,L,1,1,"ng-template",null,0,fT)),t&2){let n=CC(3);bg("items",o.promptItems())("loading",o.isLoading())("showCreate",true)("itemTemplate",n);}},dependencies:[Wn,R,Se],encapsulation:2})};export{D as PlatformScheduledPromptsComponent};
@@ -31,5 +31,5 @@
31
31
  <style>:root{--color-bg:#f5f6f8;--color-bg-solid:#f5f6f8;--color-bg-secondary:rgba(255, 255, 255, .7);--color-bg-secondary-rgb:255 255 255;--color-text:#1d1d1f;--color-text-secondary:#6e6e73;--color-text-inverse:#ffffff;--color-text-tertiary:#a1a1a6;--color-primary:#007aff;--color-primary-hover:#0051d5;--color-accent:#8b5cf6;--color-link:#007aff;--color-border:rgba(0, 0, 0, .1);--color-border-light:rgba(40, 40, 40, .08);--color-input-bg:rgba(255, 255, 255, .8);--color-bg-hover:rgba(0, 0, 0, .04);--color-success:#34c759;--color-success-bg:#e3f5e1;--color-error:#ff3b30;--color-warning:#ff9500;--color-info:#5ac8fa;--color-message-user:rgba(0, 122, 255, .1);--color-message-ai:rgba(255, 255, 255, .8);--color-code-bg:rgba(142, 142, 147, .12);--color-code-text:#ff375f;--glass-bg:rgba(255, 255, 255, .72);--glass-border:rgba(255, 255, 255, .18);--glass-shadow:0 8px 32px 0 rgba(31, 38, 135, .15);--glass-backdrop-blur:blur(20px);--color-modal-bg:#ffffff;--color-surface:#ffffff;--color-modal-border:rgba(0, 0, 0, .12);--color-modal-shadow:0 8px 40px rgba(0, 0, 0, .18), 0 2px 8px rgba(0, 0, 0, .1);--color-shadow:rgba(0, 0, 0, .08);--color-overlay:rgba(0, 0, 0, .4);--color-surface-hover:var(--color-bg-hover);--color-surface-secondary:rgba(0, 0, 0, .03);--color-surface-muted:rgba(0, 0, 0, .05);--color-divider:rgba(0, 0, 0, .1)}@media print{html,body,app-root{height:auto!important;max-height:none!important;min-height:auto!important;overflow:visible!important;position:static!important}body{background:#fff!important;color:#000!important;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important;font-size:11pt;line-height:1.6;padding:1rem!important}*{animation:none!important;transition:none!important;box-shadow:none!important;text-shadow:none!important}}*{box-sizing:border-box}html{color-scheme:light}html{--mat-sys-background:light-dark(#faf9fd, #121316);--mat-sys-error:light-dark(#ba1a1a, #ffb4ab);--mat-sys-error-container:light-dark(#ffdad6, #93000a);--mat-sys-inverse-on-surface:light-dark(#f2f0f4, #2f3033);--mat-sys-inverse-primary:light-dark(#abc7ff, #005cbb);--mat-sys-inverse-surface:light-dark(#2f3033, #e3e2e6);--mat-sys-on-background:light-dark(#1a1b1f, #e3e2e6);--mat-sys-on-error:light-dark(#ffffff, #690005);--mat-sys-on-error-container:light-dark(#93000a, #ffdad6);--mat-sys-on-primary:light-dark(#ffffff, #002f65);--mat-sys-on-primary-container:light-dark(#00458f, #d7e3ff);--mat-sys-on-primary-fixed:light-dark(#001b3f, #001b3f);--mat-sys-on-primary-fixed-variant:light-dark(#00458f, #00458f);--mat-sys-on-secondary:light-dark(#ffffff, #283041);--mat-sys-on-secondary-container:light-dark(#3e4759, #dae2f9);--mat-sys-on-secondary-fixed:light-dark(#131c2b, #131c2b);--mat-sys-on-secondary-fixed-variant:light-dark(#3e4759, #3e4759);--mat-sys-on-surface:light-dark(#1a1b1f, #e3e2e6);--mat-sys-on-surface-variant:light-dark(#44474e, #e0e2ec);--mat-sys-on-tertiary:light-dark(#ffffff, #002f65);--mat-sys-on-tertiary-container:light-dark(#00458f, #d7e3ff);--mat-sys-on-tertiary-fixed:light-dark(#001b3f, #001b3f);--mat-sys-on-tertiary-fixed-variant:light-dark(#00458f, #00458f);--mat-sys-outline:light-dark(#74777f, #8e9099);--mat-sys-outline-variant:light-dark(#c4c6d0, #44474e);--mat-sys-primary:light-dark(#005cbb, #abc7ff);--mat-sys-primary-container:light-dark(#d7e3ff, #00458f);--mat-sys-primary-fixed:light-dark(#d7e3ff, #d7e3ff);--mat-sys-primary-fixed-dim:light-dark(#abc7ff, #abc7ff);--mat-sys-scrim:light-dark(#000000, #000000);--mat-sys-secondary:light-dark(#565e71, #bec6dc);--mat-sys-secondary-container:light-dark(#dae2f9, #3e4759);--mat-sys-secondary-fixed:light-dark(#dae2f9, #dae2f9);--mat-sys-secondary-fixed-dim:light-dark(#bec6dc, #bec6dc);--mat-sys-shadow:light-dark(#000000, #000000);--mat-sys-surface:light-dark(#faf9fd, #121316);--mat-sys-surface-bright:light-dark(#faf9fd, #38393c);--mat-sys-surface-container:light-dark(#efedf0, #1f2022);--mat-sys-surface-container-high:light-dark(#e9e7eb, #292a2c);--mat-sys-surface-container-highest:light-dark(#e3e2e6, #343537);--mat-sys-surface-container-low:light-dark(#f4f3f6, #1a1b1f);--mat-sys-surface-container-lowest:light-dark(#ffffff, #0d0e11);--mat-sys-surface-dim:light-dark(#dbd9dd, #121316);--mat-sys-surface-tint:light-dark(#005cbb, #abc7ff);--mat-sys-surface-variant:light-dark(#e0e2ec, #44474e);--mat-sys-tertiary:light-dark(#005cbb, #abc7ff);--mat-sys-tertiary-container:light-dark(#d7e3ff, #00458f);--mat-sys-tertiary-fixed:light-dark(#d7e3ff, #d7e3ff);--mat-sys-tertiary-fixed-dim:light-dark(#abc7ff, #abc7ff);--mat-sys-neutral-variant20:#2d3038;--mat-sys-neutral10:#1a1b1f;--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-body-large:400 1rem / 1.5rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-body-large-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-body-large-line-height:1.5rem;--mat-sys-body-large-size:1rem;--mat-sys-body-large-tracking:.031rem;--mat-sys-body-large-weight:400;--mat-sys-body-medium:400 .875rem / 1.25rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-body-medium-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-body-medium-line-height:1.25rem;--mat-sys-body-medium-size:.875rem;--mat-sys-body-medium-tracking:.016rem;--mat-sys-body-medium-weight:400;--mat-sys-body-small:400 .75rem / 1rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-body-small-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-body-small-line-height:1rem;--mat-sys-body-small-size:.75rem;--mat-sys-body-small-tracking:.025rem;--mat-sys-body-small-weight:400;--mat-sys-display-large:400 3.562rem / 4rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-display-large-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-display-large-line-height:4rem;--mat-sys-display-large-size:3.562rem;--mat-sys-display-large-tracking:-.016rem;--mat-sys-display-large-weight:400;--mat-sys-display-medium:400 2.812rem / 3.25rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-display-medium-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-display-medium-line-height:3.25rem;--mat-sys-display-medium-size:2.812rem;--mat-sys-display-medium-tracking:0;--mat-sys-display-medium-weight:400;--mat-sys-display-small:400 2.25rem / 2.75rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-display-small-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-display-small-line-height:2.75rem;--mat-sys-display-small-size:2.25rem;--mat-sys-display-small-tracking:0;--mat-sys-display-small-weight:400;--mat-sys-headline-large:400 2rem / 2.5rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-large-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-large-line-height:2.5rem;--mat-sys-headline-large-size:2rem;--mat-sys-headline-large-tracking:0;--mat-sys-headline-large-weight:400;--mat-sys-headline-medium:400 1.75rem / 2.25rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-medium-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-medium-line-height:2.25rem;--mat-sys-headline-medium-size:1.75rem;--mat-sys-headline-medium-tracking:0;--mat-sys-headline-medium-weight:400;--mat-sys-headline-small:400 1.5rem / 2rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-small-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-headline-small-line-height:2rem;--mat-sys-headline-small-size:1.5rem;--mat-sys-headline-small-tracking:0;--mat-sys-headline-small-weight:400;--mat-sys-label-large:500 .875rem / 1.25rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-label-large-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-label-large-line-height:1.25rem;--mat-sys-label-large-size:.875rem;--mat-sys-label-large-tracking:.006rem;--mat-sys-label-large-weight:500;--mat-sys-label-large-weight-prominent:700;--mat-sys-label-medium:500 .75rem / 1rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-label-medium-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-label-medium-line-height:1rem;--mat-sys-label-medium-size:.75rem;--mat-sys-label-medium-tracking:.031rem;--mat-sys-label-medium-weight:500;--mat-sys-label-medium-weight-prominent:700;--mat-sys-label-small:500 .688rem / 1rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-label-small-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-label-small-line-height:1rem;--mat-sys-label-small-size:.688rem;--mat-sys-label-small-tracking:.031rem;--mat-sys-label-small-weight:500;--mat-sys-title-large:400 1.375rem / 1.75rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-title-large-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-title-large-line-height:1.75rem;--mat-sys-title-large-size:1.375rem;--mat-sys-title-large-tracking:0;--mat-sys-title-large-weight:400;--mat-sys-title-medium:500 1rem / 1.5rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-title-medium-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-title-medium-line-height:1.5rem;--mat-sys-title-medium-size:1rem;--mat-sys-title-medium-tracking:.009rem;--mat-sys-title-medium-weight:500;--mat-sys-title-small:500 .875rem / 1.25rem -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-title-small-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--mat-sys-title-small-line-height:1.25rem;--mat-sys-title-small-size:.875rem;--mat-sys-title-small-tracking:.006rem;--mat-sys-title-small-weight:500;--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px;--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12;--mat-snack-bar-container-shape:transparent;--mat-snack-bar-container-color:transparent;--mat-snack-bar-supporting-text-color:var(--color-text)}html,body{margin:0;padding:0;width:100%;height:100%}body{background:var(--color-bg);color:var(--color-text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,Helvetica Neue,Arial,sans-serif;transition:background .3s ease,color .3s ease;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding:0!important}</style><link rel="stylesheet" href="styles-HDA2O7OH.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-HDA2O7OH.css"></noscript></head>
32
32
  <body>
33
33
  <app-root></app-root>
34
- <script src="polyfills-2FSRUXKO.js" type="module"></script><script src="main-2EYBZUJC.js" type="module"></script></body>
34
+ <script src="polyfills-2FSRUXKO.js" type="module"></script><script src="main-COD2LZKB.js" type="module"></script></body>
35
35
  </html>