@whoz-oss/coday-client 0.231.1 → 0.232.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/{chunk-KVRSWZ37.js → chunk-2TXUDUDV.js} +1 -1
- package/browser/{chunk-7BBT4E5E.js → chunk-36O4BB7T.js} +1 -1
- package/browser/chunk-37XKIC5U.js +1 -0
- package/browser/{chunk-OK4EJOSI.js → chunk-3EE5YWX5.js} +1 -1
- package/browser/{chunk-3QNGI2KL.js → chunk-3KPZCMYP.js} +1 -1
- package/browser/{chunk-R7YB3V2E.js → chunk-3MTDP4VX.js} +1 -1
- package/browser/{chunk-N4H6RBJP.js → chunk-3ONL4DJI.js} +1 -1
- package/browser/{chunk-UHZ4KKE5.js → chunk-3PYYPGWK.js} +1 -1
- package/browser/{chunk-Q2M4W42M.js → chunk-3SLREHKR.js} +1 -1
- package/browser/{chunk-Z43UATKA.js → chunk-4IIMBSGN.js} +1 -1
- package/browser/{chunk-HXQFXYPL.js → chunk-4UTJRMNS.js} +1 -1
- package/browser/{chunk-XPBP7UEM.js → chunk-4YSSYO6C.js} +1 -1
- package/browser/{chunk-MGVK4WNW.js → chunk-4Z7YULMF.js} +1 -1
- package/browser/{chunk-ZAMAK546.js → chunk-4ZRHOAVD.js} +1 -1
- package/browser/{chunk-MDC6KYTF.js → chunk-56PQRYGG.js} +1 -1
- package/browser/{chunk-DVUB4DDV.js → chunk-5FEVTJAS.js} +1 -1
- package/browser/{chunk-7EDSHFWH.js → chunk-5OX5N476.js} +1 -1
- package/browser/{chunk-MZT6I3S3.js → chunk-6XQBW7HA.js} +1 -1
- package/browser/{chunk-FW4JCZNG.js → chunk-74YMXW2X.js} +1 -1
- package/browser/{chunk-BHI42QOO.js → chunk-7BB2QBYF.js} +1 -1
- package/browser/{chunk-JFRIGSWA.js → chunk-7C22S5RR.js} +1 -1
- package/browser/{chunk-5RGU7B74.js → chunk-7DPA42PN.js} +1 -1
- package/browser/{chunk-O77FDCNG.js → chunk-7HHH4JYI.js} +1 -1
- package/browser/{chunk-JC3UT7FL.js → chunk-7J5PDKSA.js} +1 -1
- package/browser/{chunk-XPCRFTEI.js → chunk-AA5QCH73.js} +1 -1
- package/browser/{chunk-KJ5SIUGY.js → chunk-AFIHJVHG.js} +4 -4
- package/browser/{chunk-6LNXGAHM.js → chunk-ARNZJRTH.js} +1 -1
- package/browser/{chunk-AKTPF6RS.js → chunk-BB5JFKXH.js} +1 -1
- package/browser/{chunk-2OC3IQX4.js → chunk-BPC2QPLU.js} +1 -1
- package/browser/{chunk-W3ORO7W5.js → chunk-BTVIFMPB.js} +1 -1
- package/browser/{chunk-SW3MVXR5.js → chunk-CBNBGASZ.js} +1 -1
- package/browser/chunk-CO2BUEJR.js +1 -0
- package/browser/{chunk-H2FHPYWP.js → chunk-DA4EUPMU.js} +1 -1
- package/browser/{chunk-44OQZAMB.js → chunk-DDDWWOBZ.js} +1 -1
- package/browser/{chunk-CPIJPSK3.js → chunk-DL2CN54C.js} +1 -1
- package/browser/{chunk-6L7NNQJK.js → chunk-DWTZEEAD.js} +1 -1
- package/browser/{chunk-B46LXCLF.js → chunk-G45KM4GY.js} +1 -1
- package/browser/{chunk-UK3RUU4S.js → chunk-G65WOLVG.js} +1 -1
- package/browser/{chunk-LTFSHOKE.js → chunk-G7BN6ECD.js} +1 -1
- package/browser/{chunk-NA5F32JD.js → chunk-GDU2Z5DW.js} +1 -1
- package/browser/{chunk-7DZ6K6CC.js → chunk-GDV5ITOI.js} +1 -1
- package/browser/{chunk-PFBYB2QD.js → chunk-GEWWMLQN.js} +1 -1
- package/browser/{chunk-MWPKXBXJ.js → chunk-GPV4WMJB.js} +1 -1
- package/browser/{chunk-BPTQDERH.js → chunk-GY6HKZNN.js} +1 -1
- package/browser/{chunk-E2PTKMR3.js → chunk-H76CYJNV.js} +1 -1
- package/browser/{chunk-32WVX5ZP.js → chunk-HEUQXXCL.js} +1 -1
- package/browser/{chunk-ZHT32KNQ.js → chunk-I37HXTFG.js} +1 -1
- package/browser/{chunk-VO5LQION.js → chunk-IIF6K52V.js} +1 -1
- package/browser/{chunk-HJCJ2A5U.js → chunk-J37DPZ6E.js} +1 -1
- package/browser/{chunk-3B27XA6H.js → chunk-J4RKXKG2.js} +1 -1
- package/browser/chunk-J7VVELU3.js +6 -0
- package/browser/{chunk-TML7WQTK.js → chunk-JYJTYOKL.js} +1 -1
- package/browser/chunk-K5RMGAFS.js +1 -0
- package/browser/{chunk-VR3I4RKJ.js → chunk-KG53RXF4.js} +1 -1
- package/browser/{chunk-4224C2BE.js → chunk-KHUREVIJ.js} +1 -1
- package/browser/{chunk-F4DLZWDY.js → chunk-L43PAPKS.js} +1 -1
- package/browser/{chunk-WFLBQLIR.js → chunk-LCJUMP4N.js} +1 -1
- package/browser/{chunk-KRRTNACV.js → chunk-MCDRF32R.js} +1 -1
- package/browser/chunk-MD6JHLP3.js +1 -0
- package/browser/{chunk-WUU4G5YQ.js → chunk-MQRXQYSE.js} +1 -1
- package/browser/{chunk-3I6ZJMCS.js → chunk-NC4DZ44Z.js} +1 -1
- package/browser/{chunk-4NGK3AH3.js → chunk-ND6LRPIP.js} +1 -1
- package/browser/{chunk-3ZLLFAXF.js → chunk-NPJSGATI.js} +1 -1
- package/browser/chunk-NSFWHBLR.js +1 -0
- package/browser/{chunk-C2J4TQ7V.js → chunk-NVHDXKPX.js} +1 -1
- package/browser/{chunk-MTXOV52Z.js → chunk-O4KHZCHW.js} +1 -1
- package/browser/{chunk-AVN3J4SW.js → chunk-OGB6WYHT.js} +1 -1
- package/browser/{chunk-7RARQB22.js → chunk-OI5ZXKZN.js} +1 -1
- package/browser/{chunk-MZIRWGY7.js → chunk-OIQVBN7H.js} +1 -1
- package/browser/{chunk-DDWYQORF.js → chunk-OTQBW2W7.js} +1 -1
- package/browser/{chunk-NOMEOUXJ.js → chunk-P5NRG4I2.js} +1 -1
- package/browser/chunk-PESUZCLX.js +1 -0
- package/browser/{chunk-UBMWSFAZ.js → chunk-PLCVMTKZ.js} +1 -1
- package/browser/{chunk-OX7PDXEA.js → chunk-PVCT2NFQ.js} +1 -1
- package/browser/{chunk-JF3TWRKD.js → chunk-PXW2NKOT.js} +1 -1
- package/browser/{chunk-QUHNQ4OB.js → chunk-QYMTZUZD.js} +1 -1
- package/browser/{chunk-JW4JKLFN.js → chunk-R4RUNF6U.js} +1 -1
- package/browser/{chunk-7N4XUYW4.js → chunk-SI4H2FAD.js} +1 -1
- package/browser/{chunk-SWOMF3ZR.js → chunk-SIJ5T6MQ.js} +1 -1
- package/browser/chunk-SPKYGK35.js +1 -0
- package/browser/{chunk-S5XVTDPO.js → chunk-SPN2NP4Q.js} +1 -1
- package/browser/{chunk-L7EWDR3X.js → chunk-T24DFZQU.js} +1 -1
- package/browser/{chunk-A7WS3RLV.js → chunk-TQUZS2SI.js} +1 -1
- package/browser/{chunk-RX6XVTR7.js → chunk-TY25SONC.js} +1 -1
- package/browser/{chunk-5NIQZOIU.js → chunk-UEKMQY3M.js} +1 -1
- package/browser/{chunk-DXS7ET5V.js → chunk-UW36C33Q.js} +1 -1
- package/browser/{chunk-TGJ3LPLG.js → chunk-WGWHICOU.js} +1 -1
- package/browser/{chunk-QDN2FP73.js → chunk-WNCCMO6S.js} +1 -1
- package/browser/{chunk-MQ6C2B4Z.js → chunk-WS3X4SNH.js} +1 -1
- package/browser/chunk-WS6KGZB6.js +1 -0
- package/browser/{chunk-TBYJS5N4.js → chunk-XMNSCHH7.js} +1 -1
- package/browser/{chunk-5KM666YK.js → chunk-XQFQYRN4.js} +1 -1
- package/browser/{chunk-DEI4EULW.js → chunk-ZGXLG3K2.js} +1 -1
- package/browser/{chunk-DXSUJXKW.js → chunk-ZHNZU36N.js} +1 -1
- package/browser/chunk-ZUWK72PR.js +1 -0
- package/browser/index.html +1 -1
- package/browser/{main-NVO3OVNW.js → main-RJ5ZCZKL.js} +1 -1
- package/package.json +1 -1
- package/browser/chunk-2EC3VX77.js +0 -1
- package/browser/chunk-3FIVKNVQ.js +0 -1
- package/browser/chunk-EBGVWTDP.js +0 -1
- package/browser/chunk-ETVJIECM.js +0 -1
- package/browser/chunk-GH2VWCFB.js +0 -1
- package/browser/chunk-GNOCAZPC.js +0 -1
- package/browser/chunk-LMHMDUH3.js +0 -6
- package/browser/chunk-MJ3CGA7L.js +0 -1
- package/browser/chunk-PW6KVUDR.js +0 -1
- package/browser/chunk-RFBE4F6Q.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as ee}from"./chunk-7N4XUYW4.js";import{b as R}from"./chunk-ZAMAK546.js";import{a as G,c as J}from"./chunk-MZT6I3S3.js";import{a as P}from"./chunk-3ZLLFAXF.js";import{F as Z,c as $,e as _,g as L,h as B,i as N,l as u,n as q,r as I,s as j,t as U,u as H,v as K,w as Q,x as W,y as X,z as Y}from"./chunk-DDWYQORF.js";import{Bb as E,D as A,Db as C,Fb as s,Ka as a,Rb as O,Tb as o,Ub as v,Vb as F,Wa as D,a as V,b as T,ca as b,ga as x,ha as h,lb as c,m as k,ma as z,mb as f,nb as w,pb as M,qb as S,rb as m,sb as n,ta as y,tb as r,ub as g}from"./chunk-KJ5SIUGY.js";var re=(i,t)=>t.id;function oe(i,t){i&1&&(n(0,"p",5),o(1,"Loading\u2026"),r())}function ne(i,t){i&1&&(n(0,"span",12),o(1,"Name is required."),r())}function ie(i,t){if(i&1&&(n(0,"p",31),o(1),r(),n(2,"span",26),o(3,"Agent Config cannot be changed after creation."),r()),i&2){let e=s(3);a(),v(e.resolveAgentConfigName(e.agentConfigIdControl.value))}}function ae(i,t){if(i&1&&(n(0,"option",33),o(1),r()),i&2){let e=t.$implicit;m("ngValue",e.id),a(),v(e.name)}}function le(i,t){if(i&1&&(n(0,"select",32)(1,"option",33),o(2,"\u2014 None \u2014"),r(),M(3,ae,2,2,"option",33,re),r(),n(5,"span",26),o(6,"Optional. Links this prompt to an agent as a starter. Immutable after creation."),r()),i&2){let e=s(3);m("formControl",e.agentConfigIdControl),a(),m("ngValue",null),a(2),S(e.availableAgentConfigs())}}function me(i,t){if(i&1&&(n(0,"div",8)(1,"label",30),o(2,"Agent Config"),r(),c(3,ie,4,1)(4,le,7,2),r()),i&2){let e=s(2);a(3),f(e.isEditMode()&&e.agentConfigIdControl.value?3:e.isEditMode()?-1:4)}}function pe(i,t){i&1&&(n(0,"p",19),o(1,"No parameters defined."),r())}function de(i,t){i&1&&(n(0,"span",12),o(1,"Parameter name is required."),r())}function se(i,t){if(i&1){let e=E();n(0,"div",20)(1,"div",34)(2,"div",35)(3,"label",36),o(4,"Name "),n(5,"span",10),o(6,"*"),r()(),g(7,"input",37),c(8,de,2,0,"span",12),r(),n(9,"div",35)(10,"label",36),o(11,"Description"),r(),g(12,"input",38),r(),n(13,"div",35)(14,"label",36),o(15,"Default value"),r(),g(16,"input",39),r()(),n(17,"button",40),C("click",function(){let p=x(e).$index,d=s(2);return h(d.removeParameter(p))}),o(18," \xD7 "),r()()}if(i&2){let e=t.$implicit,l=t.$index;m("formGroupName",l),a(3),m("for","param-name-"+l),a(4),O("prompt-form__input--invalid",e.controls.name.invalid&&e.controls.name.touched),m("id","param-name-"+l),a(),f(e.controls.name.invalid&&e.controls.name.touched?8:-1),a(2),m("for","param-desc-"+l),a(2),m("id","param-desc-"+l),a(2),m("for","param-default-"+l),a(2),m("id","param-default-"+l)}}function ce(i,t){i&1&&(n(0,"span",12),o(1,"Content entry must not be blank."),r())}function fe(i,t){if(i&1){let e=E();n(0,"div",22)(1,"span",41),o(2),r(),n(3,"div",42),g(4,"textarea",43),c(5,ce,2,0,"span",12),r(),n(6,"button",44),C("click",function(){let p=x(e).$index,d=s(2);return h(d.removeContentEntry(p))}),o(7," \xD7 "),r()()}if(i&2){let e=t.$implicit,l=t.$index,p=s(2);a(2),v(l+1),a(2),O("prompt-form__textarea--invalid",e.invalid&&e.touched),m("formControlName",l),a(),f(e.invalid&&e.touched?5:-1),a(),m("disabled",p.contentArray.length===1)}}function _e(i,t){if(i&1&&(n(0,"p",23),o(1),r()),i&2){let e=s(2);a(),v(e.errorMessage())}}function ue(i,t){i&1&&(n(0,"span",12),o(1,"Invalid JSON."),r())}function ge(i,t){if(i&1){let e=E();n(0,"form",7),C("ngSubmit",function(){x(e);let p=s();return h(p.submit())}),n(1,"div",8)(2,"label",9),o(3,"Name "),n(4,"span",10),o(5,"*"),r()(),g(6,"input",11),c(7,ne,2,0,"span",12),r(),n(8,"div",8)(9,"label",13),o(10,"Description"),r(),g(11,"input",14),r(),c(12,me,5,1,"div",8),n(13,"fieldset",15)(14,"legend",16),o(15," Parameters "),n(16,"span",17),o(17,"Named placeholders used in content"),r()(),n(18,"p",18),o(19," Each parameter must have a name and a default value. Use "),n(20,"code"),o(21),r(),o(22," in content entries to reference them. "),r(),c(23,pe,2,0,"p",19),M(24,se,19,10,"div",20,w),n(26,"button",21),C("click",function(){x(e);let p=s();return h(p.addParameter())}),o(27,"+ Add parameter"),r()(),n(28,"fieldset",15)(29,"legend",16),o(30," Content "),n(31,"span",10),o(32,"*"),r(),n(33,"span",17),o(34,"Ordered list of text commands"),r()(),n(35,"p",18),o(36," Each content entry is a command. Use "),n(37,"code"),o(38,"@AgentName"),r(),o(39," to target an agent, "),n(40,"code"),o(41,"/promptName param1 param2"),r(),o(42," to call another prompt, and "),n(43,"code"),o(44),r(),o(45," for parameter placeholders. "),r(),M(46,fe,8,6,"div",22,w),n(48,"button",21),C("click",function(){x(e);let p=s();return h(p.addContentEntry())}),o(49,"+ Add content entry"),r()(),c(50,_e,2,1,"p",23),n(51,"div",8)(52,"label",24),o(53,"External Metadata"),r(),g(54,"textarea",25),c(55,ue,2,0,"span",12),n(56,"span",26),o(57,"Optional. Opaque JSON object stored as-is. Leave empty to clear."),r()(),n(58,"div",27)(59,"button",28),o(60),r(),n(61,"button",29),C("click",function(){x(e);let p=s();return h(p.cancel())}),o(62,"Cancel"),r()()()}if(i&2){let e=s();m("formGroup",e.form),a(6),O("prompt-form__input--invalid",e.nameControl.invalid&&e.nameControl.touched),m("formControl",e.nameControl),a(),f(e.nameControl.invalid&&e.nameControl.touched?7:-1),a(4),m("formControl",e.descriptionControl),a(),f(e.availableAgentConfigs().length>0?12:-1),a(),m("formArrayName","parameters"),a(8),v(e.paramPlaceholderSyntax),a(2),f(e.parametersArray.length===0?23:-1),a(),S(e.parametersArray.controls),a(4),m("formArrayName","content"),a(16),v(e.paramPlaceholderSyntax),a(2),S(e.contentArray.controls),a(4),f(e.errorMessage()?50:-1),a(4),m("formControl",e.externalMetadataJsonControl),a(),f(e.externalMetadataJsonControl.invalid&&e.externalMetadataJsonControl.touched?55:-1),a(4),m("disabled",e.form.invalid||e.isSubmitting()),a(),F(" ",e.isEditMode()?"Save changes":"Create"," ")}}var te=class i{route=b(G);router=b(J);destroyRef=b(z);promptState=b(ee);agentConfigController=b(R);namespaceId=this.route.snapshot.params.namespaceId;isPlatformMode=!this.namespaceId;form=new N({name:new u("",{nonNullable:!0,validators:[_.required,_.minLength(1)]}),description:new u(null),agentConfigId:new u(null),externalMetadataJson:new u("",{nonNullable:!0,validators:[Ce]}),content:new I([this.createContentControl()],{validators:[_.required]}),parameters:new I([])});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=y(!1);isSubmitting=y(!1);isLoading=y(!1);errorMessage=y(null);paramPlaceholderSyntax="{{paramName}}";agentConfigs=y([]);availableAgentConfigs=this.agentConfigs.asReadonly();existingPrompt=null;ngOnInit(){let t=this.route.snapshot.paramMap.get("promptId");t&&(this.isEditMode.set(!0),this.loadPrompt(t)),this.isPlatformMode?this.loadPlatformAgentConfigs():this.namespaceId&&this.loadAgentConfigs(this.namespaceId)}loadPrompt(t){this.isLoading.set(!0),this.promptState.getById(t).pipe(P(this.destroyRef)).subscribe({next:e=>{this.existingPrompt=e,this.hydrateForm(e),this.isLoading.set(!1)},error:()=>{this.isLoading.set(!1),this.navigateBack()}})}loadAgentConfigs(t){this.agentConfigController.listByParentAgentConfig(t).pipe(P(this.destroyRef),A(()=>k([]))).subscribe(e=>this.agentConfigs.set(e))}loadPlatformAgentConfigs(){this.agentConfigController.listPlatformAgentsAgentConfig().pipe(P(this.destroyRef),A(()=>k([]))).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 u(t,{nonNullable:!0,validators:[_.required,_.pattern(/\S/)]})}addContentEntry(){this.contentArray.push(this.createContentControl())}removeContentEntry(t){this.contentArray.length>1&&this.contentArray.removeAt(t)}createParameterGroup(t){return new N({name:new u(t?.name??"",{nonNullable:!0,validators:[_.required,_.minLength(1)]}),description:new u(t?.description??null),defaultValue:new u(t?.defaultValue??"",{nonNullable:!0,validators:[_.required]})})}addParameter(){this.parametersArray.push(this.createParameterGroup())}removeParameter(t){this.parametersArray.removeAt(t)}submit(){if(this.form.invalid||this.isSubmitting())return;this.isSubmitting.set(!0);let t=this.isEditMode()&&!!this.existingPrompt?.id,e=T(V({},this.existingPrompt??{}),{namespaceId:this.namespaceId,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 p=t?this.promptState.update(this.existingPrompt.id,e):this.promptState.create(e);this.errorMessage.set(null),p.pipe(P(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:d=>{this.isSubmitting.set(!1),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.")}})}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=D({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",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"]],template:function(e,l){e&1&&(n(0,"div",0)(1,"header",1)(2,"button",2),C("click",function(){return l.cancel()}),n(3,"span",3),o(4,"\u2190"),r(),o(5),r(),n(6,"h1",4),o(7),r()(),c(8,oe,2,0,"p",5)(9,ge,63,17,"form",6),r()),e&2&&(a(5),F(" ",l.isPlatformMode?"Platform prompts":"Prompts"," "),a(2),v(l.isEditMode()?"Edit prompt":"New prompt"),a(),f(l.isLoading()?8:9))},dependencies:[Z,q,X,Y,$,W,L,B,j,Q,K,U,H],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)}"],changeDetection:0})};function Ce(i){let t=i.value?.trim();if(!t)return null;try{return JSON.parse(t),null}catch(e){return{invalidJson:!0}}}export{te as PromptFormComponent};
|
|
1
|
+
import{a as ee}from"./chunk-SI4H2FAD.js";import{b as R}from"./chunk-4ZRHOAVD.js";import{a as G,c as J}from"./chunk-6XQBW7HA.js";import{a as P}from"./chunk-NPJSGATI.js";import{F as Z,c as $,e as _,g as L,h as B,i as N,l as u,n as q,r as I,s as j,t as U,u as H,v as K,w as Q,x as W,y as X,z as Y}from"./chunk-OTQBW2W7.js";import{Bb as E,D as A,Db as C,Fb as s,Ka as a,Rb as O,Tb as o,Ub as v,Vb as F,Wa as D,a as V,b as T,ca as b,ga as x,ha as h,lb as c,m as k,ma as z,mb as f,nb as w,pb as M,qb as S,rb as m,sb as n,ta as y,tb as r,ub as g}from"./chunk-AFIHJVHG.js";var re=(i,t)=>t.id;function oe(i,t){i&1&&(n(0,"p",5),o(1,"Loading\u2026"),r())}function ne(i,t){i&1&&(n(0,"span",12),o(1,"Name is required."),r())}function ie(i,t){if(i&1&&(n(0,"p",31),o(1),r(),n(2,"span",26),o(3,"Agent Config cannot be changed after creation."),r()),i&2){let e=s(3);a(),v(e.resolveAgentConfigName(e.agentConfigIdControl.value))}}function ae(i,t){if(i&1&&(n(0,"option",33),o(1),r()),i&2){let e=t.$implicit;m("ngValue",e.id),a(),v(e.name)}}function le(i,t){if(i&1&&(n(0,"select",32)(1,"option",33),o(2,"\u2014 None \u2014"),r(),M(3,ae,2,2,"option",33,re),r(),n(5,"span",26),o(6,"Optional. Links this prompt to an agent as a starter. Immutable after creation."),r()),i&2){let e=s(3);m("formControl",e.agentConfigIdControl),a(),m("ngValue",null),a(2),S(e.availableAgentConfigs())}}function me(i,t){if(i&1&&(n(0,"div",8)(1,"label",30),o(2,"Agent Config"),r(),c(3,ie,4,1)(4,le,7,2),r()),i&2){let e=s(2);a(3),f(e.isEditMode()&&e.agentConfigIdControl.value?3:e.isEditMode()?-1:4)}}function pe(i,t){i&1&&(n(0,"p",19),o(1,"No parameters defined."),r())}function de(i,t){i&1&&(n(0,"span",12),o(1,"Parameter name is required."),r())}function se(i,t){if(i&1){let e=E();n(0,"div",20)(1,"div",34)(2,"div",35)(3,"label",36),o(4,"Name "),n(5,"span",10),o(6,"*"),r()(),g(7,"input",37),c(8,de,2,0,"span",12),r(),n(9,"div",35)(10,"label",36),o(11,"Description"),r(),g(12,"input",38),r(),n(13,"div",35)(14,"label",36),o(15,"Default value"),r(),g(16,"input",39),r()(),n(17,"button",40),C("click",function(){let p=x(e).$index,d=s(2);return h(d.removeParameter(p))}),o(18," \xD7 "),r()()}if(i&2){let e=t.$implicit,l=t.$index;m("formGroupName",l),a(3),m("for","param-name-"+l),a(4),O("prompt-form__input--invalid",e.controls.name.invalid&&e.controls.name.touched),m("id","param-name-"+l),a(),f(e.controls.name.invalid&&e.controls.name.touched?8:-1),a(2),m("for","param-desc-"+l),a(2),m("id","param-desc-"+l),a(2),m("for","param-default-"+l),a(2),m("id","param-default-"+l)}}function ce(i,t){i&1&&(n(0,"span",12),o(1,"Content entry must not be blank."),r())}function fe(i,t){if(i&1){let e=E();n(0,"div",22)(1,"span",41),o(2),r(),n(3,"div",42),g(4,"textarea",43),c(5,ce,2,0,"span",12),r(),n(6,"button",44),C("click",function(){let p=x(e).$index,d=s(2);return h(d.removeContentEntry(p))}),o(7," \xD7 "),r()()}if(i&2){let e=t.$implicit,l=t.$index,p=s(2);a(2),v(l+1),a(2),O("prompt-form__textarea--invalid",e.invalid&&e.touched),m("formControlName",l),a(),f(e.invalid&&e.touched?5:-1),a(),m("disabled",p.contentArray.length===1)}}function _e(i,t){if(i&1&&(n(0,"p",23),o(1),r()),i&2){let e=s(2);a(),v(e.errorMessage())}}function ue(i,t){i&1&&(n(0,"span",12),o(1,"Invalid JSON."),r())}function ge(i,t){if(i&1){let e=E();n(0,"form",7),C("ngSubmit",function(){x(e);let p=s();return h(p.submit())}),n(1,"div",8)(2,"label",9),o(3,"Name "),n(4,"span",10),o(5,"*"),r()(),g(6,"input",11),c(7,ne,2,0,"span",12),r(),n(8,"div",8)(9,"label",13),o(10,"Description"),r(),g(11,"input",14),r(),c(12,me,5,1,"div",8),n(13,"fieldset",15)(14,"legend",16),o(15," Parameters "),n(16,"span",17),o(17,"Named placeholders used in content"),r()(),n(18,"p",18),o(19," Each parameter must have a name and a default value. Use "),n(20,"code"),o(21),r(),o(22," in content entries to reference them. "),r(),c(23,pe,2,0,"p",19),M(24,se,19,10,"div",20,w),n(26,"button",21),C("click",function(){x(e);let p=s();return h(p.addParameter())}),o(27,"+ Add parameter"),r()(),n(28,"fieldset",15)(29,"legend",16),o(30," Content "),n(31,"span",10),o(32,"*"),r(),n(33,"span",17),o(34,"Ordered list of text commands"),r()(),n(35,"p",18),o(36," Each content entry is a command. Use "),n(37,"code"),o(38,"@AgentName"),r(),o(39," to target an agent, "),n(40,"code"),o(41,"/promptName param1 param2"),r(),o(42," to call another prompt, and "),n(43,"code"),o(44),r(),o(45," for parameter placeholders. "),r(),M(46,fe,8,6,"div",22,w),n(48,"button",21),C("click",function(){x(e);let p=s();return h(p.addContentEntry())}),o(49,"+ Add content entry"),r()(),c(50,_e,2,1,"p",23),n(51,"div",8)(52,"label",24),o(53,"External Metadata"),r(),g(54,"textarea",25),c(55,ue,2,0,"span",12),n(56,"span",26),o(57,"Optional. Opaque JSON object stored as-is. Leave empty to clear."),r()(),n(58,"div",27)(59,"button",28),o(60),r(),n(61,"button",29),C("click",function(){x(e);let p=s();return h(p.cancel())}),o(62,"Cancel"),r()()()}if(i&2){let e=s();m("formGroup",e.form),a(6),O("prompt-form__input--invalid",e.nameControl.invalid&&e.nameControl.touched),m("formControl",e.nameControl),a(),f(e.nameControl.invalid&&e.nameControl.touched?7:-1),a(4),m("formControl",e.descriptionControl),a(),f(e.availableAgentConfigs().length>0?12:-1),a(),m("formArrayName","parameters"),a(8),v(e.paramPlaceholderSyntax),a(2),f(e.parametersArray.length===0?23:-1),a(),S(e.parametersArray.controls),a(4),m("formArrayName","content"),a(16),v(e.paramPlaceholderSyntax),a(2),S(e.contentArray.controls),a(4),f(e.errorMessage()?50:-1),a(4),m("formControl",e.externalMetadataJsonControl),a(),f(e.externalMetadataJsonControl.invalid&&e.externalMetadataJsonControl.touched?55:-1),a(4),m("disabled",e.form.invalid||e.isSubmitting()),a(),F(" ",e.isEditMode()?"Save changes":"Create"," ")}}var te=class i{route=b(G);router=b(J);destroyRef=b(z);promptState=b(ee);agentConfigController=b(R);namespaceId=this.route.snapshot.params.namespaceId;isPlatformMode=!this.namespaceId;form=new N({name:new u("",{nonNullable:!0,validators:[_.required,_.minLength(1)]}),description:new u(null),agentConfigId:new u(null),externalMetadataJson:new u("",{nonNullable:!0,validators:[Ce]}),content:new I([this.createContentControl()],{validators:[_.required]}),parameters:new I([])});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=y(!1);isSubmitting=y(!1);isLoading=y(!1);errorMessage=y(null);paramPlaceholderSyntax="{{paramName}}";agentConfigs=y([]);availableAgentConfigs=this.agentConfigs.asReadonly();existingPrompt=null;ngOnInit(){let t=this.route.snapshot.paramMap.get("promptId");t&&(this.isEditMode.set(!0),this.loadPrompt(t)),this.isPlatformMode?this.loadPlatformAgentConfigs():this.namespaceId&&this.loadAgentConfigs(this.namespaceId)}loadPrompt(t){this.isLoading.set(!0),this.promptState.getById(t).pipe(P(this.destroyRef)).subscribe({next:e=>{this.existingPrompt=e,this.hydrateForm(e),this.isLoading.set(!1)},error:()=>{this.isLoading.set(!1),this.navigateBack()}})}loadAgentConfigs(t){this.agentConfigController.listByParentAgentConfig(t).pipe(P(this.destroyRef),A(()=>k([]))).subscribe(e=>this.agentConfigs.set(e))}loadPlatformAgentConfigs(){this.agentConfigController.listPlatformAgentsAgentConfig().pipe(P(this.destroyRef),A(()=>k([]))).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 u(t,{nonNullable:!0,validators:[_.required,_.pattern(/\S/)]})}addContentEntry(){this.contentArray.push(this.createContentControl())}removeContentEntry(t){this.contentArray.length>1&&this.contentArray.removeAt(t)}createParameterGroup(t){return new N({name:new u(t?.name??"",{nonNullable:!0,validators:[_.required,_.minLength(1)]}),description:new u(t?.description??null),defaultValue:new u(t?.defaultValue??"",{nonNullable:!0,validators:[_.required]})})}addParameter(){this.parametersArray.push(this.createParameterGroup())}removeParameter(t){this.parametersArray.removeAt(t)}submit(){if(this.form.invalid||this.isSubmitting())return;this.isSubmitting.set(!0);let t=this.isEditMode()&&!!this.existingPrompt?.id,e=T(V({},this.existingPrompt??{}),{namespaceId:this.namespaceId,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 p=t?this.promptState.update(this.existingPrompt.id,e):this.promptState.create(e);this.errorMessage.set(null),p.pipe(P(this.destroyRef)).subscribe({next:()=>this.navigateBack(),error:d=>{this.isSubmitting.set(!1),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.")}})}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=D({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",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"]],template:function(e,l){e&1&&(n(0,"div",0)(1,"header",1)(2,"button",2),C("click",function(){return l.cancel()}),n(3,"span",3),o(4,"\u2190"),r(),o(5),r(),n(6,"h1",4),o(7),r()(),c(8,oe,2,0,"p",5)(9,ge,63,17,"form",6),r()),e&2&&(a(5),F(" ",l.isPlatformMode?"Platform prompts":"Prompts"," "),a(2),v(l.isEditMode()?"Edit prompt":"New prompt"),a(),f(l.isLoading()?8:9))},dependencies:[Z,q,X,Y,$,W,L,B,j,Q,K,U,H],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)}"],changeDetection:0})};function Ce(i){let t=i.value?.trim();if(!t)return null;try{return JSON.parse(t),null}catch(e){return{invalidJson:!0}}}export{te as PromptFormComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as P,b as O}from"./chunk-
|
|
1
|
+
import{a as P,b as O}from"./chunk-4Z7YULMF.js";import{a as x}from"./chunk-ZGXLG3K2.js";import{d as S}from"./chunk-ZHNZU36N.js";import{b as C,c as M}from"./chunk-6XQBW7HA.js";import{Db as d,Fb as y,Ka as _,Tb as u,Vb as T,Wa as c,ca as s,lb as b,mb as f,mc as p,rb as v,sb as a,ta as g,tb as l,ub as m}from"./chunk-AFIHJVHG.js";function N(o,e){if(o&1&&u(0),o&2){let t=y();T(" ",t.userInitials()," ")}}function V(o,e){o&1&&u(0," \u2022\u2022\u2022 ")}var h=class o{router=s(M);userState=s(x);themePort=s(S);namespaceState=s(P);menuOpen=g(!1);isAdmin=p(()=>this.userState.currentUser()?.isAdmin===!0);isDark=p(()=>{let{mode:e}=this.themePort.theme();return e==="dark"?!0:e==="light"?!1:typeof document<"u"&&document.documentElement.getAttribute("data-theme")?.includes("dark")===!0});themeVariant=p(()=>this.themePort.theme().variant);userInitials=p(()=>{let e=this.userState.currentUser();if(!e)return"";let t=e.firstname?.[0]??"",n=e.lastname?.[0]??"";return(t+n).toUpperCase()||e.email?.[0]?.toUpperCase()||""});showTechnical=g(!1);navigateHome(){let e=this.namespaceState.activeNamespaceId();this.router.navigate(["/agentos/home"],e?{queryParams:{ns:e}}:{})}toggleMenu(e){e.stopPropagation(),this.menuOpen.update(t=>!t)}closeMenu(e){e.stopPropagation(),this.menuOpen.set(!1)}onNavigate(e){this.menuOpen.set(!1),this.router.navigate([e])}onThemeToggle(){this.menuOpen.set(!1);let e=this.isDark()?"light":"dark";this.themePort.setTheme({variant:this.themePort.theme().variant,mode:e})}onThemeVariantChanged(e){this.menuOpen.set(!1);let t=this.themePort.theme();this.themePort.setTheme({variant:e,mode:t.mode})}onLogsToggle(){this.menuOpen.set(!1)}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=c({type:o,selectors:[["agentos-shell-topbar"]],decls:10,vars:6,consts:[[1,"shell-topbar"],["type","button","title","Home",1,"shell-topbar__brand",3,"click"],["src","CODAY-Logo.png","alt","Coday",1,"shell-topbar__logo-img"],[1,"shell-topbar__logo-text"],[1,"shell-topbar__user-menu"],["type","button","title","Menu",1,"shell-topbar__user-btn",3,"click"],["variant","topbar",3,"navigateTo","themeToggled","themeVariantChanged","logsToggled","closed","open","isAdmin","isDark","themeVariant","showTechnical"]],template:function(t,n){t&1&&(a(0,"div",0)(1,"button",1),d("click",function(){return n.navigateHome()}),m(2,"img",2),a(3,"span",3),u(4,"Coday"),l()(),a(5,"div",4)(6,"button",5),d("click",function(r){return n.toggleMenu(r)}),b(7,N,1,1)(8,V,1,0),l(),a(9,"agentos-shell-user-menu",6),d("navigateTo",function(r){return n.onNavigate(r)})("themeToggled",function(){return n.onThemeToggle()})("themeVariantChanged",function(r){return n.onThemeVariantChanged(r)})("logsToggled",function(){return n.onLogsToggle()})("closed",function(r){return n.closeMenu(r)}),l()()()),t&2&&(_(7),f(n.userInitials()?7:8),_(2),v("open",n.menuOpen())("isAdmin",n.isAdmin())("isDark",n.isDark())("themeVariant",n.themeVariant())("showTechnical",n.showTechnical()))},dependencies:[O],styles:[".shell-topbar[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 12px;border-bottom:1px solid var(--color-divider);background:var(--color-bg);flex-shrink:0}.shell-topbar__brand[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;padding:0;border:none;background:transparent;cursor:pointer;transition:opacity .14s ease}.shell-topbar__brand[_ngcontent-%COMP%]:hover{opacity:.8}.shell-topbar__logo-img[_ngcontent-%COMP%]{height:28px;width:auto;object-fit:contain;display:block;flex:none}.shell-topbar__logo-text[_ngcontent-%COMP%]{font-weight:700;font-size:18px;color:var(--color-text);letter-spacing:-.02em;white-space:nowrap}.shell-topbar__user-menu[_ngcontent-%COMP%]{position:relative;flex-shrink:0}.shell-topbar__user-btn[_ngcontent-%COMP%]{width:32px;height:32px;flex:none;display:grid;place-items:center;border:1px solid var(--color-divider);background:var(--color-surface);font-family:var(--font-heading);font-weight:600;font-size:13px;color:var(--color-accent-700);cursor:pointer;transition:border-color .14s;border-radius:0}.shell-topbar__user-btn[_ngcontent-%COMP%]:hover{border-color:var(--color-accent)}"],changeDetection:0})};var k=class o{static \u0275fac=function(t){return new(t||o)};static \u0275cmp=c({type:o,selectors:[["agentos-layout"]],decls:4,vars:0,consts:[[1,"layout"],[1,"layout__content"]],template:function(t,n){t&1&&(a(0,"div",0),m(1,"agentos-shell-topbar"),a(2,"main",1),m(3,"router-outlet"),l()())},dependencies:[C,h],styles:[".layout[_ngcontent-%COMP%]{display:flex;flex-direction:column;min-height:100vh}.layout__content[_ngcontent-%COMP%]{flex:1;overflow-y:auto}"]})};export{k as a};
|