varoE=Object.create;varHn=Object.defineProperty;varaE=Object.getOwnPropertyDescriptor;varlE=Object.getOwnPropertyNames;varuE=Object.getPrototypeOf,cE=Object.prototype.hasOwnProperty;varG=(t=>typeofrequire<"u"?require:typeofProxy<"u"?newProxy(t,{get:(e,r)=>(typeofrequire<"u"?require:e)[r]}):t)(function(t){if(typeofrequire<"u")returnrequire.apply(this,arguments);throwError('Dynamic require of "'+t+'" is not supported')});varjn=(t,e)=>()=>(t&&(e=t(t=0)),e);varT=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Js=(t,e)=>{for(varrine)Hn(t,r,{get:e[r],enumerable:!0});},Fc=(t,e,r,n)=>{if(e&&typeofe=="object"||typeofe=="function")for(letsoflE(e))!cE.call(t,s)&&s!==r&&Hn(t,s,{get:()=>e[s],enumerable:!(n=aE(e,s))||n.enumerable});returnt};varfr=(t,e,r)=>(r=t!=null?oE(uE(t)):{},Fc(e||!t||!t.__esModule?Hn(r,"default",{value:t,enumerable:!0}):r,t)),Xs=t=>Fc(Hn({},"__esModule",{value:!0}),t);varto=T((Yk,$c)=>{varkc=Object.prototype.toString;$c.exports=function(e){varr=kc.call(e),n=r==="[object Arguments]";returnn||(n=r!=="[object Array]"&&e!==null&&typeofe=="object"&&typeofe.length=="number"&&e.length>=0&&kc.call(e.callee)==="[object Function]"),n};});varzc=T((Jk,Wc)=>{varjc;Object.keys||(Yr=Object.prototype.hasOwnProperty,ro=Object.prototype.toString,Lc=to(),no=Object.prototype.propertyIsEnumerable,Dc=!no.call({toString:null},"toString"),qc=no.call(function(){},"prototype"),Jr=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],Gn=function(t){vare=t.constructor;returne&&e.prototype===t},Bc={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},Uc=function(){if(typeofwindow>"u")return!1;for(vartinwindow)try{if(!Bc["$"+t]&&Yr.call(window,t)&&window[t]!==null&&typeofwindow[t]=="object")try{Gn(window[t]);}catch{return!0}}catch{return!0}return!1}(),Hc=function(t){if(typeofwindow>"u"||!Uc)returnGn(t);try{returnGn(t)}catch{return!1}},jc=function(e){varr=e!==null&&typeofe=="object",n=ro.call(e)==="[object Function]",s=Lc(e),i=r&&ro.call(e)==="[object String]",o=[];if(!r&&!n&&!s)thrownewTypeError("Object.keys called on a non-object");vara=qc&&n;if(i&&e.length>0&&!Yr.call(e,0))for(varc=0;c<e.length;++c)o.push(String(c));if(s&&e.length>0)for(vard=0;d<e.length;++d)o.push(String(d));elsefor(varuine)!(a&&u==="prototype")&&Yr.call(e,u)&&o.push(String(u));if(Dc)for(varp=Hc(e),_=0;_<Jr.length;++_)!(p&&Jr[_]==="constructor")&&Yr.call(e,Jr[_])&&o.push(Jr[_]);returno});varYr,ro,Lc,no,Dc,qc,Jr,Gn,Bc,Uc,Hc;Wc.exports=jc;});varKn=T((Xk,Kc)=>{varpE=Array.prototype.slice,mE=to(),Gc=Object.keys,Vn=Gc?function(e){returnGc(e)}:zc(),Vc=Object.keys;Vn.shim=function(){if(Object.keys){vare=function(){varr=Object.keys(arguments);returnr&&r.length===arguments.length}(1,2);e||(Object.keys=function(n){returnmE(n)?Vc(pE.call(n)):Vc(n)});}elseObject.keys=Vn;returnObject.keys||Vn};Kc.exports=Vn;});varZn=T((Qk,Zc)=>{Zc.exports=function(){if(typeofSymbol!="function"||typeofObject.getOwnPropertySymbols!="function")return!1;if(typeofSymbol.iterator=="symbol")return!0;vare={},r=Symbol("test"),n=Object(r);if(typeofr=="string"||Object.prototype.toString.call(r)!=="[object Symbol]"||Object.prototype.toString.call(n)!=="[object Symbol]")return!1;vars=42;e[r]=s;for(rine)return!1;if(typeofObject.keys=="function"&&Object.keys(e).length!==0||typeofObject.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(e).length!==0)return!1;vari=Object.getOwnPropertySymbols(e);if(i.length!==1||i[0]!==r||!Object.prototype.propertyIsEnumerable.call(e,r))return!1;if(typeofObject.getOwnPropertyDescriptor=="function"){varo=Object.getOwnPropertyDescriptor(e,r);if(o.value!==s||o.enumerable!==!0)return!1}return!0};});vario=T((e2,Jc)=>{varYc=typ
`),te=SN.bind(null,{[Fb]:"",[Nb]:o,[$b]:R,[kb]:bu,[vu]:$,[Lb]:F}),I="";p!==null&&(_===void 0?I=te(p):I=te(Object.assign({},p,{name:_})));let O=a instanceof Function?a:a?Hb:HN,X=O().indexOf(":")+1;if(A&&!y)throw Error("customLevels is required if useOnlyCustomLevels is set true");if(v&&typeof v!="function")throw Error(`Unknownmixintype"${typeof v}"-expected"function"`);if(U&&typeof U!="string")throw Error(`UnknownmsgPrefixtype"${typeof U}"-expected"string"`);yN(m,y,A);let Q=Ub(y,A);return Object.assign(e,{levels:Q,[LN]:A,[IN]:n,[RN]:O,[TN]:X,[kb]:bu,[vu]:$,[$b]:R,[ON]:V,[MN]:z,[FN]:c,[NN]:d,[kN]:u,[qN]:u?`,${JSON.stringify(u)}:{`:"",[Nb]:o,[$N]:v,[BN]:E,[Fb]:I,[Lb]:F,[DN]:x,silent:AN,onChild:j,[UN]:U}),Object.setPrototypeOf(e,_N()),wN(e),e[PN](m),e}rt.exports=Su;rt.exports.destination=(t=process.stdout.fd)=>typeof t=="object"?(t.dest=Mb(t.dest||process.stdout.fd),Ob(t)):Ob({dest:Mb(t),minLength:0});rt.exports.transport=su();rt.exports.multistream=Pb();rt.exports.levels=Ub();rt.exports.stdSerializers=KN;rt.exports.stdTimeFunctions=Object.assign({},qb);rt.exports.symbols=Bb;rt.exports.version=xN;rt.exports.default=Su;rt.exports.pino=Su;});var Yb={};Js(Yb,{RotatingFileStream:()=>Rs,RotatingFileStreamError:()=>Pn,createStream:()=>dk});async function zb(t){return new Promise(e=>fs.access(t,fs.constants.F_OK,r=>e(!r)))}function Gb(t){return (e,r,n)=>{let s=parseInt(n,10);if(e!=="number"||s!==n||s<=0)throw new Error(`'${t}'optionmustbeapositiveintegernumber`)}}function Au(t,e){return (r,n,s)=>{if(r!=="string")throw new Error(`Don't know how to handle 'options.${t}' type: ${r}`);n[t]=e(s);}}function Zb(t,e,r){let n={};if(n.num=parseInt(t,10),isNaN(n.num))throw new Error(`Unknown 'options.${e}' format: ${t}`);if(n.num<=0)throw new Error(`A positive integer number is expected for 'options.${e}'`);if(n.unit=t.replace(/^[ 0]*/g,"").substr((n.num+"").length,1),n.unit.length===0)throw new Error(`Missing unit for 'options.${e}'`);if(!r[n.unit])throw new Error(`Unknown 'options.${e}' unit: ${n.unit}`);return n}function xu(t,e,r){if(parseInt(r/t.num,10)*t.num!==r)throw new Error(`An integer divider of ${r} is expected as ${e} for 'options.interval'`)}function lk(t){let e=Zb(t,"interval",ak);switch(e.unit){case"h":xu(e,"hours",24);break;case"m":xu(e,"minutes",60);break;case"s":xu(e,"seconds",60);break}return e}function Vb(t){let e=Zb(t,"size",uk);return e.unit==="K"?e.num*1024:e.unit==="M"?e.num*1048576:e.unit==="G"?e.num*1073741824:e.num}function ck(t){let e={};for(let r in t){let n=t[r],s=typeof n;if(!(r in Kb))throw new Error(`Unknownoption:${r}`);e[r]=t[r],Kb[r](s,e,n);}return e.path||(e.path=""),e.interval||(delete e.immutable,delete e.initialRotation,delete e.intervalBoundary),e.rotate&&(delete e.history,delete e.immutable,delete e.maxFiles,delete e.maxSize,delete e.intervalBoundary),e.immutable&&delete e.compress,e.intervalBoundary||delete e.initialRotation,e}function fk(t,e,r){return n=>n?`${t}.${n}${e&&!r?".gz":""}`:t}function hk(t,e,r){let n=s=>(s>9?"":"0")+s;return (s,i)=>{if(!s)return t;let o=s.getFullYear()+""+n(s.getMonth()+1),a=n(s.getDate()),c=n(s.getHours()),d=n(s.getMinutes());return o+a+"-"+c+d+"-"+n(i)+"-"+t+(e&&!r?".gz":"")}}function dk(t,e){if(typeof e>"u")e={};else if(typeof e!="object")throw new Error(`The"options"argumentmustbeoftypeobject.Receivedtype${typeofe}`);let r=ck(e),{compress:n,omitExtension:s}=r,i;if(typeof t=="string")i=e.rotate?fk(t,n!==void 0,s):hk(t,n!==void 0,s);else if(typeof t=="function")i=t;else throw new Error(`The"filename"argumentmustbeoneoftypestringorfunction.Receivedtype${typeoft}`);return new Rs(i,r)}var Pn,Rs,ak,uk,Kb,Jb=jn(()=>{Pn=class extends Error{code="RFS-TOO-MANY";constructor(){super("Too many destination file attempts");}},Rs=class extends stream.Writable{createGzip;exec;file;filename;finished;fsCreateReadStream;fsCreateWriteStream;fsOpen;fsReadFile;fsStat;fsUnlink;generator;initPromise;last;maxTimeout;next;options;prev;rotation;size;stdout;timeout;timeoutPromise;constructor(e,r){let{encoding:n,history:s,maxFiles:i,maxSize:o,path:a}=
`),e];}catch(a){if(a.code!=="ENOENT")throw a}for(let a of o)if(a)try{let c=await this.fsStat(a);c.isFile()?i.push({name:a,size:c.size,time:c.ctime.getTime()}):this.emit("warning",new Error(`File'${a}'containedinhistoryisnotaregularfile`));}catch(c){if(c.code!=="ENOENT")throw c}if(i.sort((a,c)=>a.time-c.time),n)for(;i.length>n;){let a=i.shift();await this.unlink(a.name),this.emit("removed",a.name,!0);}if(s)for(;i.reduce((a,c)=>a+c.size,0)>s;){let a=i.shift();await this.unlink(a.name),this.emit("removed",a.name,!1);}await promises.writeFile(r,i.map(a=>a.name).join(`
`,"utf-8"),this.emit("history");}async immutate(e){let{size:r}=this.options,n=this.now();for(let s=1;s<1e3;++s){let i=0,o;this.filename=this.options.path+this.generator(n,s);try{o=await this.fsStat(this.filename);}catch(a){if(a.code!=="ENOENT")throw a}if(o){if(i=o.size,!o.isFile())throw new Error(`Can't write on: '${this.filename}' (it is not a file)`);if(r&&i>=r)continue}if(e)return this.last=this.filename,this.reopen(i);await this.rotated(this.last),this.last=this.filename;return}throw new Pn}async unlink(e){try{await this.fsUnlink(e);}catch(r){if(r.code!=="ENOENT")throw r;this.emit("warning",r);}}};ak={M:!0,d:!0,h:!0,m:!0,s:!0};uk={B:!0,G:!0,K:!0,M:!0};Kb={encoding:(t,e,r)=>new util.TextDecoder(r),immutable:()=>{},initialRotation:()=>{},interval:Au("interval",lk),intervalBoundary:()=>{},maxFiles:Gb("maxFiles"),maxSize:Au("maxSize",Vb),mode:()=>{},omitExtension:()=>{},rotate:Gb("rotate"),size:Au("size",Vb),teeToStdout:()=>{},compress:(t,e,r)=>{if(!r)throw new Error("A value for 'options.compress' must be specified");if(t==="boolean")return e.compress=(n,s)=>`cat ${n} | gzip -c9 > ${s}`;if(t!=="function"){if(t!=="string")throw new Error(`Don'tknowhowtohandle'options.compress'type:${t}`);if(r!=="gzip")throw new Error(`Don't know how to handle compression method: ${r}`)}},history:t=>{if(t!=="string")throw new Error(`Don'tknowhowtohandle'options.history'type:${t}`)},path:(t,e,r)=>{if(t!=="string")throw new Error(`Don't know how to handle 'options.path' type: ${t}`);r[r.length-1]!==path.sep&&(e.path=r+path.sep);}};});var ev={};Js(ev,{allLoggers:()=>Lr,rootLogger:()=>be});var Ts,Xb,Qb,be,Lr,_t=jn(()=>{Ts=fr(jb());Ft();Xb=(Jb(),Xs(Yb)).createStream("tabby-agent.log",{path:G("path").join(G("os").homedir(),".tabby-client","agent","logs"),size:"10M",interval:"1d"}),Qb={serializers:{error:Ts.default.stdSerializers.err}},be=Xb?(0, Ts.default)(Qb,Xb):(0, Ts.default)(Qb);be.level="silent";Lr=[be];be.onChild=t=>{Lr.push(t);};});var rv=T((gD,tv)=>{tv.exports=function(){function t(n,s){function i(){this.constructor=n;}i.prototype=s.prototype,n.prototype=new i;}function e(n,s,i,o,a,c){this.message=n,this.expected=s,this.found=i,this.offset=o,this.line=a,this.column=c,this.name="SyntaxError";}t(e,Error);function r(n){var s=arguments.length>1?arguments[1]:{},i={},o={start:hc},a=hc,d=function(){return Oc},u=i,p="#",_={type:"literal",value:"#",description:'"#"'},m=void 0,y={type:"any",description:"any character"},v="[",E={type:"literal",value:"[",description:'"["'},A="]",w={type:"literal",value:"]",description:'"]"'},x=function(l){Zs(Pe("ObjectPath",l,Te,Ie));},M=function(l){Zs(Pe("ArrayPath",l,Te,Ie));},k=function(l,h){return l.concat(h)},j=function(l){return [l]},U=function(l){return l},$=".",F={type:"literal",value:".",description:'"."'},B="=",R={type:"literal",value:"=",description:'"="'},z=function(l,h){Zs(Pe("Assign",h,Te,Ie,l));},V=function(l){return l.join("")},te=function(l){return l.value},I='"""',O={type:"literal",value:'"""',description:'"\\"\\"\\""'},X=null,Q=function(l){return Pe("String",l.join(""),Te,Ie)},ie='"',Ne={type:"literal",value:'"',description:'"\\""'},ve="'''",Et={type:"literal",value:"'''",description:`"'''"`},Hr="'",At={type:"literal",value:"'",description:`"'"`},nt=function(l){return l},se=function(l){return l},lr="\\",Hs={type:"literal",value:"\\",description:'"\\\\"'},Z=function(){return ""},he="e",W={type:"literal",value:"e",description:'"e"'},ne="E",de={type:"literal",value:"E",description:'"E"'},Re=function(l,h){return Pe("Float",parseFloat(l+"e"+h),Te,Ie)},ge=function(l){return Pe("Float",parseFloat(l),Te,Ie)},Wt="+",xt={type:"literal",value:"+",description:'"+"'},ju=function(l){return l.join("")},jr="-",Wr={type:"literal",value:"-",description:'"-"'},Wu=function(l){return "-"+l.join("")},jv=function(l){return Pe("Integer",parseInt(l,10),Te,Ie)},zu="true",Wv={type:"literal",value:"true",description:'"true"'},zv=function(){return Pe("Boolean",!0,Te,Ie)},Gu="false",Gv={type:"literal",value:"false",description:'"false"'},Vv=function(){returnPe("Boolean",!1,Te,Ie)},Kv=function(){returnPe("Arra
`},ac="\\f",NS={type:"literal",value:"\\f",description:'"\\\\f"'},kS=function(){return "\f"},lc="\\r",$S={type:"literal",value:"\\r",description:'"\\\\r"'},LS=function(){return "\r"},uc="\\U",DS={type:"literal",value:"\\U",description:'"\\\\U"'},cc=function(l){return iE(l.join(""))},fc="\\u",qS={type:"literal",value:"\\u",description:'"\\\\u"'},f=0,Y=0,Vr=0,js={line:1,column:1,seenCR:!1},Ln=0,Ws=[],D=0,q={},Dn;if("startRule"in s){if(!(s.startRule in o))throw new Error(`Can't start parsing from rule "`+s.startRule+'".');a=o[s.startRule];}functionTe(){returnzs(Y).line}functionIe(){returnzs(Y).column}functionzs(l){functionh(g,b,S){varP,N;for(P=b;P<S;P++)N=n.charAt(P),N===`
`)[0],w,x=A.match(QUERY_WORD_REGEX)[0];switch(v){case 2:w=new RangeError(`Badnodename'${x}'`);break;case 3:w=new RangeError(`Badfieldname'${x}'`);break;case 4:w=new RangeError(`Badcapturename@${x}`);break;case 5:w=new TypeError(`Badpatternstructureatoffset${E}:'${A}'...`),x="";break;default:w=new SyntaxError(`Badsyntaxatoffset${E}:'${A}'...`),x="";}throw w.index=E,w.length=x.length,C._free(n),w}let i=C._ts_query_string_count(s),o=C._ts_query_capture_count(s),a=C._ts_query_pattern_count(s),c=new Array(o),d=new Array(i);for(let v=0;v<o;v++){let E=C._ts_query_capture_name_for_id(s,v,TRANSFER_BUFFER),A=getValue(TRANSFER_BUFFER,"i32");c[v]=UTF8ToString(E,A);}for(let v=0;v<i;v++){let E=C._ts_query_string_value_for_id(s,v,TRANSFER_BUFFER),A=getValue(TRANSFER_BUFFER,"i32");d[v]=UTF8ToString(E,A);}let u=new Array(a),p=new Array(a),_=new Array(a),m=new Array(a),y=new Array(a);for(let v=0;v<a;v++){let E=C._ts_query_predicates_for_pattern(s,v,TRANSFER_BUFFER),A=getValue(TRANSFER_BUFFER,"i32");m[v]=[],y[v]=[];let w=[],x=E;for(let M=0;M<A;M++){let k=getValue(x,"i32");x+=SIZE_OF_INT;let j=getValue(x,"i32");if(x+=SIZE_OF_INT,k===PREDICATE_STEP_TYPE_CAPTURE)w.push({type:"capture",name:c[j]});else if(k===PREDICATE_STEP_TYPE_STRING)w.push({type:"string",value:d[j]});else if(w.length>0){if(w[0].type!=="string")throw new Error("Predicates must begin with a literal value");let U=w[0].value,$=!0;switch(U){case"not-eq?":$=!1;case"eq?":if(w.length!==3)throw new Error("Wrong number of arguments to `#eq?` predicate. Expected 2, got "+(w.length-1));if(w[1].type!=="capture")throw new Error(`Firstargumentof\`#eq?\` predicate must be a capture. Got "${w[1].value}"`);if(w[2].type==="capture"){letz=w[1].name,V=w[2].name;y[v].push(function(te){letI,O;for(letXofte)X.name===z&&(I=X.node),X.name===V&&(O=X.node);returnI===void0||O===void0||I.text===O.text===$});}else{letz=w[1].name,V=w[2].value;y[v].push(function(te){for(letIofte)if(I.name===z)returnI.node.text===V===$;return!0});}break;case"not-match?":$=!1;case"match?":if(w.length!==3)thrownewError(`Wrong number of arguments to \`#match?\` predicate. Expected 2, got ${w.length-1}.`);if(w[1].type!=="capture")thrownewError(`First argument of \`#match?\` predicate must be a capture. Got "${w[1].value}".`);if(w[2].type!=="string")thrownewError(`Second argument of \`#match?\` predicate must be a string. Got @${w[2].value}.`);letF=w[1].name,B=newRegExp(w[2].value);y[v].push(function(z){for(letVofz)if(V.name===F)returnB.test(V.node.text)===$;return!0});break;case"set!":if(w.length<2||w.length>3)thrownewError(`Wrong number of arguments to \`#set!\` predicate. Expected 1 or 2. Got ${w.length-1}.`);if(w.some(z=>z.type!=="string"))thrownewError('Arguments to `#set!` predicate must be a strings.".');u[v]||(u[v]={}),u[v][w[1].value]=w[2]?w[2].value:null;break;case"is?":case"is-not?":if(w.length<2||w.length>3)thrownewError(`Wrong number of arguments to \`#${U}\` predicate. Expected 1 or 2. Got ${w.length-1}.`);if(w.some(z=>z.type!=="string"))thrownewError(`Arguments to \`#${U}\` predicate must be a strings.".`);letR=U==="is?"?p:_;R[v]||(R[v]={}),R[v][w[1].value]=w[2]?w[2].value:null;break;default:m[v].push({operator:U,operands:w.slice(1)});}w.length=0;}}Object.freeze(u[v]),Object.freeze(p[v]),Object.freeze(_[v]);}returnC._free(n),newQuery(INTERNAL,s,c,y,m,Object.freeze(u),Object.freeze(p),Object.freeze(_))}staticload(e){letr;if(einstanceofUint8Array)r=Promise.resolve(e);else{lets=e;if(typeofprocess<"u"&&process.versions&&process.versions.node){leti=G("fs");r=Promise.resolve(i.readFileSync(s));}elser=fetch(s).then(i=>i.arrayBuffer().then(o=>{if(i.ok)returnnewUint8Array(o);{leta=newTextDecoder("utf-8").decode(o);thrownewError(`Language.load failed with status ${i.status}.
`,lv={server:"object","server.endpoint":"string","server.token":"string","server.requestHeaders":"object","server.requestTimeout":"number",completion:"object","completion.prompt":"object","completion.prompt.experimentalStripAutoClosingCharacters":"boolean","completion.prompt.maxPrefixLines":"number","completion.prompt.maxSuffixLines":"number","completion.debounce":"object","completion.debounce.mode":"string","completion.debounce.interval":"number","completion.timeout":"number",postprocess:"object","postprocess.limitScopeByIndentation":"object","postprocess.limitScopeByIndentation.experimentalKeepBlockScopeWhenCompletingLine":"boolean",logs:"object","logs.level":"string",anonymousUsageTracking:"object","anonymousUsageTracking.disable":"boolean"};function yk(t,e,r){typeof Ci(t,e)!==r&&Ri(t,e);}function wk(t){let e={...t};for(let r in lv)yk(e,r,lv[r]);return e}var Dr=(()=>{let t=G("events"),e=Oa(),r=ov(),n=Il(),s=xi();class i extends t{constructor(d){super();this.data={};this.watcher=null;this.logger=(_t(),Xs(ev)).rootLogger.child({component:"ConfigFile"});this.filepath=d;}get config(){return this.data}async load(){try{let d=await e.readFile(this.filepath,"utf8"),u=r.parse(d);if(Object.keys(u).length===0&&d.trim()!==av.trim()){await this.createTemplate();return}this.data=wk(u);}catch(d){d.code==="ENOENT"?await this.createTemplate():this.logger.error({error:d},"Failed to load config file");}}async createTemplate(){try{await e.outputFile(this.filepath,av);}catch(d){this.logger.error({error:d},"Failed to create config template file");}}watch(){this.watcher=n.watch(this.filepath,{interval:1e3});let d=async()=>{let u=this.data;await this.load(),s(u,this.data)||super.emit("updated",this.data);};this.watcher.on("add",d),this.watcher.on("change",d);}}let o=G("path").join(G("os").homedir(),".tabby-client","agent","config.toml");return new i(o)})();var Mn=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,cv=new Set,Ru=typeof process=="object"&&process?process:{},fv=(t,e,r,n)=>{typeof Ru.emitWarning=="function"?Ru.emitWarning(t,e,r,n):console.error(`[${r}]${e}:${t}`);},Ps=globalThis.AbortController,uv=globalThis.AbortSignal;if(typeof Ps>"u"){uv=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(n,s){this._onabort.push(s);}},Ps=class{constructor(){e();}signal=new uv;abort(n){if(!this.signal.aborted){this.signal.reason=n,this.signal.aborted=!0;for(let s of this.signal._onabort)s(n);this.signal.onabort?.(n);}}};let t=Ru.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",e=()=>{t&&(t=!1,fv("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",e));};}var bk=t=>!cv.has(t),Ut=t=>t&&t===Math.floor(t)&&t>0&&isFinite(t),hv=t=>Ut(t)?t<=Math.pow(2,8)?Uint8Array:t<=Math.pow(2,16)?Uint16Array:t<=Math.pow(2,32)?Uint32Array:t<=Number.MAX_SAFE_INTEGER?qr:null:null,qr=class extends Array{constructor(e){super(e),this.fill(0);}},Tu=class t{heap;length;static#l=!1;static create(e){let r=hv(e);if(!r)return [];t.#l=!0;let n=new t(e,r);return t.#l=!1,n}constructor(e,r){if(!t.#l)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new r(e),this.length=0;}push(e){this.heap[this.length++]=e;}pop(){return this.heap[--this.length]}},Os=class t{#l;#f;#y;#p;#I;ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#n;#m;#i;#r;#e;#u;#h;#a;#s;#_;#o;#S;#E;#g;#w;#x;#c;static unsafeExposeInternals(e){return {starts:e.#E,ttls:e.#g,sizes:e.#S,keyMap:e.#i,keyList:e.#r,valList:e.#e,next:e.#u,prev:e.#h,get head(){return e.#a},get tail(){ret
`,r);return n<0?t.length:n}function Pk(t,e){for(let r of e){let n=t;for(;n;){if(r.includes(n.type))return n;n=n.parent;}}return t}function Tv(t){return async e=>{let{position:r,text:n,language:s,prefix:i,suffix:o}=t;if(!Fu.includes(s))return e;let a=Ur[s],c=await ks(a),d=i+e+o,u=c.parse(d),p=Tk(d,r),_=Ik(d,r),m=Pk(u.rootNode.namedDescendantForIndex(p,_),Rv[a]);return m.endIndex<r+e.length?(Ce.debug({languageConfig:a,text:n,updatedText:d,position:r,lineBegin:p,lineEnd:_,scope:{type:m.type,start:m.startIndex,end:m.endIndex}},"Remove content out of syntax scope"),e.slice(0,m.endIndex-r)):e}}function Iv(t,e){return r=>e.experimentalSyntax&&Fu.includes(t.language)?Tv(t)(r):Mu(t,e.indentation)(r)}var Nu=t=>e=>{let {prefixLines:r,suffixLines:n}=t;_e(e);let i=e,o=r[r.length-1]??"",a=n[0]??"";return !ae(o)&&o.match(/\s$/)&&(i=i.trimStart()),(ae(a)||!ae(a)&&a.match(/^\s/))&&(i=i.trimEnd()),i};var ku=t=>e=>{let{suffixLines:r}=t,n=_e(e),s=0;for(;s<n.length&&ae(n[s]);)s++;let i=0;for(;i<r.length&&ae(r[i]);)i++;let o=Math.min(3,n.length-s,r.length-i);if(o<1)return e;let a=n.slice(s,s+o).join("").trim(),c=r.slice(i,i+o).join("").trim(),d=Math.max(1,.05*a.length,.05*c.length),u=Er(a,c);return u<=d?(Ce.debug({inputLines:n,suffixLines:r,inputToCompare:a,suffixToCompare:c,distance:u,threshold:d},"Drop completion due to duplicated."),null):e};var $u=()=>t=>ae(t)?null:t;function Pv(t,e){let{suffixLines:r}=e,n=r[0]?.trimEnd()||"";if(ae(n))return t;for(let s of t.choices){let i=s.text.slice(e.position-s.replaceRange.start),o=Ii(i);ae(o)||(n.startsWith(o)?(s.replaceRange.end=e.position+o.length,Ce.trace({context:e,completion:s.text,range:s.replaceRange,unpaired:o},"Adjust replace range by bracket stack")):o.startsWith(n)&&(s.replaceRange.end=e.position+n.length,Ce.trace({context:e,completion:s.text,range:s.replaceRange,unpaired:o},"Adjust replace range by bracket stack")));}return t}var Lu=Object.keys(Ur);async function Ov(t,e){let{position:r,prefix:n,suffix:s,prefixLines:i,suffixLines:o,language:a}=e;if(!Lu.includes(a))return t;let c=Ur[a],d=await ks(c),p=o[0]?.trimEnd()||"";if(ae(p))return t;for(let _ of t.choices){let m=_.text.slice(r-_.replaceRange.start),y=_e(m),v=0,E=d.parse(n+m+s),A=E.rootNode.namedDescendantForIndex(n.length+m.length);for(;A.hasError()&&v<p.length;){v++;let w=i.length-1+y.length-1,x=y[y.length-1].length;y.length==1&&(x+=i[i.length-1].length),E.edit({startIndex:n.length+m.length,oldEndIndex:n.length+m.length+1,newEndIndex:n.length+m.length,startPosition:{row:w,column:x},oldEndPosition:{row:w,column:x+1},newEndPosition:{row:w,column:x}}),E=d.parse(n+m+s.slice(v),E),A=E.rootNode.namedDescendantForIndex(n.length+m.length);}A.hasError()||(_.replaceRange.end=r+v,Ce.trace({context:e,completion:_.text,range:_.replaceRange},"Adjust replace range by syntax"));}return t}async function Mv(t,e,r){return Promise.resolve(r).then(ut(Ev(),t)).then(ut(ku(t),t)).then(ut(Nu(t),t)).then(ut($u(),t))}async function Fv(t,e,r){return Promise.resolve(r).then(ut(vv(),t)).then(ut(Sv(),t)).then(ut(Iv(t,e.limitScope),t)).then(ut(ku(t),t)).then(ut(Nu(t),t)).then(ut($u(),t))}async function Nv(t,e,r){return !e.calculateReplaceRange.experimentalSyntax||!Lu.includes(t.language)?Pv(r,t):Ov(r,t)}_t();var $v="tabby-agent",Lv="1.1.0-dev";Ft();_t();var $s=class t{constructor(){this.anonymousUsageTrackingApi=Zt({baseUrl:"https://app.tabbyml.com/api"});this.logger=be.child({component:"AnonymousUsage"});this.systemData={agent:`${$v},${Lv}`,browser:void 0,node:`${process.version}${process.platform}${G("os").arch()}${G("os").release()}`};this.sessionProperties={};this.userProperties={};this.userPropertiesUpdated=!1;this.emittedUniqueEvent=[];this.dataStore=null;}static async create(e){let r=new t;return r.dataStore=e.dataStore||Fr,await r.checkAnonymousId(),r}async checkAnonymousId(){if(this.dataStore){try{await this.dataStore.load();}catch(e){this.logger.debug({error:e},"Error when loading anonymousId");}if(typeof this.dataStore.data.anonymousId=="string")this.anonymousId=this.dataStore.data.anonymousId;else {this.anonymousId=gt(),this.dataStore.data.anonymo
`+o.slice(1,s).join(""):c=o.slice(0,s).join(""),{prefix:a,suffix:c}}async initialize(r){if(r.clientProperties){let{user:n,session:s}=r.clientProperties;Lr.forEach(i=>i.setBindings?.({...s})),s&&Object.entries(s).forEach(([i,o])=>{this.anonymousUsageLogger.setSessionProperties(i,o);}),n&&Object.entries(n).forEach(([i,o])=>{this.anonymousUsageLogger.setUserProperties(i,o);});}return Dr&&(await Dr.load(),this.userConfig=Dr.config,Dr.on("updated",async n=>{this.userConfig=n,await this.applyConfig();}),Dr.watch()),r.config&&(this.clientConfig=r.config),await this.applyConfig(),await this.anonymousUsageLogger.uniqueEvent("AgentInitialized"),this.logger.debug({options:r},"Initialized"),this.status!=="notInitialized"}async finalize(){return this.status==="finalized"?!1:(await this.submitStats(),this.tryingConnectTimer&&(clearInterval(this.tryingConnectTimer),this.tryingConnectTimer=null),this.submitStatsTimer&&(clearInterval(this.submitStatsTimer),this.submitStatsTimer=null),this.changeStatus("finalized"),!0)}async updateClientProperties(r,n,s){switch(r){case"session":let i={};Sr(i,n,s),Lr.forEach(o=>o.setBindings?.(i)),this.anonymousUsageLogger.setSessionProperties(n,s);break;case"user":this.anonymousUsageLogger.setUserProperties(n,s);break}return !0}async updateConfig(r,n){let s=Ci(this.clientConfig,r);return (0, qs.default)(s,n)||(n===void 0?Ri(this.clientConfig,r):Sr(this.clientConfig,r,n),await this.applyConfig()),!0}async clearConfig(r){return await this.updateConfig(r,void 0)}getConfig(){return this.config}getStatus(){return this.status}getIssues(){return this.issues}getIssueDetail(r){return r.index!==void 0&&r.index<this.issues.length?this.issueFromName(this.issues[r.index]):r.name!==void 0&&this.issues.includes(r.name)?this.issueFromName(r.name):null}getServerHealthState(){return this.serverHealthState}async requestAuthUrl(r){if(this.status==="notInitialized")throw new Error("Agent is not initialized");return await this.healthCheck(r),this.status!=="unauthorized"?null:await this.auth.requestAuthUrl(r)}async waitForAuthToken(r,n){if(this.status==="notInitialized")throw new Error("Agent is not initialized");await this.auth.pollingToken(r,n),await this.setupApi();}async provideCompletions(r,n){if(this.status==="notInitialized")throw new Error("Agent is not initialized");this.logger.trace({request:r},"Call provideCompletions"),this.nonParallelProvideCompletionAbortController&&this.nonParallelProvideCompletionAbortController.abort(),this.nonParallelProvideCompletionAbortController=new AbortController;let s=an([this.nonParallelProvideCompletionAbortController.signal,n?.signal]),i=null,o={triggerMode:r.manually?"manual":"auto",cacheHit:!1,aborted:!1,requestSent:!1,requestLatency:0,requestCanceled:!1,requestTimeout:!1},a=null,c=new Ht(r);try{if(this.completionCache.has(c))o.cacheHit=!0,this.logger.debug({context:c},"Completion cache hit"),await this.completionDebounce.debounce({request:r,config:this.config.completion.debounce,responseTime:0},{signal:s}),i=this.completionCache.get(c);else {o.cacheHit=!1;let d=this.createSegments(c);if(ae(d.prefix))o=null,this.logger.debug("Segment prefix is blank, returning empty completion response"),i={id:"agent-"+gt(),choices:[]};else {await this.completionDebounce.debounce({request:r,config:this.config.completion.debounce,responseTime:this.completionProviderStats.stats().averageResponseTime},n);let u=gt();o.requestSent=!0,a=performance.now();try{let p="/v1/completions",_={body:{language:r.language,segments:d,user:this.auth?.user},signal:this.createAbortSignal({signal:s,timeout:this.config.completion.timeout})};this.logger.debug({requestId:u,requestOptions:_,url:this.config.server.endpoint+p},"Completion request");let m=await this.api.POST(p,_);if(m.error)throw new De(m.response);this.logger.debug({requestId:u,response:m},"Completion response");let y=m.data;o.requestLatency=performance.now()-a,i={id:y.id,choices:y.choices.map(v=>({index:v.index,text:v.text,replaceRange:{start:r.position,end:r.position}}))};}catch(p){throw Yt(p)?(this.logger.debug({requestId:u,error:p},"Completion request can
`)?this.buffer="":this.buffer=n.pop();for(let s of n){let i=null;try{i=JSON.parse(s);}catch(a){this.logger.error({error:a},`Failedtoparserequest:${s}`);continue}this.logger.debug({request:i},"Received request");let o=await this.handleRequest(i);this.sendResponse(o),this.logger.debug({response:o},"Sent response");}}}async handleRequest(e){let r=0,n=[0,null],s=new AbortController;try{if(!this.agent)throw new Error(`Agentnotbound.
`);r=e[0],n[0]=r;let i=e[1].func;if(i==="cancelRequest")n[1]=this.cancelRequest(e);else {let o=this.agent[i];if(!o)throw new Error(`Unknownfunction:${i}`);let a=e[1].args;a.length>0&&typeof a[a.length-1]=="object"&&a[a.length-1].signal&&(this.abortControllers[r]=s,a[a.length-1].signal=s.signal),n[1]=await o.apply(this.agent,a);}}catch(i){Yt(i)?this.logger.debug({error:i,request:e},"Request canceled"):this.logger.error({error:i,request:e},"Failed to handle request");}finally{return this.abortControllers[r]&&delete this.abortControllers[r],n}}cancelRequest(e){let r=e[1].args[0],n=this.abortControllers[r];return n?(n.abort(),!0):!1}sendResponse(e){this.outStream.write(JSON.stringify(e)+`
`);}bind(e){this.agent=e;for(let r of bv)this.agent.on(r,n=>{this.sendResponse([0,n]);});}listen(){this.inStream.on("data",this.handleInput.bind(this)),["SIGTERM","SIGINT"].forEach(e=>{this.process.on(e,async()=>{this.agent&&this.agent.getStatus()!=="finalized"&&await this.agent.finalize(),this.process.exit(0);});});}};var Hv=new Us;Bs.create().then(t=>{Hv.bind(t),Hv.listen();});