vault backup: 2025-07-08 07:31:48

This commit is contained in:
CrazyJasonwell committed 2025-07-08 07:31:48 +08:00
1 parent ea46828e60
commit 9352929766
12 files changed
+97284 -2

No files matched your search

+88
View File
@@ -0,0 +1,88 @@
/*
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
if you want to view the source, please visit the github repository of this plugin
*/
var R4=Object.create;var T1=Object.defineProperty;var n4=Object.getOwnPropertyDescriptor;var X4=Object.getOwnPropertyNames;var p4=Object.getPrototypeOf,s4=Object.prototype.hasOwnProperty;var e4=(G,I,l)=>I in G?T1(G,I,{enumerable:!0,configurable:!0,writable:!0,value:l}):G[I]=l;var fa=(G,I)=>()=>(I||G((I={exports:{}}).exports,I),I.exports),t4=(G,I)=>{for(var l in I)T1(G,l,{get:I[l],enumerable:!0})},ja=(G,I,l,c)=>{if(I&&typeof I=="object"||typeof I=="function")for(let b of X4(I))!s4.call(G,b)&&b!==l&&T1(G,b,{get:()=>I[b],enumerable:!(c=n4(I,b))||c.enumerable});return G};var dW=(G,I,l)=>(l=G!=null?R4(p4(G)):{},ja(I||!G||!G.__esModule?T1(l,"default",{value:G,enumerable:!0}):l,G)),E4=G=>ja(T1({},"__esModule",{value:!0}),G);var oI=(G,I,l)=>(e4(G,typeof I!="symbol"?I+"":I,l),l);var UV=fa(cd=>{"use strict";cd.byteLength=HY;cd.toByteArray=nY;cd.fromByteArray=sY;var x2=[],c2=[],YY=typeof Uint8Array<"u"?Uint8Array:Array,o3="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(WG=0,xV=o3.length;WG<xV;++WG)x2[WG]=o3[WG],c2[o3.charCodeAt(WG)]=WG;var WG,xV;c2["-".charCodeAt(0)]=62;c2["_".charCodeAt(0)]=63;function kV(G){var I=G.length;if(I%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var l=G.indexOf("=");l===-1&&(l=I);var c=l===I?0:4-l%4;return[l,c]}function HY(G){var I=kV(G),l=I[0],c=I[1];return(l+c)*3/4-c}function RY(G,I,l){return(I+l)*3/4-l}function nY(G){var I,l=kV(G),c=l[0],b=l[1],Z=new YY(RY(G,c,b)),d=0,W=b>0?c-4:c,a;for(a=0;a<W;a+=4)I=c2[G.charCodeAt(a)]<<18|c2[G.charCodeAt(a+1)]<<12|c2[G.charCodeAt(a+2)]<<6|c2[G.charCodeAt(a+3)],Z[d++]=I>>16&255,Z[d++]=I>>8&255,Z[d++]=I&255;return b===2&&(I=c2[G.charCodeAt(a)]<<2|c2[G.charCodeAt(a+1)]>>4,Z[d++]=I&255),b===1&&(I=c2[G.charCodeAt(a)]<<10|c2[G.charCodeAt(a+1)]<<4|c2[G.charCodeAt(a+2)]>>2,Z[d++]=I>>8&255,Z[d++]=I&255),Z}function XY(G){return x2[G>>18&63]+x2[G>>12&63]+x2[G>>6&63]+x2[G&63]}function pY(G,I,l){for(var c,b=[],Z=I;Z<l;Z+=3)c=(G[Z]<<16&16711680)+(G[Z+1]<<8&65280)+(G[Z+2]&255),b.push(XY(c));return b.join("")}function sY(G){for(var I,l=G.length,c=l%3,b=[],Z=16383,d=0,W=l-c;d<W;d+=Z)b.push(pY(G,d,d+Z>W?W:d+Z));return c===1?(I=G[l-1],b.push(x2[I>>2]+x2[I<<4&63]+"==")):c===2&&(I=(G[l-2]<<8)+G[l-1],b.push(x2[I>>10]+x2[I>>4&63]+x2[I<<2&63]+"=")),b.join("")}});var A5=fa(j2=>{"use strict";Object.defineProperty(j2,"__esModule",{value:!0});require("obsidian");var dc=class extends Error{},S3=class extends dc{constructor(I){super(`Invalid DateTime: ${I.toMessage()}`)}},D3=class extends dc{constructor(I){super(`Invalid Interval: ${I.toMessage()}`)}},K3=class extends dc{constructor(I){super(`Invalid Duration: ${I.toMessage()}`)}},hG=class extends dc{},pd=class extends dc{constructor(I){super(`Invalid unit ${I}`)}},Al=class extends dc{},L2=class extends dc{constructor(){super("Zone is an abstract class")}},L="numeric",t2="short",jl="long",sd={year:L,month:L,day:L},AN={year:L,month:t2,day:L},jY={year:L,month:t2,day:L,weekday:t2},gN={year:L,month:jl,day:L},zN={year:L,month:jl,day:L,weekday:jl},xN={hour:L,minute:L},kN={hour:L,minute:L,second:L},UN={hour:L,minute:L,second:L,timeZoneName:t2},MN={hour:L,minute:L,second:L,timeZoneName:jl},BN={hour:L,minute:L,hourCycle:"h23"},LN={hour:L,minute:L,second:L,hourCycle:"h23"},fN={hour:L,minute:L,second:L,hourCycle:"h23",timeZoneName:t2},jN={hour:L,minute:L,second:L,hourCycle:"h23",timeZoneName:jl},TN={year:L,month:L,day:L,hour:L,minute:L},CN={year:L,month:L,day:L,hour:L,minute:L,second:L},SN={year:L,month:t2,day:L,hour:L,minute:L},DN={year:L,month:t2,day:L,hour:L,minute:L,second:L},TY={year:L,month:t2,day:L,weekday:t2,hour:L,minute:L},KN={year:L,month:jl,day:L,hour:L,minute:L,timeZoneName:t2},ON={year:L,month:jl,day:L,hour:L,minute:L,second:L,timeZoneName:t2},PN={year:L,month:jl,day:L,weekday:jl,hour:L,minute:L,timeZoneName:jl},qN={year:L,month:jl,day:L,weekday:jl,hour:L,minute:L,second:L,timeZoneName:jl},HG=class{get type(){throw new L2}get name(){throw new L2}get ianaName(){return this.name}get isUniversal(){throw new L2}offsetName(I,l){throw new L2}formatOffset(I,l){throw new L2}offset(I){throw new L2}equals(I){throw new L2}get isValid(){throw new L2}},U3=null,y1=class extends HG{static get instance(){return U3===null&&(U3=new y1),U3}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(I,{format:l,locale:c}){return $N(I,l,c)}formatOffset(I,l){return wb(this.offset(I),l)}offset(I){return-new Date(I).getTimezoneOffset()}equals(I){return I.type==="system"}get isValid(){return!0}},nd={};function CY(G){return nd[G]||(nd[G]=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:G,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"})),nd[G]}var SY={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function DY(G,I){let l=G.format(I).replace(/\u200E/g,""),c=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(l),[,b,Z,d,W,a,m,V]=c;return[d,b,Z,W,a,m,V]}function KY(G,Line truncated
`||H.charAt(k)==="\r"&&H.charAt(k+1)!==`
`)&&(A++,x===0&&(x=k+1)),k--}var II=o+A,tI=p-x;return u[p]={line:II,lineStart:x},{offset:p,line:II+1,column:tI+1}}function y(H){if(!Y(H))throw new Error("not a parser: "+H)}function cI(H,p){return typeof H=="string"?H.charAt(p):H[p]}function dI(H){if(typeof H!="number")throw new Error("not a number: "+H)}function YI(H){if(typeof H!="function")throw new Error("not a function: "+H)}function hI(H){if(typeof H!="string")throw new Error("not a string: "+H)}var uI=2,Sl=3,xI=8,W2=5*xI,dl=4*xI,nl=" ";function a2(H,p){return new Array(p+1).join(H)}function z(H,p,u){var o=p-H.length;return o<=0?H:a2(u,o)+H}function VI(H,p,u,o){return{from:H-p>0?H-p:0,to:H+u>o?o:H+u}}function pI(H,p){var u,o,A,x,k,II=p.index,tI=II.offset,tl=1;if(tI===H.length)return"Got the end of the input";if(Q(H)){var al=tI-tI%xI,D2=tI-al,zl=VI(al,W2,dl+xI,H.length),K2=m(function(SI){return m(function(uG){return z(uG.toString(16),2,"0")},SI)},function(SI,uG){var QG=SI.length,Ac=[],vG=0;if(QG<=uG)return[SI.slice()];for(var JG=0;JG<QG;JG++)Ac[vG]||Ac.push([]),Ac[vG].push(SI[JG]),(JG+1)%uG==0&&vG++;return Ac}(H.slice(zl.from,zl.to).toJSON().data,xI));x=function(SI){return SI.from===0&&SI.to===1?{from:SI.from,to:SI.to}:{from:SI.from/xI,to:Math.floor(SI.to/xI)}}(zl),o=al/xI,u=3*D2,D2>=4&&(u+=1),tl=2,A=m(function(SI){return SI.length<=4?SI.join(" "):SI.slice(0,4).join(" ")+" "+SI.slice(4).join(" ")},K2),(k=(8*(x.to>0?x.to-1:x.to)).toString(16).length)<2&&(k=2)}else{var EG=H.split(/\r\n|[\n\r\u2028\u2029]/);u=II.column-1,o=II.line-1,x=VI(o,uI,Sl,EG.length),A=EG.slice(x.from,x.to),k=x.to.toString().length}var H4=o-x.from;return Q(H)&&(k=(8*(x.to>0?x.to-1:x.to)).toString(16).length)<2&&(k=2),a(function(SI,uG,QG){var Ac,vG=QG===H4,JG=vG?"> ":nl;return Ac=Q(H)?z((8*(x.from+QG)).toString(16),k,"0"):z((x.from+QG+1).toString(),k," "),[].concat(SI,[JG+Ac+" | "+uG],vG?[nl+a2(" ",k)+" | "+z("",u," ")+a2("^",tl)]:[])},[],A).join(`
`)}function Wl(H,p){return[`
`,"-- PARSING FAILED "+a2("-",50),`
`,pI(H,p),`
`,(u=p.expected,u.length===1?`Expected:
`+u[0]:`Expected one of the following:
`+u.join(", ")),`
`].join("");var u}function J2(H){return H.flags!==void 0?H.flags:[H.global?"g":"",H.ignoreCase?"i":"",H.multiline?"m":"",H.unicode?"u":"",H.sticky?"y":""].join("")}function Vc(){for(var H=[].slice.call(arguments),p=H.length,u=0;u<p;u+=1)y(H[u]);return Z(function(o,A){for(var x,k=new Array(p),II=0;II<p;II+=1){if(!(x=v(H[II]._(o,A),x)).status)return x;k[II]=x.value,A=x.index}return v(e(A,k),x)})}function S2(){var H=[].slice.call(arguments);if(H.length===0)throw new Error("seqMap needs at least one argument");var p=H.pop();return YI(p),Vc.apply(null,H).map(function(u){return p.apply(null,u)})}function Nc(){var H=[].slice.call(arguments),p=H.length;if(p===0)return ic("zero alternates");for(var u=0;u<p;u+=1)y(H[u]);return Z(function(o,A){for(var x,k=0;k<H.length;k+=1)if((x=v(H[k]._(o,A),x)).status)return x;return x})}function Cb(H,p){return pG(H,p).or(w2([]))}function pG(H,p){return y(H),y(p),S2(H,p.then(H).many(),function(u,o){return[u].concat(o)})}function oc(H){hI(H);var p="'"+H+"'";return Z(function(u,o){var A=o+H.length,x=u.slice(o,A);return x===H?e(A,x):w(o,p)})}function m2(H,p){(function(A){if(!(A instanceof RegExp))throw new Error("not a regexp: "+A);for(var x=J2(A),k=0;k<x.length;k++){var II=x.charAt(k);if(II!=="i"&&II!=="m"&&II!=="u"&&II!=="s")throw new Error('unsupported regexp flag "'+II+'": '+A)}})(H),arguments.length>=2?dI(p):p=0;var u=function(A){return RegExp("^(?:"+A.source+")",J2(A))}(H),o=""+H;return Z(function(A,x){var k=u.exec(A.slice(x));if(k){if(0<=p&&p<=k.length){var II=k[0],tI=k[p];return e(x+II.length,tI)}return w(x,"valid match group (0 to "+k.length+") in "+o)}return w(x,o)})}function w2(H){return Z(function(p,u){return e(u,H)})}function ic(H){return Z(function(p,u){return w(u,H)})}function sG(H){if(Y(H))return Z(function(p,u){var o=H._(p,u);return o.index=u,o.value="",o});if(typeof H=="string")return sG(oc(H));if(H instanceof RegExp)return sG(m2(H));throw new Error("not a string, regexp, or parser: "+H)}function Sb(H){return y(H),Z(function(p,u){var o=H._(p,u),A=p.slice(u,o.index);return o.status?w(u,'not "'+A+'"'):e(u,null)})}function Dl(H){return YI(H),Z(function(p,u){var o=cI(p,u);return u<p.length&&H(o)?e(u+1,o):w(u,"a character/byte matching "+H)})}function rc(H,p){arguments.length<2&&(p=H,H=void 0);var u=Z(function(o,A){return u._=p()._,u._(o,A)});return H?u.desc(H):u}function eG(){return ic("fantasy-land/empty")}d.parse=function(H){if(typeof H!="string"&&!Q(H))throw new Error(".parse must be called with a string or Buffer as its argument");var p,u=this.skip(tG)._(H,0);return p=u.status?{status:!0,value:u.value}:{status:!1,index:bI(H,u.furthest),expected:u.expected},delete T[H],p},d.tryParse=function(H){var p=this.parse(H);if(p.status)return p.value;var u=Wl(H,p),o=new Error(u);throw o.type="ParsimmonError",o.result=p,o},d.assert=function(H,p){return this.chain(function(u){return H(u)?w2(u):ic(p)})},d.or=function(H){return Nc(this,H)},d.trim=function(H){return this.wrap(H,H)},d.wrap=function(H,p){return S2(H,this,p,function(u,o){return o})},d.thru=function(H){return H(this)},d.then=function(H){return y(H),Vc(this,H).map(function(p){return p[1]})},d.many=function(){var H=this;return Z(function(p,u){for(var o=[],A=void 0;;){if(!(A=v(H._(p,u),A)).status)return v(e(u,o),A);if(u===A.index)throw new Error("infinite loop detected in .many() parser --- calling .many() on a parser which can accept zero characters is usually the cause");u=A.index,o.push(A.value)}})},d.tieWith=function(H){return hI(H),this.map(function(p){if(function(A){if(!t(A))throw new Error("not an array: "+A)}(p),p.length){hI(p[0]);for(var u=p[0],o=1;o<p.length;o++)hI(p[o]),u+=H+p[o];return u}return""})},d.tie=function(){return this.tieWith("")},d.times=function(H,p){var u=this;return arguments.length<2&&(p=H),dI(H),dI(p),Z(function(o,A){for(var x=[],k=void 0,II=void 0,tI=0;tI<H;tI+=1){if(II=v(k=u._(o,A),II),!k.status)return II;A=k.index,x.push(k.value)}for(;tI<p&&(II=v(k=u._(o,A),II),k.status);tI+=1)A=k.index,x.push(k.value);return v(e(A,x),II)})},d.result=function(H){return this.map(function(){return H})},d.atMost=function(H){return this.times(0,H)},d.atLeast=function(H){return S2(this.times(H),this.many(),function(p,u){return p.concat(u)})},d.map=function(H){YI(H);var p=this;return Z(function(u,o){var A=p._(u,o);return A.status?v(e(A.index,H(A.value)),A):A})},d.contramap=function(H){YI(H);var p=this;return Z(function(u,o){var A=p.parse(H(u.slice(o)));return A.status?e(o+u.length,A.value):A})},d.promap=function(H,p){return YI(H),YI(p),this.contramap(H).map(p)},d.skip=function(H){return Vc(this,H).map(function(p){return p[0]})},d.mark=function(){return S2(hc,this,hc,function(H,p,u){return{start:H,value:p,end:u}})},d.node=function(H){return S2(hc,this,hc,function(p,u,o){return{name:H,value:u,start:p,end:o}})},d.sepBy=function(H){return Cb(this,H)},d.sepBy1=function(H){return pG(this,H)},d.lookahead=function(H){return this.skip(sG(H))},d.notFollowedBy=function(H){return this.skip(Sb(H))},d.desc=function(H){t(H)||(H=[ Line truncated
`),Ba=oc(`\r
`),La=Nc(Ba,Ma,Ua).desc("newline"),Y4=Nc(La,tG);Z.all=Db,Z.alt=Nc,Z.any=j1,Z.cr=Ua,Z.createLanguage=function(H){var p={};for(var u in H)({}).hasOwnProperty.call(H,u)&&function(o){p[o]=rc(function(){return H[o](p)})}(u);return p},Z.crlf=Ba,Z.custom=function(H){return Z(H(e,w))},Z.digit=Kb,Z.digits=Ob,Z.empty=eG,Z.end=Y4,Z.eof=tG,Z.fail=ic,Z.formatError=Wl,Z.index=hc,Z.isParser=Y,Z.lazy=rc,Z.letter=V4,Z.letters=N4,Z.lf=Ma,Z.lookahead=sG,Z.makeFailure=w,Z.makeSuccess=e,Z.newline=La,Z.noneOf=function(H){return Dl(function(p){return H.indexOf(p)<0}).desc("none of '"+H+"'")},Z.notFollowedBy=Sb,Z.of=w2,Z.oneOf=function(H){for(var p=H.split(""),u=0;u<p.length;u++)p[u]="'"+p[u]+"'";return Dl(function(o){return H.indexOf(o)>=0}).desc(p)},Z.optWhitespace=h4,Z.Parser=Z,Z.range=function(H,p){return Dl(function(u){return H<=u&&u<=p}).desc(H+"-"+p)},Z.regex=m2,Z.regexp=m2,Z.sepBy=Cb,Z.sepBy1=pG,Z.seq=Vc,Z.seqMap=S2,Z.seqObj=function(){for(var H,p={},u=0,o=(H=arguments,Array.prototype.slice.call(H)),A=o.length,x=0;x<A;x+=1){var k=o[x];if(!Y(k)){if(t(k)&&k.length===2&&typeof k[0]=="string"&&Y(k[1])){var II=k[0];if(Object.prototype.hasOwnProperty.call(p,II))throw new Error("seqObj: duplicate key "+II);p[II]=!0,u++;continue}throw new Error("seqObj arguments must be parsers or [string, parser] array pairs.")}}if(u===0)throw new Error("seqObj expects at least one named parser, found zero");return Z(function(tI,tl){for(var al,D2={},zl=0;zl<A;zl+=1){var K2,EG;if(t(o[zl])?(K2=o[zl][0],EG=o[zl][1]):(K2=null,EG=o[zl]),!(al=v(EG._(tI,tl),al)).status)return al;K2&&(D2[K2]=al.value),tl=al.index}return v(e(tl,D2),al)})},Z.string=oc,Z.succeed=w2,Z.takeWhile=function(H){return YI(H),Z(function(p,u){for(var o=u;o<p.length&&H(cI(p,o));)o++;return e(o,p.slice(u,o))})},Z.test=Dl,Z.whitespace=F4,Z["fantasy-land/empty"]=eG,Z["fantasy-land/of"]=w2,Z.Binary={bitSeq:F,bitSeqObj:function(H){h();var p={},u=0,o=m(function(x){if(t(x)){var k=x;if(k.length!==2)throw new Error("["+k.join(", ")+"] should be length 2, got length "+k.length);if(hI(k[0]),dI(k[1]),Object.prototype.hasOwnProperty.call(p,k[0]))throw new Error("duplicate key in bitSeqObj: "+k[0]);return p[k[0]]=!0,u++,k}return dI(x),[null,x]},H);if(u<1)throw new Error("bitSeqObj expects at least one named pair, got ["+H.join(", ")+"]");var A=m(function(x){return x[0]},o);return F(m(function(x){return x[1]},o)).map(function(x){return a(function(k,II){return II[0]!==null&&(k[II[0]]=II[1]),k},{},m(function(k,II){return[k,x[II]]},A))})},byte:function(H){if(h(),dI(H),H>255)throw new Error("Value specified to byte constructor ("+H+"=0x"+H.toString(16)+") is larger in value than a single byte.");var p=(H>15?"0x":"0x0")+H.toString(16);return Z(function(u,o){var A=cI(u,o);return A===H?e(o+1,A):w(o,p)})},buffer:function(H){return R("buffer",H).map(function(p){return Buffer.from(p)})},encodedString:function(H,p){return R("string",p).map(function(u){return u.toString(H)})},uintBE:E,uint8BE:E(1),uint16BE:E(2),uint32BE:E(4),uintLE:s,uint8LE:s(1),uint16LE:s(2),uint32LE:s(4),intBE:J,int8BE:J(1),int16BE:J(2),int32BE:J(4),intLE:i,int8LE:i(1),int16LE:i(2),int32LE:i(4),floatBE:R("floatBE",4).map(function(H){return H.readFloatBE(0)}),floatLE:R("floatLE",4).map(function(H){return H.readFloatLE(0)}),doubleBE:R("doubleBE",8).map(function(H){return H.readDoubleBE(0)}),doubleLE:R("doubleLE",8).map(function(H){return H.readDoubleLE(0)})},l.exports=Z}])})})(Qd,Qd.exports);var n=Qd.exports,na=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26F9(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC3\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E- Line truncated
`)[0];let c=l.substring(2).trim();return n.makeSuccess(I+l.length,c)}),namedField:G=>n.alt(G.explicitNamedField,LR(e2.field).map(([I,l])=>vd.named(fR(l),I))),sortField:G=>n.seqMap(e2.field.skip(n.optWhitespace),n.regexp(/ASCENDING|DESCENDING|ASC|DESC/i).atMost(1),(I,l)=>{let c=l.length==0?"ascending":l[0].toLowerCase();return c=="desc"&&(c="descending"),c=="asc"&&(c="ascending"),{field:I,direction:c}}),headerClause:G=>G.queryType.chain(I=>{switch(I){case"table":return rN(()=>({type:I,fields:[],showId:!0}),n.seqMap(n.regexp(/WITHOUT\s+ID/i).skip(n.optWhitespace).atMost(1),n.sepBy(G.namedField,n.string(",").trim(n.optWhitespace)),(l,c)=>({type:I,fields:c,showId:l.length==0})));case"list":return rN(()=>({type:I,format:void 0,showId:!0}),n.seqMap(n.regexp(/WITHOUT\s+ID/i).skip(n.optWhitespace).atMost(1),e2.field.atMost(1),(l,c)=>({type:I,format:c.length==1?c[0]:void 0,showId:l.length==0})));case"task":return n.succeed({type:I});case"calendar":return n.whitespace.then(n.seqMap(G.namedField,l=>({type:I,showId:!0,field:l})));default:return n.fail(`Unrecognized query type '${I}'`)}}).desc("TABLE or LIST or TASK or CALENDAR"),fromClause:G=>n.seqMap(n.regexp(/FROM/i),n.whitespace,e2.source,(I,l,c)=>c),whereClause:G=>n.seqMap(n.regexp(/WHERE/i),n.whitespace,e2.field,(I,l,c)=>({type:"where",clause:c})).desc("WHERE <expression>"),sortByClause:G=>n.seqMap(n.regexp(/SORT/i),n.whitespace,G.sortField.sepBy1(n.string(",").trim(n.optWhitespace)),(I,l,c)=>({type:"sort",fields:c})).desc("SORT field [ASC/DESC]"),limitClause:G=>n.seqMap(n.regexp(/LIMIT/i),n.whitespace,e2.field,(I,l,c)=>({type:"limit",amount:c})).desc("LIMIT <value>"),flattenClause:G=>n.seqMap(n.regexp(/FLATTEN/i).skip(n.whitespace),G.namedField,(I,l)=>({type:"flatten",field:l})).desc("FLATTEN <value> [AS <name>]"),groupByClause:G=>n.seqMap(n.regexp(/GROUP BY/i).skip(n.whitespace),G.namedField,(I,l)=>({type:"group",field:l})).desc("GROUP BY <value> [AS <name>]"),clause:G=>n.alt(G.fromClause,G.whereClause,G.sortByClause,G.limitClause,G.groupByClause,G.flattenClause),query:G=>n.seqMap(G.headerClause.trim(C3),G.fromClause.trim(C3).atMost(1),G.clause.trim(C3).many(),(I,l,c)=>({header:I,source:l.length==0?f2.folder(""):l[0],operations:c,settings:Ra}))}),C3=n.alt(n.whitespace,r5.comment).many().map(G=>G.join("")),jR=G=>G?G.plugins.plugins.dataview?.api:window.DataviewAPI,TR=G=>G.plugins.enabledPlugins.has("dataview");j2.DATE_SHORTHANDS=aa;j2.DURATION_TYPES=Wa;j2.EXPRESSION=e2;j2.KEYWORDS=ma;j2.QUERY_LANGUAGE=r5;j2.getAPI=jR;j2.isPluginEnabled=TR;j2.parseField=BR});var zn={};t4(zn,{default:()=>nI});module.exports=E4(zn);var m4=require("obsidian");var Q2=require("obsidian");function Ql(){}function V2(G,I){for(let l in I)G[l]=I[l];return G}function VW(G){return G()}function Ta(){return Object.create(null)}function QI(G){G.forEach(VW)}function JI(G){return typeof G=="function"}function HI(G,I){return G!=G?I==I:G!==I||G&&typeof G=="object"||typeof G=="function"}function Ca(G){return Object.keys(G).length===0}function qb(G,I,l,c){if(G){let b=Sa(G,I,l,c);return G[0](b)}}function Sa(G,I,l,c){return G[1]&&c?V2(l.ctx.slice(),G[1](c(I))):l.ctx}function _b(G,I,l,c){if(G[2]&&c){let b=G[2](c(l));if(I.dirty===void 0)return b;if(typeof b=="object"){let Z=[],d=Math.max(I.dirty.length,b.length);for(let W=0;W<d;W+=1)Z[W]=I.dirty[W]|b[W];return Z}return I.dirty|b}return I.dirty}function $b(G,I,l,c,b,Z){if(b){let d=Sa(I,l,c,Z);G.p(d,b)}}function IZ(G){if(G.ctx.length>32){let I=[],l=G.ctx.length/32;for(let c=0;c<l;c++)I[c]=-1;return I}return-1}function lZ(G){let I={};for(let l in G)l[0]!=="$"&&(I[l]=G[l]);return I}function iG(G,I){let l={};I=new Set(I);for(let c in G)!I.has(c)&&c[0]!=="$"&&(l[c]=G[c]);return l}function cZ(G){return G&&JI(G.destroy)?G.destroy:Ql}var Da=typeof window<"u"?window:typeof globalThis<"u"?globalThis:global,S1=class{constructor(I){this.options=I,this._listeners="WeakMap"in Da?new WeakMap:void 0}observe(I,l){return this._listeners.set(I,l),this._getObserver().observe(I,this.options),()=>{this._listeners.delete(I),this._observer.unobserve(I)}}_getObserver(){var I;return(I=this._observer)!==null&&I!==void 0?I:this._observer=new ResizeObserver(l=>{var c;for(let b of l)S1.entries.set(b.target,b),(c=this._listeners.get(b.target))===null||c===void 0||c(b)})}};S1.entries="WeakMap"in Da?new WeakMap:void 0;var Ka=!1;function u4(){Ka=!0}function Q4(){Ka=!1}function g(G,I){G.appendChild(I)}function qI(G,I,l){let c=v4(G);if(!c.getElementById(I)){let b=M("style");b.id=I,b.textContent=l,J4(c,b)}}function v4(G){if(!G)return document;let I=G.getRootNode?G.getRootNode():G.ownerDocument;return I&&I.host?I:G.ownerDocument}function J4(G,I){return g(G.head||G,I),I.sheet}function O(G,I,l){G.insertBefore(I,l||null)}function K(G){G.parentNode&&G.parentNode.removeChild(G)}function O1(G,I){for(let l=0;l<G.length;l+=1)G[l]&&G[l].d(I)}function M(G){return document.createElement(G)}function zc(G){return document.createElementNS("http://www.w3.org/2000/svg",G)}function Xl(G){return document.creat Line truncated
<div class="qa-suggestion-content">
<span class="suggestion-main-text">${W}</span>
${m}
</div>
<span class="suggestion-sub-text">${a}</span>
`,this.addHoverTooltip(c,b)}addHoverTooltip(l,c){let b,Z=()=>{clearTimeout(b),document.querySelector(".qa-file-tooltip")?.remove()};l.addEventListener("mouseenter",()=>{Z(),b=setTimeout(async()=>{let W=this.createTooltip(c);W&&(document.body.appendChild(W),this.positionTooltip(W,l))},200)}),l.addEventListener("mouseleave",Z),l.addEventListener("blur",Z);let d=()=>Z();document.addEventListener("scroll",d,{passive:!0}),l._tooltipCleanup=()=>{Z(),document.removeEventListener("scroll",d)}}createTooltip(l){let c=this.app.vault.getAbstractFileByPath(l.path);if(!c||!(c instanceof v3.TFile))return null;let b=document.createElement("div");return b.className="qa-file-tooltip",b.innerHTML=`
<div class="qa-tooltip-header">${c.basename}</div>
<div class="qa-tooltip-content">
<div>Path: ${c.path}</div>
<div>Modified: ${new Date(c.stat.mtime).toLocaleDateString()}</div>
</div>
`,b}positionTooltip(l,c){let b=c.getBoundingClientRect();l.style.position="fixed",l.style.left=`${b.right+10}px`,l.style.top=`${b.top}px`,l.style.zIndex="1000"}close(){document.querySelectorAll(".qaFileSuggestionItem").forEach(b=>{b._tooltipCleanup&&b._tooltipCleanup()}),document.querySelectorAll(".qa-file-tooltip").forEach(b=>b.remove()),super.close()}async selectSuggestion(l){if(this.inputEl.selectionStart===null)return;let c=this.inputEl.selectionStart,b=this.lastInput.length,Z=this.inputEl.value,d=0,W=this.inputEl.value.slice(c-this.lastInput.length-3,c-this.lastInput.length)==="![[";if(l.matchType==="unresolved")d=this.makeLinkManually(Z,l.displayText.replace(/.md$/,""),c,b);else if(l.matchType==="heading"||l.matchType==="block"){let a=l.displayText;d=this.makeLinkManually(Z,a,c,b)}else if(W)d=this.makeLinkManually(Z,l.displayText,c,b);else{let a=this.app.vault.getAbstractFileByPath(l.file.path);if(a instanceof v3.TFile){let m=l.matchType==="alias"?l.displayText:void 0;d=this.makeLinkObsidianMethod(a,Z,c,b,m)}else d=this.makeLinkManually(Z,l.displayText,c,b)}this.inputEl.trigger("input"),this.close(),this.inputEl.setSelectionRange(d,d)}makeLinkObsidianMethod(l,c,b,Z,d){let W=this.app.vault.getAbstractFileByPath(l.path),a=this.app.fileManager.generateMarkdownLink(W,"","",d??"");return this.inputEl.value=this.getNewInputValueForFileLink(c,a,b,Z),b-Z+a.length+2}makeLinkManually(l,c,b,Z){return this.inputEl.value=this.getNewInputValueForFileName(l,c,b,Z),b-Z+c.length+2}getNewInputValueForFileLink(l,c,b,Z){return`${l.substr(0,b-Z-2)}${c}${l.substr(b)}`}getNewInputValueForFileName(l,c,b,Z){return`${l.substr(0,b-Z)}${c}]]${l.substr(b)}`}};var b1=class extends yl{constructor(l,c){super(l,c);this.app=l;this.inputEl=c;this.lastInput="";this.lastInputStart=0;this.refreshTagIndex(),nI.instance.registerEvent(this.app.metadataCache.on("resolved",()=>this.refreshTagIndex()))}refreshTagIndex(){let l=this.app.metadataCache.getTags(),c=Object.keys(l);this.tagSet=new Set(c),this.sortedTags=c.sort((b,Z)=>b.length!==Z.length?b.length-Z.length:b.localeCompare(Z)),this.fuse=new ol(this.sortedTags,{threshold:.4,includeScore:!0,keys:[""]})}getSuggestions(l){if(this.inputEl.selectionStart===null)return[];let c=this.inputEl.selectionStart,b=l.slice(0,c),Z=Pm.exec(b);if(!Z)return[];let d=b.lastIndexOf("[[");if(d!==-1&&d<Z.index)return[];let W=Z[1];this.lastInput=W,this.lastInputStart=Z.index+1;let a=this.sortedTags.filter(h=>h.toLowerCase().startsWith(W.toLowerCase())).slice(0,5),m=this.fuse.search(W).filter(h=>h.score<.8).map(h=>h.item).slice(0,10),V=new Set(a),N=[...a];for(let h of m)!V.has(h)&&N.length<15&&(N.push(h),V.add(h));return N}renderSuggestion(l,c){let b=this.renderMatch(l,this.lastInput);c.innerHTML=b}selectSuggestion(l){if(this.inputEl.selectionStart===null)return;let c=this.inputEl.selectionStart,b=this.lastInputStart,Z=c;wZ(this.inputEl,b,Z,l),this.close()}};var vI=class extends Z1.Modal{constructor(l,c,b,Z){super(l);this.header=c;this.didSubmit=!1;this.submitClickCallback=l=>this.submit();this.cancelClickCallback=l=>this.cancel();this.submitEnterCallback=l=>{!l.isComposing&&l.key==="Enter"&&(l.preventDefault(),this.submit())};this.placeholder=b??"",this.input=Z??"",this.waitForClose=new Promise((d,W)=>{this.resolvePromise=d,this.rejectPromise=W}),this.display(),this.open(),this.fileSuggester=new G1(l,this.inputComponent.inputEl),this.tagSuggester=new b1(l,this.inputComponent.inputEl)}static Prompt(l,c,b,Z){return new vI(l,c,b,Z).waitForClose}display(){this.containerEl.addClass("quickAddModal","qaInputPrompt"),this.contentEl.empty(),this.titleEl.textContent=this.header;let l=this.contentEl.createDiv();this.inputComponent=this.createInputField(l,this.placeholder,this.input),this.createButtonBar(l)}createInputField(l,c,b){let Z=new Z1.TextComponent(l);return Z.inputEl.style.width="100%",Z.setPlaceholder(c??"").setValue(b??"").onChange(d=>this.input=d).inputEl.addEventListener("keydown",this.submitEnterCallback),Z}createButton(l,c,b){let Z=new Z1.ButtonComponent(l);return Z.setButtonText(c).onClick(b),Z}createButtonBar(l){let c=l.createDiv();this.createButton(c,"Ok",this.submitClickCallback).setCta().buttonEl.style.marginRight="0",this.createButton(c,"Cancel",this.cancelClickCallback),c.style.display="flex",c.style.flexDirection="row-reverse",c.style.justifyContent="flex-start",c.style.marginTop="1rem",c.style.gap="0.5rem"}submit(){this.didSubmit=!0,this.close()}cancel(){this.close()}resolveInput(){this.didSubmit?this.resolvePromise(this.input):this.rejectPromise("No input given.")}removeInputListener(){this.inputComponent.inputEl.removeEventListener("keydown",this.submitEnterCallback)}onOpen(){super.onOpen(),this.inputComponent.inputEl.focus(),this.inputComponent.inputEl.select()}onClose(){super.onClose(),this.resolveInput(),this.removeInputListener()}};var d1=class{register(I){return d1.loggers.push(I),this}logError(I){let l=I instanceof Error?I.message:I,c=I instanceof Error?I.stack:void 0,b=I instanceof Error? Line truncated
})`)(c,Z,b);let a=b.default||Z.exports;if(!a)return;let m=a,{memberAccess:V}=eb(G.name);if(V&&V.length>0){let N;for(;N=V.shift();)m=m[N]}return m}}function wV(G,I){let l=structuredClone(G);for(let c of I)delete l[c];return l}function yV(G){let I=Z=>Z.type==="Template",l=Z=>Z.type==="Macro",c=Z=>Z.type==="Capture",b=Z=>Z.type==="Multi";return I(G)||l(G)||c(G)||b(G)}function oV(G,I){let l=G.vault.getAbstractFileByPath(I);return!!l&&l instanceof lc.TFolder}function m1(G,I){return G.vault.getMarkdownFiles().filter(l=>l.path.startsWith(I))}function mY(G){let I=G.frontmatter;if(!I)return[];let l=Object.entries(I);if(!l.length)return[];let c=l.filter(([Z,d])=>{let W=Z.toLowerCase();return W==="tags"||W==="tag"});return c?c.flatMap(([Z,d])=>{if(typeof d=="string")return d.split(/,|\s+/).map(W=>W.trim());if(Array.isArray(d))return d}).filter(Z=>!!Z):[]}function VY(G,I){let l=G.metadataCache.getFileCache(I);if(!l)return[];let c=[];return l.frontmatter&&c.push(...mY(l)),l.tags&&Array.isArray(l.tags)&&c.push(...l.tags.map(b=>b.tag.replace(/^\#/,""))),c}function iV(G,I){let l=I.replace(/^\#/,"");return G.vault.getMarkdownFiles().filter(c=>VY(G,c).includes(l))}var tc=class{constructor(){this.variables=new Map}replacer(I,l,c){return I.replace(l,function(){return c})}replaceDateInString(I){let l=I;for(;AZ.test(l);){let c=AZ.exec(l),b;if(c&&c[1]){let Z=c[1].replace("+","").trim();Z3.test(Z)&&(b=parseInt(Z))}l=this.replacer(l,AZ,cc({offset:b}))}for(;OG.test(l);){let c=OG.exec(l);if(!c)throw new Error(`Unable to parse date format. Invalid syntax in: "${l.substring(Math.max(0,l.search(OG)-10),Math.min(l.length,l.search(OG)+30))}..."`);let b=c[1],Z;if(c[2]){let d=c[2].replace("+","").trim();Z3.test(d)&&(Z=parseInt(d))}l=this.replacer(l,OG,cc({format:b,offset:Z}))}return l}replaceTimeInString(I){let l=I;for(;PG.test(l);){if(!PG.exec(l))throw new Error(`Unable to parse time format. Invalid syntax in: "${l.substring(Math.max(0,l.search(PG)-10),Math.min(l.length,l.search(PG)+30))}..."`);l=this.replacer(l,PG,cc({format:"HH:mm"}))}for(;qG.test(l);){let c=qG.exec(l);if(!c)throw new Error(`Unable to parse formatted time. Invalid syntax in: "${l.substring(Math.max(0,l.search(qG)-10),Math.min(l.length,l.search(qG)+30))}..."`);let b=c[1];l=this.replacer(l,qG,cc({format:b}))}return l}async replaceValueInString(I){let l=I;for(this.variables.has("value")&&(this.value=this.variables.get("value"));d3.test(l);)this.value||(this.value=await this.promptForValue()),l=this.replacer(l,d3,this.value);return l}async replaceSelectedInString(I){let l=I,c=await this.getSelectedText();for(;a3.test(l);)l=this.replacer(l,a3,c);return l}async replaceLinkToCurrentFileInString(I){let l=this.getCurrentFileLink(),c=I;if(!l&&gZ.test(c))throw new Error("Unable to get current file path. Make sure you have a file open in the editor.");if(!l)return c;for(;gZ.test(c);)c=this.replacer(c,gZ,l);return c}async replaceVariableInString(I){let l=I;for(;_G.test(l);){let c=_G.exec(l);if(!c)throw new Error(`Unable to parse variable. Invalid syntax in: "${l.substring(Math.max(0,l.search(_G)-10),Math.min(l.length,l.search(_G)+30))}..."`);let b=c[1],Z="";if(b){let d=b.indexOf("|");if(d!==-1&&(Z=b.substring(d+1).trim(),b=b.substring(0,d).trim()),!this.getVariableValue(b)){let W=b.split(","),a="";W.length===1?a=await this.promptForVariable(b):a=await this.suggestForValue(W),!a&&Z&&(a=Z),this.variables.set(b,a)}l=this.replacer(l,_G,this.getVariableValue(b))}else break}return l}async replaceFieldVarInString(I){let l=I;for(;$G.test(l);){let c=$G.exec(l);if(!c)throw new Error(`Unable to parse field variable. Invalid syntax in: "${l.substring(Math.max(0,l.search($G)-10),Math.min(l.length,l.search($G)+30))}..."`);let b=c[1]+(c[2]||"");if(b)this.getVariableValue(b)||this.variables.set(b,await this.suggestForField(b)),l=this.replacer(l,$G,this.getVariableValue(b));else break}return l}async replaceMathValueInString(I){let l=I;for(;W3.test(l);){let c=await this.promptForMathValue();l=this.replacer(l,W3,c)}return l}async replaceMacrosInString(I){let l=I;for(;zZ.test(l);){let c=zZ.exec(l);if(!c||!c[1])continue;let b=c[1],Z=await this.getMacroValue(b);l=this.replacer(l,zZ,Z?Z.toString():"")}return l}async replaceDateVariableInString(I){let l=I;for(;lG.test(l);){let c=lG.exec(l);if(!c||!c[1]||!c[2])break;let b=c[1].trim(),Z=c[2].trim();if(!b||!Z)break;if(b&&Z){if(!this.variables.get(b)){let m=await this.promptForVariable(b);this.variables.set(b,m);let V=this.getNaturalLanguageDates();if(!V||!V.parseDate||typeof V.parseDate!="function")throw new Error(`VDATE variable "${b}" requires the Natural Language Dates plugin to be installed and enabled.`);let N=V.parseDate(m);if(N)this.variables.set(b,`@date:${N.moment.toISOString()}`);else throw new Error(`unable to parse date variable ${m}`)}let W="",a=this.variables.get(b);if(a&&a.startsWith("@date:")){let m=a.substring(6),V=this.getNaturalLanguageDates();if(V&&V.parseDate&&typeof V.parseDate=="function"){let N=window.moment(m);N&&N.isValid()&&(W=N.for Line truncated
`,c++):Z=="\\"?(l+="\\",c++):l+="\\":l+=b}return l}};var NY={title:"My Document Title",name:"Document Name",project:"Project Alpha",category:"Notes",author:"Your Name",status:"Draft",priority:"High",tag:"important",type:"meeting",client:"Acme Corp"},hY={clipboard:"clipboard_content",date:"formatted_date",time:"current_time",random:"random_value",uuid:"unique_id"},FY=[{pattern:/date|time/i,example:"2024-01-15"},{pattern:/title|name/i,example:"Example Title"},{pattern:/tag/i,example:"important"},{pattern:/category|type/i,example:"Notes"},{pattern:/author|user/i,example:"Your Name"},{pattern:/project/i,example:"Project Alpha"},{pattern:/status/i,example:"In Progress"},{pattern:/priority/i,example:"High"},{pattern:/number|count|id/i,example:"001"}];function DZ(G){let I=G.toLowerCase(),l=NY[I];return l||`${G}_example`}function KZ(G){return hY[G.toLowerCase()]||`${G}_output`}function OZ(G){for(let{pattern:I,example:l}of FY)if(I.test(G))return l;return`${G}_value`}function PZ(G){return G.length>0?`${G[0]} (${G.length} options)`:"suggestion_list"}function qZ(G){return G?.path?G.basename:"current_file"}var z2=class{static generate(I,l=new Date){let c=l.getFullYear(),b=(l.getMonth()+1).toString().padStart(2,"0"),Z=l.getDate().toString().padStart(2,"0"),d=l.getHours().toString().padStart(2,"0"),W=l.getMinutes().toString().padStart(2,"0"),a=l.getSeconds().toString().padStart(2,"0");return I.replace(/YYYY/g,c.toString()).replace(/YY/g,c.toString().slice(-2)).replace(/MMMM/g,this.MONTH_NAMES[l.getMonth()]).replace(/MMM/g,this.MONTH_NAMES_SHORT[l.getMonth()]).replace(/MM/g,b).replace(/M/g,(l.getMonth()+1).toString()).replace(/dddd/g,this.DAY_NAMES[l.getDay()]).replace(/ddd/g,this.DAY_NAMES_SHORT[l.getDay()]).replace(/DD/g,Z).replace(/D/g,l.getDate().toString()).replace(/HH/g,d).replace(/H/g,l.getHours().toString()).replace(/mm/g,W).replace(/m/g,l.getMinutes().toString()).replace(/ss/g,a).replace(/s/g,l.getSeconds().toString()).replace(/ww/g,this.getWeekNumber(l).toString().padStart(2,"0")).replace(/w/g,this.getWeekNumber(l).toString())}static getWeekNumber(I){let l=new Date(I.getFullYear(),0,1),c=(I.getTime()-l.getTime())/864e5;return Math.ceil((c+l.getDay()+1)/7)}};z2.MONTH_NAMES=["January","February","March","April","May","June","July","August","September","October","November","December"],z2.MONTH_NAMES_SHORT=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],z2.DAY_NAMES=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],z2.DAY_NAMES_SHORT=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];var V1=class extends tc{constructor(l){super();this.app=l}async format(l){let c=l;try{c=await this.replaceMacrosInString(c),c=this.replaceDateInString(c),c=this.replaceTimeInString(c),c=await this.replaceValueInString(c),c=await this.replaceDateVariableInString(c),c=await this.replaceVariableInString(c),c=await this.replaceFieldVarInString(c)}catch{return l}return`Preview: ${c}`}promptForValue(l){return l||"user input"}getVariableValue(l){return DZ(l)}getCurrentFileLink(){return qZ(this.app.workspace.getActiveFile())}getNaturalLanguageDates(){return g2(this.app)}suggestForValue(l){return PZ(l)}promptForMathValue(){return Promise.resolve("calculation_result")}getMacroValue(l){return KZ(l)}async promptForVariable(l){return OZ(l)}async getTemplateContent(l){return`[${l.split("/").pop()?.replace(".md","")||l} template content...]`}async getSelectedText(){return"selected_text"}suggestForField(l){return`${l}_field_value`}async replaceDateVariableInString(l){let c=l;return c=c.replace(new RegExp(lG.source,"gi"),(b,Z,d)=>{let W=Z?.trim(),a=d?.trim();if(!W||!a)return b;let m=new Date,V;try{V=z2.generate(a,m)}catch{V=`[${a}]`}return V}),c}};var ul=class extends yl{constructor(l,c,b,Z=!1){super(l,c);this.app=l;this.inputEl=c;this.plugin=b;this.suggestForFileNames=Z;this.lastInput="";this.lastInputStart=0;this.tokenDefinitions=[{regex:_m,token:1,suggestion:"{{DATE:}}",cursorOffset:2},{regex:qm,token:0,suggestion:G3},{regex:aV,token:10,suggestion:jm},{regex:$m,token:4,suggestion:b3},{regex:IV,token:3,suggestion:IG},{regex:dV,token:9,suggestion:Tm},{regex:WV,token:11,suggestion:Sm},{regex:lV,token:5,suggestion:"{{VALUE:}}",cursorOffset:2},{regex:cV,token:2,suggestion:"{{VDATE:}}",cursorOffset:2}];this.contextualTokens=[{regex:GV,token:6,suggestion:Cm},{regex:bV,token:8,suggestion:"{{TEMPLATE:"},{regex:ZV,token:7,suggestion:"{{MACRO:"}];this.macroNames=this.plugin.settings.macros.map(d=>d.name),this.templatePaths=this.plugin.getTemplateFiles().map(d=>d.path)}async getSuggestions(l){if(this.inputEl.selectionStart===null)return[];let c=this.inputEl.selectionStart,b=l.lastIndexOf("{{",c-1);if(b===-1)return[];let Z=l.slice(b,c);if(Z.includes("}}"))return[];if(Z.includes(":"))return[];let d=[],W=[...this.tokenDefinitions,...this.suggestForFileNames?[]:this.contextualTokens];for(let a of W){let m=a.regex.exec(Z);m&&m.index+m[0].length===Z.length&&(this.lastInput=m[0],this.lastInputType=a.token,this.lastInputStart=c- Line truncated
`).filter(Boolean).reduce((c,b)=>{let[Z,d,...W]=b.split(" "),a=Number.parseInt(d,10);return W.forEach((m,V)=>c[m]=a+V),c},{});for(let[c,b]of Object.entries(l)){let Z=MV.default.toByteArray(c);this.rankMap.set(Z.join(","),b),this.textMap.set(b,Z)}this.specialTokens={...G.special_tokens,...I},this.inverseSpecialTokens=Object.entries(this.specialTokens).reduce((c,[b,Z])=>(c[Z]=this.textEncoder.encode(b),c),{})}encode(G,I=[],l="all"){let c=new RegExp(this.patStr,"ug"),b=i3.specialTokenRegex(Object.keys(this.specialTokens)),Z=[],d=new Set(I==="all"?Object.keys(this.specialTokens):I),W=new Set(l==="all"?Object.keys(this.specialTokens).filter(m=>!d.has(m)):l);if(W.size>0){let m=i3.specialTokenRegex([...W]),V=G.match(m);if(V!=null)throw new Error(`The text contains a special token that is not allowed: ${V[0]}`)}let a=0;for(;;){let m=null,V=a;for(;b.lastIndex=V,m=b.exec(G),!(m==null||d.has(m[0]));)V=m.index+1;let N=m?.index??G.length;for(let F of G.substring(a,N).matchAll(c)){let R=this.textEncoder.encode(F[0]),X=this.rankMap.get(R.join(","));if(X!=null){Z.push(X);continue}Z.push(...QY(R,this.rankMap))}if(m==null)break;let h=this.specialTokens[m[0]];Z.push(h),a=m.index+m[0].length}return Z}decode(G){let I=[],l=0;for(let Z=0;Z<G.length;++Z){let d=G[Z],W=this.textMap.get(d)??this.inverseSpecialTokens[d];W!=null&&(I.push(W),l+=W.length)}let c=new Uint8Array(l),b=0;for(let Z of I)c.set(Z,b),b+=Z.length;return this.textDecoder.decode(c)}},Ec=i3;EY(Ec,"specialTokenRegex",G=>new RegExp(G.map(I=>vY(I)).join("|"),"g"));function r3(G){switch(G){case"gpt2":return"gpt2";case"code-cushman-001":case"code-cushman-002":case"code-davinci-001":case"code-davinci-002":case"cushman-codex":case"davinci-codex":case"davinci-002":case"text-davinci-002":case"text-davinci-003":return"p50k_base";case"code-davinci-edit-001":case"text-davinci-edit-001":return"p50k_edit";case"ada":case"babbage":case"babbage-002":case"code-search-ada-code-001":case"code-search-babbage-code-001":case"curie":case"davinci":case"text-ada-001":case"text-babbage-001":case"text-curie-001":case"text-davinci-001":case"text-search-ada-doc-001":case"text-search-babbage-doc-001":case"text-search-curie-doc-001":case"text-search-davinci-doc-001":case"text-similarity-ada-001":case"text-similarity-babbage-001":case"text-similarity-curie-001":case"text-similarity-davinci-001":return"r50k_base";case"gpt-3.5-turbo-instruct-0914":case"gpt-3.5-turbo-instruct":case"gpt-3.5-turbo-16k-0613":case"gpt-3.5-turbo-16k":case"gpt-3.5-turbo-0613":case"gpt-3.5-turbo-0301":case"gpt-3.5-turbo":case"gpt-4-32k-0613":case"gpt-4-32k-0314":case"gpt-4-32k":case"gpt-4-0613":case"gpt-4-0314":case"gpt-4":case"gpt-3.5-turbo-1106":case"gpt-35-turbo":case"gpt-4-1106-preview":case"gpt-4-vision-preview":case"gpt-3.5-turbo-0125":case"gpt-4-turbo":case"gpt-4-turbo-2024-04-09":case"gpt-4-turbo-preview":case"gpt-4-0125-preview":case"text-embedding-ada-002":return"cl100k_base";default:throw new Error("Unknown model")}}var JY={explicit_n_vocab:50257,pat_str:"'s|'t|'re|'ve|'m|'ll|'d| ?\\p{L}+| ?\\p{N}+| ?[^\\s\\p{L}\\p{N}]+|\\s+(?!\\S)|\\s+",special_tokens:{"<|endoftext|>":50256},bpe_ranks:"! 0 IQ== Ig== Iw== JA== JQ== Jg== Jw== KA== KQ== Kg== Kw== LA== LQ== Lg== Lw== MA== MQ== Mg== Mw== NA== NQ== Ng== Nw== OA== OQ== Og== Ow== PA== PQ== Pg== Pw== QA== QQ== Qg== Qw== RA== RQ== Rg== Rw== SA== SQ== Sg== Sw== TA== TQ== Tg== Tw== UA== UQ== Ug== Uw== VA== VQ== Vg== Vw== WA== WQ== Wg== Ww== XA== XQ== Xg== Xw== YA== YQ== Yg== Yw== ZA== ZQ== Zg== Zw== aA== aQ== ag== aw== bA== bQ== bg== bw== cA== cQ== cg== cw== dA== dQ== dg== dw== eA== eQ== eg== ew== fA== fQ== fg== oQ== og== ow== pA== pQ== pg== pw== qA== qQ== qg== qw== rA== rg== rw== sA== sQ== sg== sw== tA== tQ== tg== tw== uA== uQ== ug== uw== vA== vQ== vg== vw== wA== wQ== wg== ww== xA== xQ== xg== xw== yA== yQ== yg== yw== zA== zQ== zg== zw== 0A== 0Q== 0g== 0w== 1A== 1Q== 1g== 1w== 2A== 2Q== 2g== 2w== 3A== 3Q== 3g== 3w== 4A== 4Q== 4g== 4w== 5A== 5Q== 5g== 5w== 6A== 6Q== 6g== 6w== 7A== 7Q== 7g== 7w== 8A== 8Q== 8g== 8w== 9A== 9Q== 9g== 9w== +A== +Q== +g== +w== /A== /Q== /g== /w== AA== AQ== Ag== Aw== BA== BQ== Bg== Bw== CA== CQ== Cg== Cw== DA== DQ== Dg== Dw== EA== EQ== Eg== Ew== FA== FQ== Fg== Fw== GA== GQ== Gg== Gw== HA== HQ== Hg== Hw== IA== fw== gA== gQ== gg== gw== hA== hQ== hg== hw== iA== iQ== ig== iw== jA== jQ== jg== jw== kA== kQ== kg== kw== lA== lQ== lg== lw== mA== mQ== mg== mw== nA== nQ== ng== nw== oA== rQ== IHQ= IGE= aGU= aW4= cmU= b24= IHRoZQ== ZXI= IHM= YXQ= IHc= IG8= ZW4= IGM= aXQ= aXM= YW4= b3I= ZXM= IGI= ZWQ= IGY= aW5n IHA= b3U= IGFu YWw= YXI= IHRv IG0= IG9m IGlu IGQ= IGg= IGFuZA== aWM= YXM= bGU= IHRo aW9u b20= bGw= ZW50 IG4= IGw= c3Q= IHJl dmU= IGU= cm8= bHk= IGJl IGc= IFQ= Y3Q= IFM= aWQ= b3Q= IEk= dXQ= ZXQ= IEE= IGlz IG9u aW0= YW0= b3c= YXk= YWQ= c2U= IHRoYXQ= IEM= aWc= IGZvcg== YWM= IHk= dmVy dXI= IHU= bGQ= IHN0 IE0= J3M= IGhl IGl0 YXRpb24= aXRo aXI= Y2U= IHlvdQ== aWw= IEI= IHdo b2w= IFA= IHdpdGg= IDE= dGVy Y2g= IGFz IHdl ICg= bmQ= aWxs IEQ= aWY= IDI= YWc= ZXJz a2U= I Line truncated
! 50257 ICA= ICAg ICAgIA== ICAgICA= ICAgICAg ICAgICAgIA== ICAgICAgICA= ICAgICAgICAg ICAgICAgICAgIA== ICAgICAgICAgICA= ICAgICAgICAgICAg ICAgICAgICAgICAgIA== ICAgICAgICAgICAgICA= ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIA== ICAgICAgICAgICAgICAgICA= ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIA== ICAgICAgICAgICAgICAgICAgICA= ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIA== ICAgICAgICAgICAgICAgICAgICAgICA= ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIA==`},yY={pat_str:"'s|'t|'re|'ve|'m|'ll|'d| ?\\p{L}+| ?\\p{N}+| ?[^\\s\\p{L}\\p{N}]+|\\s+(?!\\S)|\\s+",special_tokens:{"<|endoftext|>":50256,"<|fim_prefix|>":50281,"<|fim_middle|>":50282,"<|fim_suffix|>":50283},bpe_ranks:`! 0 IQ== Ig== Iw== JA== JQ== Jg== Jw== KA== KQ== Kg== Kw== LA== LQ== Lg== Lw== MA== MQ== Mg== Mw== NA== NQ== Ng== Nw== OA== OQ== Og== Ow== PA== PQ== Pg== Pw== QA== QQ== Qg== Qw== RA== RQ== Rg== Rw== SA== SQ== Sg== Sw== TA== TQ== Tg== Tw== UA== UQ== Ug== Uw== VA== VQ== Vg== Vw== WA== WQ== Wg== Ww== XA== XQ== Xg== Xw== YA== YQ== Yg== Yw== ZA== ZQ== Zg== Zw== aA== aQ== ag== aw== bA== bQ== bg== bw== cA== cQ== cg== cw== dA== dQ== dg== dw== eA== eQ== eg== ew== fA== fQ== fg== oQ== og== ow== pA== pQ== pg== pw== qA== qQ== qg== qw== rA== rg== rw== sA== sQ== sg== sw== tA== tQ== tg== tw== uA== uQ== ug== uw== vA== vQ== vg== vw== wA== wQ== wg== ww== xA== xQ== xg== xw== yA== yQ== yg== yw== zA== zQ== zg== zw== 0A== 0Q== 0g== 0w== 1A== 1Q== 1g== 1w== 2A== 2Q== 2g== 2w== 3A== 3Q== 3g== 3w== 4A== 4Q== 4g== 4w== 5A== 5Q== 5g== 5w== 6A== 6Q== 6g== 6w== 7A== 7Q== 7g== 7w== 8A== 8Q== 8g== 8w== 9A== 9Q== 9g== 9w== +A== +Q== +g== +w== /A== /Q== /g== /w== AA== AQ== Ag== Aw== BA== BQ== Bg== Bw== CA== CQ== Cg== Cw== DA== DQ== Dg== Dw== EA== EQ== Eg== Ew== FA== FQ== Fg== Fw== GA== GQ== Gg== Gw== HA== HQ== Hg== Hw== IA== fw== gA== gQ== gg== gw== hA== hQ== hg== hw== iA== iQ== ig== iw== jA== jQ== jg== jw== kA== kQ== kg== kw== lA== lQ== lg== lw== mA== mQ== mg== mw== nA== nQ== ng== nw== oA== rQ== IHQ= IGE= aGU= aW4= cmU= b24= IHRoZQ== ZXI= IHM= YXQ= IHc= IG8= ZW4= IGM= aXQ= aXM= YW4= b3I= ZXM= IGI= ZWQ= IGY= aW5n IHA= b3U= IGFu YWw= YXI= IHRv IG0= IG9m IGlu IGQ= IGg= IGFuZA== aWM= YXM= bGU= IHRo aW9u b20= bGw= ZW50 IG4= IGw= c3Q= IHJl dmU= IGU= cm8= bHk= IGJl IGc= IFQ= Y3Q= IFM= aWQ= b3Q= IEk= dXQ= ZXQ= IEE= IGlz IG9u aW0= YW0= b3c= YXk= YWQ= c2U= IHRoYXQ= IEM= aWc= IGZvcg== YWM= IHk= dmVy dXI= IHU= bGQ= IHN0 IE0= J3M= IGhl IGl0 YXRpb24= aXRo aXI= Y2U= IHlvdQ== aWw= IEI= IHdo b2w= IFA= IHdpdGg= IDE= dGVy Y2g= IGFz IHdl ICg= bmQ= aWxs IEQ= aWY= IDI= YWc= ZXJz a2U= ICI= IEg= ZW0= IGNvbg== IFc= IFI= aGVy IHdhcw== IHI= b2Q= IEY= dWw= YXRl IGF0 cmk= cHA= b3Jl IFRoZQ== IHNl dXM= IHBybw== IGhh dW0= IGFyZQ== IGRl YWlu YW5k IG9y aWdo ZXN0 aXN0 YWI= cm9t IE4= dGg= IGNvbQ== IEc= dW4= b3A= MDA= IEw= IG5vdA== ZXNz IGV4 IHY= cmVz IEU= ZXc= aXR5 YW50 IGJ5 ZWw= b3M= b3J0 b2M= cXU= IGZyb20= IGhhdmU= IHN1 aXZl b3VsZA== IHNo IHRoaXM= bnQ= cmE= cGU= aWdodA== YXJ0 bWVudA== IGFs dXN0 ZW5k LS0= YWxs IE8= YWNr IGNo IGxl aWVz cmVk YXJk 4oA= b3V0 IEo= IGFi ZWFy aXY= YWxseQ== b3Vy b3N0 Z2g= cHQ= IHBs YXN0 IGNhbg== YWs= b21l dWQ= VGhl IGhpcw== IGRv IGdv IGhhcw== Z2U= J3Q= IFU= cm91 IHNh IGo= IGJ1dA== IHdvcg== IGFsbA== ZWN0 IGs= YW1l IHdpbGw= b2s= IHdoZQ== IHRoZXk= aWRl MDE= ZmY= aWNo cGw= dGhlcg== IHRy Li4= IGludA== aWU= dXJl YWdl IG5l aWFs YXA= aW5l aWNl IG1l IG91dA== YW5z b25l b25n aW9ucw== IHdobw== IEs= IHVw IHRoZWly IGFk IDM= IHVz YXRlZA== b3Vz IG1vcmU= dWU= b2c= IFN0 aW5k aWtl IHNv aW1l cGVy LiI= YmVy aXo= YWN0 IG9uZQ== IHNhaWQ= IC0= YXJl IHlvdXI= Y2M= IFRo IGNs ZXA= YWtl YWJsZQ== aXA= IGNvbnQ= IHdoaWNo aWE= IGlt IGFib3V0 IHdlcmU= dmVyeQ== dWI= IGhhZA== IGVu IGNvbXA= LCI= IElu IHVu IGFn aXJl YWNl YXU= YXJ5 IHdvdWxk YXNz cnk= IOKA Y2w= b29r ZXJl c28= IFY= aWdu aWI= IG9mZg== IHRl dmVu IFk= aWxl b3Nl aXRl b3Jt IDIwMQ== IHJlcw== IG1hbg== IHBlcg== IG90aGVy b3Jk dWx0 IGJlZW4= IGxpa2U= YXNl YW5jZQ== a3M= YXlz b3du ZW5jZQ== IGRpcw== Y3Rpb24= IGFueQ== IGFwcA== IHNw aW50 cmVzcw== YXRpb25z YWls IDQ= aWNhbA== IHRoZW0= IGhlcg== b3VudA== IENo IGFy IGlm IHRoZXJl IHBl IHllYXI= YXY= IG15 IHNvbWU= IHdoZW4= b3VnaA== YWNo IHRoYW4= cnU= b25k aWNr IG92ZXI= dmVs IHF1 Cgo= IHNj cmVhdA== cmVl IEl0 b3VuZA== cG9ydA== IGFsc28= IHBhcnQ= ZnRlcg== IGtu IGJlYw== IHRpbWU= ZW5z IDU= b3BsZQ== IHdoYXQ= IG5v ZHU= bWVy YW5n IG5ldw== LS0tLQ== IGdldA== b3J5 aXRpb24= aW5ncw== IGp1c3Q= IGludG8= IDA= ZW50cw== b3Zl dGU= IHBlb3BsZQ== IHByZQ== IGl0cw== IHJlYw== IHR3 aWFu aXJzdA== YXJr b3Jz IHdvcms= YWRl b2I= IHNoZQ== IG91cg== d24= aW5r bGlj IDE5 IEhl aXNo bmRlcg== YXVzZQ== IGhpbQ== b25z IFs= IHJv Zm9ybQ== aWxk YXRlcw== dmVycw== IG9ubHk= b2xs IHNwZQ== Y2s= ZWxs YW1w IGFjYw== IGJs aW91cw== dXJu ZnQ= b29k IGhvdw== aGVk ICc= IGFmdGVy YXc= IGF0dA== b3Y= bmU= IHBsYXk= ZXJ2 aWN0 IGNvdWxk aXR0 IGFt IGZpcnN0 IDY= IGFjdA== ICQ= ZWM= aGluZw== dWFs dWxs IGNvbW0= b3k= b2xk Y2Vz YXRlcg== IGZl IGJldA== d2U= aWZm IHR3bw== b2Nr IGJhY2s= KS4= aWRlbnQ= IHVuZGVy cm91Z2g= c2Vs eHQ= IG1heQ== cm91bmQ= IHBv cGg= aXNz IGRlcw== IG1vLine truncated
! 50257 ICA= ICAg ICAgIA== ICAgICA= ICAgICAg ICAgICAgIA== ICAgICAgICA= ICAgICAgICAg ICAgICAgICAgIA== ICAgICAgICAgICA= ICAgICAgICAgICAg ICAgICAgICAgICAgIA== ICAgICAgICAgICAgICA= ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIA== ICAgICAgICAgICAgICAgICA= ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIA== ICAgICAgICAgICAgICAgICAgICA= ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIA== ICAgICAgICAgICAgICAgICAgICAgICA= ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIA==`},oY={explicit_n_vocab:50257,pat_str:"'s|'t|'re|'ve|'m|'ll|'d| ?\\p{L}+| ?\\p{N}+| ?[^\\s\\p{L}\\p{N}]+|\\s+(?!\\S)|\\s+",special_tokens:{"<|endoftext|>":50256},bpe_ranks:"! 0 IQ== Ig== Iw== JA== JQ== Jg== Jw== KA== KQ== Kg== Kw== LA== LQ== Lg== Lw== MA== MQ== Mg== Mw== NA== NQ== Ng== Nw== OA== OQ== Og== Ow== PA== PQ== Pg== Pw== QA== QQ== Qg== Qw== RA== RQ== Rg== Rw== SA== SQ== Sg== Sw== TA== TQ== Tg== Tw== UA== UQ== Ug== Uw== VA== VQ== Vg== Vw== WA== WQ== Wg== Ww== XA== XQ== Xg== Xw== YA== YQ== Yg== Yw== ZA== ZQ== Zg== Zw== aA== aQ== ag== aw== bA== bQ== bg== bw== cA== cQ== cg== cw== dA== dQ== dg== dw== eA== eQ== eg== ew== fA== fQ== fg== oQ== og== ow== pA== pQ== pg== pw== qA== qQ== qg== qw== rA== rg== rw== sA== sQ== sg== sw== tA== tQ== tg== tw== uA== uQ== ug== uw== vA== vQ== vg== vw== wA== wQ== wg== ww== xA== xQ== xg== xw== yA== yQ== yg== yw== zA== zQ== zg== zw== 0A== 0Q== 0g== 0w== 1A== 1Q== 1g== 1w== 2A== 2Q== 2g== 2w== 3A== 3Q== 3g== 3w== 4A== 4Q== 4g== 4w== 5A== 5Q== 5g== 5w== 6A== 6Q== 6g== 6w== 7A== 7Q== 7g== 7w== 8A== 8Q== 8g== 8w== 9A== 9Q== 9g== 9w== +A== +Q== +g== +w== /A== /Q== /g== /w== AA== AQ== Ag== Aw== BA== BQ== Bg== Bw== CA== CQ== Cg== Cw== DA== DQ== Dg== Dw== EA== EQ== Eg== Ew== FA== FQ== Fg== Fw== GA== GQ== Gg== Gw== HA== HQ== Hg== Hw== IA== fw== gA== gQ== gg== gw== hA== hQ== hg== hw== iA== iQ== ig== iw== jA== jQ== jg== jw== kA== kQ== kg== kw== lA== lQ== lg== lw== mA== mQ== mg== mw== nA== nQ== ng== nw== oA== rQ== IHQ= IGE= aGU= aW4= cmU= b24= IHRoZQ== ZXI= IHM= YXQ= IHc= IG8= ZW4= IGM= aXQ= aXM= YW4= b3I= ZXM= IGI= ZWQ= IGY= aW5n IHA= b3U= IGFu YWw= YXI= IHRv IG0= IG9m IGlu IGQ= IGg= IGFuZA== aWM= YXM= bGU= IHRo aW9u b20= bGw= ZW50 IG4= IGw= c3Q= IHJl dmU= IGU= cm8= bHk= IGJl IGc= IFQ= Y3Q= IFM= aWQ= b3Q= IEk= dXQ= ZXQ= IEE= IGlz IG9u aW0= YW0= b3c= YXk= YWQ= c2U= IHRoYXQ= IEM= aWc= IGZvcg== YWM= IHk= dmVy dXI= IHU= bGQ= IHN0 IE0= J3M= IGhl IGl0 YXRpb24= aXRo aXI= Y2U= IHlvdQ== aWw= IEI= IHdo b2w= IFA= IHdpdGg= IDE= dGVy Y2g= IGFz IHdl ICg= bmQ= aWxs IEQ= aWY= IDI= YWc= ZXJz a2U= ICI= IEg= ZW0= IGNvbg== IFc= IFI= aGVy IHdhcw== IHI= b2Q= IEY= dWw= YXRl IGF0 cmk= cHA= b3Jl IFRoZQ== IHNl dXM= IHBybw== IGhh dW0= IGFyZQ== IGRl YWlu YW5k IG9y aWdo ZXN0 aXN0 YWI= cm9t IE4= dGg= IGNvbQ== IEc= dW4= b3A= MDA= IEw= IG5vdA== ZXNz IGV4 IHY= cmVz IEU= ZXc= aXR5 YW50 IGJ5 ZWw= b3M= b3J0 b2M= cXU= IGZyb20= IGhhdmU= IHN1 aXZl b3VsZA== IHNo IHRoaXM= bnQ= cmE= cGU= aWdodA== YXJ0 bWVudA== IGFs dXN0 ZW5k LS0= YWxs IE8= YWNr IGNo IGxl aWVz cmVk YXJk 4oA= b3V0 IEo= IGFi ZWFy aXY= YWxseQ== b3Vy b3N0 Z2g= cHQ= IHBs YXN0 IGNhbg== YWs= b21l dWQ= VGhl IGhpcw== IGRv IGdv IGhhcw== Z2U= J3Q= IFU= cm91 IHNh IGo= IGJ1dA== IHdvcg== IGFsbA== ZWN0 IGs= YW1l IHdpbGw= b2s= IHdoZQ== IHRoZXk= aWRl MDE= ZmY= aWNo cGw= dGhlcg== IHRy Li4= IGludA== aWU= dXJl YWdl IG5l aWFs YXA= aW5l aWNl IG1l IG91dA== YW5z b25l b25n aW9ucw== IHdobw== IEs= IHVw IHRoZWly IGFk IDM= IHVz YXRlZA== b3Vz IG1vcmU= dWU= b2c= IFN0 aW5k aWtl IHNv aW1l cGVy LiI= YmVy aXo= YWN0 IG9uZQ== IHNhaWQ= IC0= YXJl IHlvdXI= Y2M= IFRo IGNs ZXA= YWtl YWJsZQ== aXA= IGNvbnQ= IHdoaWNo aWE= IGlt IGFib3V0 IHdlcmU= dmVyeQ== dWI= IGhhZA== IGVu IGNvbXA= LCI= IElu IHVu IGFn aXJl YWNl YXU= YXJ5 IHdvdWxk YXNz cnk= IOKA Y2w= b29r ZXJl c28= IFY= aWdu aWI= IG9mZg== IHRl dmVu IFk= aWxl b3Nl aXRl b3Jt IDIwMQ== IHJlcw== IG1hbg== IHBlcg== IG90aGVy b3Jk dWx0 IGJlZW4= IGxpa2U= YXNl YW5jZQ== a3M= YXlz b3du ZW5jZQ== IGRpcw== Y3Rpb24= IGFueQ== IGFwcA== IHNw aW50 cmVzcw== YXRpb25z YWls IDQ= aWNhbA== IHRoZW0= IGhlcg== b3VudA== IENo IGFy IGlm IHRoZXJl IHBl IHllYXI= YXY= IG15 IHNvbWU= IHdoZW4= b3VnaA== YWNo IHRoYW4= cnU= b25k aWNr IG92ZXI= dmVs IHF1 Cgo= IHNj cmVhdA== cmVl IEl0 b3VuZA== cG9ydA== IGFsc28= IHBhcnQ= ZnRlcg== IGtu IGJlYw== IHRpbWU= ZW5z IDU= b3BsZQ== IHdoYXQ= IG5v ZHU= bWVy YW5n IG5ldw== LS0tLQ== IGdldA== b3J5 aXRpb24= aW5ncw== IGp1c3Q= IGludG8= IDA= ZW50cw== b3Zl dGU= IHBlb3BsZQ== IHByZQ== IGl0cw== IHJlYw== IHR3 aWFu aXJzdA== YXJr b3Jz IHdvcms= YWRl b2I= IHNoZQ== IG91cg== d24= aW5r bGlj IDE5 IEhl aXNo bmRlcg== YXVzZQ== IGhpbQ== b25z IFs= IHJv Zm9ybQ== aWxk YXRlcw== dmVycw== IG9ubHk= b2xs IHNwZQ== Y2s= ZWxs YW1w IGFjYw== IGJs aW91cw== dXJu ZnQ= b29k IGhvdw== aGVk ICc= IGFmdGVy YXc= IGF0dA== b3Y= bmU= IHBsYXk= ZXJ2 aWN0 IGNvdWxk aXR0 IGFt IGZpcnN0 IDY= IGFjdA== ICQ= ZWM= aGluZw== dWFs dWxs IGNvbW0= b3k= b2xk Y2Vz YXRlcg== IGZl IGJldA== d2U= aWZm IHR3bw== b2Nr IGJhY2s= KS4= aWRlbnQ= IHVuZGVy cm91Z2g= c2Vs eHQ= IG1heQ== cm91bmQ= IHBv cGg= aXNz IGRlcw== IG1vc3Q= IGRpZA== IGFkZA== amVjdA== IGluYw== Zm9yZ Line truncated
${I}`:""}`;function bd(G){if(G){let I=new TV.Notice(jV("starting",""),1e6);return{setMessage:(l,c)=>{I.setMessage(jV(l,c))},hide:()=>I.hide()}}return{setMessage:(I,l)=>{B.logMessage(`(${I}) ${l}`)},hide:()=>{}}}var Ll=(G,I)=>{let l=I.name==="gpt-3.5-turbo-16k"?"gpt-3.5-turbo":I.name;l=l==="gpt-4-1106-preview"?"gpt-4":l,l=l==="gpt-3.5-turbo-1106"?"gpt-3.5-turbo":l;try{return BV(l).encode(G).length}catch{return A3("cl100k_base").encode(G).length}};async function xY(G,I,l){if(typeof G!="function")throw new TypeError("Callback must be a function.");if(!(I instanceof Promise))throw new TypeError("Promise must be an instance of Promise.");if(typeof l!="number"||l<=0)throw new TypeError("Interval must be a positive number.");let c=!1;for(I.finally(()=>{c=!0});!c;)G(),await sleep(l)}async function kY(G,I,l){let c;if(I.enable)c=l.find(W=>W.path.endsWith(I.name));else{let W=l.map(a=>a.basename);c=await cl.Suggest(G,W,l)}Bl(c,"Prompt template does not exist");let b=c.path,Z=G.vault.getAbstractFileByPath(b);Bl(Z instanceof CV.TFile,`${b} is not a file`);let d=await G.vault.cachedRead(Z);return[c.basename,d]}async function SV(G,I,l){if(C.getState().disableOnlineFeatures)throw new Error("Blocking request to OpenAI: Online features are disabled in settings.");let c=bd(I.showAssistantMessages);try{let{apiKey:b,model:Z,outputVariableName:d,promptTemplate:W,systemPrompt:a,promptTemplateFolder:m}=I,V=m1(G,m),[N,h]=await kY(G,W,V);c.setMessage("waiting","QuickAdd is formatting the prompt template.");let F=await l(h),R=["prompting",`Using prompt template "${N}".`];c.setMessage(R[0],R[1]);let E=Gd(G,b,Z,a,I.modelOptions)(F),J=(await x3(E,100,t=>{c.setMessage(R[0],`${R[1]} (${(t/1e3).toFixed(2)}s)`)},t=>{c.setMessage("finished",`Took ${(t/1e3).toFixed(2)}s.`)})).content,i=("> "+J).replace(/\n/g,`
> `),Y={[d]:J,[`${d}-quoted`]:i};return setTimeout(()=>c.hide(),5e3),Y}catch(b){c.setMessage("dead",b.message),setTimeout(()=>c.hide(),5e3)}}async function x3(G,I,l,c){let b=Date.now();return await xY(()=>l(Date.now()-b),G,I),c(Date.now()-b),await G}async function DV(G,I,l){if(C.getState().disableOnlineFeatures)throw new Error("Blocking request to OpenAI: Online features are disabled in settings.");let c=bd(I.showAssistantMessages);try{let{apiKey:b,model:Z,outputVariableName:d,systemPrompt:W,prompt:a,modelOptions:m}=I;c.setMessage("waiting","QuickAdd is formatting the prompt template.");let V=await l(a),N=["prompting","Using custom prompt."];c.setMessage(N[0],N[1]);let F=Gd(G,b,Z,W,m)(V),X=(await x3(F,100,J=>{c.setMessage(N[0],`${N[1]} (${(J/1e3).toFixed(2)}s)`)},J=>{c.setMessage("finished",`Took ${(J/1e3).toFixed(2)}s.`)})).content,E=("> "+X).replace(/\n/g,`
> `),s={[d]:X,[`${d}-quoted`]:E};return setTimeout(()=>c.hide(),5e3),s}catch(b){c.setMessage("dead",b.message),setTimeout(()=>c.hide(),5e3)}}var z3=class{constructor(I,l){this.maxRequests=I;this.intervalMs=l;this.queue=[];this.pendingPromises=[]}add(I){return new Promise((l,c)=>{this.queue.push(async()=>{try{l(await I())}catch(b){c(b)}}),this.schedule()})}schedule(){if(this.queue.length===0||this.pendingPromises.length>=this.maxRequests)return;let I=this.queue.shift();if(!I)return;let l=I();this.pendingPromises.push(l),l.finally(()=>{this.pendingPromises=this.pendingPromises.filter(c=>c!==l),this.schedule()}),setTimeout(()=>this.schedule(),this.intervalMs)}};async function KV(G,I,l){if(C.getState().disableOnlineFeatures)throw new Error("Blocking request to OpenAI: Online features are disabled in settings.");let c=bd(I.showAssistantMessages);try{let{apiKey:b,model:Z,outputVariableName:d,systemPrompt:W,promptTemplate:a,text:m,modelOptions:V}=I;c.setMessage("chunking","Creating prompt chunks with text and prompt template");let N=I.chunkSeparator||/\n/g,h=m.split(N),F=Ll(W,Z),R=await l(a,{chunk:" "}),X=Ll(R,Z),E=fV(Z.name)/2-F,s=I.shouldMerge??!0,J=[],i=E-X;if(s){let cI=[],dI="",YI=0;for(let hI of h){let uI=Ll(hI,Z)+1;if(uI>i)throw new Error(`The chunk "${hI.slice(0,25)}..." is too large to fit in a single prompt.`);YI+uI<i?(dI+=hI,YI+=uI):(cI.push(dI),dI=hI,YI=uI)}dI!==""&&cI.push(dI);for(let hI of cI){let uI=await l(a,{chunk:hI});J.push(uI)}}else for(let cI of h){let dI=Ll(cI,Z);if(dI>E)throw new Error(`Chunk size (${dI}) is larger than the maximum chunk size (${E}). Please check your chunk separator.`);let YI=await l(a,{chunk:cI});J.push(YI)}let Y=Gd(G,b,Z,W,V),t=["prompting",`${J.length} prompts being sent.`];c.setMessage(t[0],t[1]);let Q=new z3(5,1e3*30),e=Promise.all(J.map(cI=>Q.add(()=>Y(cI)))),T=(await x3(e,100,cI=>{c.setMessage(t[0],`${t[1]} (${(cI/1e3).toFixed(2)}s)`)},cI=>{c.setMessage("finished",`Took ${(cI/1e3).toFixed(2)}s.`)})).map(cI=>cI.content).join(I.resultJoiner),bI=("> "+T).replace(/\n/g,`
> `),y={[d]:T,[`${d}-quoted`]:bI};return setTimeout(()=>c.hide(),5e3),y}catch(b){c.setMessage("dead",b.message),setTimeout(()=>c.hide(),5e3)}}var Zd=class{static filterFiles(I,l,c){return Object.keys(l).length===0?I:I.filter(b=>!(l.folder&&!this.matchesFolder(b,l.folder)||l.tags&&l.tags.length>0&&!this.matchesTags(b,l.tags,c)))}static matchesFolder(I,l){let c=this.normalizePath(l),b=this.normalizePath(I.path);return b.startsWith(c+"/")||b.substring(0,b.lastIndexOf("/"))===c}static matchesTags(I,l,c){let b=c(I);if(!b||!b.tags)return!1;let Z=b.tags.map(d=>d.tag.startsWith("#")?d.tag.substring(1):d.tag);return l.every(d=>Z.includes(d))}static normalizePath(I){return I.replace(/^\/+|\/+$/g,"")}};var dd=class{static parseInlineFields(I){let l=new Map,c=this.removeCodeBlocksAndFrontmatter(I),b;for(;(b=dd.INLINE_FIELD_REGEX.exec(c))!==null;){let Z=b[1].trim(),d=b[2].trim();d&&(l.has(Z)||l.set(Z,new Set),d.includes(",")?d.split(",").map(a=>a.trim()).filter(a=>a.length>0).forEach(a=>l.get(Z)?.add(a)):l.get(Z)?.add(d))}return dd.INLINE_FIELD_REGEX.lastIndex=0,l}static removeCodeBlocksAndFrontmatter(I){let l=/^---\n[\s\S]*?\n---\n/;I=I.replace(l,"");let c=/```[\s\S]*?```|`[^`]*`/g;return I=I.replace(c,""),I}static getFieldValues(I,l){return this.parseInlineFields(I).get(l)||new Set}},mG=dd;mG.INLINE_FIELD_REGEX=/(?:^|[\n\r])[ \t]*(?![-*+][ \t]+\[[ xX]\])([a-zA-Z0-9_\- ]+)::[ \t]*(.*)$/gm;var il=class{constructor(){this.cache=new Map;this.TTL=5*60*1e3;this.MAX_CACHE_ENTRIES=100;this.MAX_VALUES_PER_ENTRY=1e3;this.cleanupInterval=null}static getInstance(){return il.instance||(il.instance=new il),il.instance}startAutomaticCleanup(I){if(this.cleanupInterval===null&&typeof window<"u"){let l=window.setInterval(()=>{this.cleanExpired()},6e4);this.cleanupInterval=I(l)}}get(I,l){let c=this.makeKey(I,l),b=this.cache.get(c);return b?Date.now()-b.timestamp>this.TTL?(this.cache.delete(c),null):new Set(b.values):null}set(I,l,c){let b=this.makeKey(I,c),Z=new Set,d=0;for(let W of l){if(d>=this.MAX_VALUES_PER_ENTRY)break;Z.add(W),d++}this.cache.size>=this.MAX_CACHE_ENTRIES&&!this.cache.has(b)&&this.evictOldestEntries(1),this.cache.set(b,{values:Z,timestamp:Date.now()})}evictOldestEntries(I){let l=Array.from(this.cache.entries()).sort(([,c],[,b])=>c.timestamp-b.timestamp).slice(0,I);for(let[c]of l)this.cache.delete(c)}clear(I){if(I){let l=[];for(let c of this.cache.keys())(c.startsWith(`${I}:`)||c===I)&&l.push(c);for(let c of l)this.cache.delete(c)}else this.cache.clear()}cleanExpired(){let I=Date.now(),l=[];for(let[c,b]of this.cache.entries())I-b.timestamp>this.TTL&&l.push(c);for(let c of l)this.cache.delete(c)}getStats(){return{size:this.cache.size,maxSize:this.MAX_CACHE_ENTRIES,cleanupInterval:this.cleanupInterval}}destroy(){this.cleanupInterval=null,this.cache.clear()}makeKey(I,l){return l?`${I}:${l}`:I}};var H1=class{static GetApi(I,l,c){return{inputPrompt:(b,Z,d)=>this.inputPrompt(I,b,Z,d),wideInputPrompt:(b,Z,d)=>this.wideInputPrompt(I,b,Z,d),yesNoPrompt:(b,Z)=>this.yesNoPrompt(I,b,Z),infoDialog:(b,Z)=>this.infoDialog(I,b,Z),suggester:(b,Z)=>this.suggester(I,b,Z),checkboxPrompt:(b,Z)=>this.checkboxPrompt(I,b,Z),executeChoice:async(b,Z)=>{let d=l.getChoiceByName(b);d||EI(new Error(`Choice named '${b}' not found`),"API executeChoice error"),Z&&Object.keys(Z).forEach(W=>{c.variables.set(W,Z[W])}),await c.execute(d),c.variables.clear()},format:async(b,Z,d=!0)=>{Z&&Object.keys(Z).forEach(a=>{c.variables.set(a,Z[a])});let W=await new U2(I,l,c).formatFileContent(b);return d&&c.variables.clear(),W},ai:{prompt:async(b,Z,d)=>{let W=C.getState(),a=W.ai;if(W.disableOnlineFeatures)throw new Error("Rejecting request to `prompt` via API AI module. Online features are disabled in settings.");let m=this.GetApi(I,l,c).format,V;if(typeof Z=="string"){let F=X2(Z);if(!F)throw new Error(`Model '${Z}' not found.`);V=F}else V=Z;let N=aG(V.name);if(!N)throw new Error(`Model '${V.name}' not found in any provider`);let h=await DV(I,{model:V,prompt:b,apiKey:N.apiKey,modelOptions:d?.modelOptions??{},outputVariableName:d?.variableName??"output",showAssistantMessages:d?.showAssistantMessages??!0,systemPrompt:d?.systemPrompt??a.defaultSystemPrompt},(F,R)=>m(F,R,!1));return h?(d?.shouldAssignVariables&&Object.assign(c.variables,h),h):(EI(new Error("AI Assistant returned null"),"AI Prompt error"),{})},chunkedPrompt:async(b,Z,d,W,a)=>{let m=C.getState(),V=m.ai;if(m.disableOnlineFeatures)throw new Error("Rejecting request to `prompt` via API AI module. Online features are disabled in settings.");let N=this.GetApi(I,l,c).format,h;if(typeof d=="string"){let X=X2(d);if(!X)throw new Error(`Model ${d} not found.`);h=X}else h=d;let F=aG(h.name);if(!F)throw new Error(`Model '${h.name}' not found in any provider`);let R=await KV(I,{model:h,text:b,promptTemplate:Z,chunkSeparator:W?.chunkSeparator??/\n/,apiKey:F.apiKey,modelOptions:W?.modelOptions??{},outputVariableName:W?.variableName??"output",showAssistantMessages:W?.showAssistantMessages??!0,systemPrompt:W?.systemPromptLine truncated
`,shouldMerge:W?.shouldMerge??!0},(X,E)=>{let s={...a,...E};return N(X,s,!1)});return R?(W?.shouldAssignVariables&&Object.assign(c.variables,R),R):(EI(new Error("AI Assistant returned null"),"Chunked AI Prompt error"),{})},getModels:()=>k2(),getMaxTokens:b=>{let Z=X2(b);if(!Z)throw new Error(`Model ${b} not found.`);return Z.maxTokens},countTokens(b,Z){return Ll(b,Z)}},utility:{getClipboard:async()=>await navigator.clipboard.readText(),setClipboard:async b=>await navigator.clipboard.writeText(b),getSelectedText:()=>{let b=I.workspace.getActiveViewOfType(OV.MarkdownView);if(!b){EI(new Error("No active view"),"Could not get selected text");return}if(!b.editor.somethingSelected()){EI(new Error("No text selected"),"Could not get selected text");return}return b.editor.getSelection()}},date:{now:(b,Z)=>cc({format:b,offset:Z}),tomorrow:b=>cc({format:b,offset:1}),yesterday:b=>cc({format:b,offset:-1})},fieldSuggestions:{getFieldValues:async(b,Z)=>{let d={folder:Z?.folder,tags:Z?.tags,inline:Z?.includeInline??!1},W=I.vault.getMarkdownFiles();W=Zd.filterFiles(W,d,m=>I.metadataCache.getFileCache(m));let a=new Set;for(let m of W){let N=I.metadataCache.getFileCache(m)?.frontmatter?.[b];if(N!=null){if(Array.isArray(N))N.forEach(h=>{let F=h.toString().trim();F&&a.add(F)});else if(typeof N!="object"){let h=N.toString().trim();h&&a.add(h)}}if(d.inline){let h=await I.vault.read(m);mG.getFieldValues(h,b).forEach(R=>a.add(R))}}return Array.from(a).sort()},clearCache:b=>{il.getInstance().clear(b)}}}}static async inputPrompt(I,l,c,b){try{return await vI.Prompt(I,l,c,b)}catch{return}}static async wideInputPrompt(I,l,c,b){try{return await Gc.Prompt(I,l,c,b)}catch{return}}static async yesNoPrompt(I,l,c){try{return await wl.Prompt(I,l,c)}catch{return}}static async infoDialog(I,l,c){try{return await ZG.Show(I,l,c)}catch{return}}static async suggester(I,l,c){try{let b;return typeof l=="function"?b=c.map(l):b=l,await cl.Suggest(I,b,c)}catch{return}}static async checkboxPrompt(I,l,c){try{return await dG.Open(I,l,c)}catch{return}}};var R1=class extends h1{};var sl=class{constructor(I,l){this.name=I,this.type=l,this.id=O2()}};var PV=require("obsidian");var Gl=class extends sl{constructor(l){super(l,"EditorCommand");this.editorCommandType=l}static getSelectedText(l){return this.getActiveMarkdownView(l).editor.getSelection()}static getActiveMarkdownView(l){let c=l.workspace.getActiveViewOfType(PV.MarkdownView);if(!c)throw B.logError("no active markdown view."),new Error("no active markdown view.");return c}};var n1=class extends Gl{constructor(){super("Cut")}static async run(I){let l=Gl.getSelectedText(I),c=Gl.getActiveMarkdownView(I);if(!l){B.logError("nothing selected.");return}await navigator.clipboard.writeText(l),c.editor.replaceSelection("")}};var p1=class extends Gl{constructor(){super("Copy")}static async run(I){let l=Gl.getSelectedText(I);await navigator.clipboard.writeText(l)}};var s1=class extends Gl{constructor(){super("Paste")}static async run(I){let l=await navigator.clipboard.readText(),c=Gl.getActiveMarkdownView(I);if(!c){B.logError("no active markdown view.");return}c.editor.replaceSelection(l)}};var e1=class extends Gl{constructor(){super("Select active line")}static run(I){let l=Gl.getActiveMarkdownView(I),{line:c}=l.editor.getCursor(),Z=l.editor.getLine(c).length;l.editor.setSelection({line:c,ch:0},{line:c,ch:Z})}};var t1=class extends Gl{constructor(){super("Select link on active line")}static run(I){let l=Gl.getActiveMarkdownView(I),{line:c}=l.editor.getCursor(),b=l.editor.getLine(c),Z=mV.exec(b);if(!Z){B.logError(`no internal link found on line ${c}.`);return}let d=Z.index,W=Z[0].length+d;l.editor.setSelection({line:c,ch:d},{line:c,ch:W})}};function qV(G){return new Promise(I=>setTimeout(I,G))}function k3(G){return G.split(`
`)}function _V(G){return G.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}var M2=class extends R1{constructor(l,c,b,Z,d,W){super(l);this.choice=b,this.plugin=c,this.macros=Z,this.choiceExecutor=d,this.params={app:this.app,quickAddApi:H1.GetApi(l,c,d),variables:{},obsidian:UY},W?.forEach((a,m)=>{this.params.variables[m]=a})}async run(){let l=this.choice.macroId??this.choice?.macro?.id,c=this.macros.find(b=>b.id===l);if(!c||!c?.commands){B.logError(`No commands in the selected macro. Did you select a macro for '${this.choice.name}'?`);return}await this.executeCommands(c.commands)}async executeCommands(l){for(let c of l)c?.type==="Obsidian"&&this.executeObsidianCommand(c),c?.type==="UserScript"&&await this.executeUserScript(c),c?.type==="Choice"&&await this.executeChoice(c),c?.type==="Wait"&&await qV(c.time),c?.type==="NestedChoice"&&await this.executeNestedChoice(c),c?.type==="EditorCommand"&&await this.executeEditorCommand(c),c?.type==="AIAssistant"&&await this.executeAIAssistant(c),Object.keys(this.params.variables).forEach(b=>{this.choiceExecutor.variables.set(b,this.params.variables[b])})}async executeUserScript(l){let c=await SZ(l,this.app);if(!c){B.logError(`failed to load user script ${l.path}.`);return}c.settings&&(this.userScriptCommand=l);try{await this.userScriptDelegator(c)}catch(b){EI(b,`Failed to run user script ${l.name}`)}this.userScriptCommand&&(this.userScriptCommand=null)}async runScriptWithSettings(l,c){if(typeof l!="function"&&l.entry&&typeof l.entry=="function")return await this.onExportIsFunction(l.entry,c.settings);if(typeof l=="function")return await this.onExportIsFunction(l,c.settings)}async userScriptDelegator(l){switch(typeof l){case"function":this.userScriptCommand?await this.runScriptWithSettings(l,this.userScriptCommand):await this.onExportIsFunction(l);break;case"object":await this.onExportIsObject(l);break;case"bigint":case"boolean":case"number":case"string":this.output=l.toString();break;default:B.logError(`user script in macro for '${this.choice.name}' is invalid`)}}async onExportIsFunction(l,c){this.output=await l(this.params,c||{})}async onExportIsObject(l){if(Object.keys(l).length===0)throw new Error(`user script in macro for '${this.choice.name}' is an empty object`);if(this.userScriptCommand&&l.entry!==null){await this.runScriptWithSettings(l,this.userScriptCommand);return}try{let c=Object.keys(l),b=await cl.Suggest(this.app,c,c);await this.userScriptDelegator(l[b])}catch(c){EI(c,"Error in script object handling","LOG")}}executeObsidianCommand(l){this.app.commands.executeCommandById(l.commandId)}async executeChoice(l){let c=this.plugin.getChoiceById(l.choiceId);if(!c){B.logError("choice could not be found.");return}await this.choiceExecutor.execute(c)}async executeNestedChoice(l){let c=l.choice;if(!c){B.logError(`choice in ${l.name} is invalid`);return}await this.choiceExecutor.execute(c)}async executeEditorCommand(l){switch(l.editorCommandType){case"Cut":await n1.run(this.app);break;case"Copy":await p1.run(this.app);break;case"Paste":await s1.run(this.app);break;case"Select active line":e1.run(this.app);break;case"Select link on active line":t1.run(this.app);break}}async executeAIAssistant(l){if(C.getState().disableOnlineFeatures)throw new Error("Blocking request to OpenAI: Online features are disabled in settings.");let c=C.getState().ai,b=k2(),Z=l.model==="Ask me"?await cl.Suggest(this.app,b,b):l.model,d=X2(Z);if(!d)throw new Error(`Model ${Z} not found with any provider.`);let W=new U2(this.app,nI.instance,this.choiceExecutor),a=aG(d.name);if(!a)throw new Error(`Model ${d.name} not found in the AI providers settings.`);let m=await SV(this.app,{apiKey:a.apiKey,model:d,outputVariableName:l.outputVariableName,promptTemplate:l.promptTemplate,promptTemplateFolder:c.promptTemplatesFolderPath,systemPrompt:l.systemPrompt,showAssistantMessages:c.showAssistant,modelOptions:l.modelParameters},async V=>W.formatFileContent(V));for(let V in m)this.choiceExecutor.variables.set(V,m[V])}};var Wd=class extends M2{constructor(l,c,b,Z,d){super(l,c,null,b,Z,d)}async runAndGetOutput(l){let{basename:c,memberAccess:b}=eb(l),Z=this.macros.find(d=>d.name===c);if(!Z)throw B.logError(`macro '${l}' does not exist.`),new Error(`macro '${l}' does not exist.`);return b&&b.length>0&&(this.memberAccess=b),await this.executeCommands(Z.commands),this.output}async onExportIsObject(l){if(!this.memberAccess)return await super.onExportIsObject(l);let c=l;this.memberAccess.forEach(b=>{c=c[b]}),await this.userScriptDelegator(c)}};var g5=require("obsidian");var ad=class extends M2{constructor(I,l,c,b){super(I,l,null,null,c,b)}async runAndGetOutput(I){let l=Object.getPrototypeOf(async function(){}).constructor;return await new l(I).bind(this.params,this).call()}};var rl=require("obsidian");var WI="\u261A",MY=["\\!","\\,","\\:","\\>","\\;","\\#","\\$","\\%","\\&","\\","_","{ }","|",`^{${WI}}${WI}`,`[${WI}]${WI}`,"\\above","\\abovewithdelims","\\acute","\\aleph","\\alpha","\\amalg","\\And","\\angle","\\approx","\ Line truncated
${WI}
\\end{${G}}${WI}`}var $V=[...MY,...BY.map(LY)];var IN=require("obsidian");var fY=new RegExp(/\\([a-z{}A-Z0-9]*)$/),md=class extends yl{constructor(l){super(nI.instance.app,l);this.inputEl=l;this.lastInput="";this.symbols=Object.assign([],$V),this.elementsRendered=this.symbols.reduce((c,b)=>{try{c[b.toString()]=(0,IN.renderMath)(b,!0)}catch{}return c},{})}getSuggestions(l){if(this.inputEl.selectionStart===null)return[];let c=this.inputEl.selectionStart,b=l.substr(0,c),Z=b.lastIndexOf("\\"),d=b.substr(Z),W=fY.exec(d),a=[];return W&&(this.lastInput=W[1],a=this.symbols.filter(N=>N.toLowerCase().contains(this.lastInput))),new ol(a,{findAllMatches:!0,threshold:.8}).search(this.lastInput).map(N=>N.item)}renderSuggestion(l,c){l&&(c.setText(l),c.append(this.elementsRendered[l]))}selectSuggestion(l){if(this.inputEl.selectionStart===null)return;let c=this.inputEl.selectionStart,b=this.lastInput.length,Z=this.inputEl.value,d=0,W=l.replace(/\\\\/g,"\\");if(this.inputEl.value=`${Z.substr(0,c-b-1)}${W}${Z.substr(c)}`,d=c-b+l.length-1,this.inputEl.trigger("input"),this.close(),l.contains(WI)){let a=this.inputEl.value.indexOf(WI);this.inputEl.value=this.inputEl.value.replace(WI,""),this.inputEl.setSelectionRange(a,a)}else this.inputEl.setSelectionRange(d,d)}};var E1=class extends rl.Modal{constructor(){super(nI.instance.app);this.didSubmit=!1;this.keybindListener=l=>{l.ctrlKey&&l.key==="Enter"&&this.submit(),l.key==="Tab"&&(l.preventDefault(),this.cursorToGoTo())};this.submitClickCallback=l=>this.submit();this.cancelClickCallback=l=>this.cancel();this.open(),this.display(),this.waitForClose=new Promise((l,c)=>{this.resolvePromise=l,this.rejectPromise=c}),new md(this.inputEl),this.inputEl.focus(),this.inputEl.select()}static Prompt(){return new E1().waitForClose}display(){this.containerEl.addClass("quickAddModal","qaMathModal"),this.contentEl.empty();let l=this.contentEl.createDiv();l.className="math math-block is-loaded";let c=new rl.TextAreaComponent(this.contentEl);c.inputEl.style.width="100%",c.inputEl.style.height="10rem",this.inputEl=c.inputEl,c.onChange((0,rl.debounce)(async b=>await this.mathjaxLoop(l,b),50)),c.inputEl.addEventListener("keydown",this.keybindListener),this.createButtonBar(this.contentEl.createDiv())}async onOpen(){super.onOpen(),await(0,rl.loadMathJax)()}async mathjaxLoop(l,c){let b=(0,rl.renderMath)(c,!0);await(0,rl.finishRenderMath)(),l.empty(),l.append(b)}cursorToGoTo(){if(this.inputEl.value.contains(WI)){let l=this.inputEl.value.indexOf(WI);this.inputEl.value=this.inputEl.value.replace(WI,""),this.inputEl.setSelectionRange(l,l)}}createButton(l,c,b){let Z=new rl.ButtonComponent(l);return Z.setButtonText(c).onClick(b),Z}createButtonBar(l){let c=l.createDiv();this.createButton(c,"Ok",this.submitClickCallback).setCta().buttonEl.style.marginRight="0",this.createButton(c,"Cancel",this.cancelClickCallback),c.style.display="flex",c.style.flexDirection="row-reverse",c.style.justifyContent="flex-start",c.style.marginTop="1rem"}removeInputListeners(){this.inputEl.removeEventListener("keydown",this.keybindListener)}resolveInput(){let l=this.inputEl.value.replace("\\n","\\\\n").replace(new RegExp(WI,"g"),"");this.didSubmit?this.resolvePromise(l):this.rejectPromise("No input given.")}submit(){this.didSubmit=!0,this.close()}cancel(){this.close()}onClose(){super.onClose(),this.resolveInput(),this.removeInputListeners()}};var u1=class{factory(){return nI.instance.settings.inputPrompt==="multi-line"?Gc:vI}};var lN=require("obsidian"),B2=class extends lN.FuzzySuggestModal{constructor(l,c,b,Z={}){super(l);this.displayItems=c;this.items=b;this.promise=new Promise((d,W)=>{this.resolvePromise=d,this.rejectPromise=W}),this.inputEl.addEventListener("keydown",d=>{if(d.code!=="Tab"||!("chooser"in this))return;let{values:W,selectedItem:a}=this.chooser,{value:m}=this.inputEl;this.inputEl.value=W[a].item??m}),Z.placeholder&&this.setPlaceholder(Z.placeholder),Z.limit&&(this.limit=Z.limit),Z.emptyStateText&&(this.emptyStateText=Z.emptyStateText),this.open()}static Suggest(l,c,b,Z={}){return new B2(l,c,b,Z).promise}getItemText(l){return l===this.inputEl.value?l:this.displayItems[this.items.indexOf(l)]}getItems(){return this.inputEl.value===""?this.items:[this.inputEl.value,...this.items]}selectSuggestion(l,c){this.resolved=!0,super.selectSuggestion(l,c)}onChooseItem(l,c){this.resolved=!0,this.resolvePromise(l)}onClose(){super.onClose(),this.resolved||this.rejectPromise("no input given.")}};var Vd=class{static parse(I){let l=I.split("|").map(Z=>Z.trim()),c=l[0],b={};for(let Z=1;Z<l.length;Z++){let d=l[Z],W=d.indexOf(":");if(W===-1)continue;let a=d.substring(0,W).trim(),m=d.substring(W+1).trim();switch(a){case"folder":b.folder=m;break;case"tag":b.tags||(b.tags=[]);let V=m.startsWith("#")?m.substring(1):m;b.tags.push(V);break;case"inline":b.inline=m.toLowerCase()==="true";break;case"default":b.defaultValue=m;break;case"default-empty":b.defaultEmpty=m.toLowerCase()==="true";break;case"default-always":b.defaultAlways=m.toLowerCase()= Line truncated
Suggested values for ${c}: ${N.slice(0,3).join(", ")}`)}return await vI.Prompt(this.app,`Enter value for ${c}`,V)}let m=`Enter value for ${c}`;return a.hasDefaultValue&&(m=`Enter value for ${c} (default: ${b.defaultValue})`),await B2.Suggest(this.app,a.values,a.values,{placeholder:m})}}generateCacheKey(l){let c=[];return l.folder&&c.push(`folder:${l.folder}`),l.tags&&c.push(`tags:${l.tags.join(",")}`),l.inline&&c.push("inline:true"),l.caseSensitive&&c.push("case-sensitive:true"),l.excludeFolders&&c.push(`exclude-folders:${l.excludeFolders.join(",")}`),l.excludeTags&&c.push(`exclude-tags:${l.excludeTags.join(",")}`),l.excludeFiles&&c.push(`exclude-files:${l.excludeFiles.join(",")}`),l.defaultValue&&c.push(`default:${l.defaultValue}`),l.defaultEmpty&&c.push("default-empty:true"),l.defaultAlways&&c.push("default-always:true"),c.join("|")}async getMacroValue(l){let c=new Wd(this.app,this.plugin,this.plugin.settings.macros,this.choiceExecutor,this.variables),b=await c.runAndGetOutput(l)??"";return Object.keys(c.params.variables).forEach(Z=>{this.variables.set(Z,c.params.variables[Z])}),b}async getTemplateContent(l){return await new Jc(this.app,this.plugin,l,this.choiceExecutor).run()}async getSelectedText(){let l=this.app.workspace.getActiveViewOfType(g5.MarkdownView);return l?l.editor.getSelection():""}async replaceInlineJavascriptInString(l){let c=l;for(;Rb.test(c);){let Z=Rb.exec(c)?.at(1)?.trim();if(Z){let d=new ad(this.app,this.plugin,this.choiceExecutor,this.variables),W=await d.runAndGetOutput(Z);for(let a in d.params.variables)this.variables.set(a,d.params.variables[a]);c=typeof W=="string"?this.replacer(c,Rb,W):this.replacer(c,Rb,"")}}return c}};var z5=require("obsidian");var x1=class extends h1{constructor(l,c,b){super(l);this.plugin=c;this.templater=fZ(l),this.formatter=new U2(l,c,b)}async getOrCreateFolder(l){let c;if(l.length>1){if(c=await cl.Suggest(this.app,l,l),!c)throw new Error("No folder selected.")}else c=l[0];return c?await this.createFolder(c):c="",c}async getFormattedFilePath(l,c,b){let Z=await this.formatter.formatFileName(c,b);return this.normalizeMarkdownFilePath(l,Z)}getTemplateExtension(l){return Hb.test(l)?".canvas":".md"}normalizeTemplateFilePath(l,c,b){let Z=l?`${l}/`:"",d=this.getTemplateExtension(b),W=c.replace(Yb,"").replace(Hb,"");return`${Z}${W}${d}`}async incrementFileName(l){let c=oZ.exec(l),b=c&&typeof c.at=="function"?c?.at(1):void 0,Z=await this.app.vault.adapter.exists(l),d=l,W=Hb.test(l)?".canvas":".md";if(Z&&b){let m=parseInt(b);if(!m)throw new Error("detected numbers but couldn't get them.");d=d.replace(oZ,`${m+1}${W}`)}else Z&&(d=d.replace(oZ,`1${W}`));return await this.app.vault.adapter.exists(d)&&(d=await this.incrementFileName(d)),d}async createFileWithTemplate(l,c){try{let b=await this.getTemplateContent(c),Z=await this.formatter.formatFileContent(b),d=await this.createFileWithInput(l,Z);return await a1(this.app,d),d}catch(b){return EI(b,"Could not create file with template"),null}}async overwriteFileWithTemplate(l,c){try{let b=await this.getTemplateContent(c),Z=await this.formatter.formatFileContent(b);return await this.app.vault.modify(l,Z),await a1(this.app,l),l}catch(b){return EI(b,"Could not overwrite file with template"),null}}async appendToFileWithTemplate(l,c,b){try{let Z=await this.getTemplateContent(c),d=await this.formatter.formatFileContent(Z),W=await this.app.vault.cachedRead(l),a=b==="top"?`${d}
${W}`:`${W}
${d}`;return await this.app.vault.modify(l,a),await a1(this.app,l),l}catch(Z){return EI(Z,"Could not append to file with template"),null}}async getTemplateContent(l){let c=l;!Yb.test(l)&&!Hb.test(l)&&(c+=".md");let b=this.app.vault.getAbstractFileByPath(c);if(!(b instanceof z5.TFile))throw new Error(`Template file not found at path "${c}".`);return await this.app.vault.cachedRead(b)}};var Jc=class extends x1{constructor(l,c,b,Z){super(l,c,Z);this.templatePath=b}async run(){let l=await this.getTemplateContent(this.templatePath);return l||B.logError(`Template ${this.templatePath} not found.`),l=await this.formatter.formatFileContent(l),l}};var Tl=class extends tc{constructor(l,c){super();this.app=l;this.plugin=c}async format(l){let c=l;try{c=this.replaceDateInString(c),c=this.replaceTimeInString(c),c=await this.replaceValueInString(c),c=await this.replaceDateVariableInString(c),c=await this.replaceVariableInString(c),c=await this.replaceLinkToCurrentFileInString(c),c=await this.replaceMacrosInString(c),c=await this.replaceTemplateInString(c),c=await this.replaceFieldVarInString(c),c=this.replaceLinebreakInString(c)}catch{return l}return c}promptForValue(l){return l||"user input"}getVariableValue(l){return DZ(l)}getCurrentFileLink(){return qZ(this.app.workspace.getActiveFile())}getNaturalLanguageDates(){return g2(this.app)}suggestForValue(l){return PZ(l)}getMacroValue(l){return KZ(l)}promptForMathValue(){return Promise.resolve("calculation_result")}promptForVariable(l){return Promise.resolve(OZ(l))}async getTemplateContent(l){try{return await new Jc(this.app,this.plugin,l,void 0).run()}catch{return`Template (not found): ${l}`}}async getSelectedText(){return"selected_text"}async suggestForField(l){return Promise.resolve(`${l}_field_value`)}async replaceDateVariableInString(l){let c=l;return c=c.replace(new RegExp(lG.source,"gi"),(b,Z,d)=>{let W=Z?.trim(),a=d?.trim();if(!W||!a)return b;let m=new Date,V;try{V=z2.generate(a,m)}catch{V=`[${a} format]`}return V}),c}};var k1=class extends ec{constructor(l,c,b){super(l);this.plugin=b;this.choice=c,this.display()}display(){this.containerEl.addClass("captureChoiceBuilder"),this.contentEl.empty(),this.addCenteredChoiceNameHeader(this.choice),this.addCapturedToSetting(),this.choice?.captureToActiveFile||(this.addCreateIfNotExistsSetting(),this.choice?.createFileIfItDoesntExist?.enabled&&this.addCreateWithTemplateSetting()),this.addTaskSetting(),this.addPrependSetting(),this.addAppendLinkSetting(),this.addInsertAfterSetting(),this.choice.captureToActiveFile||(this.addOpenFileSetting(),this.choice.openFile&&this.addOpenFileInNewTabSetting()),this.addFormatSetting()}addCapturedToSetting(){let l;new iI.Setting(this.contentEl).setName("Capture To").setDesc("File to capture to. Supports some format syntax.");let c=this.contentEl.createDiv("captureToContainer"),b=c.createDiv("captureToActiveFileContainer"),Z=b.createEl("span");Z.textContent="Capture to active file";let d=new iI.ToggleComponent(b);if(d.setValue(this.choice?.captureToActiveFile),d.onChange(W=>{this.choice.captureToActiveFile=W,this.reload()}),!this.choice?.captureToActiveFile){let W=c.createDiv("captureToFileContainer"),a=W.createEl("span"),m=new V1(this.app);(async()=>a.textContent=await m.format(this.choice.captureTo))();let V=new iI.TextComponent(W);V.setPlaceholder("File name format"),l=V,V.inputEl.style.width="100%",V.inputEl.style.marginBottom="8px",V.setValue(this.choice.captureTo).setDisabled(this.choice?.captureToActiveFile).onChange(async h=>{this.choice.captureTo=h,a.textContent=await m.format(h)});let N=[...this.app.vault.getMarkdownFiles().map(h=>h.path),...Dm];new Hl(this.app,l.inputEl,N,50)}}addPrependSetting(){new iI.Setting(this.contentEl).setName("Write to bottom of file").setDesc(`Put value at the bottom of the file - otherwise at the ${this.choice?.captureToActiveFile?"active cursor location":"top"}.`).addToggle(c=>{c.setValue(this.choice.prepend),c.onChange(b=>{this.choice.prepend=b,this.choice.prepend&&this.choice.insertAfter.enabled&&(this.choice.insertAfter.enabled=!1,this.reload())})})}addTaskSetting(){new iI.Setting(this.contentEl).setName("Task").setDesc("Formats the value as a task.").addToggle(c=>{c.setValue(this.choice.task),c.onChange(b=>this.choice.task=b)})}addAppendLinkSetting(){new iI.Setting(this.contentEl).setName("Append link").setDesc("Add a link on your current cursor position, linking to the file you're capturing to.").addToggle(c=>{c.setValue(this.choice.appendLink),c.onChange(b=>this.choice.appendLink=b)})}addInsertAfterSetting(){let l;new iI.Setting(this.contentEl).setName("Insert after").setDesc("Insert capture after specified line. Accepts format syntax.").addToggle(d=>{d.setValue(this.choice.insertAfter.enabled),d.onChange(W=>{this.choice.insertAfter.enabled=W,l.setDisabled(!W),this.choice.insertAfter.enabled&&this.choice.prepend&&(this.choice.prepend=!1),this.reload()})});let b=this.contentEl.createEl("span"),Z=new Tl(this.app,this.plugin);(async()=>b.innerText=awai Line truncated
${e?"Deleting this choice will delete all ("+t.choices.length+") choices inside it!":""}
${Q?"Deleting this choice will delete the macro associated with it!":""}
`)&&(Q&&(l(9,b=b.filter(v=>v.id!==t.macroId)),d(b)),l(0,c=c.filter(v=>C5(t.id,v))),a.removeCommandForChoice(t),Z(c))}async function N(Y){let{choice:t}=Y.detail,Q;if(t.type==="Multi"){Q=t;let e=await vI.Prompt(W,`Rename ${t.name}`,"",t.name);if(!e)return;Q.name=e}else{let e=X(t);if(!e)throw new Error("Invalid choice type");Q=await e.waitForClose}Q&&(l(0,c=c.map(e=>va(e,Q))),a.removeCommandForChoice(t),a.addCommandForChoice(Q),Z(c))}async function h(Y){let{choice:t}=Y.detail,Q={...t,command:!t.command};Q.command?a.addCommandForChoice(Q):a.removeCommandForChoice(Q),l(0,c=c.map(e=>va(e,Q))),Z(c)}async function F(Y){let{choice:t}=Y.detail,Q=R(t);l(0,c=[...c,Q]),Z(c)}function R(Y){if(!yV(Y))throw new Error("Invalid choice type");let t;switch(Y.type){case"Template":t=new jc(`${Y.name} (copy)`);break;case"Capture":t=new Tc(`${Y.name} (copy)`);break;case"Macro":t=new Zb(`${Y.name} (copy)`);break;case"Multi":t=new Cc(`${Y.name} (copy)`);break}return Y.type!=="Multi"?Object.assign(t,wV(Y,["id","name"])):t.choices=Y.choices.map(Q=>R(Q)),t}function X(Y){switch(Y.type){case"Template":return new N1(W,Y,a);case"Capture":return new k1(W,Y,a);case"Macro":return new Bd(W,Y,b,C.getState().choices);case"Multi":default:break}}async function E(){let Y=await new Ld(W,a,b,c).waitForClose;Y&&(d(Y),l(9,b=Y))}async function s(){let Y=await new jd(W,C.getState().ai).waitForClose;Y&&C.setState(t=>({...t,ai:Y}))}function J(Y){c=Y,l(0,c)}let i=Y=>Z(Y.detail.choices);return G.$$set=Y=>{"choices"in Y&&l(0,c=Y.choices),"macros"in Y&&l(9,b=Y.macros),"saveChoices"in Y&&l(1,Z=Y.saveChoices),"saveMacros"in Y&&l(10,d=Y.saveMacros),"app"in Y&&l(11,W=Y.app),"plugin"in Y&&l(12,a=Y.plugin)},[c,Z,m,V,N,h,F,E,s,b,d,W,a,J,i]}var Ja=class extends FI{constructor(I){super(),RI(this,I,Hn,Yn,HI,{choices:0,macros:9,saveChoices:1,saveMacros:10,app:11,plugin:12},hn)}},S5=Ja;var Rn={name:"OpenAI",endpoint:"https://api.openai.com/v1",apiKey:"",models:[{name:"text-davinci-003",maxTokens:4096},{name:"gpt-3.5-turbo",maxTokens:4096},{name:"gpt-3.5-turbo-16k",maxTokens:16384},{name:"gpt-3.5-turbo-1106",maxTokens:16385},{name:"gpt-4",maxTokens:8192},{name:"gpt-4-32k",maxTokens:32768},{name:"gpt-4-1106-preview",maxTokens:128e3},{name:"gpt-4-turbo",maxTokens:128e3},{name:"gpt-4o",maxTokens:128e3},{name:"gpt-4o-mini",maxTokens:128e3}]},Td=[Rn];var ld={choices:[],macros:[],inputPrompt:"single-line",devMode:!1,templateFolderPath:"",announceUpdates:!0,version:"0.0.0",disableOnlineFeatures:!0,enableRibbonIcon:!1,ai:{defaultModel:"Ask me",defaultSystemPrompt:'As an AI assistant within Obsidian, your primary goal is to help users manage their ideas and knowledge more effectively. Format your responses using Markdown syntax. Please use the [[Obsidian]] link format. You can write aliases for the links by writing [[Obsidian|the alias after the pipe symbol]]. To use mathematical notation, use LaTeX syntax. LaTeX syntax for larger equations should be on separate lines, surrounded with double dollar signs ($$). You can also inline math expressions by wrapping it in $ symbols. For example, use $$w_{ij}^{ ext{new}}:=w_{ij}^{ ext{current}}+etacdotdelta_jcdot x_{ij}$$ on a separate line, but you can write "($eta$ = learning rate, $delta_j$ = error term, $x_{ij}$ = input)" inline.',promptTemplatesFolderPath:"",showAssistant:!0,providers:Td},migrations:{migrateToMacroIDFromEmbeddedMacro:!1,useQuickAddTemplateFolder:!1,incrementFileNameSettingMoveToDefaultBehavior:!1,mutualExclusionInsertAfterAndWriteToBottomOfFile:!1,setVersionAfterUpdateModalRelease:!1,addDefaultAIProviders:!1}},Cd=class extends Q2.PluginSettingTab{constructor(l,c){super(l,c);this.plugin=c}display(){let{containerEl:l}=this;l.empty(),l.createEl("h2",{text:"QuickAdd Settings"}),this.addChoicesSetting(),this.addUseMultiLineInputPromptSetting(),this.addTemplateFolderPathSetting(),this.addAnnounceUpdatesSetting(),this.addDisableOnlineFeaturesSetting(),this.addEnableRibbonIconSetting()}addAnnounceUpdatesSetting(){let l=new Q2.Setting(this.containerEl);l.setName("Announce Updates"),l.setDesc("Display release notes when a new version is installed. This includes new features, demo videos, and bug fixes."),l.addToggle(c=>{c.setValue(C.getState().announceUpdates),c.onChange(b=>{C.setState({announceUpdates:b})})})}hide(){this.choiceView&&this.choiceView.$destroy()}addChoicesSetting(){let l=new Q2.Setting(this.containerEl);l.infoEl.remove(),l.settingEl.style.display="block",this.choiceView=new S5({target:l.settingEl,props:{app:this.app,plugin:this.plugin,choices:C.getState().choices,saveChoices:c=>{C.setState({choices:c})},macros:C.getState().macros,saveMacros:c=>{C.setState({macros:c})}}})}addUseMultiLineInputPromptSetting(){new Q2.Setting(this.containerEl).setName("Use Multi-line Input Prompt").setDesc("Use multi-line input prompt instead of single-line input prompt").addToggle(l=>l.setValue(this.plugin.settings.inputPrompt==="multi-line").setTooltip("Use multi-line input prompt").onChange(c=>{c?C.setState({inputPrompt: Line truncated
`:""}${b}`}if(this.choice.insertAfter.enabled)return await this.insertAfterHandler(b);let d=this.file?this.getFrontmatterEndPosition(this.file):null;return d?this.insertTextAfterPositionInBody(b,this.fileContent,d):`${b}${this.fileContent}`}async formatContentOnly(l){let c=await super.formatFileContent(l);return c=this.replaceLinebreakInString(c),c.trim()===""?this.fileContent:c}async insertAfterHandler(l){let c=await this.format(this.choice.insertAfter.after),b=new RegExp(`\\s*${_V(c.replace("\\n",""))}\\s*`),Z=k3(this.fileContent),d=Z.findIndex(a=>b.test(a));if(d===-1){if(this.choice.insertAfter?.createIfNotFound)return await this.createInsertAfterIfNotFound(l);EI(new Error("Unable to find insert after line in file"),"Insert After Error")}if(this.choice.insertAfter?.insertAtEnd){if(!this.file)throw new Error("Tried to get sections without file.");d=Od(Z,d,!!this.choice.insertAfter.considerSubsections)??Z.length-1}return this.insertTextAfterPositionInBody(l,this.fileContent,d)}async createInsertAfterIfNotFound(l){let b=`${this.replaceLinebreakInString(await this.format(this.choice.insertAfter.after))}
${l}`;if(this.choice.insertAfter?.createIfNotFoundLocation===Fb){let Z=this.file?this.getFrontmatterEndPosition(this.file):-1;return this.insertTextAfterPositionInBody(b,this.fileContent,Z)}if(this.choice.insertAfter?.createIfNotFoundLocation===iZ)return`${this.fileContent}
${b}`;if(this.choice.insertAfter?.createIfNotFoundLocation===rZ)try{let Z=this.app.workspace.getActiveViewOfType(P5.MarkdownView);if(!Z)throw new Error("No active view.");let W=Z.editor.getCursor().line;if(this.choice.insertAfter?.insertAtEnd){if(!this.file)throw new Error("Tried to get sections without file.");let m=k3(this.fileContent);W=Od(m,W,!!this.choice.insertAfter.considerSubsections)??m.length-1}return this.insertTextAfterPositionInBody(b,this.fileContent,W)}catch(Z){EI(Z,`Unable to insert line '${this.choice.insertAfter.after}' at cursor position`)}}getFrontmatterEndPosition(l){let c=this.app.metadataCache.getFileCache(l);return!c||!c.frontmatter?(B.logMessage("could not get frontmatter. Maybe there isn't any."),-1):c.frontmatterPosition?c.frontmatterPosition.end.line:-1}insertTextAfterPositionInBody(l,c,b){if(b===-1){let a=!this.choice.task;return`${l}${a?`
`:""}${c}`}let Z=c.split(`
`),d=Z.slice(0,b+1).join(`
`),W=Z.slice(b+1).join(`
`);return`${d}
${l}${W}`}};var qd=class{isResolved(){return!this.hasConflicts}isConflicted(){return this.hasConflicts}},wc=class extends qd{constructor(I,l,c){super(),this.left=I,this.base=l,this.right=c,this.hasConflicts=!0}static create(I){return new wc(I.left,I.base,I.right)}apply(I){return wc.create({left:I(this.left),base:I(this.base),right:I(this.right)})}},gl=class extends qd{constructor(I){super(),this.hasConflicts=!1,this.result=I}combine(I){this.result=this.result.concat(I.result)}apply(I){return new gl(I(this.result))}};var d2=class{constructor(I,l){this.left=I,this.right=l}static executeDiff(I,l){if(!I.push)throw new Error("Argument is not an array");let c=d2.diff(I,l);return new oa(I,l,c).convertToTypedOutput()}static diff(I,l){return new d2(I,l).performDiff()}performDiff(){let I=this.identifyUniquePositions();I.sort((Z,d)=>d[0]-Z[0]);let[l,c]=this.findNextChange(),b=new _d(l,c,[]);return I.forEach(Z=>{b=this.getDifferences(b,Z)}),b.changeRanges}getDifferences(I,l){let[c,b]=[I.leftChangePos,I.rightChangePos],[Z,d]=l;if(Z<c||d<b)return I;{let[W,a,m,V]=this.findPrevChange(c,b,Z-1,d-1),[N,h]=this.findNextChange(Z+1,d+1),F=this.appendChangeRange(I.changeRanges,W,a,m,V);return new _d(N,h,F)}}findNextChange(I=0,l=0){let c=this.left.slice(I)||[],b=this.right.slice(l)||[],Z=this.mismatchOffset(c,b);return[I+Z,l+Z]}findPrevChange(I,l,c,b){if(I>c||l>b)return[I,c,l,b];{let Z=this.left.slice(I,c+1).reverse()||[],d=this.right.slice(l,b+1).reverse()||[],W=this.mismatchOffset(Z,d);return[I,c-W,l,b-W]}}mismatchOffset(I,l){let c=Math.max(I.length,l.length);for(let b=0;b<c;b++)if(I[b]!==l[b])return b;return Math.min(I.length,l.length)}identifyUniquePositions(){let I=this.findUnique(this.left),l=this.findUnique(this.right),c=new Set(...I.keys()),b=new Set(...l.keys()),d=[...new Set([...c].filter(W=>b.has(W)))].map(W=>[I.get(W),l.get(W)]);return d.unshift([this.left.length,this.right.length]),d}findUnique(I){let l=new Map;I.forEach((b,Z)=>{l.set(b,new ya(Z,!l.has(b)))});let c=new Map;for(let[b,Z]of l.entries())Z.unique&&c.set(b,Z.pos);return c}appendChangeRange(I,l,c,b,Z){return l<=c&&b<=Z?I.push(new Tb(C2.change,l+1,c+1,b+1,Z+1)):l<=c?I.push(new Tb(C2.remove,l+1,c+1,b+1,b)):b<=Z&&I.push(new Tb(C2.add,l+1,l,b+1,Z+1)),I}},ya=class{constructor(I,l){this.pos=I,this.unique=l}},B1=class{constructor(I,l){this.text=I,this.low=l}},oa=class{constructor(I,l,c){this.oldTextArray=I,this.newTextArray=l,this.chunks=c,this.oldText=[],this.newText=[]}convertToTypedOutput(){let I=new ia(0,0);return this.chunks.forEach(l=>{let[c,b]=this.setTextNodeIndexes(l,I.oldIndex,I.newIndex),[Z,d]=this.appendChanges(l,I.oldIndex+c,I.newIndex+b);I.oldIndex=Z,I.newIndex=d}),this.setTheRemainingTextNodeIndexes(I.oldIndex,I.newIndex),{oldText:this.oldText,newText:this.newText}}setTextNodeIndexes(I,l,c){let b=0;for(;l+b<I.leftLo-1;)this.oldText.push(new B1(this.oldTextArray[l+b],c+b)),b+=1;let Z=0;for(;c+Z<I.rightLo-1;)this.newText.push(new B1(this.newTextArray[c+Z],l+Z)),Z+=1;return[b,Z]}appendChanges(I,l,c){for(;l<=I.leftHi-1;)this.oldText.push(this.oldTextArray[l]),l+=1;for(;c<=I.rightHi-1;)this.newText.push(this.newTextArray[c]),c+=1;return[l,c]}setTheRemainingTextNodeIndexes(I,l){let c=0;for(;I+c<this.oldTextArray.length;)this.oldText.push(new B1(this.oldTextArray[I+c],l+c)),c+=1;for(;l+c<this.newTextArray.length;)this.newText.push(new B1(this.newTextArray[l+c],I+c)),c+=1}},ia=class{constructor(I,l){this.oldIndex=I,this.newIndex=l}},C2;(function(G){G.change="change",G.add="add",G.remove="remove"})(C2||(C2={}));var Tb=class{constructor(I,l,c,b,Z){this.action=I,this.leftLo=l,this.leftHi=c,this.rightLo=b,this.rightHi=Z}},_d=class{constructor(I,l,c){this.leftChangePos=I,this.rightChangePos=l,this.changeRanges=c}};var L1=class{constructor(I,l,c,b,Z){this.code=I,this.baseLo=l,this.baseHi=c,this.sideLo=b,this.sideHi=Z}static fromChangeRange(I){return new L1(I.action,I.leftLo,I.leftHi,I.rightLo,I.rightHi)}},yc=class{constructor(I,l,c){this.left=I,this.base=l,this.right=c}static executeDiff(I,l,c){return new yc(I,l,c).getDifferences()}getDifferences(){let I=d2.diff(this.base,this.left).map(c=>L1.fromChangeRange(c)),l=d2.diff(this.base,this.right).map(c=>L1.fromChangeRange(c));return this.collapseDifferences(new $d(I,l))}collapseDifferences(I,l=[]){if(I.isFinished())return l;{let c=new $d,b=I.chooseSide(),Z=I.dequeue();return c.enqueue(b,Z),I.switchSides(),this.buildResultQueue(I,Z.baseHi,c),l.push(this.determineDifference(c,b,I.switchSides())),this.collapseDifferences(I,l)}}buildResultQueue(I,l,c){if(this.queueIsFinished(I.peek(),l))return c;{let b=I.dequeue();return c.enqueue(I.currentSide,b),l<b.baseHi?(I.switchSides(),this.buildResultQueue(I,b.baseHi,c)):this.buildResultQueue(I,l,c)}}queueIsFinished(I,l){return I.length===0||I[0].baseLo>l+1}determineDifference(I,l,c){let b=I.get(l)[0].baseLo,Z=I.get(c),d=Z[Z.length-1].baseHi,[W,a]=this.diffableEndpoints(I.get(OI.left),b,d),[m,V]=this.diffableEndpoints(I.get(OI.right),b,d),N=this.left.slice(W-1,a),h=this.right.sli Line truncated
`)}}).join(`
`)}}var _5=G=>G.join(""),tn=G=>G.split(/\b/),En=q5("<<<<<<< YOUR CHANGES","=======",">>>>>>> APP AUTHORS CHANGES",_5),un={splitFunction:tn,joinFunction:_5,conflictFunction:En};function ga(G,I,l,c={}){c=Object.assign({},un,c);let[b,Z,d]=[G,I,l].map(m=>c.splitFunction.call(c,m)),W=RG.merge(b,Z,d);return XG.collateMerge(W,c.joinFunction,c.conflictFunction)}var $5=ga;var IW=class extends R1{constructor(l,c,b,Z){super(l);this.choiceExecutor=Z;this.choice=b,this.plugin=c,this.formatter=new Pd(l,c,Z)}async run(){try{let l=await this.getFormattedPathToCaptureTo(this.choice.captureToActiveFile),c=this.getCaptureContent(),b;if(await this.fileExists(l))b=this.onFileExists.bind(this);else if(this.choice?.createFileIfItDoesntExist?.enabled)b=this.onCreateFileIfItDoesntExist.bind(this);else{B.logWarning(`The file ${l} does not exist and "Create file if it doesn't exist" is disabled.`);return}let{file:Z,newFileContent:d,captureContent:W}=await b(l,c);if(this.choice.captureToActiveFile&&!this.choice.prepend&&!this.choice.insertAfter.enabled){let a=await jZ(this.app,W,Z);pb(a,this.app)}else await this.app.vault.modify(Z,d),await a1(this.app,Z);if(this.choice.appendLink){let a=this.app.fileManager.generateMarkdownLink(Z,"");pb(a,this.app)}this.choice.openFile&&Z&&(CZ(this.app,Z)||await TZ(this.app,Z,{openInNewTab:this.choice.openFileInNewTab.enabled,direction:this.choice.openFileInNewTab.direction,focus:this.choice.openFileInNewTab.focus,mode:this.choice.openFileInMode}))}catch(l){EI(l,`Error running capture choice "${this.choice.name}"`)}}getCaptureContent(){let l;return this.choice.format.enabled?l=this.choice.format.format:l=IG,this.choice.task&&(l=`- [ ] ${l}
`),l}async getFormattedPathToCaptureTo(l){if(l){let m=this.app.workspace.getActiveFile();return Bl(m,"Cannot capture to active file - no active file."),m.path}let c=this.choice.captureTo,b=await this.formatFilePath(c),Z=b.replace(/^\/$|\/\.md$|^\.md$/,""),d=Z==="",W=d||oV(this.app,Z),a=b.startsWith("#");if(W)return this.selectFileInFolder(Z,d);if(a){let m=b.replace(/\.md$/,"");return this.selectFileWithTag(m)}return b}async selectFileInFolder(l,c){let b=l.endsWith("/")||c?l:`${l}/`,Z=m1(this.app,b);Bl(Z.length>0,`Folder ${b} is empty.`);let d=Z.map(m=>m.path),W=await B2.Suggest(this.app,d.map(m=>m.replace(b,"")),d);Bl(!!W&&W.length>0,"No file selected for capture.");let a=W.startsWith(`${b}`)?W:`${b}/${W}`;return await this.formatFilePath(a)}async selectFileWithTag(l){let c=l.startsWith("#")?l:`#${l}`,b=iV(this.app,c);Bl(b.length>0,`No files with tag ${l}.`);let Z=b.map(W=>W.path),d=await B2.Suggest(this.app,Z,Z);return Bl(!!d&&d.length>0,"No file selected for capture."),await this.formatFilePath(d)}async onFileExists(l,c){let b=this.getFileByPath(l);if(!b)throw new Error("File not found");let Z=await this.formatter.formatContentOnly(c),d=await this.app.vault.read(b),W=await this.formatter.formatContentWithFile(Z,this.choice,d,b),a=await this.app.vault.read(b),m=W;if(a!==d){let V=$5(a,d,W);Bl(!V.isSuccess,()=>`The file ${l} has been modified since the last read.
QuickAdd could not merge the versions two without conflicts, and will not modify the file.
This is in order to prevent data loss.`),m=V.joinedResults()}return{file:b,newFileContent:m,captureContent:Z}}async onCreateFileIfItDoesntExist(l,c){let b=await this.formatter.formatContentOnly(c),Z="";this.choice.createFileIfItDoesntExist.createWithTemplate&&(Z=await new Jc(this.app,this.plugin,this.choice.createFileIfItDoesntExist.template,this.choiceExecutor).run());let d=await this.createFileWithInput(l,Z),W=await this.app.vault.cachedRead(d),a=await this.formatter.formatContentWithFile(b,this.choice,W,d);return{file:d,newFileContent:a,captureContent:b}}async formatFilePath(l){let c=await this.formatter.formatFileName(l,this.choice.name);return this.normalizeMarkdownFilePath("",c)}};var lW=require("obsidian");var v2=class extends lW.FuzzySuggestModal{constructor(l,c,b){super(l.app);this.plugin=l;this.choices=c;this.choiceExecutor=new mc(this.app,this.plugin);b&&(this.choiceExecutor=b)}static Open(l,c,b){new v2(l,c,b).open()}renderSuggestion(l,c){c.empty(),lW.MarkdownRenderer.renderMarkdown(l.item.name,c,"",this.plugin),c.classList.add("quickadd-choice-suggestion")}getItemText(l){return l.name}getItems(){return this.choices}async onChooseItem(l,c){l.type==="Multi"?this.onChooseMultiType(l):await this.choiceExecutor.execute(l)}onChooseMultiType(l){let c=[...l.choices];l.name!="\u2190 Back"&&c.push(new Cc("\u2190 Back").addChoices(this.choices)),v2.Open(this.plugin,c)}};var mc=class{constructor(I,l){this.app=I;this.plugin=l;this.variables=new Map}async execute(I){switch(I.type){case"Template":{let l=I;await this.onChooseTemplateType(l);break}case"Capture":{let l=I;await this.onChooseCaptureType(l);break}case"Macro":{let l=I;await this.onChooseMacroType(l);break}case"Multi":{let l=I;this.onChooseMultiType(l);break}default:break}}async onChooseTemplateType(I){await new Kd(this.app,this.plugin,I,this).run()}async onChooseCaptureType(I){await new IW(this.app,this.plugin,I,this).run()}async onChooseMacroType(I){let l=new M2(this.app,this.plugin,I,this.plugin.settings.macros,this,this.variables);await l.run(),Object.entries(l.params.variables).forEach(([c,b])=>{this.variables.set(c,b)})}onChooseMultiType(I){v2.Open(this.plugin,I.choices,this)}};var I4={description:"Migrate to macro ID from embedded macro in macro choices.",migrate:async G=>{function I(l){if(l.type==="Multi"){let b=l,Z=b.choices.map(I);return b={...b,choices:Z},b}if(l.type!=="Macro")return l;let c=l;return c.macro&&(c.macroId=c.macro.id,delete c.macro),c}G.settings.choices=G.settings.choices.map(I),await G.saveSettings()}};var l4={description:"Use QuickAdd template folder instead of Obsidian templates plugin folder / Templater templates folder.",migrate:async G=>{try{let I=G.app.plugins.plugins.templater,l=G.app.internalPlugins.plugins.templates;if(!I&&!l){B.logMessage("No template plugin found. Skipping migration.");return}if(l){let c=l.instance.options;c.folder&&(G.settings.templateFolderPath=c.folder,B.logMessage("Migrated template folder path to Obsidian Templates' setting."))}if(I){let c=I.settings;c.template_folder&&(G.settings.templateFolderPath=c.template_folder,B.logMessage("Migrated template folder path to Templaters setting."))}}catch(I){throw B.logError("Failed to migrate template folder path."),I}}};function cW(G){return G===null||typeof G!="object"||!("type"in G)||!("choices"in G)?!1:G.type==="Multi"&&G.choices!==void 0}function GW(G){return G===null||typeof G!="object"||!("choice"in G)?!1:G.choice!==void 0}function za(G){return typeof G!="object"||G===null?!1:"incrementFileName"in G}function c4(G){for(let I of G)cW(I)&&(I.choices=c4(I.choices)),za(I)&&(I.setFileExistsBehavior=!0,I.fileExistsMode="Increment the file name",delete I.incrementFileName);return G}function Qn(G){for(let I of G)if(Array.isArray(I.commands))for(let l of I.commands)GW(l)&&za(l.choice)&&(l.choice.setFileExistsBehavior=!0,l.choice.fileExistsMode="Increment the file name",delete l.choice.incrementFileName);return G}var vn={description:"'Increment file name' setting moved to 'Set default behavior if file already exists' setting",migrate:async G=>{let I=structuredClone(G.settings.choices),l=c4(I),c=structuredClone(G.settings.macros),b=Qn(c);G.settings.choices=structuredClone(l),G.settings.macros=structuredClone(b)}},G4=vn;function xa(G){return G.type==="Capture"}function b4(G){for(let I of G)cW(I)&&(I.choices=b4(I.choices)),xa(I)&&I.insertAfter.enabled&&I.prepend&&(I.prepend=!1);return G}function Jn(G){for(let I of G)if(Array.isArray(I.commands))for(let l of I.commands)GW(l)&&xa(l.choice)&&l.choice.insertAfter.enabled&&l.choice.prepend&&(l.choice.prepend=!1);return G}var wn={description:"Mutual exclusion of insertAfter and writeToBottomOfFile settings. If insertAfter is enabled, writeToBottomOfFile is disabled. To support changes in settings UI.",migrate:async G=>{let I=structuredClone(G.settings.choices),l=b4(I),c=structuredClone(G.settings.macros),b=Jn(c);G.settings.choices=l,G.settings.macros=b}},Z4=wn;var yn={description:"Set version to the current plugin ve Line truncated
${b}
QuickAdd will now revert to backup.`),G.settings=c}}G.saveSettings()}var a4=rn;var f1=require("obsidian");async function An(G,I,l){let c=await fetch(`https://api.github.com/repos/${G}/${I}/releases`),b=await c.json();if(!c.ok&&"message"in b||!Array.isArray(b))throw new Error(`Failed to fetch releases: ${b.message??"Unknown error"}`);let Z=b.findIndex(d=>d.tag_name===l);if(Z===-1)throw new Error(`Could not find release with tag ${l}`);return b.slice(0,Z).filter(d=>!d.draft&&!d.prerelease)}function gn(G,I=1){let l=G.split(`
`);for(let c=0;c<l.length;c++)l[c].startsWith("#")&&(l[c]="#".repeat(I)+l[c]);return l.join(`
`)}var bW=class extends f1.Modal{constructor(l,c){super(l);this.previousVersion=c,this.releaseNotesPromise=An("chhoumann","quickadd",c),this.releaseNotesPromise.then(b=>{if(this.releases=b,this.releases.length===0){this.close();return}this.display()}).catch(b=>{B.logError(`Failed to fetch release notes: ${b}`)})}onOpen(){let{contentEl:l}=this;l.empty(),l.createEl("h1",{text:"Fetching release notes..."})}onClose(){let{contentEl:l}=this;l.empty()}display(){let{contentEl:l}=this;l.empty(),l.classList.add("quickadd-update-modal-container");let c=`### New in QuickAdd v${this.releases[0].tag_name}
`,b="Thank you for using QuickAdd! If you like the plugin, please consider supporting me by buying me a coffee. With your sponsorship, I'll be able to contribute more to my existing projects, start new ones, and be more responsive to issues & feature requests.",Z='<div class="quickadd-bmac-container"><a href="https://www.buymeacoffee.com/chhoumann" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 40px !important;width: 144px !important;" ></a></div>',d=l.createDiv("quickadd-update-modal"),W=this.releases.map(N=>N.body).join(`
---
`),a=`And now, here is everything new in QuickAdd since your last update (v${this.previousVersion}):`,V=`${c}
${b}
${Z}
I'd love to get your feedback on QuickAdd! Please fill out this <a href="https://forms.gle/WRq1ewcKK8qmkqps6">feedback form</a> to let me know what you think.
${a}
---
${gn(W)}`;f1.MarkdownRenderer.renderMarkdown(V,d,this.app.vault.getRoot().path,new f1.Component)}};var PI=require("obsidian");var ZW=class extends PI.Modal{constructor(l,c){super(l);this.showAdvancedSettings=!1;this.settings=c,this.waitForClose=new Promise((b,Z)=>{this.rejectPromise=Z,this.resolvePromise=b}),this.open(),this.display()}get systemPromptTokenLength(){let l=X2(this.settings.model);return l?Ll(this.settings.systemPrompt,l):Number.POSITIVE_INFINITY}display(){this.contentEl.empty();let l=this.contentEl.createEl("h2",{text:`${this.settings.name} Settings`});l.style.textAlign="center",l.style.cursor="pointer",l.style.userSelect="none",l.addEventListener("click",async()=>{try{let c=await vI.Prompt(this.app,"New name",this.settings.name,this.settings.name);c&&c!==this.settings.name&&(this.settings.name=c,this.reload())}catch{}}),this.addResultJoinerSetting(this.contentEl),this.addChunkSeparatorSetting(this.contentEl),this.addMaxTokensSetting(this.contentEl),this.addMergeChunksSetting(this.contentEl),this.addModelSetting(this.contentEl),this.addOutputVariableNameSetting(this.contentEl),this.addShowAdvancedSettingsToggle(this.contentEl),this.showAdvancedSettings&&(this.settings.modelParameters||(this.settings.modelParameters={}),this.addTemperatureSetting(this.contentEl),this.addTopPSetting(this.contentEl),this.addFrequencyPenaltySetting(this.contentEl),this.addPresencePenaltySetting(this.contentEl)),this.addSystemPromptSetting(this.contentEl)}reload(){this.contentEl.empty(),this.display()}addModelSetting(l){new PI.Setting(l).setName("Model").setDesc("The model the AI Assistant will use").addDropdown(c=>{let b=k2();for(let Z of b)c.addOption(Z,Z);c.addOption("Ask me","Ask me"),c.setValue(this.settings.model),c.onChange(Z=>{this.settings.model=Z,this.reload()})})}addOutputVariableNameSetting(l){new PI.Setting(l).setName("Output variable name").setDesc("The name of the variable used to store the AI Assistant output, i.e. {{value:output}}.").addText(c=>{c.setValue(this.settings.outputVariableName).onChange(b=>{this.settings.outputVariableName=b})})}addSystemPromptSetting(l){new PI.Setting(l).setName("System Prompt").setDesc("The system prompt for the AI Assistant");let c=this.contentEl.createEl("div"),b=c.createEl("span");b.style.color="var(--text-muted-color)",c.appendChild(b);let Z=new PI.TextAreaComponent(l);Z.setValue(this.settings.systemPrompt).onChange(async m=>{this.settings.systemPrompt=m,W.innerText=await d.format(m),a()}),new ul(this.app,Z.inputEl,nI.instance);let d=new Tl(this.app,nI.instance);Z.inputEl.style.width="100%",Z.inputEl.style.height="100px",Z.inputEl.style.minHeight="100px",Z.inputEl.style.marginBottom="1em";let W=this.contentEl.createEl("span"),a=(0,PI.debounce)(()=>{b.innerText=`Token count: ${this.systemPromptTokenLength}`},50);a(),(async()=>W.innerText=await d.format(this.settings.systemPrompt??""))()}addShowAdvancedSettingsToggle(l){new PI.Setting(l).setName("Show advanced settings").setDesc("Show advanced settings such as temperature, top p, and frequency penalty.").addToggle(c=>{c.setValue(this.showAdvancedSettings),c.onChange(b=>{this.showAdvancedSettings=b,this.reload()})})}addTemperatureSetting(l){new PI.Setting(l).setName("Temperature").setDesc("Sampling temperature. Higher values like 0.8 makes the output more random, whereas lower values like 0.2 will make it more focused and deterministic. The default is 1.").addSlider(c=>{c.setLimits(0,1,.1),c.setDynamicTooltip(),c.setValue(this.settings.modelParameters.temperature??1),c.onChange(b=>{this.settings.modelParameters.temperature=b})})}addTopPSetting(l){new PI.Setting(l).setName("Top P").setDesc("Nucleus sampling - consider this an alternative to temperature. The model considers the results of the tokens with top_p probability mass. 0.1 means only tokens compromising the top 10% probability mass are considered. The default is 1.").addSlider(c=>{c.setLimits(0,1,.1),c.setDynamicTooltip(),c.setValue(this.settings.modelParameters.top_p??1),c.onChange(b=>{this.settings.modelParameters.top_p=b})})}addFrequencyPenaltySetting(l){new PI.Setting(l).setName("Frequency Penalty").setDesc("Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim. The default is 0.").addSlider(c=>{c.setLimits(0,2,.1),c.setDynamicTooltip(),c.setValue(this.settings.modelParameters.frequency_penalty??0),c.onChange(b=>{this.settings.modelParameters.frequency_penalty=b})})}addPresencePenaltySetting(l){new PI.Setting(l).setName("Presence Penalty").setDesc("Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics. The default is 0.").addSlider(c=>{c.setLimits(0,2,.1),c.setDynamicTooltip(),c.setValue(this.settings.modelParameters.presence_penalty??0),c.onChange(b=>{this.settings.modelParameters.presence_penalty=b})})}addResultJoinerSetting(l){new PI.Setting(l).setName("Result Jo Line truncated
/* nosourcemap */