@whoz-oss/coday-client 3.25.0 → 3.27.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/3rdpartylicenses.txt +234 -0
- package/browser/{chunk-B6pr9Now.js → chunk-1xKCP6gl.js} +1 -1
- package/browser/{chunk-OqElmTmR.js → chunk-B1gTtKFG.js} +1 -1
- package/browser/{chunk-Cc6av_kK.js → chunk-BIdH1XJF.js} +2 -2
- package/browser/chunk-BSAXfS2x.js +1 -0
- package/browser/{chunk-B2UoGfZ3.js → chunk-Bbb2Oy9I.js} +6 -6
- package/browser/{chunk-CmWqV8dc.js → chunk-BjBW1d-u.js} +6 -6
- package/browser/{chunk-DEUnwPWC.js → chunk-BlUiCEeR.js} +1 -1
- package/browser/{chunk-BH0AuKDN.js → chunk-BloWX02p.js} +1 -1
- package/browser/{chunk-sI2K91LE.js → chunk-BmHNWYuZ.js} +1 -1
- package/browser/{chunk-CXFeBkf0.js → chunk-Bo1DjeiW.js} +1 -1
- package/browser/{chunk-DT0j_Tak.js → chunk-Boc0RvBR.js} +1 -1
- package/browser/{chunk-BWE4takb.js → chunk-Bol7PdRu.js} +1 -1
- package/browser/{chunk-BUi4VbRk.js → chunk-BtBbv-Bf.js} +1 -1
- package/browser/{chunk-DuGczpUf.js → chunk-BvO---8Y.js} +2 -2
- package/browser/chunk-Bv_n_Pea.js +141 -0
- package/browser/chunk-C-VoWDOg.js +10 -0
- package/browser/chunk-C0DMx9CU.js +1 -0
- package/browser/chunk-C3cvHmBJ.js +1 -0
- package/browser/chunk-C5mPb_F4.js +1 -0
- package/browser/chunk-C6x9SBjG.js +1 -0
- package/browser/{chunk-ByqToPFV.js → chunk-CBwpP2V0.js} +1 -1
- package/browser/{chunk-DyyifT6r.js → chunk-CCEiNYBj.js} +1 -1
- package/browser/chunk-CCQAu0MS.js +1 -0
- package/browser/chunk-CE5rgBGE.js +182 -0
- package/browser/{chunk-iT-BBh_o.js → chunk-CERsD1uZ.js} +1 -1
- package/browser/chunk-CFY3CFkD.js +1 -0
- package/browser/{chunk-CWfLK-02.js → chunk-CFfiJ53b.js} +1 -1
- package/browser/{chunk-Bsd6cfhc.js → chunk-CG4buEjj.js} +1 -1
- package/browser/{chunk-OZvSiKvx.js → chunk-CGL1Leue.js} +1 -1
- package/browser/{chunk-DpWl8Hmh.js → chunk-CGlvdEI7.js} +1 -1
- package/browser/chunk-CHSLALZZ.js +111 -0
- package/browser/chunk-CRrjfkUg.js +5 -0
- package/browser/{chunk-CfZ8rkw0.js → chunk-CdkqXKu3.js} +1 -1
- package/browser/{chunk-pyvVjc-9.js → chunk-ChTqQ8HQ.js} +1 -1
- package/browser/chunk-CjKxvXTd.js +1 -0
- package/browser/{chunk-iiREShnX.js → chunk-Cmp8otOQ.js} +1 -1
- package/browser/{chunk-Ce6h2FeE.js → chunk-CpGwP-5T.js} +1 -1
- package/browser/{chunk--j9cf9d6.js → chunk-CrYRdxC9.js} +2 -2
- package/browser/chunk-CrZEE1qa.js +1 -0
- package/browser/chunk-Cw62GRPX.js +1 -0
- package/browser/{chunk-C0cIJD6B.js → chunk-CxozF4Vf.js} +1 -1
- package/browser/{chunk-CDteNbQE.js → chunk-D-vld_6F.js} +1 -1
- package/browser/{chunk-CU9SkJlG.js → chunk-D2pgQ9ii.js} +1 -1
- package/browser/{chunk-Ccwn8U1w.js → chunk-D5UGtM5T.js} +1 -1
- package/browser/{chunk-D62ekcvB.js → chunk-DG8M0PqZ.js} +1 -1
- package/browser/chunk-DKg7p59a.js +1 -0
- package/browser/chunk-DOV6c8DN.js +4 -0
- package/browser/{chunk-BAyZlfDb.js → chunk-DX05HUs9.js} +1 -1
- package/browser/{chunk-D26Rjl-2.js → chunk-DZe-m4Sd.js} +1 -1
- package/browser/chunk-D_aTK145.js +37 -0
- package/browser/chunk-DczzZnS1.js +1 -0
- package/browser/{chunk-Bv19t8Yr.js → chunk-Ddpg0y75.js} +1 -1
- package/browser/chunk-DgmZwFcU.js +2 -0
- package/browser/chunk-DpKLsgM9.js +1 -0
- package/browser/chunk-DuNMllH-.js +2 -0
- package/browser/{chunk-GWd9G-Nj.js → chunk-Dz1wgxrF.js} +1 -1
- package/browser/{chunk-rWPj3GdK.js → chunk-Fh0Lvh-K.js} +1 -1
- package/browser/{chunk-6ZQ87jQV.js → chunk-G_l8BMaJ.js} +3 -3
- package/browser/{chunk-RFOuzDB-.js → chunk-Ov4I3GYD.js} +1 -1
- package/browser/{chunk-BRAKs_V4.js → chunk-RUBMO7Yb.js} +3 -3
- package/browser/{chunk-BorcVzNx.js → chunk-WuZ8xi__.js} +1 -1
- package/browser/chunk-_2qKLbuS.js +1 -0
- package/browser/{chunk-2dXF6kxO.js → chunk-a4RWgm8g.js} +1 -1
- package/browser/{chunk-ComIIQUU.js → chunk-bIJnspzL.js} +1 -1
- package/browser/{chunk-CIFgO2HT.js → chunk-cNEt2yX6.js} +1 -1
- package/browser/{chunk-AfeufHde.js → chunk-cg5smJeu.js} +1 -1
- package/browser/{chunk-ehgi4mB8.js → chunk-q9uyoVUw.js} +1 -1
- package/browser/chunk-sqjr_Ky0.js +1 -0
- package/browser/{chunk-C3uyXZ11.js → chunk-u3jxNXQ8.js} +1 -1
- package/browser/chunk-vQXZQsZC.js +1 -0
- package/browser/index.html +1 -1
- package/browser/main-2GG5NZ4C.js +1811 -0
- package/package.json +1 -1
- package/browser/chunk-BP7WYYNR.js +0 -1
- package/browser/chunk-BSmtz5y3.js +0 -2
- package/browser/chunk-BZIfffSY.js +0 -1
- package/browser/chunk-BaAG5SRs.js +0 -9
- package/browser/chunk-BkZ4nMy0.js +0 -1
- package/browser/chunk-Bkl_Vpe1.js +0 -1
- package/browser/chunk-Btjdv26a.js +0 -1
- package/browser/chunk-C4kiVp0I.js +0 -1
- package/browser/chunk-CBsoAXBW.js +0 -1
- package/browser/chunk-CCSxTkZ-.js +0 -1
- package/browser/chunk-CKdscASQ.js +0 -1
- package/browser/chunk-CPuMGlfm.js +0 -37
- package/browser/chunk-CgtOp5dr.js +0 -5
- package/browser/chunk-Cyh4DuAi.js +0 -1
- package/browser/chunk-DIKc_N9D.js +0 -1
- package/browser/chunk-DIY-0Lon.js +0 -1
- package/browser/chunk-DaphJW96.js +0 -1
- package/browser/chunk-Dgr7xggj.js +0 -4
- package/browser/chunk-DrcS-IIH.js +0 -182
- package/browser/chunk-DwD-3Qe0.js +0 -1
- package/browser/chunk-Dx97073t.js +0 -141
- package/browser/chunk-L0O9mlbO.js +0 -2
- package/browser/chunk-OpIcFxMt.js +0 -1
- package/browser/chunk-bEyVnMri.js +0 -1
- package/browser/main-4LGWVPVH.js +0 -1811
|
@@ -1 +1 @@
|
|
|
1
|
-
import {f}from'./chunk-BWE4takb.js';import {g,bm as Om,R as Re,W as Wi,T as TT,j as jw,h as hr,i as Gn,k as Cs,n as Lg,J as JC,m as hl,o as aC,af as bg,ag as ET,t as AC,u as sI,x as xg,v as cC,E as vy,P,aF as R,Y as x,Z as z,_ as Ue,$ as zt,a0 as jt,a1 as Vt,a2 as Nt,e as pr,bn as Xt,ai as sm,aj as iT,a3 as ZI,q as dC,bo as uC,a8 as em,ak as im,a6 as QI,w as fC,a5 as Dl,ac as CC,a9 as vC,aa as Sf,ab as _f,bp as yl,bq as vl,ah as dT,b4 as fT,y as qg,b0 as tm,a4 as lC,N as Ng,A as Ag}from'./main-4LGWVPVH.js';import {P as Pt}from'./chunk-CXFeBkf0.js';import {T as Tn,S as Sn,n as nt$1,a as ae,l as le,c as ce}from'./chunk-BRAKs_V4.js';import {W as Wn,o as ot$1,i as it$1,I as In,D as De,B as Be,y as ya,E as En}from'./chunk-CmWqV8dc.js';import'./chunk-B2UoGfZ3.js';import {y as yt,w as wt,t as ti,Q as Qn,e as ei,Y as Ye$1,f as fn,m as mn,Z as Zn,g as gt,$ as $t,W as Wt,c as cn}from'./chunk-CPuMGlfm.js';var w=class s{http=g(vy);projectState=g(P);getBaseUrl(){return `/api/projects/${this.projectState.getSelectedProjectIdOrThrow()}/agents`}listEditableAgents(){return this.http.get(`${this.getBaseUrl()}/editable`)}getAgent(t){return this.http.get(`${this.getBaseUrl()}/${encodeURIComponent(t)}`)}createAgent(t,e){return this.http.post(this.getBaseUrl(),{location:e,definition:t})}updateAgent(t,e){return this.http.put(`${this.getBaseUrl()}/${encodeURIComponent(t)}`,{definition:e})}listDocuments(t){return this.http.get(`${this.getBaseUrl()}/documents`,{params:{location:t}})}uploadDocument(t,e){return new R(n=>{let a=new FileReader;a.onload=()=>{let r=a.result.split(",")[1];this.http.post(`${this.getBaseUrl()}/documents`,{filename:e.name,content:r,mimeType:e.type},{params:{location:t}}).subscribe(n);},a.onerror=()=>n.error(a.error),a.readAsDataURL(e);})}deleteAgent(t){return this.http.delete(`${this.getBaseUrl()}/${encodeURIComponent(t)}`)}static \u0275fac=function(e){return new(e||s)};static \u0275prov=x({token:s,factory:s.\u0275fac,providedIn:"root"})};function ze(s,t){s&1&&(Cs(0,"p",15),JC(1,"No integrations defined \u2014 agent will have access to all tools."),hl());}function qe(s,t){if(s&1){let e=vC();Cs(0,"div",16)(1,"mat-form-field",22)(2,"mat-label"),JC(3,"Integration"),hl(),Cs(4,"input",23),sm("ngModelChange",function(a){let r=Sf(e).$implicit;return iT(r.integration,a)||(r.integration=a),_f(a)}),hl(),ZI(),hl(),Cs(5,"mat-form-field",24)(6,"mat-label"),JC(7,"Tools (comma-separated)"),hl(),Cs(8,"input",25),sm("ngModelChange",function(a){let r=Sf(e).$implicit;return iT(r.tools,a)||(r.tools=a),_f(a)}),hl(),ZI(),hl(),Cs(9,"button",26),Lg("click",function(){let a=Sf(e).$index,r=CC();return _f(r.removeIntegrationRow(a))}),Cs(10,"mat-icon"),JC(11,"delete"),hl()()();}if(s&2){let e=t.$implicit;sI(4),im("ngModel",e.integration),QI(),sI(4),im("ngModel",e.tools),QI();}}function He(s,t){if(s&1&&(Cs(0,"p",30),JC(1),hl()),s&2){let e=CC(2);sI(),em(e.docUploadError);}}function Ge(s,t){s&1&&(Cs(0,"p",15),JC(1,"No mandatory documents defined."),hl());}function Ze(s,t){if(s&1&&Ag(0,"option",35),s&2){let e=t.$implicit;xg("value","documents/"+e);}}function Ke(s,t){if(s&1){let e=vC();Cs(0,"div",31)(1,"mat-form-field",32)(2,"mat-label"),JC(3,"Document path"),hl(),Cs(4,"input",33),sm("ngModelChange",function(a){let r=Sf(e).$index,j=CC(2);return iT(j.mandatoryDocs[r],a)||(j.mandatoryDocs[r]=a),_f(a)}),hl(),ZI(),Cs(5,"datalist",34),dC(6,Ze,1,1,"option",35,lC),hl()(),Cs(8,"button",26),Lg("click",function(){let a=Sf(e).$index,r=CC(2);return _f(r.removeDocRow(a))}),Cs(9,"mat-icon"),JC(10,"delete"),hl()()();}if(s&2){let e=t.$index,n=CC(2);sI(4),im("ngModel",n.mandatoryDocs[e]),Ng("list","docs-list-"+e),QI(),sI(),xg("id","docs-list-"+e),sI(),fC(n.availableDocuments);}}function Je(s,t){if(s&1){let e=vC();Cs(0,"div",6)(1,"span"),JC(2,"Mandatory Documents"),hl(),Cs(3,"button",27),Lg("click",function(){Sf(e);let a=CC();return _f(a.addDocRow())}),Cs(4,"mat-icon"),JC(5,"add"),hl()(),Cs(6,"label",28)(7,"mat-icon"),JC(8,"upload_file"),hl(),Cs(9,"input",29),Lg("change",function(a){Sf(e);let r=CC();return _f(r.onDocFileSelected(a))}),hl()()(),aC(10,He,2,1,"p",30),aC(11,Ge,2,0,"p",15),dC(12,Ke,11,3,"div",31,uC);}if(s&2){let e=CC();sI(6),qg("uploading",e.isUploadingDoc),sI(3),xg("disabled",e.isUploadingDoc),sI(),cC(e.docUploadError?10:-1),sI(),cC(e.mandatoryDocs.length===0?11:-1),sI(),fC(e.mandatoryDocs);}}function Qe(s,t){s&1&&(Cs(0,"p",15),JC(1,"\u{1F4A1} Documents can be added after the agent is created."),hl());}function Xe(s,t){if(s&1){let e=vC();Cs(0,"div",6),JC(1,"Save to"),hl(),Cs(2,"div",36)(3,"label",37)(4,"input",38),sm("ngModelChange",function(a){Sf(e);let r=CC();return iT(r.location,a)||(r.location=a),_f(a)}),hl(),ZI(),Cs(5,"div",39)(6,"div",40)(7,"span",41),JC(8,"\u{1F464}"),hl(),Cs(9,"span",42),JC(10,"Project config"),hl()(),Cs(11,"p",43),JC(12),hl()()(),Cs(13,"label",37)(14,"input",44),sm("ngModelChange",function(a){Sf(e);let r=CC();return iT(r.location,a)||(r.location=a),_f(a)}),hl(),ZI(),Cs(15,"div",39)(16,"div",40)(17,"span",41),JC(18,"\u{1F4E6}"),hl(),Cs(19,"span",42),JC(20,"Colocated"),hl()(),Cs(21,"p",43),JC(22,"Next to coday.yaml in ./agents/ (committable)"),hl()()()(),Cs(23,"p",15),JC(24,"Storage location is permanent and cannot be changed after creation."),hl();}if(s&2){let e=CC();sI(3),qg("selected",e.location==="project"),sI(),im("ngModel",e.location),QI(),sI(8),tm("~/.coday/projects/","{","name","}","/agents/ (not committed)"),sI(),qg("selected",e.location==="colocated"),sI(),im("ngModel",e.location),QI();}}function Ye(s,t){if(s&1&&(Cs(0,"div",17)(1,"span",6),JC(2,"Storage Location"),hl(),Cs(3,"span",45),JC(4),hl(),Cs(5,"p",15),JC(6,"Cannot be changed after creation."),hl()()),s&2){let e=CC();sI(3),qg("badge-project",e.location==="project")("badge-colocated",e.location==="colocated"),sI(),Dl(" ",e.location==="project"?"\u{1F464} Project config":"\u{1F4E6} Colocated"," ");}}function $e(s,t){if(s&1&&(Cs(0,"div",18)(1,"mat-icon"),JC(2,"error"),hl(),Cs(3,"span"),JC(4),hl()()),s&2){let e=CC();sI(4),em(e.errorMessage);}}var E=class s{agentCrudApi=g(w);agentApi=g(f);dialogRef=g(z);data=g(Ue);name="";description="";instructions="";aiProvider="";modelName="";temperature=null;maxOutputTokens=null;openaiAssistantId="";integrationRows=[];mandatoryDocs=[];availableDocuments=[];isUploadingDoc=false;docUploadError="";location="project";isSaving=false;errorMessage="";isEditMode=false;ngOnInit(){if(this.isEditMode=this.data.mode==="edit",this.isEditMode&&this.data.agent){let t=this.data.agent.definition;this.name=t.name,this.description=t.description,this.instructions=t.instructions??"",this.aiProvider=t.aiProvider??"",this.modelName=t.modelName??"",this.temperature=t.temperature??null,this.maxOutputTokens=t.maxOutputTokens??null,this.openaiAssistantId=t.openaiAssistantId??"",this.location=this.data.agent.source,t.integrations&&(this.integrationRows=Object.entries(t.integrations).map(([e,n])=>({integration:e,tools:n?.join(", ")??""}))),this.mandatoryDocs=[...t.mandatoryDocs??[]],this.loadAvailableDocuments();}}loadAvailableDocuments(){this.agentCrudApi.listDocuments(this.location).subscribe({next:t=>this.availableDocuments=t,error:()=>this.availableDocuments=[]});}addDocRow(){this.mandatoryDocs.push("");}removeDocRow(t){this.mandatoryDocs.splice(t,1);}onDocFileSelected(t){let e=t.target,n=e.files?.[0];n&&(this.isUploadingDoc=true,this.docUploadError="",this.agentCrudApi.uploadDocument(this.location,n).subscribe({next:a=>{this.isUploadingDoc=false,this.mandatoryDocs.push(a.relativePath),this.loadAvailableDocuments(),e.value="";},error:a=>{this.isUploadingDoc=false,this.docUploadError=a?.error?.error??a?.message??"Upload failed",e.value="";}}));}addIntegrationRow(){this.integrationRows.push({integration:"",tools:""});}removeIntegrationRow(t){this.integrationRows.splice(t,1);}trackByIndex(t){return t}validateForm(){if(!this.name.trim())return this.errorMessage="Name is required",false;if(!/^[a-zA-Z0-9][a-zA-Z0-9_-]*$/.test(this.name.trim()))return this.errorMessage="Name must start with alphanumeric and contain only letters, digits, hyphens or underscores",false;if(!this.description.trim())return this.errorMessage="Description is required",false;for(let t of this.integrationRows)if(!t.integration.trim())return this.errorMessage="Integration name cannot be empty",false;return true}buildDefinition(){let t=this.mandatoryDocs.map(n=>n.trim()).filter(Boolean),e=this.integrationRows.length>0?Object.fromEntries(this.integrationRows.filter(n=>n.integration.trim()).map(n=>[n.integration.trim(),n.tools.split(",").map(a=>a.trim()).filter(Boolean)])):void 0;return {name:this.name.trim(),description:this.description.trim(),instructions:this.instructions.trim()||void 0,aiProvider:this.aiProvider.trim()||void 0,modelName:this.modelName.trim()||void 0,temperature:this.temperature??void 0,maxOutputTokens:this.maxOutputTokens??void 0,openaiAssistantId:this.openaiAssistantId.trim()||void 0,integrations:e,mandatoryDocs:t.length>0?t:void 0}}save(){if(this.errorMessage="",!this.validateForm())return;let t=this.buildDefinition();this.isSaving=true,(this.isEditMode?this.agentCrudApi.updateAgent(this.name.trim(),t):this.agentCrudApi.createAgent(t,this.location)).subscribe({next:()=>{this.isSaving=false,this.agentApi.clearAllCache(),this.dialogRef.close(true);},error:n=>{this.isSaving=false,this.errorMessage=n?.error?.error||n?.message||"Failed to save agent";}});}cancel(){this.dialogRef.close(false);}static \u0275fac=function(e){return new(e||s)};static \u0275cmp=jw({type:s,selectors:[["app-agent-form"]],decls:69,vars:18,consts:[["mat-dialog-title",""],[1,"form-container"],["appearance","outline",1,"full-width"],["matInput","","placeholder","my-agent","required","",3,"ngModelChange","ngModel","readonly"],["matInput","","placeholder","What does this agent do?","rows","2","required","",3,"ngModelChange","ngModel"],["matInput","","placeholder","System instructions for the agent...","rows","6",3,"ngModelChange","ngModel"],[1,"section-title"],[1,"row-2col"],["appearance","outline"],["matInput","","placeholder","e.g. anthropic, openai",3,"ngModelChange","ngModel"],["matInput","","placeholder","e.g. claude-sonnet-4-5",3,"ngModelChange","ngModel"],["matInput","","type","number","min","0","max","2","step","0.1","placeholder","0.0 \u2013 2.0",3,"ngModelChange","ngModel"],["matInput","","type","number","min","1","placeholder","e.g. 4096",3,"ngModelChange","ngModel"],["matInput","","placeholder","asst_...",3,"ngModelChange","ngModel"],["mat-icon-button","","type","button","title","Add integration",3,"click"],[1,"hint"],[1,"integration-row"],[1,"source-display"],[1,"error-message"],["align","end"],["mat-button","",3,"click","disabled"],["mat-raised-button","","color","primary",3,"click","disabled"],["appearance","outline",1,"integration-name"],["matInput","","placeholder","e.g. GITHUB",3,"ngModelChange","ngModel"],["appearance","outline",1,"integration-tools"],["matInput","","placeholder","Leave empty for all tools",3,"ngModelChange","ngModel"],["mat-icon-button","","type","button","title","Remove",3,"click"],["mat-icon-button","","type","button","title","Add document path",3,"click"],["title","Upload a document to the pool",1,"upload-btn"],["type","file","hidden","",3,"change","disabled"],[1,"doc-upload-error"],[1,"doc-row"],["appearance","outline",1,"doc-field"],["matInput","","placeholder","documents/guide.md",3,"ngModelChange","ngModel"],[3,"id"],[3,"value"],[1,"source-options"],[1,"source-option"],["type","radio","name","location","value","project",3,"ngModelChange","ngModel"],[1,"source-content"],[1,"source-header"],[1,"source-icon"],[1,"source-label"],[1,"source-description"],["type","radio","name","location","value","colocated",3,"ngModelChange","ngModel"],[1,"source-badge"]],template:function(e,n){e&1&&(Cs(0,"h2",0),JC(1),hl(),Cs(2,"mat-dialog-content")(3,"div",1)(4,"mat-form-field",2)(5,"mat-label"),JC(6,"Name"),hl(),Cs(7,"input",3),sm("ngModelChange",function(r){return iT(n.name,r)||(n.name=r),r}),hl(),ZI(),Cs(8,"mat-hint"),JC(9,"Alphanumeric, hyphens and underscores only. Cannot be changed after creation."),hl()(),Cs(10,"mat-form-field",2)(11,"mat-label"),JC(12,"Description"),hl(),Cs(13,"textarea",4),sm("ngModelChange",function(r){return iT(n.description,r)||(n.description=r),r}),hl(),ZI(),hl(),Cs(14,"mat-form-field",2)(15,"mat-label"),JC(16,"Instructions"),hl(),Cs(17,"textarea",5),sm("ngModelChange",function(r){return iT(n.instructions,r)||(n.instructions=r),r}),hl(),ZI(),Cs(18,"mat-hint"),JC(19,"System prompt / instructions sent to the AI model"),hl()(),Cs(20,"div",6),JC(21,"AI Configuration"),hl(),Cs(22,"div",7)(23,"mat-form-field",8)(24,"mat-label"),JC(25,"AI Provider"),hl(),Cs(26,"input",9),sm("ngModelChange",function(r){return iT(n.aiProvider,r)||(n.aiProvider=r),r}),hl(),ZI(),hl(),Cs(27,"mat-form-field",8)(28,"mat-label"),JC(29,"Model Name"),hl(),Cs(30,"input",10),sm("ngModelChange",function(r){return iT(n.modelName,r)||(n.modelName=r),r}),hl(),ZI(),hl()(),Cs(31,"div",7)(32,"mat-form-field",8)(33,"mat-label"),JC(34,"Temperature"),hl(),Cs(35,"input",11),sm("ngModelChange",function(r){return iT(n.temperature,r)||(n.temperature=r),r}),hl(),ZI(),Cs(36,"mat-hint"),JC(37,"Leave empty for model default"),hl()(),Cs(38,"mat-form-field",8)(39,"mat-label"),JC(40,"Max Output Tokens"),hl(),Cs(41,"input",12),sm("ngModelChange",function(r){return iT(n.maxOutputTokens,r)||(n.maxOutputTokens=r),r}),hl(),ZI(),Cs(42,"mat-hint"),JC(43,"Leave empty for model default"),hl()()(),Cs(44,"mat-form-field",2)(45,"mat-label"),JC(46,"OpenAI Assistant ID"),hl(),Cs(47,"input",13),sm("ngModelChange",function(r){return iT(n.openaiAssistantId,r)||(n.openaiAssistantId=r),r}),hl(),ZI(),Cs(48,"mat-hint"),JC(49,"If set, forces aiProvider to openai"),hl()(),Cs(50,"div",6)(51,"span"),JC(52,"Integrations"),hl(),Cs(53,"button",14),Lg("click",function(){return n.addIntegrationRow()}),Cs(54,"mat-icon"),JC(55,"add"),hl()()(),aC(56,ze,2,0,"p",15),dC(57,qe,12,2,"div",16,uC),aC(59,Je,14,5)(60,Qe,2,0,"p",15),aC(61,Xe,25,8),aC(62,Ye,7,5,"div",17),aC(63,$e,5,1,"div",18),hl()(),Cs(64,"mat-dialog-actions",19)(65,"button",20),Lg("click",function(){return n.cancel()}),JC(66,"Cancel"),hl(),Cs(67,"button",21),Lg("click",function(){return n.save()}),JC(68),hl()()),e&2&&(sI(),em(n.isEditMode?"Edit Agent":"Create Agent"),sI(6),im("ngModel",n.name),xg("readonly",n.isEditMode),QI(),sI(6),im("ngModel",n.description),QI(),sI(4),im("ngModel",n.instructions),QI(),sI(9),im("ngModel",n.aiProvider),QI(),sI(4),im("ngModel",n.modelName),QI(),sI(5),im("ngModel",n.temperature),QI(),sI(6),im("ngModel",n.maxOutputTokens),QI(),sI(6),im("ngModel",n.openaiAssistantId),QI(),sI(9),cC(n.integrationRows.length===0?56:-1),sI(),fC(n.integrationRows),sI(2),cC(n.isEditMode?59:60),sI(2),cC(n.isEditMode?-1:61),sI(),cC(n.isEditMode?62:-1),sI(),cC(n.errorMessage?63:-1),sI(2),xg("disabled",n.isSaving),sI(2),xg("disabled",n.isSaving),sI(),Dl(" ",n.isSaving?"Saving...":"Save"," "));},dependencies:[ti,Qn,ei,Ye$1,fn,mn,Zn,gt,$t,Wt,cn,zt,jt,Vt,Nt,hr,pr,Gn,Tn,Sn,nt$1,ae,le,ce,yt,wt,Pt,Xt],styles:[".form-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem;padding:0;min-width:560px}@media(max-width:768px){.form-container[_ngcontent-%COMP%]{min-width:auto}}.full-width[_ngcontent-%COMP%]{width:100%}.section-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:600;margin-top:.5rem;margin-bottom:-.25rem}.row-2col[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:768px){.row-2col[_ngcontent-%COMP%]{grid-template-columns:1fr}}.integration-row[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:.5rem}.integration-row[_ngcontent-%COMP%] .integration-name[_ngcontent-%COMP%]{flex:0 0 180px}.integration-row[_ngcontent-%COMP%] .integration-tools[_ngcontent-%COMP%]{flex:1}.hint[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--color-text-secondary);font-style:italic}.source-options[_ngcontent-%COMP%]{display:flex;gap:1rem;margin-bottom:.5rem}@media(max-width:768px){.source-options[_ngcontent-%COMP%]{flex-direction:column}}.source-option[_ngcontent-%COMP%]{flex:1;display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:var(--color-bg);border:2px solid var(--color-border);border-radius:8px;cursor:pointer;transition:all .2s ease}.source-option[_ngcontent-%COMP%]:hover{border-color:var(--color-primary);background:var(--color-bg-hover)}.source-option.selected[_ngcontent-%COMP%]{border-color:var(--color-primary);background:var(--color-bg-hover);box-shadow:0 0 0 1px var(--color-primary)}.source-option[_ngcontent-%COMP%] input[type=radio][_ngcontent-%COMP%]{margin-top:2px;cursor:pointer}.source-option[_ngcontent-%COMP%] .source-content[_ngcontent-%COMP%]{flex:1}.source-option[_ngcontent-%COMP%] .source-content[_ngcontent-%COMP%] .source-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.source-option[_ngcontent-%COMP%] .source-content[_ngcontent-%COMP%] .source-header[_ngcontent-%COMP%] .source-icon[_ngcontent-%COMP%]{font-size:1.25rem}.source-option[_ngcontent-%COMP%] .source-content[_ngcontent-%COMP%] .source-header[_ngcontent-%COMP%] .source-label[_ngcontent-%COMP%]{font-weight:600;font-size:.95rem}.source-option[_ngcontent-%COMP%] .source-content[_ngcontent-%COMP%] .source-description[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--color-text-secondary);font-family:monospace;line-height:1.4}.source-display[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.source-badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:6px;font-size:.9rem;font-weight:500}.source-badge.badge-project[_ngcontent-%COMP%]{background:#2196f31a;color:#2196f3;border:1px solid rgba(33,150,243,.3)}.source-badge.badge-colocated[_ngcontent-%COMP%]{background:#4caf501a;color:#4caf50;border:1px solid rgba(76,175,80,.3)}.doc-row[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:.5rem}.doc-row[_ngcontent-%COMP%] .doc-field[_ngcontent-%COMP%]{flex:1}.upload-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;cursor:pointer;color:var(--color-text-secondary);transition:background .2s}.upload-btn[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover);color:var(--color-primary)}.upload-btn.uploading[_ngcontent-%COMP%]{opacity:.5;cursor:wait}.upload-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.25rem;width:1.25rem;height:1.25rem}.doc-upload-error[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--color-error)}.error-message[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:#f443361a;border:1px solid var(--color-error);border-radius:4px;color:var(--color-error)}.error-message[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.25rem;width:1.25rem;height:1.25rem}.error-message[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{flex:1}"],changeDetection:1})};var et=()=>[],tt=s=>({id:s});function nt(s,t){if(s&1&&(Cs(0,"div",5),JC(1),hl()),s&2){let e=CC();sI(),em(e.errorMessage());}}function it(s,t){if(s&1){let e=vC();Cs(0,"ds-entity-card",7),Lg("selected",function(a){Sf(e);let r=CC();return _f(r.onEdit(a))}),yl(1,8),Cs(2,"button",9),Lg("click",function(a){return a.stopPropagation()}),Cs(3,"mat-icon"),JC(4,"more_vert"),hl()(),vl(),hl();}if(s&2){let e=t.$implicit;CC();let n=AC(9);xg("id",e.id)("name",e.name)("description",e.description)("badges",e.badges??dT(6,et)),sI(2),xg("matMenuTriggerFor",n)("matMenuTriggerData",fT(7,tt,e.id));}}function ot(s,t){if(s&1){let e=vC();Cs(0,"button",10),Lg("click",function(){let a=Sf(e).id,r=CC();return _f(r.onEdit(a))}),Cs(1,"mat-icon"),JC(2,"edit"),hl(),JC(3," Edit "),hl(),Cs(4,"button",11),Lg("click",function(){let a=Sf(e).id,r=CC();return _f(r.onDelete(a))}),Cs(5,"mat-icon"),JC(6,"delete"),hl(),JC(7," Delete "),hl();}}var Ve=class s{agentCrudApi=g(w);location=g(Om);dialog=g(Re);agents=Wi([]);isLoading=Wi(false);errorMessage=Wi(null);agentItems=TT(()=>this.agents().map(t=>({id:t.name,name:t.name,description:t.description,badges:this.buildBadges(t),groupKey:t.source,groupLabel:t.source==="project"?"Project (~/.coday/)":"Colocated (next to coday.yaml)"})));ngOnInit(){this.loadAgents();}loadAgents(){this.isLoading.set(true),this.errorMessage.set(null),this.agentCrudApi.listEditableAgents().subscribe({next:t=>{this.agents.set(t),this.isLoading.set(false);},error:t=>{this.errorMessage.set(t?.error?.error??"Failed to load agents"),this.isLoading.set(false);}});}onBack(){this.location.back();}onCreate(){this.dialog.open(E,{width:"700px",maxHeight:"90vh",data:{mode:"create"}}).afterClosed().subscribe(e=>{e&&this.loadAgents();});}onEdit(t){this.agentCrudApi.getAgent(t).subscribe({next:e=>{this.dialog.open(E,{width:"700px",maxHeight:"90vh",data:{mode:"edit",agent:e}}).afterClosed().subscribe(a=>{a&&this.loadAgents();});},error:e=>this.errorMessage.set(e?.error?.error??"Failed to load agent")});}onDelete(t){confirm(`Are you sure you want to delete agent "${t}"?`)&&this.agentCrudApi.deleteAgent(t).subscribe({next:()=>this.loadAgents(),error:e=>this.errorMessage.set(e?.error?.error??"Failed to delete agent")});}buildBadges(t){return [t.source==="project"?{label:"project",variant:"info"}:{label:"colocated",variant:"success"}]}static \u0275fac=function(e){return new(e||s)};static \u0275cmp=jw({type:s,selectors:[["app-agent-list"]],decls:11,vars:5,consts:[["agentCard",""],["cardMenu","matMenu"],[1,"agent-list-page"],["title","Agents","cardMinWidth","260px","contentMaxWidth","1400px","searchPlaceholder","Filter agents\u2026","emptyMessage","No file-based agents found.",3,"createRequested","items","loading","showCreate","itemTemplate"],["toolbar-start","","mat-icon-button","","title","Back",3,"click"],[1,"agent-list__error"],["matMenuContent",""],[3,"selected","id","name","description","badges"],["dsCardActions",""],["mat-icon-button","",3,"click","matMenuTriggerFor","matMenuTriggerData"],["mat-menu-item","",3,"click"],["mat-menu-item","",1,"agent-list__delete-item",3,"click"]],template:function(e,n){if(e&1&&(Cs(0,"div",2)(1,"ds-entity-list",3),Lg("createRequested",function(){return n.onCreate()}),Cs(2,"button",4),Lg("click",function(){return n.onBack()}),Cs(3,"mat-icon"),JC(4,"chevron_left"),hl()()(),aC(5,nt,2,1,"div",5),hl(),bg(6,it,5,9,"ng-template",null,0,ET),Cs(8,"mat-menu",null,1),bg(10,ot,8,0,"ng-template",6),hl()),e&2){let a=AC(7);sI(),xg("items",n.agentItems())("loading",n.isLoading())("showCreate",true)("itemTemplate",a),sI(4),cC(n.errorMessage()?5:-1);}},dependencies:[Wn,ot$1,it$1,hr,Gn,yt,wt,In,De,Be,ya,En],styles:["[_nghost-%COMP%]{display:block;width:100%;min-height:100vh;background:var(--color-bg);overflow-y:auto}.agent-list__delete-item[_ngcontent-%COMP%]{color:var(--color-error, #ff3b30)}.agent-list__delete-item[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:inherit}.agent-list__error[_ngcontent-%COMP%]{margin:1rem auto;max-width:900px;padding:.75rem 1rem;background:#dc262614;border:1px solid rgba(220,38,38,.25);border-radius:8px;color:var(--color-error, #ff3b30);font-size:.875rem}"],changeDetection:1})};export{Ve as AgentListComponent};
|
|
1
|
+
import {f}from'./chunk-Bol7PdRu.js';import {g,bm as Mm,R as Re,a as Gi,m as mT,e as xw,h as hr,j as Gn,k as ws,q as Rg,n as GC,o as pl,J as Jw,af as Eg,ag as fT,u as CC,X as XE,v as bg,y as eC,H as py,P,aF as R,Y as x,Z as z,_ as Ue,$ as zt,a0 as jt,a1 as Vt,a2 as Nt,i as pr,bn as Xt,ai as tm,aj as KC,a3 as VI,t as rC,bo as tC,a8 as Yg,ak as em,a6 as UI,z as oC,a5 as vl,ac as gC,a9 as lC,aa as If,ab as wf,bp as ml,bq as yl,ah as rT,b4 as oT,A as Ug,b0 as Qg,a4 as nC,T as Tg,S as Sg}from'./main-2GG5NZ4C.js';import {P as Pt}from'./chunk-Bo1DjeiW.js';import {T as Tn,S as Sn,n as nt$1,a as ae,l as le,c as ce}from'./chunk-RUBMO7Yb.js';import {W as Wn,o as ot$1,i as it$1,I as In,D as De,B as Be,y as ya,E as En}from'./chunk-BjBW1d-u.js';import'./chunk-Bbb2Oy9I.js';import {y as yt,w as wt,t as ti,Q as Qn,e as ei,Y as Ye$1,f as fn,m as mn,Z as Zn,g as gt,$ as $t,W as Wt,c as cn}from'./chunk-D_aTK145.js';var w=class s{http=g(py);projectState=g(P);getBaseUrl(){return `/api/projects/${this.projectState.getSelectedProjectIdOrThrow()}/agents`}listEditableAgents(){return this.http.get(`${this.getBaseUrl()}/editable`)}getAgent(t){return this.http.get(`${this.getBaseUrl()}/${encodeURIComponent(t)}`)}createAgent(t,e){return this.http.post(this.getBaseUrl(),{location:e,definition:t})}updateAgent(t,e){return this.http.put(`${this.getBaseUrl()}/${encodeURIComponent(t)}`,{definition:e})}listDocuments(t){return this.http.get(`${this.getBaseUrl()}/documents`,{params:{location:t}})}uploadDocument(t,e){return new R(n=>{let a=new FileReader;a.onload=()=>{let r=a.result.split(",")[1];this.http.post(`${this.getBaseUrl()}/documents`,{filename:e.name,content:r,mimeType:e.type},{params:{location:t}}).subscribe(n);},a.onerror=()=>n.error(a.error),a.readAsDataURL(e);})}deleteAgent(t){return this.http.delete(`${this.getBaseUrl()}/${encodeURIComponent(t)}`)}static \u0275fac=function(e){return new(e||s)};static \u0275prov=x({token:s,factory:s.\u0275fac,providedIn:"root"})};function ze(s,t){s&1&&(ws(0,"p",15),GC(1,"No integrations defined \u2014 agent will have access to all tools."),pl());}function qe(s,t){if(s&1){let e=lC();ws(0,"div",16)(1,"mat-form-field",22)(2,"mat-label"),GC(3,"Integration"),pl(),ws(4,"input",23),tm("ngModelChange",function(a){let r=If(e).$implicit;return KC(r.integration,a)||(r.integration=a),wf(a)}),pl(),VI(),pl(),ws(5,"mat-form-field",24)(6,"mat-label"),GC(7,"Tools (comma-separated)"),pl(),ws(8,"input",25),tm("ngModelChange",function(a){let r=If(e).$implicit;return KC(r.tools,a)||(r.tools=a),wf(a)}),pl(),VI(),pl(),ws(9,"button",26),Rg("click",function(){let a=If(e).$index,r=gC();return wf(r.removeIntegrationRow(a))}),ws(10,"mat-icon"),GC(11,"delete"),pl()()();}if(s&2){let e=t.$implicit;XE(4),em("ngModel",e.integration),UI(),XE(4),em("ngModel",e.tools),UI();}}function He(s,t){if(s&1&&(ws(0,"p",30),GC(1),pl()),s&2){let e=gC(2);XE(),Yg(e.docUploadError);}}function Ge(s,t){s&1&&(ws(0,"p",15),GC(1,"No mandatory documents defined."),pl());}function Ze(s,t){if(s&1&&Sg(0,"option",35),s&2){let e=t.$implicit;bg("value","documents/"+e);}}function Ke(s,t){if(s&1){let e=lC();ws(0,"div",31)(1,"mat-form-field",32)(2,"mat-label"),GC(3,"Document path"),pl(),ws(4,"input",33),tm("ngModelChange",function(a){let r=If(e).$index,j=gC(2);return KC(j.mandatoryDocs[r],a)||(j.mandatoryDocs[r]=a),wf(a)}),pl(),VI(),ws(5,"datalist",34),rC(6,Ze,1,1,"option",35,nC),pl()(),ws(8,"button",26),Rg("click",function(){let a=If(e).$index,r=gC(2);return wf(r.removeDocRow(a))}),ws(9,"mat-icon"),GC(10,"delete"),pl()()();}if(s&2){let e=t.$index,n=gC(2);XE(4),em("ngModel",n.mandatoryDocs[e]),Tg("list","docs-list-"+e),UI(),XE(),bg("id","docs-list-"+e),XE(),oC(n.availableDocuments);}}function Je(s,t){if(s&1){let e=lC();ws(0,"div",6)(1,"span"),GC(2,"Mandatory Documents"),pl(),ws(3,"button",27),Rg("click",function(){If(e);let a=gC();return wf(a.addDocRow())}),ws(4,"mat-icon"),GC(5,"add"),pl()(),ws(6,"label",28)(7,"mat-icon"),GC(8,"upload_file"),pl(),ws(9,"input",29),Rg("change",function(a){If(e);let r=gC();return wf(r.onDocFileSelected(a))}),pl()()(),Jw(10,He,2,1,"p",30),Jw(11,Ge,2,0,"p",15),rC(12,Ke,11,3,"div",31,tC);}if(s&2){let e=gC();XE(6),Ug("uploading",e.isUploadingDoc),XE(3),bg("disabled",e.isUploadingDoc),XE(),eC(e.docUploadError?10:-1),XE(),eC(e.mandatoryDocs.length===0?11:-1),XE(),oC(e.mandatoryDocs);}}function Qe(s,t){s&1&&(ws(0,"p",15),GC(1,"\u{1F4A1} Documents can be added after the agent is created."),pl());}function Xe(s,t){if(s&1){let e=lC();ws(0,"div",6),GC(1,"Save to"),pl(),ws(2,"div",36)(3,"label",37)(4,"input",38),tm("ngModelChange",function(a){If(e);let r=gC();return KC(r.location,a)||(r.location=a),wf(a)}),pl(),VI(),ws(5,"div",39)(6,"div",40)(7,"span",41),GC(8,"\u{1F464}"),pl(),ws(9,"span",42),GC(10,"Project config"),pl()(),ws(11,"p",43),GC(12),pl()()(),ws(13,"label",37)(14,"input",44),tm("ngModelChange",function(a){If(e);let r=gC();return KC(r.location,a)||(r.location=a),wf(a)}),pl(),VI(),ws(15,"div",39)(16,"div",40)(17,"span",41),GC(18,"\u{1F4E6}"),pl(),ws(19,"span",42),GC(20,"Colocated"),pl()(),ws(21,"p",43),GC(22,"Next to coday.yaml in ./agents/ (committable)"),pl()()()(),ws(23,"p",15),GC(24,"Storage location is permanent and cannot be changed after creation."),pl();}if(s&2){let e=gC();XE(3),Ug("selected",e.location==="project"),XE(),em("ngModel",e.location),UI(),XE(8),Qg("~/.coday/projects/","{","name","}","/agents/ (not committed)"),XE(),Ug("selected",e.location==="colocated"),XE(),em("ngModel",e.location),UI();}}function Ye(s,t){if(s&1&&(ws(0,"div",17)(1,"span",6),GC(2,"Storage Location"),pl(),ws(3,"span",45),GC(4),pl(),ws(5,"p",15),GC(6,"Cannot be changed after creation."),pl()()),s&2){let e=gC();XE(3),Ug("badge-project",e.location==="project")("badge-colocated",e.location==="colocated"),XE(),vl(" ",e.location==="project"?"\u{1F464} Project config":"\u{1F4E6} Colocated"," ");}}function $e(s,t){if(s&1&&(ws(0,"div",18)(1,"mat-icon"),GC(2,"error"),pl(),ws(3,"span"),GC(4),pl()()),s&2){let e=gC();XE(4),Yg(e.errorMessage);}}var E=class s{agentCrudApi=g(w);agentApi=g(f);dialogRef=g(z);data=g(Ue);name="";description="";instructions="";aiProvider="";modelName="";temperature=null;maxOutputTokens=null;openaiAssistantId="";integrationRows=[];mandatoryDocs=[];availableDocuments=[];isUploadingDoc=false;docUploadError="";location="project";isSaving=false;errorMessage="";isEditMode=false;ngOnInit(){if(this.isEditMode=this.data.mode==="edit",this.isEditMode&&this.data.agent){let t=this.data.agent.definition;this.name=t.name,this.description=t.description,this.instructions=t.instructions??"",this.aiProvider=t.aiProvider??"",this.modelName=t.modelName??"",this.temperature=t.temperature??null,this.maxOutputTokens=t.maxOutputTokens??null,this.openaiAssistantId=t.openaiAssistantId??"",this.location=this.data.agent.source,t.integrations&&(this.integrationRows=Object.entries(t.integrations).map(([e,n])=>({integration:e,tools:n?.join(", ")??""}))),this.mandatoryDocs=[...t.mandatoryDocs??[]],this.loadAvailableDocuments();}}loadAvailableDocuments(){this.agentCrudApi.listDocuments(this.location).subscribe({next:t=>this.availableDocuments=t,error:()=>this.availableDocuments=[]});}addDocRow(){this.mandatoryDocs.push("");}removeDocRow(t){this.mandatoryDocs.splice(t,1);}onDocFileSelected(t){let e=t.target,n=e.files?.[0];n&&(this.isUploadingDoc=true,this.docUploadError="",this.agentCrudApi.uploadDocument(this.location,n).subscribe({next:a=>{this.isUploadingDoc=false,this.mandatoryDocs.push(a.relativePath),this.loadAvailableDocuments(),e.value="";},error:a=>{this.isUploadingDoc=false,this.docUploadError=a?.error?.error??a?.message??"Upload failed",e.value="";}}));}addIntegrationRow(){this.integrationRows.push({integration:"",tools:""});}removeIntegrationRow(t){this.integrationRows.splice(t,1);}trackByIndex(t){return t}validateForm(){if(!this.name.trim())return this.errorMessage="Name is required",false;if(!/^[a-zA-Z0-9][a-zA-Z0-9_-]*$/.test(this.name.trim()))return this.errorMessage="Name must start with alphanumeric and contain only letters, digits, hyphens or underscores",false;if(!this.description.trim())return this.errorMessage="Description is required",false;for(let t of this.integrationRows)if(!t.integration.trim())return this.errorMessage="Integration name cannot be empty",false;return true}buildDefinition(){let t=this.mandatoryDocs.map(n=>n.trim()).filter(Boolean),e=this.integrationRows.length>0?Object.fromEntries(this.integrationRows.filter(n=>n.integration.trim()).map(n=>[n.integration.trim(),n.tools.split(",").map(a=>a.trim()).filter(Boolean)])):void 0;return {name:this.name.trim(),description:this.description.trim(),instructions:this.instructions.trim()||void 0,aiProvider:this.aiProvider.trim()||void 0,modelName:this.modelName.trim()||void 0,temperature:this.temperature??void 0,maxOutputTokens:this.maxOutputTokens??void 0,openaiAssistantId:this.openaiAssistantId.trim()||void 0,integrations:e,mandatoryDocs:t.length>0?t:void 0}}save(){if(this.errorMessage="",!this.validateForm())return;let t=this.buildDefinition();this.isSaving=true,(this.isEditMode?this.agentCrudApi.updateAgent(this.name.trim(),t):this.agentCrudApi.createAgent(t,this.location)).subscribe({next:()=>{this.isSaving=false,this.agentApi.clearAllCache(),this.dialogRef.close(true);},error:n=>{this.isSaving=false,this.errorMessage=n?.error?.error||n?.message||"Failed to save agent";}});}cancel(){this.dialogRef.close(false);}static \u0275fac=function(e){return new(e||s)};static \u0275cmp=xw({type:s,selectors:[["app-agent-form"]],decls:69,vars:18,consts:[["mat-dialog-title",""],[1,"form-container"],["appearance","outline",1,"full-width"],["matInput","","placeholder","my-agent","required","",3,"ngModelChange","ngModel","readonly"],["matInput","","placeholder","What does this agent do?","rows","2","required","",3,"ngModelChange","ngModel"],["matInput","","placeholder","System instructions for the agent...","rows","6",3,"ngModelChange","ngModel"],[1,"section-title"],[1,"row-2col"],["appearance","outline"],["matInput","","placeholder","e.g. anthropic, openai",3,"ngModelChange","ngModel"],["matInput","","placeholder","e.g. claude-sonnet-4-5",3,"ngModelChange","ngModel"],["matInput","","type","number","min","0","max","2","step","0.1","placeholder","0.0 \u2013 2.0",3,"ngModelChange","ngModel"],["matInput","","type","number","min","1","placeholder","e.g. 4096",3,"ngModelChange","ngModel"],["matInput","","placeholder","asst_...",3,"ngModelChange","ngModel"],["mat-icon-button","","type","button","title","Add integration",3,"click"],[1,"hint"],[1,"integration-row"],[1,"source-display"],[1,"error-message"],["align","end"],["mat-button","",3,"click","disabled"],["mat-raised-button","","color","primary",3,"click","disabled"],["appearance","outline",1,"integration-name"],["matInput","","placeholder","e.g. GITHUB",3,"ngModelChange","ngModel"],["appearance","outline",1,"integration-tools"],["matInput","","placeholder","Leave empty for all tools",3,"ngModelChange","ngModel"],["mat-icon-button","","type","button","title","Remove",3,"click"],["mat-icon-button","","type","button","title","Add document path",3,"click"],["title","Upload a document to the pool",1,"upload-btn"],["type","file","hidden","",3,"change","disabled"],[1,"doc-upload-error"],[1,"doc-row"],["appearance","outline",1,"doc-field"],["matInput","","placeholder","documents/guide.md",3,"ngModelChange","ngModel"],[3,"id"],[3,"value"],[1,"source-options"],[1,"source-option"],["type","radio","name","location","value","project",3,"ngModelChange","ngModel"],[1,"source-content"],[1,"source-header"],[1,"source-icon"],[1,"source-label"],[1,"source-description"],["type","radio","name","location","value","colocated",3,"ngModelChange","ngModel"],[1,"source-badge"]],template:function(e,n){e&1&&(ws(0,"h2",0),GC(1),pl(),ws(2,"mat-dialog-content")(3,"div",1)(4,"mat-form-field",2)(5,"mat-label"),GC(6,"Name"),pl(),ws(7,"input",3),tm("ngModelChange",function(r){return KC(n.name,r)||(n.name=r),r}),pl(),VI(),ws(8,"mat-hint"),GC(9,"Alphanumeric, hyphens and underscores only. Cannot be changed after creation."),pl()(),ws(10,"mat-form-field",2)(11,"mat-label"),GC(12,"Description"),pl(),ws(13,"textarea",4),tm("ngModelChange",function(r){return KC(n.description,r)||(n.description=r),r}),pl(),VI(),pl(),ws(14,"mat-form-field",2)(15,"mat-label"),GC(16,"Instructions"),pl(),ws(17,"textarea",5),tm("ngModelChange",function(r){return KC(n.instructions,r)||(n.instructions=r),r}),pl(),VI(),ws(18,"mat-hint"),GC(19,"System prompt / instructions sent to the AI model"),pl()(),ws(20,"div",6),GC(21,"AI Configuration"),pl(),ws(22,"div",7)(23,"mat-form-field",8)(24,"mat-label"),GC(25,"AI Provider"),pl(),ws(26,"input",9),tm("ngModelChange",function(r){return KC(n.aiProvider,r)||(n.aiProvider=r),r}),pl(),VI(),pl(),ws(27,"mat-form-field",8)(28,"mat-label"),GC(29,"Model Name"),pl(),ws(30,"input",10),tm("ngModelChange",function(r){return KC(n.modelName,r)||(n.modelName=r),r}),pl(),VI(),pl()(),ws(31,"div",7)(32,"mat-form-field",8)(33,"mat-label"),GC(34,"Temperature"),pl(),ws(35,"input",11),tm("ngModelChange",function(r){return KC(n.temperature,r)||(n.temperature=r),r}),pl(),VI(),ws(36,"mat-hint"),GC(37,"Leave empty for model default"),pl()(),ws(38,"mat-form-field",8)(39,"mat-label"),GC(40,"Max Output Tokens"),pl(),ws(41,"input",12),tm("ngModelChange",function(r){return KC(n.maxOutputTokens,r)||(n.maxOutputTokens=r),r}),pl(),VI(),ws(42,"mat-hint"),GC(43,"Leave empty for model default"),pl()()(),ws(44,"mat-form-field",2)(45,"mat-label"),GC(46,"OpenAI Assistant ID"),pl(),ws(47,"input",13),tm("ngModelChange",function(r){return KC(n.openaiAssistantId,r)||(n.openaiAssistantId=r),r}),pl(),VI(),ws(48,"mat-hint"),GC(49,"If set, forces aiProvider to openai"),pl()(),ws(50,"div",6)(51,"span"),GC(52,"Integrations"),pl(),ws(53,"button",14),Rg("click",function(){return n.addIntegrationRow()}),ws(54,"mat-icon"),GC(55,"add"),pl()()(),Jw(56,ze,2,0,"p",15),rC(57,qe,12,2,"div",16,tC),Jw(59,Je,14,5)(60,Qe,2,0,"p",15),Jw(61,Xe,25,8),Jw(62,Ye,7,5,"div",17),Jw(63,$e,5,1,"div",18),pl()(),ws(64,"mat-dialog-actions",19)(65,"button",20),Rg("click",function(){return n.cancel()}),GC(66,"Cancel"),pl(),ws(67,"button",21),Rg("click",function(){return n.save()}),GC(68),pl()()),e&2&&(XE(),Yg(n.isEditMode?"Edit Agent":"Create Agent"),XE(6),em("ngModel",n.name),bg("readonly",n.isEditMode),UI(),XE(6),em("ngModel",n.description),UI(),XE(4),em("ngModel",n.instructions),UI(),XE(9),em("ngModel",n.aiProvider),UI(),XE(4),em("ngModel",n.modelName),UI(),XE(5),em("ngModel",n.temperature),UI(),XE(6),em("ngModel",n.maxOutputTokens),UI(),XE(6),em("ngModel",n.openaiAssistantId),UI(),XE(9),eC(n.integrationRows.length===0?56:-1),XE(),oC(n.integrationRows),XE(2),eC(n.isEditMode?59:60),XE(2),eC(n.isEditMode?-1:61),XE(),eC(n.isEditMode?62:-1),XE(),eC(n.errorMessage?63:-1),XE(2),bg("disabled",n.isSaving),XE(2),bg("disabled",n.isSaving),XE(),vl(" ",n.isSaving?"Saving...":"Save"," "));},dependencies:[ti,Qn,ei,Ye$1,fn,mn,Zn,gt,$t,Wt,cn,zt,jt,Vt,Nt,hr,pr,Gn,Tn,Sn,nt$1,ae,le,ce,yt,wt,Pt,Xt],styles:[".form-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem;padding:0;min-width:560px}@media(max-width:768px){.form-container[_ngcontent-%COMP%]{min-width:auto}}.full-width[_ngcontent-%COMP%]{width:100%}.section-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:600;margin-top:.5rem;margin-bottom:-.25rem}.row-2col[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:768px){.row-2col[_ngcontent-%COMP%]{grid-template-columns:1fr}}.integration-row[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:.5rem}.integration-row[_ngcontent-%COMP%] .integration-name[_ngcontent-%COMP%]{flex:0 0 180px}.integration-row[_ngcontent-%COMP%] .integration-tools[_ngcontent-%COMP%]{flex:1}.hint[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--color-text-secondary);font-style:italic}.source-options[_ngcontent-%COMP%]{display:flex;gap:1rem;margin-bottom:.5rem}@media(max-width:768px){.source-options[_ngcontent-%COMP%]{flex-direction:column}}.source-option[_ngcontent-%COMP%]{flex:1;display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:var(--color-bg);border:2px solid var(--color-border);border-radius:8px;cursor:pointer;transition:all .2s ease}.source-option[_ngcontent-%COMP%]:hover{border-color:var(--color-primary);background:var(--color-bg-hover)}.source-option.selected[_ngcontent-%COMP%]{border-color:var(--color-primary);background:var(--color-bg-hover);box-shadow:0 0 0 1px var(--color-primary)}.source-option[_ngcontent-%COMP%] input[type=radio][_ngcontent-%COMP%]{margin-top:2px;cursor:pointer}.source-option[_ngcontent-%COMP%] .source-content[_ngcontent-%COMP%]{flex:1}.source-option[_ngcontent-%COMP%] .source-content[_ngcontent-%COMP%] .source-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.source-option[_ngcontent-%COMP%] .source-content[_ngcontent-%COMP%] .source-header[_ngcontent-%COMP%] .source-icon[_ngcontent-%COMP%]{font-size:1.25rem}.source-option[_ngcontent-%COMP%] .source-content[_ngcontent-%COMP%] .source-header[_ngcontent-%COMP%] .source-label[_ngcontent-%COMP%]{font-weight:600;font-size:.95rem}.source-option[_ngcontent-%COMP%] .source-content[_ngcontent-%COMP%] .source-description[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--color-text-secondary);font-family:monospace;line-height:1.4}.source-display[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.source-badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:6px;font-size:.9rem;font-weight:500}.source-badge.badge-project[_ngcontent-%COMP%]{background:#2196f31a;color:#2196f3;border:1px solid rgba(33,150,243,.3)}.source-badge.badge-colocated[_ngcontent-%COMP%]{background:#4caf501a;color:#4caf50;border:1px solid rgba(76,175,80,.3)}.doc-row[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:.5rem}.doc-row[_ngcontent-%COMP%] .doc-field[_ngcontent-%COMP%]{flex:1}.upload-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;cursor:pointer;color:var(--color-text-secondary);transition:background .2s}.upload-btn[_ngcontent-%COMP%]:hover{background:var(--color-bg-hover);color:var(--color-primary)}.upload-btn.uploading[_ngcontent-%COMP%]{opacity:.5;cursor:wait}.upload-btn[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.25rem;width:1.25rem;height:1.25rem}.doc-upload-error[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--color-error)}.error-message[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:#f443361a;border:1px solid var(--color-error);border-radius:4px;color:var(--color-error)}.error-message[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:1.25rem;width:1.25rem;height:1.25rem}.error-message[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{flex:1}"],changeDetection:1})};var et=()=>[],tt=s=>({id:s});function nt(s,t){if(s&1&&(ws(0,"div",5),GC(1),pl()),s&2){let e=gC();XE(),Yg(e.errorMessage());}}function it(s,t){if(s&1){let e=lC();ws(0,"ds-entity-card",7),Rg("selected",function(a){If(e);let r=gC();return wf(r.onEdit(a))}),ml(1,8),ws(2,"button",9),Rg("click",function(a){return a.stopPropagation()}),ws(3,"mat-icon"),GC(4,"more_vert"),pl()(),yl(),pl();}if(s&2){let e=t.$implicit;gC();let n=CC(9);bg("id",e.id)("name",e.name)("description",e.description)("badges",e.badges??rT(6,et)),XE(2),bg("matMenuTriggerFor",n)("matMenuTriggerData",oT(7,tt,e.id));}}function ot(s,t){if(s&1){let e=lC();ws(0,"button",10),Rg("click",function(){let a=If(e).id,r=gC();return wf(r.onEdit(a))}),ws(1,"mat-icon"),GC(2,"edit"),pl(),GC(3," Edit "),pl(),ws(4,"button",11),Rg("click",function(){let a=If(e).id,r=gC();return wf(r.onDelete(a))}),ws(5,"mat-icon"),GC(6,"delete"),pl(),GC(7," Delete "),pl();}}var Ve=class s{agentCrudApi=g(w);location=g(Mm);dialog=g(Re);agents=Gi([]);isLoading=Gi(false);errorMessage=Gi(null);agentItems=mT(()=>this.agents().map(t=>({id:t.name,name:t.name,description:t.description,badges:this.buildBadges(t),groupKey:t.source,groupLabel:t.source==="project"?"Project (~/.coday/)":"Colocated (next to coday.yaml)"})));ngOnInit(){this.loadAgents();}loadAgents(){this.isLoading.set(true),this.errorMessage.set(null),this.agentCrudApi.listEditableAgents().subscribe({next:t=>{this.agents.set(t),this.isLoading.set(false);},error:t=>{this.errorMessage.set(t?.error?.error??"Failed to load agents"),this.isLoading.set(false);}});}onBack(){this.location.back();}onCreate(){this.dialog.open(E,{width:"700px",maxHeight:"90vh",data:{mode:"create"}}).afterClosed().subscribe(e=>{e&&this.loadAgents();});}onEdit(t){this.agentCrudApi.getAgent(t).subscribe({next:e=>{this.dialog.open(E,{width:"700px",maxHeight:"90vh",data:{mode:"edit",agent:e}}).afterClosed().subscribe(a=>{a&&this.loadAgents();});},error:e=>this.errorMessage.set(e?.error?.error??"Failed to load agent")});}onDelete(t){confirm(`Are you sure you want to delete agent "${t}"?`)&&this.agentCrudApi.deleteAgent(t).subscribe({next:()=>this.loadAgents(),error:e=>this.errorMessage.set(e?.error?.error??"Failed to delete agent")});}buildBadges(t){return [t.source==="project"?{label:"project",variant:"info"}:{label:"colocated",variant:"success"}]}static \u0275fac=function(e){return new(e||s)};static \u0275cmp=xw({type:s,selectors:[["app-agent-list"]],decls:11,vars:5,consts:[["agentCard",""],["cardMenu","matMenu"],[1,"agent-list-page"],["title","Agents","cardMinWidth","260px","contentMaxWidth","1400px","searchPlaceholder","Filter agents\u2026","emptyMessage","No file-based agents found.",3,"createRequested","items","loading","showCreate","itemTemplate"],["toolbar-start","","mat-icon-button","","title","Back",3,"click"],[1,"agent-list__error"],["matMenuContent",""],[3,"selected","id","name","description","badges"],["dsCardActions",""],["mat-icon-button","",3,"click","matMenuTriggerFor","matMenuTriggerData"],["mat-menu-item","",3,"click"],["mat-menu-item","",1,"agent-list__delete-item",3,"click"]],template:function(e,n){if(e&1&&(ws(0,"div",2)(1,"ds-entity-list",3),Rg("createRequested",function(){return n.onCreate()}),ws(2,"button",4),Rg("click",function(){return n.onBack()}),ws(3,"mat-icon"),GC(4,"chevron_left"),pl()()(),Jw(5,nt,2,1,"div",5),pl(),Eg(6,it,5,9,"ng-template",null,0,fT),ws(8,"mat-menu",null,1),Eg(10,ot,8,0,"ng-template",6),pl()),e&2){let a=CC(7);XE(),bg("items",n.agentItems())("loading",n.isLoading())("showCreate",true)("itemTemplate",a),XE(4),eC(n.errorMessage()?5:-1);}},dependencies:[Wn,ot$1,it$1,hr,Gn,yt,wt,In,De,Be,ya,En],styles:["[_nghost-%COMP%]{display:block;width:100%;min-height:100vh;background:var(--color-bg);overflow-y:auto}.agent-list__delete-item[_ngcontent-%COMP%]{color:var(--color-error, #ff3b30)}.agent-list__delete-item[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:inherit}.agent-list__error[_ngcontent-%COMP%]{margin:1rem auto;max-width:900px;padding:.75rem 1rem;background:#dc262614;border:1px solid rgba(220,38,38,.25);border-radius:8px;color:var(--color-error, #ff3b30);font-size:.875rem}"],changeDetection:1})};export{Ve as AgentListComponent};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {I}from'./chunk-u3jxNXQ8.js';import {m}from'./chunk-C-VoWDOg.js';import {g,G,C as Ce,aJ as Tr,a as Gi,bS as va,r as re,b as U,e as xw,aK as xb,k as ws,bf as aT,q as Rg,o as pl,af as Eg,u as CC,v as bg,bg as uT,ah as rT,J as Jw,ac as gC,y as eC,a9 as lC,aa as If,ab as wf,ag as fT}from'./main-2GG5NZ4C.js';import {W as Wn,S as Se}from'./chunk-BjBW1d-u.js';import'./chunk-Bbb2Oy9I.js';import'./chunk-D_aTK145.js';import'./chunk-G_l8BMaJ.js';var F=()=>[];function N(o,e){if(o&1){let t=lC();ws(0,"agentos-prompt-item",4),Rg("deleteRequested",function(n){If(t);let E=gC(2);return wf(E.deletePrompt(n))}),pl();}o&2&&bg("prompt",e)("platformMode",true);}function V(o,e){if(o&1&&Jw(0,N,1,2,"agentos-prompt-item",3),o&2){let t,r=e.$implicit,n=gC();eC((t=n.resolvePrompt(r.id))?0:-1,t);}}var q=class o{router=g(G);destroyRef=g(Ce);promptState=g(m);refresh$=new Tr(void 0);isLoading=Gi(true);prompts$=this.refresh$.pipe(va(()=>(this.isLoading.set(true),this.promptState.listPlatform())));promptItems$=this.prompts$.pipe(re(e=>e.map(t=>({id:t.id??"",name:t.name,description:t.description}))));promptsById=new Map;constructor(){this.prompts$.pipe(U(this.destroyRef)).subscribe({next:e=>{this.promptsById=new Map(e.map(t=>[t.id??"",t])),this.isLoading.set(false);},error:()=>this.isLoading.set(false)});}goBack(){this.router.navigate(["/agentos","admin"]);}openCreateForm(){this.router.navigate(["/agentos","admin","prompts","new"]);}deletePrompt(e){this.promptState.delete(e.id??"").pipe(U(this.destroyRef)).subscribe(()=>this.refresh$.next());}resolvePrompt(e){return this.promptsById.get(e)??null}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=xw({type:o,selectors:[["agentos-platform-prompts"]],decls:5,vars:7,consts:[["promptItemTpl",""],["title","Platform Prompts","emptyMessage","No platform prompts defined yet. Add one above.","cardMinWidth","400px",3,"createRequested","items","loading","showCreate","itemTemplate"],["toolbar-start","","icon","arrow_back","title","Back",3,"action"],[3,"prompt","platformMode"],[3,"deleteRequested","prompt","platformMode"]],template:function(t,r){if(t&1&&(ws(0,"ds-entity-list",1),aT(1,"async"),Rg("createRequested",function(){return r.openCreateForm()}),ws(2,"ds-icon-button",2),Rg("action",function(){return r.goBack()}),pl()(),Eg(3,V,1,1,"ng-template",null,0,fT)),t&2){let n=CC(4);bg("items",uT(1,4,r.promptItems$)??rT(6,F))("loading",r.isLoading())("showCreate",true)("itemTemplate",n);}},dependencies:[Wn,I,Se,xb],styles:[".platform-prompts__back[_ngcontent-%COMP%]{background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-primary, #007aff);font-family:inherit}.platform-prompts__back[_ngcontent-%COMP%]:hover{text-decoration:underline}"]})};export{q as PlatformPromptsComponent};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {b as Qe}from'./chunk-
|
|
1
|
+
import {b as Qe}from'./chunk-Bbb2Oy9I.js';import {D as D$1,i as y}from'./chunk-D_aTK145.js';import {aL as wo,aM as Zn,aO as wt,g as g$1,az as Xt,bs as Tl,aP as G,aS as K,aW as C,al as vt,aX as D,bx as on,by as um,aT as Ut,a as Gi,e as xw,bz as Oi,aC as Tu,a_ as QT,bA as yC,k as ws,q as Rg,o as pl,S as Sg,c9 as kf,ck as Ff,bB as vC,u as CC,v as bg,X as XE,A as Ug,T as Tg,b5 as nT,bC as Si,c8 as KT,c0 as xg,b$ as kC,D as Pg,E as EC,I as IC}from'./main-2GG5NZ4C.js';var W=["input"],Y=["label"],ee=["*"],f={color:"accent",clickAction:"check-indeterminate",disabledInteractive:false},ce=new C("mat-checkbox-default-options",{providedIn:"root",factory:()=>f}),a=(function(t){return t[t.Init=0]="Init",t[t.Checked=1]="Checked",t[t.Unchecked=2]="Unchecked",t[t.Indeterminate=3]="Indeterminate",t})(a||{}),g=class{source;checked},ne=(()=>{class t{_elementRef=g$1(Xt);_changeDetectorRef=g$1(Tl);_ngZone=g$1(G);_animationsDisabled=K();_options=g$1(ce,{optional:true});focus(){this._inputElement.nativeElement.focus();}_createChangeEvent(e){let n=new g;return n.source=this,n.checked=e,n}_getAnimationTargetElement(){return this._inputElement?.nativeElement}_animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"};ariaLabel="";ariaLabelledby=null;ariaDescribedby;ariaExpanded;ariaControls;ariaOwns;_uniqueId;id;get inputId(){return `${this.id||this._uniqueId}-input`}required=false;labelPosition="after";name=null;change=new vt;indeterminateChange=new vt;value;disableRipple=false;_inputElement;_labelElement;tabIndex;color;disabledInteractive;_onTouched=()=>{};_currentAnimationClass="";_currentCheckState=a.Init;_controlValueAccessorChangeFn=()=>{};_validatorChangeFn=()=>{};constructor(){g$1(D).load(on);let e=g$1(new um("tabindex"),{optional:true});this._options=this._options||f,this.color=this._options.color||f.color,this.tabIndex=e==null?0:parseInt(e)||0,this.id=this._uniqueId=g$1(Ut).getId("mat-mdc-checkbox-"),this.disabledInteractive=this._options?.disabledInteractive??false;}ngOnChanges(e){e.required&&this._validatorChangeFn();}ngAfterViewInit(){this._syncIndeterminate(this.indeterminate);}get checked(){return this._checked}set checked(e){e!=this.checked&&(this._checked=e,this._changeDetectorRef.markForCheck());}_checked=false;get disabled(){return this._disabled}set disabled(e){e!==this.disabled&&(this._disabled=e,this._changeDetectorRef.markForCheck());}_disabled=false;get indeterminate(){return this._indeterminate()}set indeterminate(e){let n=e!=this._indeterminate();this._indeterminate.set(e),n&&(e?this._transitionCheckState(a.Indeterminate):this._transitionCheckState(this.checked?a.Checked:a.Unchecked),this.indeterminateChange.emit(e)),this._syncIndeterminate(e);}_indeterminate=Gi(false);_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges();}writeValue(e){this.checked=!!e;}registerOnChange(e){this._controlValueAccessorChangeFn=e;}registerOnTouched(e){this._onTouched=e;}setDisabledState(e){this.disabled=e;}validate(e){return this.required&&e.value!==true?{required:true}:null}registerOnValidatorChange(e){this._validatorChangeFn=e;}_transitionCheckState(e){let n=this._currentCheckState,c=this._getAnimationTargetElement();if(!(n===e||!c)&&(this._currentAnimationClass&&c.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(n,e),this._currentCheckState=e,this._currentAnimationClass.length>0)){c.classList.add(this._currentAnimationClass);let o=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{c.classList.remove(o);},1e3);});}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked);}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked);}_handleInputClick(){let e=this._options?.clickAction;!this.disabled&&e!=="noop"?(this.indeterminate&&e!=="check"&&Promise.resolve().then(()=>{this._indeterminate.set(false),this.indeterminateChange.emit(false);}),this._checked=!this._checked,this._transitionCheckState(this._checked?a.Checked:a.Unchecked),this._emitChangeEvent()):(this.disabled&&this.disabledInteractive||!this.disabled&&e==="noop")&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate);}_onInteractionEvent(e){e.stopPropagation();}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck();});}_getAnimationClassForCheckStateTransition(e,n){if(this._animationsDisabled)return "";switch(e){case a.Init:if(n===a.Checked)return this._animationClasses.uncheckedToChecked;if(n==a.Indeterminate)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case a.Unchecked:return n===a.Checked?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case a.Checked:return n===a.Unchecked?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case a.Indeterminate:return n===a.Checked?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return ""}_syncIndeterminate(e){let n=this._inputElement;n&&(n.nativeElement.indeterminate=e);}_onInputClick(){this._handleInputClick();}_onTouchTargetClick(){this._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus();}_preventBubblingFromLabel(e){e.target&&this._labelElement.nativeElement.contains(e.target)&&e.stopPropagation();}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=xw({type:t,selectors:[["mat-checkbox"]],viewQuery:function(n,c){if(n&1&&Pg(W,5)(Y,5),n&2){let o;EC(o=IC())&&(c._inputElement=o.first),EC(o=IC())&&(c._labelElement=o.first);}},hostAttrs:[1,"mat-mdc-checkbox"],hostVars:16,hostBindings:function(n,c){n&2&&(xg("id",c.id),Tg("tabindex",null)("aria-label",null)("aria-labelledby",null),kC(c.color?"mat-"+c.color:"mat-accent"),Ug("_mat-animation-noopable",c._animationsDisabled)("mdc-checkbox--disabled",c.disabled)("mat-mdc-checkbox-disabled",c.disabled)("mat-mdc-checkbox-checked",c.checked)("mat-mdc-checkbox-disabled-interactive",c.disabledInteractive));},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],ariaExpanded:[2,"aria-expanded","ariaExpanded",QT],ariaControls:[0,"aria-controls","ariaControls"],ariaOwns:[0,"aria-owns","ariaOwns"],id:"id",required:[2,"required","required",QT],labelPosition:"labelPosition",name:"name",value:"value",disableRipple:[2,"disableRipple","disableRipple",QT],tabIndex:[2,"tabIndex","tabIndex",e=>e==null?void 0:KT(e)],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",QT],checked:[2,"checked","checked",QT],disabled:[2,"disabled","disabled",QT],indeterminate:[2,"indeterminate","indeterminate",QT]},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],features:[nT([{provide:D$1,useExisting:Si(()=>t),multi:true},{provide:y,useExisting:t,multi:true}]),Tu],ngContentSelectors:ee,decls:15,vars:23,consts:[["checkbox",""],["input",""],["label",""],["mat-internal-form-field","",3,"click","labelPosition"],[1,"mdc-checkbox"],["aria-hidden","true",1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"blur","click","change","checked","indeterminate","disabled","id","required","tabIndex"],["aria-hidden","true",1,"mdc-checkbox__ripple"],["aria-hidden","true",1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","","aria-hidden","true",1,"mat-mdc-checkbox-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"]],template:function(n,c){if(n&1&&(yC(),ws(0,"div",3),Rg("click",function(k){return c._preventBubblingFromLabel(k)}),ws(1,"div",4,0)(3,"div",5),Rg("click",function(){return c._onTouchTargetClick()}),pl(),ws(4,"input",6,1),Rg("blur",function(){return c._onBlur()})("click",function(){return c._onInputClick()})("change",function(k){return c._onInteractionEvent(k)}),pl(),Sg(6,"div",7),ws(7,"div",8),kf(),ws(8,"svg",9),Sg(9,"path",10),pl(),Ff(),Sg(10,"div",11),pl(),Sg(11,"div",12),pl(),ws(12,"label",13,2),vC(14),pl()()),n&2){let o=CC(2);bg("labelPosition",c.labelPosition),XE(4),Ug("mdc-checkbox--selected",c.checked),bg("checked",c.checked)("indeterminate",c.indeterminate)("disabled",c.disabled&&!c.disabledInteractive)("id",c.inputId)("required",c.required)("tabIndex",c.disabled&&!c.disabledInteractive?-1:c.tabIndex),Tg("aria-label",c.ariaLabel||null)("aria-labelledby",c.ariaLabelledby)("aria-describedby",c.ariaDescribedby)("aria-checked",c.indeterminate?"mixed":null)("aria-controls",c.ariaControls)("aria-disabled",c.disabled&&c.disabledInteractive?true:null)("aria-expanded",c.ariaExpanded)("aria-owns",c.ariaOwns)("name",c.name)("value",c.value),XE(7),bg("matRippleTrigger",o)("matRippleDisabled",c.disableRipple||c.disabled)("matRippleCentered",true),XE(),bg("for",c.inputId);}},dependencies:[Oi,Qe],styles:[`.mdc-checkbox {
|
|
2
2
|
display: inline-block;
|
|
3
3
|
position: relative;
|
|
4
4
|
flex: 0 0 18px;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {g,bl as Mt,Y as x}from'./main-
|
|
1
|
+
import {g,bl as Mt,Y as x}from'./main-2GG5NZ4C.js';var s=class n{snackBar=g(Mt);success(t,o=2e3){this.snackBar.open(t,"",{duration:o,horizontalPosition:"center",verticalPosition:"bottom",panelClass:["snackbar-success"]});}error(t,o=3e3){this.snackBar.open(t,"",{duration:o,horizontalPosition:"center",verticalPosition:"bottom",panelClass:["snackbar-error"]});}info(t,o=2e3){this.snackBar.open(t,"",{duration:o,horizontalPosition:"center",verticalPosition:"bottom",panelClass:["snackbar-info"]});}static \u0275fac=function(o){return new(o||n)};static \u0275prov=x({token:n,factory:n.\u0275fac,providedIn:"root"})};export{s};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {g,G,P,
|
|
1
|
+
import {g,G,P,e as xw,h as hr,i as pr,k as ws,q as Rg,n as GC,o as pl,J as Jw,X as XE,v as bg,y as eC,a5 as vl,al as vt,am as qm,a9 as lC,ai as tm,aa as If,aj as KC,ab as wf,a3 as VI,ak as em,a6 as UI,D as Pg,E as EC,I as IC,ac as gC,a8 as Yg}from'./main-2GG5NZ4C.js';import {y as yt,w as wt,t as ti,Y as Ye,Z as Zn,c as cn}from'./chunk-D_aTK145.js';var J=["inputElement"];function K(o,r){if(o&1&&(ws(0,"span",3),GC(1),pl()),o&2){let t=gC();XE(),Yg(t.label);}}function U(o,r){if(o&1&&(ws(0,"small",5),GC(1),pl()),o&2){let t=gC();XE(),Yg(t.hint);}}var h=class o{label="";placeholder="";hint="";isDisabled=false;value="";autoFocus=true;valueChange=new vt;enterPressed=new vt;inputElement;inputValue="";ngAfterViewInit(){this.inputValue=this.value,this.autoFocus&&setTimeout(()=>this.inputElement?.nativeElement.focus(),100);}onValueChange(r){this.valueChange.emit(r);}onEnter(){this.inputValue.trim()&&this.enterPressed.emit(this.inputValue.trim());}focus(){this.inputElement?.nativeElement.focus();}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=xw({type:o,selectors:[["app-text-input"]],viewQuery:function(t,e){if(t&1&&Pg(J,5),t&2){let p;EC(p=IC())&&(e.inputElement=p.first);}},inputs:{label:"label",placeholder:"placeholder",hint:"hint",isDisabled:"isDisabled",value:"value",autoFocus:"autoFocus"},outputs:{valueChange:"valueChange",enterPressed:"enterPressed"},decls:6,vars:5,consts:[["inputElement",""],[1,"text-input-container"],[1,"text-input-wrapper"],[1,"text-input-label"],["type","text",1,"text-input-field",3,"ngModelChange","keydown.enter","ngModel","placeholder","disabled"],[1,"text-input-hint"]],template:function(t,e){if(t&1){let p=lC();ws(0,"div",1)(1,"label",2),Jw(2,K,2,1,"span",3),ws(3,"input",4,0),tm("ngModelChange",function(m){return If(p),KC(e.inputValue,m)||(e.inputValue=m),wf(m)}),Rg("ngModelChange",function(m){return e.onValueChange(m)})("keydown.enter",function(){return e.onEnter()}),pl(),VI(),pl(),Jw(5,U,2,1,"small",5),pl();}t&2&&(XE(2),eC(e.label?2:-1),XE(),em("ngModel",e.inputValue),bg("placeholder",e.placeholder)("disabled",e.isDisabled),UI(),XE(2),eC(e.hint?5:-1));},dependencies:[ti,Ye,Zn,cn,qm],styles:[".text-input-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem;width:100%}.text-input-wrapper[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem;width:100%;cursor:text}.text-input-label[_ngcontent-%COMP%]{font-size:.95rem;font-weight:500;color:var(--color-text);margin:0}.text-input-field[_ngcontent-%COMP%]{width:100%;padding:.75rem 1rem;font-size:1rem;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;outline:none;transition:all .2s ease}.text-input-field[_ngcontent-%COMP%]::placeholder{color:var(--color-text-secondary);opacity:.7}.text-input-field[_ngcontent-%COMP%]:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.1)}.text-input-field[_ngcontent-%COMP%]:disabled{opacity:.6;cursor:not-allowed;background:var(--color-surface)}.text-input-hint[_ngcontent-%COMP%]{font-size:.85rem;color:var(--color-text-secondary);margin:0;font-style:italic}@media(max-width:768px){.text-input-field[_ngcontent-%COMP%]{padding:.65rem .85rem;font-size:.95rem}.text-input-label[_ngcontent-%COMP%]{font-size:.9rem}.text-input-hint[_ngcontent-%COMP%]{font-size:.8rem}}"],changeDetection:1})};function X(o,r){if(o&1&&(ws(0,"div",8),GC(1),pl()),o&2){let t=gC();XE(),Yg(t.errorMessage);}}var L=class o{router=g(G);projectStateService=g(P);projectName="";projectPath="";isCreating=false;errorMessage=null;isValid(){return this.projectName.trim()!==""&&this.projectPath.trim()!==""}onCreate(){if(!this.isValid()){this.errorMessage="Both name and path are required";return}this.isCreating=true,this.errorMessage=null,this.projectStateService.createProject(this.projectName.trim(),this.projectPath.trim()).subscribe({next:()=>{let r=this.projectName.trim();this.isCreating=false,this.projectStateService.selectProject(r),this.router.navigate(["project",r]);},error:r=>{this.errorMessage=r.error?.error??"Failed to create project",this.isCreating=false;}});}onCancel(){this.router.navigate(["/"]);}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=xw({type:o,selectors:[["app-project-new"]],decls:19,vars:9,consts:[[1,"project-new-page"],[1,"project-new-card"],["mat-button","",1,"project-new__back",3,"click"],[1,"project-new__title"],[1,"project-new__subtitle"],[1,"project-new__form"],["label","Project name","placeholder","my-project",3,"valueChange","value","isDisabled","autoFocus"],["label","Project path","placeholder","/path/to/project","hint","Absolute path to the project directory",3,"valueChange","enterPressed","value","isDisabled"],[1,"project-new__error"],[1,"project-new__actions"],["mat-button","",3,"click","disabled"],["mat-flat-button","","color","primary",3,"click","disabled"]],template:function(t,e){t&1&&(ws(0,"div",0)(1,"div",1)(2,"button",2),Rg("click",function(){return e.onCancel()}),ws(3,"mat-icon"),GC(4,"arrow_back"),pl(),GC(5," Back to projects "),pl(),ws(6,"h1",3),GC(7,"New project"),pl(),ws(8,"p",4),GC(9,"Point Coday to an existing directory on your machine."),pl(),ws(10,"div",5)(11,"app-text-input",6),Rg("valueChange",function(d){return e.projectName=d}),pl(),ws(12,"app-text-input",7),Rg("valueChange",function(d){return e.projectPath=d})("enterPressed",function(){return e.onCreate()}),pl(),Jw(13,X,2,1,"div",8),pl(),ws(14,"div",9)(15,"button",10),Rg("click",function(){return e.onCancel()}),GC(16,"Cancel"),pl(),ws(17,"button",11),Rg("click",function(){return e.onCreate()}),GC(18),pl()()()()),t&2&&(XE(11),bg("value",e.projectName)("isDisabled",e.isCreating)("autoFocus",true),XE(),bg("value",e.projectPath)("isDisabled",e.isCreating),XE(),eC(e.errorMessage?13:-1),XE(2),bg("disabled",e.isCreating),XE(2),bg("disabled",!e.isValid()||e.isCreating),XE(),vl(" ",e.isCreating?"Creating\u2026":"Create project"," "));},dependencies:[hr,pr,yt,wt,h],styles:[".project-new-page[_ngcontent-%COMP%]{display:flex;align-items:flex-start;justify-content:center;min-height:100vh;width:100%;background:var(--color-bg);padding:2rem 1.5rem;box-sizing:border-box}.project-new-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem;width:100%;max-width:560px;padding:2rem;background:var(--color-bg-secondary, rgba(255, 255, 255, .7));border:1px solid var(--color-border, rgba(0, 0, 0, .1));border-radius:16px;box-shadow:var(--glass-shadow, 0 8px 32px rgba(31, 38, 135, .15));margin-top:2rem}.project-new__back[_ngcontent-%COMP%]{align-self:flex-start;margin-left:-.5rem;color:var(--color-text-secondary, #6e6e73)}.project-new__title[_ngcontent-%COMP%]{margin:0;font-size:1.625rem;font-weight:700;color:var(--color-text, #1d1d1f);letter-spacing:-.02em}.project-new__subtitle[_ngcontent-%COMP%]{margin:-.75rem 0 0;font-size:.9375rem;color:var(--color-text-secondary, #6e6e73)}.project-new__form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.25rem}.project-new__error[_ngcontent-%COMP%]{padding:.75rem 1rem;background:#dc262614;border:1px solid rgba(220,38,38,.25);border-radius:8px;color:var(--color-error, #ff3b30);font-size:.875rem}.project-new__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;justify-content:flex-end;padding-top:.25rem}"],changeDetection:1})};export{L as ProjectNewComponent};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {R}from'./chunk-BkZ4nMy0.js';import {g,ao as V,G,dr as D,C as Ce,W as Wi,T as TT,ds as Ae,S as Wy,b as U,a7 as va,X as br,j as jw,k as Cs,n as Lg,J as JC,m as hl,o as aC,u as sI,v as cC,a9 as vC,a3 as ZI,q as dC,ac as CC,x as xg,a6 as QI,w as fC,a5 as Dl,a8 as em,y as qg,b0 as tm,aa as Sf,ab as _f}from'./main-4LGWVPVH.js';import'./chunk-BaAG5SRs.js';import {t as ti,Q as Qn,e as ei,Y as Ye,a as wt,A as At,Z as Zn,c as cn}from'./chunk-CPuMGlfm.js';import'./chunk-CCSxTkZ-.js';import'./chunk-6ZQ87jQV.js';import'./chunk-CmWqV8dc.js';import'./chunk-B2UoGfZ3.js';var $=(o,t)=>t.id;function J(o,t){o&1&&(Cs(0,"p",5),JC(1,"Loading\u2026"),hl());}function Q(o,t){if(o&1&&(Cs(0,"p",8),JC(1),hl()),o&2){let e=CC(2);sI(),em(e.errorMessage());}}function X(o,t){if(o&1){let e=vC();Cs(0,"button",29),Lg("click",function(){Sf(e);let s=CC(2);return _f(s.retryLoad())}),JC(1,"Retry loading"),hl();}}function Z(o,t){if(o&1&&(Cs(0,"span",31),JC(1),hl()),o&2){let e=CC(3);sI(),em(e.association()?.checkoutFailureReason);}}function ee(o,t){if(o&1&&(Cs(0,"p",30),JC(1),aC(2,Z,2,1,"span",31),hl()),o&2){let e=CC(2);qg("namespace-git__status--failed",e.checkoutStatus()===e.CheckoutStatus.FAILED)("namespace-git__status--ready",e.checkoutStatus()===e.CheckoutStatus.READY),sI(),Dl(" Repository: ",e.checkoutStatus()," "),sI(),cC(e.association()?.checkoutFailureReason?2:-1);}}function te(o,t){if(o&1&&(Cs(0,"option",20),JC(1),hl()),o&2){let e=t.$implicit,l=CC(2);xg("value",e.id),sI(),tm("",e.name," (",l.authTypeLabel(e.authType),")");}}function ne(o,t){o&1&&(Cs(0,"span",21),JC(1," No usable auth setting in this namespace. Create a BEARER_TOKEN one first. "),hl());}function ie(o,t){if(o&1){let e=vC();Cs(0,"button",32),Lg("click",function(){Sf(e);let s=CC(2);return _f(s.remove())}),JC(1," Remove association "),hl();}if(o&2){let e=CC(2);xg("disabled",!e.associationLoaded()||e.isSaving());}}function ae(o,t){if(o&1){let e=vC();Cs(0,"div",6)(1,"p",7),JC(2," Associating a repository enables Git workspaces for this namespace. When worktree creation is enabled, every new top-level case gets a repo/ directory shared by its sub-cases. Namespace files remain shared documents outside Git. Agents create branches and pull requests in their workflows. "),hl(),aC(3,Q,2,1,"p",8),aC(4,X,2,0,"button",9),aC(5,ee,3,6,"p",10),Cs(6,"fieldset",11)(7,"legend",12),JC(8,"Repository"),hl(),Cs(9,"label",13)(10,"span",14),JC(11,"Repository URL"),hl(),Cs(12,"input",15),Lg("ngModelChange",function(s){Sf(e);let u=CC();return _f(u.repositoryUrl.set(s))}),hl(),ZI(),Cs(13,"span",16),JC(14,"HTTPS only, without credentials in the URL."),hl()(),Cs(15,"label",13)(16,"span",14),JC(17,"Main branch"),hl(),Cs(18,"input",17),Lg("ngModelChange",function(s){Sf(e);let u=CC();return _f(u.mainBranch.set(s))}),hl(),ZI(),Cs(19,"span",16),JC(20,"New worktrees start at this branch\u2019s commit, without creating a branch."),hl()(),Cs(21,"label",13)(22,"span",14),JC(23,"Service account"),hl(),Cs(24,"select",18),Lg("ngModelChange",function(s){Sf(e);let u=CC();return _f(u.serviceAuthSettingId.set(s))}),Cs(25,"option",19),JC(26,"Select an auth setting\u2026"),hl(),dC(27,te,2,3,"option",20,$),hl(),ZI(),Cs(29,"span",16),JC(30," Shared by the namespace. Every Git operation uses this identity, never the identity of whoever opened the case. "),hl(),aC(31,ne,2,0,"span",21),hl()(),Cs(32,"fieldset",11)(33,"legend",12),JC(34,"Automation"),hl(),Cs(35,"label",22)(36,"input",23),Lg("ngModelChange",function(s){Sf(e);let u=CC();return _f(u.autoWorktree.set(s))}),hl(),ZI(),Cs(37,"span"),JC(38,"Create a worktree for every new top-level case"),hl()(),Cs(39,"span",16),JC(40," Applies to cases created from now on. Turning this on later never equips existing cases, and turning it off never removes a worktree already created. "),hl(),Cs(41,"label",13)(42,"span",14),JC(43,"Setup command (optional)"),hl(),Cs(44,"input",24),Lg("ngModelChange",function(s){Sf(e);let u=CC();return _f(u.setupCommand.set(s))}),hl(),ZI(),Cs(45,"span",21),JC(46," Runs on the server, as the service user, in each new worktree. It executes code from the branch \u2014 prefer a command that disables lifecycle scripts. "),hl()()(),Cs(47,"div",25)(48,"button",26),Lg("click",function(){Sf(e);let s=CC();return _f(s.save())}),JC(49),hl(),aC(50,ie,2,1,"button",27),Cs(51,"button",28),Lg("click",function(){Sf(e);let s=CC();return _f(s.cancel())}),JC(52,"Cancel"),hl()()();}if(o&2){let e=CC();sI(3),cC(e.errorMessage()?3:-1),sI(),cC(e.associationLoaded()?-1:4),sI(),cC(e.isAssociated()&&e.checkoutStatus()?5:-1),sI(),xg("disabled",!e.associationLoaded()||e.isSaving()),sI(6),xg("ngModel",e.repositoryUrl()),QI(),sI(6),xg("ngModel",e.mainBranch()),QI(),sI(6),xg("ngModel",e.serviceAuthSettingId()),QI(),sI(3),fC(e.eligibleAuthSettings()),sI(4),cC(e.eligibleAuthSettings().length===0?31:-1),sI(),xg("disabled",!e.associationLoaded()||e.isSaving()),sI(4),xg("ngModel",e.autoWorktree()),QI(),sI(8),xg("ngModel",e.setupCommand()),QI(),sI(4),xg("disabled",!e.canSave()),sI(),Dl(" ",e.isSaving()?"Saving\u2026":e.isAssociated()?"Update":"Associate"," "),sI(),cC(e.isAssociated()?50:-1);}}var oe=["BearerTokenAuthSetting","BasicAuthAuthSetting","ApiKeyAuthSetting"],re={BearerTokenAuthSetting:"token",BasicAuthAuthSetting:"basic auth",ApiKeyAuthSetting:"API key"},q=class o{route=g(V);router=g(G);gitApi=g(D);authSettingState=g(R);destroyRef=g(Ce);isLoading=Wi(true);isSaving=Wi(false);associationLoaded=Wi(false);errorMessage=Wi(null);association=Wi(null);authSettings=Wi([]);repositoryUrl=Wi("");mainBranch=Wi("main");serviceAuthSettingId=Wi("");autoWorktree=Wi(false);setupCommand=Wi("");namespaceId="";isAssociated=TT(()=>this.association()?.associated===true);eligibleAuthSettings=TT(()=>this.authSettings().filter(t=>oe.includes(t.authType)));authTypeLabel(t){return re[t??""]??t??"unknown"}canSave=TT(()=>this.associationLoaded()&&!this.isLoading()&&!this.isSaving()&&this.repositoryUrl().trim().length>0&&this.serviceAuthSettingId().length>0);checkoutStatus=TT(()=>this.association()?.checkoutStatus??null);CheckoutStatus=Ae;ngOnInit(){this.namespaceId=this.route.snapshot.paramMap.get("namespaceId")??"",this.load();}retryLoad(){this.isLoading()||this.isSaving()||this.load();}load(){this.isLoading.set(true),this.associationLoaded.set(false),this.errorMessage.set(null),Wy({association:this.gitApi.getAssociationNamespaceGit(this.namespaceId),authSettings:this.authSettingState.loadNamespaceSettings(this.namespaceId)}).pipe(U(this.destroyRef)).subscribe({next:({association:t,authSettings:e})=>{this.authSettings.set(e??[]),this.acceptAssociation(t),this.isLoading.set(false);},error:t=>{console.error("Failed to load the Git repository settings",t),this.errorMessage.set(this.messageOf(t)),this.isLoading.set(false);}});}acceptAssociation(t){this.association.set(t);let e=t?.associated===false||t?.associated===true&&typeof t.repositoryUrl=="string"&&typeof t.mainBranch=="string"&&typeof t.serviceAuthSettingId=="string"&&typeof t.autoWorktreeForRootCases=="boolean"&&(t.setupCommand==null||typeof t.setupCommand=="string");this.associationLoaded.set(e),e?this.applyToForm(t):this.errorMessage.set("The repository settings could not be loaded completely. Retry before making changes.");}applyToForm(t){this.repositoryUrl.set(t.repositoryUrl??""),this.mainBranch.set(t.mainBranch??"main"),this.serviceAuthSettingId.set(t.serviceAuthSettingId??""),this.autoWorktree.set(t.autoWorktreeForRootCases??false),this.setupCommand.set(t.setupCommand??"");}save(){this.canSave()&&(this.isSaving.set(true),this.errorMessage.set(null),this.gitApi.setAssociationNamespaceGit(this.namespaceId,{repositoryUrl:this.repositoryUrl().trim(),mainBranch:this.mainBranch().trim()||void 0,serviceAuthSettingId:this.serviceAuthSettingId(),autoWorktreeForRootCases:this.autoWorktree(),setupCommand:this.setupCommand().trim()||void 0}).pipe(U(this.destroyRef),va(t=>(console.error("Failed to save the Git association",t),this.errorMessage.set(this.messageOf(t)),this.isSaving.set(false),br(null)))).subscribe(t=>{t&&this.acceptAssociation(t),this.isSaving.set(false);}));}remove(){!this.associationLoaded()||this.isLoading()||this.isSaving()||!this.isAssociated()||confirm("Remove the repository association? Existing workspaces keep their worktree.")&&(this.isSaving.set(true),this.gitApi.removeAssociationNamespaceGit(this.namespaceId).pipe(U(this.destroyRef),va(t=>(console.error("Failed to remove the Git association",t),this.errorMessage.set(this.messageOf(t)),this.isSaving.set(false),br(null)))).subscribe(t=>{t&&this.acceptAssociation(t),this.isSaving.set(false);}));}cancel(){this.router.navigate(["/agentos/namespaces"]);}messageOf(t){return t.error?.message??t.message??"Unexpected error"}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=jw({type:o,selectors:[["agentos-namespace-git"]],decls:10,vars:1,consts:[[1,"namespace-git"],[1,"namespace-git__header"],["type","button","title","Back to namespaces",1,"namespace-git__back",3,"click"],[1,"namespace-git__back-icon"],[1,"namespace-git__title"],[1,"namespace-git__loading"],[1,"namespace-git__body"],[1,"namespace-git__hint"],["role","alert",1,"namespace-git__error"],["type","button",1,"namespace-git__retry"],[1,"namespace-git__status",3,"namespace-git__status--failed","namespace-git__status--ready"],[1,"namespace-git__section",3,"disabled"],[1,"namespace-git__label"],[1,"namespace-git__field"],[1,"namespace-git__field-label"],["type","url","placeholder","https://forge.example/org/project.git","name","repositoryUrl",1,"namespace-git__input",3,"ngModelChange","ngModel"],[1,"namespace-git__field-hint"],["type","text","placeholder","main","name","mainBranch",1,"namespace-git__input",3,"ngModelChange","ngModel"],["name","serviceAuthSettingId",1,"namespace-git__input",3,"ngModelChange","ngModel"],["value",""],[3,"value"],[1,"namespace-git__field-hint","namespace-git__field-hint--warn"],[1,"namespace-git__checkbox"],["type","checkbox","name","autoWorktree",3,"ngModelChange","ngModel"],["type","text","placeholder","pnpm install --ignore-scripts","name","setupCommand",1,"namespace-git__input",3,"ngModelChange","ngModel"],[1,"namespace-git__actions"],["type","button",1,"namespace-git__save",3,"click","disabled"],["type","button",1,"namespace-git__remove",3,"disabled"],["type","button",1,"namespace-git__cancel",3,"click"],["type","button",1,"namespace-git__retry",3,"click"],[1,"namespace-git__status"],[1,"namespace-git__status-reason"],["type","button",1,"namespace-git__remove",3,"click","disabled"]],template:function(e,l){e&1&&(Cs(0,"div",0)(1,"header",1)(2,"button",2),Lg("click",function(){return l.cancel()}),Cs(3,"span",3),JC(4,"\u2190"),hl(),JC(5," Namespaces "),hl(),Cs(6,"h1",4),JC(7,"Git repository"),hl()(),aC(8,J,2,0,"p",5)(9,ae,53,14,"div",6),hl()),e&2&&(sI(8),cC(l.isLoading()?8:9));},dependencies:[ti,Qn,ei,Ye,wt,At,Zn,cn],styles:[".namespace-git[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.namespace-git__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.namespace-git__back[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.375rem;background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-primary, #007aff);font-family:inherit}.namespace-git__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.namespace-git__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem}.namespace-git__body[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.namespace-git__hint[_ngcontent-%COMP%]{margin:0;font-size:.875rem;color:var(--color-text-secondary, #6b7280)}.namespace-git__error[_ngcontent-%COMP%]{margin:0;padding:.75rem;border-radius:.375rem;background:var(--red-bg, #fef2f2);color:var(--color-error, #b91c1c);font-size:.875rem}.namespace-git__status[_ngcontent-%COMP%]{margin:0;padding:.5rem .75rem;border-radius:.375rem;background:var(--color-surface-secondary, #f3f4f6);font-size:.875rem;display:flex;flex-direction:column;gap:.25rem}.namespace-git__status--ready[_ngcontent-%COMP%]{background:var(--color-success-bg, #ecfdf5);color:var(--color-success, #047857)}.namespace-git__status--failed[_ngcontent-%COMP%]{background:var(--red-bg, #fef2f2);color:var(--color-error, #b91c1c)}.namespace-git__status-reason[_ngcontent-%COMP%]{font-size:.8125rem;opacity:.9}.namespace-git__section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem;border:1px solid var(--color-border, #e5e7eb);border-radius:.5rem;padding:1rem;margin:0}.namespace-git__label[_ngcontent-%COMP%]{font-weight:600;font-size:.9375rem;padding:0 .25rem}.namespace-git__field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.namespace-git__field-label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500}.namespace-git__field-hint[_ngcontent-%COMP%]{font-size:.8125rem;color:var(--color-text-secondary, #6b7280)}.namespace-git__field-hint--warn[_ngcontent-%COMP%]{color:var(--color-warning, #b45309)}.namespace-git__input[_ngcontent-%COMP%]{font-family:inherit;font-size:.875rem;padding:.5rem .625rem;border:1px solid var(--color-border, #e5e7eb);border-radius:.375rem;background:var(--color-surface, #fff);color:inherit}.namespace-git__checkbox[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;cursor:pointer}.namespace-git__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;align-items:center}.namespace-git__save[_ngcontent-%COMP%], .namespace-git__retry[_ngcontent-%COMP%], .namespace-git__remove[_ngcontent-%COMP%], .namespace-git__cancel[_ngcontent-%COMP%]{font-family:inherit;font-size:.875rem;padding:.5rem 1rem;border-radius:.375rem;cursor:pointer;border:1px solid transparent}.namespace-git__save[_ngcontent-%COMP%]:disabled, .namespace-git__retry[_ngcontent-%COMP%]:disabled, .namespace-git__remove[_ngcontent-%COMP%]:disabled, .namespace-git__cancel[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed}.namespace-git__save[_ngcontent-%COMP%]{background:var(--color-primary, #007aff);color:var(--color-text-on-accent, #fff)}.namespace-git__remove[_ngcontent-%COMP%]{background:none;border-color:var(--color-error, #b91c1c);color:var(--color-error, #b91c1c)}.namespace-git__cancel[_ngcontent-%COMP%], .namespace-git__retry[_ngcontent-%COMP%]{background:none;border-color:var(--color-border, #e5e7eb);color:inherit}"]})};
|
|
1
|
+
import {R}from'./chunk-CCQAu0MS.js';import {g,ao as V,G,dr as D,C as Ce,a as Gi,m as mT,ds as Ae,Q as jy,b as U,a7 as ya,W as br,e as xw,k as ws,q as Rg,n as GC,o as pl,J as Jw,X as XE,y as eC,a9 as lC,a3 as VI,t as rC,ac as gC,v as bg,a6 as UI,z as oC,a5 as vl,a8 as Yg,A as Ug,b0 as Qg,aa as If,ab as wf}from'./main-2GG5NZ4C.js';import'./chunk-C-VoWDOg.js';import {t as ti,Q as Qn,e as ei,Y as Ye,a as wt,A as At,Z as Zn,c as cn}from'./chunk-D_aTK145.js';import'./chunk-C0DMx9CU.js';import'./chunk-G_l8BMaJ.js';import'./chunk-BjBW1d-u.js';import'./chunk-Bbb2Oy9I.js';var $=(o,t)=>t.id;function J(o,t){o&1&&(ws(0,"p",5),GC(1,"Loading\u2026"),pl());}function Q(o,t){if(o&1&&(ws(0,"p",8),GC(1),pl()),o&2){let e=gC(2);XE(),Yg(e.errorMessage());}}function X(o,t){if(o&1){let e=lC();ws(0,"button",29),Rg("click",function(){If(e);let s=gC(2);return wf(s.retryLoad())}),GC(1,"Retry loading"),pl();}}function Z(o,t){if(o&1&&(ws(0,"span",31),GC(1),pl()),o&2){let e=gC(3);XE(),Yg(e.association()?.checkoutFailureReason);}}function ee(o,t){if(o&1&&(ws(0,"p",30),GC(1),Jw(2,Z,2,1,"span",31),pl()),o&2){let e=gC(2);Ug("namespace-git__status--failed",e.checkoutStatus()===e.CheckoutStatus.FAILED)("namespace-git__status--ready",e.checkoutStatus()===e.CheckoutStatus.READY),XE(),vl(" Repository: ",e.checkoutStatus()," "),XE(),eC(e.association()?.checkoutFailureReason?2:-1);}}function te(o,t){if(o&1&&(ws(0,"option",20),GC(1),pl()),o&2){let e=t.$implicit,l=gC(2);bg("value",e.id),XE(),Qg("",e.name," (",l.authTypeLabel(e.authType),")");}}function ne(o,t){o&1&&(ws(0,"span",21),GC(1," No usable auth setting in this namespace. Create a BEARER_TOKEN one first. "),pl());}function ie(o,t){if(o&1){let e=lC();ws(0,"button",32),Rg("click",function(){If(e);let s=gC(2);return wf(s.remove())}),GC(1," Remove association "),pl();}if(o&2){let e=gC(2);bg("disabled",!e.associationLoaded()||e.isSaving());}}function ae(o,t){if(o&1){let e=lC();ws(0,"div",6)(1,"p",7),GC(2," Associating a repository enables Git workspaces for this namespace. When worktree creation is enabled, every new top-level case gets a repo/ directory shared by its sub-cases. Namespace files remain shared documents outside Git. Agents create branches and pull requests in their workflows. "),pl(),Jw(3,Q,2,1,"p",8),Jw(4,X,2,0,"button",9),Jw(5,ee,3,6,"p",10),ws(6,"fieldset",11)(7,"legend",12),GC(8,"Repository"),pl(),ws(9,"label",13)(10,"span",14),GC(11,"Repository URL"),pl(),ws(12,"input",15),Rg("ngModelChange",function(s){If(e);let u=gC();return wf(u.repositoryUrl.set(s))}),pl(),VI(),ws(13,"span",16),GC(14,"HTTPS only, without credentials in the URL."),pl()(),ws(15,"label",13)(16,"span",14),GC(17,"Main branch"),pl(),ws(18,"input",17),Rg("ngModelChange",function(s){If(e);let u=gC();return wf(u.mainBranch.set(s))}),pl(),VI(),ws(19,"span",16),GC(20,"New worktrees start at this branch\u2019s commit, without creating a branch."),pl()(),ws(21,"label",13)(22,"span",14),GC(23,"Service account"),pl(),ws(24,"select",18),Rg("ngModelChange",function(s){If(e);let u=gC();return wf(u.serviceAuthSettingId.set(s))}),ws(25,"option",19),GC(26,"Select an auth setting\u2026"),pl(),rC(27,te,2,3,"option",20,$),pl(),VI(),ws(29,"span",16),GC(30," Shared by the namespace. Every Git operation uses this identity, never the identity of whoever opened the case. "),pl(),Jw(31,ne,2,0,"span",21),pl()(),ws(32,"fieldset",11)(33,"legend",12),GC(34,"Automation"),pl(),ws(35,"label",22)(36,"input",23),Rg("ngModelChange",function(s){If(e);let u=gC();return wf(u.autoWorktree.set(s))}),pl(),VI(),ws(37,"span"),GC(38,"Create a worktree for every new top-level case"),pl()(),ws(39,"span",16),GC(40," Applies to cases created from now on. Turning this on later never equips existing cases, and turning it off never removes a worktree already created. "),pl(),ws(41,"label",13)(42,"span",14),GC(43,"Setup command (optional)"),pl(),ws(44,"input",24),Rg("ngModelChange",function(s){If(e);let u=gC();return wf(u.setupCommand.set(s))}),pl(),VI(),ws(45,"span",21),GC(46," Runs on the server, as the service user, in each new worktree. It executes code from the branch \u2014 prefer a command that disables lifecycle scripts. "),pl()()(),ws(47,"div",25)(48,"button",26),Rg("click",function(){If(e);let s=gC();return wf(s.save())}),GC(49),pl(),Jw(50,ie,2,1,"button",27),ws(51,"button",28),Rg("click",function(){If(e);let s=gC();return wf(s.cancel())}),GC(52,"Cancel"),pl()()();}if(o&2){let e=gC();XE(3),eC(e.errorMessage()?3:-1),XE(),eC(e.associationLoaded()?-1:4),XE(),eC(e.isAssociated()&&e.checkoutStatus()?5:-1),XE(),bg("disabled",!e.associationLoaded()||e.isSaving()),XE(6),bg("ngModel",e.repositoryUrl()),UI(),XE(6),bg("ngModel",e.mainBranch()),UI(),XE(6),bg("ngModel",e.serviceAuthSettingId()),UI(),XE(3),oC(e.eligibleAuthSettings()),XE(4),eC(e.eligibleAuthSettings().length===0?31:-1),XE(),bg("disabled",!e.associationLoaded()||e.isSaving()),XE(4),bg("ngModel",e.autoWorktree()),UI(),XE(8),bg("ngModel",e.setupCommand()),UI(),XE(4),bg("disabled",!e.canSave()),XE(),vl(" ",e.isSaving()?"Saving\u2026":e.isAssociated()?"Update":"Associate"," "),XE(),eC(e.isAssociated()?50:-1);}}var oe=["BearerTokenAuthSetting","BasicAuthAuthSetting","ApiKeyAuthSetting"],re={BearerTokenAuthSetting:"token",BasicAuthAuthSetting:"basic auth",ApiKeyAuthSetting:"API key"},q=class o{route=g(V);router=g(G);gitApi=g(D);authSettingState=g(R);destroyRef=g(Ce);isLoading=Gi(true);isSaving=Gi(false);associationLoaded=Gi(false);errorMessage=Gi(null);association=Gi(null);authSettings=Gi([]);repositoryUrl=Gi("");mainBranch=Gi("main");serviceAuthSettingId=Gi("");autoWorktree=Gi(false);setupCommand=Gi("");namespaceId="";isAssociated=mT(()=>this.association()?.associated===true);eligibleAuthSettings=mT(()=>this.authSettings().filter(t=>oe.includes(t.authType)));authTypeLabel(t){return re[t??""]??t??"unknown"}canSave=mT(()=>this.associationLoaded()&&!this.isLoading()&&!this.isSaving()&&this.repositoryUrl().trim().length>0&&this.serviceAuthSettingId().length>0);checkoutStatus=mT(()=>this.association()?.checkoutStatus??null);CheckoutStatus=Ae;ngOnInit(){this.namespaceId=this.route.snapshot.paramMap.get("namespaceId")??"",this.load();}retryLoad(){this.isLoading()||this.isSaving()||this.load();}load(){this.isLoading.set(true),this.associationLoaded.set(false),this.errorMessage.set(null),jy({association:this.gitApi.getAssociationNamespaceGit(this.namespaceId),authSettings:this.authSettingState.loadNamespaceSettings(this.namespaceId)}).pipe(U(this.destroyRef)).subscribe({next:({association:t,authSettings:e})=>{this.authSettings.set(e??[]),this.acceptAssociation(t),this.isLoading.set(false);},error:t=>{console.error("Failed to load the Git repository settings",t),this.errorMessage.set(this.messageOf(t)),this.isLoading.set(false);}});}acceptAssociation(t){this.association.set(t);let e=t?.associated===false||t?.associated===true&&typeof t.repositoryUrl=="string"&&typeof t.mainBranch=="string"&&typeof t.serviceAuthSettingId=="string"&&typeof t.autoWorktreeForRootCases=="boolean"&&(t.setupCommand==null||typeof t.setupCommand=="string");this.associationLoaded.set(e),e?this.applyToForm(t):this.errorMessage.set("The repository settings could not be loaded completely. Retry before making changes.");}applyToForm(t){this.repositoryUrl.set(t.repositoryUrl??""),this.mainBranch.set(t.mainBranch??"main"),this.serviceAuthSettingId.set(t.serviceAuthSettingId??""),this.autoWorktree.set(t.autoWorktreeForRootCases??false),this.setupCommand.set(t.setupCommand??"");}save(){this.canSave()&&(this.isSaving.set(true),this.errorMessage.set(null),this.gitApi.setAssociationNamespaceGit(this.namespaceId,{repositoryUrl:this.repositoryUrl().trim(),mainBranch:this.mainBranch().trim()||void 0,serviceAuthSettingId:this.serviceAuthSettingId(),autoWorktreeForRootCases:this.autoWorktree(),setupCommand:this.setupCommand().trim()||void 0}).pipe(U(this.destroyRef),ya(t=>(console.error("Failed to save the Git association",t),this.errorMessage.set(this.messageOf(t)),this.isSaving.set(false),br(null)))).subscribe(t=>{t&&this.acceptAssociation(t),this.isSaving.set(false);}));}remove(){!this.associationLoaded()||this.isLoading()||this.isSaving()||!this.isAssociated()||confirm("Remove the repository association? Existing workspaces keep their worktree.")&&(this.isSaving.set(true),this.gitApi.removeAssociationNamespaceGit(this.namespaceId).pipe(U(this.destroyRef),ya(t=>(console.error("Failed to remove the Git association",t),this.errorMessage.set(this.messageOf(t)),this.isSaving.set(false),br(null)))).subscribe(t=>{t&&this.acceptAssociation(t),this.isSaving.set(false);}));}cancel(){this.router.navigate(["/agentos/namespaces"]);}messageOf(t){return t.error?.message??t.message??"Unexpected error"}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=xw({type:o,selectors:[["agentos-namespace-git"]],decls:10,vars:1,consts:[[1,"namespace-git"],[1,"namespace-git__header"],["type","button","title","Back to namespaces",1,"namespace-git__back",3,"click"],[1,"namespace-git__back-icon"],[1,"namespace-git__title"],[1,"namespace-git__loading"],[1,"namespace-git__body"],[1,"namespace-git__hint"],["role","alert",1,"namespace-git__error"],["type","button",1,"namespace-git__retry"],[1,"namespace-git__status",3,"namespace-git__status--failed","namespace-git__status--ready"],[1,"namespace-git__section",3,"disabled"],[1,"namespace-git__label"],[1,"namespace-git__field"],[1,"namespace-git__field-label"],["type","url","placeholder","https://forge.example/org/project.git","name","repositoryUrl",1,"namespace-git__input",3,"ngModelChange","ngModel"],[1,"namespace-git__field-hint"],["type","text","placeholder","main","name","mainBranch",1,"namespace-git__input",3,"ngModelChange","ngModel"],["name","serviceAuthSettingId",1,"namespace-git__input",3,"ngModelChange","ngModel"],["value",""],[3,"value"],[1,"namespace-git__field-hint","namespace-git__field-hint--warn"],[1,"namespace-git__checkbox"],["type","checkbox","name","autoWorktree",3,"ngModelChange","ngModel"],["type","text","placeholder","pnpm install --ignore-scripts","name","setupCommand",1,"namespace-git__input",3,"ngModelChange","ngModel"],[1,"namespace-git__actions"],["type","button",1,"namespace-git__save",3,"click","disabled"],["type","button",1,"namespace-git__remove",3,"disabled"],["type","button",1,"namespace-git__cancel",3,"click"],["type","button",1,"namespace-git__retry",3,"click"],[1,"namespace-git__status"],[1,"namespace-git__status-reason"],["type","button",1,"namespace-git__remove",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," Namespaces "),pl(),ws(6,"h1",4),GC(7,"Git repository"),pl()(),Jw(8,J,2,0,"p",5)(9,ae,53,14,"div",6),pl()),e&2&&(XE(8),eC(l.isLoading()?8:9));},dependencies:[ti,Qn,ei,Ye,wt,At,Zn,cn],styles:[".namespace-git[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;max-width:560px;margin:0 auto;padding:2rem 1rem}.namespace-git__header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.namespace-git__back[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.375rem;background:none;border:none;padding:0;cursor:pointer;font-size:.875rem;color:var(--color-primary, #007aff);font-family:inherit}.namespace-git__back[_ngcontent-%COMP%]:hover{text-decoration:underline}.namespace-git__title[_ngcontent-%COMP%]{margin:0;font-size:1.5rem}.namespace-git__body[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.namespace-git__hint[_ngcontent-%COMP%]{margin:0;font-size:.875rem;color:var(--color-text-secondary, #6b7280)}.namespace-git__error[_ngcontent-%COMP%]{margin:0;padding:.75rem;border-radius:.375rem;background:var(--red-bg, #fef2f2);color:var(--color-error, #b91c1c);font-size:.875rem}.namespace-git__status[_ngcontent-%COMP%]{margin:0;padding:.5rem .75rem;border-radius:.375rem;background:var(--color-surface-secondary, #f3f4f6);font-size:.875rem;display:flex;flex-direction:column;gap:.25rem}.namespace-git__status--ready[_ngcontent-%COMP%]{background:var(--color-success-bg, #ecfdf5);color:var(--color-success, #047857)}.namespace-git__status--failed[_ngcontent-%COMP%]{background:var(--red-bg, #fef2f2);color:var(--color-error, #b91c1c)}.namespace-git__status-reason[_ngcontent-%COMP%]{font-size:.8125rem;opacity:.9}.namespace-git__section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem;border:1px solid var(--color-border, #e5e7eb);border-radius:.5rem;padding:1rem;margin:0}.namespace-git__label[_ngcontent-%COMP%]{font-weight:600;font-size:.9375rem;padding:0 .25rem}.namespace-git__field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.375rem}.namespace-git__field-label[_ngcontent-%COMP%]{font-size:.875rem;font-weight:500}.namespace-git__field-hint[_ngcontent-%COMP%]{font-size:.8125rem;color:var(--color-text-secondary, #6b7280)}.namespace-git__field-hint--warn[_ngcontent-%COMP%]{color:var(--color-warning, #b45309)}.namespace-git__input[_ngcontent-%COMP%]{font-family:inherit;font-size:.875rem;padding:.5rem .625rem;border:1px solid var(--color-border, #e5e7eb);border-radius:.375rem;background:var(--color-surface, #fff);color:inherit}.namespace-git__checkbox[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;cursor:pointer}.namespace-git__actions[_ngcontent-%COMP%]{display:flex;gap:.75rem;align-items:center}.namespace-git__save[_ngcontent-%COMP%], .namespace-git__retry[_ngcontent-%COMP%], .namespace-git__remove[_ngcontent-%COMP%], .namespace-git__cancel[_ngcontent-%COMP%]{font-family:inherit;font-size:.875rem;padding:.5rem 1rem;border-radius:.375rem;cursor:pointer;border:1px solid transparent}.namespace-git__save[_ngcontent-%COMP%]:disabled, .namespace-git__retry[_ngcontent-%COMP%]:disabled, .namespace-git__remove[_ngcontent-%COMP%]:disabled, .namespace-git__cancel[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:not-allowed}.namespace-git__save[_ngcontent-%COMP%]{background:var(--color-primary, #007aff);color:var(--color-text-on-accent, #fff)}.namespace-git__remove[_ngcontent-%COMP%]{background:none;border-color:var(--color-error, #b91c1c);color:var(--color-error, #b91c1c)}.namespace-git__cancel[_ngcontent-%COMP%], .namespace-git__retry[_ngcontent-%COMP%]{background:none;border-color:var(--color-border, #e5e7eb);color:inherit}"]})};
|
|
2
2
|
export{q as NamespaceGitComponent};
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import {dt as A,du as z$1}from'./main-2GG5NZ4C.js';var ut=z$1(Xe=>{"use strict";(function(i){var n=/\S/,t=/\"/g,e=/\n/g,r=/\r/g,a=/\\/g,s=/\u2028/,u=/\u2029/;i.tags={"#":1,"^":2,"<":3,$:4,"/":5,"!":6,">":7,"=":8,_v:9,"{":10,"&":11,_t:12},i.scan=function(h,g){var S=h.length,U=0,R=1,q=2,E=U,$=null,ee=null,B="",I=[],J=!1,O=0,C=0,L="{{",b="}}";function te(){B.length>0&&(I.push({tag:"_t",text:new String(B)}),B="");}function ge(){for(var A=!0,k=C;k<I.length;k++)if(A=i.tags[I[k].tag]<i.tags._v||I[k].tag=="_t"&&I[k].text.match(n)===null,!A)return !1;return A}function be(A,k){if(te(),A&&ge())for(var _=C,ie;_<I.length;_++)I[_].text&&((ie=I[_+1])&&ie.tag==">"&&(ie.indent=I[_].text.toString()),I.splice(_,1));else k||I.push({tag:`
|
|
2
|
+
`});J=!1,C=I.length;}function ne(A,k){var _="="+b,ie=A.indexOf(_,k),De=f(A.substring(A.indexOf("=",k)+1,ie)).split(" ");return L=De[0],b=De[De.length-1],ie+_.length-1}for(g&&(g=g.split(" "),L=g[0],b=g[1]),O=0;O<S;O++)E==U?v(L,h,O)?(--O,te(),E=R):h.charAt(O)==`
|
|
3
|
+
`?be(J):B+=h.charAt(O):E==R?(O+=L.length-1,ee=i.tags[h.charAt(O+1)],$=ee?h.charAt(O+1):"_v",$=="="?(O=ne(h,O),E=U):(ee&&O++,E=q),J=O):v(b,h,O)?(I.push({tag:$,n:f(B),otag:L,ctag:b,i:$=="/"?J-L.length:O+b.length}),B="",O+=b.length-1,E=U,$=="{"&&(b=="}}"?O++:d(I[I.length-1]))):B+=h.charAt(O);return be(J,!0),I};function d(l){l.n.substr(l.n.length-1)==="}"&&(l.n=l.n.substring(0,l.n.length-1));}function f(l){return l.trim?l.trim():l.replace(/^\s*|\s*$/g,"")}function v(l,h,g){if(h.charAt(g)!=l.charAt(0))return !1;for(var S=1,U=l.length;S<U;S++)if(h.charAt(g+S)!=l.charAt(S))return !1;return !0}var y={_t:!0,"\n":!0,$:!0,"/":!0};function o(l,h,g,S){var U=[],R=null,q=null,E=null;for(q=g[g.length-1];l.length>0;){if(E=l.shift(),q&&q.tag=="<"&&!(E.tag in y))throw new Error("Illegal content in < super tag.");if(i.tags[E.tag]<=i.tags.$||c(E,S))g.push(E),E.nodes=o(l,E.tag,g,S);else if(E.tag=="/"){if(g.length===0)throw new Error("Closing tag without opener: /"+E.n);if(R=g.pop(),E.n!=R.n&&!m(E.n,R.n,S))throw new Error("Nesting error: "+R.n+" vs. "+E.n);return R.end=E.i,U}else E.tag==`
|
|
4
|
+
`&&(E.last=l.length==0||l[0].tag==`
|
|
5
|
+
`);U.push(E);}if(g.length>0)throw new Error("missing closing tag: "+g.pop().n);return U}function c(l,h){for(var g=0,S=h.length;g<S;g++)if(h[g].o==l.n)return l.tag="#",!0}function m(l,h,g){for(var S=0,U=g.length;S<U;S++)if(g[S].c==l&&g[S].o==h)return !0}function p(l){var h=[];for(var g in l)h.push('"'+x(g)+'": function(c,p,t,i) {'+l[g]+"}");return "{ "+h.join(",")+" }"}function w(l){var h=[];for(var g in l.partials)h.push('"'+x(g)+'":{name:"'+x(l.partials[g].name)+'", '+w(l.partials[g])+"}");return "partials: {"+h.join(",")+"}, subs: "+p(l.subs)}i.stringify=function(l,h,g){return "{code: function (c,p,i) { "+i.wrapMain(l.code)+" },"+w(l)+"}"};var P=0;i.generate=function(l,h,g){P=0;var S={code:"",subs:{},partials:{}};return i.walk(l,S),g.asString?this.stringify(S,h,g):this.makeTemplate(S,h,g)},i.wrapMain=function(l){return 'var t=this;t.b(i=i||"");'+l+"return t.fl();"},i.template=i.Template,i.makeTemplate=function(l,h,g){var S=this.makePartials(l);return S.code=new Function("c","p","i",this.wrapMain(l.code)),new this.template(S,h,this,g)},i.makePartials=function(l){var h,g={subs:{},partials:l.partials,name:l.name};for(h in g.partials)g.partials[h]=this.makePartials(g.partials[h]);for(h in l.subs)g.subs[h]=new Function("c","p","t","i",l.subs[h]);return g};function x(l){return l.replace(a,"\\\\").replace(t,'\\"').replace(e,"\\n").replace(r,"\\r").replace(s,"\\u2028").replace(u,"\\u2029")}function N(l){return ~l.indexOf(".")?"d":"f"}function T(l,h){var g="<"+(h.prefix||""),S=g+l.n+P++;return h.partials[S]={name:l.n,partials:{}},h.code+='t.b(t.rp("'+x(S)+'",c,p,"'+(l.indent||"")+'"));',S}i.codegen={"#":function(l,h){h.code+="if(t.s(t."+N(l.n)+'("'+x(l.n)+'",c,p,1),c,p,0,'+l.i+","+l.end+',"'+l.otag+" "+l.ctag+'")){t.rs(c,p,function(c,p,t){',i.walk(l.nodes,h),h.code+="});c.pop();}";},"^":function(l,h){h.code+="if(!t.s(t."+N(l.n)+'("'+x(l.n)+'",c,p,1),c,p,1,0,0,"")){',i.walk(l.nodes,h),h.code+="};";},">":T,"<":function(l,h){var g={partials:{},code:"",subs:{},inPartial:!0};i.walk(l.nodes,g);var S=h.partials[T(l,h)];S.subs=g.subs,S.partials=g.partials;},$:function(l,h){var g={subs:{},code:"",partials:h.partials,prefix:l.n};i.walk(l.nodes,g),h.subs[l.n]=g.code,h.inPartial||(h.code+='t.sub("'+x(l.n)+'",c,p,i);');},"\n":function(l,h){h.code+=G('"\\n"'+(l.last?"":" + i"));},_v:function(l,h){h.code+="t.b(t.v(t."+N(l.n)+'("'+x(l.n)+'",c,p,0)));';},_t:function(l,h){h.code+=G('"'+x(l.text)+'"');},"{":D,"&":D};function D(l,h){h.code+="t.b(t.t(t."+N(l.n)+'("'+x(l.n)+'",c,p,0)));';}function G(l){return "t.b("+l+");"}i.walk=function(l,h){for(var g,S=0,U=l.length;S<U;S++)g=i.codegen[l[S].tag],g&&g(l[S],h);return h},i.parse=function(l,h,g){return g=g||{},o(l,"",[],g.sectionTags||[])},i.cache={},i.cacheKey=function(l,h){return [l,!!h.asString,!!h.disableLambda,h.delimiters,!!h.modelGet].join("||")},i.compile=function(l,h){h=h||{};var g=i.cacheKey(l,h),S=this.cache[g];if(S){var U=S.partials;for(var R in U)delete U[R].instance;return S}return S=this.generate(this.parse(this.scan(l,h.delimiters),l,h),l,h),this.cache[g]=S};})(typeof Xe<"u"?Xe:Hogan);});var ht=z$1(qe=>{"use strict";var At={};(function(i){i.Template=function(o,c,m,p){o=o||{},this.r=o.code||this.r,this.c=m,this.options=p||{},this.text=c||"",this.partials=o.partials||{},this.subs=o.subs||{},this.buf="";},i.Template.prototype={r:function(o,c,m){return ""},v,t:f,render:function(c,m,p){return this.ri([c],m||{},p)},ri:function(o,c,m){return this.r(o,c,m)},ep:function(o,c){var m=this.partials[o],p=c[m.name];if(m.instance&&m.base==p)return m.instance;if(typeof p=="string"){if(!this.c)throw new Error("No compiler available.");p=this.c.compile(p,this.options);}if(!p)return null;if(this.partials[o].base=p,m.subs){c.stackText||(c.stackText={});for(key in m.subs)c.stackText[key]||(c.stackText[key]=this.activeSub!==void 0&&c.stackText[this.activeSub]?c.stackText[this.activeSub]:this.text);p=t(p,m.subs,m.partials,this.stackSubs,this.stackPartials,c.stackText);}return this.partials[o].instance=p,p},rp:function(o,c,m,p){var w=this.ep(o,m);return w?w.ri(c,m,p):""},rs:function(o,c,m){var p=o[o.length-1];if(!y(p)){m(o,c,this);return}for(var w=0;w<p.length;w++)o.push(p[w]),m(o,c,this),o.pop();},s:function(o,c,m,p,w,P,x){var N;return y(o)&&o.length===0?!1:(typeof o=="function"&&(o=this.ms(o,c,m,p,w,P,x)),N=!!o,!p&&N&&c&&c.push(typeof o=="object"?o:c[c.length-1]),N)},d:function(o,c,m,p){var w,P=o.split("."),x=this.f(P[0],c,m,p),N=this.options.modelGet,T=null;if(o==="."&&y(c[c.length-2]))x=c[c.length-1];else for(var D=1;D<P.length;D++)w=n(P[D],x,N),w!==void 0?(T=x,x=w):x="";return p&&!x?!1:(!p&&typeof x=="function"&&(c.push(T),x=this.mv(x,c,m),c.pop()),x)},f:function(o,c,m,p){for(var w=!1,P=null,x=!1,N=this.options.modelGet,T=c.length-1;T>=0;T--)if(P=c[T],w=n(o,P,N),w!==void 0){x=!0;break}return x?(!p&&typeof w=="function"&&(w=this.mv(w,c,m)),w):p?!1:""},ls:function(o,c,m,p,w,P){var x=this.options.delimiters;return this.options.delimiters=P,this.b(this.ct(f(o.call(c,w,m)),c,p)),this.options.delimiters=x,!1},ct:function(o,c,m){if(this.options.disableLambda)throw new Error("Lambda features disabled.");return this.c.compile(o,this.options).render(c,m)},b:function(o){this.buf+=o;},fl:function(){var o=this.buf;return this.buf="",o},ms:function(o,c,m,p,w,P,x){var N,T=c[c.length-1],D=o.call(T);return typeof D=="function"?p?!0:(N=this.activeSub&&this.subsText&&this.subsText[this.activeSub]?this.subsText[this.activeSub]:this.text,this.ls(D,T,c,m,N.substring(w,P),x)):D},mv:function(o,c,m){var p=c[c.length-1],w=o.call(p);return typeof w=="function"?this.ct(f(w.call(p)),p,m):w},sub:function(o,c,m,p){var w=this.subs[o];w&&(this.activeSub=o,w(c,m,this,p),this.activeSub=!1);}};function n(o,c,m){var p;return c&&typeof c=="object"&&(c[o]!==void 0?p=c[o]:m&&c.get&&typeof c.get=="function"&&(p=c.get(o))),p}function t(o,c,m,p,w,P){function x(){}x.prototype=o;function N(){}N.prototype=o.subs;var T,D=new x;D.subs=new N,D.subsText={},D.buf="",p=p||{},D.stackSubs=p,D.subsText=P;for(T in c)p[T]||(p[T]=c[T]);for(T in p)D.subs[T]=p[T];w=w||{},D.stackPartials=w;for(T in m)w[T]||(w[T]=m[T]);for(T in w)D.partials[T]=w[T];return D}var e=/&/g,r=/</g,a=/>/g,s=/\'/g,u=/\"/g,d=/[&<>\"\']/;function f(o){return String(o??"")}function v(o){return o=f(o),d.test(o)?o.replace(e,"&").replace(r,"<").replace(a,">").replace(s,"'").replace(u,"""):o}var y=Array.isArray||function(o){return Object.prototype.toString.call(o)==="[object Array]"};})(typeof qe<"u"?qe:At);});var Je=z$1((cn,pt)=>{"use strict";var Le=ut();Le.Template=ht().Template;Le.template=Le.Template;pt.exports=Le;});var H=(function(i){return i.INSERT="insert",i.DELETE="delete",i.CONTEXT="context",i})(H||{}),Ze={LINE_BY_LINE:"line-by-line"},Ke={NONE:"none"},et={WORD:"word"},re=(function(i){return i.AUTO="auto",i.DARK="dark",i.LIGHT="light",i})(re||{});var gt=["-","[","]","/","{","}","(",")","*","+","?",".","\\","^","$","|"],bt=RegExp("["+gt.join("\\")+"]","g");function tt(i){return i.replace(bt,"\\$&")}function Ie(i){return i&&i.replace(/\\/g,"/")}function nt(i){let n,t,e,r=0;for(n=0,e=i.length;n<e;n++)t=i.charCodeAt(n),r=(r<<5)-r+t,r|=0;return r}function ve(i){let n=i.length,t=-1/0;for(let e=0;e<n;e++)t=Math.max(t,i[e]);return t}function it(i,n){let t=i.split(".");return t.length>1?t[t.length-1]:n}function rt(i,n){return n.reduce((t,e)=>t||i.startsWith(e),false)}var st=["a/","b/","i/","w/","c/","o/"];function V(i,n,t){let e=t!==void 0?[...st,t]:st,r=n?new RegExp(`^${tt(n)} "?(.+?)"?$`):new RegExp('^"?(.+?)"?$'),[,a=""]=r.exec(i)||[],s=e.find(d=>a.indexOf(d)===0);return (s?a.slice(s.length):a).replace(/\s+\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)? [+-]\d{4}.*$/,"")}function vt(i,n){return V(i,"---",n)}function wt(i,n){return V(i,"+++",n)}function Oe(i,n={}){let t=[],e=null,r=null,a=null,s=null,u=null,d=null,f=null,v="--- ",y="+++ ",o="@@",c=/^old mode (\d{6})/,m=/^new mode (\d{6})/,p=/^deleted file mode (\d{6})/,w=/^new file mode (\d{6})/,P=/^copy from "?(.+)"?/,x=/^copy to "?(.+)"?/,N=/^rename from "?(.+)"?/,T=/^rename to "?(.+)"?/,D=/^similarity index (\d+)%/,G=/^dissimilarity index (\d+)%/,l=/^index ([\da-z]+)\.\.([\da-z]+)\s*(\d{6})?/,h=/^Binary files (.*) and (.*) differ/,g=/^GIT binary patch/,S=/^index ([\da-z]+),([\da-z]+)\.\.([\da-z]+)/,U=/^mode (\d{6}),(\d{6})\.\.(\d{6})/,R=/^new file mode (\d{6})/,q=/^deleted file mode (\d{6}),(\d{6})/,E=i.replace(/\/g,"").replace(/\r\n?/g,`
|
|
6
|
+
`).split(`
|
|
7
|
+
`);function $(){r!==null&&e!==null&&(e.blocks.push(r),r=null);}function ee(){e!==null&&(!e.oldName&&d!==null&&(e.oldName=d),!e.newName&&f!==null&&(e.newName=f),e.newName&&(t.push(e),e=null)),d=null,f=null;}function B(){$(),ee(),e={blocks:[],deletedLines:0,addedLines:0};}function I(C){$();let L;e!==null&&((L=/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@.*/.exec(C))?(e.isCombined=false,a=parseInt(L[1],10),u=parseInt(L[2],10)):(L=/^@@@ -(\d+)(?:,\d+)? -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@@.*/.exec(C))?(e.isCombined=true,a=parseInt(L[1],10),s=parseInt(L[2],10),u=parseInt(L[3],10)):(C.startsWith(o)&&console.error("Failed to parse lines, starting in 0!"),a=0,u=0,e.isCombined=false)),r={lines:[],oldStartLine:a,oldStartLine2:s,newStartLine:u,header:C};}function J(C){if(e===null||r===null||a===null||u===null)return;let L={content:C},b=e.isCombined?["+ "," +","++"]:["+"],te=e.isCombined?["- "," -","--"]:["-"];rt(C,b)?(e.addedLines++,L.type=H.INSERT,L.oldNumber=void 0,L.newNumber=u++):rt(C,te)?(e.deletedLines++,L.type=H.DELETE,L.oldNumber=a++,L.newNumber=void 0):(L.type=H.CONTEXT,L.oldNumber=a++,L.newNumber=u++),r.lines.push(L);}function O(C,L){let b=L;for(;b<E.length-3;){if(C.startsWith("diff"))return false;if(E[b].startsWith(v)&&E[b+1].startsWith(y)&&E[b+2].startsWith(o))return true;b++;}return false}return E.forEach((C,L)=>{if(!C||C.startsWith("*"))return;let b,te=E[L-1],ge=E[L+1],be=E[L+2];if(C.startsWith("diff --git")||C.startsWith("diff --combined")){if(B(),(b=/^diff --git "?([a-ciow]\/.+)"? "?([a-ciow]\/.+)"?/.exec(C))&&(d=V(b[1],void 0,n.dstPrefix),f=V(b[2],void 0,n.srcPrefix)),e===null)throw new Error("Where is my file !!!");e.isGitDiff=true;return}if(C.startsWith("Binary files")&&!e?.isGitDiff){if(B(),(b=/^Binary files "?([a-ciow]\/.+)"? and "?([a-ciow]\/.+)"? differ/.exec(C))&&(d=V(b[1],void 0,n.dstPrefix),f=V(b[2],void 0,n.srcPrefix)),e===null)throw new Error("Where is my file !!!");e.isBinary=true;return}if((!e||!e.isGitDiff&&e&&C.startsWith(v)&&ge.startsWith(y)&&be.startsWith(o))&&B(),e?.isTooBig)return;if(e&&(typeof n.diffMaxChanges=="number"&&e.addedLines+e.deletedLines>n.diffMaxChanges||typeof n.diffMaxLineLength=="number"&&C.length>n.diffMaxLineLength)){e.isTooBig=true,e.addedLines=0,e.deletedLines=0,e.blocks=[],r=null;let A=typeof n.diffTooBigMessage=="function"?n.diffTooBigMessage(t.length):"Diff too big to be displayed";I(A);return}if(C.startsWith(v)&&ge.startsWith(y)||C.startsWith(y)&&te.startsWith(v)){if(e&&!e.oldName&&C.startsWith("--- ")&&(b=vt(C,n.srcPrefix))){e.oldName=b,e.language=it(e.oldName,e.language);return}if(e&&!e.newName&&C.startsWith("+++ ")&&(b=wt(C,n.dstPrefix))){e.newName=b,e.language=it(e.newName,e.language);return}}if(e&&(C.startsWith(o)||e.isGitDiff&&e.oldName&&e.newName&&!r)){I(C);return}if(r&&(C.startsWith("+")||C.startsWith("-")||C.startsWith(" "))){J(C);return}let ne=!O(C,L);if(e===null)throw new Error("Where is my file !!!");(b=c.exec(C))?e.oldMode=b[1]:(b=m.exec(C))?e.newMode=b[1]:(b=p.exec(C))?(e.deletedFileMode=b[1],e.isDeleted=true):(b=w.exec(C))?(e.newFileMode=b[1],e.isNew=true):(b=P.exec(C))?(ne&&(e.oldName=b[1]),e.isCopy=true):(b=x.exec(C))?(ne&&(e.newName=b[1]),e.isCopy=true):(b=N.exec(C))?(ne&&(e.oldName=b[1]),e.isRename=true):(b=T.exec(C))?(ne&&(e.newName=b[1]),e.isRename=true):(b=h.exec(C))?(e.isBinary=true,e.oldName=V(b[1],void 0,n.srcPrefix),e.newName=V(b[2],void 0,n.dstPrefix),I("Binary file")):g.test(C)?(e.isBinary=true,I(C)):(b=D.exec(C))?e.unchangedPercentage=parseInt(b[1],10):(b=G.exec(C))?e.changedPercentage=parseInt(b[1],10):(b=l.exec(C))?(e.checksumBefore=b[1],e.checksumAfter=b[2],b[3]&&(e.mode=b[3])):(b=S.exec(C))?(e.checksumBefore=[b[2],b[3]],e.checksumAfter=b[1]):(b=U.exec(C))?(e.oldMode=[b[2],b[3]],e.newMode=b[1]):(b=R.exec(C))?(e.newFileMode=b[1],e.isNew=true):(b=q.exec(C))&&(e.deletedFileMode=b[1],e.isDeleted=true);}),$(),ee(),t}var Y=class{diff(n,t,e={}){let r;typeof e=="function"?(r=e,e={}):"callback"in e&&(r=e.callback);let a=this.castInput(n,e),s=this.castInput(t,e),u=this.removeEmpty(this.tokenize(a,e)),d=this.removeEmpty(this.tokenize(s,e));return this.diffWithOptionsObj(u,d,e,r)}diffWithOptionsObj(n,t,e,r){var a;let s=x=>{if(x=this.postProcess(x,e),r){setTimeout(function(){r(x);},0);return}else return x},u=t.length,d=n.length,f=1,v=u+d;e.maxEditLength!=null&&(v=Math.min(v,e.maxEditLength));let y=(a=e.timeout)!==null&&a!==void 0?a:1/0,o=Date.now()+y,c=[{oldPos:-1,lastComponent:void 0}],m=this.extractCommon(c[0],t,n,0,e);if(c[0].oldPos+1>=d&&m+1>=u)return s(this.buildValues(c[0].lastComponent,t,n));let p=-1/0,w=1/0,P=()=>{for(let x=Math.max(p,-f);x<=Math.min(w,f);x+=2){let N,T=c[x-1],D=c[x+1];T&&(c[x-1]=void 0);let G=false;if(D){let h=D.oldPos-x;G=D&&0<=h&&h<u;}let l=T&&T.oldPos+1<d;if(!G&&!l){c[x]=void 0;continue}if(!l||G&&T.oldPos<D.oldPos?N=this.addToPath(D,true,false,0,e):N=this.addToPath(T,false,true,1,e),m=this.extractCommon(N,t,n,x,e),N.oldPos+1>=d&&m+1>=u)return s(this.buildValues(N.lastComponent,t,n))||true;c[x]=N,N.oldPos+1>=d&&(w=Math.min(w,x-1)),m+1>=u&&(p=Math.max(p,x+1));}f++;};if(r)(function x(){setTimeout(function(){if(f>v||Date.now()>o)return r(void 0);P()||x();},0);})();else for(;f<=v&&Date.now()<=o;){let x=P();if(x)return x}}addToPath(n,t,e,r,a){let s=n.lastComponent;return s&&!a.oneChangePerToken&&s.added===t&&s.removed===e?{oldPos:n.oldPos+r,lastComponent:{count:s.count+1,added:t,removed:e,previousComponent:s.previousComponent}}:{oldPos:n.oldPos+r,lastComponent:{count:1,added:t,removed:e,previousComponent:s}}}extractCommon(n,t,e,r,a){let s=t.length,u=e.length,d=n.oldPos,f=d-r,v=0;for(;f+1<s&&d+1<u&&this.equals(e[d+1],t[f+1],a);)f++,d++,v++,a.oneChangePerToken&&(n.lastComponent={count:1,previousComponent:n.lastComponent,added:false,removed:false});return v&&!a.oneChangePerToken&&(n.lastComponent={count:v,previousComponent:n.lastComponent,added:false,removed:false}),n.oldPos=d,f}equals(n,t,e){return e.comparator?e.comparator(n,t):n===t||!!e.ignoreCase&&n.toLowerCase()===t.toLowerCase()}removeEmpty(n){let t=[];for(let e=0;e<n.length;e++)n[e]&&t.push(n[e]);return t}castInput(n,t){return n}tokenize(n,t){return Array.from(n)}join(n){return n.join("")}postProcess(n,t){return n}get useLongestToken(){return false}buildValues(n,t,e){let r=[],a;for(;n;)r.push(n),a=n.previousComponent,delete n.previousComponent,n=a;r.reverse();let s=r.length,u=0,d=0,f=0;for(;u<s;u++){let v=r[u];if(v.removed)v.value=this.join(e.slice(f,f+v.count)),f+=v.count;else {if(!v.added&&this.useLongestToken){let y=t.slice(d,d+v.count);y=y.map(function(o,c){let m=e[f+c];return m.length>o.length?m:o}),v.value=this.join(y);}else v.value=this.join(t.slice(d,d+v.count));d+=v.count,v.added||(f+=v.count);}}return r}};var We=class extends Y{},at=new We;function Fe(i,n,t){return at.diff(i,n,t)}var ye="a-zA-Z0-9_\\u{AD}\\u{C0}-\\u{D6}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}";var Be=class extends Y{tokenize(n){let t=new RegExp(`(\\r?\\n)|[${ye}]+|[^\\S\\n\\r]+|[^${ye}]`,"ug");return n.match(t)||[]}},ot=new Be;function ke(i,n,t){return ot.diff(i,n,t)}function Nt(i,n){if(i.length===0)return n.length;if(n.length===0)return i.length;let t=[],e;for(e=0;e<=n.length;e++)t[e]=[e];let r;for(r=0;r<=i.length;r++)t[0][r]=r;for(e=1;e<=n.length;e++)for(r=1;r<=i.length;r++)n.charAt(e-1)===i.charAt(r-1)?t[e][r]=t[e-1][r-1]:t[e][r]=Math.min(t[e-1][r-1]+1,Math.min(t[e][r-1]+1,t[e-1][r]+1));return t[n.length][i.length]}function le(i){return (n,t)=>{let e=i(n).trim(),r=i(t).trim();return Nt(e,r)/(e.length+r.length)}}function oe(i){function n(e,r,a=new Map){let s=1/0,u;for(let d=0;d<e.length;++d)for(let f=0;f<r.length;++f){let v=JSON.stringify([e[d],r[f]]),y;a.has(v)&&(y=a.get(v))||(y=i(e[d],r[f]),a.set(v,y)),y<s&&(s=y,u={indexA:d,indexB:f,score:s});}return u}function t(e,r,a=0,s=new Map){let u=n(e,r,s);if(!u||e.length+r.length<3)return [[e,r]];let d=e.slice(0,u.indexA),f=r.slice(0,u.indexB),v=[e[u.indexA]],y=[r[u.indexB]],o=u.indexA+1,c=u.indexB+1,m=e.slice(o),p=r.slice(c),w=t(d,f,a+1,s),P=t(v,y,a+1,s),x=t(m,p,a+1,s),N=P;return (u.indexA>0||u.indexB>0)&&(N=w.concat(N)),(e.length>o||r.length>c)&&(N=N.concat(x)),N}return t}var M={INSERTS:"d2h-ins",DELETES:"d2h-del",CONTEXT:"d2h-cntx",INFO:"d2h-info",INSERT_CHANGES:"d2h-ins d2h-change",DELETE_CHANGES:"d2h-del d2h-change"},Z={matching:Ke.NONE,matchWordsThreshold:.25,maxLineLengthHighlight:1e4,diffStyle:et.WORD,colorScheme:re.LIGHT},z="/",ft=le(i=>i.value),Et=oe(ft);function $e(i){return i.indexOf("dev/null")!==-1}function Lt(i){return i.replace(/(<ins[^>]*>((.|\n)*?)<\/ins>)/g,"")}function Pt(i){return i.replace(/(<del[^>]*>((.|\n)*?)<\/del>)/g,"")}function fe(i){switch(i){case H.CONTEXT:return M.CONTEXT;case H.INSERT:return M.INSERTS;case H.DELETE:return M.DELETES}}function ce(i){switch(i){case re.DARK:return "d2h-dark-color-scheme";case re.AUTO:return "d2h-auto-color-scheme";case re.LIGHT:default:return "d2h-light-color-scheme"}}function Dt(i){return i?2:1}function X(i){return i.slice(0).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")}function j(i,n,t=true){let e=Dt(n);return {prefix:i.substring(0,e),content:t?X(i.substring(e)):i.substring(e)}}function K(i){let n=Ie(i.oldName),t=Ie(i.newName);if(n!==t&&!$e(n)&&!$e(t)){let e=[],r=[],a=n.split(z),s=t.split(z),u=a.length,d=s.length,f=0,v=u-1,y=d-1;for(;f<v&&f<y&&a[f]===s[f];)e.push(s[f]),f+=1;for(;v>f&&y>f&&a[v]===s[y];)r.unshift(s[y]),v-=1,y-=1;let o=e.join(z),c=r.join(z),m=a.slice(f,v+1).join(z),p=s.slice(f,y+1).join(z);return o.length&&c.length?o+z+"{"+m+" \u2192 "+p+"}"+z+c:o.length?o+z+"{"+m+" \u2192 "+p+"}":c.length?"{"+m+" \u2192 "+p+"}"+z+c:n+" \u2192 "+t}else return $e(t)?n:t}function de(i){return `d2h-${nt(K(i)).toString().slice(-6)}`}function ue(i){let n="file-changed";return i.isRename||i.isCopy?n="file-renamed":i.isNew?n="file-added":i.isDeleted?n="file-deleted":i.newName!==i.oldName&&(n="file-renamed"),n}function Se(i,n,t,e={}){let{matching:r,maxLineLengthHighlight:a,matchWordsThreshold:s,diffStyle:u}=Object.assign(Object.assign({},Z),e),d=j(i,t,false),f=j(n,t,false);if(d.content.length>a||f.content.length>a)return {oldLine:{prefix:d.prefix,content:X(d.content)},newLine:{prefix:f.prefix,content:X(f.content)}};let v=u==="char"?Fe(d.content,f.content):ke(d.content,f.content),y=[];if(u==="word"&&r==="words"){let c=v.filter(w=>w.removed),m=v.filter(w=>w.added);Et(m,c).forEach(w=>{w[0].length===1&&w[1].length===1&&ft(w[0][0],w[1][0])<s&&(y.push(w[0][0]),y.push(w[1][0]));});}let o=v.reduce((c,m)=>{let p=m.added?"ins":m.removed?"del":null,w=y.indexOf(m)>-1?' class="d2h-change"':"",P=X(m.value);return p!==null?`${c}<${p}${w}>${P}</${p}>`:`${c}${P}`},"");return {oldLine:{prefix:d.prefix,content:Lt(o)},newLine:{prefix:f.prefix,content:Pt(o)}}}var ct="file-summary",Ht="icon",It={colorScheme:Z.colorScheme},Te=class{constructor(n,t={}){this.hoganUtils=n,this.config=Object.assign(Object.assign({},It),t);}render(n){let t=n.map(e=>this.hoganUtils.render(ct,"line",{fileHtmlId:de(e),oldName:e.oldName,newName:e.newName,fileName:K(e),deletedLines:"-"+e.deletedLines,addedLines:"+"+e.addedLines},{fileIcon:this.hoganUtils.template(Ht,ue(e))})).join(`
|
|
8
|
+
`);return this.hoganUtils.render(ct,"wrapper",{colorScheme:ce(this.config.colorScheme),filesNumber:n.length,files:t})}};var Ge=Object.assign(Object.assign({},Z),{renderNothingWhenEmpty:false,matchingMaxComparisons:2500,maxLineSizeInBlockForComparison:200}),pe="generic",dt="line-by-line",Ot="icon",Wt="tag",Ne=class{constructor(n,t={}){this.hoganUtils=n,this.config=Object.assign(Object.assign({},Ge),t);}render(n){let t=n.map(e=>{let r;return e.blocks.length?r=this.generateFileHtml(e):r=this.generateEmptyDiff(),this.makeFileDiffHtml(e,r)}).join(`
|
|
9
|
+
`);return this.hoganUtils.render(pe,"wrapper",{colorScheme:ce(this.config.colorScheme),content:t})}makeFileDiffHtml(n,t){if(this.config.renderNothingWhenEmpty&&Array.isArray(n.blocks)&&n.blocks.length===0)return "";let e=this.hoganUtils.template(dt,"file-diff"),r=this.hoganUtils.template(pe,"file-path"),a=this.hoganUtils.template(Ot,"file"),s=this.hoganUtils.template(Wt,ue(n));return e.render({file:n,fileHtmlId:de(n),diffs:t,filePath:r.render({fileDiffName:K(n)},{fileIcon:a,fileTag:s})})}generateEmptyDiff(){return this.hoganUtils.render(pe,"empty-diff",{contentClass:"d2h-code-line",CSSLineClass:M})}generateFileHtml(n){let t=oe(le(e=>j(e.content,n.isCombined).content));return n.blocks.map(e=>{let r=this.hoganUtils.render(pe,"block-header",{CSSLineClass:M,blockHeader:n.isTooBig?e.header:X(e.header),lineClass:"d2h-code-linenumber",contentClass:"d2h-code-line"});return this.applyLineGroupping(e).forEach(([a,s,u])=>{if(s.length&&u.length&&!a.length)this.applyRematchMatching(s,u,t).map(([d,f])=>{let{left:v,right:y}=this.processChangedLines(n,n.isCombined,d,f);r+=v,r+=y;});else if(a.length)a.forEach(d=>{let{prefix:f,content:v}=j(d.content,n.isCombined);r+=this.generateSingleLineHtml(n,{type:M.CONTEXT,prefix:f,content:v,oldNumber:d.oldNumber,newNumber:d.newNumber});});else if(s.length||u.length){let{left:d,right:f}=this.processChangedLines(n,n.isCombined,s,u);r+=d,r+=f;}else console.error("Unknown state reached while processing groups of lines",a,s,u);}),r}).join(`
|
|
10
|
+
`)}applyLineGroupping(n){let t=[],e=[],r=[];for(let a=0;a<n.lines.length;a++){let s=n.lines[a];(s.type!==H.INSERT&&r.length||s.type===H.CONTEXT&&e.length>0)&&(t.push([[],e,r]),e=[],r=[]),s.type===H.CONTEXT?t.push([[s],[],[]]):s.type===H.INSERT&&e.length===0?t.push([[],[],[s]]):s.type===H.INSERT&&e.length>0?r.push(s):s.type===H.DELETE&&e.push(s);}return (e.length||r.length)&&(t.push([[],e,r]),e=[],r=[]),t}applyRematchMatching(n,t,e){let r=n.length*t.length,a=ve(n.concat(t).map(u=>u.content.length));return r<this.config.matchingMaxComparisons&&a<this.config.maxLineSizeInBlockForComparison&&(this.config.matching==="lines"||this.config.matching==="words")?e(n,t):[[n,t]]}processChangedLines(n,t,e,r){let a={right:"",left:""},s=Math.max(e.length,r.length);for(let u=0;u<s;u++){let d=e[u],f=r[u],v=d!==void 0&&f!==void 0?Se(d.content,f.content,t,this.config):void 0,y=d!==void 0&&d.oldNumber!==void 0?Object.assign(Object.assign({},v!==void 0?{prefix:v.oldLine.prefix,content:v.oldLine.content,type:M.DELETE_CHANGES}:Object.assign(Object.assign({},j(d.content,t)),{type:fe(d.type)})),{oldNumber:d.oldNumber,newNumber:d.newNumber}):void 0,o=f!==void 0&&f.newNumber!==void 0?Object.assign(Object.assign({},v!==void 0?{prefix:v.newLine.prefix,content:v.newLine.content,type:M.INSERT_CHANGES}:Object.assign(Object.assign({},j(f.content,t)),{type:fe(f.type)})),{oldNumber:f.oldNumber,newNumber:f.newNumber}):void 0,{left:c,right:m}=this.generateLineHtml(n,y,o);a.left+=c,a.right+=m;}return a}generateLineHtml(n,t,e){return {left:this.generateSingleLineHtml(n,t),right:this.generateSingleLineHtml(n,e)}}generateSingleLineHtml(n,t){if(t===void 0)return "";let e=this.hoganUtils.render(dt,"numbers",{oldNumber:t.oldNumber||"",newNumber:t.newNumber||""});return this.hoganUtils.render(pe,"line",{type:t.type,lineClass:"d2h-code-linenumber",contentClass:"d2h-code-line",prefix:t.prefix===" "?" ":t.prefix,content:t.content,lineNumber:e,line:t,file:n})}};var Ve=Object.assign(Object.assign({},Z),{renderNothingWhenEmpty:false,matchingMaxComparisons:2500,maxLineSizeInBlockForComparison:200}),me="generic",Ft="side-by-side",Ut="icon",Mt="tag",Ee=class{constructor(n,t={}){this.hoganUtils=n,this.config=Object.assign(Object.assign({},Ve),t);}render(n){let t=n.map(e=>{let r;return e.blocks.length?r=this.generateFileHtml(e):r=this.generateEmptyDiff(),this.makeFileDiffHtml(e,r)}).join(`
|
|
11
|
+
`);return this.hoganUtils.render(me,"wrapper",{colorScheme:ce(this.config.colorScheme),content:t})}makeFileDiffHtml(n,t){if(this.config.renderNothingWhenEmpty&&Array.isArray(n.blocks)&&n.blocks.length===0)return "";let e=this.hoganUtils.template(Ft,"file-diff"),r=this.hoganUtils.template(me,"file-path"),a=this.hoganUtils.template(Ut,"file"),s=this.hoganUtils.template(Mt,ue(n));return e.render({file:n,fileHtmlId:de(n),diffs:t,filePath:r.render({fileDiffName:K(n)},{fileIcon:a,fileTag:s})})}generateEmptyDiff(){return {right:"",left:this.hoganUtils.render(me,"empty-diff",{contentClass:"d2h-code-side-line",CSSLineClass:M})}}generateFileHtml(n){let t=oe(le(e=>j(e.content,n.isCombined).content));return n.blocks.map(e=>{let r={left:this.makeHeaderHtml(e.header,n),right:this.makeHeaderHtml("")};return this.applyLineGroupping(e).forEach(([a,s,u])=>{if(s.length&&u.length&&!a.length)this.applyRematchMatching(s,u,t).map(([d,f])=>{let{left:v,right:y}=this.processChangedLines(n.isCombined,d,f);r.left+=v,r.right+=y;});else if(a.length)a.forEach(d=>{let{prefix:f,content:v}=j(d.content,n.isCombined),{left:y,right:o}=this.generateLineHtml({type:M.CONTEXT,prefix:f,content:v,number:d.oldNumber},{type:M.CONTEXT,prefix:f,content:v,number:d.newNumber});r.left+=y,r.right+=o;});else if(s.length||u.length){let{left:d,right:f}=this.processChangedLines(n.isCombined,s,u);r.left+=d,r.right+=f;}else console.error("Unknown state reached while processing groups of lines",a,s,u);}),r}).reduce((e,r)=>({left:e.left+r.left,right:e.right+r.right}),{left:"",right:""})}applyLineGroupping(n){let t=[],e=[],r=[];for(let a=0;a<n.lines.length;a++){let s=n.lines[a];(s.type!==H.INSERT&&r.length||s.type===H.CONTEXT&&e.length>0)&&(t.push([[],e,r]),e=[],r=[]),s.type===H.CONTEXT?t.push([[s],[],[]]):s.type===H.INSERT&&e.length===0?t.push([[],[],[s]]):s.type===H.INSERT&&e.length>0?r.push(s):s.type===H.DELETE&&e.push(s);}return (e.length||r.length)&&(t.push([[],e,r]),e=[],r=[]),t}applyRematchMatching(n,t,e){let r=n.length*t.length,a=ve(n.concat(t).map(u=>u.content.length));return r<this.config.matchingMaxComparisons&&a<this.config.maxLineSizeInBlockForComparison&&(this.config.matching==="lines"||this.config.matching==="words")?e(n,t):[[n,t]]}makeHeaderHtml(n,t){return this.hoganUtils.render(me,"block-header",{CSSLineClass:M,blockHeader:t?.isTooBig?n:X(n),lineClass:"d2h-code-side-linenumber",contentClass:"d2h-code-side-line"})}processChangedLines(n,t,e){let r={right:"",left:""},a=Math.max(t.length,e.length);for(let s=0;s<a;s++){let u=t[s],d=e[s],f=u!==void 0&&d!==void 0?Se(u.content,d.content,n,this.config):void 0,v=u!==void 0&&u.oldNumber!==void 0?Object.assign(Object.assign({},f!==void 0?{prefix:f.oldLine.prefix,content:f.oldLine.content,type:M.DELETE_CHANGES}:Object.assign(Object.assign({},j(u.content,n)),{type:fe(u.type)})),{number:u.oldNumber}):void 0,y=d!==void 0&&d.newNumber!==void 0?Object.assign(Object.assign({},f!==void 0?{prefix:f.newLine.prefix,content:f.newLine.content,type:M.INSERT_CHANGES}:Object.assign(Object.assign({},j(d.content,n)),{type:fe(d.type)})),{number:d.newNumber}):void 0,{left:o,right:c}=this.generateLineHtml(v,y);r.left+=o,r.right+=c;}return r}generateLineHtml(n,t){return {left:this.generateSingleHtml(n),right:this.generateSingleHtml(t)}}generateSingleHtml(n){let t="d2h-code-side-linenumber",e="d2h-code-side-line";return this.hoganUtils.render(me,"line",{type:n?.type||`${M.CONTEXT} d2h-emptyplaceholder`,lineClass:n!==void 0?t:`${t} d2h-code-side-emptyplaceholder`,contentClass:n!==void 0?e:`${e} d2h-code-side-emptyplaceholder`,prefix:n?.prefix===" "?" ":n?.prefix,content:n?.content,lineNumber:n?.number})}};var Ye=A(Je());var F=A(Je()),W={};W["file-summary-line"]=new F.Template({code:function(i,n,t){var e=this;return e.b(t=t||""),e.b('<li class="d2h-file-list-line">'),e.b(`
|
|
12
|
+
`+t),e.b(' <span class="d2h-file-name-wrapper">'),e.b(`
|
|
13
|
+
`+t),e.b(e.rp("<fileIcon0",i,n," ")),e.b(' <a href="#'),e.b(e.v(e.f("fileHtmlId",i,n,0))),e.b('" class="d2h-file-name">'),e.b(e.v(e.f("fileName",i,n,0))),e.b("</a>"),e.b(`
|
|
14
|
+
`+t),e.b(' <span class="d2h-file-stats">'),e.b(`
|
|
15
|
+
`+t),e.b(' <span class="d2h-lines-added">'),e.b(e.v(e.f("addedLines",i,n,0))),e.b("</span>"),e.b(`
|
|
16
|
+
`+t),e.b(' <span class="d2h-lines-deleted">'),e.b(e.v(e.f("deletedLines",i,n,0))),e.b("</span>"),e.b(`
|
|
17
|
+
`+t),e.b(" </span>"),e.b(`
|
|
18
|
+
`+t),e.b(" </span>"),e.b(`
|
|
19
|
+
`+t),e.b("</li>"),e.fl()},partials:{"<fileIcon0":{name:"fileIcon",partials:{},subs:{}}},subs:{}});W["file-summary-wrapper"]=new F.Template({code:function(i,n,t){var e=this;return e.b(t=t||""),e.b('<div class="d2h-file-list-wrapper '),e.b(e.v(e.f("colorScheme",i,n,0))),e.b('">'),e.b(`
|
|
20
|
+
`+t),e.b(' <div class="d2h-file-list-header">'),e.b(`
|
|
21
|
+
`+t),e.b(' <span class="d2h-file-list-title">Files changed ('),e.b(e.v(e.f("filesNumber",i,n,0))),e.b(")</span>"),e.b(`
|
|
22
|
+
`+t),e.b(' <a class="d2h-file-switch d2h-hide">hide</a>'),e.b(`
|
|
23
|
+
`+t),e.b(' <a class="d2h-file-switch d2h-show">show</a>'),e.b(`
|
|
24
|
+
`+t),e.b(" </div>"),e.b(`
|
|
25
|
+
`+t),e.b(' <ol class="d2h-file-list">'),e.b(`
|
|
26
|
+
`+t),e.b(" "),e.b(e.t(e.f("files",i,n,0))),e.b(`
|
|
27
|
+
`+t),e.b(" </ol>"),e.b(`
|
|
28
|
+
`+t),e.b("</div>"),e.fl()},partials:{},subs:{}});W["generic-block-header"]=new F.Template({code:function(i,n,t){var e=this;return e.b(t=t||""),e.b("<tr>"),e.b(`
|
|
29
|
+
`+t),e.b(' <td class="'),e.b(e.v(e.f("lineClass",i,n,0))),e.b(" "),e.b(e.v(e.d("CSSLineClass.INFO",i,n,0))),e.b('"></td>'),e.b(`
|
|
30
|
+
`+t),e.b(' <td class="'),e.b(e.v(e.d("CSSLineClass.INFO",i,n,0))),e.b('">'),e.b(`
|
|
31
|
+
`+t),e.b(' <div class="'),e.b(e.v(e.f("contentClass",i,n,0))),e.b('">'),e.s(e.f("blockHeader",i,n,1),i,n,0,156,173,"{{ }}")&&(e.rs(i,n,function(r,a,s){s.b(s.t(s.f("blockHeader",r,a,0)));}),i.pop()),e.s(e.f("blockHeader",i,n,1),i,n,1,0,0,"")||e.b(" "),e.b("</div>"),e.b(`
|
|
32
|
+
`+t),e.b(" </td>"),e.b(`
|
|
33
|
+
`+t),e.b("</tr>"),e.fl()},partials:{},subs:{}});W["generic-empty-diff"]=new F.Template({code:function(i,n,t){var e=this;return e.b(t=t||""),e.b("<tr>"),e.b(`
|
|
34
|
+
`+t),e.b(' <td class="'),e.b(e.v(e.d("CSSLineClass.INFO",i,n,0))),e.b('">'),e.b(`
|
|
35
|
+
`+t),e.b(' <div class="'),e.b(e.v(e.f("contentClass",i,n,0))),e.b('">'),e.b(`
|
|
36
|
+
`+t),e.b(" File without changes"),e.b(`
|
|
37
|
+
`+t),e.b(" </div>"),e.b(`
|
|
38
|
+
`+t),e.b(" </td>"),e.b(`
|
|
39
|
+
`+t),e.b("</tr>"),e.fl()},partials:{},subs:{}});W["generic-file-path"]=new F.Template({code:function(i,n,t){var e=this;return e.b(t=t||""),e.b('<span class="d2h-file-name-wrapper">'),e.b(`
|
|
40
|
+
`+t),e.b(e.rp("<fileIcon0",i,n," ")),e.b(' <span class="d2h-file-name">'),e.b(e.v(e.f("fileDiffName",i,n,0))),e.b("</span>"),e.b(`
|
|
41
|
+
`+t),e.b(e.rp("<fileTag1",i,n," ")),e.b("</span>"),e.b(`
|
|
42
|
+
`+t),e.b('<label class="d2h-file-collapse">'),e.b(`
|
|
43
|
+
`+t),e.b(' <input class="d2h-file-collapse-input" type="checkbox" name="viewed" value="viewed">'),e.b(`
|
|
44
|
+
`+t),e.b(" Viewed"),e.b(`
|
|
45
|
+
`+t),e.b("</label>"),e.fl()},partials:{"<fileIcon0":{name:"fileIcon",partials:{},subs:{}},"<fileTag1":{name:"fileTag",partials:{},subs:{}}},subs:{}});W["generic-line"]=new F.Template({code:function(i,n,t){var e=this;return e.b(t=t||""),e.b("<tr>"),e.b(`
|
|
46
|
+
`+t),e.b(' <td class="'),e.b(e.v(e.f("lineClass",i,n,0))),e.b(" "),e.b(e.v(e.f("type",i,n,0))),e.b('">'),e.b(`
|
|
47
|
+
`+t),e.b(" "),e.b(e.t(e.f("lineNumber",i,n,0))),e.b(`
|
|
48
|
+
`+t),e.b(" </td>"),e.b(`
|
|
49
|
+
`+t),e.b(' <td class="'),e.b(e.v(e.f("type",i,n,0))),e.b('">'),e.b(`
|
|
50
|
+
`+t),e.b(' <div class="'),e.b(e.v(e.f("contentClass",i,n,0))),e.b('">'),e.b(`
|
|
51
|
+
`+t),e.s(e.f("prefix",i,n,1),i,n,0,162,238,"{{ }}")&&(e.rs(i,n,function(r,a,s){s.b(' <span class="d2h-code-line-prefix">'),s.b(s.t(s.f("prefix",r,a,0))),s.b("</span>"),s.b(`
|
|
52
|
+
`+t);}),i.pop()),e.s(e.f("prefix",i,n,1),i,n,1,0,0,"")||(e.b(' <span class="d2h-code-line-prefix"> </span>'),e.b(`
|
|
53
|
+
`+t)),e.s(e.f("content",i,n,1),i,n,0,371,445,"{{ }}")&&(e.rs(i,n,function(r,a,s){s.b(' <span class="d2h-code-line-ctn">'),s.b(s.t(s.f("content",r,a,0))),s.b("</span>"),s.b(`
|
|
54
|
+
`+t);}),i.pop()),e.s(e.f("content",i,n,1),i,n,1,0,0,"")||(e.b(' <span class="d2h-code-line-ctn"><br></span>'),e.b(`
|
|
55
|
+
`+t)),e.b(" </div>"),e.b(`
|
|
56
|
+
`+t),e.b(" </td>"),e.b(`
|
|
57
|
+
`+t),e.b("</tr>"),e.fl()},partials:{},subs:{}});W["generic-wrapper"]=new F.Template({code:function(i,n,t){var e=this;return e.b(t=t||""),e.b('<div class="d2h-wrapper '),e.b(e.v(e.f("colorScheme",i,n,0))),e.b('">'),e.b(`
|
|
58
|
+
`+t),e.b(" "),e.b(e.t(e.f("content",i,n,0))),e.b(`
|
|
59
|
+
`+t),e.b("</div>"),e.fl()},partials:{},subs:{}});W["icon-file-added"]=new F.Template({code:function(i,n,t){var e=this;return e.b(t=t||""),e.b('<svg aria-hidden="true" class="d2h-icon d2h-added" height="16" title="added" version="1.1" viewBox="0 0 14 16"'),e.b(`
|
|
60
|
+
`+t),e.b(' width="14">'),e.b(`
|
|
61
|
+
`+t),e.b(' <path d="M13 1H1C0.45 1 0 1.45 0 2v12c0 0.55 0.45 1 1 1h12c0.55 0 1-0.45 1-1V2c0-0.55-0.45-1-1-1z m0 13H1V2h12v12zM6 9H3V7h3V4h2v3h3v2H8v3H6V9z"></path>'),e.b(`
|
|
62
|
+
`+t),e.b("</svg>"),e.fl()},partials:{},subs:{}});W["icon-file-changed"]=new F.Template({code:function(i,n,t){var e=this;return e.b(t=t||""),e.b('<svg aria-hidden="true" class="d2h-icon d2h-changed" height="16" title="modified" version="1.1"'),e.b(`
|
|
63
|
+
`+t),e.b(' viewBox="0 0 14 16" width="14">'),e.b(`
|
|
64
|
+
`+t),e.b(' <path d="M13 1H1C0.45 1 0 1.45 0 2v12c0 0.55 0.45 1 1 1h12c0.55 0 1-0.45 1-1V2c0-0.55-0.45-1-1-1z m0 13H1V2h12v12zM4 8c0-1.66 1.34-3 3-3s3 1.34 3 3-1.34 3-3 3-3-1.34-3-3z"></path>'),e.b(`
|
|
65
|
+
`+t),e.b("</svg>"),e.fl()},partials:{},subs:{}});W["icon-file-deleted"]=new F.Template({code:function(i,n,t){var e=this;return e.b(t=t||""),e.b('<svg aria-hidden="true" class="d2h-icon d2h-deleted" height="16" title="removed" version="1.1"'),e.b(`
|
|
66
|
+
`+t),e.b(' viewBox="0 0 14 16" width="14">'),e.b(`
|
|
67
|
+
`+t),e.b(' <path d="M13 1H1C0.45 1 0 1.45 0 2v12c0 0.55 0.45 1 1 1h12c0.55 0 1-0.45 1-1V2c0-0.55-0.45-1-1-1z m0 13H1V2h12v12zM11 9H3V7h8v2z"></path>'),e.b(`
|
|
68
|
+
`+t),e.b("</svg>"),e.fl()},partials:{},subs:{}});W["icon-file-renamed"]=new F.Template({code:function(i,n,t){var e=this;return e.b(t=t||""),e.b('<svg aria-hidden="true" class="d2h-icon d2h-moved" height="16" title="renamed" version="1.1"'),e.b(`
|
|
69
|
+
`+t),e.b(' viewBox="0 0 14 16" width="14">'),e.b(`
|
|
70
|
+
`+t),e.b(' <path d="M6 9H3V7h3V4l5 4-5 4V9z m8-7v12c0 0.55-0.45 1-1 1H1c-0.55 0-1-0.45-1-1V2c0-0.55 0.45-1 1-1h12c0.55 0 1 0.45 1 1z m-1 0H1v12h12V2z"></path>'),e.b(`
|
|
71
|
+
`+t),e.b("</svg>"),e.fl()},partials:{},subs:{}});W["icon-file"]=new F.Template({code:function(i,n,t){var e=this;return e.b(t=t||""),e.b('<svg aria-hidden="true" class="d2h-icon" height="16" version="1.1" viewBox="0 0 12 16" width="12">'),e.b(`
|
|
72
|
+
`+t),e.b(' <path d="M6 5H2v-1h4v1zM2 8h7v-1H2v1z m0 2h7v-1H2v1z m0 2h7v-1H2v1z m10-7.5v9.5c0 0.55-0.45 1-1 1H1c-0.55 0-1-0.45-1-1V2c0-0.55 0.45-1 1-1h7.5l3.5 3.5z m-1 0.5L8 2H1v12h10V5z"></path>'),e.b(`
|
|
73
|
+
`+t),e.b("</svg>"),e.fl()},partials:{},subs:{}});W["line-by-line-file-diff"]=new F.Template({code:function(i,n,t){var e=this;return e.b(t=t||""),e.b('<div id="'),e.b(e.v(e.f("fileHtmlId",i,n,0))),e.b('" class="d2h-file-wrapper" data-lang="'),e.b(e.v(e.d("file.language",i,n,0))),e.b('">'),e.b(`
|
|
74
|
+
`+t),e.b(' <div class="d2h-file-header">'),e.b(`
|
|
75
|
+
`+t),e.b(" "),e.b(e.t(e.f("filePath",i,n,0))),e.b(`
|
|
76
|
+
`+t),e.b(" </div>"),e.b(`
|
|
77
|
+
`+t),e.b(' <div class="d2h-file-diff">'),e.b(`
|
|
78
|
+
`+t),e.b(' <div class="d2h-code-wrapper">'),e.b(`
|
|
79
|
+
`+t),e.b(' <table class="d2h-diff-table">'),e.b(`
|
|
80
|
+
`+t),e.b(' <tbody class="d2h-diff-tbody">'),e.b(`
|
|
81
|
+
`+t),e.b(" "),e.b(e.t(e.f("diffs",i,n,0))),e.b(`
|
|
82
|
+
`+t),e.b(" </tbody>"),e.b(`
|
|
83
|
+
`+t),e.b(" </table>"),e.b(`
|
|
84
|
+
`+t),e.b(" </div>"),e.b(`
|
|
85
|
+
`+t),e.b(" </div>"),e.b(`
|
|
86
|
+
`+t),e.b("</div>"),e.fl()},partials:{},subs:{}});W["line-by-line-numbers"]=new F.Template({code:function(i,n,t){var e=this;return e.b(t=t||""),e.b('<div class="line-num1">'),e.b(e.v(e.f("oldNumber",i,n,0))),e.b("</div>"),e.b(`
|
|
87
|
+
`+t),e.b('<div class="line-num2">'),e.b(e.v(e.f("newNumber",i,n,0))),e.b("</div>"),e.fl()},partials:{},subs:{}});W["side-by-side-file-diff"]=new F.Template({code:function(i,n,t){var e=this;return e.b(t=t||""),e.b('<div id="'),e.b(e.v(e.f("fileHtmlId",i,n,0))),e.b('" class="d2h-file-wrapper" data-lang="'),e.b(e.v(e.d("file.language",i,n,0))),e.b('">'),e.b(`
|
|
88
|
+
`+t),e.b(' <div class="d2h-file-header">'),e.b(`
|
|
89
|
+
`+t),e.b(" "),e.b(e.t(e.f("filePath",i,n,0))),e.b(`
|
|
90
|
+
`+t),e.b(" </div>"),e.b(`
|
|
91
|
+
`+t),e.b(' <div class="d2h-files-diff">'),e.b(`
|
|
92
|
+
`+t),e.b(' <div class="d2h-file-side-diff">'),e.b(`
|
|
93
|
+
`+t),e.b(' <div class="d2h-code-wrapper">'),e.b(`
|
|
94
|
+
`+t),e.b(' <table class="d2h-diff-table">'),e.b(`
|
|
95
|
+
`+t),e.b(' <tbody class="d2h-diff-tbody">'),e.b(`
|
|
96
|
+
`+t),e.b(" "),e.b(e.t(e.d("diffs.left",i,n,0))),e.b(`
|
|
97
|
+
`+t),e.b(" </tbody>"),e.b(`
|
|
98
|
+
`+t),e.b(" </table>"),e.b(`
|
|
99
|
+
`+t),e.b(" </div>"),e.b(`
|
|
100
|
+
`+t),e.b(" </div>"),e.b(`
|
|
101
|
+
`+t),e.b(' <div class="d2h-file-side-diff">'),e.b(`
|
|
102
|
+
`+t),e.b(' <div class="d2h-code-wrapper">'),e.b(`
|
|
103
|
+
`+t),e.b(' <table class="d2h-diff-table">'),e.b(`
|
|
104
|
+
`+t),e.b(' <tbody class="d2h-diff-tbody">'),e.b(`
|
|
105
|
+
`+t),e.b(" "),e.b(e.t(e.d("diffs.right",i,n,0))),e.b(`
|
|
106
|
+
`+t),e.b(" </tbody>"),e.b(`
|
|
107
|
+
`+t),e.b(" </table>"),e.b(`
|
|
108
|
+
`+t),e.b(" </div>"),e.b(`
|
|
109
|
+
`+t),e.b(" </div>"),e.b(`
|
|
110
|
+
`+t),e.b(" </div>"),e.b(`
|
|
111
|
+
`+t),e.b("</div>"),e.fl()},partials:{},subs:{}});W["tag-file-added"]=new F.Template({code:function(i,n,t){var e=this;return e.b(t=t||""),e.b('<span class="d2h-tag d2h-added d2h-added-tag">ADDED</span>'),e.fl()},partials:{},subs:{}});W["tag-file-changed"]=new F.Template({code:function(i,n,t){var e=this;return e.b(t=t||""),e.b('<span class="d2h-tag d2h-changed d2h-changed-tag">CHANGED</span>'),e.fl()},partials:{},subs:{}});W["tag-file-deleted"]=new F.Template({code:function(i,n,t){var e=this;return e.b(t=t||""),e.b('<span class="d2h-tag d2h-deleted d2h-deleted-tag">DELETED</span>'),e.fl()},partials:{},subs:{}});W["tag-file-renamed"]=new F.Template({code:function(i,n,t){var e=this;return e.b(t=t||""),e.b('<span class="d2h-tag d2h-moved d2h-moved-tag">RENAMED</span>'),e.fl()},partials:{},subs:{}});var Pe=class{constructor({compiledTemplates:n={},rawTemplates:t={}}){let e=Object.entries(t).reduce((r,[a,s])=>{let u=Ye.compile(s,{asString:false});return Object.assign(Object.assign({},r),{[a]:u})},{});this.preCompiledTemplates=Object.assign(Object.assign(Object.assign({},W),n),e);}static compile(n){return Ye.compile(n,{asString:false})}render(n,t,e,r,a){let s=this.templateKey(n,t);try{return this.preCompiledTemplates[s].render(e,r,a)}catch(u){throw new Error(`Could not find template to render '${s}'`)}}template(n,t){return this.preCompiledTemplates[this.templateKey(n,t)]}templateKey(n,t){return `${n}-${t}`}};var mt=Object.assign(Object.assign(Object.assign({},Ge),Ve),{outputFormat:Ze.LINE_BY_LINE,drawFileList:true});function wn(i,n={}){return Oe(i,Object.assign(Object.assign({},mt),n))}function xn(i,n={}){let t=Object.assign(Object.assign({},mt),n),e=typeof i=="string"?Oe(i,t):i,r=new Pe(t),{colorScheme:a}=t,s={colorScheme:a},u=t.drawFileList?new Te(r,s).render(e):"",d=t.outputFormat==="side-by-side"?new Ee(r,t).render(e):new Ne(r,t).render(e);return u+d}export{mt as defaultDiff2HtmlConfig,xn as html,wn as parse};
|